[med-svn] [ea-utils] 03/04: New upstream version 1.04.807+dfsg
Andreas Tille
tille at debian.org
Mon May 8 17:17:47 UTC 2017
This is an automated email from the git hooks/post-receive script.
tille pushed a commit to branch master
in repository ea-utils.
commit 0bd5483c7e3de87674aa46331fe12c4fae97fc86
Author: Andreas Tille <tille at debian.org>
Date: Mon May 8 19:16:56 2017 +0200
New upstream version 1.04.807+dfsg
---
README.md | 5 +
bam.c | 474 -
bam_aux.c | 213 -
bam_cat.c | 185 -
bam_import.c | 489 -
bam_index.c | 724 -
bam_lpileup.c | 198 -
bam_md.c | 389 -
bam_pileup.c | 437 -
bam_reheader.c | 62 -
bam_sort.c | 566 -
bedidx.c | 162 -
bgzf.c | 694 -
CHANGES => clipper/CHANGES | 13 +
clipper/Chrdex.pm | 479 +
clipper/Grun.pm | 114 +
clipper/HyperLevelDB/.gitignore | 34 +
clipper/HyperLevelDB/.tarballignore | 2 +
clipper/HyperLevelDB/AUTHORS | 15 +
clipper/HyperLevelDB/LICENSE | 27 +
clipper/HyperLevelDB/Makefile.am | 274 +
clipper/HyperLevelDB/NEWS | 17 +
clipper/HyperLevelDB/README | 62 +
clipper/HyperLevelDB/TODO | 14 +
clipper/HyperLevelDB/benchmark.cc | 187 +
clipper/HyperLevelDB/configure.ac | 111 +
clipper/HyperLevelDB/db/autocompact_test.cc | 123 +
clipper/HyperLevelDB/db/builder.cc | 88 +
clipper/HyperLevelDB/db/builder.h | 34 +
clipper/HyperLevelDB/db/c.cc | 595 +
clipper/HyperLevelDB/db/c_test.c | 390 +
clipper/HyperLevelDB/db/corruption_test.cc | 374 +
clipper/HyperLevelDB/db/db_bench.cc | 979 +
clipper/HyperLevelDB/db/db_impl.cc | 1991 ++
clipper/HyperLevelDB/db/db_impl.h | 269 +
clipper/HyperLevelDB/db/db_iter.cc | 320 +
clipper/HyperLevelDB/db/db_iter.h | 28 +
clipper/HyperLevelDB/db/db_test.cc | 2228 ++
clipper/HyperLevelDB/db/dbformat.cc | 140 +
clipper/HyperLevelDB/db/dbformat.h | 232 +
clipper/HyperLevelDB/db/dbformat_test.cc | 112 +
clipper/HyperLevelDB/db/filename.cc | 144 +
clipper/HyperLevelDB/db/filename.h | 85 +
clipper/HyperLevelDB/db/filename_test.cc | 123 +
clipper/HyperLevelDB/db/leveldb_main.cc | 238 +
clipper/HyperLevelDB/db/log_format.h | 35 +
clipper/HyperLevelDB/db/log_reader.cc | 266 +
clipper/HyperLevelDB/db/log_reader.h | 108 +
clipper/HyperLevelDB/db/log_test.cc | 539 +
clipper/HyperLevelDB/db/log_writer.cc | 132 +
clipper/HyperLevelDB/db/log_writer.h | 50 +
clipper/HyperLevelDB/db/memtable.cc | 180 +
clipper/HyperLevelDB/db/memtable.h | 95 +
clipper/HyperLevelDB/db/repair.cc | 461 +
clipper/HyperLevelDB/db/replay_iterator.cc | 220 +
clipper/HyperLevelDB/db/replay_iterator.h | 73 +
clipper/HyperLevelDB/db/skiplist.h | 460 +
clipper/HyperLevelDB/db/skiplist_test.cc | 378 +
clipper/HyperLevelDB/db/snapshot.h | 66 +
clipper/HyperLevelDB/db/table_cache.cc | 127 +
clipper/HyperLevelDB/db/table_cache.h | 61 +
clipper/HyperLevelDB/db/version_edit.cc | 266 +
clipper/HyperLevelDB/db/version_edit.h | 107 +
clipper/HyperLevelDB/db/version_edit_test.cc | 46 +
clipper/HyperLevelDB/db/version_set.cc | 1584 +
clipper/HyperLevelDB/db/version_set.h | 412 +
clipper/HyperLevelDB/db/version_set_test.cc | 179 +
clipper/HyperLevelDB/db/write_batch.cc | 147 +
clipper/HyperLevelDB/db/write_batch_internal.h | 49 +
clipper/HyperLevelDB/db/write_batch_test.cc | 120 +
clipper/HyperLevelDB/doc/bench/db_bench_sqlite3.cc | 718 +
clipper/HyperLevelDB/doc/bench/db_bench_tree_db.cc | 528 +
clipper/HyperLevelDB/doc/benchmark.html | 459 +
clipper/HyperLevelDB/doc/doc.css | 89 +
clipper/HyperLevelDB/doc/impl.html | 213 +
clipper/HyperLevelDB/doc/index.html | 549 +
clipper/HyperLevelDB/doc/log_format.txt | 75 +
clipper/HyperLevelDB/doc/table_format.txt | 104 +
clipper/HyperLevelDB/helpers/memenv/memenv.cc | 383 +
clipper/HyperLevelDB/helpers/memenv/memenv.h | 20 +
clipper/HyperLevelDB/helpers/memenv/memenv_test.cc | 232 +
clipper/HyperLevelDB/hyperleveldb.upack.in | 41 +
clipper/HyperLevelDB/include/hyperleveldb/c.h | 290 +
clipper/HyperLevelDB/include/hyperleveldb/cache.h | 99 +
.../HyperLevelDB/include/hyperleveldb/comparator.h | 67 +
clipper/HyperLevelDB/include/hyperleveldb/db.h | 192 +
clipper/HyperLevelDB/include/hyperleveldb/env.h | 352 +
.../include/hyperleveldb/filter_policy.h | 70 +
.../HyperLevelDB/include/hyperleveldb/iterator.h | 100 +
.../HyperLevelDB/include/hyperleveldb/options.h | 206 +
.../include/hyperleveldb/replay_iterator.h | 65 +
clipper/HyperLevelDB/include/hyperleveldb/slice.h | 109 +
clipper/HyperLevelDB/include/hyperleveldb/status.h | 107 +
clipper/HyperLevelDB/include/hyperleveldb/table.h | 85 +
.../include/hyperleveldb/table_builder.h | 92 +
.../include/hyperleveldb/write_batch.h | 64 +
clipper/HyperLevelDB/issues/issue178_test.cc | 92 +
clipper/HyperLevelDB/issues/issue200_test.cc | 59 +
clipper/HyperLevelDB/leveldb-verify.cc | 205 +
clipper/HyperLevelDB/libhyperleveldb.pc.in | 12 +
clipper/HyperLevelDB/m4/ax_check_compile_flag.m4 | 72 +
clipper/HyperLevelDB/port/README | 10 +
clipper/HyperLevelDB/port/atomic_pointer.h | 224 +
clipper/HyperLevelDB/port/port.h | 19 +
clipper/HyperLevelDB/port/port_example.h | 135 +
clipper/HyperLevelDB/port/port_posix.cc | 54 +
clipper/HyperLevelDB/port/port_posix.h | 171 +
clipper/HyperLevelDB/port/thread_annotations.h | 59 +
clipper/HyperLevelDB/port/win/stdint.h | 24 +
clipper/HyperLevelDB/table/block.cc | 268 +
clipper/HyperLevelDB/table/block.h | 44 +
clipper/HyperLevelDB/table/block_builder.cc | 109 +
clipper/HyperLevelDB/table/block_builder.h | 57 +
clipper/HyperLevelDB/table/filter_block.cc | 111 +
clipper/HyperLevelDB/table/filter_block.h | 68 +
clipper/HyperLevelDB/table/filter_block_test.cc | 128 +
clipper/HyperLevelDB/table/format.cc | 145 +
clipper/HyperLevelDB/table/format.h | 108 +
clipper/HyperLevelDB/table/iterator.cc | 67 +
clipper/HyperLevelDB/table/iterator_wrapper.h | 63 +
clipper/HyperLevelDB/table/merger.cc | 197 +
clipper/HyperLevelDB/table/merger.h | 26 +
clipper/HyperLevelDB/table/table.cc | 275 +
clipper/HyperLevelDB/table/table_builder.cc | 269 +
clipper/HyperLevelDB/table/table_test.cc | 876 +
clipper/HyperLevelDB/table/two_level_iterator.cc | 182 +
clipper/HyperLevelDB/table/two_level_iterator.h | 34 +
clipper/HyperLevelDB/util/arena.cc | 68 +
clipper/HyperLevelDB/util/arena.h | 68 +
clipper/HyperLevelDB/util/arena_test.cc | 68 +
clipper/HyperLevelDB/util/bloom.cc | 95 +
clipper/HyperLevelDB/util/bloom_test.cc | 161 +
clipper/HyperLevelDB/util/cache.cc | 325 +
clipper/HyperLevelDB/util/cache_test.cc | 186 +
clipper/HyperLevelDB/util/coding.cc | 194 +
clipper/HyperLevelDB/util/coding.h | 104 +
clipper/HyperLevelDB/util/coding_test.cc | 196 +
clipper/HyperLevelDB/util/comparator.cc | 102 +
clipper/HyperLevelDB/util/crc32c.cc | 332 +
clipper/HyperLevelDB/util/crc32c.h | 45 +
clipper/HyperLevelDB/util/crc32c_test.cc | 72 +
clipper/HyperLevelDB/util/env.cc | 96 +
clipper/HyperLevelDB/util/env_posix.cc | 778 +
clipper/HyperLevelDB/util/env_test.cc | 104 +
clipper/HyperLevelDB/util/filter_policy.cc | 11 +
clipper/HyperLevelDB/util/hash.cc | 52 +
clipper/HyperLevelDB/util/hash.h | 19 +
clipper/HyperLevelDB/util/histogram.cc | 139 +
clipper/HyperLevelDB/util/histogram.h | 42 +
clipper/HyperLevelDB/util/logging.cc | 81 +
clipper/HyperLevelDB/util/logging.h | 47 +
clipper/HyperLevelDB/util/mutexlock.h | 41 +
clipper/HyperLevelDB/util/options.cc | 30 +
clipper/HyperLevelDB/util/posix_logger.h | 98 +
clipper/HyperLevelDB/util/random.h | 64 +
clipper/HyperLevelDB/util/status.cc | 75 +
clipper/HyperLevelDB/util/testharness.cc | 77 +
clipper/HyperLevelDB/util/testharness.h | 138 +
clipper/HyperLevelDB/util/testutil.cc | 51 +
clipper/HyperLevelDB/util/testutil.h | 53 +
Makefile => clipper/Makefile | 52 +-
README => clipper/README | 4 +
clipper/affy-csv-to-bed.pl | 34 +
clipper/affy-liftover.pl | 97 +
clipper/aggregate-results-by-gene.pl | 294 +
alc => clipper/alc | 0
clipper/align-sw.cpp | 23 +
clipper/bam-filter.cpp | 245 +
clipper/bowtie-gzip.patch | 34 +
clipper/bwa-to-bowtie | 407 +
clipper/check-clipper.sh | 30 +
clipper/contig-stats | 136 +
clipper/count-ambig.cpp | 136 +
clipper/debug | 5 +
determine-phred => clipper/determine-phred | 0
clipper/ea-bcl2fastq.cpp | 646 +
ea-utils.spec => clipper/ea-utils.spec | 2 +-
ea-utils.spec => clipper/ea-utils.spex | 2 +-
clipper/fasta-qual-to-fastq | 54 +
fastq-clipper.c => clipper/fastq-clipper.cpp | 0
fastq-join.c => clipper/fastq-join.cpp | 33 +-
clipper/fastq-join.t | 10 +
fastq-lib.cpp => clipper/fastq-lib.cpp | 167 +-
fastq-lib.h => clipper/fastq-lib.h | 1 +
fastq-mcf.c => clipper/fastq-mcf.cpp | 91 +-
fastq-multx.c => clipper/fastq-multx.cpp | 231 +-
fastq-stats.cpp => clipper/fastq-stats.cpp | 4 +-
clipper/fastq-to-fasta | 36 +
fastx-graph => clipper/fastx-graph | 0
gcModel.c => clipper/gcModel.cpp | 2 +-
gcModel.h => clipper/gcModel.h | 2 +-
clipper/getgenbankannot | 67 +
clipper/getline.c | 103 +
clipper/gff2gtf | 103 +
clipper/grun | 3930 +++
gtf2bed => clipper/gtf2bed | 22 +-
clipper/install-bamtools.sh | 11 +
clipper/master-barcodes.txt | 862 +
clipper/merge-fifo | 54 +
clipper/mirna-quant.cpp | 710 +
clipper/mixfastqs.pl | 18 +
clipper/multx.sh | 3 +
clipper/pbi-clean.cpp | 279 +
clipper/qsh | 455 +
clipper/qsub | 182 +
randomFQ => clipper/randomFQ | 0
sam-stats.cpp => clipper/sam-stats.cpp | 49 +-
clipper/sam-stats.pl | 343 +
clipper/seqsig.cpp | 587 +
clipper/t/in/join/phred.1.fq | 4 +
clipper/t/in/join/phred.2.fq | 4 +
clipper/t/in/join/test-m1.fq | 12 +
clipper/t/in/join/test-m2.fq | 12 +
clipper/t/in/join/test-ov-a.1.fq | 400 +
clipper/t/in/join/test-ov-a.2.fq | 400 +
clipper/t/in/join/test-ov-b.1.fq | 400 +
clipper/t/in/join/test-ov-b.2.fq | 400 +
clipper/t/in/mcf/adap.fa | 2 +
clipper/t/in/mcf/count.fq | 4 +
clipper/t/in/mcf/test-mcf-dup.fq | 24 +
clipper/t/in/mcf/test.fa | 2 +
clipper/t/in/mcf/test1.fq | 32 +
clipper/t/in/mcf/test2.fq | 200 +
clipper/t/in/mcf/test3.fq | 28 +
clipper/t/in/mcf/test4.fq1 | 5 +
clipper/t/in/mcf/test4.fq2 | 5 +
clipper/t/in/mcf/test5.fq | 16 +
clipper/t/in/multx/master-barcodes.txt | 862 +
clipper/t/in/multx/mxtest-h_1.fastq | 1000 +
clipper/t/in/multx/mxtest-h_2.fastq | 1000 +
clipper/t/in/multx/mxtest_1.fastq | 1000 +
clipper/t/in/multx/mxtest_2.fastq | 1000 +
clipper/t/in/multx/mxtest_3.fastq | 1000 +
clipper/t/join.t | 33 +
clipper/t/mcf.t | 36 +
clipper/t/multx.t | 31 +
clipper/t/out/join/test-m.join | 12 +
clipper/t/out/join/test-m.out | 5 +
clipper/t/out/join/test-nov-a.join | 36 +
clipper/t/out/join/test-nov-a.out | 5 +
clipper/t/out/join/test-nov-b.join | 36 +
clipper/t/out/join/test-nov-b.out | 5 +
clipper/t/out/join/test-ov-a.join | 372 +
clipper/t/out/join/test-ov-a.out | 5 +
clipper/t/out/join/test-ov-b.join | 372 +
clipper/t/out/join/test-ov-b.out | 5 +
clipper/t/out/join/test-phred.join | 4 +
clipper/t/out/join/test-phred.out | 5 +
clipper/t/out/mcf/test1.err | 10 +
clipper/t/out/mcf/test1.out | 32 +
clipper/t/out/mcf/test2.err | 62 +
clipper/t/out/mcf/test2.out | 0
clipper/t/out/mcf/test3.err | 10 +
clipper/t/out/mcf/test3.out | 32 +
clipper/t/out/mcf/test4.err | 9 +
clipper/t/out/mcf/test4.out1 | 4 +
clipper/t/out/mcf/test4.out2 | 4 +
clipper/t/out/mcf/test5.err | 11 +
clipper/t/out/mcf/test5.out | 28 +
clipper/t/out/mcf/test6.err | 10 +
clipper/t/out/mcf/test6.out.gz | Bin 0 -> 324 bytes
clipper/t/out/mcf/test7.err | 9 +
clipper/t/out/mcf/test7.out | 16 +
clipper/t/out/mcf/test8.err | 0
clipper/t/out/mcf/test8.out | 8 +
clipper/t/out/mcf/test9.err | 9 +
clipper/t/out/mcf/test9.out | 16 +
clipper/t/out/multx/test1.err | 5 +
clipper/t/out/multx/test1.out | 7 +
clipper/t/out/multx/test2.err | 5 +
clipper/t/out/multx/test2.out | 7 +
clipper/t/out/multx/test3.err | 2 +
clipper/t/out/multx/test3.out | 7 +
clipper/t/out/multx/test4.err | 5 +
clipper/t/out/multx/test4.out | 7 +
clipper/t/test-prep.pl | 79 +
clipper/testchrdex-speed.pl | 18 +
clipper/testchrdex.pl | 22 +
clipper/testsuf.pl | 11 +
clipper/tidx/Makefile | 33 +
clipper/tidx/README | 11 +
clipper/tidx/chr20.txt | 30738 +++++++++++++++++++
clipper/tidx/chr20.txt.tidx | Bin 0 -> 165025 bytes
{tidx => clipper/tidx}/fastq-lib.cpp | 0
{tidx => clipper/tidx}/fastq-lib.h | 0
clipper/tidx/foo.txt | 3 +
clipper/tidx/perl/Changes | 6 +
clipper/tidx/perl/MANIFEST | 32 +
clipper/tidx/perl/Makefile.PL | 39 +
clipper/tidx/perl/README | 41 +
clipper/tidx/perl/Tidx.xs | 32 +
{tidx => clipper/tidx/perl}/fastq-lib.cpp | 0
{tidx => clipper/tidx/perl}/fastq-lib.h | 0
clipper/tidx/perl/lib/Text/Tidx.pm | 172 +
clipper/tidx/perl/perlobject.map | 106 +
clipper/tidx/perl/ppport.h | 7063 +++++
clipper/tidx/perl/send2cpan | 28 +
clipper/tidx/perl/t/Text-Tidx.t | 40 +
clipper/tidx/perl/t/annot.txt | 862 +
clipper/tidx/perl/t/res1.txt | 1 +
clipper/tidx/perl/t/res2.txt | 1 +
clipper/tidx/perl/tidx-lib.cpp | 1 +
clipper/tidx/perl/tidx.cpp | 1 +
clipper/tidx/perl/tidx.h | 1 +
clipper/tidx/perl/typemap | 2 +
{tidx => clipper/tidx/perl}/utils.cpp | 0
{tidx => clipper/tidx/perl}/utils.h | 0
{tidx => clipper/tidx}/tidx-lib.cpp | 0
{tidx => clipper/tidx}/tidx.cpp | 0
{tidx => clipper/tidx}/tidx.h | 0
{tidx => clipper/tidx}/utils.cpp | 0
{tidx => clipper/tidx}/utils.h | 0
clipper/utils.cpp | 39 +
utils.h => clipper/utils.h | 0
clipper/varcall-matrix | 248 +
clipper/varcall.cpp | 2531 ++
clipper/xjoin | 546 +
clipper/zhead | 64 +
faidx.c | 437 -
kaln.c | 486 -
knetfile.c | 632 -
kprobaln.c | 280 -
kstring.c | 212 -
padding.c | 479 -
phase.c | 687 -
razf.c | 853 -
razip.c | 141 -
sam.c | 186 -
sam_header.c | 772 -
varcall.cpp | 1744 --
330 files changed, 91723 insertions(+), 11687 deletions(-)
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..d1a8448
--- /dev/null
+++ b/README.md
@@ -0,0 +1,5 @@
+# ea-utils
+This project was automatically exported from code.google.com/p/ea-utils and will now be maintained in this repository on GitHub.
+
+To build ea-utils, follow these [build instructions](https://github.com/ExpressionAnalysis/ea-utils/blob/wiki/Compiling.md). Please see http://expressionanalysis.github.io/ea-utils/ for further help information.
+
diff --git a/bam.c b/bam.c
deleted file mode 100644
index b00d6a6..0000000
--- a/bam.c
+++ /dev/null
@@ -1,474 +0,0 @@
-#include <stdio.h>
-#include <ctype.h>
-#include <errno.h>
-#include <assert.h>
-#include "bam.h"
-#include "bam_endian.h"
-#include "kstring.h"
-#include "sam_header.h"
-
-int bam_is_be = 0, bam_verbose = 2, bam_no_B = 0;
-char *bam_flag2char_table = "pPuUrR12sfd\0\0\0\0\0";
-
-/**************************
- * CIGAR related routines *
- **************************/
-
-uint32_t bam_calend(const bam1_core_t *c, const uint32_t *cigar)
-{
- int k, end = c->pos;
- for (k = 0; k < c->n_cigar; ++k) {
- int op = bam_cigar_op(cigar[k]);
- int len = bam_cigar_oplen(cigar[k]);
- if (op == BAM_CBACK) { // move backward
- int l, u, v;
- if (k == c->n_cigar - 1) break; // skip trailing 'B'
- for (l = k - 1, u = v = 0; l >= 0; --l) {
- int op1 = bam_cigar_op(cigar[l]);
- int len1 = bam_cigar_oplen(cigar[l]);
- if (bam_cigar_type(op1)&1) { // consume query
- if (u + len1 >= len) { // stop
- if (bam_cigar_type(op1)&2) v += len - u;
- break;
- } else u += len1;
- }
- if (bam_cigar_type(op1)&2) v += len1;
- }
- end = l < 0? c->pos : end - v;
- } else if (bam_cigar_type(op)&2) end += bam_cigar_oplen(cigar[k]);
- }
- return end;
-}
-
-int32_t bam_cigar2qlen(const bam1_core_t *c, const uint32_t *cigar)
-{
- uint32_t k;
- int32_t l = 0;
- for (k = 0; k < c->n_cigar; ++k)
- if (bam_cigar_type(bam_cigar_op(cigar[k]))&1)
- l += bam_cigar_oplen(cigar[k]);
- return l;
-}
-
-/********************
- * BAM I/O routines *
- ********************/
-
-bam_header_t *bam_header_init()
-{
- bam_is_be = bam_is_big_endian();
- return (bam_header_t*)calloc(1, sizeof(bam_header_t));
-}
-
-void bam_header_destroy(bam_header_t *header)
-{
- int32_t i;
- extern void bam_destroy_header_hash(bam_header_t *header);
- if (header == 0) return;
- if (header->target_name) {
- for (i = 0; i < header->n_targets; ++i)
- free(header->target_name[i]);
- free(header->target_name);
- free(header->target_len);
- }
- free(header->text);
- if (header->dict) sam_header_free(header->dict);
- if (header->rg2lib) sam_tbl_destroy(header->rg2lib);
- bam_destroy_header_hash(header);
- free(header);
-}
-
-bam_header_t *bam_header_read(bamFile fp)
-{
- bam_header_t *header;
- char buf[4];
- int magic_len;
- int32_t i = 1, name_len;
- // check EOF
- i = bgzf_check_EOF(fp);
- if (i < 0) {
- // If the file is a pipe, checking the EOF marker will *always* fail
- // with ESPIPE. Suppress the error message in this case.
- if (errno != ESPIPE) perror("[bam_header_read] bgzf_check_EOF");
- }
- else if (i == 0) fprintf(stderr, "[bam_header_read] EOF marker is absent. The input is probably truncated.\n");
- // read "BAM1"
- magic_len = bam_read(fp, buf, 4);
- if (magic_len != 4 || strncmp(buf, "BAM\001", 4) != 0) {
- fprintf(stderr, "[bam_header_read] invalid BAM binary header (this is not a BAM file).\n");
- return 0;
- }
- header = bam_header_init();
- // read plain text and the number of reference sequences
- bam_read(fp, &header->l_text, 4);
- if (bam_is_be) bam_swap_endian_4p(&header->l_text);
- header->text = (char*)calloc(header->l_text + 1, 1);
- bam_read(fp, header->text, header->l_text);
- bam_read(fp, &header->n_targets, 4);
- if (bam_is_be) bam_swap_endian_4p(&header->n_targets);
- // read reference sequence names and lengths
- header->target_name = (char**)calloc(header->n_targets, sizeof(char*));
- header->target_len = (uint32_t*)calloc(header->n_targets, 4);
- for (i = 0; i != header->n_targets; ++i) {
- bam_read(fp, &name_len, 4);
- if (bam_is_be) bam_swap_endian_4p(&name_len);
- header->target_name[i] = (char*)calloc(name_len, 1);
- bam_read(fp, header->target_name[i], name_len);
- bam_read(fp, &header->target_len[i], 4);
- if (bam_is_be) bam_swap_endian_4p(&header->target_len[i]);
- }
- return header;
-}
-
-int bam_header_write(bamFile fp, const bam_header_t *header)
-{
- char buf[4];
- int32_t i, name_len, x;
- // write "BAM1"
- strncpy(buf, "BAM\001", 4);
- bam_write(fp, buf, 4);
- // write plain text and the number of reference sequences
- if (bam_is_be) {
- x = bam_swap_endian_4(header->l_text);
- bam_write(fp, &x, 4);
- if (header->l_text) bam_write(fp, header->text, header->l_text);
- x = bam_swap_endian_4(header->n_targets);
- bam_write(fp, &x, 4);
- } else {
- bam_write(fp, &header->l_text, 4);
- if (header->l_text) bam_write(fp, header->text, header->l_text);
- bam_write(fp, &header->n_targets, 4);
- }
- // write sequence names and lengths
- for (i = 0; i != header->n_targets; ++i) {
- char *p = header->target_name[i];
- name_len = strlen(p) + 1;
- if (bam_is_be) {
- x = bam_swap_endian_4(name_len);
- bam_write(fp, &x, 4);
- } else bam_write(fp, &name_len, 4);
- bam_write(fp, p, name_len);
- if (bam_is_be) {
- x = bam_swap_endian_4(header->target_len[i]);
- bam_write(fp, &x, 4);
- } else bam_write(fp, &header->target_len[i], 4);
- }
- bgzf_flush(fp);
- return 0;
-}
-
-static void swap_endian_data(const bam1_core_t *c, int data_len, uint8_t *data)
-{
- uint8_t *s;
- uint32_t i, *cigar = (uint32_t*)(data + c->l_qname);
- s = data + c->n_cigar*4 + c->l_qname + c->l_qseq + (c->l_qseq + 1)/2;
- for (i = 0; i < c->n_cigar; ++i) bam_swap_endian_4p(&cigar[i]);
- while (s < data + data_len) {
- uint8_t type;
- s += 2; // skip key
- type = toupper(*s); ++s; // skip type
- if (type == 'C' || type == 'A') ++s;
- else if (type == 'S') { bam_swap_endian_2p(s); s += 2; }
- else if (type == 'I' || type == 'F') { bam_swap_endian_4p(s); s += 4; }
- else if (type == 'D') { bam_swap_endian_8p(s); s += 8; }
- else if (type == 'Z' || type == 'H') { while (*s) ++s; ++s; }
- else if (type == 'B') {
- int32_t n, Bsize = bam_aux_type2size(*s);
- memcpy(&n, s + 1, 4);
- if (1 == Bsize) {
- } else if (2 == Bsize) {
- for (i = 0; i < n; i += 2)
- bam_swap_endian_2p(s + 5 + i);
- } else if (4 == Bsize) {
- for (i = 0; i < n; i += 4)
- bam_swap_endian_4p(s + 5 + i);
- }
- bam_swap_endian_4p(s+1);
- }
- }
-}
-
-int bam_read1(bamFile fp, bam1_t *b)
-{
- bam1_core_t *c = &b->core;
- int32_t block_len, ret, i;
- uint32_t x[8];
-
- assert(BAM_CORE_SIZE == 32);
- if ((ret = bam_read(fp, &block_len, 4)) != 4) {
- if (ret == 0) return -1; // normal end-of-file
- else return -2; // truncated
- }
- if (bam_read(fp, x, BAM_CORE_SIZE) != BAM_CORE_SIZE) return -3;
- if (bam_is_be) {
- bam_swap_endian_4p(&block_len);
- for (i = 0; i < 8; ++i) bam_swap_endian_4p(x + i);
- }
- c->tid = x[0]; c->pos = x[1];
- c->bin = x[2]>>16; c->qual = x[2]>>8&0xff; c->l_qname = x[2]&0xff;
- c->flag = x[3]>>16; c->n_cigar = x[3]&0xffff;
- c->l_qseq = x[4];
- c->mtid = x[5]; c->mpos = x[6]; c->isize = x[7];
- b->data_len = block_len - BAM_CORE_SIZE;
- if (b->m_data < b->data_len) {
- b->m_data = b->data_len;
- kroundup32(b->m_data);
- b->data = (uint8_t*)realloc(b->data, b->m_data);
- }
- if (bam_read(fp, b->data, b->data_len) != b->data_len) return -4;
- b->l_aux = b->data_len - c->n_cigar * 4 - c->l_qname - c->l_qseq - (c->l_qseq+1)/2;
- if (bam_is_be) swap_endian_data(c, b->data_len, b->data);
- if (bam_no_B) bam_remove_B(b);
- return 4 + block_len;
-}
-
-inline int bam_write1_core(bamFile fp, const bam1_core_t *c, int data_len, uint8_t *data)
-{
- uint32_t x[8], block_len = data_len + BAM_CORE_SIZE, y;
- int i;
- assert(BAM_CORE_SIZE == 32);
- x[0] = c->tid;
- x[1] = c->pos;
- x[2] = (uint32_t)c->bin<<16 | c->qual<<8 | c->l_qname;
- x[3] = (uint32_t)c->flag<<16 | c->n_cigar;
- x[4] = c->l_qseq;
- x[5] = c->mtid;
- x[6] = c->mpos;
- x[7] = c->isize;
- bgzf_flush_try(fp, 4 + block_len);
- if (bam_is_be) {
- for (i = 0; i < 8; ++i) bam_swap_endian_4p(x + i);
- y = block_len;
- bam_write(fp, bam_swap_endian_4p(&y), 4);
- swap_endian_data(c, data_len, data);
- } else bam_write(fp, &block_len, 4);
- bam_write(fp, x, BAM_CORE_SIZE);
- bam_write(fp, data, data_len);
- if (bam_is_be) swap_endian_data(c, data_len, data);
- return 4 + block_len;
-}
-
-int bam_write1(bamFile fp, const bam1_t *b)
-{
- return bam_write1_core(fp, &b->core, b->data_len, b->data);
-}
-
-char *bam_format1_core(const bam_header_t *header, const bam1_t *b, int of)
-{
- uint8_t *s = bam1_seq(b), *t = bam1_qual(b);
- int i;
- const bam1_core_t *c = &b->core;
- kstring_t str;
- str.l = str.m = 0; str.s = 0;
-
- kputsn(bam1_qname(b), c->l_qname-1, &str); kputc('\t', &str);
- if (of == BAM_OFDEC) { kputw(c->flag, &str); kputc('\t', &str); }
- else if (of == BAM_OFHEX) ksprintf(&str, "0x%x\t", c->flag);
- else { // BAM_OFSTR
- for (i = 0; i < 16; ++i)
- if ((c->flag & 1<<i) && bam_flag2char_table[i])
- kputc(bam_flag2char_table[i], &str);
- kputc('\t', &str);
- }
- if (c->tid < 0) kputsn("*\t", 2, &str);
- else {
- if (header) kputs(header->target_name[c->tid] , &str);
- else kputw(c->tid, &str);
- kputc('\t', &str);
- }
- kputw(c->pos + 1, &str); kputc('\t', &str); kputw(c->qual, &str); kputc('\t', &str);
- if (c->n_cigar == 0) kputc('*', &str);
- else {
- uint32_t *cigar = bam1_cigar(b);
- for (i = 0; i < c->n_cigar; ++i) {
- kputw(bam1_cigar(b)[i]>>BAM_CIGAR_SHIFT, &str);
- kputc(bam_cigar_opchr(cigar[i]), &str);
- }
- }
- kputc('\t', &str);
- if (c->mtid < 0) kputsn("*\t", 2, &str);
- else if (c->mtid == c->tid) kputsn("=\t", 2, &str);
- else {
- if (header) kputs(header->target_name[c->mtid], &str);
- else kputw(c->mtid, &str);
- kputc('\t', &str);
- }
- kputw(c->mpos + 1, &str); kputc('\t', &str); kputw(c->isize, &str); kputc('\t', &str);
- if (c->l_qseq) {
- for (i = 0; i < c->l_qseq; ++i) kputc(bam_nt16_rev_table[bam1_seqi(s, i)], &str);
- kputc('\t', &str);
- if (t[0] == 0xff) kputc('*', &str);
- else for (i = 0; i < c->l_qseq; ++i) kputc(t[i] + 33, &str);
- } else kputsn("*\t*", 3, &str);
- s = bam1_aux(b);
- while (s < b->data + b->data_len) {
- uint8_t type, key[2];
- key[0] = s[0]; key[1] = s[1];
- s += 2; type = *s; ++s;
- kputc('\t', &str); kputsn((char*)key, 2, &str); kputc(':', &str);
- if (type == 'A') { kputsn("A:", 2, &str); kputc(*s, &str); ++s; }
- else if (type == 'C') { kputsn("i:", 2, &str); kputw(*s, &str); ++s; }
- else if (type == 'c') { kputsn("i:", 2, &str); kputw(*(int8_t*)s, &str); ++s; }
- else if (type == 'S') { kputsn("i:", 2, &str); kputw(*(uint16_t*)s, &str); s += 2; }
- else if (type == 's') { kputsn("i:", 2, &str); kputw(*(int16_t*)s, &str); s += 2; }
- else if (type == 'I') { kputsn("i:", 2, &str); kputuw(*(uint32_t*)s, &str); s += 4; }
- else if (type == 'i') { kputsn("i:", 2, &str); kputw(*(int32_t*)s, &str); s += 4; }
- else if (type == 'f') { ksprintf(&str, "f:%g", *(float*)s); s += 4; }
- else if (type == 'd') { ksprintf(&str, "d:%lg", *(double*)s); s += 8; }
- else if (type == 'Z' || type == 'H') { kputc(type, &str); kputc(':', &str); while (*s) kputc(*s++, &str); ++s; }
- else if (type == 'B') {
- uint8_t sub_type = *(s++);
- int32_t n;
- memcpy(&n, s, 4);
- s += 4; // no point to the start of the array
- kputc(type, &str); kputc(':', &str); kputc(sub_type, &str); // write the typing
- for (i = 0; i < n; ++i) {
- kputc(',', &str);
- if ('c' == sub_type || 'c' == sub_type) { kputw(*(int8_t*)s, &str); ++s; }
- else if ('C' == sub_type) { kputw(*(uint8_t*)s, &str); ++s; }
- else if ('s' == sub_type) { kputw(*(int16_t*)s, &str); s += 2; }
- else if ('S' == sub_type) { kputw(*(uint16_t*)s, &str); s += 2; }
- else if ('i' == sub_type) { kputw(*(int32_t*)s, &str); s += 4; }
- else if ('I' == sub_type) { kputuw(*(uint32_t*)s, &str); s += 4; }
- else if ('f' == sub_type) { ksprintf(&str, "%g", *(float*)s); s += 4; }
- }
- }
- }
- return str.s;
-}
-
-char *bam_format1(const bam_header_t *header, const bam1_t *b)
-{
- return bam_format1_core(header, b, BAM_OFDEC);
-}
-
-void bam_view1(const bam_header_t *header, const bam1_t *b)
-{
- char *s = bam_format1(header, b);
- puts(s);
- free(s);
-}
-
-int bam_validate1(const bam_header_t *header, const bam1_t *b)
-{
- char *s;
-
- if (b->core.tid < -1 || b->core.mtid < -1) return 0;
- if (header && (b->core.tid >= header->n_targets || b->core.mtid >= header->n_targets)) return 0;
-
- if (b->data_len < b->core.l_qname) return 0;
- s = memchr(bam1_qname(b), '\0', b->core.l_qname);
- if (s != &bam1_qname(b)[b->core.l_qname-1]) return 0;
-
- // FIXME: Other fields could also be checked, especially the auxiliary data
-
- return 1;
-}
-
-// FIXME: we should also check the LB tag associated with each alignment
-const char *bam_get_library(bam_header_t *h, const bam1_t *b)
-{
- const uint8_t *rg;
- if (h->dict == 0) h->dict = sam_header_parse2(h->text);
- if (h->rg2lib == 0) h->rg2lib = sam_header2tbl(h->dict, "RG", "ID", "LB");
- rg = bam_aux_get(b, "RG");
- return (rg == 0)? 0 : sam_tbl_get(h->rg2lib, (const char*)(rg + 1));
-}
-
-/************
- * Remove B *
- ************/
-
-int bam_remove_B(bam1_t *b)
-{
- int i, j, end_j, k, l, no_qual;
- uint32_t *cigar, *new_cigar;
- uint8_t *seq, *qual, *p;
- // test if removal is necessary
- if (b->core.flag & BAM_FUNMAP) return 0; // unmapped; do nothing
- cigar = bam1_cigar(b);
- for (k = 0; k < b->core.n_cigar; ++k)
- if (bam_cigar_op(cigar[k]) == BAM_CBACK) break;
- if (k == b->core.n_cigar) return 0; // no 'B'
- if (bam_cigar_op(cigar[0]) == BAM_CBACK) goto rmB_err; // cannot be removed
- // allocate memory for the new CIGAR
- if (b->data_len + (b->core.n_cigar + 1) * 4 > b->m_data) { // not enough memory
- b->m_data = b->data_len + b->core.n_cigar * 4;
- kroundup32(b->m_data);
- b->data = (uint8_t*)realloc(b->data, b->m_data);
- cigar = bam1_cigar(b); // after realloc, cigar may be changed
- }
- new_cigar = (uint32_t*)(b->data + (b->m_data - b->core.n_cigar * 4)); // from the end of b->data
- // the core loop
- seq = bam1_seq(b); qual = bam1_qual(b);
- no_qual = (qual[0] == 0xff); // test whether base quality is available
- i = j = 0; end_j = -1;
- for (k = l = 0; k < b->core.n_cigar; ++k) {
- int op = bam_cigar_op(cigar[k]);
- int len = bam_cigar_oplen(cigar[k]);
- if (op == BAM_CBACK) { // the backward operation
- int t, u;
- if (k == b->core.n_cigar - 1) break; // ignore 'B' at the end of CIGAR
- if (len > j) goto rmB_err; // an excessively long backward
- for (t = l - 1, u = 0; t >= 0; --t) { // look back
- int op1 = bam_cigar_op(new_cigar[t]);
- int len1 = bam_cigar_oplen(new_cigar[t]);
- if (bam_cigar_type(op1)&1) { // consume the query
- if (u + len1 >= len) { // stop
- new_cigar[t] -= (len - u) << BAM_CIGAR_SHIFT;
- break;
- } else u += len1;
- }
- }
- if (bam_cigar_oplen(new_cigar[t]) == 0) --t; // squeeze out the zero-length operation
- l = t + 1;
- end_j = j; j -= len;
- } else { // other CIGAR operations
- new_cigar[l++] = cigar[k];
- if (bam_cigar_type(op)&1) { // consume the query
- if (i != j) { // no need to copy if i == j
- int u, c, c0;
- for (u = 0; u < len; ++u) { // construct the consensus
- c = bam1_seqi(seq, i+u);
- if (j + u < end_j) { // in an overlap
- c0 = bam1_seqi(seq, j+u);
- if (c != c0) { // a mismatch; choose the better base
- if (qual[j+u] < qual[i+u]) { // the base in the 2nd segment is better
- bam1_seq_seti(seq, j+u, c);
- qual[j+u] = qual[i+u] - qual[j+u];
- } else qual[j+u] -= qual[i+u]; // the 1st is better; reduce base quality
- } else qual[j+u] = qual[j+u] > qual[i+u]? qual[j+u] : qual[i+u];
- } else { // not in an overlap; copy over
- bam1_seq_seti(seq, j+u, c);
- qual[j+u] = qual[i+u];
- }
- }
- }
- i += len, j += len;
- }
- }
- }
- if (no_qual) qual[0] = 0xff; // in very rare cases, this may be modified
- // merge adjacent operations if possible
- for (k = 1; k < l; ++k)
- if (bam_cigar_op(new_cigar[k]) == bam_cigar_op(new_cigar[k-1]))
- new_cigar[k] += new_cigar[k-1] >> BAM_CIGAR_SHIFT << BAM_CIGAR_SHIFT, new_cigar[k-1] &= 0xf;
- // kill zero length operations
- for (k = i = 0; k < l; ++k)
- if (new_cigar[k] >> BAM_CIGAR_SHIFT)
- new_cigar[i++] = new_cigar[k];
- l = i;
- // update b
- memcpy(cigar, new_cigar, l * 4); // set CIGAR
- p = b->data + b->core.l_qname + l * 4;
- memmove(p, seq, (j+1)>>1); p += (j+1)>>1; // set SEQ
- memmove(p, qual, j); p += j; // set QUAL
- memmove(p, bam1_aux(b), b->l_aux); p += b->l_aux; // set optional fields
- b->core.n_cigar = l, b->core.l_qseq = j; // update CIGAR length and query length
- b->data_len = p - b->data; // update record length
- return 0;
-
-rmB_err:
- b->core.flag |= BAM_FUNMAP;
- return -1;
-}
diff --git a/bam_aux.c b/bam_aux.c
deleted file mode 100644
index 28b22e3..0000000
--- a/bam_aux.c
+++ /dev/null
@@ -1,213 +0,0 @@
-#include <ctype.h>
-#include "bam.h"
-#include "khash.h"
-typedef char *str_p;
-KHASH_MAP_INIT_STR(s, int)
-KHASH_MAP_INIT_STR(r2l, str_p)
-
-void bam_aux_append(bam1_t *b, const char tag[2], char type, int len, uint8_t *data)
-{
- int ori_len = b->data_len;
- b->data_len += 3 + len;
- b->l_aux += 3 + len;
- if (b->m_data < b->data_len) {
- b->m_data = b->data_len;
- kroundup32(b->m_data);
- b->data = (uint8_t*)realloc(b->data, b->m_data);
- }
- b->data[ori_len] = tag[0]; b->data[ori_len + 1] = tag[1];
- b->data[ori_len + 2] = type;
- memcpy(b->data + ori_len + 3, data, len);
-}
-
-uint8_t *bam_aux_get_core(bam1_t *b, const char tag[2])
-{
- return bam_aux_get(b, tag);
-}
-
-#define __skip_tag(s) do { \
- int type = toupper(*(s)); \
- ++(s); \
- if (type == 'Z' || type == 'H') { while (*(s)) ++(s); ++(s); } \
- else if (type == 'B') (s) += 5 + bam_aux_type2size(*(s)) * (*(int32_t*)((s)+1)); \
- else (s) += bam_aux_type2size(type); \
- } while(0)
-
-uint8_t *bam_aux_get(const bam1_t *b, const char tag[2])
-{
- uint8_t *s;
- int y = tag[0]<<8 | tag[1];
- s = bam1_aux(b);
- while (s < b->data + b->data_len) {
- int x = (int)s[0]<<8 | s[1];
- s += 2;
- if (x == y) return s;
- __skip_tag(s);
- }
- return 0;
-}
-// s MUST BE returned by bam_aux_get()
-int bam_aux_del(bam1_t *b, uint8_t *s)
-{
- uint8_t *p, *aux;
- aux = bam1_aux(b);
- p = s - 2;
- __skip_tag(s);
- memmove(p, s, b->l_aux - (s - aux));
- b->data_len -= s - p;
- b->l_aux -= s - p;
- return 0;
-}
-
-int bam_aux_drop_other(bam1_t *b, uint8_t *s)
-{
- if (s) {
- uint8_t *p, *aux;
- aux = bam1_aux(b);
- p = s - 2;
- __skip_tag(s);
- memmove(aux, p, s - p);
- b->data_len -= b->l_aux - (s - p);
- b->l_aux = s - p;
- } else {
- b->data_len -= b->l_aux;
- b->l_aux = 0;
- }
- return 0;
-}
-
-void bam_init_header_hash(bam_header_t *header)
-{
- if (header->hash == 0) {
- int ret, i;
- khiter_t iter;
- khash_t(s) *h;
- header->hash = h = kh_init(s);
- for (i = 0; i < header->n_targets; ++i) {
- iter = kh_put(s, h, header->target_name[i], &ret);
- kh_value(h, iter) = i;
- }
- }
-}
-
-void bam_destroy_header_hash(bam_header_t *header)
-{
- if (header->hash)
- kh_destroy(s, (khash_t(s)*)header->hash);
-}
-
-int32_t bam_get_tid(const bam_header_t *header, const char *seq_name)
-{
- khint_t k;
- khash_t(s) *h = (khash_t(s)*)header->hash;
- k = kh_get(s, h, seq_name);
- return k == kh_end(h)? -1 : kh_value(h, k);
-}
-
-int bam_parse_region(bam_header_t *header, const char *str, int *ref_id, int *beg, int *end)
-{
- char *s;
- int i, l, k, name_end;
- khiter_t iter;
- khash_t(s) *h;
-
- bam_init_header_hash(header);
- h = (khash_t(s)*)header->hash;
-
- *ref_id = *beg = *end = -1;
- name_end = l = strlen(str);
- s = (char*)malloc(l+1);
- // remove space
- for (i = k = 0; i < l; ++i)
- if (!isspace(str[i])) s[k++] = str[i];
- s[k] = 0; l = k;
- // determine the sequence name
- for (i = l - 1; i >= 0; --i) if (s[i] == ':') break; // look for colon from the end
- if (i >= 0) name_end = i;
- if (name_end < l) { // check if this is really the end
- int n_hyphen = 0;
- for (i = name_end + 1; i < l; ++i) {
- if (s[i] == '-') ++n_hyphen;
- else if (!isdigit(s[i]) && s[i] != ',') break;
- }
- if (i < l || n_hyphen > 1) name_end = l; // malformated region string; then take str as the name
- s[name_end] = 0;
- iter = kh_get(s, h, s);
- if (iter == kh_end(h)) { // cannot find the sequence name
- iter = kh_get(s, h, str); // try str as the name
- if (iter == kh_end(h)) {
- if (bam_verbose >= 2) fprintf(stderr, "[%s] fail to determine the sequence name.\n", __func__);
- free(s); return -1;
- } else s[name_end] = ':', name_end = l;
- }
- } else iter = kh_get(s, h, str);
- *ref_id = kh_val(h, iter);
- // parse the interval
- if (name_end < l) {
- for (i = k = name_end + 1; i < l; ++i)
- if (s[i] != ',') s[k++] = s[i];
- s[k] = 0;
- *beg = atoi(s + name_end + 1);
- for (i = name_end + 1; i != k; ++i) if (s[i] == '-') break;
- *end = i < k? atoi(s + i + 1) : 1<<29;
- if (*beg > 0) --*beg;
- } else *beg = 0, *end = 1<<29;
- free(s);
- return *beg <= *end? 0 : -1;
-}
-
-int32_t bam_aux2i(const uint8_t *s)
-{
- int type;
- if (s == 0) return 0;
- type = *s++;
- if (type == 'c') return (int32_t)*(int8_t*)s;
- else if (type == 'C') return (int32_t)*(uint8_t*)s;
- else if (type == 's') return (int32_t)*(int16_t*)s;
- else if (type == 'S') return (int32_t)*(uint16_t*)s;
- else if (type == 'i' || type == 'I') return *(int32_t*)s;
- else return 0;
-}
-
-float bam_aux2f(const uint8_t *s)
-{
- int type;
- type = *s++;
- if (s == 0) return 0.0;
- if (type == 'f') return *(float*)s;
- else return 0.0;
-}
-
-double bam_aux2d(const uint8_t *s)
-{
- int type;
- type = *s++;
- if (s == 0) return 0.0;
- if (type == 'd') return *(double*)s;
- else return 0.0;
-}
-
-char bam_aux2A(const uint8_t *s)
-{
- int type;
- type = *s++;
- if (s == 0) return 0;
- if (type == 'A') return *(char*)s;
- else return 0;
-}
-
-char *bam_aux2Z(const uint8_t *s)
-{
- int type;
- type = *s++;
- if (s == 0) return 0;
- if (type == 'Z' || type == 'H') return (char*)s;
- else return 0;
-}
-
-#ifdef _WIN32
-double drand48()
-{
- return (double)rand() / RAND_MAX;
-}
-#endif
diff --git a/bam_cat.c b/bam_cat.c
deleted file mode 100644
index a7502b9..0000000
--- a/bam_cat.c
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
-
-bam_cat -- efficiently concatenates bam files
-
-bam_cat can be used to concatenate BAM files. Under special
-circumstances, it can be used as an alternative to 'samtools merge' to
-concatenate multiple sorted files into a single sorted file. For this
-to work each file must be sorted, and the sorted files must be given
-as command line arguments in order such that the final read in file i
-is less than or equal to the first read in file i+1.
-
-This code is derived from the bam_reheader function in samtools 0.1.8
-and modified to perform concatenation by Chris Saunders on behalf of
-Illumina.
-
-
-########## License:
-
-The MIT License
-
-Original SAMtools work copyright (c) 2008-2009 Genome Research Ltd.
-Modified SAMtools work copyright (c) 2010 Illumina, Inc.
-
-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.
-
-*/
-
-
-/*
-makefile:
-"""
-CC=gcc
-CFLAGS+=-g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_USE_KNETFILE -I$(SAMTOOLS_DIR)
-LDFLAGS+=-L$(SAMTOOLS_DIR)
-LDLIBS+=-lbam -lz
-
-all:bam_cat
-"""
-*/
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-#include "knetfile.h"
-#include "bgzf.h"
-#include "bam.h"
-
-#define BUF_SIZE 0x10000
-
-#define GZIPID1 31
-#define GZIPID2 139
-
-#define BGZF_EMPTY_BLOCK_SIZE 28
-
-
-int bam_cat(int nfn, char * const *fn, const bam_header_t *h, const char* outbam)
-{
- BGZF *fp;
- FILE* fp_file;
- uint8_t *buf;
- uint8_t ebuf[BGZF_EMPTY_BLOCK_SIZE];
- const int es=BGZF_EMPTY_BLOCK_SIZE;
- int i;
-
- fp = strcmp(outbam, "-")? bgzf_open(outbam, "w") : bgzf_fdopen(fileno(stdout), "w");
- if (fp == 0) {
- fprintf(stderr, "[%s] ERROR: fail to open output file '%s'.\n", __func__, outbam);
- return 1;
- }
- if (h) bam_header_write(fp, h);
-
- buf = (uint8_t*) malloc(BUF_SIZE);
- for(i = 0; i < nfn; ++i){
- BGZF *in;
- bam_header_t *old;
- int len,j;
-
- in = strcmp(fn[i], "-")? bam_open(fn[i], "r") : bam_dopen(fileno(stdin), "r");
- if (in == 0) {
- fprintf(stderr, "[%s] ERROR: fail to open file '%s'.\n", __func__, fn[i]);
- return -1;
- }
- if (in->is_write) return -1;
-
- old = bam_header_read(in);
- if (h == 0 && i == 0) bam_header_write(fp, old);
-
- if (in->block_offset < in->block_length) {
- bgzf_write(fp, in->uncompressed_block + in->block_offset, in->block_length - in->block_offset);
- bgzf_flush(fp);
- }
-
- j=0;
-#ifdef _USE_KNETFILE
- fp_file = fp->fp;
- while ((len = knet_read(in->fp, buf, BUF_SIZE)) > 0) {
-#else
- fp_file = fp->fp;
- while (!feof(in->file) && (len = fread(buf, 1, BUF_SIZE, in->file)) > 0) {
-#endif
- if(len<es){
- int diff=es-len;
- if(j==0) {
- fprintf(stderr, "[%s] ERROR: truncated file?: '%s'.\n", __func__, fn[i]);
- return -1;
- }
- fwrite(ebuf, 1, len, fp_file);
- memcpy(ebuf,ebuf+len,diff);
- memcpy(ebuf+diff,buf,len);
- } else {
- if(j!=0) fwrite(ebuf, 1, es, fp_file);
- len-= es;
- memcpy(ebuf,buf+len,es);
- fwrite(buf, 1, len, fp_file);
- }
- j=1;
- }
-
- /* check final gzip block */
- {
- const uint8_t gzip1=ebuf[0];
- const uint8_t gzip2=ebuf[1];
- const uint32_t isize=*((uint32_t*)(ebuf+es-4));
- if(((gzip1!=GZIPID1) || (gzip2!=GZIPID2)) || (isize!=0)) {
- fprintf(stderr, "[%s] WARNING: Unexpected block structure in file '%s'.", __func__, fn[i]);
- fprintf(stderr, " Possible output corruption.\n");
- fwrite(ebuf, 1, es, fp_file);
- }
- }
- bam_header_destroy(old);
- bgzf_close(in);
- }
- free(buf);
- bgzf_close(fp);
- return 0;
-}
-
-
-
-int main_cat(int argc, char *argv[])
-{
- bam_header_t *h = 0;
- char *outfn = 0;
- int c, ret;
- while ((c = getopt(argc, argv, "h:o:")) >= 0) {
- switch (c) {
- case 'h': {
- tamFile fph = sam_open(optarg);
- if (fph == 0) {
- fprintf(stderr, "[%s] ERROR: fail to read the header from '%s'.\n", __func__, argv[1]);
- return 1;
- }
- h = sam_header_read(fph);
- sam_close(fph);
- break;
- }
- case 'o': outfn = strdup(optarg); break;
- }
- }
- if (argc - optind < 2) {
- fprintf(stderr, "Usage: samtools cat [-h header.sam] [-o out.bam] <in1.bam> <in2.bam> [...]\n");
- return 1;
- }
- ret = bam_cat(argc - optind, argv + optind, h, outfn? outfn : "-");
- free(outfn);
- return ret;
-}
diff --git a/bam_import.c b/bam_import.c
deleted file mode 100644
index da2bf94..0000000
--- a/bam_import.c
+++ /dev/null
@@ -1,489 +0,0 @@
-#include <zlib.h>
-#include <stdio.h>
-#include <ctype.h>
-#include <string.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <assert.h>
-#ifdef _WIN32
-#include <fcntl.h>
-#endif
-#include "kstring.h"
-#include "bam.h"
-#include "sam_header.h"
-#include "kseq.h"
-#include "khash.h"
-
-KSTREAM_INIT(gzFile, gzread, 16384)
-KHASH_MAP_INIT_STR(ref, uint64_t)
-
-void bam_init_header_hash(bam_header_t *header);
-void bam_destroy_header_hash(bam_header_t *header);
-int32_t bam_get_tid(const bam_header_t *header, const char *seq_name);
-
-unsigned char bam_nt16_table[256] = {
- 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15,
- 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15,
- 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15,
- 1, 2, 4, 8, 15,15,15,15, 15,15,15,15, 15, 0 /*=*/,15,15,
- 15, 1,14, 2, 13,15,15, 4, 11,15,15,12, 15, 3,15,15,
- 15,15, 5, 6, 8,15, 7, 9, 15,10,15,15, 15,15,15,15,
- 15, 1,14, 2, 13,15,15, 4, 11,15,15,12, 15, 3,15,15,
- 15,15, 5, 6, 8,15, 7, 9, 15,10,15,15, 15,15,15,15,
- 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15,
- 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15,
- 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15,
- 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15,
- 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15,
- 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15,
- 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15,
- 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15
-};
-
-unsigned short bam_char2flag_table[256] = {
- 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
- 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
- 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
- 0,BAM_FREAD1,BAM_FREAD2,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
- 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
- BAM_FPROPER_PAIR,0,BAM_FMREVERSE,0, 0,BAM_FMUNMAP,0,0, 0,0,0,0, 0,0,0,0,
- 0,0,0,0, BAM_FDUP,0,BAM_FQCFAIL,0, 0,0,0,0, 0,0,0,0,
- BAM_FPAIRED,0,BAM_FREVERSE,BAM_FSECONDARY, 0,BAM_FUNMAP,0,0, 0,0,0,0, 0,0,0,0,
- 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
- 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
- 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
- 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
- 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
- 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
- 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
- 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0
-};
-
-char *bam_nt16_rev_table = "=ACMGRSVTWYHKDBN";
-
-struct __tamFile_t {
- gzFile fp;
- kstream_t *ks;
- kstring_t *str;
- uint64_t n_lines;
- int is_first;
-};
-
-char **__bam_get_lines(const char *fn, int *_n) // for bam_plcmd.c only
-{
- char **list = 0, *s;
- int n = 0, dret, m = 0;
- gzFile fp = (strcmp(fn, "-") == 0)? gzdopen(fileno(stdin), "r") : gzopen(fn, "r");
- kstream_t *ks;
- kstring_t *str;
- str = (kstring_t*)calloc(1, sizeof(kstring_t));
- ks = ks_init(fp);
- while (ks_getuntil(ks, '\n', str, &dret) > 0) {
- if (n == m) {
- m = m? m << 1 : 16;
- list = (char**)realloc(list, m * sizeof(char*));
- }
- if (str->s[str->l-1] == '\r')
- str->s[--str->l] = '\0';
- s = list[n++] = (char*)calloc(str->l + 1, 1);
- strcpy(s, str->s);
- }
- ks_destroy(ks);
- gzclose(fp);
- free(str->s); free(str);
- *_n = n;
- return list;
-}
-
-static bam_header_t *hash2header(const kh_ref_t *hash)
-{
- bam_header_t *header;
- khiter_t k;
- header = bam_header_init();
- header->n_targets = kh_size(hash);
- header->target_name = (char**)calloc(kh_size(hash), sizeof(char*));
- header->target_len = (uint32_t*)calloc(kh_size(hash), 4);
- for (k = kh_begin(hash); k != kh_end(hash); ++k) {
- if (kh_exist(hash, k)) {
- int i = (int)kh_value(hash, k);
- header->target_name[i] = (char*)kh_key(hash, k);
- header->target_len[i] = kh_value(hash, k)>>32;
- }
- }
- bam_init_header_hash(header);
- return header;
-}
-bam_header_t *sam_header_read2(const char *fn)
-{
- bam_header_t *header;
- int c, dret, ret, error = 0;
- gzFile fp;
- kstream_t *ks;
- kstring_t *str;
- kh_ref_t *hash;
- khiter_t k;
- if (fn == 0) return 0;
- fp = (strcmp(fn, "-") == 0)? gzdopen(fileno(stdin), "r") : gzopen(fn, "r");
- if (fp == 0) return 0;
- hash = kh_init(ref);
- ks = ks_init(fp);
- str = (kstring_t*)calloc(1, sizeof(kstring_t));
- while (ks_getuntil(ks, 0, str, &dret) > 0) {
- char *s = strdup(str->s);
- int len, i;
- i = kh_size(hash);
- ks_getuntil(ks, 0, str, &dret);
- len = atoi(str->s);
- k = kh_put(ref, hash, s, &ret);
- if (ret == 0) {
- fprintf(stderr, "[sam_header_read2] duplicated sequence name: %s\n", s);
- error = 1;
- }
- kh_value(hash, k) = (uint64_t)len<<32 | i;
- if (dret != '\n')
- while ((c = ks_getc(ks)) != '\n' && c != -1);
- }
- ks_destroy(ks);
- gzclose(fp);
- free(str->s); free(str);
- fprintf(stderr, "[sam_header_read2] %d sequences loaded.\n", kh_size(hash));
- if (error) return 0;
- header = hash2header(hash);
- kh_destroy(ref, hash);
- return header;
-}
-static inline uint8_t *alloc_data(bam1_t *b, int size)
-{
- if (b->m_data < size) {
- b->m_data = size;
- kroundup32(b->m_data);
- b->data = (uint8_t*)realloc(b->data, b->m_data);
- }
- return b->data;
-}
-static inline void parse_error(int64_t n_lines, const char * __restrict msg)
-{
- fprintf(stderr, "Parse error at line %lld: %s\n", (long long)n_lines, msg);
- abort();
-}
-static inline void append_text(bam_header_t *header, kstring_t *str)
-{
- size_t x = header->l_text, y = header->l_text + str->l + 2; // 2 = 1 byte dret + 1 byte null
- kroundup32(x); kroundup32(y);
- if (x < y)
- {
- header->n_text = y;
- header->text = (char*)realloc(header->text, y);
- if ( !header->text )
- {
- fprintf(stderr,"realloc failed to alloc %ld bytes\n", y);
- abort();
- }
- }
- // Sanity check
- if ( header->l_text+str->l+1 >= header->n_text )
- {
- fprintf(stderr,"append_text FIXME: %ld>=%ld, x=%ld,y=%ld\n", header->l_text+str->l+1,(long)header->n_text,x,y);
- abort();
- }
- strncpy(header->text + header->l_text, str->s, str->l+1); // we cannot use strcpy() here.
- header->l_text += str->l + 1;
- header->text[header->l_text] = 0;
-}
-
-int sam_header_parse(bam_header_t *h)
-{
- char **tmp;
- int i;
- free(h->target_len); free(h->target_name);
- h->n_targets = 0; h->target_len = 0; h->target_name = 0;
- if (h->l_text < 3) return 0;
- if (h->dict == 0) h->dict = sam_header_parse2(h->text);
- tmp = sam_header2list(h->dict, "SQ", "SN", &h->n_targets);
- if (h->n_targets == 0) return 0;
- h->target_name = calloc(h->n_targets, sizeof(void*));
- for (i = 0; i < h->n_targets; ++i)
- h->target_name[i] = strdup(tmp[i]);
- free(tmp);
- tmp = sam_header2list(h->dict, "SQ", "LN", &h->n_targets);
- h->target_len = calloc(h->n_targets, 4);
- for (i = 0; i < h->n_targets; ++i)
- h->target_len[i] = atoi(tmp[i]);
- free(tmp);
- return h->n_targets;
-}
-
-bam_header_t *sam_header_read(tamFile fp)
-{
- int ret, dret;
- bam_header_t *header = bam_header_init();
- kstring_t *str = fp->str;
- while ((ret = ks_getuntil(fp->ks, KS_SEP_TAB, str, &dret)) >= 0 && str->s[0] == '@') { // skip header
- str->s[str->l] = dret; // note that str->s is NOT null terminated!!
- append_text(header, str);
- if (dret != '\n') {
- ret = ks_getuntil(fp->ks, '\n', str, &dret);
- str->s[str->l] = '\n'; // NOT null terminated!!
- append_text(header, str);
- }
- ++fp->n_lines;
- }
- sam_header_parse(header);
- bam_init_header_hash(header);
- fp->is_first = 1;
- return header;
-}
-
-int sam_read1(tamFile fp, bam_header_t *header, bam1_t *b)
-{
- int ret, doff, doff0, dret, z = 0;
- bam1_core_t *c = &b->core;
- kstring_t *str = fp->str;
- kstream_t *ks = fp->ks;
-
- if (fp->is_first) {
- fp->is_first = 0;
- ret = str->l;
- } else {
- do { // special consideration for empty lines
- ret = ks_getuntil(fp->ks, KS_SEP_TAB, str, &dret);
- if (ret >= 0) z += str->l + 1;
- } while (ret == 0);
- }
- if (ret < 0) return -1;
- ++fp->n_lines;
- doff = 0;
-
- { // name
- c->l_qname = strlen(str->s) + 1;
- memcpy(alloc_data(b, doff + c->l_qname) + doff, str->s, c->l_qname);
- doff += c->l_qname;
- }
- { // flag
- long flag;
- char *s;
- ret = ks_getuntil(ks, KS_SEP_TAB, str, &dret); z += str->l + 1;
- flag = strtol((char*)str->s, &s, 0);
- if (*s) { // not the end of the string
- flag = 0;
- for (s = str->s; *s; ++s)
- flag |= bam_char2flag_table[(int)*s];
- }
- c->flag = flag;
- }
- { // tid, pos, qual
- ret = ks_getuntil(ks, KS_SEP_TAB, str, &dret); z += str->l + 1; c->tid = bam_get_tid(header, str->s);
- if (c->tid < 0 && strcmp(str->s, "*")) {
- if (header->n_targets == 0) {
- fprintf(stderr, "[sam_read1] missing header? Abort!\n");
- exit(1);
- } else fprintf(stderr, "[sam_read1] reference '%s' is recognized as '*'.\n", str->s);
- }
- ret = ks_getuntil(ks, KS_SEP_TAB, str, &dret); z += str->l + 1; c->pos = isdigit(str->s[0])? atoi(str->s) - 1 : -1;
- ret = ks_getuntil(ks, KS_SEP_TAB, str, &dret); z += str->l + 1; c->qual = isdigit(str->s[0])? atoi(str->s) : 0;
- if (ret < 0) return -2;
- }
- { // cigar
- char *s, *t;
- int i, op;
- long x;
- c->n_cigar = 0;
- if (ks_getuntil(ks, KS_SEP_TAB, str, &dret) < 0) return -3;
- z += str->l + 1;
- if (str->s[0] != '*') {
- uint32_t *cigar;
- for (s = str->s; *s; ++s) {
- if ((isalpha(*s)) || (*s=='=')) ++c->n_cigar;
- else if (!isdigit(*s)) parse_error(fp->n_lines, "invalid CIGAR character");
- }
- b->data = alloc_data(b, doff + c->n_cigar * 4);
- cigar = bam1_cigar(b);
- for (i = 0, s = str->s; i != c->n_cigar; ++i) {
- x = strtol(s, &t, 10);
- op = toupper(*t);
- if (op == 'M') op = BAM_CMATCH;
- else if (op == 'I') op = BAM_CINS;
- else if (op == 'D') op = BAM_CDEL;
- else if (op == 'N') op = BAM_CREF_SKIP;
- else if (op == 'S') op = BAM_CSOFT_CLIP;
- else if (op == 'H') op = BAM_CHARD_CLIP;
- else if (op == 'P') op = BAM_CPAD;
- else if (op == '=') op = BAM_CEQUAL;
- else if (op == 'X') op = BAM_CDIFF;
- else if (op == 'B') op = BAM_CBACK;
- else parse_error(fp->n_lines, "invalid CIGAR operation");
- s = t + 1;
- cigar[i] = bam_cigar_gen(x, op);
- }
- if (*s) parse_error(fp->n_lines, "unmatched CIGAR operation");
- c->bin = bam_reg2bin(c->pos, bam_calend(c, cigar));
- doff += c->n_cigar * 4;
- } else {
- if (!(c->flag&BAM_FUNMAP)) {
- fprintf(stderr, "Parse warning at line %lld: mapped sequence without CIGAR\n", (long long)fp->n_lines);
- c->flag |= BAM_FUNMAP;
- }
- c->bin = bam_reg2bin(c->pos, c->pos + 1);
- }
- }
- { // mtid, mpos, isize
- ret = ks_getuntil(ks, KS_SEP_TAB, str, &dret); z += str->l + 1;
- c->mtid = strcmp(str->s, "=")? bam_get_tid(header, str->s) : c->tid;
- ret = ks_getuntil(ks, KS_SEP_TAB, str, &dret); z += str->l + 1;
- c->mpos = isdigit(str->s[0])? atoi(str->s) - 1 : -1;
- ret = ks_getuntil(ks, KS_SEP_TAB, str, &dret); z += str->l + 1;
- c->isize = (str->s[0] == '-' || isdigit(str->s[0]))? atoi(str->s) : 0;
- if (ret < 0) return -4;
- }
- { // seq and qual
- int i;
- uint8_t *p = 0;
- if (ks_getuntil(ks, KS_SEP_TAB, str, &dret) < 0) return -5; // seq
- z += str->l + 1;
- if (strcmp(str->s, "*")) {
- c->l_qseq = strlen(str->s);
- if (c->n_cigar && c->l_qseq != (int32_t)bam_cigar2qlen(c, bam1_cigar(b))) {
- fprintf(stderr, "Line %ld, sequence length %i vs %i from CIGAR\n",
- (long)fp->n_lines, c->l_qseq, (int32_t)bam_cigar2qlen(c, bam1_cigar(b)));
- parse_error(fp->n_lines, "CIGAR and sequence length are inconsistent");
- }
- p = (uint8_t*)alloc_data(b, doff + c->l_qseq + (c->l_qseq+1)/2) + doff;
- memset(p, 0, (c->l_qseq+1)/2);
- for (i = 0; i < c->l_qseq; ++i)
- p[i/2] |= bam_nt16_table[(int)str->s[i]] << 4*(1-i%2);
- } else c->l_qseq = 0;
- if (ks_getuntil(ks, KS_SEP_TAB, str, &dret) < 0) return -6; // qual
- z += str->l + 1;
- if (strcmp(str->s, "*") && c->l_qseq != strlen(str->s))
- parse_error(fp->n_lines, "sequence and quality are inconsistent");
- p += (c->l_qseq+1)/2;
- if (strcmp(str->s, "*") == 0) for (i = 0; i < c->l_qseq; ++i) p[i] = 0xff;
- else for (i = 0; i < c->l_qseq; ++i) p[i] = str->s[i] - 33;
- doff += c->l_qseq + (c->l_qseq+1)/2;
- }
- doff0 = doff;
- if (dret != '\n' && dret != '\r') { // aux
- while (ks_getuntil(ks, KS_SEP_TAB, str, &dret) >= 0) {
- uint8_t *s, type, key[2];
- z += str->l + 1;
- if (str->l < 6 || str->s[2] != ':' || str->s[4] != ':')
- parse_error(fp->n_lines, "missing colon in auxiliary data");
- key[0] = str->s[0]; key[1] = str->s[1];
- type = str->s[3];
- s = alloc_data(b, doff + 3) + doff;
- s[0] = key[0]; s[1] = key[1]; s += 2; doff += 2;
- if (type == 'A' || type == 'a' || type == 'c' || type == 'C') { // c and C for backward compatibility
- s = alloc_data(b, doff + 2) + doff;
- *s++ = 'A'; *s = str->s[5];
- doff += 2;
- } else if (type == 'I' || type == 'i') {
- long long x;
- s = alloc_data(b, doff + 5) + doff;
- x = (long long)atoll(str->s + 5);
- if (x < 0) {
- if (x >= -127) {
- *s++ = 'c'; *(int8_t*)s = (int8_t)x;
- s += 1; doff += 2;
- } else if (x >= -32767) {
- *s++ = 's'; *(int16_t*)s = (int16_t)x;
- s += 2; doff += 3;
- } else {
- *s++ = 'i'; *(int32_t*)s = (int32_t)x;
- s += 4; doff += 5;
- if (x < -2147483648ll)
- fprintf(stderr, "Parse warning at line %lld: integer %lld is out of range.",
- (long long)fp->n_lines, x);
- }
- } else {
- if (x <= 255) {
- *s++ = 'C'; *s++ = (uint8_t)x;
- doff += 2;
- } else if (x <= 65535) {
- *s++ = 'S'; *(uint16_t*)s = (uint16_t)x;
- s += 2; doff += 3;
- } else {
- *s++ = 'I'; *(uint32_t*)s = (uint32_t)x;
- s += 4; doff += 5;
- if (x > 4294967295ll)
- fprintf(stderr, "Parse warning at line %lld: integer %lld is out of range.",
- (long long)fp->n_lines, x);
- }
- }
- } else if (type == 'f') {
- s = alloc_data(b, doff + 5) + doff;
- *s++ = 'f';
- *(float*)s = (float)atof(str->s + 5);
- s += 4; doff += 5;
- } else if (type == 'd') {
- s = alloc_data(b, doff + 9) + doff;
- *s++ = 'd';
- *(float*)s = (float)atof(str->s + 9);
- s += 8; doff += 9;
- } else if (type == 'Z' || type == 'H') {
- int size = 1 + (str->l - 5) + 1;
- if (type == 'H') { // check whether the hex string is valid
- int i;
- if ((str->l - 5) % 2 == 1) parse_error(fp->n_lines, "length of the hex string not even");
- for (i = 0; i < str->l - 5; ++i) {
- int c = toupper(str->s[5 + i]);
- if (!((c >= '0' && c <= '9') || (c >= 'A' && c <= 'F')))
- parse_error(fp->n_lines, "invalid hex character");
- }
- }
- s = alloc_data(b, doff + size) + doff;
- *s++ = type;
- memcpy(s, str->s + 5, str->l - 5);
- s[str->l - 5] = 0;
- doff += size;
- } else if (type == 'B') {
- int32_t n = 0, Bsize, k = 0, size;
- char *p;
- if (str->l < 8) parse_error(fp->n_lines, "too few values in aux type B");
- Bsize = bam_aux_type2size(str->s[5]); // the size of each element
- for (p = (char*)str->s + 6; *p; ++p) // count the number of elements in the array
- if (*p == ',') ++n;
- p = str->s + 7; // now p points to the first number in the array
- size = 6 + Bsize * n; // total number of bytes allocated to this tag
- s = alloc_data(b, doff + 6 * Bsize * n) + doff; // allocate memory
- *s++ = 'B'; *s++ = str->s[5];
- memcpy(s, &n, 4); s += 4; // write the number of elements
- if (str->s[5] == 'c') while (p < str->s + str->l) ((int8_t*)s)[k++] = (int8_t)strtol(p, &p, 0), ++p;
- else if (str->s[5] == 'C') while (p < str->s + str->l) ((uint8_t*)s)[k++] = (uint8_t)strtol(p, &p, 0), ++p;
- else if (str->s[5] == 's') while (p < str->s + str->l) ((int16_t*)s)[k++] = (int16_t)strtol(p, &p, 0), ++p; // FIXME: avoid unaligned memory
- else if (str->s[5] == 'S') while (p < str->s + str->l) ((uint16_t*)s)[k++] = (uint16_t)strtol(p, &p, 0), ++p;
- else if (str->s[5] == 'i') while (p < str->s + str->l) ((int32_t*)s)[k++] = (int32_t)strtol(p, &p, 0), ++p;
- else if (str->s[5] == 'I') while (p < str->s + str->l) ((uint32_t*)s)[k++] = (uint32_t)strtol(p, &p, 0), ++p;
- else if (str->s[5] == 'f') while (p < str->s + str->l) ((float*)s)[k++] = (float)strtod(p, &p), ++p;
- else parse_error(fp->n_lines, "unrecognized array type");
- s += Bsize * n; doff += size;
- } else parse_error(fp->n_lines, "unrecognized type");
- if (dret == '\n' || dret == '\r') break;
- }
- }
- b->l_aux = doff - doff0;
- b->data_len = doff;
- if (bam_no_B) bam_remove_B(b);
- return z;
-}
-
-tamFile sam_open(const char *fn)
-{
- tamFile fp;
- gzFile gzfp = (strcmp(fn, "-") == 0)? gzdopen(fileno(stdin), "rb") : gzopen(fn, "rb");
- if (gzfp == 0) return 0;
- fp = (tamFile)calloc(1, sizeof(struct __tamFile_t));
- fp->str = (kstring_t*)calloc(1, sizeof(kstring_t));
- fp->fp = gzfp;
- fp->ks = ks_init(fp->fp);
- return fp;
-}
-
-void sam_close(tamFile fp)
-{
- if (fp) {
- ks_destroy(fp->ks);
- gzclose(fp->fp);
- free(fp->str->s); free(fp->str);
- free(fp);
- }
-}
diff --git a/bam_index.c b/bam_index.c
deleted file mode 100644
index d6b94e2..0000000
--- a/bam_index.c
+++ /dev/null
@@ -1,724 +0,0 @@
-#include <ctype.h>
-#include <assert.h>
-#include "bam.h"
-#include "khash.h"
-#include "ksort.h"
-#include "bam_endian.h"
-#ifdef _USE_KNETFILE
-#include "knetfile.h"
-#endif
-
-/*!
- @header
-
- Alignment indexing. Before indexing, BAM must be sorted based on the
- leftmost coordinate of alignments. In indexing, BAM uses two indices:
- a UCSC binning index and a simple linear index. The binning index is
- efficient for alignments spanning long distance, while the auxiliary
- linear index helps to reduce unnecessary seek calls especially for
- short alignments.
-
- The UCSC binning scheme was suggested by Richard Durbin and Lincoln
- Stein and is explained by Kent et al. (2002). In this scheme, each bin
- represents a contiguous genomic region which can be fully contained in
- another bin; each alignment is associated with a bin which represents
- the smallest region containing the entire alignment. The binning
- scheme is essentially another representation of R-tree. A distinct bin
- uniquely corresponds to a distinct internal node in a R-tree. Bin A is
- a child of Bin B if region A is contained in B.
-
- In BAM, each bin may span 2^29, 2^26, 2^23, 2^20, 2^17 or 2^14 bp. Bin
- 0 spans a 512Mbp region, bins 1-8 span 64Mbp, 9-72 8Mbp, 73-584 1Mbp,
- 585-4680 128Kbp and bins 4681-37449 span 16Kbp regions. If we want to
- find the alignments overlapped with a region [rbeg,rend), we need to
- calculate the list of bins that may be overlapped the region and test
- the alignments in the bins to confirm the overlaps. If the specified
- region is short, typically only a few alignments in six bins need to
- be retrieved. The overlapping alignments can be quickly fetched.
-
- */
-
-#define BAM_MIN_CHUNK_GAP 32768
-// 1<<14 is the size of minimum bin.
-#define BAM_LIDX_SHIFT 14
-
-#define BAM_MAX_BIN 37450 // =(8^6-1)/7+1
-
-typedef struct {
- uint64_t u, v;
-} pair64_t;
-
-#define pair64_lt(a,b) ((a).u < (b).u)
-KSORT_INIT(off, pair64_t, pair64_lt)
-
-typedef struct {
- uint32_t m, n;
- pair64_t *list;
-} bam_binlist_t;
-
-typedef struct {
- int32_t n, m;
- uint64_t *offset;
-} bam_lidx_t;
-
-KHASH_MAP_INIT_INT(i, bam_binlist_t)
-
-struct __bam_index_t {
- int32_t n;
- uint64_t n_no_coor; // unmapped reads without coordinate
- khash_t(i) **index;
- bam_lidx_t *index2;
-};
-
-// requirement: len <= LEN_MASK
-static inline void insert_offset(khash_t(i) *h, int bin, uint64_t beg, uint64_t end)
-{
- khint_t k;
- bam_binlist_t *l;
- int ret;
- k = kh_put(i, h, bin, &ret);
- l = &kh_value(h, k);
- if (ret) { // not present
- l->m = 1; l->n = 0;
- l->list = (pair64_t*)calloc(l->m, 16);
- }
- if (l->n == l->m) {
- l->m <<= 1;
- l->list = (pair64_t*)realloc(l->list, l->m * 16);
- }
- l->list[l->n].u = beg; l->list[l->n++].v = end;
-}
-
-static inline void insert_offset2(bam_lidx_t *index2, bam1_t *b, uint64_t offset)
-{
- int i, beg, end;
- beg = b->core.pos >> BAM_LIDX_SHIFT;
- end = (bam_calend(&b->core, bam1_cigar(b)) - 1) >> BAM_LIDX_SHIFT;
- if (index2->m < end + 1) {
- int old_m = index2->m;
- index2->m = end + 1;
- kroundup32(index2->m);
- index2->offset = (uint64_t*)realloc(index2->offset, index2->m * 8);
- memset(index2->offset + old_m, 0, 8 * (index2->m - old_m));
- }
- if (beg == end) {
- if (index2->offset[beg] == 0) index2->offset[beg] = offset;
- } else {
- for (i = beg; i <= end; ++i)
- if (index2->offset[i] == 0) index2->offset[i] = offset;
- }
- index2->n = end + 1;
-}
-
-static void merge_chunks(bam_index_t *idx)
-{
-#if defined(BAM_TRUE_OFFSET) || defined(BAM_VIRTUAL_OFFSET16)
- khash_t(i) *index;
- int i, l, m;
- khint_t k;
- for (i = 0; i < idx->n; ++i) {
- index = idx->index[i];
- for (k = kh_begin(index); k != kh_end(index); ++k) {
- bam_binlist_t *p;
- if (!kh_exist(index, k) || kh_key(index, k) == BAM_MAX_BIN) continue;
- p = &kh_value(index, k);
- m = 0;
- for (l = 1; l < p->n; ++l) {
-#ifdef BAM_TRUE_OFFSET
- if (p->list[m].v + BAM_MIN_CHUNK_GAP > p->list[l].u) p->list[m].v = p->list[l].v;
-#else
- if (p->list[m].v>>16 == p->list[l].u>>16) p->list[m].v = p->list[l].v;
-#endif
- else p->list[++m] = p->list[l];
- } // ~for(l)
- p->n = m + 1;
- } // ~for(k)
- } // ~for(i)
-#endif // defined(BAM_TRUE_OFFSET) || defined(BAM_BGZF)
-}
-
-static void fill_missing(bam_index_t *idx)
-{
- int i, j;
- for (i = 0; i < idx->n; ++i) {
- bam_lidx_t *idx2 = &idx->index2[i];
- for (j = 1; j < idx2->n; ++j)
- if (idx2->offset[j] == 0)
- idx2->offset[j] = idx2->offset[j-1];
- }
-}
-
-bam_index_t *bam_index_core(bamFile fp)
-{
- bam1_t *b;
- bam_header_t *h;
- int i, ret;
- bam_index_t *idx;
- uint32_t last_bin, save_bin;
- int32_t last_coor, last_tid, save_tid;
- bam1_core_t *c;
- uint64_t save_off, last_off, n_mapped, n_unmapped, off_beg, off_end, n_no_coor;
-
- h = bam_header_read(fp);
- if(h == 0) {
- fprintf(stderr, "[bam_index_core] Invalid BAM header.");
- return NULL;
- }
-
- idx = (bam_index_t*)calloc(1, sizeof(bam_index_t));
- b = (bam1_t*)calloc(1, sizeof(bam1_t));
- c = &b->core;
-
- idx->n = h->n_targets;
- bam_header_destroy(h);
- idx->index = (khash_t(i)**)calloc(idx->n, sizeof(void*));
- for (i = 0; i < idx->n; ++i) idx->index[i] = kh_init(i);
- idx->index2 = (bam_lidx_t*)calloc(idx->n, sizeof(bam_lidx_t));
-
- save_bin = save_tid = last_tid = last_bin = 0xffffffffu;
- save_off = last_off = bam_tell(fp); last_coor = 0xffffffffu;
- n_mapped = n_unmapped = n_no_coor = off_end = 0;
- off_beg = off_end = bam_tell(fp);
- while ((ret = bam_read1(fp, b)) >= 0) {
- if (c->tid < 0) ++n_no_coor;
- if (last_tid < c->tid || (last_tid >= 0 && c->tid < 0)) { // change of chromosomes
- last_tid = c->tid;
- last_bin = 0xffffffffu;
- } else if ((uint32_t)last_tid > (uint32_t)c->tid) {
- fprintf(stderr, "[bam_index_core] the alignment is not sorted (%s): %d-th chr > %d-th chr\n",
- bam1_qname(b), last_tid+1, c->tid+1);
- return NULL;
- } else if ((int32_t)c->tid >= 0 && last_coor > c->pos) {
- fprintf(stderr, "[bam_index_core] the alignment is not sorted (%s): %u > %u in %d-th chr\n",
- bam1_qname(b), last_coor, c->pos, c->tid+1);
- return NULL;
- }
- if (c->tid >= 0 && !(c->flag & BAM_FUNMAP)) insert_offset2(&idx->index2[b->core.tid], b, last_off);
- if (c->bin != last_bin) { // then possibly write the binning index
- if (save_bin != 0xffffffffu) // save_bin==0xffffffffu only happens to the first record
- insert_offset(idx->index[save_tid], save_bin, save_off, last_off);
- if (last_bin == 0xffffffffu && save_tid != 0xffffffffu) { // write the meta element
- off_end = last_off;
- insert_offset(idx->index[save_tid], BAM_MAX_BIN, off_beg, off_end);
- insert_offset(idx->index[save_tid], BAM_MAX_BIN, n_mapped, n_unmapped);
- n_mapped = n_unmapped = 0;
- off_beg = off_end;
- }
- save_off = last_off;
- save_bin = last_bin = c->bin;
- save_tid = c->tid;
- if (save_tid < 0) break;
- }
- if (bam_tell(fp) <= last_off) {
- fprintf(stderr, "[bam_index_core] bug in BGZF/RAZF: %llx < %llx\n",
- (unsigned long long)bam_tell(fp), (unsigned long long)last_off);
- return NULL;
- }
- if (c->flag & BAM_FUNMAP) ++n_unmapped;
- else ++n_mapped;
- last_off = bam_tell(fp);
- last_coor = b->core.pos;
- }
- if (save_tid >= 0) {
- insert_offset(idx->index[save_tid], save_bin, save_off, bam_tell(fp));
- insert_offset(idx->index[save_tid], BAM_MAX_BIN, off_beg, bam_tell(fp));
- insert_offset(idx->index[save_tid], BAM_MAX_BIN, n_mapped, n_unmapped);
- }
- merge_chunks(idx);
- fill_missing(idx);
- if (ret >= 0) {
- while ((ret = bam_read1(fp, b)) >= 0) {
- ++n_no_coor;
- if (c->tid >= 0 && n_no_coor) {
- fprintf(stderr, "[bam_index_core] the alignment is not sorted: reads without coordinates prior to reads with coordinates.\n");
- return NULL;
- }
- }
- }
- if (ret < -1) fprintf(stderr, "[bam_index_core] truncated file? Continue anyway. (%d)\n", ret);
- free(b->data); free(b);
- idx->n_no_coor = n_no_coor;
- return idx;
-}
-
-void bam_index_destroy(bam_index_t *idx)
-{
- khint_t k;
- int i;
- if (idx == 0) return;
- for (i = 0; i < idx->n; ++i) {
- khash_t(i) *index = idx->index[i];
- bam_lidx_t *index2 = idx->index2 + i;
- for (k = kh_begin(index); k != kh_end(index); ++k) {
- if (kh_exist(index, k))
- free(kh_value(index, k).list);
- }
- kh_destroy(i, index);
- free(index2->offset);
- }
- free(idx->index); free(idx->index2);
- free(idx);
-}
-
-void bam_index_save(const bam_index_t *idx, FILE *fp)
-{
- int32_t i, size;
- khint_t k;
- fwrite("BAI\1", 1, 4, fp);
- if (bam_is_be) {
- uint32_t x = idx->n;
- fwrite(bam_swap_endian_4p(&x), 4, 1, fp);
- } else fwrite(&idx->n, 4, 1, fp);
- for (i = 0; i < idx->n; ++i) {
- khash_t(i) *index = idx->index[i];
- bam_lidx_t *index2 = idx->index2 + i;
- // write binning index
- size = kh_size(index);
- if (bam_is_be) { // big endian
- uint32_t x = size;
- fwrite(bam_swap_endian_4p(&x), 4, 1, fp);
- } else fwrite(&size, 4, 1, fp);
- for (k = kh_begin(index); k != kh_end(index); ++k) {
- if (kh_exist(index, k)) {
- bam_binlist_t *p = &kh_value(index, k);
- if (bam_is_be) { // big endian
- uint32_t x;
- x = kh_key(index, k); fwrite(bam_swap_endian_4p(&x), 4, 1, fp);
- x = p->n; fwrite(bam_swap_endian_4p(&x), 4, 1, fp);
- for (x = 0; (int)x < p->n; ++x) {
- bam_swap_endian_8p(&p->list[x].u);
- bam_swap_endian_8p(&p->list[x].v);
- }
- fwrite(p->list, 16, p->n, fp);
- for (x = 0; (int)x < p->n; ++x) {
- bam_swap_endian_8p(&p->list[x].u);
- bam_swap_endian_8p(&p->list[x].v);
- }
- } else {
- fwrite(&kh_key(index, k), 4, 1, fp);
- fwrite(&p->n, 4, 1, fp);
- fwrite(p->list, 16, p->n, fp);
- }
- }
- }
- // write linear index (index2)
- if (bam_is_be) {
- int x = index2->n;
- fwrite(bam_swap_endian_4p(&x), 4, 1, fp);
- } else fwrite(&index2->n, 4, 1, fp);
- if (bam_is_be) { // big endian
- int x;
- for (x = 0; (int)x < index2->n; ++x)
- bam_swap_endian_8p(&index2->offset[x]);
- fwrite(index2->offset, 8, index2->n, fp);
- for (x = 0; (int)x < index2->n; ++x)
- bam_swap_endian_8p(&index2->offset[x]);
- } else fwrite(index2->offset, 8, index2->n, fp);
- }
- { // write the number of reads coor-less records.
- uint64_t x = idx->n_no_coor;
- if (bam_is_be) bam_swap_endian_8p(&x);
- fwrite(&x, 8, 1, fp);
- }
- fflush(fp);
-}
-
-static bam_index_t *bam_index_load_core(FILE *fp)
-{
- int i;
- char magic[4];
- bam_index_t *idx;
- if (fp == 0) {
- fprintf(stderr, "[bam_index_load_core] fail to load index.\n");
- return 0;
- }
- fread(magic, 1, 4, fp);
- if (strncmp(magic, "BAI\1", 4)) {
- fprintf(stderr, "[bam_index_load] wrong magic number.\n");
- fclose(fp);
- return 0;
- }
- idx = (bam_index_t*)calloc(1, sizeof(bam_index_t));
- fread(&idx->n, 4, 1, fp);
- if (bam_is_be) bam_swap_endian_4p(&idx->n);
- idx->index = (khash_t(i)**)calloc(idx->n, sizeof(void*));
- idx->index2 = (bam_lidx_t*)calloc(idx->n, sizeof(bam_lidx_t));
- for (i = 0; i < idx->n; ++i) {
- khash_t(i) *index;
- bam_lidx_t *index2 = idx->index2 + i;
- uint32_t key, size;
- khint_t k;
- int j, ret;
- bam_binlist_t *p;
- index = idx->index[i] = kh_init(i);
- // load binning index
- fread(&size, 4, 1, fp);
- if (bam_is_be) bam_swap_endian_4p(&size);
- for (j = 0; j < (int)size; ++j) {
- fread(&key, 4, 1, fp);
- if (bam_is_be) bam_swap_endian_4p(&key);
- k = kh_put(i, index, key, &ret);
- p = &kh_value(index, k);
- fread(&p->n, 4, 1, fp);
- if (bam_is_be) bam_swap_endian_4p(&p->n);
- p->m = p->n;
- p->list = (pair64_t*)malloc(p->m * 16);
- fread(p->list, 16, p->n, fp);
- if (bam_is_be) {
- int x;
- for (x = 0; x < p->n; ++x) {
- bam_swap_endian_8p(&p->list[x].u);
- bam_swap_endian_8p(&p->list[x].v);
- }
- }
- }
- // load linear index
- fread(&index2->n, 4, 1, fp);
- if (bam_is_be) bam_swap_endian_4p(&index2->n);
- index2->m = index2->n;
- index2->offset = (uint64_t*)calloc(index2->m, 8);
- fread(index2->offset, index2->n, 8, fp);
- if (bam_is_be)
- for (j = 0; j < index2->n; ++j) bam_swap_endian_8p(&index2->offset[j]);
- }
- if (fread(&idx->n_no_coor, 8, 1, fp) == 0) idx->n_no_coor = 0;
- if (bam_is_be) bam_swap_endian_8p(&idx->n_no_coor);
- return idx;
-}
-
-bam_index_t *bam_index_load_local(const char *_fn)
-{
- FILE *fp;
- char *fnidx, *fn;
-
- if (strstr(_fn, "ftp://") == _fn || strstr(_fn, "http://") == _fn) {
- const char *p;
- int l = strlen(_fn);
- for (p = _fn + l - 1; p >= _fn; --p)
- if (*p == '/') break;
- fn = strdup(p + 1);
- } else fn = strdup(_fn);
- fnidx = (char*)calloc(strlen(fn) + 5, 1);
- strcpy(fnidx, fn); strcat(fnidx, ".bai");
- fp = fopen(fnidx, "rb");
- if (fp == 0) { // try "{base}.bai"
- char *s = strstr(fn, "bam");
- if (s == fn + strlen(fn) - 3) {
- strcpy(fnidx, fn);
- fnidx[strlen(fn)-1] = 'i';
- fp = fopen(fnidx, "rb");
- }
- }
- free(fnidx); free(fn);
- if (fp) {
- bam_index_t *idx = bam_index_load_core(fp);
- fclose(fp);
- return idx;
- } else return 0;
-}
-
-#ifdef _USE_KNETFILE
-static void download_from_remote(const char *url)
-{
- const int buf_size = 1 * 1024 * 1024;
- char *fn;
- FILE *fp;
- uint8_t *buf;
- knetFile *fp_remote;
- int l;
- if (strstr(url, "ftp://") != url && strstr(url, "http://") != url) return;
- l = strlen(url);
- for (fn = (char*)url + l - 1; fn >= url; --fn)
- if (*fn == '/') break;
- ++fn; // fn now points to the file name
- fp_remote = knet_open(url, "r");
- if (fp_remote == 0) {
- fprintf(stderr, "[download_from_remote] fail to open remote file.\n");
- return;
- }
- if ((fp = fopen(fn, "wb")) == 0) {
- fprintf(stderr, "[download_from_remote] fail to create file in the working directory.\n");
- knet_close(fp_remote);
- return;
- }
- buf = (uint8_t*)calloc(buf_size, 1);
- while ((l = knet_read(fp_remote, buf, buf_size)) != 0)
- fwrite(buf, 1, l, fp);
- free(buf);
- fclose(fp);
- knet_close(fp_remote);
-}
-#else
-static void download_from_remote(const char *url)
-{
- return;
-}
-#endif
-
-bam_index_t *bam_index_load(const char *fn)
-{
- bam_index_t *idx;
- idx = bam_index_load_local(fn);
- if (idx == 0 && (strstr(fn, "ftp://") == fn || strstr(fn, "http://") == fn)) {
- char *fnidx = calloc(strlen(fn) + 5, 1);
- strcat(strcpy(fnidx, fn), ".bai");
- fprintf(stderr, "[bam_index_load] attempting to download the remote index file.\n");
- download_from_remote(fnidx);
- idx = bam_index_load_local(fn);
- }
- if (idx == 0) fprintf(stderr, "[bam_index_load] fail to load BAM index.\n");
- return idx;
-}
-
-int bam_index_build2(const char *fn, const char *_fnidx)
-{
- char *fnidx;
- FILE *fpidx;
- bamFile fp;
- bam_index_t *idx;
- if ((fp = bam_open(fn, "r")) == 0) {
- fprintf(stderr, "[bam_index_build2] fail to open the BAM file.\n");
- return -1;
- }
- idx = bam_index_core(fp);
- bam_close(fp);
- if(idx == 0) {
- fprintf(stderr, "[bam_index_build2] fail to index the BAM file.\n");
- return -1;
- }
- if (_fnidx == 0) {
- fnidx = (char*)calloc(strlen(fn) + 5, 1);
- strcpy(fnidx, fn); strcat(fnidx, ".bai");
- } else fnidx = strdup(_fnidx);
- fpidx = fopen(fnidx, "wb");
- if (fpidx == 0) {
- fprintf(stderr, "[bam_index_build2] fail to create the index file.\n");
- free(fnidx);
- return -1;
- }
- bam_index_save(idx, fpidx);
- bam_index_destroy(idx);
- fclose(fpidx);
- free(fnidx);
- return 0;
-}
-
-int bam_index_build(const char *fn)
-{
- return bam_index_build2(fn, 0);
-}
-
-int bam_index(int argc, char *argv[])
-{
- if (argc < 2) {
- fprintf(stderr, "Usage: samtools index <in.bam> [out.index]\n");
- return 1;
- }
- if (argc >= 3) bam_index_build2(argv[1], argv[2]);
- else bam_index_build(argv[1]);
- return 0;
-}
-
-int bam_idxstats(int argc, char *argv[])
-{
- bam_index_t *idx;
- bam_header_t *header;
- bamFile fp;
- int i;
- if (argc < 2) {
- fprintf(stderr, "Usage: samtools idxstats <in.bam>\n");
- return 1;
- }
- fp = bam_open(argv[1], "r");
- if (fp == 0) { fprintf(stderr, "[%s] fail to open BAM.\n", __func__); return 1; }
- header = bam_header_read(fp);
- bam_close(fp);
- idx = bam_index_load(argv[1]);
- if (idx == 0) { fprintf(stderr, "[%s] fail to load the index.\n", __func__); return 1; }
- for (i = 0; i < idx->n; ++i) {
- khint_t k;
- khash_t(i) *h = idx->index[i];
- printf("%s\t%d", header->target_name[i], header->target_len[i]);
- k = kh_get(i, h, BAM_MAX_BIN);
- if (k != kh_end(h))
- printf("\t%llu\t%llu", (long long)kh_val(h, k).list[1].u, (long long)kh_val(h, k).list[1].v);
- else printf("\t0\t0");
- putchar('\n');
- }
- printf("*\t0\t0\t%llu\n", (long long)idx->n_no_coor);
- bam_header_destroy(header);
- bam_index_destroy(idx);
- return 0;
-}
-
-static inline int reg2bins(uint32_t beg, uint32_t end, uint16_t list[BAM_MAX_BIN])
-{
- int i = 0, k;
- if (beg >= end) return 0;
- if (end >= 1u<<29) end = 1u<<29;
- --end;
- list[i++] = 0;
- for (k = 1 + (beg>>26); k <= 1 + (end>>26); ++k) list[i++] = k;
- for (k = 9 + (beg>>23); k <= 9 + (end>>23); ++k) list[i++] = k;
- for (k = 73 + (beg>>20); k <= 73 + (end>>20); ++k) list[i++] = k;
- for (k = 585 + (beg>>17); k <= 585 + (end>>17); ++k) list[i++] = k;
- for (k = 4681 + (beg>>14); k <= 4681 + (end>>14); ++k) list[i++] = k;
- return i;
-}
-
-static inline int is_overlap(uint32_t beg, uint32_t end, const bam1_t *b)
-{
- uint32_t rbeg = b->core.pos;
- uint32_t rend = b->core.n_cigar? bam_calend(&b->core, bam1_cigar(b)) : b->core.pos + 1;
- return (rend > beg && rbeg < end);
-}
-
-struct __bam_iter_t {
- int from_first; // read from the first record; no random access
- int tid, beg, end, n_off, i, finished;
- uint64_t curr_off;
- pair64_t *off;
-};
-
-// bam_fetch helper function retrieves
-bam_iter_t bam_iter_query(const bam_index_t *idx, int tid, int beg, int end)
-{
- uint16_t *bins;
- int i, n_bins, n_off;
- pair64_t *off;
- khint_t k;
- khash_t(i) *index;
- uint64_t min_off;
- bam_iter_t iter = 0;
-
- if (beg < 0) beg = 0;
- if (end < beg) return 0;
- // initialize iter
- iter = calloc(1, sizeof(struct __bam_iter_t));
- iter->tid = tid, iter->beg = beg, iter->end = end; iter->i = -1;
- //
- bins = (uint16_t*)calloc(BAM_MAX_BIN, 2);
- n_bins = reg2bins(beg, end, bins);
- index = idx->index[tid];
- if (idx->index2[tid].n > 0) {
- min_off = (beg>>BAM_LIDX_SHIFT >= idx->index2[tid].n)? idx->index2[tid].offset[idx->index2[tid].n-1]
- : idx->index2[tid].offset[beg>>BAM_LIDX_SHIFT];
- if (min_off == 0) { // improvement for index files built by tabix prior to 0.1.4
- int n = beg>>BAM_LIDX_SHIFT;
- if (n > idx->index2[tid].n) n = idx->index2[tid].n;
- for (i = n - 1; i >= 0; --i)
- if (idx->index2[tid].offset[i] != 0) break;
- if (i >= 0) min_off = idx->index2[tid].offset[i];
- }
- } else min_off = 0; // tabix 0.1.2 may produce such index files
- for (i = n_off = 0; i < n_bins; ++i) {
- if ((k = kh_get(i, index, bins[i])) != kh_end(index))
- n_off += kh_value(index, k).n;
- }
- if (n_off == 0) {
- free(bins); return iter;
- }
- off = (pair64_t*)calloc(n_off, 16);
- for (i = n_off = 0; i < n_bins; ++i) {
- if ((k = kh_get(i, index, bins[i])) != kh_end(index)) {
- int j;
- bam_binlist_t *p = &kh_value(index, k);
- for (j = 0; j < p->n; ++j)
- if (p->list[j].v > min_off) off[n_off++] = p->list[j];
- }
- }
- free(bins);
- if (n_off == 0) {
- free(off); return iter;
- }
- {
- bam1_t *b = (bam1_t*)calloc(1, sizeof(bam1_t));
- int l;
- ks_introsort(off, n_off, off);
- // resolve completely contained adjacent blocks
- for (i = 1, l = 0; i < n_off; ++i)
- if (off[l].v < off[i].v)
- off[++l] = off[i];
- n_off = l + 1;
- // resolve overlaps between adjacent blocks; this may happen due to the merge in indexing
- for (i = 1; i < n_off; ++i)
- if (off[i-1].v >= off[i].u) off[i-1].v = off[i].u;
- { // merge adjacent blocks
-#if defined(BAM_TRUE_OFFSET) || defined(BAM_VIRTUAL_OFFSET16)
- for (i = 1, l = 0; i < n_off; ++i) {
-#ifdef BAM_TRUE_OFFSET
- if (off[l].v + BAM_MIN_CHUNK_GAP > off[i].u) off[l].v = off[i].v;
-#else
- if (off[l].v>>16 == off[i].u>>16) off[l].v = off[i].v;
-#endif
- else off[++l] = off[i];
- }
- n_off = l + 1;
-#endif
- }
- bam_destroy1(b);
- }
- iter->n_off = n_off; iter->off = off;
- return iter;
-}
-
-pair64_t *get_chunk_coordinates(const bam_index_t *idx, int tid, int beg, int end, int *cnt_off)
-{ // for pysam compatibility
- bam_iter_t iter;
- pair64_t *off;
- iter = bam_iter_query(idx, tid, beg, end);
- off = iter->off; *cnt_off = iter->n_off;
- free(iter);
- return off;
-}
-
-void bam_iter_destroy(bam_iter_t iter)
-{
- if (iter) { free(iter->off); free(iter); }
-}
-
-int bam_iter_read(bamFile fp, bam_iter_t iter, bam1_t *b)
-{
- int ret;
- if (iter && iter->finished) return -1;
- if (iter == 0 || iter->from_first) {
- ret = bam_read1(fp, b);
- if (ret < 0 && iter) iter->finished = 1;
- return ret;
- }
- if (iter->off == 0) return -1;
- for (;;) {
- if (iter->curr_off == 0 || iter->curr_off >= iter->off[iter->i].v) { // then jump to the next chunk
- if (iter->i == iter->n_off - 1) { ret = -1; break; } // no more chunks
- if (iter->i >= 0) assert(iter->curr_off == iter->off[iter->i].v); // otherwise bug
- if (iter->i < 0 || iter->off[iter->i].v != iter->off[iter->i+1].u) { // not adjacent chunks; then seek
- bam_seek(fp, iter->off[iter->i+1].u, SEEK_SET);
- iter->curr_off = bam_tell(fp);
- }
- ++iter->i;
- }
- if ((ret = bam_read1(fp, b)) >= 0) {
- iter->curr_off = bam_tell(fp);
- if (b->core.tid != iter->tid || b->core.pos >= iter->end) { // no need to proceed
- ret = bam_validate1(NULL, b)? -1 : -5; // determine whether end of region or error
- break;
- }
- else if (is_overlap(iter->beg, iter->end, b)) return ret;
- } else break; // end of file or error
- }
- iter->finished = 1;
- return ret;
-}
-
-int bam_fetch(bamFile fp, const bam_index_t *idx, int tid, int beg, int end, void *data, bam_fetch_f func)
-{
- int ret;
- bam_iter_t iter;
- bam1_t *b;
- b = bam_init1();
- iter = bam_iter_query(idx, tid, beg, end);
- while ((ret = bam_iter_read(fp, iter, b)) >= 0) func(b, data);
- bam_iter_destroy(iter);
- bam_destroy1(b);
- return (ret == -1)? 0 : ret;
-}
diff --git a/bam_lpileup.c b/bam_lpileup.c
deleted file mode 100644
index d4dd63b..0000000
--- a/bam_lpileup.c
+++ /dev/null
@@ -1,198 +0,0 @@
-#include <stdlib.h>
-#include <stdio.h>
-#include <assert.h>
-#include "bam.h"
-#include "ksort.h"
-
-#define TV_GAP 2
-
-typedef struct __freenode_t {
- uint32_t level:28, cnt:4;
- struct __freenode_t *next;
-} freenode_t, *freenode_p;
-
-#define freenode_lt(a,b) ((a)->cnt < (b)->cnt || ((a)->cnt == (b)->cnt && (a)->level < (b)->level))
-KSORT_INIT(node, freenode_p, freenode_lt)
-
-/* Memory pool, similar to the one in bam_pileup.c */
-typedef struct {
- int cnt, n, max;
- freenode_t **buf;
-} mempool_t;
-
-static mempool_t *mp_init()
-{
- return (mempool_t*)calloc(1, sizeof(mempool_t));
-}
-static void mp_destroy(mempool_t *mp)
-{
- int k;
- for (k = 0; k < mp->n; ++k) free(mp->buf[k]);
- free(mp->buf); free(mp);
-}
-static inline freenode_t *mp_alloc(mempool_t *mp)
-{
- ++mp->cnt;
- if (mp->n == 0) return (freenode_t*)calloc(1, sizeof(freenode_t));
- else return mp->buf[--mp->n];
-}
-static inline void mp_free(mempool_t *mp, freenode_t *p)
-{
- --mp->cnt; p->next = 0; p->cnt = TV_GAP;
- if (mp->n == mp->max) {
- mp->max = mp->max? mp->max<<1 : 256;
- mp->buf = (freenode_t**)realloc(mp->buf, sizeof(freenode_t*) * mp->max);
- }
- mp->buf[mp->n++] = p;
-}
-
-/* core part */
-struct __bam_lplbuf_t {
- int max, n_cur, n_pre;
- int max_level, *cur_level, *pre_level;
- mempool_t *mp;
- freenode_t **aux, *head, *tail;
- int n_nodes, m_aux;
- bam_pileup_f func;
- void *user_data;
- bam_plbuf_t *plbuf;
-};
-
-void bam_lplbuf_reset(bam_lplbuf_t *buf)
-{
- freenode_t *p, *q;
- bam_plbuf_reset(buf->plbuf);
- for (p = buf->head; p->next;) {
- q = p->next;
- mp_free(buf->mp, p);
- p = q;
- }
- buf->head = buf->tail;
- buf->max_level = 0;
- buf->n_cur = buf->n_pre = 0;
- buf->n_nodes = 0;
-}
-
-static int tview_func(uint32_t tid, uint32_t pos, int n, const bam_pileup1_t *pl, void *data)
-{
- bam_lplbuf_t *tv = (bam_lplbuf_t*)data;
- freenode_t *p;
- int i, l, max_level;
- // allocate memory if necessary
- if (tv->max < n) { // enlarge
- tv->max = n;
- kroundup32(tv->max);
- tv->cur_level = (int*)realloc(tv->cur_level, sizeof(int) * tv->max);
- tv->pre_level = (int*)realloc(tv->pre_level, sizeof(int) * tv->max);
- }
- tv->n_cur = n;
- // update cnt
- for (p = tv->head; p->next; p = p->next)
- if (p->cnt > 0) --p->cnt;
- // calculate cur_level[]
- max_level = 0;
- for (i = l = 0; i < n; ++i) {
- const bam_pileup1_t *p = pl + i;
- if (p->is_head) {
- if (tv->head->next && tv->head->cnt == 0) { // then take a free slot
- freenode_t *p = tv->head->next;
- tv->cur_level[i] = tv->head->level;
- mp_free(tv->mp, tv->head);
- tv->head = p;
- --tv->n_nodes;
- } else tv->cur_level[i] = ++tv->max_level;
- } else {
- tv->cur_level[i] = tv->pre_level[l++];
- if (p->is_tail) { // then return a free slot
- tv->tail->level = tv->cur_level[i];
- tv->tail->next = mp_alloc(tv->mp);
- tv->tail = tv->tail->next;
- ++tv->n_nodes;
- }
- }
- if (tv->cur_level[i] > max_level) max_level = tv->cur_level[i];
- ((bam_pileup1_t*)p)->level = tv->cur_level[i];
- }
- assert(l == tv->n_pre);
- tv->func(tid, pos, n, pl, tv->user_data);
- // sort the linked list
- if (tv->n_nodes) {
- freenode_t *q;
- if (tv->n_nodes + 1 > tv->m_aux) { // enlarge
- tv->m_aux = tv->n_nodes + 1;
- kroundup32(tv->m_aux);
- tv->aux = (freenode_t**)realloc(tv->aux, sizeof(void*) * tv->m_aux);
- }
- for (p = tv->head, i = l = 0; p->next;) {
- if (p->level > max_level) { // then discard this entry
- q = p->next;
- mp_free(tv->mp, p);
- p = q;
- } else {
- tv->aux[i++] = p;
- p = p->next;
- }
- }
- tv->aux[i] = tv->tail; // add a proper tail for the loop below
- tv->n_nodes = i;
- if (tv->n_nodes) {
- ks_introsort(node, tv->n_nodes, tv->aux);
- for (i = 0; i < tv->n_nodes; ++i) tv->aux[i]->next = tv->aux[i+1];
- tv->head = tv->aux[0];
- } else tv->head = tv->tail;
- }
- // clean up
- tv->max_level = max_level;
- memcpy(tv->pre_level, tv->cur_level, tv->n_cur * 4);
- // squeeze out terminated levels
- for (i = l = 0; i < n; ++i) {
- const bam_pileup1_t *p = pl + i;
- if (!p->is_tail)
- tv->pre_level[l++] = tv->pre_level[i];
- }
- tv->n_pre = l;
-/*
- fprintf(stderr, "%d\t", pos+1);
- for (i = 0; i < n; ++i) {
- const bam_pileup1_t *p = pl + i;
- if (p->is_head) fprintf(stderr, "^");
- if (p->is_tail) fprintf(stderr, "$");
- fprintf(stderr, "%d,", p->level);
- }
- fprintf(stderr, "\n");
-*/
- return 0;
-}
-
-bam_lplbuf_t *bam_lplbuf_init(bam_pileup_f func, void *data)
-{
- bam_lplbuf_t *tv;
- tv = (bam_lplbuf_t*)calloc(1, sizeof(bam_lplbuf_t));
- tv->mp = mp_init();
- tv->head = tv->tail = mp_alloc(tv->mp);
- tv->func = func;
- tv->user_data = data;
- tv->plbuf = bam_plbuf_init(tview_func, tv);
- return (bam_lplbuf_t*)tv;
-}
-
-void bam_lplbuf_destroy(bam_lplbuf_t *tv)
-{
- freenode_t *p, *q;
- free(tv->cur_level); free(tv->pre_level);
- bam_plbuf_destroy(tv->plbuf);
- free(tv->aux);
- for (p = tv->head; p->next;) {
- q = p->next;
- mp_free(tv->mp, p); p = q;
- }
- mp_free(tv->mp, p);
- assert(tv->mp->cnt == 0);
- mp_destroy(tv->mp);
- free(tv);
-}
-
-int bam_lplbuf_push(const bam1_t *b, bam_lplbuf_t *tv)
-{
- return bam_plbuf_push(b, tv->plbuf);
-}
diff --git a/bam_md.c b/bam_md.c
deleted file mode 100644
index ce40a12..0000000
--- a/bam_md.c
+++ /dev/null
@@ -1,389 +0,0 @@
-#include <unistd.h>
-#include <assert.h>
-#include <string.h>
-#include <ctype.h>
-#include <math.h>
-#include "faidx.h"
-#include "sam.h"
-#include "kstring.h"
-#include "kaln.h"
-#include "kprobaln.h"
-
-#define USE_EQUAL 1
-#define DROP_TAG 2
-#define BIN_QUAL 4
-#define UPDATE_NM 8
-#define UPDATE_MD 16
-#define HASH_QNM 32
-
-char bam_nt16_nt4_table[] = { 4, 0, 1, 4, 2, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 4 };
-
-int bam_aux_drop_other(bam1_t *b, uint8_t *s);
-
-void bam_fillmd1_core(bam1_t *b, char *ref, int flag, int max_nm)
-{
- uint8_t *seq = bam1_seq(b);
- uint32_t *cigar = bam1_cigar(b);
- bam1_core_t *c = &b->core;
- int i, x, y, u = 0;
- kstring_t *str;
- int32_t old_nm_i = -1, nm = 0;
-
- str = (kstring_t*)calloc(1, sizeof(kstring_t));
- for (i = y = 0, x = c->pos; i < c->n_cigar; ++i) {
- int j, l = cigar[i]>>4, op = cigar[i]&0xf;
- if (op == BAM_CMATCH || op == BAM_CEQUAL || op == BAM_CDIFF) {
- for (j = 0; j < l; ++j) {
- int z = y + j;
- int c1 = bam1_seqi(seq, z), c2 = bam_nt16_table[(int)ref[x+j]];
- if (ref[x+j] == 0) break; // out of boundary
- if ((c1 == c2 && c1 != 15 && c2 != 15) || c1 == 0) { // a match
- if (flag&USE_EQUAL) seq[z/2] &= (z&1)? 0xf0 : 0x0f;
- ++u;
- } else {
- kputw(u, str); kputc(ref[x+j], str);
- u = 0; ++nm;
- }
- }
- if (j < l) break;
- x += l; y += l;
- } else if (op == BAM_CDEL) {
- kputw(u, str); kputc('^', str);
- for (j = 0; j < l; ++j) {
- if (ref[x+j] == 0) break;
- kputc(ref[x+j], str);
- }
- u = 0;
- if (j < l) break;
- x += l; nm += l;
- } else if (op == BAM_CINS || op == BAM_CSOFT_CLIP) {
- y += l;
- if (op == BAM_CINS) nm += l;
- } else if (op == BAM_CREF_SKIP) {
- x += l;
- }
- }
- kputw(u, str);
- // apply max_nm
- if (max_nm > 0 && nm >= max_nm) {
- for (i = y = 0, x = c->pos; i < c->n_cigar; ++i) {
- int j, l = cigar[i]>>4, op = cigar[i]&0xf;
- if (op == BAM_CMATCH || op == BAM_CEQUAL || op == BAM_CDIFF) {
- for (j = 0; j < l; ++j) {
- int z = y + j;
- int c1 = bam1_seqi(seq, z), c2 = bam_nt16_table[(int)ref[x+j]];
- if (ref[x+j] == 0) break; // out of boundary
- if ((c1 == c2 && c1 != 15 && c2 != 15) || c1 == 0) { // a match
- seq[z/2] |= (z&1)? 0x0f : 0xf0;
- bam1_qual(b)[z] = 0;
- }
- }
- if (j < l) break;
- x += l; y += l;
- } else if (op == BAM_CDEL || op == BAM_CREF_SKIP) x += l;
- else if (op == BAM_CINS || op == BAM_CSOFT_CLIP) y += l;
- }
- }
- // update NM
- if (flag & UPDATE_NM) {
- uint8_t *old_nm = bam_aux_get(b, "NM");
- if (c->flag & BAM_FUNMAP) return;
- if (old_nm) old_nm_i = bam_aux2i(old_nm);
- if (!old_nm) bam_aux_append(b, "NM", 'i', 4, (uint8_t*)&nm);
- else if (nm != old_nm_i) {
- fprintf(stderr, "[bam_fillmd1] different NM for read '%s': %d -> %d\n", bam1_qname(b), old_nm_i, nm);
- bam_aux_del(b, old_nm);
- bam_aux_append(b, "NM", 'i', 4, (uint8_t*)&nm);
- }
- }
- // update MD
- if (flag & UPDATE_MD) {
- uint8_t *old_md = bam_aux_get(b, "MD");
- if (c->flag & BAM_FUNMAP) return;
- if (!old_md) bam_aux_append(b, "MD", 'Z', str->l + 1, (uint8_t*)str->s);
- else {
- int is_diff = 0;
- if (strlen((char*)old_md+1) == str->l) {
- for (i = 0; i < str->l; ++i)
- if (toupper(old_md[i+1]) != toupper(str->s[i]))
- break;
- if (i < str->l) is_diff = 1;
- } else is_diff = 1;
- if (is_diff) {
- fprintf(stderr, "[bam_fillmd1] different MD for read '%s': '%s' -> '%s'\n", bam1_qname(b), old_md+1, str->s);
- bam_aux_del(b, old_md);
- bam_aux_append(b, "MD", 'Z', str->l + 1, (uint8_t*)str->s);
- }
- }
- }
- // drop all tags but RG
- if (flag&DROP_TAG) {
- uint8_t *q = bam_aux_get(b, "RG");
- bam_aux_drop_other(b, q);
- }
- // reduce the resolution of base quality
- if (flag&BIN_QUAL) {
- uint8_t *qual = bam1_qual(b);
- for (i = 0; i < b->core.l_qseq; ++i)
- if (qual[i] >= 3) qual[i] = qual[i]/10*10 + 7;
- }
- free(str->s); free(str);
-}
-
-void bam_fillmd1(bam1_t *b, char *ref, int flag)
-{
- bam_fillmd1_core(b, ref, flag, 0);
-}
-
-int bam_cap_mapQ(bam1_t *b, char *ref, int thres)
-{
- uint8_t *seq = bam1_seq(b), *qual = bam1_qual(b);
- uint32_t *cigar = bam1_cigar(b);
- bam1_core_t *c = &b->core;
- int i, x, y, mm, q, len, clip_l, clip_q;
- double t;
- if (thres < 0) thres = 40; // set the default
- mm = q = len = clip_l = clip_q = 0;
- for (i = y = 0, x = c->pos; i < c->n_cigar; ++i) {
- int j, l = cigar[i]>>4, op = cigar[i]&0xf;
- if (op == BAM_CMATCH || op == BAM_CEQUAL || op == BAM_CDIFF) {
- for (j = 0; j < l; ++j) {
- int z = y + j;
- int c1 = bam1_seqi(seq, z), c2 = bam_nt16_table[(int)ref[x+j]];
- if (ref[x+j] == 0) break; // out of boundary
- if (c2 != 15 && c1 != 15 && qual[z] >= 13) { // not ambiguous
- ++len;
- if (c1 && c1 != c2 && qual[z] >= 13) { // mismatch
- ++mm;
- q += qual[z] > 33? 33 : qual[z];
- }
- }
- }
- if (j < l) break;
- x += l; y += l; len += l;
- } else if (op == BAM_CDEL) {
- for (j = 0; j < l; ++j)
- if (ref[x+j] == 0) break;
- if (j < l) break;
- x += l;
- } else if (op == BAM_CSOFT_CLIP) {
- for (j = 0; j < l; ++j) clip_q += qual[y+j];
- clip_l += l;
- y += l;
- } else if (op == BAM_CHARD_CLIP) {
- clip_q += 13 * l;
- clip_l += l;
- } else if (op == BAM_CINS) y += l;
- else if (op == BAM_CREF_SKIP) x += l;
- }
- for (i = 0, t = 1; i < mm; ++i)
- t *= (double)len / (i+1);
- t = q - 4.343 * log(t) + clip_q / 5.;
- if (t > thres) return -1;
- if (t < 0) t = 0;
- t = sqrt((thres - t) / thres) * thres;
-// fprintf(stderr, "%s %lf %d\n", bam1_qname(b), t, q);
- return (int)(t + .499);
-}
-
-int bam_prob_realn_core(bam1_t *b, const char *ref, int flag)
-{
- int k, i, bw, x, y, yb, ye, xb, xe, apply_baq = flag&1, extend_baq = flag>>1&1, redo_baq = flag&4;
- uint32_t *cigar = bam1_cigar(b);
- bam1_core_t *c = &b->core;
- kpa_par_t conf = kpa_par_def;
- uint8_t *bq = 0, *zq = 0, *qual = bam1_qual(b);
- if ((c->flag & BAM_FUNMAP) || b->core.l_qseq == 0) return -1; // do nothing
- // test if BQ or ZQ is present
- if ((bq = bam_aux_get(b, "BQ")) != 0) ++bq;
- if ((zq = bam_aux_get(b, "ZQ")) != 0 && *zq == 'Z') ++zq;
- if (bq && redo_baq)
- {
- bam_aux_del(b, bq-1);
- bq = 0;
- }
- if (bq && zq) { // remove the ZQ tag
- bam_aux_del(b, zq-1);
- zq = 0;
- }
- if (bq || zq) {
- if ((apply_baq && zq) || (!apply_baq && bq)) return -3; // in both cases, do nothing
- if (bq && apply_baq) { // then convert BQ to ZQ
- for (i = 0; i < c->l_qseq; ++i)
- qual[i] = qual[i] + 64 < bq[i]? 0 : qual[i] - ((int)bq[i] - 64);
- *(bq - 3) = 'Z';
- } else if (zq && !apply_baq) { // then convert ZQ to BQ
- for (i = 0; i < c->l_qseq; ++i)
- qual[i] += (int)zq[i] - 64;
- *(zq - 3) = 'B';
- }
- return 0;
- }
- // find the start and end of the alignment
- x = c->pos, y = 0, yb = ye = xb = xe = -1;
- for (k = 0; k < c->n_cigar; ++k) {
- int op, l;
- op = cigar[k]&0xf; l = cigar[k]>>4;
- if (op == BAM_CMATCH || op == BAM_CEQUAL || op == BAM_CDIFF) {
- if (yb < 0) yb = y;
- if (xb < 0) xb = x;
- ye = y + l; xe = x + l;
- x += l; y += l;
- } else if (op == BAM_CSOFT_CLIP || op == BAM_CINS) y += l;
- else if (op == BAM_CDEL) x += l;
- else if (op == BAM_CREF_SKIP) return -1; // do nothing if there is a reference skip
- }
- // set bandwidth and the start and the end
- bw = 7;
- if (abs((xe - xb) - (ye - yb)) > bw)
- bw = abs((xe - xb) - (ye - yb)) + 3;
- conf.bw = bw;
- xb -= yb + bw/2; if (xb < 0) xb = 0;
- xe += c->l_qseq - ye + bw/2;
- if (xe - xb - c->l_qseq > bw)
- xb += (xe - xb - c->l_qseq - bw) / 2, xe -= (xe - xb - c->l_qseq - bw) / 2;
- { // glocal
- uint8_t *s, *r, *q, *seq = bam1_seq(b), *bq;
- int *state;
- bq = calloc(c->l_qseq + 1, 1);
- memcpy(bq, qual, c->l_qseq);
- s = calloc(c->l_qseq, 1);
- for (i = 0; i < c->l_qseq; ++i) s[i] = bam_nt16_nt4_table[bam1_seqi(seq, i)];
- r = calloc(xe - xb, 1);
- for (i = xb; i < xe; ++i) {
- if (ref[i] == 0) { xe = i; break; }
- r[i-xb] = bam_nt16_nt4_table[bam_nt16_table[(int)ref[i]]];
- }
- state = calloc(c->l_qseq, sizeof(int));
- q = calloc(c->l_qseq, 1);
- kpa_glocal(r, xe-xb, s, c->l_qseq, qual, &conf, state, q);
- if (!extend_baq) { // in this block, bq[] is capped by base quality qual[]
- for (k = 0, x = c->pos, y = 0; k < c->n_cigar; ++k) {
- int op = cigar[k]&0xf, l = cigar[k]>>4;
- if (op == BAM_CMATCH || op == BAM_CEQUAL || op == BAM_CDIFF) {
- for (i = y; i < y + l; ++i) {
- if ((state[i]&3) != 0 || state[i]>>2 != x - xb + (i - y)) bq[i] = 0;
- else bq[i] = bq[i] < q[i]? bq[i] : q[i];
- }
- x += l; y += l;
- } else if (op == BAM_CSOFT_CLIP || op == BAM_CINS) y += l;
- else if (op == BAM_CDEL) x += l;
- }
- for (i = 0; i < c->l_qseq; ++i) bq[i] = qual[i] - bq[i] + 64; // finalize BQ
- } else { // in this block, bq[] is BAQ that can be larger than qual[] (different from the above!)
- uint8_t *left, *rght;
- left = calloc(c->l_qseq, 1); rght = calloc(c->l_qseq, 1);
- for (k = 0, x = c->pos, y = 0; k < c->n_cigar; ++k) {
- int op = cigar[k]&0xf, l = cigar[k]>>4;
- if (op == BAM_CMATCH || op == BAM_CEQUAL || op == BAM_CDIFF) {
- for (i = y; i < y + l; ++i)
- bq[i] = ((state[i]&3) != 0 || state[i]>>2 != x - xb + (i - y))? 0 : q[i];
- for (left[y] = bq[y], i = y + 1; i < y + l; ++i)
- left[i] = bq[i] > left[i-1]? bq[i] : left[i-1];
- for (rght[y+l-1] = bq[y+l-1], i = y + l - 2; i >= y; --i)
- rght[i] = bq[i] > rght[i+1]? bq[i] : rght[i+1];
- for (i = y; i < y + l; ++i)
- bq[i] = left[i] < rght[i]? left[i] : rght[i];
- x += l; y += l;
- } else if (op == BAM_CSOFT_CLIP || op == BAM_CINS) y += l;
- else if (op == BAM_CDEL) x += l;
- }
- for (i = 0; i < c->l_qseq; ++i) bq[i] = 64 + (qual[i] <= bq[i]? 0 : qual[i] - bq[i]); // finalize BQ
- free(left); free(rght);
- }
- if (apply_baq) {
- for (i = 0; i < c->l_qseq; ++i) qual[i] -= bq[i] - 64; // modify qual
- bam_aux_append(b, "ZQ", 'Z', c->l_qseq + 1, bq);
- } else bam_aux_append(b, "BQ", 'Z', c->l_qseq + 1, bq);
- free(bq); free(s); free(r); free(q); free(state);
- }
- return 0;
-}
-
-int bam_prob_realn(bam1_t *b, const char *ref)
-{
- return bam_prob_realn_core(b, ref, 1);
-}
-
-int bam_fillmd(int argc, char *argv[])
-{
- int c, flt_flag, tid = -2, ret, len, is_bam_out, is_sam_in, is_uncompressed, max_nm, is_realn, capQ, baq_flag;
- samfile_t *fp, *fpout = 0;
- faidx_t *fai;
- char *ref = 0, mode_w[8], mode_r[8];
- bam1_t *b;
-
- flt_flag = UPDATE_NM | UPDATE_MD;
- is_bam_out = is_sam_in = is_uncompressed = is_realn = max_nm = capQ = baq_flag = 0;
- mode_w[0] = mode_r[0] = 0;
- strcpy(mode_r, "r"); strcpy(mode_w, "w");
- while ((c = getopt(argc, argv, "EqreuNhbSC:n:Ad")) >= 0) {
- switch (c) {
- case 'r': is_realn = 1; break;
- case 'e': flt_flag |= USE_EQUAL; break;
- case 'd': flt_flag |= DROP_TAG; break;
- case 'q': flt_flag |= BIN_QUAL; break;
- case 'h': flt_flag |= HASH_QNM; break;
- case 'N': flt_flag &= ~(UPDATE_MD|UPDATE_NM); break;
- case 'b': is_bam_out = 1; break;
- case 'u': is_uncompressed = is_bam_out = 1; break;
- case 'S': is_sam_in = 1; break;
- case 'n': max_nm = atoi(optarg); break;
- case 'C': capQ = atoi(optarg); break;
- case 'A': baq_flag |= 1; break;
- case 'E': baq_flag |= 2; break;
- default: fprintf(stderr, "[bam_fillmd] unrecognized option '-%c'\n", c); return 1;
- }
- }
- if (!is_sam_in) strcat(mode_r, "b");
- if (is_bam_out) strcat(mode_w, "b");
- else strcat(mode_w, "h");
- if (is_uncompressed) strcat(mode_w, "u");
- if (optind + 1 >= argc) {
- fprintf(stderr, "\n");
- fprintf(stderr, "Usage: samtools fillmd [-eubrS] <aln.bam> <ref.fasta>\n\n");
- fprintf(stderr, "Options: -e change identical bases to '='\n");
- fprintf(stderr, " -u uncompressed BAM output (for piping)\n");
- fprintf(stderr, " -b compressed BAM output\n");
- fprintf(stderr, " -S the input is SAM with header\n");
- fprintf(stderr, " -A modify the quality string\n");
- fprintf(stderr, " -r compute the BQ tag (without -A) or cap baseQ by BAQ (with -A)\n");
- fprintf(stderr, " -E extended BAQ for better sensitivity but lower specificity\n\n");
- return 1;
- }
- fp = samopen(argv[optind], mode_r, 0);
- if (fp == 0) return 1;
- if (is_sam_in && (fp->header == 0 || fp->header->n_targets == 0)) {
- fprintf(stderr, "[bam_fillmd] input SAM does not have header. Abort!\n");
- return 1;
- }
- fpout = samopen("-", mode_w, fp->header);
- fai = fai_load(argv[optind+1]);
-
- b = bam_init1();
- while ((ret = samread(fp, b)) >= 0) {
- if (b->core.tid >= 0) {
- if (tid != b->core.tid) {
- free(ref);
- ref = fai_fetch(fai, fp->header->target_name[b->core.tid], &len);
- tid = b->core.tid;
- if (ref == 0)
- fprintf(stderr, "[bam_fillmd] fail to find sequence '%s' in the reference.\n",
- fp->header->target_name[tid]);
- }
- if (is_realn) bam_prob_realn_core(b, ref, baq_flag);
- if (capQ > 10) {
- int q = bam_cap_mapQ(b, ref, capQ);
- if (b->core.qual > q) b->core.qual = q;
- }
- if (ref) bam_fillmd1_core(b, ref, flt_flag, max_nm);
- }
- samwrite(fpout, b);
- }
- bam_destroy1(b);
-
- free(ref);
- fai_destroy(fai);
- samclose(fp); samclose(fpout);
- return 0;
-}
diff --git a/bam_pileup.c b/bam_pileup.c
deleted file mode 100644
index 57434e0..0000000
--- a/bam_pileup.c
+++ /dev/null
@@ -1,437 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <assert.h>
-#include "sam.h"
-
-typedef struct {
- int k, x, y, end;
-} cstate_t;
-
-static cstate_t g_cstate_null = { -1, 0, 0, 0 };
-
-typedef struct __linkbuf_t {
- bam1_t b;
- uint32_t beg, end;
- cstate_t s;
- struct __linkbuf_t *next;
-} lbnode_t;
-
-/* --- BEGIN: Memory pool */
-
-typedef struct {
- int cnt, n, max;
- lbnode_t **buf;
-} mempool_t;
-
-static mempool_t *mp_init()
-{
- mempool_t *mp;
- mp = (mempool_t*)calloc(1, sizeof(mempool_t));
- return mp;
-}
-static void mp_destroy(mempool_t *mp)
-{
- int k;
- for (k = 0; k < mp->n; ++k) {
- free(mp->buf[k]->b.data);
- free(mp->buf[k]);
- }
- free(mp->buf);
- free(mp);
-}
-static inline lbnode_t *mp_alloc(mempool_t *mp)
-{
- ++mp->cnt;
- if (mp->n == 0) return (lbnode_t*)calloc(1, sizeof(lbnode_t));
- else return mp->buf[--mp->n];
-}
-static inline void mp_free(mempool_t *mp, lbnode_t *p)
-{
- --mp->cnt; p->next = 0; // clear lbnode_t::next here
- if (mp->n == mp->max) {
- mp->max = mp->max? mp->max<<1 : 256;
- mp->buf = (lbnode_t**)realloc(mp->buf, sizeof(lbnode_t*) * mp->max);
- }
- mp->buf[mp->n++] = p;
-}
-
-/* --- END: Memory pool */
-
-/* --- BEGIN: Auxiliary functions */
-
-/* s->k: the index of the CIGAR operator that has just been processed.
- s->x: the reference coordinate of the start of s->k
- s->y: the query coordiante of the start of s->k
- */
-static inline int resolve_cigar2(bam_pileup1_t *p, uint32_t pos, cstate_t *s)
-{
-#define _cop(c) ((c)&BAM_CIGAR_MASK)
-#define _cln(c) ((c)>>BAM_CIGAR_SHIFT)
-
- bam1_t *b = p->b;
- bam1_core_t *c = &b->core;
- uint32_t *cigar = bam1_cigar(b);
- int k, is_head = 0;
- // determine the current CIGAR operation
-// fprintf(stderr, "%s\tpos=%d\tend=%d\t(%d,%d,%d)\n", bam1_qname(b), pos, s->end, s->k, s->x, s->y);
- if (s->k == -1) { // never processed
- is_head = 1;
- if (c->n_cigar == 1) { // just one operation, save a loop
- if (_cop(cigar[0]) == BAM_CMATCH || _cop(cigar[0]) == BAM_CEQUAL || _cop(cigar[0]) == BAM_CDIFF) s->k = 0, s->x = c->pos, s->y = 0;
- } else { // find the first match or deletion
- for (k = 0, s->x = c->pos, s->y = 0; k < c->n_cigar; ++k) {
- int op = _cop(cigar[k]);
- int l = _cln(cigar[k]);
- if (op == BAM_CMATCH || op == BAM_CDEL || op == BAM_CEQUAL || op == BAM_CDIFF) break;
- else if (op == BAM_CREF_SKIP) s->x += l;
- else if (op == BAM_CINS || op == BAM_CSOFT_CLIP) s->y += l;
- }
- assert(k < c->n_cigar);
- s->k = k;
- }
- } else { // the read has been processed before
- int op, l = _cln(cigar[s->k]);
- if (pos - s->x >= l) { // jump to the next operation
- assert(s->k < c->n_cigar); // otherwise a bug: this function should not be called in this case
- op = _cop(cigar[s->k+1]);
- if (op == BAM_CMATCH || op == BAM_CDEL || op == BAM_CREF_SKIP || op == BAM_CEQUAL || op == BAM_CDIFF) { // jump to the next without a loop
- if (_cop(cigar[s->k]) == BAM_CMATCH|| _cop(cigar[s->k]) == BAM_CEQUAL || _cop(cigar[s->k]) == BAM_CDIFF) s->y += l;
- s->x += l;
- ++s->k;
- } else { // find the next M/D/N/=/X
- if (_cop(cigar[s->k]) == BAM_CMATCH|| _cop(cigar[s->k]) == BAM_CEQUAL || _cop(cigar[s->k]) == BAM_CDIFF) s->y += l;
- s->x += l;
- for (k = s->k + 1; k < c->n_cigar; ++k) {
- op = _cop(cigar[k]), l = _cln(cigar[k]);
- if (op == BAM_CMATCH || op == BAM_CDEL || op == BAM_CREF_SKIP || op == BAM_CEQUAL || op == BAM_CDIFF) break;
- else if (op == BAM_CINS || op == BAM_CSOFT_CLIP) s->y += l;
- }
- s->k = k;
- }
- assert(s->k < c->n_cigar); // otherwise a bug
- } // else, do nothing
- }
- { // collect pileup information
- int op, l;
- op = _cop(cigar[s->k]); l = _cln(cigar[s->k]);
- p->is_del = p->indel = p->is_refskip = 0;
- if (s->x + l - 1 == pos && s->k + 1 < c->n_cigar) { // peek the next operation
- int op2 = _cop(cigar[s->k+1]);
- int l2 = _cln(cigar[s->k+1]);
- if (op2 == BAM_CDEL) p->indel = -(int)l2;
- else if (op2 == BAM_CINS) p->indel = l2;
- else if (op2 == BAM_CPAD && s->k + 2 < c->n_cigar) { // no working for adjacent padding
- int l3 = 0;
- for (k = s->k + 2; k < c->n_cigar; ++k) {
- op2 = _cop(cigar[k]); l2 = _cln(cigar[k]);
- if (op2 == BAM_CINS) l3 += l2;
- else if (op2 == BAM_CDEL || op2 == BAM_CMATCH || op2 == BAM_CREF_SKIP || op2 == BAM_CEQUAL || op2 == BAM_CDIFF) break;
- }
- if (l3 > 0) p->indel = l3;
- }
- }
- if (op == BAM_CMATCH || op == BAM_CEQUAL || op == BAM_CDIFF) {
- p->qpos = s->y + (pos - s->x);
- } else if (op == BAM_CDEL || op == BAM_CREF_SKIP) {
- p->is_del = 1; p->qpos = s->y; // FIXME: distinguish D and N!!!!!
- p->is_refskip = (op == BAM_CREF_SKIP);
- } // cannot be other operations; otherwise a bug
- p->is_head = (pos == c->pos); p->is_tail = (pos == s->end);
- }
- return 1;
-}
-
-/* --- END: Auxiliary functions */
-
-/*******************
- * pileup iterator *
- *******************/
-
-struct __bam_plp_t {
- mempool_t *mp;
- lbnode_t *head, *tail, *dummy;
- int32_t tid, pos, max_tid, max_pos;
- int is_eof, flag_mask, max_plp, error, maxcnt;
- bam_pileup1_t *plp;
- // for the "auto" interface only
- bam1_t *b;
- bam_plp_auto_f func;
- void *data;
-};
-
-bam_plp_t bam_plp_init(bam_plp_auto_f func, void *data)
-{
- bam_plp_t iter;
- iter = calloc(1, sizeof(struct __bam_plp_t));
- iter->mp = mp_init();
- iter->head = iter->tail = mp_alloc(iter->mp);
- iter->dummy = mp_alloc(iter->mp);
- iter->max_tid = iter->max_pos = -1;
- iter->flag_mask = BAM_DEF_MASK;
- iter->maxcnt = 8000;
- if (func) {
- iter->func = func;
- iter->data = data;
- iter->b = bam_init1();
- }
- return iter;
-}
-
-void bam_plp_destroy(bam_plp_t iter)
-{
- mp_free(iter->mp, iter->dummy);
- mp_free(iter->mp, iter->head);
- if (iter->mp->cnt != 0)
- fprintf(stderr, "[bam_plp_destroy] memory leak: %d. Continue anyway.\n", iter->mp->cnt);
- mp_destroy(iter->mp);
- if (iter->b) bam_destroy1(iter->b);
- free(iter->plp);
- free(iter);
-}
-
-const bam_pileup1_t *bam_plp_next(bam_plp_t iter, int *_tid, int *_pos, int *_n_plp)
-{
- if (iter->error) { *_n_plp = -1; return 0; }
- *_n_plp = 0;
- if (iter->is_eof && iter->head->next == 0) return 0;
- while (iter->is_eof || iter->max_tid > iter->tid || (iter->max_tid == iter->tid && iter->max_pos > iter->pos)) {
- int n_plp = 0;
- lbnode_t *p, *q;
- // write iter->plp at iter->pos
- iter->dummy->next = iter->head;
- for (p = iter->head, q = iter->dummy; p->next; q = p, p = p->next) {
- if (p->b.core.tid < iter->tid || (p->b.core.tid == iter->tid && p->end <= iter->pos)) { // then remove
- q->next = p->next; mp_free(iter->mp, p); p = q;
- } else if (p->b.core.tid == iter->tid && p->beg <= iter->pos) { // here: p->end > pos; then add to pileup
- if (n_plp == iter->max_plp) { // then double the capacity
- iter->max_plp = iter->max_plp? iter->max_plp<<1 : 256;
- iter->plp = (bam_pileup1_t*)realloc(iter->plp, sizeof(bam_pileup1_t) * iter->max_plp);
- }
- iter->plp[n_plp].b = &p->b;
- if (resolve_cigar2(iter->plp + n_plp, iter->pos, &p->s)) ++n_plp; // actually always true...
- }
- }
- iter->head = iter->dummy->next; // dummy->next may be changed
- *_n_plp = n_plp; *_tid = iter->tid; *_pos = iter->pos;
- // update iter->tid and iter->pos
- if (iter->head->next) {
- if (iter->tid > iter->head->b.core.tid) {
- fprintf(stderr, "[%s] unsorted input. Pileup aborts.\n", __func__);
- iter->error = 1;
- *_n_plp = -1;
- return 0;
- }
- }
- if (iter->tid < iter->head->b.core.tid) { // come to a new reference sequence
- iter->tid = iter->head->b.core.tid; iter->pos = iter->head->beg; // jump to the next reference
- } else if (iter->pos < iter->head->beg) { // here: tid == head->b.core.tid
- iter->pos = iter->head->beg; // jump to the next position
- } else ++iter->pos; // scan contiguously
- // return
- if (n_plp) return iter->plp;
- if (iter->is_eof && iter->head->next == 0) break;
- }
- return 0;
-}
-
-int bam_plp_push(bam_plp_t iter, const bam1_t *b)
-{
- if (iter->error) return -1;
- if (b) {
- if (b->core.tid < 0) return 0;
- if (b->core.flag & iter->flag_mask) return 0;
- if (iter->tid == b->core.tid && iter->pos == b->core.pos && iter->mp->cnt > iter->maxcnt) return 0;
- bam_copy1(&iter->tail->b, b);
- iter->tail->beg = b->core.pos; iter->tail->end = bam_calend(&b->core, bam1_cigar(b));
- iter->tail->s = g_cstate_null; iter->tail->s.end = iter->tail->end - 1; // initialize cstate_t
- if (b->core.tid < iter->max_tid) {
- fprintf(stderr, "[bam_pileup_core] the input is not sorted (chromosomes out of order)\n");
- iter->error = 1;
- return -1;
- }
- if ((b->core.tid == iter->max_tid) && (iter->tail->beg < iter->max_pos)) {
- fprintf(stderr, "[bam_pileup_core] the input is not sorted (reads out of order)\n");
- iter->error = 1;
- return -1;
- }
- iter->max_tid = b->core.tid; iter->max_pos = iter->tail->beg;
- if (iter->tail->end > iter->pos || iter->tail->b.core.tid > iter->tid) {
- iter->tail->next = mp_alloc(iter->mp);
- iter->tail = iter->tail->next;
- }
- } else iter->is_eof = 1;
- return 0;
-}
-
-const bam_pileup1_t *bam_plp_auto(bam_plp_t iter, int *_tid, int *_pos, int *_n_plp)
-{
- const bam_pileup1_t *plp;
- if (iter->func == 0 || iter->error) { *_n_plp = -1; return 0; }
- if ((plp = bam_plp_next(iter, _tid, _pos, _n_plp)) != 0) return plp;
- else { // no pileup line can be obtained; read alignments
- *_n_plp = 0;
- if (iter->is_eof) return 0;
- while (iter->func(iter->data, iter->b) >= 0) {
- if (bam_plp_push(iter, iter->b) < 0) {
- *_n_plp = -1;
- return 0;
- }
- if ((plp = bam_plp_next(iter, _tid, _pos, _n_plp)) != 0) return plp;
- // otherwise no pileup line can be returned; read the next alignment.
- }
- bam_plp_push(iter, 0);
- if ((plp = bam_plp_next(iter, _tid, _pos, _n_plp)) != 0) return plp;
- return 0;
- }
-}
-
-void bam_plp_reset(bam_plp_t iter)
-{
- lbnode_t *p, *q;
- iter->max_tid = iter->max_pos = -1;
- iter->tid = iter->pos = 0;
- iter->is_eof = 0;
- for (p = iter->head; p->next;) {
- q = p->next;
- mp_free(iter->mp, p);
- p = q;
- }
- iter->head = iter->tail;
-}
-
-void bam_plp_set_mask(bam_plp_t iter, int mask)
-{
- iter->flag_mask = mask < 0? BAM_DEF_MASK : (BAM_FUNMAP | mask);
-}
-
-void bam_plp_set_maxcnt(bam_plp_t iter, int maxcnt)
-{
- iter->maxcnt = maxcnt;
-}
-
-/*****************
- * callback APIs *
- *****************/
-
-int bam_pileup_file(bamFile fp, int mask, bam_pileup_f func, void *func_data)
-{
- bam_plbuf_t *buf;
- int ret;
- bam1_t *b;
- b = bam_init1();
- buf = bam_plbuf_init(func, func_data);
- bam_plbuf_set_mask(buf, mask);
- while ((ret = bam_read1(fp, b)) >= 0)
- bam_plbuf_push(b, buf);
- bam_plbuf_push(0, buf);
- bam_plbuf_destroy(buf);
- bam_destroy1(b);
- return 0;
-}
-
-void bam_plbuf_set_mask(bam_plbuf_t *buf, int mask)
-{
- bam_plp_set_mask(buf->iter, mask);
-}
-
-void bam_plbuf_reset(bam_plbuf_t *buf)
-{
- bam_plp_reset(buf->iter);
-}
-
-bam_plbuf_t *bam_plbuf_init(bam_pileup_f func, void *data)
-{
- bam_plbuf_t *buf;
- buf = calloc(1, sizeof(bam_plbuf_t));
- buf->iter = bam_plp_init(0, 0);
- buf->func = func;
- buf->data = data;
- return buf;
-}
-
-void bam_plbuf_destroy(bam_plbuf_t *buf)
-{
- bam_plp_destroy(buf->iter);
- free(buf);
-}
-
-int bam_plbuf_push(const bam1_t *b, bam_plbuf_t *buf)
-{
- int ret, n_plp, tid, pos;
- const bam_pileup1_t *plp;
- ret = bam_plp_push(buf->iter, b);
- if (ret < 0) return ret;
- while ((plp = bam_plp_next(buf->iter, &tid, &pos, &n_plp)) != 0)
- buf->func(tid, pos, n_plp, plp, buf->data);
- return 0;
-}
-
-/***********
- * mpileup *
- ***********/
-
-struct __bam_mplp_t {
- int n;
- uint64_t min, *pos;
- bam_plp_t *iter;
- int *n_plp;
- const bam_pileup1_t **plp;
-};
-
-bam_mplp_t bam_mplp_init(int n, bam_plp_auto_f func, void **data)
-{
- int i;
- bam_mplp_t iter;
- iter = calloc(1, sizeof(struct __bam_mplp_t));
- iter->pos = calloc(n, 8);
- iter->n_plp = calloc(n, sizeof(int));
- iter->plp = calloc(n, sizeof(void*));
- iter->iter = calloc(n, sizeof(void*));
- iter->n = n;
- iter->min = (uint64_t)-1;
- for (i = 0; i < n; ++i) {
- iter->iter[i] = bam_plp_init(func, data[i]);
- iter->pos[i] = iter->min;
- }
- return iter;
-}
-
-void bam_mplp_set_maxcnt(bam_mplp_t iter, int maxcnt)
-{
- int i;
- for (i = 0; i < iter->n; ++i)
- iter->iter[i]->maxcnt = maxcnt;
-}
-
-void bam_mplp_destroy(bam_mplp_t iter)
-{
- int i;
- for (i = 0; i < iter->n; ++i) bam_plp_destroy(iter->iter[i]);
- free(iter->iter); free(iter->pos); free(iter->n_plp); free(iter->plp);
- free(iter);
-}
-
-int bam_mplp_auto(bam_mplp_t iter, int *_tid, int *_pos, int *n_plp, const bam_pileup1_t **plp)
-{
- int i, ret = 0;
- uint64_t new_min = (uint64_t)-1;
- for (i = 0; i < iter->n; ++i) {
- if (iter->pos[i] == iter->min) {
- int tid, pos;
- iter->plp[i] = bam_plp_auto(iter->iter[i], &tid, &pos, &iter->n_plp[i]);
- iter->pos[i] = (uint64_t)tid<<32 | pos;
- }
- if (iter->plp[i] && iter->pos[i] < new_min) new_min = iter->pos[i];
- }
- iter->min = new_min;
- if (new_min == (uint64_t)-1) return 0;
- *_tid = new_min>>32; *_pos = (uint32_t)new_min;
- for (i = 0; i < iter->n; ++i) {
- if (iter->pos[i] == iter->min) { // FIXME: valgrind reports "uninitialised value(s) at this line"
- n_plp[i] = iter->n_plp[i], plp[i] = iter->plp[i];
- ++ret;
- } else n_plp[i] = 0, plp[i] = 0;
- }
- return ret;
-}
diff --git a/bam_reheader.c b/bam_reheader.c
deleted file mode 100644
index 6619428..0000000
--- a/bam_reheader.c
+++ /dev/null
@@ -1,62 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include "knetfile.h"
-#include "bgzf.h"
-#include "bam.h"
-
-#define BUF_SIZE 0x10000
-
-int bam_reheader(BGZF *in, const bam_header_t *h, int fd)
-{
- BGZF *fp;
- bam_header_t *old;
- int len;
- uint8_t *buf;
- if (in->is_write) return -1;
- buf = malloc(BUF_SIZE);
- old = bam_header_read(in);
- fp = bgzf_fdopen(fd, "w");
- bam_header_write(fp, h);
- if (in->block_offset < in->block_length) {
- bgzf_write(fp, in->uncompressed_block + in->block_offset, in->block_length - in->block_offset);
- bgzf_flush(fp);
- }
-#ifdef _USE_KNETFILE
- while ((len = knet_read(in->fp, buf, BUF_SIZE)) > 0)
- fwrite(buf, 1, len, fp->fp);
-#else
- while (!feof(in->file) && (len = fread(buf, 1, BUF_SIZE, in->file)) > 0)
- fwrite(buf, 1, len, fp->file);
-#endif
- free(buf);
- fp->block_offset = in->block_offset = 0;
- bgzf_close(fp);
- return 0;
-}
-
-int main_reheader(int argc, char *argv[])
-{
- bam_header_t *h;
- BGZF *in;
- if (argc != 3) {
- fprintf(stderr, "Usage: samtools reheader <in.header.sam> <in.bam>\n");
- return 1;
- }
- { // read the header
- tamFile fph = sam_open(argv[1]);
- if (fph == 0) {
- fprintf(stderr, "[%s] fail to read the header from %s.\n", __func__, argv[1]);
- return 1;
- }
- h = sam_header_read(fph);
- sam_close(fph);
- }
- in = strcmp(argv[2], "-")? bam_open(argv[2], "r") : bam_dopen(fileno(stdin), "r");
- if (in == 0) {
- fprintf(stderr, "[%s] fail to open file %s.\n", __func__, argv[2]);
- return 1;
- }
- bam_reheader(in, h, fileno(stdout));
- bgzf_close(in);
- return 0;
-}
diff --git a/bam_sort.c b/bam_sort.c
deleted file mode 100644
index 7d00cd1..0000000
--- a/bam_sort.c
+++ /dev/null
@@ -1,566 +0,0 @@
-#include <stdlib.h>
-#include <ctype.h>
-#include <assert.h>
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include "bam.h"
-#include "ksort.h"
-
-static int g_is_by_qname = 0;
-
-static int strnum_cmp(const char *_a, const char *_b)
-{
- const unsigned char *a = (const unsigned char*)_a, *b = (const unsigned char*)_b;
- const unsigned char *pa = a, *pb = b;
- while (*pa && *pb) {
- if (isdigit(*pa) && isdigit(*pb)) {
- while (*pa == '0') ++pa;
- while (*pb == '0') ++pb;
- while (isdigit(*pa) && isdigit(*pb) && *pa == *pb) ++pa, ++pb;
- if (isdigit(*pa) && isdigit(*pb)) {
- int i = 0;
- while (isdigit(pa[i]) && isdigit(pb[i])) ++i;
- return isdigit(pa[i])? 1 : isdigit(pb[i])? -1 : (int)*pa - (int)*pb;
- } else if (isdigit(*pa)) return 1;
- else if (isdigit(*pb)) return -1;
- else if (pa - a != pb - b) return pa - a < pb - b? 1 : -1;
- } else {
- if (*pa != *pb) return (int)*pa - (int)*pb;
- ++pa; ++pb;
- }
- }
- return *pa? 1 : *pb? -1 : 0;
-}
-
-#define HEAP_EMPTY 0xffffffffffffffffull
-
-typedef struct {
- int i;
- uint64_t pos, idx;
- bam1_t *b;
-} heap1_t;
-
-#define __pos_cmp(a, b) ((a).pos > (b).pos || ((a).pos == (b).pos && ((a).i > (b).i || ((a).i == (b).i && (a).idx > (b).idx))))
-
-static inline int heap_lt(const heap1_t a, const heap1_t b)
-{
- if (g_is_by_qname) {
- int t;
- if (a.b == 0 || b.b == 0) return a.b == 0? 1 : 0;
- t = strnum_cmp(bam1_qname(a.b), bam1_qname(b.b));
- return (t > 0 || (t == 0 && (a.b->core.flag&0xc0) > (b.b->core.flag&0xc0)));
- } else return __pos_cmp(a, b);
-}
-
-KSORT_INIT(heap, heap1_t, heap_lt)
-
-static void swap_header_targets(bam_header_t *h1, bam_header_t *h2)
-{
- bam_header_t t;
- t.n_targets = h1->n_targets, h1->n_targets = h2->n_targets, h2->n_targets = t.n_targets;
- t.target_name = h1->target_name, h1->target_name = h2->target_name, h2->target_name = t.target_name;
- t.target_len = h1->target_len, h1->target_len = h2->target_len, h2->target_len = t.target_len;
-}
-
-static void swap_header_text(bam_header_t *h1, bam_header_t *h2)
-{
- int tempi;
- char *temps;
- tempi = h1->l_text, h1->l_text = h2->l_text, h2->l_text = tempi;
- temps = h1->text, h1->text = h2->text, h2->text = temps;
-}
-
-#define MERGE_RG 1
-#define MERGE_UNCOMP 2
-#define MERGE_LEVEL1 4
-#define MERGE_FORCE 8
-
-/*!
- @abstract Merge multiple sorted BAM.
- @param is_by_qname whether to sort by query name
- @param out output BAM file name
- @param headers name of SAM file from which to copy '@' header lines,
- or NULL to copy them from the first file to be merged
- @param n number of files to be merged
- @param fn names of files to be merged
-
- @discussion Padding information may NOT correctly maintained. This
- function is NOT thread safe.
- */
-int bam_merge_core2(int by_qname, const char *out, const char *headers, int n, char * const *fn, int flag, const char *reg, int n_threads, int level)
-{
- bamFile fpout, *fp;
- heap1_t *heap;
- bam_header_t *hout = 0;
- bam_header_t *hheaders = NULL;
- int i, j, *RG_len = 0;
- uint64_t idx = 0;
- char **RG = 0, mode[8];
- bam_iter_t *iter = 0;
-
- if (headers) {
- tamFile fpheaders = sam_open(headers);
- if (fpheaders == 0) {
- const char *message = strerror(errno);
- fprintf(stderr, "[bam_merge_core] cannot open '%s': %s\n", headers, message);
- return -1;
- }
- hheaders = sam_header_read(fpheaders);
- sam_close(fpheaders);
- }
-
- g_is_by_qname = by_qname;
- fp = (bamFile*)calloc(n, sizeof(bamFile));
- heap = (heap1_t*)calloc(n, sizeof(heap1_t));
- iter = (bam_iter_t*)calloc(n, sizeof(bam_iter_t));
- // prepare RG tag
- if (flag & MERGE_RG) {
- RG = (char**)calloc(n, sizeof(void*));
- RG_len = (int*)calloc(n, sizeof(int));
- for (i = 0; i != n; ++i) {
- int l = strlen(fn[i]);
- const char *s = fn[i];
- if (l > 4 && strcmp(s + l - 4, ".bam") == 0) l -= 4;
- for (j = l - 1; j >= 0; --j) if (s[j] == '/') break;
- ++j; l -= j;
- RG[i] = calloc(l + 1, 1);
- RG_len[i] = l;
- strncpy(RG[i], s + j, l);
- }
- }
- // read the first
- for (i = 0; i != n; ++i) {
- bam_header_t *hin;
- fp[i] = bam_open(fn[i], "r");
- if (fp[i] == 0) {
- int j;
- fprintf(stderr, "[bam_merge_core] fail to open file %s\n", fn[i]);
- for (j = 0; j < i; ++j) bam_close(fp[j]);
- free(fp); free(heap);
- // FIXME: possible memory leak
- return -1;
- }
- hin = bam_header_read(fp[i]);
- if (i == 0) { // the first BAM
- hout = hin;
- } else { // validate multiple baf
- int min_n_targets = hout->n_targets;
- if (hin->n_targets < min_n_targets) min_n_targets = hin->n_targets;
-
- for (j = 0; j < min_n_targets; ++j)
- if (strcmp(hout->target_name[j], hin->target_name[j]) != 0) {
- fprintf(stderr, "[bam_merge_core] different target sequence name: '%s' != '%s' in file '%s'\n",
- hout->target_name[j], hin->target_name[j], fn[i]);
- return -1;
- }
-
- // If this input file has additional target reference sequences,
- // add them to the headers to be output
- if (hin->n_targets > hout->n_targets) {
- swap_header_targets(hout, hin);
- // FIXME Possibly we should also create @SQ text headers
- // for the newly added reference sequences
- }
-
- bam_header_destroy(hin);
- }
- }
-
- if (hheaders) {
- // If the text headers to be swapped in include any @SQ headers,
- // check that they are consistent with the existing binary list
- // of reference information.
- if (hheaders->n_targets > 0) {
- if (hout->n_targets != hheaders->n_targets) {
- fprintf(stderr, "[bam_merge_core] number of @SQ headers in '%s' differs from number of target sequences\n", headers);
- if (!reg) return -1;
- }
- for (j = 0; j < hout->n_targets; ++j)
- if (strcmp(hout->target_name[j], hheaders->target_name[j]) != 0) {
- fprintf(stderr, "[bam_merge_core] @SQ header '%s' in '%s' differs from target sequence\n", hheaders->target_name[j], headers);
- if (!reg) return -1;
- }
- }
-
- swap_header_text(hout, hheaders);
- bam_header_destroy(hheaders);
- }
-
- if (reg) {
- int tid, beg, end;
- if (bam_parse_region(hout, reg, &tid, &beg, &end) < 0) {
- fprintf(stderr, "[%s] Malformated region string or undefined reference name\n", __func__);
- return -1;
- }
- for (i = 0; i < n; ++i) {
- bam_index_t *idx;
- idx = bam_index_load(fn[i]);
- iter[i] = bam_iter_query(idx, tid, beg, end);
- bam_index_destroy(idx);
- }
- }
-
- for (i = 0; i < n; ++i) {
- heap1_t *h = heap + i;
- h->i = i;
- h->b = (bam1_t*)calloc(1, sizeof(bam1_t));
- if (bam_iter_read(fp[i], iter[i], h->b) >= 0) {
- h->pos = ((uint64_t)h->b->core.tid<<32) | (uint32_t)((int32_t)h->b->core.pos+1)<<1 | bam1_strand(h->b);
- h->idx = idx++;
- }
- else h->pos = HEAP_EMPTY;
- }
- if (flag & MERGE_UNCOMP) level = 0;
- else if (flag & MERGE_LEVEL1) level = 1;
- strcpy(mode, "w");
- if (level >= 0) sprintf(mode + 1, "%d", level < 9? level : 9);
- if ((fpout = strcmp(out, "-")? bam_open(out, "w") : bam_dopen(fileno(stdout), "w")) == 0) {
- fprintf(stderr, "[%s] fail to create the output file.\n", __func__);
- return -1;
- }
- bam_header_write(fpout, hout);
- bam_header_destroy(hout);
- if (!(flag & MERGE_UNCOMP)) bgzf_mt(fpout, n_threads, 256);
-
- ks_heapmake(heap, n, heap);
- while (heap->pos != HEAP_EMPTY) {
- bam1_t *b = heap->b;
- if (flag & MERGE_RG) {
- uint8_t *rg = bam_aux_get(b, "RG");
- if (rg) bam_aux_del(b, rg);
- bam_aux_append(b, "RG", 'Z', RG_len[heap->i] + 1, (uint8_t*)RG[heap->i]);
- }
- bam_write1_core(fpout, &b->core, b->data_len, b->data);
- if ((j = bam_iter_read(fp[heap->i], iter[heap->i], b)) >= 0) {
- heap->pos = ((uint64_t)b->core.tid<<32) | (uint32_t)((int)b->core.pos+1)<<1 | bam1_strand(b);
- heap->idx = idx++;
- } else if (j == -1) {
- heap->pos = HEAP_EMPTY;
- free(heap->b->data); free(heap->b);
- heap->b = 0;
- } else fprintf(stderr, "[bam_merge_core] '%s' is truncated. Continue anyway.\n", fn[heap->i]);
- ks_heapadjust(heap, 0, n, heap);
- }
-
- if (flag & MERGE_RG) {
- for (i = 0; i != n; ++i) free(RG[i]);
- free(RG); free(RG_len);
- }
- for (i = 0; i != n; ++i) {
- bam_iter_destroy(iter[i]);
- bam_close(fp[i]);
- }
- bam_close(fpout);
- free(fp); free(heap); free(iter);
- return 0;
-}
-
-int bam_merge_core(int by_qname, const char *out, const char *headers, int n, char * const *fn, int flag, const char *reg)
-{
- return bam_merge_core2(by_qname, out, headers, n, fn, flag, reg, 0, -1);
-}
-
-int bam_merge(int argc, char *argv[])
-{
- int c, is_by_qname = 0, flag = 0, ret = 0, n_threads = 0, level = -1;
- char *fn_headers = NULL, *reg = 0;
-
- while ((c = getopt(argc, argv, "h:nru1R:f@:l:")) >= 0) {
- switch (c) {
- case 'r': flag |= MERGE_RG; break;
- case 'f': flag |= MERGE_FORCE; break;
- case 'h': fn_headers = strdup(optarg); break;
- case 'n': is_by_qname = 1; break;
- case '1': flag |= MERGE_LEVEL1; break;
- case 'u': flag |= MERGE_UNCOMP; break;
- case 'R': reg = strdup(optarg); break;
- case 'l': level = atoi(optarg); break;
- case '@': n_threads = atoi(optarg); break;
- }
- }
- if (optind + 2 >= argc) {
- fprintf(stderr, "\n");
- fprintf(stderr, "Usage: samtools merge [-nr] [-h inh.sam] <out.bam> <in1.bam> <in2.bam> [...]\n\n");
- fprintf(stderr, "Options: -n sort by read names\n");
- fprintf(stderr, " -r attach RG tag (inferred from file names)\n");
- fprintf(stderr, " -u uncompressed BAM output\n");
- fprintf(stderr, " -f overwrite the output BAM if exist\n");
- fprintf(stderr, " -1 compress level 1\n");
- fprintf(stderr, " -l INT compression level, from 0 to 9 [-1]\n");
- fprintf(stderr, " -@ INT number of BAM compression threads [0]\n");
- fprintf(stderr, " -R STR merge file in the specified region STR [all]\n");
- fprintf(stderr, " -h FILE copy the header in FILE to <out.bam> [in1.bam]\n\n");
- fprintf(stderr, "Note: Samtools' merge does not reconstruct the @RG dictionary in the header. Users\n");
- fprintf(stderr, " must provide the correct header with -h, or uses Picard which properly maintains\n");
- fprintf(stderr, " the header dictionary in merging.\n\n");
- return 1;
- }
- if (!(flag & MERGE_FORCE) && strcmp(argv[optind], "-")) {
- FILE *fp = fopen(argv[optind], "rb");
- if (fp != NULL) {
- fclose(fp);
- fprintf(stderr, "[%s] File '%s' exists. Please apply '-f' to overwrite. Abort.\n", __func__, argv[optind]);
- return 1;
- }
- }
- if (bam_merge_core2(is_by_qname, argv[optind], fn_headers, argc - optind - 1, argv + optind + 1, flag, reg, n_threads, level) < 0) ret = 1;
- free(reg);
- free(fn_headers);
- return ret;
-}
-
-/***************
- * BAM sorting *
- ***************/
-
-#include <pthread.h>
-
-typedef bam1_t *bam1_p;
-
-static int change_SO(bam_header_t *h, const char *so)
-{
- char *p, *q, *beg = 0, *end = 0, *newtext;
- if (h->l_text > 3) {
- if (strncmp(h->text, "@HD", 3) == 0) {
- if ((p = strchr(h->text, '\n')) == 0) return -1;
- *p = '\0';
- if ((q = strstr(h->text, "\tSO:")) != 0) {
- *p = '\n'; // change back
- if (strncmp(q + 4, so, p - q - 4) != 0) {
- beg = q;
- for (q += 4; *q != '\n' && *q != '\t'; ++q);
- end = q;
- } else return 0; // no need to change
- } else beg = end = p, *p = '\n';
- }
- }
- if (beg == 0) { // no @HD
- h->l_text += strlen(so) + 15;
- newtext = malloc(h->l_text + 1);
- sprintf(newtext, "@HD\tVN:1.3\tSO:%s\n", so);
- strcat(newtext, h->text);
- } else { // has @HD but different or no SO
- h->l_text = (beg - h->text) + (4 + strlen(so)) + (h->text + h->l_text - end);
- newtext = malloc(h->l_text + 1);
- strncpy(newtext, h->text, beg - h->text);
- sprintf(newtext + (beg - h->text), "\tSO:%s", so);
- strcat(newtext, end);
- }
- free(h->text);
- h->text = newtext;
- return 0;
-}
-
-static inline int bam1_lt(const bam1_p a, const bam1_p b)
-{
- if (g_is_by_qname) {
- int t = strnum_cmp(bam1_qname(a), bam1_qname(b));
- return (t < 0 || (t == 0 && (a->core.flag&0xc0) < (b->core.flag&0xc0)));
- } else return (((uint64_t)a->core.tid<<32|(a->core.pos+1)<<1|bam1_strand(a)) < ((uint64_t)b->core.tid<<32|(b->core.pos+1)<<1|bam1_strand(b)));
-}
-KSORT_INIT(sort, bam1_p, bam1_lt)
-
-typedef struct {
- size_t buf_len;
- const char *prefix;
- bam1_p *buf;
- const bam_header_t *h;
- int index;
-} worker_t;
-
-static void write_buffer(const char *fn, const char *mode, size_t l, bam1_p *buf, const bam_header_t *h, int n_threads)
-{
- size_t i;
- bamFile fp;
- fp = strcmp(fn, "-")? bam_open(fn, mode) : bam_dopen(fileno(stdout), mode);
- if (fp == 0) return;
- bam_header_write(fp, h);
- if (n_threads > 1) bgzf_mt(fp, n_threads, 256);
- for (i = 0; i < l; ++i)
- bam_write1_core(fp, &buf[i]->core, buf[i]->data_len, buf[i]->data);
- bam_close(fp);
-}
-
-static void *worker(void *data)
-{
- worker_t *w = (worker_t*)data;
- char *name;
- ks_mergesort(sort, w->buf_len, w->buf, 0);
- name = (char*)calloc(strlen(w->prefix) + 20, 1);
- sprintf(name, "%s.%.4d.bam", w->prefix, w->index);
- write_buffer(name, "w1", w->buf_len, w->buf, w->h, 0);
- free(name);
- return 0;
-}
-
-static int sort_blocks(int n_files, size_t k, bam1_p *buf, const char *prefix, const bam_header_t *h, int n_threads)
-{
- int i;
- size_t rest;
- bam1_p *b;
- pthread_t *tid;
- pthread_attr_t attr;
- worker_t *w;
-
- if (n_threads < 1) n_threads = 1;
- if (k < n_threads * 64) n_threads = 1; // use a single thread if we only sort a small batch of records
- pthread_attr_init(&attr);
- pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
- w = calloc(n_threads, sizeof(worker_t));
- tid = calloc(n_threads, sizeof(pthread_t));
- b = buf; rest = k;
- for (i = 0; i < n_threads; ++i) {
- w[i].buf_len = rest / (n_threads - i);
- w[i].buf = b;
- w[i].prefix = prefix;
- w[i].h = h;
- w[i].index = n_files + i;
- b += w[i].buf_len; rest -= w[i].buf_len;
- pthread_create(&tid[i], &attr, worker, &w[i]);
- }
- for (i = 0; i < n_threads; ++i) pthread_join(tid[i], 0);
- free(tid); free(w);
- return n_files + n_threads;
-}
-
-/*!
- @abstract Sort an unsorted BAM file based on the chromosome order
- and the leftmost position of an alignment
-
- @param is_by_qname whether to sort by query name
- @param fn name of the file to be sorted
- @param prefix prefix of the output and the temporary files; upon
- sucessess, prefix.bam will be written.
- @param max_mem approxiate maximum memory (very inaccurate)
-
- @discussion It may create multiple temporary subalignment files
- and then merge them by calling bam_merge_core(). This function is
- NOT thread safe.
- */
-void bam_sort_core_ext(int is_by_qname, const char *fn, const char *prefix, size_t _max_mem, int is_stdout, int n_threads, int level)
-{
- int ret, i, n_files = 0;
- size_t mem, max_k, k, max_mem;
- bam_header_t *header;
- bamFile fp;
- bam1_t *b, **buf;
- char *fnout = 0;
-
- if (n_threads < 2) n_threads = 1;
- g_is_by_qname = is_by_qname;
- max_k = k = 0; mem = 0;
- max_mem = _max_mem * n_threads;
- buf = 0;
- fp = strcmp(fn, "-")? bam_open(fn, "r") : bam_dopen(fileno(stdin), "r");
- if (fp == 0) {
- fprintf(stderr, "[bam_sort_core] fail to open file %s\n", fn);
- return;
- }
- header = bam_header_read(fp);
- if (is_by_qname) change_SO(header, "queryname");
- else change_SO(header, "coordinate");
- // write sub files
- for (;;) {
- if (k == max_k) {
- size_t old_max = max_k;
- max_k = max_k? max_k<<1 : 0x10000;
- buf = realloc(buf, max_k * sizeof(void*));
- memset(buf + old_max, 0, sizeof(void*) * (max_k - old_max));
- }
- if (buf[k] == 0) buf[k] = (bam1_t*)calloc(1, sizeof(bam1_t));
- b = buf[k];
- if ((ret = bam_read1(fp, b)) < 0) break;
- if (b->data_len < b->m_data>>2) { // shrink
- b->m_data = b->data_len;
- kroundup32(b->m_data);
- b->data = realloc(b->data, b->m_data);
- }
- mem += sizeof(bam1_t) + b->m_data + sizeof(void*) + sizeof(void*); // two sizeof(void*) for the data allocated to pointer arrays
- ++k;
- if (mem >= max_mem) {
- n_files = sort_blocks(n_files, k, buf, prefix, header, n_threads);
- mem = k = 0;
- }
- }
- if (ret != -1)
- fprintf(stderr, "[bam_sort_core] truncated file. Continue anyway.\n");
- // output file name
- fnout = calloc(strlen(prefix) + 20, 1);
- if (is_stdout) sprintf(fnout, "-");
- else sprintf(fnout, "%s.bam", prefix);
- // write the final output
- if (n_files == 0) { // a single block
- char mode[8];
- strcpy(mode, "w");
- if (level >= 0) sprintf(mode + 1, "%d", level < 9? level : 9);
- ks_mergesort(sort, k, buf, 0);
- write_buffer(fnout, mode, k, buf, header, n_threads);
- } else { // then merge
- char **fns;
- n_files = sort_blocks(n_files, k, buf, prefix, header, n_threads);
- fprintf(stderr, "[bam_sort_core] merging from %d files...\n", n_files);
- fns = (char**)calloc(n_files, sizeof(char*));
- for (i = 0; i < n_files; ++i) {
- fns[i] = (char*)calloc(strlen(prefix) + 20, 1);
- sprintf(fns[i], "%s.%.4d.bam", prefix, i);
- }
- bam_merge_core2(is_by_qname, fnout, 0, n_files, fns, 0, 0, n_threads, level);
- for (i = 0; i < n_files; ++i) {
- unlink(fns[i]);
- free(fns[i]);
- }
- free(fns);
- }
- free(fnout);
- // free
- for (k = 0; k < max_k; ++k) {
- if (!buf[k]) continue;
- free(buf[k]->data);
- free(buf[k]);
- }
- free(buf);
- bam_header_destroy(header);
- bam_close(fp);
-}
-
-void bam_sort_core(int is_by_qname, const char *fn, const char *prefix, size_t max_mem)
-{
- bam_sort_core_ext(is_by_qname, fn, prefix, max_mem, 0, 0, -1);
-}
-
-int bam_sort(int argc, char *argv[])
-{
- size_t max_mem = 768<<20; // 512MB
- int c, is_by_qname = 0, is_stdout = 0, n_threads = 0, level = -1;
- while ((c = getopt(argc, argv, "nom:@:l:")) >= 0) {
- switch (c) {
- case 'o': is_stdout = 1; break;
- case 'n': is_by_qname = 1; break;
- case 'm': {
- char *q;
- max_mem = strtol(optarg, &q, 0);
- if (*q == 'k' || *q == 'K') max_mem <<= 10;
- else if (*q == 'm' || *q == 'M') max_mem <<= 20;
- else if (*q == 'g' || *q == 'G') max_mem <<= 30;
- break;
- }
- case '@': n_threads = atoi(optarg); break;
- case 'l': level = atoi(optarg); break;
- }
- }
- if (optind + 2 > argc) {
- fprintf(stderr, "\n");
- fprintf(stderr, "Usage: samtools sort [options] <in.bam> <out.prefix>\n\n");
- fprintf(stderr, "Options: -n sort by read name\n");
- fprintf(stderr, " -o final output to stdout\n");
- fprintf(stderr, " -l INT compression level, from 0 to 9 [-1]\n");
- fprintf(stderr, " -@ INT number of sorting and compression threads [1]\n");
- fprintf(stderr, " -m INT max memory per thread; suffix K/M/G recognized [768M]\n");
- fprintf(stderr, "\n");
- return 1;
- }
- bam_sort_core_ext(is_by_qname, argv[optind], argv[optind+1], max_mem, is_stdout, n_threads, level);
- return 0;
-}
diff --git a/bedidx.c b/bedidx.c
deleted file mode 100644
index ec75a10..0000000
--- a/bedidx.c
+++ /dev/null
@@ -1,162 +0,0 @@
-#include <stdlib.h>
-#include <stdint.h>
-#include <string.h>
-#include <stdio.h>
-#include <zlib.h>
-
-#ifdef _WIN32
-#define drand48() ((double)rand() / RAND_MAX)
-#endif
-
-#include "ksort.h"
-KSORT_INIT_GENERIC(uint64_t)
-
-#include "kseq.h"
-KSTREAM_INIT(gzFile, gzread, 8192)
-
-typedef struct {
- int n, m;
- uint64_t *a;
- int *idx;
-} bed_reglist_t;
-
-#include "khash.h"
-KHASH_MAP_INIT_STR(reg, bed_reglist_t)
-
-#define LIDX_SHIFT 13
-
-typedef kh_reg_t reghash_t;
-
-int *bed_index_core(int n, uint64_t *a, int *n_idx)
-{
- int i, j, m, *idx;
- m = *n_idx = 0; idx = 0;
- for (i = 0; i < n; ++i) {
- int beg, end;
- beg = a[i]>>32 >> LIDX_SHIFT; end = ((uint32_t)a[i]) >> LIDX_SHIFT;
- if (m < end + 1) {
- int oldm = m;
- m = end + 1;
- kroundup32(m);
- idx = realloc(idx, m * sizeof(int));
- for (j = oldm; j < m; ++j) idx[j] = -1;
- }
- if (beg == end) {
- if (idx[beg] < 0) idx[beg] = i;
- } else {
- for (j = beg; j <= end; ++j)
- if (idx[j] < 0) idx[j] = i;
- }
- *n_idx = end + 1;
- }
- return idx;
-}
-
-void bed_index(void *_h)
-{
- reghash_t *h = (reghash_t*)_h;
- khint_t k;
- for (k = 0; k < kh_end(h); ++k) {
- if (kh_exist(h, k)) {
- bed_reglist_t *p = &kh_val(h, k);
- if (p->idx) free(p->idx);
- ks_introsort(uint64_t, p->n, p->a);
- p->idx = bed_index_core(p->n, p->a, &p->m);
- }
- }
-}
-
-int bed_overlap_core(const bed_reglist_t *p, int beg, int end)
-{
- int i, min_off;
- if (p->n == 0) return 0;
- min_off = (beg>>LIDX_SHIFT >= p->n)? p->idx[p->n-1] : p->idx[beg>>LIDX_SHIFT];
- if (min_off < 0) { // TODO: this block can be improved, but speed should not matter too much here
- int n = beg>>LIDX_SHIFT;
- if (n > p->n) n = p->n;
- for (i = n - 1; i >= 0; --i)
- if (p->idx[i] >= 0) break;
- min_off = i >= 0? p->idx[i] : 0;
- }
- for (i = min_off; i < p->n; ++i) {
- if ((int)(p->a[i]>>32) >= end) break; // out of range; no need to proceed
- if ((int32_t)p->a[i] > beg && (int32_t)(p->a[i]>>32) < end)
- return 1; // find the overlap; return
- }
- return 0;
-}
-
-int bed_overlap(const void *_h, const char *chr, int beg, int end)
-{
- const reghash_t *h = (const reghash_t*)_h;
- khint_t k;
- if (!h) return 0;
- k = kh_get(reg, h, chr);
- if (k == kh_end(h)) return 0;
- return bed_overlap_core(&kh_val(h, k), beg, end);
-}
-
-void *bed_read(const char *fn)
-{
- reghash_t *h = kh_init(reg);
- gzFile fp;
- kstream_t *ks;
- int dret;
- kstring_t *str;
- // read the list
- fp = strcmp(fn, "-")? gzopen(fn, "r") : gzdopen(fileno(stdin), "r");
- if (fp == 0) return 0;
- str = calloc(1, sizeof(kstring_t));
- ks = ks_init(fp);
- while (ks_getuntil(ks, 0, str, &dret) >= 0) { // read the chr name
- int beg = -1, end = -1;
- bed_reglist_t *p;
- khint_t k = kh_get(reg, h, str->s);
- if (k == kh_end(h)) { // absent from the hash table
- int ret;
- char *s = strdup(str->s);
- k = kh_put(reg, h, s, &ret);
- memset(&kh_val(h, k), 0, sizeof(bed_reglist_t));
- }
- p = &kh_val(h, k);
- if (dret != '\n') { // if the lines has other characters
- if (ks_getuntil(ks, 0, str, &dret) > 0 && isdigit(str->s[0])) {
- beg = atoi(str->s); // begin
- if (dret != '\n') {
- if (ks_getuntil(ks, 0, str, &dret) > 0 && isdigit(str->s[0])) {
- end = atoi(str->s); // end
- if (end < beg) end = -1;
- }
- }
- }
- }
- if (dret != '\n') while ((dret = ks_getc(ks)) > 0 && dret != '\n'); // skip the rest of the line
- if (end < 0 && beg > 0) end = beg, beg = beg - 1; // if there is only one column
- if (beg >= 0 && end > beg) {
- if (p->n == p->m) {
- p->m = p->m? p->m<<1 : 4;
- p->a = realloc(p->a, p->m * 8);
- }
- p->a[p->n++] = (uint64_t)beg<<32 | end;
- }
- }
- ks_destroy(ks);
- gzclose(fp);
- free(str->s); free(str);
- bed_index(h);
- return h;
-}
-
-void bed_destroy(void *_h)
-{
- reghash_t *h = (reghash_t*)_h;
- khint_t k;
- for (k = 0; k < kh_end(h); ++k) {
- if (kh_exist(h, k)) {
- free(kh_val(h, k).a);
- free(kh_val(h, k).idx);
- free((char*)kh_key(h, k));
- }
- }
- kh_destroy(reg, h);
-}
diff --git a/bgzf.c b/bgzf.c
deleted file mode 100644
index 880d5af..0000000
--- a/bgzf.c
+++ /dev/null
@@ -1,694 +0,0 @@
-/* The MIT License
-
- Copyright (c) 2008 Broad Institute / Massachusetts Institute of Technology
- 2011 Attractive Chaos <attractor at live.co.uk>
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <assert.h>
-#include <pthread.h>
-#include <sys/types.h>
-#include "bgzf.h"
-
-#ifdef _USE_KNETFILE
-#include "knetfile.h"
-typedef knetFile *_bgzf_file_t;
-#define _bgzf_open(fn, mode) knet_open(fn, mode)
-#define _bgzf_dopen(fp, mode) knet_dopen(fp, mode)
-#define _bgzf_close(fp) knet_close(fp)
-#define _bgzf_fileno(fp) ((fp)->fd)
-#define _bgzf_tell(fp) knet_tell(fp)
-#define _bgzf_seek(fp, offset, whence) knet_seek(fp, offset, whence)
-#define _bgzf_read(fp, buf, len) knet_read(fp, buf, len)
-#define _bgzf_write(fp, buf, len) knet_write(fp, buf, len)
-#else // ~defined(_USE_KNETFILE)
-#if defined(_WIN32) || defined(_MSC_VER)
-#define ftello(fp) ftell(fp)
-#define fseeko(fp, offset, whence) fseek(fp, offset, whence)
-#else // ~defined(_WIN32)
-extern off_t ftello(FILE *stream);
-extern int fseeko(FILE *stream, off_t offset, int whence);
-#endif // ~defined(_WIN32)
-typedef FILE *_bgzf_file_t;
-#define _bgzf_open(fn, mode) fopen(fn, mode)
-#define _bgzf_dopen(fp, mode) fdopen(fp, mode)
-#define _bgzf_close(fp) fclose(fp)
-#define _bgzf_fileno(fp) fileno(fp)
-#define _bgzf_tell(fp) ftello(fp)
-#define _bgzf_seek(fp, offset, whence) fseeko(fp, offset, whence)
-#define _bgzf_read(fp, buf, len) fread(buf, 1, len, fp)
-#define _bgzf_write(fp, buf, len) fwrite(buf, 1, len, fp)
-#endif // ~define(_USE_KNETFILE)
-
-#define BLOCK_HEADER_LENGTH 18
-#define BLOCK_FOOTER_LENGTH 8
-
-
-/* BGZF/GZIP header (speciallized from RFC 1952; little endian):
- +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
- | 31|139| 8| 4| 0| 0|255| 6| 66| 67| 2|BLK_LEN|
- +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
-*/
-static const uint8_t g_magic[19] = "\037\213\010\4\0\0\0\0\0\377\6\0\102\103\2\0\0\0";
-
-#ifdef BGZF_CACHE
-typedef struct {
- int size;
- uint8_t *block;
- int64_t end_offset;
-} cache_t;
-#include "khash.h"
-KHASH_MAP_INIT_INT64(cache, cache_t)
-#endif
-
-static inline void packInt16(uint8_t *buffer, uint16_t value)
-{
- buffer[0] = value;
- buffer[1] = value >> 8;
-}
-
-static inline int unpackInt16(const uint8_t *buffer)
-{
- return buffer[0] | buffer[1] << 8;
-}
-
-static inline void packInt32(uint8_t *buffer, uint32_t value)
-{
- buffer[0] = value;
- buffer[1] = value >> 8;
- buffer[2] = value >> 16;
- buffer[3] = value >> 24;
-}
-
-static BGZF *bgzf_read_init()
-{
- BGZF *fp;
- fp = calloc(1, sizeof(BGZF));
- fp->is_write = 0;
- fp->uncompressed_block = malloc(BGZF_MAX_BLOCK_SIZE);
- fp->compressed_block = malloc(BGZF_MAX_BLOCK_SIZE);
-#ifdef BGZF_CACHE
- fp->cache = kh_init(cache);
-#endif
- return fp;
-}
-
-static BGZF *bgzf_write_init(int compress_level) // compress_level==-1 for the default level
-{
- BGZF *fp;
- fp = calloc(1, sizeof(BGZF));
- fp->is_write = 1;
- fp->uncompressed_block = malloc(BGZF_MAX_BLOCK_SIZE);
- fp->compressed_block = malloc(BGZF_MAX_BLOCK_SIZE);
- fp->compress_level = compress_level < 0? Z_DEFAULT_COMPRESSION : compress_level; // Z_DEFAULT_COMPRESSION==-1
- if (fp->compress_level > 9) fp->compress_level = Z_DEFAULT_COMPRESSION;
- return fp;
-}
-// get the compress level from the mode string
-static int mode2level(const char *__restrict mode)
-{
- int i, compress_level = -1;
- for (i = 0; mode[i]; ++i)
- if (mode[i] >= '0' && mode[i] <= '9') break;
- if (mode[i]) compress_level = (int)mode[i] - '0';
- if (strchr(mode, 'u')) compress_level = 0;
- return compress_level;
-}
-
-BGZF *bgzf_open(const char *path, const char *mode)
-{
- BGZF *fp = 0;
- assert(compressBound(BGZF_BLOCK_SIZE) < BGZF_MAX_BLOCK_SIZE);
- if (strchr(mode, 'r') || strchr(mode, 'R')) {
- _bgzf_file_t fpr;
- if ((fpr = _bgzf_open(path, "r")) == 0) return 0;
- fp = bgzf_read_init();
- fp->fp = fpr;
- } else if (strchr(mode, 'w') || strchr(mode, 'W')) {
- FILE *fpw;
- if ((fpw = fopen(path, "w")) == 0) return 0;
- fp = bgzf_write_init(mode2level(mode));
- fp->fp = fpw;
- }
- return fp;
-}
-
-BGZF *bgzf_dopen(int fd, const char *mode)
-{
- BGZF *fp = 0;
- assert(compressBound(BGZF_BLOCK_SIZE) < BGZF_MAX_BLOCK_SIZE);
- if (strchr(mode, 'r') || strchr(mode, 'R')) {
- _bgzf_file_t fpr;
- if ((fpr = _bgzf_dopen(fd, "r")) == 0) return 0;
- fp = bgzf_read_init();
- fp->fp = fpr;
- } else if (strchr(mode, 'w') || strchr(mode, 'W')) {
- FILE *fpw;
- if ((fpw = fdopen(fd, "w")) == 0) return 0;
- fp = bgzf_write_init(mode2level(mode));
- fp->fp = fpw;
- }
- return fp;
-}
-
-static int bgzf_compress(void *_dst, int *dlen, void *src, int slen, int level)
-{
- uint32_t crc;
- z_stream zs;
- uint8_t *dst = (uint8_t*)_dst;
-
- // compress the body
- zs.zalloc = NULL; zs.zfree = NULL;
- zs.next_in = src;
- zs.avail_in = slen;
- zs.next_out = dst + BLOCK_HEADER_LENGTH;
- zs.avail_out = *dlen - BLOCK_HEADER_LENGTH - BLOCK_FOOTER_LENGTH;
- if (deflateInit2(&zs, level, Z_DEFLATED, -15, 8, Z_DEFAULT_STRATEGY) != Z_OK) return -1; // -15 to disable zlib header/footer
- if (deflate(&zs, Z_FINISH) != Z_STREAM_END) return -1;
- if (deflateEnd(&zs) != Z_OK) return -1;
- *dlen = zs.total_out + BLOCK_HEADER_LENGTH + BLOCK_FOOTER_LENGTH;
- // write the header
- memcpy(dst, g_magic, BLOCK_HEADER_LENGTH); // the last two bytes are a place holder for the length of the block
- packInt16(&dst[16], *dlen - 1); // write the compressed length; -1 to fit 2 bytes
- // write the footer
- crc = crc32(crc32(0L, NULL, 0L), src, slen);
- packInt32((uint8_t*)&dst[*dlen - 8], crc);
- packInt32((uint8_t*)&dst[*dlen - 4], slen);
- return 0;
-}
-
-// Deflate the block in fp->uncompressed_block into fp->compressed_block. Also adds an extra field that stores the compressed block length.
-static int deflate_block(BGZF *fp, int block_length)
-{
- int comp_size = BGZF_MAX_BLOCK_SIZE;
- if (bgzf_compress(fp->compressed_block, &comp_size, fp->uncompressed_block, block_length, fp->compress_level) != 0) {
- fp->errcode |= BGZF_ERR_ZLIB;
- return -1;
- }
- fp->block_offset = 0;
- return comp_size;
-}
-
-// Inflate the block in fp->compressed_block into fp->uncompressed_block
-static int inflate_block(BGZF* fp, int block_length)
-{
- z_stream zs;
- zs.zalloc = NULL;
- zs.zfree = NULL;
- zs.next_in = fp->compressed_block + 18;
- zs.avail_in = block_length - 16;
- zs.next_out = fp->uncompressed_block;
- zs.avail_out = BGZF_MAX_BLOCK_SIZE;
-
- if (inflateInit2(&zs, -15) != Z_OK) {
- fp->errcode |= BGZF_ERR_ZLIB;
- return -1;
- }
- if (inflate(&zs, Z_FINISH) != Z_STREAM_END) {
- inflateEnd(&zs);
- fp->errcode |= BGZF_ERR_ZLIB;
- return -1;
- }
- if (inflateEnd(&zs) != Z_OK) {
- fp->errcode |= BGZF_ERR_ZLIB;
- return -1;
- }
- return zs.total_out;
-}
-
-static int check_header(const uint8_t *header)
-{
- return (header[0] == 31 && header[1] == 139 && header[2] == 8 && (header[3] & 4) != 0
- && unpackInt16((uint8_t*)&header[10]) == 6
- && header[12] == 'B' && header[13] == 'C'
- && unpackInt16((uint8_t*)&header[14]) == 2);
-}
-
-#ifdef BGZF_CACHE
-static void free_cache(BGZF *fp)
-{
- khint_t k;
- khash_t(cache) *h = (khash_t(cache)*)fp->cache;
- if (fp->is_write) return;
- for (k = kh_begin(h); k < kh_end(h); ++k)
- if (kh_exist(h, k)) free(kh_val(h, k).block);
- kh_destroy(cache, h);
-}
-
-static int load_block_from_cache(BGZF *fp, int64_t block_address)
-{
- khint_t k;
- cache_t *p;
- khash_t(cache) *h = (khash_t(cache)*)fp->cache;
- k = kh_get(cache, h, block_address);
- if (k == kh_end(h)) return 0;
- p = &kh_val(h, k);
- if (fp->block_length != 0) fp->block_offset = 0;
- fp->block_address = block_address;
- fp->block_length = p->size;
- memcpy(fp->uncompressed_block, p->block, BGZF_MAX_BLOCK_SIZE);
- _bgzf_seek((_bgzf_file_t)fp->fp, p->end_offset, SEEK_SET);
- return p->size;
-}
-
-static void cache_block(BGZF *fp, int size)
-{
- int ret;
- khint_t k;
- cache_t *p;
- khash_t(cache) *h = (khash_t(cache)*)fp->cache;
- if (BGZF_MAX_BLOCK_SIZE >= fp->cache_size) return;
- if ((kh_size(h) + 1) * BGZF_MAX_BLOCK_SIZE > fp->cache_size) {
- /* A better way would be to remove the oldest block in the
- * cache, but here we remove a random one for simplicity. This
- * should not have a big impact on performance. */
- for (k = kh_begin(h); k < kh_end(h); ++k)
- if (kh_exist(h, k)) break;
- if (k < kh_end(h)) {
- free(kh_val(h, k).block);
- kh_del(cache, h, k);
- }
- }
- k = kh_put(cache, h, fp->block_address, &ret);
- if (ret == 0) return; // if this happens, a bug!
- p = &kh_val(h, k);
- p->size = fp->block_length;
- p->end_offset = fp->block_address + size;
- p->block = malloc(BGZF_MAX_BLOCK_SIZE);
- memcpy(kh_val(h, k).block, fp->uncompressed_block, BGZF_MAX_BLOCK_SIZE);
-}
-#else
-static void free_cache(BGZF *fp) {}
-static int load_block_from_cache(BGZF *fp, int64_t block_address) {return 0;}
-static void cache_block(BGZF *fp, int size) {}
-#endif
-
-int bgzf_read_block(BGZF *fp)
-{
- uint8_t header[BLOCK_HEADER_LENGTH], *compressed_block;
- int count, size = 0, block_length, remaining;
- int64_t block_address;
- block_address = _bgzf_tell((_bgzf_file_t)fp->fp);
- if (fp->cache_size && load_block_from_cache(fp, block_address)) return 0;
- count = _bgzf_read(fp->fp, header, sizeof(header));
- if (count == 0) { // no data read
- fp->block_length = 0;
- return 0;
- }
- if (count != sizeof(header) || !check_header(header)) {
- fp->errcode |= BGZF_ERR_HEADER;
- return -1;
- }
- size = count;
- block_length = unpackInt16((uint8_t*)&header[16]) + 1; // +1 because when writing this number, we used "-1"
- compressed_block = (uint8_t*)fp->compressed_block;
- memcpy(compressed_block, header, BLOCK_HEADER_LENGTH);
- remaining = block_length - BLOCK_HEADER_LENGTH;
- count = _bgzf_read(fp->fp, &compressed_block[BLOCK_HEADER_LENGTH], remaining);
- if (count != remaining) {
- fp->errcode |= BGZF_ERR_IO;
- return -1;
- }
- size += count;
- if ((count = inflate_block(fp, block_length)) < 0) return -1;
- if (fp->block_length != 0) fp->block_offset = 0; // Do not reset offset if this read follows a seek.
- fp->block_address = block_address;
- fp->block_length = count;
- cache_block(fp, size);
- return 0;
-}
-
-ssize_t bgzf_read(BGZF *fp, void *data, ssize_t length)
-{
- ssize_t bytes_read = 0;
- uint8_t *output = data;
- if (length <= 0) return 0;
- assert(fp->is_write == 0);
- while (bytes_read < length) {
- int copy_length, available = fp->block_length - fp->block_offset;
- uint8_t *buffer;
- if (available <= 0) {
- if (bgzf_read_block(fp) != 0) return -1;
- available = fp->block_length - fp->block_offset;
- if (available <= 0) break;
- }
- copy_length = length - bytes_read < available? length - bytes_read : available;
- buffer = fp->uncompressed_block;
- memcpy(output, buffer + fp->block_offset, copy_length);
- fp->block_offset += copy_length;
- output += copy_length;
- bytes_read += copy_length;
- }
- if (fp->block_offset == fp->block_length) {
- fp->block_address = _bgzf_tell((_bgzf_file_t)fp->fp);
- fp->block_offset = fp->block_length = 0;
- }
- return bytes_read;
-}
-
-/***** BEGIN: multi-threading *****/
-
-typedef struct {
- BGZF *fp;
- struct mtaux_t *mt;
- void *buf;
- int i, errcode, toproc;
-} worker_t;
-
-typedef struct mtaux_t {
- int n_threads, n_blks, curr, done;
- volatile int proc_cnt;
- void **blk;
- int *len;
- worker_t *w;
- pthread_t *tid;
- pthread_mutex_t lock;
- pthread_cond_t cv;
-} mtaux_t;
-
-static int worker_aux(worker_t *w)
-{
- int i, tmp, stop = 0;
- // wait for condition: to process or all done
- pthread_mutex_lock(&w->mt->lock);
- while (!w->toproc && !w->mt->done)
- pthread_cond_wait(&w->mt->cv, &w->mt->lock);
- if (w->mt->done) stop = 1;
- w->toproc = 0;
- pthread_mutex_unlock(&w->mt->lock);
- if (stop) return 1; // to quit the thread
- w->errcode = 0;
- for (i = w->i; i < w->mt->curr; i += w->mt->n_threads) {
- int clen = BGZF_MAX_BLOCK_SIZE;
- if (bgzf_compress(w->buf, &clen, w->mt->blk[i], w->mt->len[i], w->fp->compress_level) != 0)
- w->errcode |= BGZF_ERR_ZLIB;
- memcpy(w->mt->blk[i], w->buf, clen);
- w->mt->len[i] = clen;
- }
- tmp = __sync_fetch_and_add(&w->mt->proc_cnt, 1);
- return 0;
-}
-
-static void *mt_worker(void *data)
-{
- while (worker_aux(data) == 0);
- return 0;
-}
-
-int bgzf_mt(BGZF *fp, int n_threads, int n_sub_blks)
-{
- int i;
- mtaux_t *mt;
- pthread_attr_t attr;
- if (!fp->is_write || fp->mt || n_threads <= 1) return -1;
- mt = calloc(1, sizeof(mtaux_t));
- mt->n_threads = n_threads;
- mt->n_blks = n_threads * n_sub_blks;
- mt->len = calloc(mt->n_blks, sizeof(int));
- mt->blk = calloc(mt->n_blks, sizeof(void*));
- for (i = 0; i < mt->n_blks; ++i)
- mt->blk[i] = malloc(BGZF_MAX_BLOCK_SIZE);
- mt->tid = calloc(mt->n_threads, sizeof(pthread_t)); // tid[0] is not used, as the worker 0 is launched by the master
- mt->w = calloc(mt->n_threads, sizeof(worker_t));
- for (i = 0; i < mt->n_threads; ++i) {
- mt->w[i].i = i;
- mt->w[i].mt = mt;
- mt->w[i].fp = fp;
- mt->w[i].buf = malloc(BGZF_MAX_BLOCK_SIZE);
- }
- pthread_attr_init(&attr);
- pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
- pthread_mutex_init(&mt->lock, 0);
- pthread_cond_init(&mt->cv, 0);
- for (i = 1; i < mt->n_threads; ++i) // worker 0 is effectively launched by the master thread
- pthread_create(&mt->tid[i], &attr, mt_worker, &mt->w[i]);
- fp->mt = mt;
- return 0;
-}
-
-static void mt_destroy(mtaux_t *mt)
-{
- int i;
- // signal all workers to quit
- pthread_mutex_lock(&mt->lock);
- mt->done = 1; mt->proc_cnt = 0;
- pthread_cond_broadcast(&mt->cv);
- pthread_mutex_unlock(&mt->lock);
- for (i = 1; i < mt->n_threads; ++i) pthread_join(mt->tid[i], 0); // worker 0 is effectively launched by the master thread
- // free other data allocated on heap
- for (i = 0; i < mt->n_blks; ++i) free(mt->blk[i]);
- for (i = 0; i < mt->n_threads; ++i) free(mt->w[i].buf);
- free(mt->blk); free(mt->len); free(mt->w); free(mt->tid);
- pthread_cond_destroy(&mt->cv);
- pthread_mutex_destroy(&mt->lock);
- free(mt);
-}
-
-static void mt_queue(BGZF *fp)
-{
- mtaux_t *mt = (mtaux_t*)fp->mt;
- assert(mt->curr < mt->n_blks); // guaranteed by the caller
- memcpy(mt->blk[mt->curr], fp->uncompressed_block, fp->block_offset);
- mt->len[mt->curr] = fp->block_offset;
- fp->block_offset = 0;
- ++mt->curr;
-}
-
-static int mt_flush(BGZF *fp)
-{
- int i;
- mtaux_t *mt = (mtaux_t*)fp->mt;
- if (fp->block_offset) mt_queue(fp); // guaranteed that assertion does not fail
- // signal all the workers to compress
- pthread_mutex_lock(&mt->lock);
- for (i = 0; i < mt->n_threads; ++i) mt->w[i].toproc = 1;
- mt->proc_cnt = 0;
- pthread_cond_broadcast(&mt->cv);
- pthread_mutex_unlock(&mt->lock);
- // worker 0 is doing things here
- worker_aux(&mt->w[0]);
- // wait for all the threads to complete
- while (mt->proc_cnt < mt->n_threads);
- // dump data to disk
- for (i = 0; i < mt->n_threads; ++i) fp->errcode |= mt->w[i].errcode;
- for (i = 0; i < mt->curr; ++i)
- if (fwrite(mt->blk[i], 1, mt->len[i], fp->fp) != mt->len[i])
- fp->errcode |= BGZF_ERR_IO;
- mt->curr = 0;
- return 0;
-}
-
-static int mt_lazy_flush(BGZF *fp)
-{
- mtaux_t *mt = (mtaux_t*)fp->mt;
- if (fp->block_offset) mt_queue(fp);
- if (mt->curr == mt->n_blks)
- return mt_flush(fp);
- return -1;
-}
-
-static ssize_t mt_write(BGZF *fp, const void *data, ssize_t length)
-{
- const uint8_t *input = data;
- ssize_t rest = length;
- while (rest) {
- int copy_length = BGZF_BLOCK_SIZE - fp->block_offset < rest? BGZF_BLOCK_SIZE - fp->block_offset : rest;
- memcpy(fp->uncompressed_block + fp->block_offset, input, copy_length);
- fp->block_offset += copy_length; input += copy_length; rest -= copy_length;
- if (fp->block_offset == BGZF_BLOCK_SIZE) mt_lazy_flush(fp);
- }
- return length - rest;
-}
-
-/***** END: multi-threading *****/
-
-int bgzf_flush(BGZF *fp)
-{
- if (!fp->is_write) return 0;
- if (fp->mt) return mt_flush(fp);
- while (fp->block_offset > 0) {
- int block_length;
- block_length = deflate_block(fp, fp->block_offset);
- if (block_length < 0) return -1;
- if (fwrite(fp->compressed_block, 1, block_length, fp->fp) != block_length) {
- fp->errcode |= BGZF_ERR_IO; // possibly truncated file
- return -1;
- }
- fp->block_address += block_length;
- }
- return 0;
-}
-
-int bgzf_flush_try(BGZF *fp, ssize_t size)
-{
- if (fp->block_offset + size > BGZF_BLOCK_SIZE) {
- if (fp->mt) return mt_lazy_flush(fp);
- else return bgzf_flush(fp);
- }
- return -1;
-}
-
-ssize_t bgzf_write(BGZF *fp, const void *data, ssize_t length)
-{
- const uint8_t *input = data;
- int block_length = BGZF_BLOCK_SIZE, bytes_written = 0;
- assert(fp->is_write);
- if (fp->mt) return mt_write(fp, data, length);
- while (bytes_written < length) {
- uint8_t* buffer = fp->uncompressed_block;
- int copy_length = block_length - fp->block_offset < length - bytes_written? block_length - fp->block_offset : length - bytes_written;
- memcpy(buffer + fp->block_offset, input, copy_length);
- fp->block_offset += copy_length;
- input += copy_length;
- bytes_written += copy_length;
- if (fp->block_offset == block_length && bgzf_flush(fp)) break;
- }
- return bytes_written;
-}
-
-int bgzf_close(BGZF* fp)
-{
- int ret, count, block_length;
- if (fp == 0) return -1;
- if (fp->is_write) {
- if (bgzf_flush(fp) != 0) return -1;
- fp->compress_level = -1;
- block_length = deflate_block(fp, 0); // write an empty block
- count = fwrite(fp->compressed_block, 1, block_length, fp->fp);
- if (fflush(fp->fp) != 0) {
- fp->errcode |= BGZF_ERR_IO;
- return -1;
- }
- if (fp->mt) mt_destroy(fp->mt);
- }
- ret = fp->is_write? fclose(fp->fp) : _bgzf_close(fp->fp);
- if (ret != 0) return -1;
- free(fp->uncompressed_block);
- free(fp->compressed_block);
- free_cache(fp);
- free(fp);
- return 0;
-}
-
-void bgzf_set_cache_size(BGZF *fp, int cache_size)
-{
- if (fp) fp->cache_size = cache_size;
-}
-
-int bgzf_check_EOF(BGZF *fp)
-{
- static uint8_t magic[28] = "\037\213\010\4\0\0\0\0\0\377\6\0\102\103\2\0\033\0\3\0\0\0\0\0\0\0\0\0";
- uint8_t buf[28];
- off_t offset;
- offset = _bgzf_tell((_bgzf_file_t)fp->fp);
- if (_bgzf_seek(fp->fp, -28, SEEK_END) < 0) return 0;
- _bgzf_read(fp->fp, buf, 28);
- _bgzf_seek(fp->fp, offset, SEEK_SET);
- return (memcmp(magic, buf, 28) == 0)? 1 : 0;
-}
-
-int64_t bgzf_seek(BGZF* fp, int64_t pos, int where)
-{
- int block_offset;
- int64_t block_address;
-
- if (fp->is_write || where != SEEK_SET) {
- fp->errcode |= BGZF_ERR_MISUSE;
- return -1;
- }
- block_offset = pos & 0xFFFF;
- block_address = pos >> 16;
- if (_bgzf_seek(fp->fp, block_address, SEEK_SET) < 0) {
- fp->errcode |= BGZF_ERR_IO;
- return -1;
- }
- fp->block_length = 0; // indicates current block has not been loaded
- fp->block_address = block_address;
- fp->block_offset = block_offset;
- return 0;
-}
-
-int bgzf_is_bgzf(const char *fn)
-{
- uint8_t buf[16];
- int n;
- _bgzf_file_t fp;
- if ((fp = _bgzf_open(fn, "r")) == 0) return 0;
- n = _bgzf_read(fp, buf, 16);
- _bgzf_close(fp);
- if (n != 16) return 0;
- return memcmp(g_magic, buf, 16) == 0? 1 : 0;
-}
-
-int bgzf_getc(BGZF *fp)
-{
- int c;
- if (fp->block_offset >= fp->block_length) {
- if (bgzf_read_block(fp) != 0) return -2; /* error */
- if (fp->block_length == 0) return -1; /* end-of-file */
- }
- c = ((unsigned char*)fp->uncompressed_block)[fp->block_offset++];
- if (fp->block_offset == fp->block_length) {
- fp->block_address = _bgzf_tell((_bgzf_file_t)fp->fp);
- fp->block_offset = 0;
- fp->block_length = 0;
- }
- return c;
-}
-
-#ifndef kroundup32
-#define kroundup32(x) (--(x), (x)|=(x)>>1, (x)|=(x)>>2, (x)|=(x)>>4, (x)|=(x)>>8, (x)|=(x)>>16, ++(x))
-#endif
-
-int bgzf_getline(BGZF *fp, int delim, kstring_t *str)
-{
- int l, state = 0;
- unsigned char *buf = (unsigned char*)fp->uncompressed_block;
- str->l = 0;
- do {
- if (fp->block_offset >= fp->block_length) {
- if (bgzf_read_block(fp) != 0) { state = -2; break; }
- if (fp->block_length == 0) { state = -1; break; }
- }
- for (l = fp->block_offset; l < fp->block_length && buf[l] != delim; ++l);
- if (l < fp->block_length) state = 1;
- l -= fp->block_offset;
- if (str->l + l + 1 >= str->m) {
- str->m = str->l + l + 2;
- kroundup32(str->m);
- str->s = (char*)realloc(str->s, str->m);
- }
- memcpy(str->s + str->l, buf + fp->block_offset, l);
- str->l += l;
- fp->block_offset += l + 1;
- if (fp->block_offset >= fp->block_length) {
- fp->block_address = _bgzf_tell((_bgzf_file_t)fp->fp);
- fp->block_offset = 0;
- fp->block_length = 0;
- }
- } while (state == 0);
- if (str->l == 0 && state < 0) return state;
- str->s[str->l] = 0;
- return str->l;
-}
diff --git a/CHANGES b/clipper/CHANGES
similarity index 68%
rename from CHANGES
rename to clipper/CHANGES
index f313903..01ed643 100644
--- a/CHANGES
+++ b/clipper/CHANGES
@@ -1,3 +1,16 @@
+r805:
+* fixed fastq-mcf 'start' bug for ubuntu 14.04
+
+r780:
+* fixed fastq-mcf output
+* added support for fastq-multx reading from headers
+* bundled entire sparsehash library, changed Makefile to include it
+* fastq-join corrected quality in overlapped regions
+* added a proper test suite. requires perl & Test::More
+* fastq-multx minimum distance
+* fastq-join allow insert < read-length
+* fastq-mcf corrected low-complexity filtering
+
r181 - CASAVA purity filtering
r154 - fixed major bug in RMN's that would invalidate reads
r152 - allowed short adapters to work at the 'begin' of reads
diff --git a/clipper/Chrdex.pm b/clipper/Chrdex.pm
new file mode 100644
index 0000000..de80b8d
--- /dev/null
+++ b/clipper/Chrdex.pm
@@ -0,0 +1,479 @@
+package Chrdex;
+
+# Licensed via the "Artistic License"
+# See: http://dev.perl.org/licenses/artistic.html
+# Copyright 2011, Expression Analysis
+# Author: Erik Aronesty <earonesty at expressionanalysis.com>
+# "Let me know if it's useful"
+#
+# EXMAPLE:
+# $x = Chrdex->new("CCDS_Exome_annot.txt", chr=>2, beg=>5, end=>6, skip=>1);
+# $x->search(1, 153432255);
+# TODO:
+# work with ranges...should be easy
+
+use Inline 'C';
+
+use strict;
+use warnings::register;
+
+use Storable qw(store retrieve);
+use Data::Dumper;
+use locale; ##added by vjw to control case of reference bases
+
+our $VERSION = '1.2.15'; # major = object interface is different, minor = new features, release=fixes/performance improve
+my $FILEVER = 4; # only increment this if existing files won't work with the new version
+
+my $tmpb;
+
+sub new {
+ my ($class, $path, %opts) = @_;
+
+ if (ref($class)) {
+ $class = ref($class);
+ }
+
+ $opts{delim} = "\t" if ! $opts{delim};
+ $opts{skip} = 0 if ! $opts{skip};
+ $opts{chr} = 0 if ! $opts{chr};
+ $opts{beg} = 1 if ! $opts{beg};
+ $opts{end} = 2 if ! $opts{end};
+ $opts{ver} = $FILEVER;
+
+ if (! -s $path) { # be a little more careful about this one
+ if (! -s $path || -d $path) {
+ die "Can't open $path.\n";
+ }
+ }
+
+ # location of data store
+ my $annob = $path;
+ $annob =~ s/([^\/]+)$/\.$1/;
+ $annob = "$annob.chrdex";
+
+ $annob = $opts{index_path} if $opts{index_path};
+
+ my $ref;
+ my $mt = (stat($path))[9];
+ # if index is new
+ if (!$opts{force} && (stat($annob))[9] > $mt) {
+ $ref = eval {retrieve $annob};
+
+ # if arguments were different, then clear ref
+ for (qw(delim skip chr beg end ver byref)) {
+ last if !$ref;
+ $ref = undef if !($ref->{_opts}->{$_} eq $opts{$_});
+ }
+
+ if ($ref) {
+ # if begin != end, then type is range
+ if ($ref->{_opts}->{beg} != $ref->{_opts}->{end}) {
+ eval{chrdex_check($ref)};
+ if ($@) {
+ $ref = undef;
+ }
+ }
+ }
+ }
+
+ if (!$ref) {
+ my %locs;
+ $tmpb = "$annob.$$";
+ open( IN, $path ) or die "Can't open $path: $!\n";
+ my $skip = $opts{skip};
+ while ($skip > 0) { scalar <IN>; --$skip };
+
+ my $pos = 0;
+ $pos = tell IN if $opts{byref};
+ while(<IN>) {
+ my ($chr, $beg, $end);
+ $_ =~ s/\s+$//;
+ my @data = split /\t/;
+ $chr = $data[$opts{chr}];
+ $beg = $data[$opts{beg}];
+ $end = $data[$opts{end}];
+ if (!(($beg+0) eq $beg)) {
+ die "Invalid data in $path at line $., expected a number, got '$beg'\n";
+ }
+ $chr=~s/^chr//i;
+ $_ = $pos if $opts{byref};
+
+ # here's where you put the annotation info
+ if ($opts{beg} == $opts{end}) {
+ if ($locs{"$chr:$beg"}) {
+ push @{$locs{"$chr:$beg"}}, $_;;
+ } else {
+ $locs{"$chr:$beg"} = [$_];
+ }
+ } else {
+ push @{$locs{$chr}}, [$beg+0, $end+0, [$_]];
+ }
+ $pos = tell IN if $opts{byref};
+ }
+ close IN;
+
+ if ($opts{beg} == $opts{end}) {
+ goto DONE;
+ }
+
+ # sort & cache annotation, deal with overlaps nicely
+ my $i;
+ for my $chr (keys(%locs)) {
+ my $arr = $locs{$chr};
+ @{$locs{$chr}} = sort {$a->[0]-$b->[0]} @{$locs{$chr}};
+ for ($i=0;$i<$#{$arr};++$i) {
+ next unless $arr->[$i+1]->[0]; # empty? skip
+ if ($arr->[$i]->[1] >= $arr->[$i+1]->[0]) { # if i overlap the next one
+ # warn 1, Dumper($arr->[$i], $arr->[$i+1], $arr->[$i+2]);
+
+ # frag after next
+ my $new_st = $arr->[$i+1]->[1]+1;
+ my $new_en = $arr->[$i]->[1];
+ my $new_ro = $arr->[$i]->[2];
+
+ # TODO: store as array... string folding will save lots of space when there are many overlaps
+ # but hasn't been a problem so far
+ if ($arr->[$i]->[1] < $arr->[$i+1]->[1]) {
+ # overlap next
+ $new_st = $arr->[$i]->[1] + 1;
+ $new_en = $arr->[$i+1]->[1];
+ $new_ro = [@{$arr->[$i+1]->[2]}];
+ $arr->[$i+1]->[1] = $arr->[$i]->[1];
+ push @{$arr->[$i+1]->[2]}, @{$arr->[$i]->[2]};
+ } else {
+ push @{$arr->[$i+1]->[2]}, @{$arr->[$i]->[2]};
+ }
+
+ # shorten my end to less than the next's start
+ $arr->[$i]->[1] = $arr->[$i+1]->[0]-1;
+
+ if ($new_en >= $new_st) {
+ # warn "NEW: $new_st $new_en $new_ro\n";
+
+ # put the fragment where it belongs
+ my $j=$i+2;
+ while ($j<=$#{$arr} & $new_st > $arr->[$j]->[0]) {
+ ++$j;
+ }
+ splice(@{$arr}, $j, 0, [$new_st, $new_en, $new_ro]);
+ }
+
+ if ($arr->[$i]->[1] < $arr->[$i]->[0]) {
+ splice(@{$arr}, $i, 1);
+ --$i;
+ }
+ # warn 2, Dumper($arr->[$i], $arr->[$i+1], $arr->[$i+2]);
+ }
+ }
+ }
+ DONE:
+ $locs{_opts} = \%opts;
+ $ref = \%locs;
+ store \%locs, "$tmpb";
+ rename "$tmpb", "$annob";
+ }
+
+ # stuff these into the top level, since tests showed it was significantly more expensive to doubly-reference
+
+ $ref->{_type}='C';
+ $ref->{_type}='I' if ($opts{beg} == $opts{end});
+
+ if (($ref->{_type} eq 'C')) {
+ chrdex_check($ref);
+ }
+
+ if ($opts{byref}) {
+ # only storing pointers to file, not whole record
+ require IO::File;
+ $ref->{_byref}=1;
+ $ref->{_refh} = new IO::File;
+ open($ref->{_refh}, $path) || die "Can't open $path\n";
+ }
+
+ bless $ref, $class;
+
+ return $ref;
+}
+
+END {
+ unlink("$tmpb.chrdex");
+}
+
+sub search {
+ return join "\n", query(@_);
+}
+
+sub query {
+ my ($self, $chr, $loc, $loc2) = @_;
+ $chr=~s/^chr//io;
+ my $type = $self->{_type};
+ my $list;
+ if ($type eq 'C') {
+ if ($loc2) {
+ $list = chrdex_search_range($self, $chr, $loc, $loc2);
+ return () if ! defined $list;
+ my $prev;
+ for (my $i = 0; $i < @$list; ++$i) {
+ if ($prev eq $list->[$i]) {
+ splice @$list, $i, 1;
+ --$i;
+ }
+ $prev = $list->[$i];
+ }
+ return @$list if !($self->{_byref});
+ } else {
+ $list = chrdex_search($self, $chr, $loc);
+ return () if ! defined $list;
+ return @$list if !($self->{_byref});
+ }
+ } elsif ($type eq 'I') {
+ if ($loc2) {
+ # if only this wasn't a hash.... sheesh
+ my %hv;
+ for (my $i=$loc;$i<$loc2;++$i) {
+ $list = $self->{"$chr:$loc"};
+ next unless defined $list;
+ for (@$list) {
+ $hv{$_}=1;
+ }
+ }
+ $list = [keys(%hv)];
+ } else {
+ $list = $self->{"$chr:$loc"};
+ return () if ! defined $list;
+ }
+ }
+
+ if ($self->{_byref}) {
+ for (@$list) {
+ seek $self->{_refh}, $_, 0;
+ $_=$self->{_refh}->getline();
+ chomp $_;
+ }
+ }
+ return @$list;
+}
+
+1;
+
+__DATA__
+__C__
+
+bool get_sten(AV *arr, int i, int *st, int*en);
+SV * av_fetch_2(AV *arr, int i, int j);
+int chrdex_search_n(AV *arr, SV *schr, SV* sloc);
+
+void chrdex_search(SV *self, SV *schr, SV* sloc) {
+ SV *roi;
+ AV *arr;
+ SV **pav;
+ HV *map= (HV*) SvRV(self);
+ char *chr = SvPV_nolen(schr);
+ int loc = SvIV(sloc);
+
+ pav = hv_fetch(map, chr, strlen(chr), 0);
+
+ if (!pav)
+ return;
+
+ arr = (AV*) SvRV(*pav);
+
+ int i = chrdex_search_n(arr, schr, sloc);
+ if (i >=0) {
+ roi = av_fetch_2(arr, i, 2);
+ if (!roi)
+ return;
+
+ Inline_Stack_Vars;
+ Inline_Stack_Reset;
+ Inline_Stack_Push(sv_2mortal(newSVsv(roi)));
+ Inline_Stack_Done;
+ Inline_Stack_Return(1);
+ }
+ return;
+}
+
+void chrdex_search_range(SV *self, SV *schr, SV* sloc, SV* eloc) {
+ SV *roi = NULL;
+ AV *arr;
+ SV **pav;
+ HV *map= (HV*) SvRV(self);
+ char *chr = SvPV_nolen(schr);
+ int isloc = SvIV(sloc);
+ int ieloc = SvIV(eloc);
+
+ pav = hv_fetch(map, chr, strlen(chr), 0);
+
+ if (!pav)
+ return;
+
+ arr = (AV*) SvRV(*pav);
+
+ int i = chrdex_search_n(arr, schr, sloc);
+ int j = chrdex_search_n(arr, schr, eloc);
+
+ if (!i) i=j;
+ if (!j) j=i;
+ if (i >=0) {
+ int x;
+ char *rx;
+ AV *rav=NULL;
+ for (x=i; x<=j; ++x) {
+ int st, en;
+ if (get_sten(arr, x, &st, &en)) {
+ if (ieloc >= st && isloc <= en) {
+ SV* ret = av_fetch_2(arr, x, 2);
+ if (ret) {
+ int z;
+ if (!rav) rav = newAV();
+ for (z=0;z<=av_len(SvRV(ret));++z) {
+ SV ** s = av_fetch(SvRV(ret), z, 0);
+ if (s) {
+ SvREFCNT_inc(*s);
+ av_push(rav, *s);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ if (!rav)
+ return;
+
+ Inline_Stack_Vars;
+ Inline_Stack_Reset;
+ Inline_Stack_Push(newRV_noinc((SV*)rav));
+ Inline_Stack_Push(roi);
+ Inline_Stack_Done;
+ Inline_Stack_Return(1);
+ }
+ return;
+}
+
+int chrdex_search_n(AV *arr, SV *schr, SV* sloc) {
+ int b=0, t, i, st, en;
+ char *chr = SvPV_nolen(schr);
+ int loc = SvIV(sloc);
+
+ b = 0;
+ t = av_len(arr);
+
+ if (t <= b) {
+ get_sten(arr, i=0, &st, &en);
+ } else {
+ while (t > b) {
+ i = (t+b)/2;
+ if (!get_sten(arr, i, &st, &en))
+ return;
+
+ if ((i == b) || (i == t))
+ break;
+ if (loc > en) {
+ b = i;
+ } else if (loc < st) {
+ t = i;
+ } else {
+ break;
+ }
+ }
+ }
+
+// printf("chr:%s loc: %d, st: %d en: %d i: %d t: %d b: %d\n", chr, loc, st, en, i, t, b);
+
+ if (loc < st) {
+ --i;
+ if (i < 0 || !get_sten(arr, i, &st, &en))
+ return;
+ } else if (loc > en) {
+ ++i;
+ if (!get_sten(arr, i, &st, &en))
+ return;
+ }
+
+ if (loc >= st && loc <= en) {
+ return i;
+ }
+
+ return -1;
+}
+
+// doubly indexed array ... fetch 1, fetch 2
+SV * av_fetch_2(AV *arr, int i, int j) {
+ SV **pav;
+
+ if (!(pav = av_fetch(arr,i,0)))
+ return &PL_sv_undef;
+
+ arr = (AV*) SvRV(*pav);
+
+ if (!(pav = av_fetch(arr,j,0)))
+ return &PL_sv_undef;
+
+ return *pav;
+}
+
+bool get_sten(AV *arr, int i, int *st, int*en) {
+ SV **pav;
+
+ if (!(pav = av_fetch(arr,i,0)))
+ return 0;
+
+ arr = (AV*) SvRV(*pav);
+
+ if (!(pav = av_fetch(arr,0,0)))
+ return 0;
+ *st = SvIV(*pav);
+
+ if (!(pav = av_fetch(arr,1,0)))
+ return 0;
+
+ *en = SvIV(*pav);
+
+ return 1;
+}
+
+void chrdex_check(SV *annoR) {
+ HE *he; // hash entry
+ SV *ent; // hash value
+ HV *hv; // annotation hash table
+ AV *av; // array in hash
+ SV **v; // entry in array
+ char *key;
+ int len;
+
+ if (!SvRV(annoR))
+ croak("annotation hash must be a reference");
+
+ annoR = SvRV(annoR);
+ if (SvTYPE(annoR) != SVt_PVHV)
+ croak("annotation array must be a hash ref");
+
+ hv = (HV *) annoR;
+ if (!hv_iterinit(hv)) {
+ croak("empty hash, fix that in perl");
+ }
+
+ he = hv_iternext(hv);
+ ent = hv_iternextsv(hv, &key, &len);
+ while (key && *key == '_') {
+ ent = hv_iternextsv(hv, &key, &len);
+ }
+ if ( SvTYPE(ent) != SVt_RV || (SvTYPE(SvRV(ent)) != SVt_PVAV) ) {
+ croak("each entry in the annotation hash must be a reference to an array");
+ }
+
+ av = (AV*) SvRV(ent);
+ v = av_fetch(av, 0, 0);
+ if (!v) {
+ croak("no empty annotation arrays, please");
+ }
+
+ if ( SvTYPE(*v) != SVt_RV || (SvTYPE(SvRV(*v)) != SVt_PVAV) ) {
+ croak("each entry in the array should contain a start and end region");
+ }
+
+ // ok.... reference should be safe enough not to segfault later
+}
+
+
diff --git a/clipper/Grun.pm b/clipper/Grun.pm
new file mode 100644
index 0000000..e1a419a
--- /dev/null
+++ b/clipper/Grun.pm
@@ -0,0 +1,114 @@
+package Grun;
+
+use Exporter;
+
+use JSON::XS;
+use File::Temp qw(tempfile);
+use Carp;
+
+our @ISA=qw(Exporter);
+our @EXPORT=qw(grun grun_wait grun_kill);
+
+my %JTMP;
+sub grun_wait {
+ my ($jid) = @_;
+ my $ret = system("grun -q wait $jid 2>&1");
+ if ($ret) {
+ $ret =(($ret<<8)&255) if $ret > 255;
+ $ret = 1 if !$ret;
+ }
+
+ open (my $fh, '<', $JTMP{$jid} . ".out");
+ local $/=undef;
+ my $out=<$fh>;
+ close $fh;
+
+ # copy pasted from below... make a function!
+ $out=decode_json($out);
+ if ($out->{err}) {
+ # remote eval died... so we do too
+ die $out->{err};
+ };
+ if (wantarray) {
+ # return array
+ return @{$out->{ret}};
+ } else {
+ # return single value
+ return $out->{ret}->[0];
+ }
+}
+
+sub grun {
+ # this is only required on the execution node....so don't use it everywhere if not needed
+ require B::RecDeparse;
+
+ # at most 9 levels deep
+ my $deparse=B::RecDeparse->new(level=>9);
+
+ my ($op, $func, @args) = @_;
+ croak("usage: grun({options}, \\\&function, \@args)") unless ref($func) eq 'CODE' && defined(wantarray);
+ ($fh, $filename) = tempfile(".grun.XXXXXX", DIR=>".");
+ my $code=$deparse->coderef2text($func);
+ my $def=encode_json({code=>$code, args=>\@args, wantarray=>wantarray});
+ print $fh $def;
+ close $fh;
+
+ my $opts;
+ if ($op->{nowait}) {
+ $opts = "-o $filename.out -nowait";
+ }
+
+ my $cmd = "grun $opts $^X -MGrun -e \"\\\"Grun::exec('$filename')\\\"\"";
+
+ # get output (json string)
+
+ my $out = `$cmd`;
+ if ($op->{nowait}) {
+ my ($jid) = $out =~ /job_id.*:\s*(\d+)/i;
+ $JTMP{$jid}=$filename;
+ return $jid;
+ }
+
+ $out=decode_json($out);
+ if ($out->{err}) {
+ # remote eval died... so we do too
+ die $out->{err};
+ };
+ if (wantarray) {
+ # return array
+ return @{$out->{ret}};
+ } else {
+ # return single value
+ return $out->{ret}->[0];
+ }
+}
+
+sub exec {
+ my ($fil) = @_;
+ local $/ = undef;
+ open( my $fh, '<', $fil );
+ my $json = <$fh>;
+ close $fh;
+
+ my $hash=decode_json($json);
+ my $sub = "sub " . $hash->{code};
+ $sub = eval($sub);
+ my (@ret, $ret, $err);
+ eval {
+ if ($hash->{wantarray}) {
+ @ret=&{$sub}(@{$hash->{args}});
+ } else {
+ # scalar context
+ $ret=&{$sub}(@{$hash->{args}});
+ @ret=(($ret));
+ }
+ };
+ my $err=$@;
+ my $out=encode_json({ret=>\@ret, err=>$err});
+
+ # return output via STDOUT
+ print $out;
+}
+
+
+1;
diff --git a/clipper/HyperLevelDB/.gitignore b/clipper/HyperLevelDB/.gitignore
new file mode 100644
index 0000000..04b5816
--- /dev/null
+++ b/clipper/HyperLevelDB/.gitignore
@@ -0,0 +1,34 @@
+# wildcards
+.deps
+.dirstamp
+*.la
+.libs
+*.lo
+*.o
+*_test
+# specific files
+/aclocal.m4
+/autom4te.cache/
+/benchmark
+/config.guess
+/config.h
+/config.h.in
+/config.log
+/config.status
+/config.sub
+/configure
+/db_bench
+/depcomp
+/hyperleveldb.upack
+/install-sh
+/leveldbutil
+/leveldb-verify
+/libhyperleveldb.pc
+/libtool
+/ltmain.sh
+/m4/
+/Makefile
+/Makefile.in
+/Makefile.old
+/missing
+/stamp-h1
diff --git a/clipper/HyperLevelDB/.tarballignore b/clipper/HyperLevelDB/.tarballignore
new file mode 100644
index 0000000..3ad664f
--- /dev/null
+++ b/clipper/HyperLevelDB/.tarballignore
@@ -0,0 +1,2 @@
+.gitignore
+.tarballignore
diff --git a/clipper/HyperLevelDB/AUTHORS b/clipper/HyperLevelDB/AUTHORS
new file mode 100644
index 0000000..bf024ab
--- /dev/null
+++ b/clipper/HyperLevelDB/AUTHORS
@@ -0,0 +1,15 @@
+# Names should be added to this file like so:
+# Name or Organization <email address>
+
+Google Inc.
+
+# Initial version authors:
+Jeffrey Dean <jeff at google.com>
+Sanjay Ghemawat <sanjay at google.com>
+
+# Partial list of contributors:
+Kevin Regan <kevin.d.regan at gmail.com>
+Johan Bilien <jobi at litl.com>
+
+# HyperLevelDB authors:
+Robert Escriva <robert at hyperdex.org>
diff --git a/clipper/HyperLevelDB/LICENSE b/clipper/HyperLevelDB/LICENSE
new file mode 100644
index 0000000..8e80208
--- /dev/null
+++ b/clipper/HyperLevelDB/LICENSE
@@ -0,0 +1,27 @@
+Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"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 COPYRIGHT
+OWNER OR CONTRIBUTORS 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.
diff --git a/clipper/HyperLevelDB/Makefile.am b/clipper/HyperLevelDB/Makefile.am
new file mode 100644
index 0000000..e74e4ea
--- /dev/null
+++ b/clipper/HyperLevelDB/Makefile.am
@@ -0,0 +1,274 @@
+## Copyright (c) 2013
+## All rights reserved.
+##
+## Redistribution and use in source and binary forms, with or without
+## modification, are permitted provided that the following conditions are met:
+##
+## * Redistributions of source code must retain the above copyright notice,
+## this list of conditions and the following disclaimer.
+## * Redistributions in binary form must reproduce the above copyright
+## notice, this list of conditions and the following disclaimer in the
+## documentation and/or other materials provided with the distribution.
+## * Neither the name of nb nor the names of its contributors may be used to
+## endorse or promote products derived from this software without specific
+## prior written permission.
+##
+## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR CONTRIBUTORS 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.
+
+ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
+AM_CPPFLAGS = -I${abs_top_srcdir}/include
+AM_CFLAGS = -DLEVELDB_PLATFORM_POSIX $(SNAPPY_FLAGS) ${EXTRA_CFLAGS} $(WANAL_CFLAGS)
+AM_CXXFLAGS = -DLEVELDB_PLATFORM_POSIX $(SNAPPY_FLAGS) ${EXTRA_CFLAGS} $(WANAL_CXXFLAGS)
+AM_MAKEFLAGS = --no-print-directory
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = libhyperleveldb.pc
+
+EXTRA_DIST =
+EXTRA_DIST += AUTHORS
+EXTRA_DIST += doc/benchmark.html
+EXTRA_DIST += doc/doc.css
+EXTRA_DIST += doc/impl.html
+EXTRA_DIST += doc/index.html
+EXTRA_DIST += doc/log_format.txt
+EXTRA_DIST += doc/table_format.txt
+EXTRA_DIST += helpers/memenv/memenv.cc
+EXTRA_DIST += helpers/memenv/memenv_test.cc
+EXTRA_DIST += LICENSE
+EXTRA_DIST += NEWS
+EXTRA_DIST += port/README
+EXTRA_DIST += README
+EXTRA_DIST += TODO
+
+pkginclude_HEADERS =
+pkginclude_HEADERS += include/hyperleveldb/cache.h
+pkginclude_HEADERS += include/hyperleveldb/c.h
+pkginclude_HEADERS += include/hyperleveldb/comparator.h
+pkginclude_HEADERS += include/hyperleveldb/db.h
+pkginclude_HEADERS += include/hyperleveldb/env.h
+pkginclude_HEADERS += include/hyperleveldb/filter_policy.h
+pkginclude_HEADERS += include/hyperleveldb/iterator.h
+pkginclude_HEADERS += include/hyperleveldb/options.h
+pkginclude_HEADERS += include/hyperleveldb/slice.h
+pkginclude_HEADERS += include/hyperleveldb/replay_iterator.h
+pkginclude_HEADERS += include/hyperleveldb/status.h
+pkginclude_HEADERS += include/hyperleveldb/table_builder.h
+pkginclude_HEADERS += include/hyperleveldb/table.h
+pkginclude_HEADERS += include/hyperleveldb/write_batch.h
+noinst_HEADERS =
+noinst_HEADERS += db/builder.h
+noinst_HEADERS += db/dbformat.h
+noinst_HEADERS += db/db_impl.h
+noinst_HEADERS += db/db_iter.h
+noinst_HEADERS += db/filename.h
+noinst_HEADERS += db/log_format.h
+noinst_HEADERS += db/log_reader.h
+noinst_HEADERS += db/log_writer.h
+noinst_HEADERS += db/memtable.h
+noinst_HEADERS += db/skiplist.h
+noinst_HEADERS += db/replay_iterator.h
+noinst_HEADERS += db/snapshot.h
+noinst_HEADERS += db/table_cache.h
+noinst_HEADERS += db/version_edit.h
+noinst_HEADERS += db/version_set.h
+noinst_HEADERS += db/write_batch_internal.h
+noinst_HEADERS += helpers/memenv/memenv.h
+noinst_HEADERS += port/atomic_pointer.h
+noinst_HEADERS += port/port_example.h
+noinst_HEADERS += port/port.h
+noinst_HEADERS += port/port_posix.h
+noinst_HEADERS += port/thread_annotations.h
+noinst_HEADERS += port/win/stdint.h
+noinst_HEADERS += table/block_builder.h
+noinst_HEADERS += table/block.h
+noinst_HEADERS += table/filter_block.h
+noinst_HEADERS += table/format.h
+noinst_HEADERS += table/iterator_wrapper.h
+noinst_HEADERS += table/merger.h
+noinst_HEADERS += table/two_level_iterator.h
+noinst_HEADERS += util/arena.h
+noinst_HEADERS += util/coding.h
+noinst_HEADERS += util/crc32c.h
+noinst_HEADERS += util/hash.h
+noinst_HEADERS += util/histogram.h
+noinst_HEADERS += util/logging.h
+noinst_HEADERS += util/mutexlock.h
+noinst_HEADERS += util/posix_logger.h
+noinst_HEADERS += util/random.h
+noinst_HEADERS += util/testharness.h
+noinst_HEADERS += util/testutil.h
+
+lib_LTLIBRARIES = libhyperleveldb.la
+
+libhyperleveldb_la_SOURCES =
+libhyperleveldb_la_SOURCES += db/builder.cc
+libhyperleveldb_la_SOURCES += db/c.cc
+libhyperleveldb_la_SOURCES += db/dbformat.cc
+libhyperleveldb_la_SOURCES += db/db_impl.cc
+libhyperleveldb_la_SOURCES += db/db_iter.cc
+libhyperleveldb_la_SOURCES += db/filename.cc
+libhyperleveldb_la_SOURCES += db/log_reader.cc
+libhyperleveldb_la_SOURCES += db/log_writer.cc
+libhyperleveldb_la_SOURCES += db/memtable.cc
+libhyperleveldb_la_SOURCES += db/repair.cc
+libhyperleveldb_la_SOURCES += db/replay_iterator.cc
+libhyperleveldb_la_SOURCES += db/table_cache.cc
+libhyperleveldb_la_SOURCES += db/version_edit.cc
+libhyperleveldb_la_SOURCES += db/version_set.cc
+libhyperleveldb_la_SOURCES += db/write_batch.cc
+libhyperleveldb_la_SOURCES += table/block_builder.cc
+libhyperleveldb_la_SOURCES += table/block.cc
+libhyperleveldb_la_SOURCES += table/filter_block.cc
+libhyperleveldb_la_SOURCES += table/format.cc
+libhyperleveldb_la_SOURCES += table/iterator.cc
+libhyperleveldb_la_SOURCES += table/merger.cc
+libhyperleveldb_la_SOURCES += table/table_builder.cc
+libhyperleveldb_la_SOURCES += table/table.cc
+libhyperleveldb_la_SOURCES += table/two_level_iterator.cc
+libhyperleveldb_la_SOURCES += util/arena.cc
+libhyperleveldb_la_SOURCES += util/bloom.cc
+libhyperleveldb_la_SOURCES += util/cache.cc
+libhyperleveldb_la_SOURCES += util/coding.cc
+libhyperleveldb_la_SOURCES += util/comparator.cc
+libhyperleveldb_la_SOURCES += util/crc32c.cc
+libhyperleveldb_la_SOURCES += util/env.cc
+libhyperleveldb_la_SOURCES += util/env_posix.cc
+libhyperleveldb_la_SOURCES += util/filter_policy.cc
+libhyperleveldb_la_SOURCES += util/hash.cc
+libhyperleveldb_la_SOURCES += util/histogram.cc
+libhyperleveldb_la_SOURCES += util/logging.cc
+libhyperleveldb_la_SOURCES += util/options.cc
+libhyperleveldb_la_SOURCES += util/status.cc
+libhyperleveldb_la_SOURCES += port/port_posix.cc
+libhyperleveldb_la_LIBADD = $(SNAPPY_LIBS) -lpthread
+libhyperleveldb_la_LDFLAGS = -lpthread
+
+TESTUTIL = util/testutil.cc
+TESTHARNESS = util/testharness.cc $(TESTUTIL)
+
+noinst_PROGRAMS =
+noinst_PROGRAMS += db_bench
+noinst_PROGRAMS += leveldbutil
+noinst_PROGRAMS += leveldb-verify
+
+EXTRA_PROGRAMS =
+EXTRA_PROGRAMS += benchmark
+EXTRA_PROGRAMS += db_bench_sqlite3
+EXTRA_PROGRAMS += db_bench_tree_db
+
+check_PROGRAMS =
+check_PROGRAMS += autocompact_test
+check_PROGRAMS += arena_test
+check_PROGRAMS += bloom_test
+check_PROGRAMS += c_test
+check_PROGRAMS += cache_test
+check_PROGRAMS += coding_test
+check_PROGRAMS += corruption_test
+check_PROGRAMS += crc32c_test
+check_PROGRAMS += db_test
+check_PROGRAMS += dbformat_test
+check_PROGRAMS += env_test
+check_PROGRAMS += filename_test
+check_PROGRAMS += filter_block_test
+check_PROGRAMS += log_test
+check_PROGRAMS += skiplist_test
+check_PROGRAMS += table_test
+check_PROGRAMS += version_edit_test
+check_PROGRAMS += version_set_test
+check_PROGRAMS += write_batch_test
+check_PROGRAMS += issue178_test
+check_PROGRAMS += issue200_test
+
+TESTS = $(check_PROGRAMS)
+
+benchmark_SOURCES = benchmark.cc
+benchmark_LDADD = libhyperleveldb.la -lpthread -le -lpopt -lygor
+benchmark_LDFLAGS = -no-install
+
+db_bench_SOURCES = db/db_bench.cc $(TESTUTIL)
+db_bench_LDADD = libhyperleveldb.la -lpthread
+
+db_bench_sqlite3_SOURCES = doc/bench/db_bench_sqlite3.cc $(TESTUTIL)
+db_bench_sqlite3_LDADD = -lsqlite3
+
+db_bench_tree_db_SOURCES = doc/bench/db_bench_tree_db.cc $(TESTUTIL)
+db_bench_tree_db_LDADD = -lkyotocabinet
+
+leveldbutil_SOURCES = db/leveldb_main.cc
+leveldbutil_LDADD = libhyperleveldb.la -lpthread
+
+leveldb_verify_SOURCES = leveldb-verify.cc
+leveldb_verify_LDADD = libhyperleveldb.la -lpthread
+
+autocompact_test_SOURCES = db/autocompact_test.cc $(TESTHARNESS)
+autocompact_test_LDADD = libhyperleveldb.la -lpthread
+
+arena_test_SOURCES = util/arena_test.cc $(TESTHARNESS)
+arena_test_LDADD = libhyperleveldb.la -lpthread
+
+bloom_test_SOURCES = util/bloom_test.cc $(TESTHARNESS)
+bloom_test_LDADD = libhyperleveldb.la -lpthread
+
+c_test_SOURCES = db/c_test.c $(TESTHARNESS)
+c_test_LDADD = libhyperleveldb.la -lpthread
+
+cache_test_SOURCES = util/cache_test.cc $(TESTHARNESS)
+cache_test_LDADD = libhyperleveldb.la -lpthread
+
+coding_test_SOURCES = util/coding_test.cc $(TESTHARNESS)
+coding_test_LDADD = libhyperleveldb.la -lpthread
+
+corruption_test_SOURCES = db/corruption_test.cc $(TESTHARNESS)
+corruption_test_LDADD = libhyperleveldb.la -lpthread
+
+crc32c_test_SOURCES = util/crc32c_test.cc $(TESTHARNESS)
+crc32c_test_LDADD = libhyperleveldb.la -lpthread
+
+db_test_SOURCES = db/db_test.cc $(TESTHARNESS)
+db_test_LDADD = libhyperleveldb.la -lpthread
+
+dbformat_test_SOURCES = db/dbformat_test.cc $(TESTHARNESS)
+dbformat_test_LDADD = libhyperleveldb.la -lpthread
+
+env_test_SOURCES = util/env_test.cc $(TESTHARNESS)
+env_test_LDADD = libhyperleveldb.la -lpthread
+
+filename_test_SOURCES = db/filename_test.cc $(TESTHARNESS)
+filename_test_LDADD = libhyperleveldb.la -lpthread
+
+filter_block_test_SOURCES = table/filter_block_test.cc $(TESTHARNESS)
+filter_block_test_LDADD = libhyperleveldb.la -lpthread
+
+log_test_SOURCES = db/log_test.cc $(TESTHARNESS)
+log_test_LDADD = libhyperleveldb.la -lpthread
+
+table_test_SOURCES = table/table_test.cc $(TESTHARNESS)
+table_test_LDADD = libhyperleveldb.la -lpthread
+
+skiplist_test_SOURCES = db/skiplist_test.cc $(TESTHARNESS)
+skiplist_test_LDADD = libhyperleveldb.la -lpthread
+
+version_edit_test_SOURCES = db/version_edit_test.cc $(TESTHARNESS)
+version_edit_test_LDADD = libhyperleveldb.la -lpthread
+
+version_set_test_SOURCES = db/version_set_test.cc $(TESTHARNESS)
+version_set_test_LDADD = libhyperleveldb.la -lpthread
+
+write_batch_test_SOURCES = db/write_batch_test.cc $(TESTHARNESS)
+write_batch_test_LDADD = libhyperleveldb.la -lpthread
+
+issue178_test_SOURCES = issues/issue178_test.cc $(TESTHARNESS)
+issue178_test_LDADD = libhyperleveldb.la -lpthread
+
+issue200_test_SOURCES = issues/issue200_test.cc $(TESTHARNESS)
+issue200_test_LDADD = libhyperleveldb.la -lpthread
diff --git a/clipper/HyperLevelDB/NEWS b/clipper/HyperLevelDB/NEWS
new file mode 100644
index 0000000..3fd9924
--- /dev/null
+++ b/clipper/HyperLevelDB/NEWS
@@ -0,0 +1,17 @@
+Release 1.2 2011-05-16
+----------------------
+
+Fixes for larger databases (tested up to one billion 100-byte entries,
+i.e., ~100GB).
+
+(1) Place hard limit on number of level-0 files. This fixes errors
+of the form "too many open files".
+
+(2) Fixed memtable management. Before the fix, a heavy write burst
+could cause unbounded memory usage.
+
+A fix for a logging bug where the reader would incorrectly complain
+about corruption.
+
+Allow public access to WriteBatch contents so that users can easily
+wrap a DB.
diff --git a/clipper/HyperLevelDB/README b/clipper/HyperLevelDB/README
new file mode 100644
index 0000000..1b95ba2
--- /dev/null
+++ b/clipper/HyperLevelDB/README
@@ -0,0 +1,62 @@
+leveldb: A key-value store
+Authors: Sanjay Ghemawat (sanjay at google.com) and Jeff Dean (jeff at google.com)
+
+The code under this directory implements a system for maintaining a
+persistent key/value store.
+
+See doc/index.html for more explanation.
+See doc/impl.html for a brief overview of the implementation.
+
+The public interface is in include/*.h. Callers should not include or
+rely on the details of any other header files in this package. Those
+internal APIs may be changed without warning.
+
+Guide to header files:
+
+include/db.h
+ Main interface to the DB: Start here
+
+include/options.h
+ Control over the behavior of an entire database, and also
+ control over the behavior of individual reads and writes.
+
+include/comparator.h
+ Abstraction for user-specified comparison function. If you want
+ just bytewise comparison of keys, you can use the default comparator,
+ but clients can write their own comparator implementations if they
+ want custom ordering (e.g. to handle different character
+ encodings, etc.)
+
+include/iterator.h
+ Interface for iterating over data. You can get an iterator
+ from a DB object.
+
+include/write_batch.h
+ Interface for atomically applying multiple updates to a database.
+
+include/slice.h
+ A simple module for maintaining a pointer and a length into some
+ other byte array.
+
+include/status.h
+ Status is returned from many of the public interfaces and is used
+ to report success and various kinds of errors.
+
+include/env.h
+ Abstraction of the OS environment. A posix implementation of
+ this interface is in util/env_posix.cc
+
+include/table.h
+include/table_builder.h
+ Lower-level modules that most clients probably won't use directly
+
+Install
+=======
+
+Get up and running quickly:
+
+ $ autoreconf -i
+ $ ./configure
+ $ make
+ # make install
+ # ldconfig
diff --git a/clipper/HyperLevelDB/TODO b/clipper/HyperLevelDB/TODO
new file mode 100644
index 0000000..e603c07
--- /dev/null
+++ b/clipper/HyperLevelDB/TODO
@@ -0,0 +1,14 @@
+ss
+- Stats
+
+db
+- Maybe implement DB::BulkDeleteForRange(start_key, end_key)
+ that would blow away files whose ranges are entirely contained
+ within [start_key..end_key]? For Chrome, deletion of obsolete
+ object stores, etc. can be done in the background anyway, so
+ probably not that important.
+- There have been requests for MultiGet.
+
+After a range is completely deleted, what gets rid of the
+corresponding files if we do no future changes to that range. Make
+the conditions for triggering compactions fire in more situations?
diff --git a/clipper/HyperLevelDB/benchmark.cc b/clipper/HyperLevelDB/benchmark.cc
new file mode 100644
index 0000000..fe2d6ae
--- /dev/null
+++ b/clipper/HyperLevelDB/benchmark.cc
@@ -0,0 +1,187 @@
+// Copyright (c) 2013-2014, Cornell University
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// * Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// * Neither the name of HyperLevelDB nor the names of its contributors may
+// be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR CONTRIBUTORS 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.
+
+// HyperLevelDB
+#include <hyperleveldb/cache.h>
+#include <hyperleveldb/db.h>
+#include <hyperleveldb/filter_policy.h>
+
+// STL
+#include <tr1/memory>
+
+// po6
+#include <po6/threads/thread.h>
+
+// e
+#include <e/popt.h>
+
+// ygor
+#include <ygor.h>
+
+static long _done = 0;
+static long _number = 1000000;
+static long _threads = 1;
+static long _write_buf = 64ULL * 1024ULL * 1024ULL;
+static const char* _output = "benchmark.dat";
+static const char* _dir = ".";
+
+static void
+worker_thread(leveldb::DB*, ygor_data_logger* dl,
+ const armnod_config* k,
+ const armnod_config* v);
+
+int
+main(int argc, const char* argv[])
+{
+ // parse the command line
+ e::argparser ap;
+ ap.autohelp();
+ ap.arg().name('n', "number")
+ .description("perform N operations against the database (default: 1000000)")
+ .metavar("N")
+ .as_long(&_number);
+ ap.arg().name('t', "threads")
+ .description("run the test with T concurrent threads (default: 1)")
+ .metavar("T")
+ .as_long(&_threads);
+ ap.arg().name('w', "write-buffer")
+ .description("write buffer size (default: 64MB)")
+ .as_long(&_write_buf);
+ ap.arg().name('o', "output")
+ .description("output file for benchmark results (default: benchmark.dat)")
+ .as_string(&_output);
+ ap.arg().name('d', "db-dir")
+ .description("directory for leveldb storage (default: .)")
+ .as_string(&_dir);
+ const std::auto_ptr<armnod_argparser> key_parser(armnod_argparser::create("key-"));
+ const std::auto_ptr<armnod_argparser> value_parser(armnod_argparser::create("value-"));
+ ap.add("Key Generation:", key_parser->parser());
+ ap.add("Value Generation:", value_parser->parser());
+
+ if (!ap.parse(argc, argv))
+ {
+ return EXIT_FAILURE;
+ }
+
+ // open the LevelDB
+ leveldb::Options opts;
+ opts.create_if_missing = true;
+ opts.write_buffer_size = _write_buf;
+ opts.filter_policy = leveldb::NewBloomFilterPolicy(10);
+ leveldb::DB* db;
+ leveldb::Status st = leveldb::DB::Open(opts, _dir, &db);
+
+ if (!st.ok())
+ {
+ std::cerr << "could not open LevelDB: " << st.ToString() << std::endl;
+ return EXIT_FAILURE;
+ }
+
+ // setup the experiment
+ ygor_data_logger* dl = ygor_data_logger_create(_output, 1000000, 1000);
+
+ if (!dl)
+ {
+ std::cerr << "could not open log: " << strerror(errno) << std::endl;
+ return EXIT_FAILURE;
+ }
+
+ typedef std::tr1::shared_ptr<po6::threads::thread> thread_ptr;
+ std::vector<thread_ptr> threads;
+
+ for (size_t i = 0; i < _threads; ++i)
+ {
+ thread_ptr t(new po6::threads::thread(std::tr1::bind(worker_thread, db, dl,
+ key_parser->config(), value_parser->config())));
+ threads.push_back(t);
+ t->start();
+ }
+
+ // do the experiment
+
+ // tear it down
+ for (size_t i = 0; i < threads.size(); ++i)
+ {
+ threads[i]->join();
+ }
+
+ if (ygor_data_logger_flush_and_destroy(dl) < 0)
+ {
+ std::cerr << "could not close log: " << strerror(errno) << std::endl;
+ return EXIT_FAILURE;
+ }
+
+ // dump stats of the DB
+ std::string tmp;
+ if (db->GetProperty("leveldb.stats", &tmp)) std::cout << tmp << std::endl;
+ delete db;
+ return EXIT_SUCCESS;
+}
+
+void
+worker_thread(leveldb::DB* db,
+ ygor_data_logger* dl,
+ const armnod_config* _k,
+ const armnod_config* _v)
+{
+ armnod_generator* key(armnod_generator_create(_k));
+ armnod_generator* val(armnod_generator_create(_v));
+ armnod_generator_seed(key, 0xdeadbeef);
+ armnod_generator_seed(val, 0x1eaff00d);
+
+ while (__sync_fetch_and_add(&_done, 1) < _number)
+ {
+ const char* k = armnod_generate(key);
+ const char* v = armnod_generate(val);
+ size_t k_sz = strlen(k);
+ size_t v_sz = strlen(v);
+
+ // issue a "get"
+ std::string tmp;
+ leveldb::ReadOptions ropts;
+ ygor_data_record dr;
+ dr.flags = 1;
+ ygor_data_logger_start(dl, &dr);
+ leveldb::Status rst = db->Get(ropts, leveldb::Slice(k, k_sz), &tmp);
+ ygor_data_logger_finish(dl, &dr);
+ ygor_data_logger_record(dl, &dr);
+ assert(rst.ok() || rst.IsNotFound());
+
+ // issue a "put"
+ leveldb::WriteOptions wopts;
+ wopts.sync = false;
+ dr.flags = 2;
+ ygor_data_logger_start(dl, &dr);
+ leveldb::Status wst = db->Put(wopts, leveldb::Slice(k, k_sz), leveldb::Slice(v, v_sz));
+ ygor_data_logger_finish(dl, &dr);
+ ygor_data_logger_record(dl, &dr);
+ assert(wst.ok());
+ }
+
+ armnod_generator_destroy(key);
+ armnod_generator_destroy(val);
+}
diff --git a/clipper/HyperLevelDB/configure.ac b/clipper/HyperLevelDB/configure.ac
new file mode 100644
index 0000000..44a90dc
--- /dev/null
+++ b/clipper/HyperLevelDB/configure.ac
@@ -0,0 +1,111 @@
+# Copyright (c) 2013
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# * Redistributions of source code must retain the above copyright notice,
+# this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# * Neither the name of HyperLevelDB nor the names of its contributors may
+# be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR CONTRIBUTORS 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.
+#
+# -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+AC_PREREQ([2.62])
+AC_INIT([hyperleveldb], [1.0.dev], [robert at hyperdex.org])
+m4_define([serial_tests], [
+ m4_esyscmd([case `automake --version | head -n 1` in
+ *1.11*);;
+ *) echo serial-tests;;
+ esac])
+])
+AM_INIT_AUTOMAKE(foreign serial_tests subdir-objects dist-bzip2)
+m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+LT_PREREQ([2.2])
+LT_INIT
+AC_CONFIG_SRCDIR([include/hyperleveldb/db.h])
+AC_CONFIG_HEADERS([config.h])
+AC_CONFIG_MACRO_DIR([m4])
+
+# Checks for programs.
+AC_PROG_CXX
+AC_PROG_CC
+AC_LANG(C++)
+
+EXTRA_CFLAGS=""
+AX_CHECK_COMPILE_FLAG([-fno-builtin-memcmp],[EXTRA_CFLAGS="-fno-builtin-memcmp"],,)
+AX_CHECK_COMPILE_FLAG([-fno-builtin-memmove],[EXTRA_CFLAGS="${EXTRA_CFLAGS} -fno-builtin-memcmp"],,)
+AX_CHECK_COMPILE_FLAG([-Qunused-arguments],[EXTRA_CFLAGS="${EXTRA_CFLAGS} -Qunused-arguments"],,)
+#AX_CHECK_COMPILE_FLAG([-Wno-unknown-warning-option],[EXTRA_CFLAGS="${EXTRA_CFLAGS} -Wno-unknown-warning-option"],,)
+AC_SUBST([EXTRA_CFLAGS], [${EXTRA_CFLAGS}])
+
+# Checks for libraries.
+
+# Checks for header files.
+AC_CHECK_HEADERS([endian.h machine/endian.h sys/endian.h sys/isa_defs.h sys/types.h])
+
+# Checks for typedefs, structures, and compiler characteristics.
+
+# Checks for library functions.
+AC_FUNC_ERROR_AT_LINE
+AC_FUNC_MMAP
+AC_CHECK_FUNCS([alarm clock_gettime mach_absolute_time ftruncate fsync])
+AC_CHECK_FUNCS([fread fread_unlocked fwrite fwrite_unlocked fflush])
+AC_CHECK_FUNCS([fflush_unlocked memmove mkdir munmap rmdir socket])
+AC_CHECK_DECLS([fdatasync])
+
+# Optional components
+snappy_detect_hdr=yes
+snappy_detect_lib=yes
+AC_CHECK_LIB([snappy], [snappy_compress], [], [snappy_detect_hdr=no])
+AC_CHECK_HEADER([snappy.h],,[snappy_detect_lib=no])
+AC_ARG_ENABLE([snappy], [AS_HELP_STRING([--enable-snappy],
+ [build with Snappy @<:@default: auto@:>@])],
+ [snappy=${enableval}], [snappy=no])
+if test x"${snappy}" = xyes; then
+ if test x"${snappy_detect_hdr}" != xyes; then
+ AC_MSG_ERROR([
+-------------------------------------------------
+LevelDB configured with the Snappy library.
+libsnappy.so not found
+Please install Snappy to continue.
+-------------------------------------------------])
+ fi
+ if test x"${snappy_detect_lib}" != xyes; then
+ AC_MSG_ERROR([
+-------------------------------------------------
+LevelDB configured with the Snappy library.
+snappy.h not found
+Please install Snappy to continue.
+-------------------------------------------------])
+ fi
+fi
+if test x"${snappy_detect_hdr}" = xyes -a x"${snappy_detect_lib}" = xyes; then
+SNAPPY_FLAGS=-DSNAPPY
+SNAPPY_LIBS=-lsnappy
+else
+SNAPPY_FLAGS=
+SNAPPY_LIBS=
+fi
+AC_SUBST(SNAPPY_FLAGS)
+AC_SUBST(SNAPPY_LIBS)
+
+AC_CONFIG_FILES([Makefile libhyperleveldb.pc hyperleveldb.upack])
+AC_OUTPUT
diff --git a/clipper/HyperLevelDB/db/autocompact_test.cc b/clipper/HyperLevelDB/db/autocompact_test.cc
new file mode 100644
index 0000000..acf3c7d
--- /dev/null
+++ b/clipper/HyperLevelDB/db/autocompact_test.cc
@@ -0,0 +1,123 @@
+// Copyright (c) 2013 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "hyperleveldb/db.h"
+#include "db/db_impl.h"
+#include "hyperleveldb/cache.h"
+#include "util/testharness.h"
+#include "util/testutil.h"
+
+namespace leveldb {
+
+class AutoCompactTest {
+ public:
+ std::string dbname_;
+ Cache* tiny_cache_;
+ Options options_;
+ DB* db_;
+
+ AutoCompactTest() {
+ dbname_ = test::TmpDir() + "/autocompact_test";
+ tiny_cache_ = NewLRUCache(100);
+ options_.block_cache = tiny_cache_;
+ DestroyDB(dbname_, options_);
+ options_.create_if_missing = true;
+ options_.compression = kNoCompression;
+ ASSERT_OK(DB::Open(options_, dbname_, &db_));
+ }
+
+ ~AutoCompactTest() {
+ delete db_;
+ DestroyDB(dbname_, Options());
+ delete tiny_cache_;
+ }
+
+ std::string Key(int i) {
+ char buf[100];
+ snprintf(buf, sizeof(buf), "key%06d", i);
+ return std::string(buf);
+ }
+
+ uint64_t Size(const Slice& start, const Slice& limit) {
+ Range r(start, limit);
+ uint64_t size;
+ db_->GetApproximateSizes(&r, 1, &size);
+ return size;
+ }
+
+ void DoReads(int n);
+};
+
+static const int kValueSize = 200 * 1024;
+static const int kTotalSize = 100 * 1024 * 1024;
+static const int kCount = kTotalSize / kValueSize;
+
+// Read through the first n keys repeatedly and check that they get
+// compacted (verified by checking the size of the key space).
+void AutoCompactTest::DoReads(int n) {
+ std::string value(kValueSize, 'x');
+ DBImpl* dbi = reinterpret_cast<DBImpl*>(db_);
+
+ // Fill database
+ for (int i = 0; i < kCount; i++) {
+ ASSERT_OK(db_->Put(WriteOptions(), Key(i), value));
+ }
+ ASSERT_OK(dbi->TEST_CompactMemTable());
+
+ // Delete everything
+ for (int i = 0; i < kCount; i++) {
+ ASSERT_OK(db_->Delete(WriteOptions(), Key(i)));
+ }
+ ASSERT_OK(dbi->TEST_CompactMemTable());
+
+ // Get initial measurement of the space we will be reading.
+ const int64_t initial_size = Size(Key(0), Key(n));
+ const int64_t initial_other_size = Size(Key(n), Key(kCount));
+
+ // Read until size drops significantly.
+ std::string limit_key = Key(n);
+ for (int read = 0; true; read++) {
+ ASSERT_LT(read, 100) << "Taking too long to compact";
+ Iterator* iter = db_->NewIterator(ReadOptions());
+ for (iter->SeekToFirst();
+ iter->Valid() && iter->key().ToString() < limit_key;
+ iter->Next()) {
+ // Drop data
+ }
+ delete iter;
+ // Wait a little bit to allow any triggered compactions to complete.
+ Env::Default()->SleepForMicroseconds(1000000);
+ uint64_t size = Size(Key(0), Key(n));
+ fprintf(stderr, "iter %3d => %7.3f MB [other %7.3f MB]\n",
+ read+1, size/1048576.0, Size(Key(n), Key(kCount))/1048576.0);
+ if (size <= initial_size/10) {
+ break;
+ }
+ }
+
+ // Verify that the size of the key space not touched by the reads
+ // is pretty much unchanged.
+ const int64_t final_other_size = Size(Key(n), Key(kCount));
+ ASSERT_LE(final_other_size, initial_other_size + 1048576);
+ ASSERT_GE(final_other_size, initial_other_size/5 - 1048576);
+}
+
+TEST(AutoCompactTest, ReadAll) {
+ DoReads(kCount);
+}
+
+// HyperLevelDB's ratio-driven compactions always compact everything here. The
+// reads trigger the compaction, but then the system decides it is more
+// effiicient to just collect everything, emptying the db completely.
+#if 0
+TEST(AutoCompactTest, ReadHalf) {
+ DoReads(kCount/2);
+}
+#endif
+
+} // namespace leveldb
+
+int main(int argc, char** argv) {
+ return leveldb::test::RunAllTests();
+}
diff --git a/clipper/HyperLevelDB/db/builder.cc b/clipper/HyperLevelDB/db/builder.cc
new file mode 100644
index 0000000..78544f6
--- /dev/null
+++ b/clipper/HyperLevelDB/db/builder.cc
@@ -0,0 +1,88 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "db/builder.h"
+
+#include "db/filename.h"
+#include "db/dbformat.h"
+#include "db/table_cache.h"
+#include "db/version_edit.h"
+#include "hyperleveldb/db.h"
+#include "hyperleveldb/env.h"
+#include "hyperleveldb/iterator.h"
+
+namespace leveldb {
+
+Status BuildTable(const std::string& dbname,
+ Env* env,
+ const Options& options,
+ TableCache* table_cache,
+ Iterator* iter,
+ FileMetaData* meta) {
+ Status s;
+ meta->file_size = 0;
+ iter->SeekToFirst();
+
+ std::string fname = SSTTableFileName(dbname, meta->number);
+ if (iter->Valid()) {
+ WritableFile* file;
+ s = env->NewWritableFile(fname, &file);
+ if (!s.ok()) {
+ return s;
+ }
+
+ TableBuilder* builder = new TableBuilder(options, file);
+ meta->smallest.DecodeFrom(iter->key());
+ for (; iter->Valid(); iter->Next()) {
+ Slice key = iter->key();
+ meta->largest.DecodeFrom(key);
+ builder->Add(key, iter->value());
+ }
+
+ // Finish and check for builder errors
+ if (s.ok()) {
+ s = builder->Finish();
+ if (s.ok()) {
+ meta->file_size = builder->FileSize();
+ assert(meta->file_size > 0);
+ }
+ } else {
+ builder->Abandon();
+ }
+ delete builder;
+
+ // Finish and check for file errors
+ if (s.ok()) {
+ s = file->Sync();
+ }
+ if (s.ok()) {
+ s = file->Close();
+ }
+ delete file;
+ file = NULL;
+
+ if (s.ok()) {
+ // Verify that the table is usable
+ Iterator* it = table_cache->NewIterator(ReadOptions(),
+ meta->number,
+ meta->file_size);
+ s = it->status();
+ delete it;
+ }
+ }
+
+ // Check for input iterator errors
+ if (!iter->status().ok()) {
+ s = iter->status();
+ }
+
+ if (s.ok() && meta->file_size > 0) {
+ // Keep it
+ } else {
+ env->DeleteFile(fname);
+ }
+ return s;
+}
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/db/builder.h b/clipper/HyperLevelDB/db/builder.h
new file mode 100644
index 0000000..a755314
--- /dev/null
+++ b/clipper/HyperLevelDB/db/builder.h
@@ -0,0 +1,34 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#ifndef STORAGE_LEVELDB_DB_BUILDER_H_
+#define STORAGE_LEVELDB_DB_BUILDER_H_
+
+#include "hyperleveldb/status.h"
+
+namespace leveldb {
+
+struct Options;
+struct FileMetaData;
+
+class Env;
+class Iterator;
+class TableCache;
+class VersionEdit;
+
+// Build a Table file from the contents of *iter. The generated file
+// will be named according to meta->number. On success, the rest of
+// *meta will be filled with metadata about the generated table.
+// If no data is present in *iter, meta->file_size will be set to
+// zero, and no Table file will be produced.
+extern Status BuildTable(const std::string& dbname,
+ Env* env,
+ const Options& options,
+ TableCache* table_cache,
+ Iterator* iter,
+ FileMetaData* meta);
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_DB_BUILDER_H_
diff --git a/clipper/HyperLevelDB/db/c.cc b/clipper/HyperLevelDB/db/c.cc
new file mode 100644
index 0000000..c51f4ff
--- /dev/null
+++ b/clipper/HyperLevelDB/db/c.cc
@@ -0,0 +1,595 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "hyperleveldb/c.h"
+
+#include <stdlib.h>
+#include <unistd.h>
+#include "hyperleveldb/cache.h"
+#include "hyperleveldb/comparator.h"
+#include "hyperleveldb/db.h"
+#include "hyperleveldb/env.h"
+#include "hyperleveldb/filter_policy.h"
+#include "hyperleveldb/iterator.h"
+#include "hyperleveldb/options.h"
+#include "hyperleveldb/status.h"
+#include "hyperleveldb/write_batch.h"
+
+using leveldb::Cache;
+using leveldb::Comparator;
+using leveldb::CompressionType;
+using leveldb::DB;
+using leveldb::Env;
+using leveldb::FileLock;
+using leveldb::FilterPolicy;
+using leveldb::Iterator;
+using leveldb::kMajorVersion;
+using leveldb::kMinorVersion;
+using leveldb::Logger;
+using leveldb::NewBloomFilterPolicy;
+using leveldb::NewLRUCache;
+using leveldb::Options;
+using leveldb::RandomAccessFile;
+using leveldb::Range;
+using leveldb::ReadOptions;
+using leveldb::SequentialFile;
+using leveldb::Slice;
+using leveldb::Snapshot;
+using leveldb::Status;
+using leveldb::WritableFile;
+using leveldb::WriteBatch;
+using leveldb::WriteOptions;
+
+extern "C" {
+
+struct leveldb_t { DB* rep; };
+struct leveldb_iterator_t { Iterator* rep; };
+struct leveldb_writebatch_t { WriteBatch rep; };
+struct leveldb_snapshot_t { const Snapshot* rep; };
+struct leveldb_readoptions_t { ReadOptions rep; };
+struct leveldb_writeoptions_t { WriteOptions rep; };
+struct leveldb_options_t { Options rep; };
+struct leveldb_cache_t { Cache* rep; };
+struct leveldb_seqfile_t { SequentialFile* rep; };
+struct leveldb_randomfile_t { RandomAccessFile* rep; };
+struct leveldb_writablefile_t { WritableFile* rep; };
+struct leveldb_logger_t { Logger* rep; };
+struct leveldb_filelock_t { FileLock* rep; };
+
+struct leveldb_comparator_t : public Comparator {
+ void* state_;
+ void (*destructor_)(void*);
+ int (*compare_)(
+ void*,
+ const char* a, size_t alen,
+ const char* b, size_t blen);
+ const char* (*name_)(void*);
+
+ virtual ~leveldb_comparator_t() {
+ (*destructor_)(state_);
+ }
+
+ virtual int Compare(const Slice& a, const Slice& b) const {
+ return (*compare_)(state_, a.data(), a.size(), b.data(), b.size());
+ }
+
+ virtual const char* Name() const {
+ return (*name_)(state_);
+ }
+
+ // No-ops since the C binding does not support key shortening methods.
+ virtual void FindShortestSeparator(std::string*, const Slice&) const { }
+ virtual void FindShortSuccessor(std::string* key) const { }
+};
+
+struct leveldb_filterpolicy_t : public FilterPolicy {
+ void* state_;
+ void (*destructor_)(void*);
+ const char* (*name_)(void*);
+ char* (*create_)(
+ void*,
+ const char* const* key_array, const size_t* key_length_array,
+ int num_keys,
+ size_t* filter_length);
+ unsigned char (*key_match_)(
+ void*,
+ const char* key, size_t length,
+ const char* filter, size_t filter_length);
+
+ virtual ~leveldb_filterpolicy_t() {
+ (*destructor_)(state_);
+ }
+
+ virtual const char* Name() const {
+ return (*name_)(state_);
+ }
+
+ virtual void CreateFilter(const Slice* keys, int n, std::string* dst) const {
+ std::vector<const char*> key_pointers(n);
+ std::vector<size_t> key_sizes(n);
+ for (int i = 0; i < n; i++) {
+ key_pointers[i] = keys[i].data();
+ key_sizes[i] = keys[i].size();
+ }
+ size_t len;
+ char* filter = (*create_)(state_, &key_pointers[0], &key_sizes[0], n, &len);
+ dst->append(filter, len);
+ free(filter);
+ }
+
+ virtual bool KeyMayMatch(const Slice& key, const Slice& filter) const {
+ return (*key_match_)(state_, key.data(), key.size(),
+ filter.data(), filter.size());
+ }
+};
+
+struct leveldb_env_t {
+ Env* rep;
+ bool is_default;
+};
+
+static bool SaveError(char** errptr, const Status& s) {
+ assert(errptr != NULL);
+ if (s.ok()) {
+ return false;
+ } else if (*errptr == NULL) {
+ *errptr = strdup(s.ToString().c_str());
+ } else {
+ // TODO(sanjay): Merge with existing error?
+ free(*errptr);
+ *errptr = strdup(s.ToString().c_str());
+ }
+ return true;
+}
+
+static char* CopyString(const std::string& str) {
+ char* result = reinterpret_cast<char*>(malloc(sizeof(char) * str.size()));
+ memcpy(result, str.data(), sizeof(char) * str.size());
+ return result;
+}
+
+leveldb_t* leveldb_open(
+ const leveldb_options_t* options,
+ const char* name,
+ char** errptr) {
+ DB* db;
+ if (SaveError(errptr, DB::Open(options->rep, std::string(name), &db))) {
+ return NULL;
+ }
+ leveldb_t* result = new leveldb_t;
+ result->rep = db;
+ return result;
+}
+
+void leveldb_close(leveldb_t* db) {
+ delete db->rep;
+ delete db;
+}
+
+void leveldb_put(
+ leveldb_t* db,
+ const leveldb_writeoptions_t* options,
+ const char* key, size_t keylen,
+ const char* val, size_t vallen,
+ char** errptr) {
+ SaveError(errptr,
+ db->rep->Put(options->rep, Slice(key, keylen), Slice(val, vallen)));
+}
+
+void leveldb_delete(
+ leveldb_t* db,
+ const leveldb_writeoptions_t* options,
+ const char* key, size_t keylen,
+ char** errptr) {
+ SaveError(errptr, db->rep->Delete(options->rep, Slice(key, keylen)));
+}
+
+
+void leveldb_write(
+ leveldb_t* db,
+ const leveldb_writeoptions_t* options,
+ leveldb_writebatch_t* batch,
+ char** errptr) {
+ SaveError(errptr, db->rep->Write(options->rep, &batch->rep));
+}
+
+char* leveldb_get(
+ leveldb_t* db,
+ const leveldb_readoptions_t* options,
+ const char* key, size_t keylen,
+ size_t* vallen,
+ char** errptr) {
+ char* result = NULL;
+ std::string tmp;
+ Status s = db->rep->Get(options->rep, Slice(key, keylen), &tmp);
+ if (s.ok()) {
+ *vallen = tmp.size();
+ result = CopyString(tmp);
+ } else {
+ *vallen = 0;
+ if (!s.IsNotFound()) {
+ SaveError(errptr, s);
+ }
+ }
+ return result;
+}
+
+leveldb_iterator_t* leveldb_create_iterator(
+ leveldb_t* db,
+ const leveldb_readoptions_t* options) {
+ leveldb_iterator_t* result = new leveldb_iterator_t;
+ result->rep = db->rep->NewIterator(options->rep);
+ return result;
+}
+
+const leveldb_snapshot_t* leveldb_create_snapshot(
+ leveldb_t* db) {
+ leveldb_snapshot_t* result = new leveldb_snapshot_t;
+ result->rep = db->rep->GetSnapshot();
+ return result;
+}
+
+void leveldb_release_snapshot(
+ leveldb_t* db,
+ const leveldb_snapshot_t* snapshot) {
+ db->rep->ReleaseSnapshot(snapshot->rep);
+ delete snapshot;
+}
+
+char* leveldb_property_value(
+ leveldb_t* db,
+ const char* propname) {
+ std::string tmp;
+ if (db->rep->GetProperty(Slice(propname), &tmp)) {
+ // We use strdup() since we expect human readable output.
+ return strdup(tmp.c_str());
+ } else {
+ return NULL;
+ }
+}
+
+void leveldb_approximate_sizes(
+ leveldb_t* db,
+ int num_ranges,
+ const char* const* range_start_key, const size_t* range_start_key_len,
+ const char* const* range_limit_key, const size_t* range_limit_key_len,
+ uint64_t* sizes) {
+ Range* ranges = new Range[num_ranges];
+ for (int i = 0; i < num_ranges; i++) {
+ ranges[i].start = Slice(range_start_key[i], range_start_key_len[i]);
+ ranges[i].limit = Slice(range_limit_key[i], range_limit_key_len[i]);
+ }
+ db->rep->GetApproximateSizes(ranges, num_ranges, sizes);
+ delete[] ranges;
+}
+
+void leveldb_compact_range(
+ leveldb_t* db,
+ const char* start_key, size_t start_key_len,
+ const char* limit_key, size_t limit_key_len) {
+ Slice a, b;
+ db->rep->CompactRange(
+ // Pass NULL Slice if corresponding "const char*" is NULL
+ (start_key ? (a = Slice(start_key, start_key_len), &a) : NULL),
+ (limit_key ? (b = Slice(limit_key, limit_key_len), &b) : NULL));
+}
+
+void leveldb_destroy_db(
+ const leveldb_options_t* options,
+ const char* name,
+ char** errptr) {
+ SaveError(errptr, DestroyDB(name, options->rep));
+}
+
+void leveldb_repair_db(
+ const leveldb_options_t* options,
+ const char* name,
+ char** errptr) {
+ SaveError(errptr, RepairDB(name, options->rep));
+}
+
+void leveldb_iter_destroy(leveldb_iterator_t* iter) {
+ delete iter->rep;
+ delete iter;
+}
+
+unsigned char leveldb_iter_valid(const leveldb_iterator_t* iter) {
+ return iter->rep->Valid();
+}
+
+void leveldb_iter_seek_to_first(leveldb_iterator_t* iter) {
+ iter->rep->SeekToFirst();
+}
+
+void leveldb_iter_seek_to_last(leveldb_iterator_t* iter) {
+ iter->rep->SeekToLast();
+}
+
+void leveldb_iter_seek(leveldb_iterator_t* iter, const char* k, size_t klen) {
+ iter->rep->Seek(Slice(k, klen));
+}
+
+void leveldb_iter_next(leveldb_iterator_t* iter) {
+ iter->rep->Next();
+}
+
+void leveldb_iter_prev(leveldb_iterator_t* iter) {
+ iter->rep->Prev();
+}
+
+const char* leveldb_iter_key(const leveldb_iterator_t* iter, size_t* klen) {
+ Slice s = iter->rep->key();
+ *klen = s.size();
+ return s.data();
+}
+
+const char* leveldb_iter_value(const leveldb_iterator_t* iter, size_t* vlen) {
+ Slice s = iter->rep->value();
+ *vlen = s.size();
+ return s.data();
+}
+
+void leveldb_iter_get_error(const leveldb_iterator_t* iter, char** errptr) {
+ SaveError(errptr, iter->rep->status());
+}
+
+leveldb_writebatch_t* leveldb_writebatch_create() {
+ return new leveldb_writebatch_t;
+}
+
+void leveldb_writebatch_destroy(leveldb_writebatch_t* b) {
+ delete b;
+}
+
+void leveldb_writebatch_clear(leveldb_writebatch_t* b) {
+ b->rep.Clear();
+}
+
+void leveldb_writebatch_put(
+ leveldb_writebatch_t* b,
+ const char* key, size_t klen,
+ const char* val, size_t vlen) {
+ b->rep.Put(Slice(key, klen), Slice(val, vlen));
+}
+
+void leveldb_writebatch_delete(
+ leveldb_writebatch_t* b,
+ const char* key, size_t klen) {
+ b->rep.Delete(Slice(key, klen));
+}
+
+void leveldb_writebatch_iterate(
+ leveldb_writebatch_t* b,
+ void* state,
+ void (*put)(void*, const char* k, size_t klen, const char* v, size_t vlen),
+ void (*deleted)(void*, const char* k, size_t klen)) {
+ class H : public WriteBatch::Handler {
+ public:
+ void* state_;
+ void (*put_)(void*, const char* k, size_t klen, const char* v, size_t vlen);
+ void (*deleted_)(void*, const char* k, size_t klen);
+ virtual void Put(const Slice& key, const Slice& value) {
+ (*put_)(state_, key.data(), key.size(), value.data(), value.size());
+ }
+ virtual void Delete(const Slice& key) {
+ (*deleted_)(state_, key.data(), key.size());
+ }
+ };
+ H handler;
+ handler.state_ = state;
+ handler.put_ = put;
+ handler.deleted_ = deleted;
+ b->rep.Iterate(&handler);
+}
+
+leveldb_options_t* leveldb_options_create() {
+ return new leveldb_options_t;
+}
+
+void leveldb_options_destroy(leveldb_options_t* options) {
+ delete options;
+}
+
+void leveldb_options_set_comparator(
+ leveldb_options_t* opt,
+ leveldb_comparator_t* cmp) {
+ opt->rep.comparator = cmp;
+}
+
+void leveldb_options_set_filter_policy(
+ leveldb_options_t* opt,
+ leveldb_filterpolicy_t* policy) {
+ opt->rep.filter_policy = policy;
+}
+
+void leveldb_options_set_create_if_missing(
+ leveldb_options_t* opt, unsigned char v) {
+ opt->rep.create_if_missing = v;
+}
+
+void leveldb_options_set_error_if_exists(
+ leveldb_options_t* opt, unsigned char v) {
+ opt->rep.error_if_exists = v;
+}
+
+void leveldb_options_set_paranoid_checks(
+ leveldb_options_t* opt, unsigned char v) {
+ opt->rep.paranoid_checks = v;
+}
+
+void leveldb_options_set_env(leveldb_options_t* opt, leveldb_env_t* env) {
+ opt->rep.env = (env ? env->rep : NULL);
+}
+
+void leveldb_options_set_info_log(leveldb_options_t* opt, leveldb_logger_t* l) {
+ opt->rep.info_log = (l ? l->rep : NULL);
+}
+
+void leveldb_options_set_write_buffer_size(leveldb_options_t* opt, size_t s) {
+ opt->rep.write_buffer_size = s;
+}
+
+void leveldb_options_set_max_open_files(leveldb_options_t* opt, int n) {
+ opt->rep.max_open_files = n;
+}
+
+void leveldb_options_set_cache(leveldb_options_t* opt, leveldb_cache_t* c) {
+ opt->rep.block_cache = c->rep;
+}
+
+void leveldb_options_set_block_size(leveldb_options_t* opt, size_t s) {
+ opt->rep.block_size = s;
+}
+
+void leveldb_options_set_block_restart_interval(leveldb_options_t* opt, int n) {
+ opt->rep.block_restart_interval = n;
+}
+
+void leveldb_options_set_compression(leveldb_options_t* opt, int t) {
+ opt->rep.compression = static_cast<CompressionType>(t);
+}
+
+leveldb_comparator_t* leveldb_comparator_create(
+ void* state,
+ void (*destructor)(void*),
+ int (*compare)(
+ void*,
+ const char* a, size_t alen,
+ const char* b, size_t blen),
+ const char* (*name)(void*)) {
+ leveldb_comparator_t* result = new leveldb_comparator_t;
+ result->state_ = state;
+ result->destructor_ = destructor;
+ result->compare_ = compare;
+ result->name_ = name;
+ return result;
+}
+
+void leveldb_comparator_destroy(leveldb_comparator_t* cmp) {
+ delete cmp;
+}
+
+leveldb_filterpolicy_t* leveldb_filterpolicy_create(
+ void* state,
+ void (*destructor)(void*),
+ char* (*create_filter)(
+ void*,
+ const char* const* key_array, const size_t* key_length_array,
+ int num_keys,
+ size_t* filter_length),
+ unsigned char (*key_may_match)(
+ void*,
+ const char* key, size_t length,
+ const char* filter, size_t filter_length),
+ const char* (*name)(void*)) {
+ leveldb_filterpolicy_t* result = new leveldb_filterpolicy_t;
+ result->state_ = state;
+ result->destructor_ = destructor;
+ result->create_ = create_filter;
+ result->key_match_ = key_may_match;
+ result->name_ = name;
+ return result;
+}
+
+void leveldb_filterpolicy_destroy(leveldb_filterpolicy_t* filter) {
+ delete filter;
+}
+
+leveldb_filterpolicy_t* leveldb_filterpolicy_create_bloom(int bits_per_key) {
+ // Make a leveldb_filterpolicy_t, but override all of its methods so
+ // they delegate to a NewBloomFilterPolicy() instead of user
+ // supplied C functions.
+ struct Wrapper : public leveldb_filterpolicy_t {
+ const FilterPolicy* rep_;
+ ~Wrapper() { delete rep_; }
+ const char* Name() const { return rep_->Name(); }
+ void CreateFilter(const Slice* keys, int n, std::string* dst) const {
+ return rep_->CreateFilter(keys, n, dst);
+ }
+ bool KeyMayMatch(const Slice& key, const Slice& filter) const {
+ return rep_->KeyMayMatch(key, filter);
+ }
+ static void DoNothing(void*) { }
+ };
+ Wrapper* wrapper = new Wrapper;
+ wrapper->rep_ = NewBloomFilterPolicy(bits_per_key);
+ wrapper->state_ = NULL;
+ wrapper->destructor_ = &Wrapper::DoNothing;
+ return wrapper;
+}
+
+leveldb_readoptions_t* leveldb_readoptions_create() {
+ return new leveldb_readoptions_t;
+}
+
+void leveldb_readoptions_destroy(leveldb_readoptions_t* opt) {
+ delete opt;
+}
+
+void leveldb_readoptions_set_verify_checksums(
+ leveldb_readoptions_t* opt,
+ unsigned char v) {
+ opt->rep.verify_checksums = v;
+}
+
+void leveldb_readoptions_set_fill_cache(
+ leveldb_readoptions_t* opt, unsigned char v) {
+ opt->rep.fill_cache = v;
+}
+
+void leveldb_readoptions_set_snapshot(
+ leveldb_readoptions_t* opt,
+ const leveldb_snapshot_t* snap) {
+ opt->rep.snapshot = (snap ? snap->rep : NULL);
+}
+
+leveldb_writeoptions_t* leveldb_writeoptions_create() {
+ return new leveldb_writeoptions_t;
+}
+
+void leveldb_writeoptions_destroy(leveldb_writeoptions_t* opt) {
+ delete opt;
+}
+
+void leveldb_writeoptions_set_sync(
+ leveldb_writeoptions_t* opt, unsigned char v) {
+ opt->rep.sync = v;
+}
+
+leveldb_cache_t* leveldb_cache_create_lru(size_t capacity) {
+ leveldb_cache_t* c = new leveldb_cache_t;
+ c->rep = NewLRUCache(capacity);
+ return c;
+}
+
+void leveldb_cache_destroy(leveldb_cache_t* cache) {
+ delete cache->rep;
+ delete cache;
+}
+
+leveldb_env_t* leveldb_create_default_env() {
+ leveldb_env_t* result = new leveldb_env_t;
+ result->rep = Env::Default();
+ result->is_default = true;
+ return result;
+}
+
+void leveldb_env_destroy(leveldb_env_t* env) {
+ if (!env->is_default) delete env->rep;
+ delete env;
+}
+
+void leveldb_free(void* ptr) {
+ free(ptr);
+}
+
+int leveldb_major_version() {
+ return kMajorVersion;
+}
+
+int leveldb_minor_version() {
+ return kMinorVersion;
+}
+
+} // end extern "C"
diff --git a/clipper/HyperLevelDB/db/c_test.c b/clipper/HyperLevelDB/db/c_test.c
new file mode 100644
index 0000000..3f5b60e
--- /dev/null
+++ b/clipper/HyperLevelDB/db/c_test.c
@@ -0,0 +1,390 @@
+/* Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style license that can be
+ found in the LICENSE file. See the AUTHORS file for names of contributors. */
+
+#include "hyperleveldb/c.h"
+
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+const char* phase = "";
+static char dbname[200];
+
+static void StartPhase(const char* name) {
+ fprintf(stderr, "=== Test %s\n", name);
+ phase = name;
+}
+
+static const char* GetTempDir(void) {
+ const char* ret = getenv("TEST_TMPDIR");
+ if (ret == NULL || ret[0] == '\0')
+ ret = "/tmp";
+ return ret;
+}
+
+#define CheckNoError(err) \
+ if ((err) != NULL) { \
+ fprintf(stderr, "%s:%d: %s: %s\n", __FILE__, __LINE__, phase, (err)); \
+ abort(); \
+ }
+
+#define CheckCondition(cond) \
+ if (!(cond)) { \
+ fprintf(stderr, "%s:%d: %s: %s\n", __FILE__, __LINE__, phase, #cond); \
+ abort(); \
+ }
+
+static void CheckEqual(const char* expected, const char* v, size_t n) {
+ if (expected == NULL && v == NULL) {
+ // ok
+ } else if (expected != NULL && v != NULL && n == strlen(expected) &&
+ memcmp(expected, v, n) == 0) {
+ // ok
+ return;
+ } else {
+ fprintf(stderr, "%s: expected '%s', got '%s'\n",
+ phase,
+ (expected ? expected : "(null)"),
+ (v ? v : "(null"));
+ abort();
+ }
+}
+
+static void Free(char** ptr) {
+ if (*ptr) {
+ free(*ptr);
+ *ptr = NULL;
+ }
+}
+
+static void CheckGet(
+ leveldb_t* db,
+ const leveldb_readoptions_t* options,
+ const char* key,
+ const char* expected) {
+ char* err = NULL;
+ size_t val_len;
+ char* val;
+ val = leveldb_get(db, options, key, strlen(key), &val_len, &err);
+ CheckNoError(err);
+ CheckEqual(expected, val, val_len);
+ Free(&val);
+}
+
+static void CheckIter(leveldb_iterator_t* iter,
+ const char* key, const char* val) {
+ size_t len;
+ const char* str;
+ str = leveldb_iter_key(iter, &len);
+ CheckEqual(key, str, len);
+ str = leveldb_iter_value(iter, &len);
+ CheckEqual(val, str, len);
+}
+
+// Callback from leveldb_writebatch_iterate()
+static void CheckPut(void* ptr,
+ const char* k, size_t klen,
+ const char* v, size_t vlen) {
+ int* state = (int*) ptr;
+ CheckCondition(*state < 2);
+ switch (*state) {
+ case 0:
+ CheckEqual("bar", k, klen);
+ CheckEqual("b", v, vlen);
+ break;
+ case 1:
+ CheckEqual("box", k, klen);
+ CheckEqual("c", v, vlen);
+ break;
+ }
+ (*state)++;
+}
+
+// Callback from leveldb_writebatch_iterate()
+static void CheckDel(void* ptr, const char* k, size_t klen) {
+ int* state = (int*) ptr;
+ CheckCondition(*state == 2);
+ CheckEqual("bar", k, klen);
+ (*state)++;
+}
+
+static void CmpDestroy(void* arg) { }
+
+static int CmpCompare(void* arg, const char* a, size_t alen,
+ const char* b, size_t blen) {
+ int n = (alen < blen) ? alen : blen;
+ int r = memcmp(a, b, n);
+ if (r == 0) {
+ if (alen < blen) r = -1;
+ else if (alen > blen) r = +1;
+ }
+ return r;
+}
+
+static const char* CmpName(void* arg) {
+ return "foo";
+}
+
+// Custom filter policy
+static unsigned char fake_filter_result = 1;
+static void FilterDestroy(void* arg) { }
+static const char* FilterName(void* arg) {
+ return "TestFilter";
+}
+static char* FilterCreate(
+ void* arg,
+ const char* const* key_array, const size_t* key_length_array,
+ int num_keys,
+ size_t* filter_length) {
+ *filter_length = 4;
+ char* result = malloc(4);
+ memcpy(result, "fake", 4);
+ return result;
+}
+unsigned char FilterKeyMatch(
+ void* arg,
+ const char* key, size_t length,
+ const char* filter, size_t filter_length) {
+ CheckCondition(filter_length == 4);
+ CheckCondition(memcmp(filter, "fake", 4) == 0);
+ return fake_filter_result;
+}
+
+int main(int argc, char** argv) {
+ leveldb_t* db;
+ leveldb_comparator_t* cmp;
+ leveldb_cache_t* cache;
+ leveldb_env_t* env;
+ leveldb_options_t* options;
+ leveldb_readoptions_t* roptions;
+ leveldb_writeoptions_t* woptions;
+ char* err = NULL;
+ int run = -1;
+
+ CheckCondition(leveldb_major_version() >= 1);
+ CheckCondition(leveldb_minor_version() >= 1);
+
+ snprintf(dbname, sizeof(dbname),
+ "%s/leveldb_c_test-%d",
+ GetTempDir(),
+ ((int) geteuid()));
+
+ StartPhase("create_objects");
+ cmp = leveldb_comparator_create(NULL, CmpDestroy, CmpCompare, CmpName);
+ env = leveldb_create_default_env();
+ cache = leveldb_cache_create_lru(100000);
+
+ options = leveldb_options_create();
+ leveldb_options_set_comparator(options, cmp);
+ leveldb_options_set_error_if_exists(options, 1);
+ leveldb_options_set_cache(options, cache);
+ leveldb_options_set_env(options, env);
+ leveldb_options_set_info_log(options, NULL);
+ leveldb_options_set_write_buffer_size(options, 100000);
+ leveldb_options_set_paranoid_checks(options, 1);
+ leveldb_options_set_max_open_files(options, 10);
+ leveldb_options_set_block_size(options, 1024);
+ leveldb_options_set_block_restart_interval(options, 8);
+ leveldb_options_set_compression(options, leveldb_no_compression);
+
+ roptions = leveldb_readoptions_create();
+ leveldb_readoptions_set_verify_checksums(roptions, 1);
+ leveldb_readoptions_set_fill_cache(roptions, 0);
+
+ woptions = leveldb_writeoptions_create();
+ leveldb_writeoptions_set_sync(woptions, 1);
+
+ StartPhase("destroy");
+ leveldb_destroy_db(options, dbname, &err);
+ Free(&err);
+
+ StartPhase("open_error");
+ db = leveldb_open(options, dbname, &err);
+ CheckCondition(err != NULL);
+ Free(&err);
+
+ StartPhase("leveldb_free");
+ db = leveldb_open(options, dbname, &err);
+ CheckCondition(err != NULL);
+ leveldb_free(err);
+ err = NULL;
+
+ StartPhase("open");
+ leveldb_options_set_create_if_missing(options, 1);
+ db = leveldb_open(options, dbname, &err);
+ CheckNoError(err);
+ CheckGet(db, roptions, "foo", NULL);
+
+ StartPhase("put");
+ leveldb_put(db, woptions, "foo", 3, "hello", 5, &err);
+ CheckNoError(err);
+ CheckGet(db, roptions, "foo", "hello");
+
+ StartPhase("compactall");
+ leveldb_compact_range(db, NULL, 0, NULL, 0);
+ CheckGet(db, roptions, "foo", "hello");
+
+ StartPhase("compactrange");
+ leveldb_compact_range(db, "a", 1, "z", 1);
+ CheckGet(db, roptions, "foo", "hello");
+
+ StartPhase("writebatch");
+ {
+ leveldb_writebatch_t* wb = leveldb_writebatch_create();
+ leveldb_writebatch_put(wb, "foo", 3, "a", 1);
+ leveldb_writebatch_clear(wb);
+ leveldb_writebatch_put(wb, "bar", 3, "b", 1);
+ leveldb_writebatch_put(wb, "box", 3, "c", 1);
+ leveldb_writebatch_delete(wb, "bar", 3);
+ leveldb_write(db, woptions, wb, &err);
+ CheckNoError(err);
+ CheckGet(db, roptions, "foo", "hello");
+ CheckGet(db, roptions, "bar", NULL);
+ CheckGet(db, roptions, "box", "c");
+ int pos = 0;
+ leveldb_writebatch_iterate(wb, &pos, CheckPut, CheckDel);
+ CheckCondition(pos == 3);
+ leveldb_writebatch_destroy(wb);
+ }
+
+ StartPhase("iter");
+ {
+ leveldb_iterator_t* iter = leveldb_create_iterator(db, roptions);
+ CheckCondition(!leveldb_iter_valid(iter));
+ leveldb_iter_seek_to_first(iter);
+ CheckCondition(leveldb_iter_valid(iter));
+ CheckIter(iter, "box", "c");
+ leveldb_iter_next(iter);
+ CheckIter(iter, "foo", "hello");
+ leveldb_iter_prev(iter);
+ CheckIter(iter, "box", "c");
+ leveldb_iter_prev(iter);
+ CheckCondition(!leveldb_iter_valid(iter));
+ leveldb_iter_seek_to_last(iter);
+ CheckIter(iter, "foo", "hello");
+ leveldb_iter_seek(iter, "b", 1);
+ CheckIter(iter, "box", "c");
+ leveldb_iter_get_error(iter, &err);
+ CheckNoError(err);
+ leveldb_iter_destroy(iter);
+ }
+
+ StartPhase("approximate_sizes");
+ {
+ int i;
+ int n = 20000;
+ char keybuf[100];
+ char valbuf[100];
+ uint64_t sizes[2];
+ const char* start[2] = { "a", "k00000000000000010000" };
+ size_t start_len[2] = { 1, 21 };
+ const char* limit[2] = { "k00000000000000010000", "z" };
+ size_t limit_len[2] = { 21, 1 };
+ leveldb_writeoptions_set_sync(woptions, 0);
+ for (i = 0; i < n; i++) {
+ snprintf(keybuf, sizeof(keybuf), "k%020d", i);
+ snprintf(valbuf, sizeof(valbuf), "v%020d", i);
+ leveldb_put(db, woptions, keybuf, strlen(keybuf), valbuf, strlen(valbuf),
+ &err);
+ CheckNoError(err);
+ }
+ leveldb_approximate_sizes(db, 2, start, start_len, limit, limit_len, sizes);
+ CheckCondition(sizes[0] > 0);
+ CheckCondition(sizes[1] > 0);
+ }
+
+ StartPhase("property");
+ {
+ char* prop = leveldb_property_value(db, "nosuchprop");
+ CheckCondition(prop == NULL);
+ prop = leveldb_property_value(db, "leveldb.stats");
+ CheckCondition(prop != NULL);
+ Free(&prop);
+ }
+
+ StartPhase("snapshot");
+ {
+ const leveldb_snapshot_t* snap;
+ snap = leveldb_create_snapshot(db);
+ leveldb_delete(db, woptions, "foo", 3, &err);
+ CheckNoError(err);
+ leveldb_readoptions_set_snapshot(roptions, snap);
+ CheckGet(db, roptions, "foo", "hello");
+ leveldb_readoptions_set_snapshot(roptions, NULL);
+ CheckGet(db, roptions, "foo", NULL);
+ leveldb_release_snapshot(db, snap);
+ }
+
+ StartPhase("repair");
+ {
+ leveldb_close(db);
+ leveldb_options_set_create_if_missing(options, 0);
+ leveldb_options_set_error_if_exists(options, 0);
+ leveldb_repair_db(options, dbname, &err);
+ CheckNoError(err);
+ db = leveldb_open(options, dbname, &err);
+ CheckNoError(err);
+ CheckGet(db, roptions, "foo", NULL);
+ CheckGet(db, roptions, "bar", NULL);
+ CheckGet(db, roptions, "box", "c");
+ leveldb_options_set_create_if_missing(options, 1);
+ leveldb_options_set_error_if_exists(options, 1);
+ }
+
+ StartPhase("filter");
+ for (run = 0; run < 2; run++) {
+ // First run uses custom filter, second run uses bloom filter
+ CheckNoError(err);
+ leveldb_filterpolicy_t* policy;
+ if (run == 0) {
+ policy = leveldb_filterpolicy_create(
+ NULL, FilterDestroy, FilterCreate, FilterKeyMatch, FilterName);
+ } else {
+ policy = leveldb_filterpolicy_create_bloom(10);
+ }
+
+ // Create new database
+ leveldb_close(db);
+ leveldb_destroy_db(options, dbname, &err);
+ leveldb_options_set_filter_policy(options, policy);
+ db = leveldb_open(options, dbname, &err);
+ CheckNoError(err);
+ leveldb_put(db, woptions, "foo", 3, "foovalue", 8, &err);
+ CheckNoError(err);
+ leveldb_put(db, woptions, "bar", 3, "barvalue", 8, &err);
+ CheckNoError(err);
+ leveldb_compact_range(db, NULL, 0, NULL, 0);
+
+ fake_filter_result = 1;
+ CheckGet(db, roptions, "foo", "foovalue");
+ CheckGet(db, roptions, "bar", "barvalue");
+ if (phase == 0) {
+ // Must not find value when custom filter returns false
+ fake_filter_result = 0;
+ CheckGet(db, roptions, "foo", NULL);
+ CheckGet(db, roptions, "bar", NULL);
+ fake_filter_result = 1;
+
+ CheckGet(db, roptions, "foo", "foovalue");
+ CheckGet(db, roptions, "bar", "barvalue");
+ }
+ leveldb_options_set_filter_policy(options, NULL);
+ leveldb_filterpolicy_destroy(policy);
+ }
+
+ StartPhase("cleanup");
+ leveldb_close(db);
+ leveldb_options_destroy(options);
+ leveldb_readoptions_destroy(roptions);
+ leveldb_writeoptions_destroy(woptions);
+ leveldb_cache_destroy(cache);
+ leveldb_comparator_destroy(cmp);
+ leveldb_env_destroy(env);
+
+ fprintf(stderr, "PASS\n");
+ return 0;
+}
diff --git a/clipper/HyperLevelDB/db/corruption_test.cc b/clipper/HyperLevelDB/db/corruption_test.cc
new file mode 100644
index 0000000..a3372b2
--- /dev/null
+++ b/clipper/HyperLevelDB/db/corruption_test.cc
@@ -0,0 +1,374 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "hyperleveldb/db.h"
+
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include "hyperleveldb/cache.h"
+#include "hyperleveldb/env.h"
+#include "hyperleveldb/table.h"
+#include "hyperleveldb/write_batch.h"
+#include "db/db_impl.h"
+#include "db/filename.h"
+#include "db/log_format.h"
+#include "db/version_set.h"
+#include "util/logging.h"
+#include "util/testharness.h"
+#include "util/testutil.h"
+
+namespace leveldb {
+
+static const int kValueSize = 1000;
+
+class CorruptionTest {
+ public:
+ test::ErrorEnv env_;
+ std::string dbname_;
+ Cache* tiny_cache_;
+ Options options_;
+ DB* db_;
+
+ CorruptionTest() {
+ tiny_cache_ = NewLRUCache(100);
+ options_.env = &env_;
+ options_.block_cache = tiny_cache_;
+ dbname_ = test::TmpDir() + "/db_test";
+ DestroyDB(dbname_, options_);
+
+ db_ = NULL;
+ options_.create_if_missing = true;
+ Reopen();
+ options_.create_if_missing = false;
+ }
+
+ ~CorruptionTest() {
+ delete db_;
+ DestroyDB(dbname_, Options());
+ delete tiny_cache_;
+ }
+
+ Status TryReopen() {
+ delete db_;
+ db_ = NULL;
+ return DB::Open(options_, dbname_, &db_);
+ }
+
+ void Reopen() {
+ ASSERT_OK(TryReopen());
+ }
+
+ void RepairDB() {
+ delete db_;
+ db_ = NULL;
+ ASSERT_OK(::leveldb::RepairDB(dbname_, options_));
+ }
+
+ void Build(int n) {
+ std::string key_space, value_space;
+ WriteBatch batch;
+ for (int i = 0; i < n; i++) {
+ //if ((i % 100) == 0) fprintf(stderr, "@ %d of %d\n", i, n);
+ Slice key = Key(i, &key_space);
+ batch.Clear();
+ batch.Put(key, Value(i, &value_space));
+ WriteOptions options;
+ // Corrupt() doesn't work without this sync on windows; stat reports 0 for
+ // the file size.
+ if (i == n - 1) {
+ options.sync = true;
+ }
+ ASSERT_OK(db_->Write(options, &batch));
+ }
+ }
+
+ void Check(int min_expected, int max_expected) {
+ int next_expected = 0;
+ int missed = 0;
+ int bad_keys = 0;
+ int bad_values = 0;
+ int correct = 0;
+ std::string value_space;
+ Iterator* iter = db_->NewIterator(ReadOptions());
+ for (iter->SeekToFirst(); iter->Valid(); iter->Next()) {
+ uint64_t key;
+ Slice in(iter->key());
+ if (in == "" || in == "~") {
+ // Ignore boundary keys.
+ continue;
+ }
+ if (!ConsumeDecimalNumber(&in, &key) ||
+ !in.empty() ||
+ key < next_expected) {
+ bad_keys++;
+ continue;
+ }
+ missed += (key - next_expected);
+ next_expected = key + 1;
+ if (iter->value() != Value(key, &value_space)) {
+ bad_values++;
+ } else {
+ correct++;
+ }
+ }
+ delete iter;
+
+ fprintf(stderr,
+ "expected=%d..%d; got=%d; bad_keys=%d; bad_values=%d; missed=%d\n",
+ min_expected, max_expected, correct, bad_keys, bad_values, missed);
+ ASSERT_LE(min_expected, correct);
+ ASSERT_GE(max_expected, correct);
+ }
+
+ void Corrupt(FileType filetype, int offset, int bytes_to_corrupt) {
+ // Pick file to corrupt
+ std::vector<std::string> filenames;
+ ASSERT_OK(env_.GetChildren(dbname_, &filenames));
+ uint64_t number;
+ FileType type;
+ std::string fname;
+ int picked_number = -1;
+ for (size_t i = 0; i < filenames.size(); i++) {
+ if (ParseFileName(filenames[i], &number, &type) &&
+ type == filetype &&
+ int(number) > picked_number) { // Pick latest file
+ fname = dbname_ + "/" + filenames[i];
+ picked_number = number;
+ }
+ }
+ ASSERT_TRUE(!fname.empty()) << filetype;
+
+ struct stat sbuf;
+ if (stat(fname.c_str(), &sbuf) != 0) {
+ const char* msg = strerror(errno);
+ ASSERT_TRUE(false) << fname << ": " << msg;
+ }
+
+ if (offset < 0) {
+ // Relative to end of file; make it absolute
+ if (-offset > sbuf.st_size) {
+ offset = 0;
+ } else {
+ offset = sbuf.st_size + offset;
+ }
+ }
+ if (offset > sbuf.st_size) {
+ offset = sbuf.st_size;
+ }
+ if (offset + bytes_to_corrupt > sbuf.st_size) {
+ bytes_to_corrupt = sbuf.st_size - offset;
+ }
+
+ // Do it
+ std::string contents;
+ Status s = ReadFileToString(Env::Default(), fname, &contents);
+ ASSERT_TRUE(s.ok()) << s.ToString();
+ for (int i = 0; i < bytes_to_corrupt; i++) {
+ contents[i + offset] ^= 0x80;
+ }
+ s = WriteStringToFile(Env::Default(), contents, fname);
+ ASSERT_TRUE(s.ok()) << s.ToString();
+ }
+
+ int Property(const std::string& name) {
+ std::string property;
+ int result;
+ if (db_->GetProperty(name, &property) &&
+ sscanf(property.c_str(), "%d", &result) == 1) {
+ return result;
+ } else {
+ return -1;
+ }
+ }
+
+ // Return the ith key
+ Slice Key(int i, std::string* storage) {
+ char buf[100];
+ snprintf(buf, sizeof(buf), "%016d", i);
+ storage->assign(buf, strlen(buf));
+ return Slice(*storage);
+ }
+
+ // Return the value to associate with the specified key
+ Slice Value(int k, std::string* storage) {
+ Random r(k);
+ return test::RandomString(&r, kValueSize, storage);
+ }
+};
+
+TEST(CorruptionTest, Recovery) {
+ Build(100);
+ Check(100, 100);
+ Corrupt(kLogFile, 19, 1); // WriteBatch tag for first record
+ Corrupt(kLogFile, log::kBlockSize + 1000, 1); // Somewhere in second block
+ Reopen();
+
+ // The 64 records in the first two log blocks are completely lost.
+ Check(36, 36);
+}
+
+TEST(CorruptionTest, RecoverWriteError) {
+ env_.writable_file_error_ = true;
+ Status s = TryReopen();
+ ASSERT_TRUE(!s.ok());
+}
+
+TEST(CorruptionTest, NewFileErrorDuringWrite) {
+ // Do enough writing to force minor compaction
+ env_.writable_file_error_ = true;
+ const int num = 3 + (Options().write_buffer_size / kValueSize);
+ std::string value_storage;
+ Status s;
+ for (int i = 0; s.ok() && i < num; i++) {
+ WriteBatch batch;
+ batch.Put("a", Value(100, &value_storage));
+ s = db_->Write(WriteOptions(), &batch);
+ }
+ ASSERT_TRUE(!s.ok());
+ ASSERT_GE(env_.num_writable_file_errors_, 1);
+ env_.writable_file_error_ = false;
+ Reopen();
+}
+
+TEST(CorruptionTest, TableFile) {
+ Build(100);
+ DBImpl* dbi = reinterpret_cast<DBImpl*>(db_);
+ dbi->TEST_CompactMemTable();
+ dbi->TEST_CompactRange(0, NULL, NULL);
+ dbi->TEST_CompactRange(1, NULL, NULL);
+
+ Corrupt(kTableFile, 100, 1);
+ Check(90, 99);
+}
+
+TEST(CorruptionTest, TableFileRepair) {
+ options_.block_size = 2 * kValueSize; // Limit scope of corruption
+ options_.paranoid_checks = true;
+ Reopen();
+ Build(100);
+ DBImpl* dbi = reinterpret_cast<DBImpl*>(db_);
+ dbi->TEST_CompactMemTable();
+ dbi->TEST_CompactRange(0, NULL, NULL);
+ dbi->TEST_CompactRange(1, NULL, NULL);
+
+ Corrupt(kTableFile, 100, 1);
+ RepairDB();
+ Reopen();
+ Check(95, 99);
+}
+
+TEST(CorruptionTest, TableFileIndexData) {
+ Build(10000); // Enough to build multiple Tables
+ DBImpl* dbi = reinterpret_cast<DBImpl*>(db_);
+ dbi->TEST_CompactMemTable();
+
+ Corrupt(kTableFile, -2000, 500);
+ Reopen();
+ Check(5000, 9999);
+}
+
+TEST(CorruptionTest, MissingDescriptor) {
+ Build(1000);
+ RepairDB();
+ Reopen();
+ Check(1000, 1000);
+}
+
+TEST(CorruptionTest, SequenceNumberRecovery) {
+ ASSERT_OK(db_->Put(WriteOptions(), "foo", "v1"));
+ ASSERT_OK(db_->Put(WriteOptions(), "foo", "v2"));
+ ASSERT_OK(db_->Put(WriteOptions(), "foo", "v3"));
+ ASSERT_OK(db_->Put(WriteOptions(), "foo", "v4"));
+ ASSERT_OK(db_->Put(WriteOptions(), "foo", "v5"));
+ RepairDB();
+ Reopen();
+ std::string v;
+ ASSERT_OK(db_->Get(ReadOptions(), "foo", &v));
+ ASSERT_EQ("v5", v);
+ // Write something. If sequence number was not recovered properly,
+ // it will be hidden by an earlier write.
+ ASSERT_OK(db_->Put(WriteOptions(), "foo", "v6"));
+ ASSERT_OK(db_->Get(ReadOptions(), "foo", &v));
+ ASSERT_EQ("v6", v);
+ Reopen();
+ ASSERT_OK(db_->Get(ReadOptions(), "foo", &v));
+ ASSERT_EQ("v6", v);
+}
+
+TEST(CorruptionTest, CorruptedDescriptor) {
+ ASSERT_OK(db_->Put(WriteOptions(), "foo", "hello"));
+ DBImpl* dbi = reinterpret_cast<DBImpl*>(db_);
+ dbi->TEST_CompactMemTable();
+ dbi->TEST_CompactRange(0, NULL, NULL);
+
+ Corrupt(kDescriptorFile, 0, 1000);
+ Status s = TryReopen();
+ ASSERT_TRUE(!s.ok());
+
+ RepairDB();
+ Reopen();
+ std::string v;
+ ASSERT_OK(db_->Get(ReadOptions(), "foo", &v));
+ ASSERT_EQ("hello", v);
+}
+
+TEST(CorruptionTest, CompactionInputError) {
+ Build(10);
+ DBImpl* dbi = reinterpret_cast<DBImpl*>(db_);
+ dbi->TEST_CompactMemTable();
+ const int last = config::kMaxMemCompactLevel;
+ ASSERT_EQ(1, Property("leveldb.num-files-at-level" + NumberToString(last)));
+
+ Corrupt(kTableFile, 100, 1);
+ Check(5, 9);
+
+ // Force compactions by writing lots of values
+ Build(10000);
+ Check(10000, 10000);
+}
+
+TEST(CorruptionTest, CompactionInputErrorParanoid) {
+ options_.paranoid_checks = true;
+ options_.write_buffer_size = 512 << 10;
+ Reopen();
+ DBImpl* dbi = reinterpret_cast<DBImpl*>(db_);
+
+ // Make multiple inputs so we need to compact.
+ for (int i = 0; i < 2; i++) {
+ Build(10);
+ dbi->TEST_CompactMemTable();
+ Corrupt(kTableFile, 100, 1);
+ env_.SleepForMicroseconds(100000);
+ }
+ dbi->CompactRange(NULL, NULL);
+
+ // Write must fail because of corrupted table
+ std::string tmp1, tmp2;
+ Status s = db_->Put(WriteOptions(), Key(5, &tmp1), Value(5, &tmp2));
+ ASSERT_TRUE(!s.ok()) << "write did not fail in corrupted paranoid db";
+}
+
+TEST(CorruptionTest, UnrelatedKeys) {
+ Build(10);
+ DBImpl* dbi = reinterpret_cast<DBImpl*>(db_);
+ dbi->TEST_CompactMemTable();
+ Corrupt(kTableFile, 100, 1);
+
+ std::string tmp1, tmp2;
+ ASSERT_OK(db_->Put(WriteOptions(), Key(1000, &tmp1), Value(1000, &tmp2)));
+ std::string v;
+ ASSERT_OK(db_->Get(ReadOptions(), Key(1000, &tmp1), &v));
+ ASSERT_EQ(Value(1000, &tmp2).ToString(), v);
+ dbi->TEST_CompactMemTable();
+ ASSERT_OK(db_->Get(ReadOptions(), Key(1000, &tmp1), &v));
+ ASSERT_EQ(Value(1000, &tmp2).ToString(), v);
+}
+
+} // namespace leveldb
+
+int main(int argc, char** argv) {
+ return leveldb::test::RunAllTests();
+}
diff --git a/clipper/HyperLevelDB/db/db_bench.cc b/clipper/HyperLevelDB/db/db_bench.cc
new file mode 100644
index 0000000..0c52bbc
--- /dev/null
+++ b/clipper/HyperLevelDB/db/db_bench.cc
@@ -0,0 +1,979 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include <sys/types.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include "db/db_impl.h"
+#include "db/version_set.h"
+#include "hyperleveldb/cache.h"
+#include "hyperleveldb/db.h"
+#include "hyperleveldb/env.h"
+#include "hyperleveldb/write_batch.h"
+#include "port/port.h"
+#include "util/crc32c.h"
+#include "util/histogram.h"
+#include "util/mutexlock.h"
+#include "util/random.h"
+#include "util/testutil.h"
+
+// Comma-separated list of operations to run in the specified order
+// Actual benchmarks:
+// fillseq -- write N values in sequential key order in async mode
+// fillrandom -- write N values in random key order in async mode
+// overwrite -- overwrite N values in random key order in async mode
+// fillsync -- write N/100 values in random key order in sync mode
+// fill100K -- write N/1000 100K values in random order in async mode
+// deleteseq -- delete N keys in sequential order
+// deleterandom -- delete N keys in random order
+// readseq -- read N times sequentially
+// readreverse -- read N times in reverse order
+// readrandom -- read N times in random order
+// readmissing -- read N missing keys in random order
+// readhot -- read N times in random order from 1% section of DB
+// seekrandom -- N random seeks
+// crc32c -- repeated crc32c of 4K of data
+// acquireload -- load N*1000 times
+// Meta operations:
+// compact -- Compact the entire DB
+// stats -- Print DB stats
+// sstables -- Print sstable info
+// heapprofile -- Dump a heap profile (if supported by this port)
+static const char* FLAGS_benchmarks =
+ "fillseq,"
+ "fillsync,"
+ "fillrandom,"
+ "overwrite,"
+ "readrandom,"
+ "readrandom," // Extra run to allow previous compactions to quiesce
+ "readseq,"
+ "readreverse,"
+ "compact,"
+ "readrandom,"
+ "readseq,"
+ "readreverse,"
+ "fill100K,"
+ "crc32c,"
+ "snappycomp,"
+ "snappyuncomp,"
+ "acquireload,"
+ ;
+
+// Number of key/values to place in database
+static int FLAGS_num = 1000000;
+
+// Number of read operations to do. If negative, do FLAGS_num reads.
+static int FLAGS_reads = -1;
+
+// Number of concurrent threads to run.
+static int FLAGS_threads = 1;
+
+// Size of each value
+static int FLAGS_value_size = 100;
+
+// Arrange to generate values that shrink to this fraction of
+// their original size after compression
+static double FLAGS_compression_ratio = 0.5;
+
+// Print histogram of operation timings
+static bool FLAGS_histogram = false;
+
+// Number of bytes to buffer in memtable before compacting
+// (initialized to default value by "main")
+static int FLAGS_write_buffer_size = 0;
+
+// Number of bytes to use as a cache of uncompressed data.
+// Negative means use default settings.
+static int FLAGS_cache_size = -1;
+
+// Maximum number of files to keep open at the same time (use default if == 0)
+static int FLAGS_open_files = 0;
+
+// Bloom filter bits per key.
+// Negative means use default settings.
+static int FLAGS_bloom_bits = -1;
+
+// If true, do not destroy the existing database. If you set this
+// flag and also specify a benchmark that wants a fresh database, that
+// benchmark will fail.
+static bool FLAGS_use_existing_db = false;
+
+// Use the db with the following name.
+static const char* FLAGS_db = NULL;
+
+namespace leveldb {
+
+namespace {
+
+// Helper for quickly generating random data.
+class RandomGenerator {
+ private:
+ std::string data_;
+ int pos_;
+
+ public:
+ RandomGenerator() {
+ // We use a limited amount of data over and over again and ensure
+ // that it is larger than the compression window (32KB), and also
+ // large enough to serve all typical value sizes we want to write.
+ Random rnd(301);
+ std::string piece;
+ while (data_.size() < 1048576) {
+ // Add a short fragment that is as compressible as specified
+ // by FLAGS_compression_ratio.
+ test::CompressibleString(&rnd, FLAGS_compression_ratio, 100, &piece);
+ data_.append(piece);
+ }
+ pos_ = 0;
+ }
+
+ Slice Generate(size_t len) {
+ if (pos_ + len > data_.size()) {
+ pos_ = 0;
+ assert(len < data_.size());
+ }
+ pos_ += len;
+ return Slice(data_.data() + pos_ - len, len);
+ }
+};
+
+static Slice TrimSpace(Slice s) {
+ size_t start = 0;
+ while (start < s.size() && isspace(s[start])) {
+ start++;
+ }
+ size_t limit = s.size();
+ while (limit > start && isspace(s[limit-1])) {
+ limit--;
+ }
+ return Slice(s.data() + start, limit - start);
+}
+
+static void AppendWithSpace(std::string* str, Slice msg) {
+ if (msg.empty()) return;
+ if (!str->empty()) {
+ str->push_back(' ');
+ }
+ str->append(msg.data(), msg.size());
+}
+
+class Stats {
+ private:
+ double start_;
+ double finish_;
+ double seconds_;
+ int done_;
+ int next_report_;
+ int64_t bytes_;
+ double last_op_finish_;
+ Histogram hist_;
+ std::string message_;
+
+ public:
+ Stats() { Start(); }
+
+ void Start() {
+ next_report_ = 100;
+ last_op_finish_ = start_;
+ hist_.Clear();
+ done_ = 0;
+ bytes_ = 0;
+ seconds_ = 0;
+ start_ = Env::Default()->NowMicros();
+ finish_ = start_;
+ message_.clear();
+ }
+
+ void Merge(const Stats& other) {
+ hist_.Merge(other.hist_);
+ done_ += other.done_;
+ bytes_ += other.bytes_;
+ seconds_ += other.seconds_;
+ if (other.start_ < start_) start_ = other.start_;
+ if (other.finish_ > finish_) finish_ = other.finish_;
+
+ // Just keep the messages from one thread
+ if (message_.empty()) message_ = other.message_;
+ }
+
+ void Stop() {
+ finish_ = Env::Default()->NowMicros();
+ seconds_ = (finish_ - start_) * 1e-6;
+ }
+
+ void AddMessage(Slice msg) {
+ AppendWithSpace(&message_, msg);
+ }
+
+ void FinishedSingleOp() {
+ if (FLAGS_histogram) {
+ double now = Env::Default()->NowMicros();
+ double micros = now - last_op_finish_;
+ hist_.Add(micros);
+ if (micros > 20000) {
+ fprintf(stderr, "long op: %.1f micros%30s\r", micros, "");
+ fflush(stderr);
+ }
+ last_op_finish_ = now;
+ }
+
+ done_++;
+ if (done_ >= next_report_) {
+ if (next_report_ < 1000) next_report_ += 100;
+ else if (next_report_ < 5000) next_report_ += 500;
+ else if (next_report_ < 10000) next_report_ += 1000;
+ else if (next_report_ < 50000) next_report_ += 5000;
+ else if (next_report_ < 100000) next_report_ += 10000;
+ else if (next_report_ < 500000) next_report_ += 50000;
+ else next_report_ += 100000;
+ fprintf(stderr, "... finished %d ops%30s\r", done_, "");
+ fflush(stderr);
+ }
+ }
+
+ void AddBytes(int64_t n) {
+ bytes_ += n;
+ }
+
+ void Report(const Slice& name) {
+ // Pretend at least one op was done in case we are running a benchmark
+ // that does not call FinishedSingleOp().
+ if (done_ < 1) done_ = 1;
+
+ std::string extra;
+ if (bytes_ > 0) {
+ // Rate is computed on actual elapsed time, not the sum of per-thread
+ // elapsed times.
+ double elapsed = (finish_ - start_) * 1e-6;
+ char rate[100];
+ snprintf(rate, sizeof(rate), "%6.1f MB/s",
+ (bytes_ / 1048576.0) / elapsed);
+ extra = rate;
+ }
+ AppendWithSpace(&extra, message_);
+
+ fprintf(stdout, "%-12s : %11.3f micros/op;%s%s\n",
+ name.ToString().c_str(),
+ seconds_ * 1e6 / done_,
+ (extra.empty() ? "" : " "),
+ extra.c_str());
+ if (FLAGS_histogram) {
+ fprintf(stdout, "Microseconds per op:\n%s\n", hist_.ToString().c_str());
+ }
+ fflush(stdout);
+ }
+};
+
+// State shared by all concurrent executions of the same benchmark.
+struct SharedState {
+ port::Mutex mu;
+ port::CondVar cv;
+ int total;
+
+ // Each thread goes through the following states:
+ // (1) initializing
+ // (2) waiting for others to be initialized
+ // (3) running
+ // (4) done
+
+ int num_initialized;
+ int num_done;
+ bool start;
+
+ SharedState() : cv(&mu) { }
+};
+
+// Per-thread state for concurrent executions of the same benchmark.
+struct ThreadState {
+ int tid; // 0..n-1 when running in n threads
+ Random rand; // Has different seeds for different threads
+ Stats stats;
+ SharedState* shared;
+
+ ThreadState(int index)
+ : tid(index),
+ rand(1000 + index) {
+ }
+};
+
+} // namespace
+
+class Benchmark {
+ private:
+ Cache* cache_;
+ const FilterPolicy* filter_policy_;
+ DB* db_;
+ int num_;
+ int value_size_;
+ int entries_per_batch_;
+ WriteOptions write_options_;
+ int reads_;
+ int heap_counter_;
+
+ void PrintHeader() {
+ const int kKeySize = 16;
+ PrintEnvironment();
+ fprintf(stdout, "Keys: %d bytes each\n", kKeySize);
+ fprintf(stdout, "Values: %d bytes each (%d bytes after compression)\n",
+ FLAGS_value_size,
+ static_cast<int>(FLAGS_value_size * FLAGS_compression_ratio + 0.5));
+ fprintf(stdout, "Entries: %d\n", num_);
+ fprintf(stdout, "RawSize: %.1f MB (estimated)\n",
+ ((static_cast<int64_t>(kKeySize + FLAGS_value_size) * num_)
+ / 1048576.0));
+ fprintf(stdout, "FileSize: %.1f MB (estimated)\n",
+ (((kKeySize + FLAGS_value_size * FLAGS_compression_ratio) * num_)
+ / 1048576.0));
+ PrintWarnings();
+ fprintf(stdout, "------------------------------------------------\n");
+ }
+
+ void PrintWarnings() {
+#if defined(__GNUC__) && !defined(__OPTIMIZE__)
+ fprintf(stdout,
+ "WARNING: Optimization is disabled: benchmarks unnecessarily slow\n"
+ );
+#endif
+#ifndef NDEBUG
+ fprintf(stdout,
+ "WARNING: Assertions are enabled; benchmarks unnecessarily slow\n");
+#endif
+
+ // See if snappy is working by attempting to compress a compressible string
+ const char text[] = "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy";
+ std::string compressed;
+ if (!port::Snappy_Compress(text, sizeof(text), &compressed)) {
+ fprintf(stdout, "WARNING: Snappy compression is not enabled\n");
+ } else if (compressed.size() >= sizeof(text)) {
+ fprintf(stdout, "WARNING: Snappy compression is not effective\n");
+ }
+ }
+
+ void PrintEnvironment() {
+ fprintf(stderr, "LevelDB: version %d.%d\n",
+ kMajorVersion, kMinorVersion);
+
+#if defined(__linux)
+ time_t now = time(NULL);
+ fprintf(stderr, "Date: %s", ctime(&now)); // ctime() adds newline
+
+ FILE* cpuinfo = fopen("/proc/cpuinfo", "r");
+ if (cpuinfo != NULL) {
+ char line[1000];
+ int num_cpus = 0;
+ std::string cpu_type;
+ std::string cache_size;
+ while (fgets(line, sizeof(line), cpuinfo) != NULL) {
+ const char* sep = strchr(line, ':');
+ if (sep == NULL) {
+ continue;
+ }
+ Slice key = TrimSpace(Slice(line, sep - 1 - line));
+ Slice val = TrimSpace(Slice(sep + 1));
+ if (key == "model name") {
+ ++num_cpus;
+ cpu_type = val.ToString();
+ } else if (key == "cache size") {
+ cache_size = val.ToString();
+ }
+ }
+ fclose(cpuinfo);
+ fprintf(stderr, "CPU: %d * %s\n", num_cpus, cpu_type.c_str());
+ fprintf(stderr, "CPUCache: %s\n", cache_size.c_str());
+ }
+#endif
+ }
+
+ public:
+ Benchmark()
+ : cache_(FLAGS_cache_size >= 0 ? NewLRUCache(FLAGS_cache_size) : NULL),
+ filter_policy_(FLAGS_bloom_bits >= 0
+ ? NewBloomFilterPolicy(FLAGS_bloom_bits)
+ : NULL),
+ db_(NULL),
+ num_(FLAGS_num),
+ value_size_(FLAGS_value_size),
+ entries_per_batch_(1),
+ reads_(FLAGS_reads < 0 ? FLAGS_num : FLAGS_reads),
+ heap_counter_(0) {
+ std::vector<std::string> files;
+ Env::Default()->GetChildren(FLAGS_db, &files);
+ for (size_t i = 0; i < files.size(); i++) {
+ if (Slice(files[i]).starts_with("heap-")) {
+ Env::Default()->DeleteFile(std::string(FLAGS_db) + "/" + files[i]);
+ }
+ }
+ if (!FLAGS_use_existing_db) {
+ DestroyDB(FLAGS_db, Options());
+ }
+ }
+
+ ~Benchmark() {
+ delete db_;
+ delete cache_;
+ delete filter_policy_;
+ }
+
+ void Run() {
+ PrintHeader();
+ Open();
+
+ const char* benchmarks = FLAGS_benchmarks;
+ while (benchmarks != NULL) {
+ const char* sep = strchr(benchmarks, ',');
+ Slice name;
+ if (sep == NULL) {
+ name = benchmarks;
+ benchmarks = NULL;
+ } else {
+ name = Slice(benchmarks, sep - benchmarks);
+ benchmarks = sep + 1;
+ }
+
+ // Reset parameters that may be overriddden bwlow
+ num_ = FLAGS_num;
+ reads_ = (FLAGS_reads < 0 ? FLAGS_num : FLAGS_reads);
+ value_size_ = FLAGS_value_size;
+ entries_per_batch_ = 1;
+ write_options_ = WriteOptions();
+
+ void (Benchmark::*method)(ThreadState*) = NULL;
+ bool fresh_db = false;
+ int num_threads = FLAGS_threads;
+
+ if (name == Slice("fillseq")) {
+ fresh_db = true;
+ method = &Benchmark::WriteSeq;
+ } else if (name == Slice("fillbatch")) {
+ fresh_db = true;
+ entries_per_batch_ = 1000;
+ method = &Benchmark::WriteSeq;
+ } else if (name == Slice("fillrandom")) {
+ fresh_db = true;
+ method = &Benchmark::WriteRandom;
+ } else if (name == Slice("overwrite")) {
+ fresh_db = false;
+ method = &Benchmark::WriteRandom;
+ } else if (name == Slice("fillsync")) {
+ fresh_db = true;
+ num_ /= 1000;
+ write_options_.sync = true;
+ method = &Benchmark::WriteRandom;
+ } else if (name == Slice("fill100K")) {
+ fresh_db = true;
+ num_ /= 1000;
+ value_size_ = 100 * 1000;
+ method = &Benchmark::WriteRandom;
+ } else if (name == Slice("readseq")) {
+ method = &Benchmark::ReadSequential;
+ } else if (name == Slice("readreverse")) {
+ method = &Benchmark::ReadReverse;
+ } else if (name == Slice("readrandom")) {
+ method = &Benchmark::ReadRandom;
+ } else if (name == Slice("readmissing")) {
+ method = &Benchmark::ReadMissing;
+ } else if (name == Slice("seekrandom")) {
+ method = &Benchmark::SeekRandom;
+ } else if (name == Slice("readhot")) {
+ method = &Benchmark::ReadHot;
+ } else if (name == Slice("readrandomsmall")) {
+ reads_ /= 1000;
+ method = &Benchmark::ReadRandom;
+ } else if (name == Slice("deleteseq")) {
+ method = &Benchmark::DeleteSeq;
+ } else if (name == Slice("deleterandom")) {
+ method = &Benchmark::DeleteRandom;
+ } else if (name == Slice("readwhilewriting")) {
+ num_threads++; // Add extra thread for writing
+ method = &Benchmark::ReadWhileWriting;
+ } else if (name == Slice("compact")) {
+ method = &Benchmark::Compact;
+ } else if (name == Slice("crc32c")) {
+ method = &Benchmark::Crc32c;
+ } else if (name == Slice("acquireload")) {
+ method = &Benchmark::AcquireLoad;
+ } else if (name == Slice("snappycomp")) {
+ method = &Benchmark::SnappyCompress;
+ } else if (name == Slice("snappyuncomp")) {
+ method = &Benchmark::SnappyUncompress;
+ } else if (name == Slice("heapprofile")) {
+ HeapProfile();
+ } else if (name == Slice("stats")) {
+ PrintStats("leveldb.stats");
+ } else if (name == Slice("sstables")) {
+ PrintStats("leveldb.sstables");
+ } else {
+ if (name != Slice()) { // No error message for empty name
+ fprintf(stderr, "unknown benchmark '%s'\n", name.ToString().c_str());
+ }
+ }
+
+ if (fresh_db) {
+ if (FLAGS_use_existing_db) {
+ fprintf(stdout, "%-12s : skipped (--use_existing_db is true)\n",
+ name.ToString().c_str());
+ method = NULL;
+ } else {
+ delete db_;
+ db_ = NULL;
+ DestroyDB(FLAGS_db, Options());
+ Open();
+ }
+ }
+
+ if (method != NULL) {
+ RunBenchmark(num_threads, name, method);
+ }
+ }
+ }
+
+ private:
+ struct ThreadArg {
+ Benchmark* bm;
+ SharedState* shared;
+ ThreadState* thread;
+ void (Benchmark::*method)(ThreadState*);
+ };
+
+ static void ThreadBody(void* v) {
+ ThreadArg* arg = reinterpret_cast<ThreadArg*>(v);
+ SharedState* shared = arg->shared;
+ ThreadState* thread = arg->thread;
+ {
+ MutexLock l(&shared->mu);
+ shared->num_initialized++;
+ if (shared->num_initialized >= shared->total) {
+ shared->cv.SignalAll();
+ }
+ while (!shared->start) {
+ shared->cv.Wait();
+ }
+ }
+
+ thread->stats.Start();
+ (arg->bm->*(arg->method))(thread);
+ thread->stats.Stop();
+
+ {
+ MutexLock l(&shared->mu);
+ shared->num_done++;
+ if (shared->num_done >= shared->total) {
+ shared->cv.SignalAll();
+ }
+ }
+ }
+
+ void RunBenchmark(int n, Slice name,
+ void (Benchmark::*method)(ThreadState*)) {
+ SharedState shared;
+ shared.total = n;
+ shared.num_initialized = 0;
+ shared.num_done = 0;
+ shared.start = false;
+
+ ThreadArg* arg = new ThreadArg[n];
+ for (int i = 0; i < n; i++) {
+ arg[i].bm = this;
+ arg[i].method = method;
+ arg[i].shared = &shared;
+ arg[i].thread = new ThreadState(i);
+ arg[i].thread->shared = &shared;
+ Env::Default()->StartThread(ThreadBody, &arg[i]);
+ }
+
+ shared.mu.Lock();
+ while (shared.num_initialized < n) {
+ shared.cv.Wait();
+ }
+
+ shared.start = true;
+ shared.cv.SignalAll();
+ while (shared.num_done < n) {
+ shared.cv.Wait();
+ }
+ shared.mu.Unlock();
+
+ for (int i = 1; i < n; i++) {
+ arg[0].thread->stats.Merge(arg[i].thread->stats);
+ }
+ arg[0].thread->stats.Report(name);
+
+ for (int i = 0; i < n; i++) {
+ delete arg[i].thread;
+ }
+ delete[] arg;
+ }
+
+ void Crc32c(ThreadState* thread) {
+ // Checksum about 500MB of data total
+ const int size = 4096;
+ const char* label = "(4K per op)";
+ std::string data(size, 'x');
+ int64_t bytes = 0;
+ uint32_t crc = 0;
+ while (bytes < 500 * 1048576) {
+ crc = crc32c::Value(data.data(), size);
+ thread->stats.FinishedSingleOp();
+ bytes += size;
+ }
+ // Print so result is not dead
+ fprintf(stderr, "... crc=0x%x\r", static_cast<unsigned int>(crc));
+
+ thread->stats.AddBytes(bytes);
+ thread->stats.AddMessage(label);
+ }
+
+ void AcquireLoad(ThreadState* thread) {
+ int dummy;
+ port::AtomicPointer ap(&dummy);
+ int count = 0;
+ void *ptr = NULL;
+ thread->stats.AddMessage("(each op is 1000 loads)");
+ while (count < 100000) {
+ for (int i = 0; i < 1000; i++) {
+ ptr = ap.Acquire_Load();
+ }
+ count++;
+ thread->stats.FinishedSingleOp();
+ }
+ if (ptr == NULL) exit(1); // Disable unused variable warning.
+ }
+
+ void SnappyCompress(ThreadState* thread) {
+ RandomGenerator gen;
+ Slice input = gen.Generate(Options().block_size);
+ int64_t bytes = 0;
+ int64_t produced = 0;
+ bool ok = true;
+ std::string compressed;
+ while (ok && bytes < 1024 * 1048576) { // Compress 1G
+ ok = port::Snappy_Compress(input.data(), input.size(), &compressed);
+ produced += compressed.size();
+ bytes += input.size();
+ thread->stats.FinishedSingleOp();
+ }
+
+ if (!ok) {
+ thread->stats.AddMessage("(snappy failure)");
+ } else {
+ char buf[100];
+ snprintf(buf, sizeof(buf), "(output: %.1f%%)",
+ (produced * 100.0) / bytes);
+ thread->stats.AddMessage(buf);
+ thread->stats.AddBytes(bytes);
+ }
+ }
+
+ void SnappyUncompress(ThreadState* thread) {
+ RandomGenerator gen;
+ Slice input = gen.Generate(Options().block_size);
+ std::string compressed;
+ bool ok = port::Snappy_Compress(input.data(), input.size(), &compressed);
+ int64_t bytes = 0;
+ char* uncompressed = new char[input.size()];
+ while (ok && bytes < 1024 * 1048576) { // Compress 1G
+ ok = port::Snappy_Uncompress(compressed.data(), compressed.size(),
+ uncompressed);
+ bytes += input.size();
+ thread->stats.FinishedSingleOp();
+ }
+ delete[] uncompressed;
+
+ if (!ok) {
+ thread->stats.AddMessage("(snappy failure)");
+ } else {
+ thread->stats.AddBytes(bytes);
+ }
+ }
+
+ void Open() {
+ assert(db_ == NULL);
+ Options options;
+ options.create_if_missing = !FLAGS_use_existing_db;
+ options.block_cache = cache_;
+ options.write_buffer_size = FLAGS_write_buffer_size;
+ options.max_open_files = FLAGS_open_files;
+ options.filter_policy = filter_policy_;
+ Status s = DB::Open(options, FLAGS_db, &db_);
+ if (!s.ok()) {
+ fprintf(stderr, "open error: %s\n", s.ToString().c_str());
+ exit(1);
+ }
+ }
+
+ void WriteSeq(ThreadState* thread) {
+ DoWrite(thread, true);
+ }
+
+ void WriteRandom(ThreadState* thread) {
+ DoWrite(thread, false);
+ }
+
+ void DoWrite(ThreadState* thread, bool seq) {
+ if (num_ != FLAGS_num) {
+ char msg[100];
+ snprintf(msg, sizeof(msg), "(%d ops)", num_);
+ thread->stats.AddMessage(msg);
+ }
+
+ RandomGenerator gen;
+ WriteBatch batch;
+ Status s;
+ int64_t bytes = 0;
+ for (int i = 0; i < num_; i += entries_per_batch_) {
+ batch.Clear();
+ for (int j = 0; j < entries_per_batch_; j++) {
+ const int k = seq ? i+j : (thread->rand.Next() % FLAGS_num);
+ char key[100];
+ snprintf(key, sizeof(key), "%016d", k);
+ batch.Put(key, gen.Generate(value_size_));
+ bytes += value_size_ + strlen(key);
+ thread->stats.FinishedSingleOp();
+ }
+ s = db_->Write(write_options_, &batch);
+ if (!s.ok()) {
+ fprintf(stderr, "put error: %s\n", s.ToString().c_str());
+ exit(1);
+ }
+ }
+ thread->stats.AddBytes(bytes);
+ }
+
+ void ReadSequential(ThreadState* thread) {
+ Iterator* iter = db_->NewIterator(ReadOptions());
+ int i = 0;
+ int64_t bytes = 0;
+ for (iter->SeekToFirst(); i < reads_ && iter->Valid(); iter->Next()) {
+ bytes += iter->key().size() + iter->value().size();
+ thread->stats.FinishedSingleOp();
+ ++i;
+ }
+ delete iter;
+ thread->stats.AddBytes(bytes);
+ }
+
+ void ReadReverse(ThreadState* thread) {
+ Iterator* iter = db_->NewIterator(ReadOptions());
+ int i = 0;
+ int64_t bytes = 0;
+ for (iter->SeekToLast(); i < reads_ && iter->Valid(); iter->Prev()) {
+ bytes += iter->key().size() + iter->value().size();
+ thread->stats.FinishedSingleOp();
+ ++i;
+ }
+ delete iter;
+ thread->stats.AddBytes(bytes);
+ }
+
+ void ReadRandom(ThreadState* thread) {
+ ReadOptions options;
+ std::string value;
+ int found = 0;
+ for (int i = 0; i < reads_; i++) {
+ char key[100];
+ const int k = thread->rand.Next() % FLAGS_num;
+ snprintf(key, sizeof(key), "%016d", k);
+ if (db_->Get(options, key, &value).ok()) {
+ found++;
+ }
+ thread->stats.FinishedSingleOp();
+ }
+ char msg[100];
+ snprintf(msg, sizeof(msg), "(%d of %d found)", found, num_);
+ thread->stats.AddMessage(msg);
+ }
+
+ void ReadMissing(ThreadState* thread) {
+ ReadOptions options;
+ std::string value;
+ for (int i = 0; i < reads_; i++) {
+ char key[100];
+ const int k = thread->rand.Next() % FLAGS_num;
+ snprintf(key, sizeof(key), "%016d.", k);
+ db_->Get(options, key, &value);
+ thread->stats.FinishedSingleOp();
+ }
+ }
+
+ void ReadHot(ThreadState* thread) {
+ ReadOptions options;
+ std::string value;
+ const int range = (FLAGS_num + 99) / 100;
+ for (int i = 0; i < reads_; i++) {
+ char key[100];
+ const int k = thread->rand.Next() % range;
+ snprintf(key, sizeof(key), "%016d", k);
+ db_->Get(options, key, &value);
+ thread->stats.FinishedSingleOp();
+ }
+ }
+
+ void SeekRandom(ThreadState* thread) {
+ ReadOptions options;
+ std::string value;
+ int found = 0;
+ for (int i = 0; i < reads_; i++) {
+ Iterator* iter = db_->NewIterator(options);
+ char key[100];
+ const int k = thread->rand.Next() % FLAGS_num;
+ snprintf(key, sizeof(key), "%016d", k);
+ iter->Seek(key);
+ if (iter->Valid() && iter->key() == key) found++;
+ delete iter;
+ thread->stats.FinishedSingleOp();
+ }
+ char msg[100];
+ snprintf(msg, sizeof(msg), "(%d of %d found)", found, num_);
+ thread->stats.AddMessage(msg);
+ }
+
+ void DoDelete(ThreadState* thread, bool seq) {
+ RandomGenerator gen;
+ WriteBatch batch;
+ Status s;
+ for (int i = 0; i < num_; i += entries_per_batch_) {
+ batch.Clear();
+ for (int j = 0; j < entries_per_batch_; j++) {
+ const int k = seq ? i+j : (thread->rand.Next() % FLAGS_num);
+ char key[100];
+ snprintf(key, sizeof(key), "%016d", k);
+ batch.Delete(key);
+ thread->stats.FinishedSingleOp();
+ }
+ s = db_->Write(write_options_, &batch);
+ if (!s.ok()) {
+ fprintf(stderr, "del error: %s\n", s.ToString().c_str());
+ exit(1);
+ }
+ }
+ }
+
+ void DeleteSeq(ThreadState* thread) {
+ DoDelete(thread, true);
+ }
+
+ void DeleteRandom(ThreadState* thread) {
+ DoDelete(thread, false);
+ }
+
+ void ReadWhileWriting(ThreadState* thread) {
+ if (thread->tid > 0) {
+ ReadRandom(thread);
+ } else {
+ // Special thread that keeps writing until other threads are done.
+ RandomGenerator gen;
+ while (true) {
+ {
+ MutexLock l(&thread->shared->mu);
+ if (thread->shared->num_done + 1 >= thread->shared->num_initialized) {
+ // Other threads have finished
+ break;
+ }
+ }
+
+ const int k = thread->rand.Next() % FLAGS_num;
+ char key[100];
+ snprintf(key, sizeof(key), "%016d", k);
+ Status s = db_->Put(write_options_, key, gen.Generate(value_size_));
+ if (!s.ok()) {
+ fprintf(stderr, "put error: %s\n", s.ToString().c_str());
+ exit(1);
+ }
+ }
+
+ // Do not count any of the preceding work/delay in stats.
+ thread->stats.Start();
+ }
+ }
+
+ void Compact(ThreadState* thread) {
+ db_->CompactRange(NULL, NULL);
+ }
+
+ void PrintStats(const char* key) {
+ std::string stats;
+ if (!db_->GetProperty(key, &stats)) {
+ stats = "(failed)";
+ }
+ fprintf(stdout, "\n%s\n", stats.c_str());
+ }
+
+ static void WriteToFile(void* arg, const char* buf, int n) {
+ reinterpret_cast<WritableFile*>(arg)->Append(Slice(buf, n));
+ }
+
+ void HeapProfile() {
+ char fname[100];
+ snprintf(fname, sizeof(fname), "%s/heap-%04d", FLAGS_db, ++heap_counter_);
+ WritableFile* file;
+ Status s = Env::Default()->NewWritableFile(fname, &file);
+ if (!s.ok()) {
+ fprintf(stderr, "%s\n", s.ToString().c_str());
+ return;
+ }
+ bool ok = port::GetHeapProfile(WriteToFile, file);
+ delete file;
+ if (!ok) {
+ fprintf(stderr, "heap profiling not supported\n");
+ Env::Default()->DeleteFile(fname);
+ }
+ }
+};
+
+} // namespace leveldb
+
+int main(int argc, char** argv) {
+ FLAGS_write_buffer_size = leveldb::Options().write_buffer_size;
+ FLAGS_open_files = leveldb::Options().max_open_files;
+ std::string default_db_path;
+
+ for (int i = 1; i < argc; i++) {
+ double d;
+ int n;
+ char junk;
+ if (leveldb::Slice(argv[i]).starts_with("--benchmarks=")) {
+ FLAGS_benchmarks = argv[i] + strlen("--benchmarks=");
+ } else if (sscanf(argv[i], "--compression_ratio=%lf%c", &d, &junk) == 1) {
+ FLAGS_compression_ratio = d;
+ } else if (sscanf(argv[i], "--histogram=%d%c", &n, &junk) == 1 &&
+ (n == 0 || n == 1)) {
+ FLAGS_histogram = n;
+ } else if (sscanf(argv[i], "--use_existing_db=%d%c", &n, &junk) == 1 &&
+ (n == 0 || n == 1)) {
+ FLAGS_use_existing_db = n;
+ } else if (sscanf(argv[i], "--num=%d%c", &n, &junk) == 1) {
+ FLAGS_num = n;
+ } else if (sscanf(argv[i], "--reads=%d%c", &n, &junk) == 1) {
+ FLAGS_reads = n;
+ } else if (sscanf(argv[i], "--threads=%d%c", &n, &junk) == 1) {
+ FLAGS_threads = n;
+ } else if (sscanf(argv[i], "--value_size=%d%c", &n, &junk) == 1) {
+ FLAGS_value_size = n;
+ } else if (sscanf(argv[i], "--write_buffer_size=%d%c", &n, &junk) == 1) {
+ FLAGS_write_buffer_size = n;
+ } else if (sscanf(argv[i], "--cache_size=%d%c", &n, &junk) == 1) {
+ FLAGS_cache_size = n;
+ } else if (sscanf(argv[i], "--bloom_bits=%d%c", &n, &junk) == 1) {
+ FLAGS_bloom_bits = n;
+ } else if (sscanf(argv[i], "--open_files=%d%c", &n, &junk) == 1) {
+ FLAGS_open_files = n;
+ } else if (strncmp(argv[i], "--db=", 5) == 0) {
+ FLAGS_db = argv[i] + 5;
+ } else {
+ fprintf(stderr, "Invalid flag '%s'\n", argv[i]);
+ exit(1);
+ }
+ }
+
+ // Choose a location for the test database if none given with --db=<path>
+ if (FLAGS_db == NULL) {
+ leveldb::Env::Default()->GetTestDirectory(&default_db_path);
+ default_db_path += "/dbbench";
+ FLAGS_db = default_db_path.c_str();
+ }
+
+ leveldb::Benchmark benchmark;
+ benchmark.Run();
+ return 0;
+}
diff --git a/clipper/HyperLevelDB/db/db_impl.cc b/clipper/HyperLevelDB/db/db_impl.cc
new file mode 100644
index 0000000..2e18d00
--- /dev/null
+++ b/clipper/HyperLevelDB/db/db_impl.cc
@@ -0,0 +1,1991 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "db/db_impl.h"
+
+#include <algorithm>
+#include <set>
+#include <string>
+#include <stdint.h>
+#include <stdio.h>
+#include <vector>
+#include "db/builder.h"
+#include "db/db_iter.h"
+#include "db/dbformat.h"
+#include "db/filename.h"
+#include "db/log_reader.h"
+#include "db/log_writer.h"
+#include "db/memtable.h"
+#include "db/replay_iterator.h"
+#include "db/table_cache.h"
+#include "db/version_set.h"
+#include "db/write_batch_internal.h"
+#include "hyperleveldb/db.h"
+#include "hyperleveldb/env.h"
+#include "hyperleveldb/replay_iterator.h"
+#include "hyperleveldb/status.h"
+#include "hyperleveldb/table.h"
+#include "hyperleveldb/table_builder.h"
+#include "port/port.h"
+#include "table/block.h"
+#include "table/merger.h"
+#include "table/two_level_iterator.h"
+#include "util/coding.h"
+#include "util/logging.h"
+#include "util/mutexlock.h"
+
+#include <iostream>
+namespace leveldb {
+
+const int kStraightReads = 50;
+
+const int kNumNonTableCacheFiles = 10;
+
+struct DBImpl::CompactionState {
+ Compaction* const compaction;
+
+ // Sequence numbers < smallest_snapshot are not significant since we
+ // will never have to service a snapshot below smallest_snapshot.
+ // Therefore if we have seen a sequence number S <= smallest_snapshot,
+ // we can drop all entries for the same key with sequence numbers < S.
+ SequenceNumber smallest_snapshot;
+
+ // Files produced by compaction
+ struct Output {
+ uint64_t number;
+ uint64_t file_size;
+ InternalKey smallest, largest;
+ };
+ std::vector<Output> outputs;
+
+ // State kept for output being generated
+ WritableFile* outfile;
+ TableBuilder* builder;
+
+ uint64_t total_bytes;
+
+ Output* current_output() { return &outputs[outputs.size()-1]; }
+
+ explicit CompactionState(Compaction* c)
+ : compaction(c),
+ outfile(NULL),
+ builder(NULL),
+ total_bytes(0) {
+ }
+};
+
+// Fix user-supplied options to be reasonable
+template <class T,class V>
+static void ClipToRange(T* ptr, V minvalue, V maxvalue) {
+ if (static_cast<V>(*ptr) > maxvalue) *ptr = maxvalue;
+ if (static_cast<V>(*ptr) < minvalue) *ptr = minvalue;
+}
+Options SanitizeOptions(const std::string& dbname,
+ const InternalKeyComparator* icmp,
+ const InternalFilterPolicy* ipolicy,
+ const Options& src) {
+ Options result = src;
+ result.comparator = icmp;
+ result.filter_policy = (src.filter_policy != NULL) ? ipolicy : NULL;
+ ClipToRange(&result.max_open_files, 64 + kNumNonTableCacheFiles, 50000);
+ ClipToRange(&result.write_buffer_size, 64<<10, 1<<30);
+ ClipToRange(&result.block_size, 1<<10, 4<<20);
+ if (result.info_log == NULL) {
+ // Open a log file in the same directory as the db
+ src.env->CreateDir(dbname); // In case it does not exist
+ src.env->RenameFile(InfoLogFileName(dbname), OldInfoLogFileName(dbname));
+ Status s = src.env->NewLogger(InfoLogFileName(dbname), &result.info_log);
+ if (!s.ok()) {
+ // No place suitable for logging
+ result.info_log = NULL;
+ }
+ }
+ if (result.block_cache == NULL) {
+ result.block_cache = NewLRUCache(8 << 20);
+ }
+ return result;
+}
+
+DBImpl::DBImpl(const Options& raw_options, const std::string& dbname)
+ : env_(raw_options.env),
+ internal_comparator_(raw_options.comparator),
+ internal_filter_policy_(raw_options.filter_policy),
+ options_(SanitizeOptions(dbname, &internal_comparator_,
+ &internal_filter_policy_, raw_options)),
+ owns_info_log_(options_.info_log != raw_options.info_log),
+ owns_cache_(options_.block_cache != raw_options.block_cache),
+ dbname_(dbname),
+ db_lock_(NULL),
+ shutting_down_(NULL),
+ mem_(new MemTable(internal_comparator_)),
+ imm_(NULL),
+ logfile_(),
+ logfile_number_(0),
+ log_(),
+ seed_(0),
+ writers_upper_(0),
+ writers_tail_(NULL),
+ allow_background_activity_(false),
+ num_bg_threads_(0),
+ bg_fg_cv_(&mutex_),
+ bg_compaction_cv_(&mutex_),
+ bg_memtable_cv_(&mutex_),
+ bg_optimistic_trip_(false),
+ bg_optimistic_cv_(&mutex_),
+ bg_log_cv_(&mutex_),
+ bg_log_occupied_(false),
+ manual_compaction_(NULL),
+ manual_garbage_cutoff_(raw_options.manual_garbage_collection ?
+ SequenceNumber(0) : kMaxSequenceNumber),
+ straight_reads_(0),
+ backup_cv_(&mutex_),
+ backup_in_progress_(),
+ backup_deferred_delete_() {
+ mutex_.Lock();
+ mem_->Ref();
+ has_imm_.Release_Store(NULL);
+ backup_in_progress_.Release_Store(NULL);
+ env_->StartThread(&DBImpl::CompactMemTableWrapper, this);
+ env_->StartThread(&DBImpl::CompactOptimisticWrapper, this);
+ env_->StartThread(&DBImpl::CompactLevelWrapper, this);
+ num_bg_threads_ = 3;
+
+ // Reserve ten files or so for other uses and give the rest to TableCache.
+ const int table_cache_size = options_.max_open_files - kNumNonTableCacheFiles;
+ table_cache_ = new TableCache(dbname_, &options_, table_cache_size);
+ versions_ = new VersionSet(dbname_, &options_, table_cache_,
+ &internal_comparator_);
+
+ for (int i = 0; i < leveldb::config::kNumLevels; ++i) {
+ levels_locked_[i] = false;
+ }
+ mutex_.Unlock();
+}
+
+DBImpl::~DBImpl() {
+ // Wait for background work to finish
+ mutex_.Lock();
+ shutting_down_.Release_Store(this); // Any non-NULL value is ok
+ bg_optimistic_cv_.SignalAll();
+ bg_compaction_cv_.SignalAll();
+ bg_memtable_cv_.SignalAll();
+ while (num_bg_threads_ > 0) {
+ bg_fg_cv_.Wait();
+ }
+ mutex_.Unlock();
+
+ if (db_lock_ != NULL) {
+ env_->UnlockFile(db_lock_);
+ }
+
+ delete versions_;
+ if (mem_ != NULL) mem_->Unref();
+ if (imm_ != NULL) imm_->Unref();
+ log_.reset();
+ logfile_.reset();
+ delete table_cache_;
+
+ if (owns_info_log_) {
+ delete options_.info_log;
+ }
+ if (owns_cache_) {
+ delete options_.block_cache;
+ }
+}
+
+Status DBImpl::NewDB() {
+ VersionEdit new_db;
+ new_db.SetComparatorName(user_comparator()->Name());
+ new_db.SetLogNumber(0);
+ new_db.SetNextFile(2);
+ new_db.SetLastSequence(0);
+
+ const std::string manifest = DescriptorFileName(dbname_, 1);
+ WritableFile* file;
+ Status s = env_->NewWritableFile(manifest, &file);
+ if (!s.ok()) {
+ return s;
+ }
+ {
+ log::Writer log(file);
+ std::string record;
+ new_db.EncodeTo(&record);
+ s = log.AddRecord(record);
+ if (s.ok()) {
+ s = file->Close();
+ }
+ }
+ delete file;
+ if (s.ok()) {
+ // Make "CURRENT" file that points to the new manifest file.
+ s = SetCurrentFile(env_, dbname_, 1);
+ } else {
+ env_->DeleteFile(manifest);
+ }
+ return s;
+}
+
+void DBImpl::MaybeIgnoreError(Status* s) const {
+ if (s->ok() || options_.paranoid_checks) {
+ // No change needed
+ } else {
+ Log(options_.info_log, "Ignoring error %s", s->ToString().c_str());
+ *s = Status::OK();
+ }
+}
+
+void DBImpl::DeleteObsoleteFiles() {
+ // Defer if there's background activity
+ mutex_.AssertHeld();
+ if (backup_in_progress_.Acquire_Load() != NULL) {
+ backup_deferred_delete_ = true;
+ return;
+ }
+
+ // If you ever release mutex_ in this function, you'll need to do more work in
+ // LiveBackup
+
+ if (!bg_error_.ok()) {
+ // After a background error, we don't know whether a new version may
+ // or may not have been committed, so we cannot safely garbage collect.
+ return;
+ }
+
+ // Make a set of all of the live files
+ std::set<uint64_t> live = pending_outputs_;
+ versions_->AddLiveFiles(&live);
+
+ std::vector<std::string> filenames;
+ env_->GetChildren(dbname_, &filenames); // Ignoring errors on purpose
+ uint64_t number;
+ FileType type;
+ for (size_t i = 0; i < filenames.size(); i++) {
+ if (ParseFileName(filenames[i], &number, &type)) {
+ bool keep = true;
+ switch (type) {
+ case kLogFile:
+ keep = ((number >= versions_->LogNumber()) ||
+ (number == versions_->PrevLogNumber()));
+ break;
+ case kDescriptorFile:
+ // Keep my manifest file, and any newer incarnations'
+ // (in case there is a race that allows other incarnations)
+ keep = (number >= versions_->ManifestFileNumber());
+ break;
+ case kTableFile:
+ keep = (live.find(number) != live.end());
+ break;
+ case kTempFile:
+ // Any temp files that are currently being written to must
+ // be recorded in pending_outputs_, which is inserted into "live"
+ keep = (live.find(number) != live.end());
+ break;
+ case kCurrentFile:
+ case kDBLockFile:
+ case kInfoLogFile:
+ keep = true;
+ break;
+ }
+
+ if (!keep) {
+ if (type == kTableFile) {
+ table_cache_->Evict(number);
+ }
+ Log(options_.info_log, "Delete type=%d #%lld\n",
+ int(type),
+ static_cast<unsigned long long>(number));
+ env_->DeleteFile(dbname_ + "/" + filenames[i]);
+ }
+ }
+ }
+}
+
+Status DBImpl::Recover(VersionEdit* edit) {
+ mutex_.AssertHeld();
+
+ // Ignore error from CreateDir since the creation of the DB is
+ // committed only when the descriptor is created, and this directory
+ // may already exist from a previous failed creation attempt.
+ env_->CreateDir(dbname_);
+ assert(db_lock_ == NULL);
+ Status s = env_->LockFile(LockFileName(dbname_), &db_lock_);
+ if (!s.ok()) {
+ return s;
+ }
+
+ if (!env_->FileExists(CurrentFileName(dbname_))) {
+ if (options_.create_if_missing) {
+ s = NewDB();
+ if (!s.ok()) {
+ return s;
+ }
+ } else {
+ return Status::InvalidArgument(
+ dbname_, "does not exist (create_if_missing is false)");
+ }
+ } else {
+ if (options_.error_if_exists) {
+ return Status::InvalidArgument(
+ dbname_, "exists (error_if_exists is true)");
+ }
+ }
+
+ s = versions_->Recover();
+ if (s.ok()) {
+ SequenceNumber max_sequence(0);
+
+ // Recover from all newer log files than the ones named in the
+ // descriptor (new log files may have been added by the previous
+ // incarnation without registering them in the descriptor).
+ //
+ // Note that PrevLogNumber() is no longer used, but we pay
+ // attention to it in case we are recovering a database
+ // produced by an older version of leveldb.
+ const uint64_t min_log = versions_->LogNumber();
+ const uint64_t prev_log = versions_->PrevLogNumber();
+ std::vector<std::string> filenames;
+ s = env_->GetChildren(dbname_, &filenames);
+ if (!s.ok()) {
+ return s;
+ }
+ std::set<uint64_t> expected;
+ versions_->AddLiveFiles(&expected);
+ uint64_t number;
+ FileType type;
+ std::vector<uint64_t> logs;
+ for (size_t i = 0; i < filenames.size(); i++) {
+ if (ParseFileName(filenames[i], &number, &type)) {
+ expected.erase(number);
+ if (type == kLogFile && ((number >= min_log) || (number == prev_log)))
+ logs.push_back(number);
+ }
+ }
+ if (!expected.empty()) {
+ char buf[50];
+ snprintf(buf, sizeof(buf), "%d missing files; e.g.",
+ static_cast<int>(expected.size()));
+ return Status::Corruption(buf, SSTTableFileName(dbname_, *(expected.begin())));
+ }
+
+ // Recover in the order in which the logs were generated
+ std::sort(logs.begin(), logs.end());
+ for (size_t i = 0; i < logs.size(); i++) {
+ s = RecoverLogFile(logs[i], edit, &max_sequence);
+
+ // The previous incarnation may not have written any MANIFEST
+ // records after allocating this log number. So we manually
+ // update the file number allocation counter in VersionSet.
+ versions_->MarkFileNumberUsed(logs[i]);
+ }
+
+ if (s.ok()) {
+ if (versions_->LastSequence() < max_sequence) {
+ versions_->SetLastSequence(max_sequence);
+ }
+ }
+ }
+
+ return s;
+}
+
+Status DBImpl::RecoverLogFile(uint64_t log_number,
+ VersionEdit* edit,
+ SequenceNumber* max_sequence) {
+ struct LogReporter : public log::Reader::Reporter {
+ Env* env;
+ Logger* info_log;
+ const char* fname;
+ Status* status; // NULL if options_.paranoid_checks==false
+ virtual void Corruption(size_t bytes, const Status& s) {
+ Log(info_log, "%s%s: dropping %d bytes; %s",
+ (this->status == NULL ? "(ignoring error) " : ""),
+ fname, static_cast<int>(bytes), s.ToString().c_str());
+ if (this->status != NULL && this->status->ok()) *this->status = s;
+ }
+ };
+
+ mutex_.AssertHeld();
+
+ // Open the log file
+ std::string fname = LogFileName(dbname_, log_number);
+ SequentialFile* file;
+ Status status = env_->NewSequentialFile(fname, &file);
+ if (!status.ok()) {
+ MaybeIgnoreError(&status);
+ return status;
+ }
+
+ // Create the log reader.
+ LogReporter reporter;
+ reporter.env = env_;
+ reporter.info_log = options_.info_log;
+ reporter.fname = fname.c_str();
+ reporter.status = (options_.paranoid_checks ? &status : NULL);
+ // We intentially make log::Reader do checksumming even if
+ // paranoid_checks==false so that corruptions cause entire commits
+ // to be skipped instead of propagating bad information (like overly
+ // large sequence numbers).
+ log::Reader reader(file, &reporter, true/*checksum*/,
+ 0/*initial_offset*/);
+ Log(options_.info_log, "Recovering log #%llu",
+ (unsigned long long) log_number);
+
+ // Read all the records and add to a memtable
+ std::string scratch;
+ Slice record;
+ WriteBatch batch;
+ MemTable* mem = NULL;
+ while (reader.ReadRecord(&record, &scratch) &&
+ status.ok()) {
+ if (record.size() < 12) {
+ reporter.Corruption(
+ record.size(), Status::Corruption("log record too small"));
+ continue;
+ }
+ WriteBatchInternal::SetContents(&batch, record);
+
+ if (mem == NULL) {
+ mem = new MemTable(internal_comparator_);
+ mem->Ref();
+ }
+ status = WriteBatchInternal::InsertInto(&batch, mem);
+ MaybeIgnoreError(&status);
+ if (!status.ok()) {
+ break;
+ }
+ const SequenceNumber last_seq =
+ WriteBatchInternal::Sequence(&batch) +
+ WriteBatchInternal::Count(&batch) - 1;
+ if (last_seq > *max_sequence) {
+ *max_sequence = last_seq;
+ }
+
+ if (mem->ApproximateMemoryUsage() > options_.write_buffer_size) {
+ status = WriteLevel0Table(mem, edit, NULL, NULL);
+ if (!status.ok()) {
+ // Reflect errors immediately so that conditions like full
+ // file-systems cause the DB::Open() to fail.
+ break;
+ }
+ mem->Unref();
+ mem = NULL;
+ }
+ }
+
+ if (status.ok() && mem != NULL) {
+ status = WriteLevel0Table(mem, edit, NULL, NULL);
+ // Reflect errors immediately so that conditions like full
+ // file-systems cause the DB::Open() to fail.
+ }
+
+ if (mem != NULL) mem->Unref();
+ delete file;
+ return status;
+}
+
+Status DBImpl::WriteLevel0Table(MemTable* mem, VersionEdit* edit,
+ Version* base, uint64_t* number) {
+ mutex_.AssertHeld();
+ const uint64_t start_micros = env_->NowMicros();
+ FileMetaData meta;
+ meta.number = versions_->NewFileNumber();
+ if (number) {
+ *number = meta.number;
+ }
+ pending_outputs_.insert(meta.number);
+ Iterator* iter = mem->NewIterator();
+ Log(options_.info_log, "Level-0 table #%llu: started",
+ (unsigned long long) meta.number);
+
+ Status s;
+ {
+ mutex_.Unlock();
+ s = BuildTable(dbname_, env_, options_, table_cache_, iter, &meta);
+ mutex_.Lock();
+ }
+
+ Log(options_.info_log, "Level-0 table #%llu: %lld bytes %s",
+ (unsigned long long) meta.number,
+ (unsigned long long) meta.file_size,
+ s.ToString().c_str());
+ delete iter;
+
+ // Note that if file_size is zero, the file has been deleted and
+ // should not be added to the manifest.
+ int level = 0;
+ if (s.ok() && meta.file_size > 0) {
+ const Slice min_user_key = meta.smallest.user_key();
+ const Slice max_user_key = meta.largest.user_key();
+ if (base != NULL) {
+ level = base->PickLevelForMemTableOutput(min_user_key, max_user_key);
+ while (level > 0 && levels_locked_[level]) {
+ --level;
+ }
+ }
+ edit->AddFile(level, meta.number, meta.file_size,
+ meta.smallest, meta.largest);
+ }
+
+ CompactionStats stats;
+ stats.micros = env_->NowMicros() - start_micros;
+ stats.bytes_written = meta.file_size;
+ stats_[level].Add(stats);
+ return s;
+}
+
+void DBImpl::CompactMemTableThread() {
+ MutexLock l(&mutex_);
+ while (!shutting_down_.Acquire_Load() && !allow_background_activity_) {
+ bg_memtable_cv_.Wait();
+ }
+ while (!shutting_down_.Acquire_Load()) {
+ while (!shutting_down_.Acquire_Load() && imm_ == NULL) {
+ bg_memtable_cv_.Wait();
+ }
+ if (shutting_down_.Acquire_Load()) {
+ break;
+ }
+
+ // Save the contents of the memtable as a new Table
+ VersionEdit edit;
+ Version* base = versions_->current();
+ base->Ref();
+ uint64_t number;
+ Status s = WriteLevel0Table(imm_, &edit, base, &number);
+ base->Unref(); base = NULL;
+
+ if (s.ok() && shutting_down_.Acquire_Load()) {
+ s = Status::IOError("Deleting DB during memtable compaction");
+ }
+
+ // Replace immutable memtable with the generated Table
+ if (s.ok()) {
+ edit.SetPrevLogNumber(0);
+ edit.SetLogNumber(logfile_number_); // Earlier logs no longer needed
+ s = versions_->LogAndApply(&edit, &mutex_, &bg_log_cv_, &bg_log_occupied_);
+ }
+
+ pending_outputs_.erase(number);
+
+ if (s.ok()) {
+ // Commit to the new state
+ imm_->Unref();
+ imm_ = NULL;
+ has_imm_.Release_Store(NULL);
+ bg_fg_cv_.SignalAll();
+ bg_compaction_cv_.Signal();
+ DeleteObsoleteFiles();
+ } else {
+ RecordBackgroundError(s);
+ continue;
+ }
+
+ if (!shutting_down_.Acquire_Load() && !s.ok()) {
+ // Wait a little bit before retrying background compaction in
+ // case this is an environmental problem and we do not want to
+ // chew up resources for failed compactions for the duration of
+ // the problem.
+ bg_fg_cv_.SignalAll(); // In case a waiter can proceed despite the error
+ Log(options_.info_log, "Waiting after memtable compaction error: %s",
+ s.ToString().c_str());
+ mutex_.Unlock();
+ env_->SleepForMicroseconds(1000000);
+ mutex_.Lock();
+ }
+
+ assert(config::kL0_SlowdownWritesTrigger > 0);
+ if (versions_->NumLevelFiles(0) >= config::kL0_SlowdownWritesTrigger - 1) {
+ bg_optimistic_trip_ = true;
+ bg_optimistic_cv_.Signal();
+ }
+ }
+ Log(options_.info_log, "cleaning up CompactMemTableThread");
+ num_bg_threads_ -= 1;
+ bg_fg_cv_.SignalAll();
+}
+
+void DBImpl::CompactRange(const Slice* begin, const Slice* end) {
+ int max_level_with_files = 1;
+ {
+ MutexLock l(&mutex_);
+ Version* base = versions_->current();
+ for (int level = 1; level < config::kNumLevels; level++) {
+ if (base->OverlapInLevel(level, begin, end)) {
+ max_level_with_files = level;
+ }
+ }
+ }
+ TEST_CompactMemTable(); // TODO(sanjay): Skip if memtable does not overlap
+ for (int level = 0; level < max_level_with_files; level++) {
+ TEST_CompactRange(level, begin, end);
+ }
+}
+
+void DBImpl::TEST_CompactRange(int level, const Slice* begin,const Slice* end) {
+ assert(level >= 0);
+ assert(level + 1 < config::kNumLevels);
+
+ InternalKey begin_storage, end_storage;
+
+ ManualCompaction manual;
+ manual.level = level;
+ manual.done = false;
+ if (begin == NULL) {
+ manual.begin = NULL;
+ } else {
+ begin_storage = InternalKey(*begin, kMaxSequenceNumber, kValueTypeForSeek);
+ manual.begin = &begin_storage;
+ }
+ if (end == NULL) {
+ manual.end = NULL;
+ } else {
+ end_storage = InternalKey(*end, 0, static_cast<ValueType>(0));
+ manual.end = &end_storage;
+ }
+
+ MutexLock l(&mutex_);
+ while (!manual.done && !shutting_down_.Acquire_Load() && bg_error_.ok()) {
+ if (manual_compaction_ == NULL) { // Idle
+ manual_compaction_ = &manual;
+ bg_compaction_cv_.Signal();
+ bg_memtable_cv_.Signal();
+ } else { // Running either my compaction or another compaction.
+ bg_fg_cv_.Wait();
+ }
+ }
+ if (manual_compaction_ == &manual) {
+ // Cancel my manual compaction since we aborted early for some reason.
+ manual_compaction_ = NULL;
+ }
+}
+
+Status DBImpl::TEST_CompactMemTable() {
+ // NULL batch means just wait for earlier writes to be done
+ Status s = Write(WriteOptions(), NULL);
+ if (s.ok()) {
+ // Wait until the compaction completes
+ MutexLock l(&mutex_);
+ while (imm_ != NULL && bg_error_.ok()) {
+ bg_fg_cv_.Wait();
+ }
+ if (imm_ != NULL) {
+ s = bg_error_;
+ }
+ }
+ return s;
+}
+
+void DBImpl::CompactLevelThread() {
+ MutexLock l(&mutex_);
+ while (!shutting_down_.Acquire_Load() && !allow_background_activity_) {
+ bg_compaction_cv_.Wait();
+ }
+ while (!shutting_down_.Acquire_Load()) {
+ while (!shutting_down_.Acquire_Load() &&
+ manual_compaction_ == NULL &&
+ !versions_->NeedsCompaction(levels_locked_, straight_reads_ > kStraightReads)) {
+ bg_compaction_cv_.Wait();
+ }
+ if (shutting_down_.Acquire_Load()) {
+ break;
+ }
+
+ assert(manual_compaction_ == NULL || num_bg_threads_ == 3);
+ Status s = BackgroundCompaction();
+ bg_fg_cv_.SignalAll(); // before the backoff In case a waiter
+ // can proceed despite the error
+
+ if (s.ok()) {
+ // Success
+ } else if (shutting_down_.Acquire_Load()) {
+ // Error most likely due to shutdown; do not wait
+ } else {
+ // Wait a little bit before retrying background compaction in
+ // case this is an environmental problem and we do not want to
+ // chew up resources for failed compactions for the duration of
+ // the problem.
+ Log(options_.info_log, "Waiting after background compaction error: %s",
+ s.ToString().c_str());
+ mutex_.Unlock();
+ int seconds_to_sleep = 1;
+ env_->SleepForMicroseconds(seconds_to_sleep * 1000000);
+ mutex_.Lock();
+ }
+ }
+ Log(options_.info_log, "cleaning up CompactLevelThread");
+ num_bg_threads_ -= 1;
+ bg_fg_cv_.SignalAll();
+}
+
+void DBImpl::RecordBackgroundError(const Status& s) {
+ mutex_.AssertHeld();
+ if (bg_error_.ok()) {
+ bg_error_ = s;
+ bg_fg_cv_.SignalAll();
+ }
+}
+
+Status DBImpl::BackgroundCompaction() {
+ mutex_.AssertHeld();
+ Compaction* c = NULL;
+ bool is_manual = (manual_compaction_ != NULL);
+ InternalKey manual_end;
+ if (is_manual) {
+ ManualCompaction* m = manual_compaction_;
+ c = versions_->CompactRange(m->level, m->begin, m->end);
+ m->done = (c == NULL);
+ if (c != NULL) {
+ manual_end = c->input(0, c->num_input_files(0) - 1)->largest;
+ }
+ Log(options_.info_log,
+ "Manual compaction at level-%d from %s .. %s; will stop at %s\n",
+ m->level,
+ (m->begin ? m->begin->DebugString().c_str() : "(begin)"),
+ (m->end ? m->end->DebugString().c_str() : "(end)"),
+ (m->done ? "(end)" : manual_end.DebugString().c_str()));
+ } else {
+ int level = versions_->PickCompactionLevel(levels_locked_, straight_reads_ > kStraightReads);
+ if (level != config::kNumLevels) {
+ c = versions_->PickCompaction(versions_->current(), level);
+ }
+ if (c) {
+ assert(!levels_locked_[c->level() + 0]);
+ assert(!levels_locked_[c->level() + 1]);
+ levels_locked_[c->level() + 0] = true;
+ levels_locked_[c->level() + 1] = true;
+ }
+ }
+
+ Status status;
+
+ if (c == NULL) {
+ // Nothing to do
+ } else if (!is_manual && c->IsTrivialMove() && c->level() > 0) {
+ // Move file to next level
+ for (size_t i = 0; i < c->num_input_files(0); ++i) {
+ FileMetaData* f = c->input(0, i);
+ c->edit()->DeleteFile(c->level(), f->number);
+ c->edit()->AddFile(c->level() + 1, f->number, f->file_size,
+ f->smallest, f->largest);
+ }
+ status = versions_->LogAndApply(c->edit(), &mutex_, &bg_log_cv_, &bg_log_occupied_);
+ if (!status.ok()) {
+ RecordBackgroundError(status);
+ }
+ VersionSet::LevelSummaryStorage tmp;
+ for (size_t i = 0; i < c->num_input_files(0); ++i) {
+ FileMetaData* f = c->input(0, i);
+ Log(options_.info_log, "Moved #%lld to level-%d %lld bytes %s: %s\n",
+ static_cast<unsigned long long>(f->number),
+ c->level() + 1,
+ static_cast<unsigned long long>(f->file_size),
+ status.ToString().c_str(),
+ versions_->LevelSummary(&tmp));
+ }
+ } else {
+ CompactionState* compact = new CompactionState(c);
+ status = DoCompactionWork(compact);
+ if (!status.ok()) {
+ RecordBackgroundError(status);
+ }
+ CleanupCompaction(compact);
+ c->ReleaseInputs();
+ DeleteObsoleteFiles();
+ }
+
+ if (c) {
+ levels_locked_[c->level() + 0] = false;
+ levels_locked_[c->level() + 1] = false;
+ delete c;
+ }
+
+ if (status.ok()) {
+ // Done
+ } else if (shutting_down_.Acquire_Load()) {
+ // Ignore compaction errors found during shutting down
+ } else {
+ Log(options_.info_log,
+ "Compaction error: %s", status.ToString().c_str());
+ }
+
+ if (is_manual) {
+ ManualCompaction* m = manual_compaction_;
+ if (!status.ok()) {
+ m->done = true;
+ }
+ if (!m->done) {
+ // We only compacted part of the requested range. Update *m
+ // to the range that is left to be compacted.
+ m->tmp_storage = manual_end;
+ m->begin = &m->tmp_storage;
+ }
+ manual_compaction_ = NULL;
+ }
+ return status;
+}
+
+void DBImpl::CompactOptimisticThread() {
+ MutexLock l(&mutex_);
+ while (!shutting_down_.Acquire_Load() && !allow_background_activity_) {
+ bg_optimistic_cv_.Wait();
+ }
+ while (!shutting_down_.Acquire_Load()) {
+ while (!shutting_down_.Acquire_Load() && !bg_optimistic_trip_) {
+ bg_optimistic_cv_.Wait();
+ }
+ if (shutting_down_.Acquire_Load()) {
+ break;
+ }
+ bg_optimistic_trip_ = false;
+ Status s = OptimisticCompaction();
+
+ if (!shutting_down_.Acquire_Load() && !s.ok()) {
+ // Wait a little bit before retrying background compaction in
+ // case this is an environmental problem and we do not want to
+ // chew up resources for failed compactions for the duration of
+ // the problem.
+ Log(options_.info_log, "Waiting after optimistic compaction error: %s",
+ s.ToString().c_str());
+ mutex_.Unlock();
+ env_->SleepForMicroseconds(1000000);
+ mutex_.Lock();
+ }
+ }
+ Log(options_.info_log, "cleaning up OptimisticCompactThread");
+ num_bg_threads_ -= 1;
+ bg_fg_cv_.SignalAll();
+}
+
+Status DBImpl::OptimisticCompaction() {
+ mutex_.AssertHeld();
+ Log(options_.info_log, "Optimistic compaction started");
+ bool did_compaction = true;
+ uint64_t iters = 0;
+ while (did_compaction) {
+ ++iters;
+ did_compaction = false;
+ Compaction* c = NULL;
+ for (size_t level = 1; level + 1 < config::kNumLevels; ++level) {
+ if (levels_locked_[level] || levels_locked_[level + 1]) {
+ continue;
+ }
+ Compaction* tmp = versions_->PickCompaction(versions_->current(), level);
+ if (tmp && tmp->IsTrivialMove()) {
+ if (c) {
+ delete c;
+ }
+ c = tmp;
+ break;
+ } else if (c && tmp && c->ratio() < tmp->ratio()) {
+ delete c;
+ c = tmp;
+ } else if (!c) {
+ c = tmp;
+ } else {
+ delete tmp;
+ }
+ }
+ if (!c) {
+ continue;
+ }
+ if (!c->IsTrivialMove() && c->ratio() < .90) {
+ delete c;
+ continue;
+ }
+ assert(!levels_locked_[c->level() + 0]);
+ assert(!levels_locked_[c->level() + 1]);
+ levels_locked_[c->level() + 0] = true;
+ levels_locked_[c->level() + 1] = true;
+
+ did_compaction = true;
+ Status status;
+
+ if (c->IsTrivialMove() && c->level() > 0) {
+ // Move file to next level
+ for (size_t i = 0; i < c->num_input_files(0); ++i) {
+ FileMetaData* f = c->input(0, i);
+ c->edit()->DeleteFile(c->level(), f->number);
+ c->edit()->AddFile(c->level() + 1, f->number, f->file_size,
+ f->smallest, f->largest);
+ }
+ status = versions_->LogAndApply(c->edit(), &mutex_, &bg_log_cv_, &bg_log_occupied_);
+ VersionSet::LevelSummaryStorage tmp;
+ for (size_t i = 0; i < c->num_input_files(0); ++i) {
+ FileMetaData* f = c->input(0, i);
+ Log(options_.info_log, "Moved #%lld to level-%d %lld bytes %s: %s\n",
+ static_cast<unsigned long long>(f->number),
+ c->level() + 1,
+ static_cast<unsigned long long>(f->file_size),
+ status.ToString().c_str(),
+ versions_->LevelSummary(&tmp));
+ }
+ } else {
+ CompactionState* compact = new CompactionState(c);
+ status = DoCompactionWork(compact);
+ CleanupCompaction(compact);
+ c->ReleaseInputs();
+ DeleteObsoleteFiles();
+ }
+
+ levels_locked_[c->level() + 0] = false;
+ levels_locked_[c->level() + 1] = false;
+ delete c;
+
+ if (status.ok()) {
+ // Done
+ } else if (shutting_down_.Acquire_Load()) {
+ // Ignore compaction errors found during shutting down
+ break;
+ } else {
+ Log(options_.info_log,
+ "Compaction error: %s", status.ToString().c_str());
+ if (options_.paranoid_checks && bg_error_.ok()) {
+ bg_error_ = status;
+ }
+ break;
+ }
+ }
+ Log(options_.info_log, "Optimistic compaction ended after %llu iterations", iters);
+ return Status::OK();
+}
+
+void DBImpl::CleanupCompaction(CompactionState* compact) {
+ mutex_.AssertHeld();
+ if (compact->builder != NULL) {
+ // May happen if we get a shutdown call in the middle of compaction
+ compact->builder->Abandon();
+ delete compact->builder;
+ } else {
+ assert(compact->outfile == NULL);
+ }
+ delete compact->outfile;
+ for (size_t i = 0; i < compact->outputs.size(); i++) {
+ const CompactionState::Output& out = compact->outputs[i];
+ pending_outputs_.erase(out.number);
+ }
+ delete compact;
+}
+
+Status DBImpl::OpenCompactionOutputFile(CompactionState* compact) {
+ assert(compact != NULL);
+ assert(compact->builder == NULL);
+ uint64_t file_number;
+ {
+ mutex_.Lock();
+ file_number = versions_->NewFileNumber();
+ pending_outputs_.insert(file_number);
+ CompactionState::Output out;
+ out.number = file_number;
+ out.smallest.Clear();
+ out.largest.Clear();
+ compact->outputs.push_back(out);
+ mutex_.Unlock();
+ }
+
+ // Make the output file
+ std::string fname = SSTTableFileName(dbname_, file_number);
+ Status s = env_->NewWritableFile(fname, &compact->outfile);
+ if (s.ok()) {
+ compact->builder = new TableBuilder(options_, compact->outfile);
+ }
+ return s;
+}
+
+Status DBImpl::FinishCompactionOutputFile(CompactionState* compact,
+ Iterator* input) {
+ assert(compact != NULL);
+ assert(compact->outfile != NULL);
+ assert(compact->builder != NULL);
+
+ const uint64_t output_number = compact->current_output()->number;
+ assert(output_number != 0);
+
+ // Check for iterator errors
+ Status s = input->status();
+ const uint64_t current_entries = compact->builder->NumEntries();
+ if (s.ok()) {
+ s = compact->builder->Finish();
+ } else {
+ compact->builder->Abandon();
+ }
+ const uint64_t current_bytes = compact->builder->FileSize();
+ compact->current_output()->file_size = current_bytes;
+ compact->total_bytes += current_bytes;
+ delete compact->builder;
+ compact->builder = NULL;
+
+ // Finish and check for file errors
+ if (s.ok()) {
+ s = compact->outfile->Sync();
+ }
+ if (s.ok()) {
+ s = compact->outfile->Close();
+ }
+ delete compact->outfile;
+ compact->outfile = NULL;
+
+ if (s.ok() && current_entries > 0) {
+ // Verify that the table is usable
+ Iterator* iter = table_cache_->NewIterator(ReadOptions(),
+ output_number,
+ current_bytes);
+ s = iter->status();
+ delete iter;
+ if (s.ok()) {
+ Log(options_.info_log,
+ "Generated table #%llu: %lld keys, %lld bytes",
+ (unsigned long long) output_number,
+ (unsigned long long) current_entries,
+ (unsigned long long) current_bytes);
+ }
+ }
+ return s;
+}
+
+
+Status DBImpl::InstallCompactionResults(CompactionState* compact) {
+ mutex_.AssertHeld();
+ Log(options_.info_log, "Compacted %d@%d + %d@%d files => %lld bytes",
+ compact->compaction->num_input_files(0),
+ compact->compaction->level(),
+ compact->compaction->num_input_files(1),
+ compact->compaction->level() + 1,
+ static_cast<long long>(compact->total_bytes));
+
+ // Add compaction outputs
+ compact->compaction->AddInputDeletions(compact->compaction->edit());
+ const int level = compact->compaction->level();
+ for (size_t i = 0; i < compact->outputs.size(); i++) {
+ const CompactionState::Output& out = compact->outputs[i];
+ compact->compaction->edit()->AddFile(
+ level + 1,
+ out.number, out.file_size, out.smallest, out.largest);
+ }
+ return versions_->LogAndApply(compact->compaction->edit(), &mutex_, &bg_log_cv_, &bg_log_occupied_);
+}
+
+Status DBImpl::DoCompactionWork(CompactionState* compact) {
+ const uint64_t start_micros = env_->NowMicros();
+ int64_t imm_micros = 0; // Micros spent doing imm_ compactions
+
+ Log(options_.info_log, "Compacting %d@%d + %d@%d files",
+ compact->compaction->num_input_files(0),
+ compact->compaction->level(),
+ compact->compaction->num_input_files(1),
+ compact->compaction->level() + 1);
+
+ assert(versions_->NumLevelFiles(compact->compaction->level()) > 0);
+ assert(compact->builder == NULL);
+ assert(compact->outfile == NULL);
+ if (snapshots_.empty()) {
+ compact->smallest_snapshot = versions_->LastSequence();
+ } else {
+ compact->smallest_snapshot = snapshots_.oldest()->number_;
+ }
+
+ // Release mutex while we're actually doing the compaction work
+ mutex_.Unlock();
+
+ Iterator* input = versions_->MakeInputIterator(compact->compaction);
+ input->SeekToFirst();
+ Status status;
+ ParsedInternalKey ikey;
+ std::string current_user_key;
+ bool has_current_user_key = false;
+ SequenceNumber last_sequence_for_key = kMaxSequenceNumber;
+ for (; input->Valid() && !shutting_down_.Acquire_Load(); ) {
+ Slice key = input->key();
+ // Handle key/value, add to state, etc.
+ bool drop = false;
+ if (!ParseInternalKey(key, &ikey)) {
+ // Do not hide error keys
+ current_user_key.clear();
+ has_current_user_key = false;
+ last_sequence_for_key = kMaxSequenceNumber;
+ } else {
+ if (!has_current_user_key ||
+ user_comparator()->Compare(ikey.user_key,
+ Slice(current_user_key)) != 0) {
+ // First occurrence of this user key
+ current_user_key.assign(ikey.user_key.data(), ikey.user_key.size());
+ has_current_user_key = true;
+ last_sequence_for_key = kMaxSequenceNumber;
+ }
+
+ // Just remember that last_sequence_for_key is decreasing over time, and
+ // all of this makes sense.
+
+ if (last_sequence_for_key <= compact->smallest_snapshot) {
+ // Hidden by an newer entry for same user key
+ drop = true; // (A)
+ } else if (ikey.type == kTypeDeletion &&
+ ikey.sequence <= compact->smallest_snapshot &&
+ compact->compaction->IsBaseLevelForKey(ikey.user_key)) {
+ // For this user key:
+ // (1) there is no data in higher levels
+ // (2) data in lower levels will have larger sequence numbers
+ // (3) data in layers that are being compacted here and have
+ // smaller sequence numbers will be dropped in the next
+ // few iterations of this loop (by rule (A) above).
+ // Therefore this deletion marker is obsolete and can be dropped.
+ drop = true;
+ }
+
+ // If we're going to drop this key, and there was no previous version of
+ // this key, and it was written at or after the garbage cutoff, we keep
+ // it.
+ if (drop &&
+ last_sequence_for_key == kMaxSequenceNumber &&
+ ikey.sequence >= manual_garbage_cutoff_) {
+ drop = false;
+ }
+
+ last_sequence_for_key = ikey.sequence;
+ }
+
+ if (!drop) {
+ // Open output file if necessary
+ if (compact->builder == NULL) {
+ status = OpenCompactionOutputFile(compact);
+ if (!status.ok()) {
+ break;
+ }
+ }
+ if (compact->builder->NumEntries() == 0) {
+ compact->current_output()->smallest.DecodeFrom(key);
+ }
+ compact->current_output()->largest.DecodeFrom(key);
+ compact->builder->Add(key, input->value());
+
+ // Close output file if it is big enough
+ if (compact->builder->FileSize() >=
+ compact->compaction->MaxOutputFileSize()) {
+ status = FinishCompactionOutputFile(compact, input);
+ if (!status.ok()) {
+ break;
+ }
+ }
+ }
+
+ input->Next();
+ }
+
+ if (status.ok() && shutting_down_.Acquire_Load()) {
+ status = Status::IOError("Deleting DB during compaction");
+ }
+ if (status.ok() && compact->builder != NULL) {
+ status = FinishCompactionOutputFile(compact, input);
+ }
+ if (status.ok()) {
+ status = input->status();
+ }
+ delete input;
+ input = NULL;
+
+ CompactionStats stats;
+ stats.micros = env_->NowMicros() - start_micros - imm_micros;
+ for (int which = 0; which < 2; which++) {
+ for (int i = 0; i < compact->compaction->num_input_files(which); i++) {
+ stats.bytes_read += compact->compaction->input(which, i)->file_size;
+ }
+ }
+ for (size_t i = 0; i < compact->outputs.size(); i++) {
+ stats.bytes_written += compact->outputs[i].file_size;
+ }
+
+ mutex_.Lock();
+ stats_[compact->compaction->level() + 1].Add(stats);
+
+ if (status.ok()) {
+ status = InstallCompactionResults(compact);
+ }
+ if (!status.ok()) {
+ RecordBackgroundError(status);
+ }
+ VersionSet::LevelSummaryStorage tmp;
+ Log(options_.info_log,
+ "compacted to: %s", versions_->LevelSummary(&tmp));
+ return status;
+}
+
+namespace {
+struct IterState {
+ port::Mutex* mu;
+ Version* version;
+ MemTable* mem;
+ MemTable* imm;
+};
+
+static void CleanupIteratorState(void* arg1, void* arg2) {
+ IterState* state = reinterpret_cast<IterState*>(arg1);
+ state->mu->Lock();
+ state->mem->Unref();
+ if (state->imm != NULL) state->imm->Unref();
+ state->version->Unref();
+ state->mu->Unlock();
+ delete state;
+}
+} // namespace
+
+Iterator* DBImpl::NewInternalIterator(const ReadOptions& options, uint64_t number,
+ SequenceNumber* latest_snapshot,
+ uint32_t* seed, bool external_sync) {
+ IterState* cleanup = new IterState;
+ if (!external_sync) {
+ mutex_.Lock();
+ }
+ ++straight_reads_;
+ *latest_snapshot = versions_->LastSequence();
+
+ // Collect together all needed child iterators
+ std::vector<Iterator*> list;
+ list.push_back(mem_->NewIterator());
+ mem_->Ref();
+ if (imm_ != NULL) {
+ list.push_back(imm_->NewIterator());
+ imm_->Ref();
+ }
+ versions_->current()->AddSomeIterators(options, number, &list);
+ Iterator* internal_iter =
+ NewMergingIterator(&internal_comparator_, &list[0], list.size());
+ versions_->current()->Ref();
+
+ cleanup->mu = &mutex_;
+ cleanup->mem = mem_;
+ cleanup->imm = imm_;
+ cleanup->version = versions_->current();
+ internal_iter->RegisterCleanup(CleanupIteratorState, cleanup, NULL);
+
+ *seed = ++seed_;
+ if (!external_sync) {
+ mutex_.Unlock();
+ }
+ return internal_iter;
+}
+
+Iterator* DBImpl::TEST_NewInternalIterator() {
+ SequenceNumber ignored;
+ uint32_t ignored_seed;
+ return NewInternalIterator(ReadOptions(), 0, &ignored, &ignored_seed, false);
+}
+
+int64_t DBImpl::TEST_MaxNextLevelOverlappingBytes() {
+ MutexLock l(&mutex_);
+ return versions_->MaxNextLevelOverlappingBytes();
+}
+
+Status DBImpl::Get(const ReadOptions& options,
+ const Slice& key,
+ std::string* value) {
+ Status s;
+ MutexLock l(&mutex_);
+ SequenceNumber snapshot;
+ if (options.snapshot != NULL) {
+ snapshot = reinterpret_cast<const SnapshotImpl*>(options.snapshot)->number_;
+ } else {
+ snapshot = versions_->LastSequence();
+ }
+
+ MemTable* mem = mem_;
+ MemTable* imm = imm_;
+ Version* current = versions_->current();
+ mem->Ref();
+ if (imm != NULL) imm->Ref();
+ current->Ref();
+
+ bool have_stat_update = false;
+ Version::GetStats stats;
+
+ // Unlock while reading from files and memtables
+ {
+ mutex_.Unlock();
+ // First look in the memtable, then in the immutable memtable (if any).
+ LookupKey lkey(key, snapshot);
+ if (mem->Get(lkey, value, &s)) {
+ // Done
+ } else if (imm != NULL && imm->Get(lkey, value, &s)) {
+ // Done
+ } else {
+ s = current->Get(options, lkey, value, &stats);
+ have_stat_update = true;
+ }
+ mutex_.Lock();
+ }
+
+ if (have_stat_update && current->UpdateStats(stats)) {
+ bg_compaction_cv_.Signal();
+ }
+ ++straight_reads_;
+ mem->Unref();
+ if (imm != NULL) imm->Unref();
+ current->Unref();
+ return s;
+}
+
+Iterator* DBImpl::NewIterator(const ReadOptions& options) {
+ SequenceNumber latest_snapshot;
+ uint32_t seed;
+ Iterator* iter = NewInternalIterator(options, 0, &latest_snapshot, &seed, false);
+ return NewDBIterator(
+ this, user_comparator(), iter,
+ (options.snapshot != NULL
+ ? reinterpret_cast<const SnapshotImpl*>(options.snapshot)->number_
+ : latest_snapshot),
+ seed);
+}
+
+void DBImpl::GetReplayTimestamp(std::string* timestamp) {
+ uint64_t file = 0;
+ uint64_t seqno = 0;
+
+ {
+ MutexLock l(&mutex_);
+ file = versions_->NewFileNumber();
+ versions_->ReuseFileNumber(file);
+ seqno = versions_->LastSequence();
+ }
+
+ timestamp->clear();
+ PutVarint64(timestamp, file);
+ PutVarint64(timestamp, seqno);
+}
+
+void DBImpl::AllowGarbageCollectBeforeTimestamp(const std::string& timestamp) {
+ Slice ts_slice(timestamp);
+ uint64_t file = 0;
+ uint64_t seqno = 0;
+
+ if (timestamp == "all") {
+ // keep zeroes
+ } else if (timestamp == "now") {
+ MutexLock l(&mutex_);
+ seqno = versions_->LastSequence();
+ if (manual_garbage_cutoff_ < seqno) {
+ manual_garbage_cutoff_ = seqno;
+ }
+ } else if (GetVarint64(&ts_slice, &file) &&
+ GetVarint64(&ts_slice, &seqno)) {
+ MutexLock l(&mutex_);
+ if (manual_garbage_cutoff_ < seqno) {
+ manual_garbage_cutoff_ = seqno;
+ }
+ }
+}
+
+bool DBImpl::ValidateTimestamp(const std::string& ts) {
+ uint64_t file = 0;
+ uint64_t seqno = 0;
+ Slice ts_slice(ts);
+ return ts == "all" || ts == "now" ||
+ (GetVarint64(&ts_slice, &file) &&
+ GetVarint64(&ts_slice, &seqno));
+}
+
+int DBImpl::CompareTimestamps(const std::string& lhs, const std::string& rhs) {
+ uint64_t now = 0;
+ uint64_t lhs_seqno = 0;
+ uint64_t rhs_seqno = 0;
+ uint64_t tmp;
+ if (lhs == "now" || rhs == "now") {
+ MutexLock l(&mutex_);
+ now = versions_->LastSequence();
+ }
+ if (lhs == "all") {
+ lhs_seqno = 0;
+ } else if (lhs == "now") {
+ lhs_seqno = now;
+ } else {
+ Slice lhs_slice(lhs);
+ GetVarint64(&lhs_slice, &tmp);
+ GetVarint64(&lhs_slice, &lhs_seqno);
+ }
+ if (rhs == "all") {
+ rhs_seqno = 0;
+ } else if (rhs == "now") {
+ rhs_seqno = now;
+ } else {
+ Slice rhs_slice(rhs);
+ GetVarint64(&rhs_slice, &tmp);
+ GetVarint64(&rhs_slice, &rhs_seqno);
+ }
+
+ if (lhs_seqno < rhs_seqno) {
+ return -1;
+ } else if (lhs_seqno > rhs_seqno) {
+ return 1;
+ } else {
+ return 0;
+ }
+}
+
+Status DBImpl::GetReplayIterator(const std::string& timestamp,
+ ReplayIterator** iter) {
+ *iter = NULL;
+ Slice ts_slice(timestamp);
+ uint64_t file = 0;
+ uint64_t seqno = 0;
+
+ if (timestamp == "all") {
+ seqno = 0;
+ } else if (timestamp == "now") {
+ MutexLock l(&mutex_);
+ file = versions_->NewFileNumber();
+ versions_->ReuseFileNumber(file);
+ seqno = versions_->LastSequence();
+ } else if (!GetVarint64(&ts_slice, &file) ||
+ !GetVarint64(&ts_slice, &seqno)) {
+ return Status::InvalidArgument("Timestamp is not valid");
+ }
+
+ ReadOptions options;
+ options.fill_cache = false;
+ SequenceNumber latest_snapshot;
+ uint32_t seed;
+ MutexLock l(&mutex_);
+ Iterator* internal_iter = NewInternalIterator(options, file, &latest_snapshot, &seed, true);
+ internal_iter->SeekToFirst();
+ ReplayIteratorImpl* iterimpl;
+ iterimpl = new ReplayIteratorImpl(
+ this, &mutex_, user_comparator(), internal_iter, mem_, SequenceNumber(seqno));
+ *iter = iterimpl;
+ replay_iters_.push_back(iterimpl);
+ return Status::OK();
+}
+
+void DBImpl::ReleaseReplayIterator(ReplayIterator* _iter) {
+ MutexLock l(&mutex_);
+ ReplayIteratorImpl* iter = reinterpret_cast<ReplayIteratorImpl*>(_iter);
+ for (std::list<ReplayIteratorImpl*>::iterator it = replay_iters_.begin();
+ it != replay_iters_.end(); ++it) {
+ if (*it == iter) {
+ iter->cleanup(); // calls delete
+ replay_iters_.erase(it);
+ return;
+ }
+ }
+}
+
+void DBImpl::RecordReadSample(Slice key) {
+ MutexLock l(&mutex_);
+ ++straight_reads_;
+ if (versions_->current()->RecordReadSample(key)) {
+ bg_compaction_cv_.Signal();
+ }
+}
+
+SequenceNumber DBImpl::LastSequence() {
+ MutexLock l(&mutex_);
+ return versions_->LastSequence();
+}
+
+const Snapshot* DBImpl::GetSnapshot() {
+ MutexLock l(&mutex_);
+ return snapshots_.New(versions_->LastSequence());
+}
+
+void DBImpl::ReleaseSnapshot(const Snapshot* s) {
+ MutexLock l(&mutex_);
+ snapshots_.Delete(reinterpret_cast<const SnapshotImpl*>(s));
+}
+
+// Convenience methods
+Status DBImpl::Put(const WriteOptions& o, const Slice& key, const Slice& val) {
+ return DB::Put(o, key, val);
+}
+
+Status DBImpl::Delete(const WriteOptions& options, const Slice& key) {
+ return DB::Delete(options, key);
+}
+
+// Information kept for every waiting writer
+struct DBImpl::Writer {
+ port::Mutex mtx;
+ port::CondVar cv;
+ bool linked;
+ bool mayend;
+ Writer* next;
+ uint64_t start_sequence;
+ uint64_t end_sequence;
+ SHARED_PTR<WritableFile> logfile;
+ SHARED_PTR<log::Writer> log;
+ MemTable* mem;
+ SHARED_PTR<WritableFile> old_logfile;
+ SHARED_PTR<log::Writer> old_log;
+
+ explicit Writer()
+ : mtx(),
+ cv(&mtx),
+ linked(false),
+ mayend(false),
+ next(NULL),
+ start_sequence(0),
+ end_sequence(0),
+ logfile(),
+ log(),
+ mem(NULL),
+ old_logfile(),
+ old_log() {
+ }
+ ~Writer() throw () {
+ }
+};
+
+Status DBImpl::Write(const WriteOptions& options, WriteBatch* updates) {
+ Writer w;
+ Status s;
+ s = SequenceWriteBegin(&w, updates);
+
+ if (s.ok() && updates != NULL) { // NULL batch is for compactions
+ WriteBatchInternal::SetSequence(updates, w.start_sequence);
+
+ // Add to log and apply to memtable. We do this without holding the lock
+ // because both the log and the memtable are safe for concurrent access.
+ // The synchronization with readers occurs with SequenceWriteEnd.
+ s = w.log->AddRecord(WriteBatchInternal::Contents(updates));
+
+ if (s.ok() && options.sync) {
+ s = w.logfile->Sync();
+ }
+ if (s.ok()) {
+ s = WriteBatchInternal::InsertInto(updates, w.mem);
+ }
+ }
+
+ if (!s.ok()) {
+ mutex_.Lock();
+ RecordBackgroundError(s);
+ mutex_.Unlock();
+ }
+
+ SequenceWriteEnd(&w);
+ return s;
+}
+
+Status DBImpl::SequenceWriteBegin(Writer* w, WriteBatch* updates) {
+ Status s;
+ MutexLock l(&mutex_);
+ straight_reads_ = 0;
+ bool force = updates == NULL;
+ bool enqueue_mem = false;
+ w->old_log.reset();
+ w->old_logfile.reset();
+
+ while (true) {
+ if (!bg_error_.ok()) {
+ // Yield previous error
+ s = bg_error_;
+ break;
+ } else if (!force &&
+ (mem_->ApproximateMemoryUsage() <= options_.write_buffer_size)) {
+ // There is room in current memtable
+ // Note that this is a sloppy check. We can overfill a memtable by the
+ // amount of concurrently written data.
+ break;
+ } else if (imm_ != NULL) {
+ // We have filled up the current memtable, but the previous
+ // one is still being compacted, so we wait.
+ bg_compaction_cv_.Signal();
+ bg_memtable_cv_.Signal();
+ bg_fg_cv_.Wait();
+ } else {
+ // Attempt to switch to a new memtable and trigger compaction of old
+ assert(versions_->PrevLogNumber() == 0);
+ uint64_t new_log_number = versions_->NewFileNumber();
+ WritableFile* lfile = NULL;
+ s = env_->NewWritableFile(LogFileName(dbname_, new_log_number), &lfile);
+ if (!s.ok()) {
+ // Avoid chewing through file number space in a tight loop.
+ versions_->ReuseFileNumber(new_log_number);
+ break;
+ }
+ w->old_log = log_;
+ w->old_logfile = logfile_;
+ logfile_.reset(lfile);
+ logfile_number_ = new_log_number;
+ log_.reset(new log::Writer(lfile));
+ imm_ = mem_;
+ has_imm_.Release_Store(imm_);
+ mem_ = new MemTable(internal_comparator_);
+ mem_->Ref();
+ force = false; // Do not force another compaction if have room
+ enqueue_mem = true;
+ break;
+ }
+ }
+
+ if (s.ok()) {
+ if (writers_tail_) {
+ *writers_tail_ = w;
+ } else {
+ w->mayend = true;
+ }
+ writers_tail_ = &w->next;
+ w->linked = true;
+ w->next = NULL;
+ uint64_t diff = updates ? WriteBatchInternal::Count(updates) : 0;
+ uint64_t ticket = __sync_add_and_fetch(&writers_upper_, 1 + diff);
+ w->start_sequence = ticket - diff;
+ w->end_sequence = ticket;
+ w->logfile = logfile_;
+ w->log = log_;
+ w->mem = mem_;
+ w->mem->Ref();
+ }
+
+ if (enqueue_mem) {
+ for (std::list<ReplayIteratorImpl*>::iterator it = replay_iters_.begin();
+ it != replay_iters_.end(); ++it) {
+ (*it)->enqueue(mem_, w->start_sequence);
+ }
+ }
+
+ return s;
+}
+
+void DBImpl::SequenceWriteEnd(Writer* w) {
+ if (!w->linked) {
+ return;
+ }
+
+ // wait until we are next
+ {
+ MutexLock l(&w->mtx);
+ while (!w->mayend) {
+ w->cv.Wait();
+ }
+ }
+
+ // swizzle state to make ours visible
+ Writer* next = NULL;
+ {
+ MutexLock l(&mutex_);
+ versions_->SetLastSequence(w->end_sequence);
+ if (writers_tail_ == &w->next) {
+ writers_tail_ = NULL;
+ }
+ next = w->next;
+ }
+
+ // signal the next writer
+ if (next) {
+ MutexLock l(&next->mtx);
+ next->mayend = true;
+ next->cv.Signal();
+ }
+
+ // must do in order: log, logfile
+ if (w->old_log) {
+ assert(w->old_logfile);
+ w->old_log.reset();
+ w->old_logfile.reset();
+ bg_memtable_cv_.Signal();
+ }
+
+ // safe because Unref is synchronized internally
+ if (w->mem) {
+ w->mem->Unref();
+ }
+}
+
+bool DBImpl::GetProperty(const Slice& property, std::string* value) {
+ value->clear();
+
+ MutexLock l(&mutex_);
+ Slice in = property;
+ Slice prefix("leveldb.");
+ if (!in.starts_with(prefix)) return false;
+ in.remove_prefix(prefix.size());
+
+ if (in.starts_with("num-files-at-level")) {
+ in.remove_prefix(strlen("num-files-at-level"));
+ uint64_t level;
+ bool ok = ConsumeDecimalNumber(&in, &level) && in.empty();
+ if (!ok || level >= config::kNumLevels) {
+ return false;
+ } else {
+ char buf[100];
+ snprintf(buf, sizeof(buf), "%d",
+ versions_->NumLevelFiles(static_cast<int>(level)));
+ *value = buf;
+ return true;
+ }
+ } else if (in == "stats") {
+ char buf[200];
+ snprintf(buf, sizeof(buf),
+ " Compactions\n"
+ "Level Files Size(MB) Time(sec) Read(MB) Write(MB)\n"
+ "--------------------------------------------------\n"
+ );
+ value->append(buf);
+ for (int level = 0; level < config::kNumLevels; level++) {
+ int files = versions_->NumLevelFiles(level);
+ if (stats_[level].micros > 0 || files > 0) {
+ snprintf(
+ buf, sizeof(buf),
+ "%3d %8d %8.0f %9.0f %8.0f %9.0f\n",
+ level,
+ files,
+ versions_->NumLevelBytes(level) / 1048576.0,
+ stats_[level].micros / 1e6,
+ stats_[level].bytes_read / 1048576.0,
+ stats_[level].bytes_written / 1048576.0);
+ value->append(buf);
+ }
+ }
+ return true;
+ } else if (in == "sstables") {
+ *value = versions_->current()->DebugString();
+ return true;
+ }
+
+ return false;
+}
+
+void DBImpl::GetApproximateSizes(
+ const Range* range, int n,
+ uint64_t* sizes) {
+ // TODO(opt): better implementation
+ Version* v;
+ {
+ MutexLock l(&mutex_);
+ versions_->current()->Ref();
+ v = versions_->current();
+ }
+
+ for (int i = 0; i < n; i++) {
+ // Convert user_key into a corresponding internal key.
+ InternalKey k1(range[i].start, kMaxSequenceNumber, kValueTypeForSeek);
+ InternalKey k2(range[i].limit, kMaxSequenceNumber, kValueTypeForSeek);
+ uint64_t start = versions_->ApproximateOffsetOf(v, k1);
+ uint64_t limit = versions_->ApproximateOffsetOf(v, k2);
+ sizes[i] = (limit >= start ? limit - start : 0);
+ }
+
+ {
+ MutexLock l(&mutex_);
+ v->Unref();
+ }
+}
+
+Status DBImpl::LiveBackup(const Slice& _name) {
+ Slice name = _name;
+ size_t name_sz = 0;
+
+ for (; name_sz < name.size() && name.data()[name_sz] != '\0'; ++name_sz)
+ ;
+
+ name = Slice(name.data(), name_sz);
+ std::set<uint64_t> live;
+ uint64_t ticket;
+ Writer w;
+
+ {
+ MutexLock l(&mutex_);
+ ticket = __sync_add_and_fetch(&writers_upper_, 1);
+ if (writers_tail_) {
+ *writers_tail_ = &w;
+ } else {
+ w.mayend = true;
+ }
+ writers_tail_ = &w.next;
+ w.linked = true;
+ w.next = NULL;
+ }
+
+ {
+ MutexLock l(&w.mtx);
+ while (!w.mayend) {
+ w.cv.Wait();
+ }
+ }
+
+ {
+ MutexLock l(&mutex_);
+ versions_->SetLastSequence(ticket);
+ while (backup_in_progress_.Acquire_Load() != NULL) {
+ backup_cv_.Wait();
+ }
+ backup_in_progress_.Release_Store(this);
+ while (bg_log_occupied_) {
+ bg_log_cv_.Wait();
+ }
+ bg_log_occupied_ = true;
+ // note that this logic assumes that DeleteObsoleteFiles never releases
+ // mutex_, so that once we release at this brace, we'll guarantee that it
+ // will see backup_in_progress_. If you change DeleteObsoleteFiles to
+ // release mutex_, you'll need to add some sort of synchronization in place
+ // of this text block.
+ versions_->AddLiveFiles(&live);
+ if (writers_tail_ == &w.next) {
+ writers_tail_ = NULL;
+ }
+ }
+
+ // signal the next writer
+ if (w.next) {
+ MutexLock l(&w.next->mtx);
+ w.next->mayend = true;
+ w.next->cv.Signal();
+ }
+
+ Status s;
+ std::vector<std::string> filenames;
+ s = env_->GetChildren(dbname_, &filenames);
+ std::string backup_dir = dbname_ + "/backup-" + name.ToString() + "/";
+
+ if (s.ok()) {
+ s = env_->CreateDir(backup_dir);
+ }
+
+ uint64_t number;
+ FileType type;
+
+ for (size_t i = 0; i < filenames.size(); i++) {
+ if (!s.ok()) {
+ continue;
+ }
+ if (ParseFileName(filenames[i], &number, &type)) {
+ std::string src = dbname_ + "/" + filenames[i];
+ std::string target = backup_dir + "/" + filenames[i];
+ switch (type) {
+ case kLogFile:
+ case kDescriptorFile:
+ case kCurrentFile:
+ case kInfoLogFile:
+ s = env_->CopyFile(src, target);
+ break;
+ case kTableFile:
+ // If it's a file referenced by a version, we have logged that version
+ // and applied it. Our MANIFEST will reflect that, and the file
+ // number assigned to new files will be greater or equal, ensuring
+ // that they aren't overwritten. Any file not in "live" either exists
+ // past the current manifest (output of ongoing compaction) or so far
+ // in the past we don't care (we're going to delete it at the end of
+ // this backup). I'd rather play safe than sorry.
+ //
+ // Under no circumstances should you collapse this to a single
+ // LinkFile without the conditional as it has implications for backups
+ // that share hardlinks. Opening an older backup that has files
+ // hardlinked with newer backups will overwrite "immutable" files in
+ // the newer backups because they aren't in our manifest, and we do an
+ // open/write rather than a creat/rename. We avoid linking these
+ // files.
+ if (live.find(number) != live.end()) {
+ s = env_->LinkFile(src, target);
+ }
+ break;
+ case kTempFile:
+ case kDBLockFile:
+ break;
+ }
+ }
+ }
+
+ {
+ MutexLock l(&mutex_);
+ backup_in_progress_.Release_Store(NULL);
+ if (s.ok() && backup_deferred_delete_) {
+ DeleteObsoleteFiles();
+ }
+ backup_deferred_delete_ = false;
+ bg_log_occupied_ = false;
+ bg_log_cv_.Signal();
+ backup_cv_.Signal();
+ }
+ return s;
+}
+
+// Default implementations of convenience methods that subclasses of DB
+// can call if they wish
+Status DB::Put(const WriteOptions& opt, const Slice& key, const Slice& value) {
+ WriteBatch batch;
+ batch.Put(key, value);
+ return Write(opt, &batch);
+}
+
+Status DB::Delete(const WriteOptions& opt, const Slice& key) {
+ WriteBatch batch;
+ batch.Delete(key);
+ return Write(opt, &batch);
+}
+
+DB::~DB() { }
+
+Status DB::Open(const Options& options, const std::string& dbname,
+ DB** dbptr) {
+ *dbptr = NULL;
+
+ DBImpl* impl = new DBImpl(options, dbname);
+ impl->mutex_.Lock();
+ VersionEdit edit;
+ Status s = impl->Recover(&edit); // Handles create_if_missing, error_if_exists
+ if (s.ok()) {
+ uint64_t new_log_number = impl->versions_->NewFileNumber();
+ WritableFile* lfile;
+ s = options.env->NewWritableFile(LogFileName(dbname, new_log_number),
+ &lfile);
+ if (s.ok()) {
+ edit.SetLogNumber(new_log_number);
+ impl->logfile_.reset(lfile);
+ impl->logfile_number_ = new_log_number;
+ impl->log_.reset(new log::Writer(lfile));
+ s = impl->versions_->LogAndApply(&edit, &impl->mutex_, &impl->bg_log_cv_, &impl->bg_log_occupied_);
+ }
+ if (s.ok()) {
+ impl->DeleteObsoleteFiles();
+ impl->bg_optimistic_cv_.Signal();
+ impl->bg_compaction_cv_.Signal();
+ impl->bg_memtable_cv_.Signal();
+ }
+ }
+ impl->pending_outputs_.clear();
+ impl->allow_background_activity_ = true;
+ impl->bg_optimistic_cv_.SignalAll();
+ impl->bg_compaction_cv_.SignalAll();
+ impl->bg_memtable_cv_.SignalAll();
+ impl->mutex_.Unlock();
+ if (s.ok()) {
+ *dbptr = impl;
+ } else {
+ delete impl;
+ }
+ impl->writers_upper_ = impl->versions_->LastSequence();
+ return s;
+}
+
+Snapshot::~Snapshot() {
+}
+
+Status DestroyDB(const std::string& dbname, const Options& options) {
+ Env* env = options.env;
+ std::vector<std::string> filenames;
+ // Ignore error in case directory does not exist
+ env->GetChildren(dbname, &filenames);
+ if (filenames.empty()) {
+ return Status::OK();
+ }
+
+ FileLock* lock;
+ const std::string lockname = LockFileName(dbname);
+ Status result = env->LockFile(lockname, &lock);
+ if (result.ok()) {
+ uint64_t number;
+ FileType type;
+ for (size_t i = 0; i < filenames.size(); i++) {
+ if (ParseFileName(filenames[i], &number, &type) &&
+ type != kDBLockFile) { // Lock file will be deleted at end
+ Status del = env->DeleteFile(dbname + "/" + filenames[i]);
+ if (result.ok() && !del.ok()) {
+ result = del;
+ }
+ }
+ }
+ env->UnlockFile(lock); // Ignore error since state is already gone
+ env->DeleteFile(lockname);
+ env->DeleteDir(dbname); // Ignore error in case dir contains other files
+ }
+ return result;
+}
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/db/db_impl.h b/clipper/HyperLevelDB/db/db_impl.h
new file mode 100644
index 0000000..50a3185
--- /dev/null
+++ b/clipper/HyperLevelDB/db/db_impl.h
@@ -0,0 +1,269 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#ifndef STORAGE_LEVELDB_DB_DB_IMPL_H_
+#define STORAGE_LEVELDB_DB_DB_IMPL_H_
+
+#include <deque>
+#include <list>
+#include <set>
+#ifdef _LIBCPP_VERSION
+#include <memory>
+#else
+#include <tr1/memory>
+#endif
+#include "db/dbformat.h"
+#include "db/log_writer.h"
+#include "db/replay_iterator.h"
+#include "db/snapshot.h"
+#include "hyperleveldb/db.h"
+#include "hyperleveldb/env.h"
+#include "port/port.h"
+#include "port/thread_annotations.h"
+
+namespace leveldb {
+#ifdef _LIBCPP_VERSION
+#define SHARED_PTR std::shared_ptr
+#else
+#define SHARED_PTR std::tr1::shared_ptr
+#endif
+
+class MemTable;
+class TableCache;
+class Version;
+class VersionEdit;
+class VersionSet;
+
+class DBImpl : public DB {
+ public:
+ DBImpl(const Options& options, const std::string& dbname);
+ virtual ~DBImpl();
+
+ // Implementations of the DB interface
+ virtual Status Put(const WriteOptions&, const Slice& key, const Slice& value);
+ virtual Status Delete(const WriteOptions&, const Slice& key);
+ virtual Status Write(const WriteOptions& options, WriteBatch* updates);
+ virtual Status Get(const ReadOptions& options,
+ const Slice& key,
+ std::string* value);
+ virtual Iterator* NewIterator(const ReadOptions&);
+ virtual void GetReplayTimestamp(std::string* timestamp);
+ virtual void AllowGarbageCollectBeforeTimestamp(const std::string& timestamp);
+ virtual bool ValidateTimestamp(const std::string& timestamp);
+ virtual int CompareTimestamps(const std::string& lhs, const std::string& rhs);
+ virtual Status GetReplayIterator(const std::string& timestamp,
+ ReplayIterator** iter);
+ virtual void ReleaseReplayIterator(ReplayIterator* iter);
+ virtual const Snapshot* GetSnapshot();
+ virtual void ReleaseSnapshot(const Snapshot* snapshot);
+ virtual bool GetProperty(const Slice& property, std::string* value);
+ virtual void GetApproximateSizes(const Range* range, int n, uint64_t* sizes);
+ virtual void CompactRange(const Slice* begin, const Slice* end);
+ virtual Status LiveBackup(const Slice& name);
+
+ // Extra methods (for testing) that are not in the public DB interface
+
+ // Compact any files in the named level that overlap [*begin,*end]
+ void TEST_CompactRange(int level, const Slice* begin, const Slice* end);
+
+ // Force current memtable contents to be compacted.
+ Status TEST_CompactMemTable();
+
+ // Return an internal iterator over the current state of the database.
+ // The keys of this iterator are internal keys (see format.h).
+ // The returned iterator should be deleted when no longer needed.
+ Iterator* TEST_NewInternalIterator();
+
+ // Return the maximum overlapping data (in bytes) at next level for any
+ // file at a level >= 1.
+ int64_t TEST_MaxNextLevelOverlappingBytes();
+
+ // Record a sample of bytes read at the specified internal key.
+ // Samples are taken approximately once every config::kReadBytesPeriod
+ // bytes.
+ void RecordReadSample(Slice key);
+
+ // Peek at the last sequence;
+ // REQURES: mutex_ not held
+ SequenceNumber LastSequence();
+
+ private:
+ friend class DB;
+ struct CompactionState;
+ struct Writer;
+
+ Iterator* NewInternalIterator(const ReadOptions&, uint64_t number,
+ SequenceNumber* latest_snapshot,
+ uint32_t* seed, bool external_sync);
+
+ Status NewDB();
+
+ // Recover the descriptor from persistent storage. May do a significant
+ // amount of work to recover recently logged updates. Any changes to
+ // be made to the descriptor are added to *edit.
+ Status Recover(VersionEdit* edit) EXCLUSIVE_LOCKS_REQUIRED(mutex_);
+
+ void MaybeIgnoreError(Status* s) const;
+
+ // Delete any unneeded files and stale in-memory entries.
+ void DeleteObsoleteFiles();
+
+ // A background thread to compact the in-memory write buffer to disk.
+ // Switches to a new log-file/memtable and writes a new descriptor iff
+ // successful.
+ static void CompactMemTableWrapper(void* db)
+ { reinterpret_cast<DBImpl*>(db)->CompactMemTableThread(); }
+ void CompactMemTableThread();
+
+ Status RecoverLogFile(uint64_t log_number,
+ VersionEdit* edit,
+ SequenceNumber* max_sequence)
+ EXCLUSIVE_LOCKS_REQUIRED(mutex_);
+
+ Status WriteLevel0Table(MemTable* mem, VersionEdit* edit, Version* base, uint64_t* number)
+ EXCLUSIVE_LOCKS_REQUIRED(mutex_);
+
+ Status SequenceWriteBegin(Writer* w, WriteBatch* updates)
+ EXCLUSIVE_LOCKS_REQUIRED(mutex_);
+ void SequenceWriteEnd(Writer* w)
+ EXCLUSIVE_LOCKS_REQUIRED(mutex_);
+
+ static void CompactLevelWrapper(void* db)
+ { reinterpret_cast<DBImpl*>(db)->CompactLevelThread(); }
+ void CompactLevelThread();
+ Status BackgroundCompaction() EXCLUSIVE_LOCKS_REQUIRED(mutex_);
+
+ static void CompactOptimisticWrapper(void* db)
+ { reinterpret_cast<DBImpl*>(db)->CompactOptimisticThread(); }
+ void CompactOptimisticThread();
+ Status OptimisticCompaction() EXCLUSIVE_LOCKS_REQUIRED(mutex_);
+
+ void RecordBackgroundError(const Status& s);
+
+ void CleanupCompaction(CompactionState* compact)
+ EXCLUSIVE_LOCKS_REQUIRED(mutex_);
+ Status DoCompactionWork(CompactionState* compact)
+ EXCLUSIVE_LOCKS_REQUIRED(mutex_);
+ Status OpenCompactionOutputFile(CompactionState* compact);
+ Status FinishCompactionOutputFile(CompactionState* compact, Iterator* input);
+ Status InstallCompactionResults(CompactionState* compact)
+ EXCLUSIVE_LOCKS_REQUIRED(mutex_);
+
+ // Constant after construction
+ Env* const env_;
+ const InternalKeyComparator internal_comparator_;
+ const InternalFilterPolicy internal_filter_policy_;
+ const Options options_; // options_.comparator == &internal_comparator_
+ bool owns_info_log_;
+ bool owns_cache_;
+ const std::string dbname_;
+
+ // table_cache_ provides its own synchronization
+ TableCache* table_cache_;
+
+ // Lock over the persistent DB state. Non-NULL iff successfully acquired.
+ FileLock* db_lock_;
+
+ // State below is protected by mutex_
+ port::Mutex mutex_;
+ port::AtomicPointer shutting_down_;
+ MemTable* mem_;
+ MemTable* imm_; // Memtable being compacted
+ port::AtomicPointer has_imm_; // So bg thread can detect non-NULL imm_
+ SHARED_PTR<WritableFile> logfile_;
+ uint64_t logfile_number_;
+ SHARED_PTR<log::Writer> log_;
+ uint32_t seed_; // For sampling.
+
+ // Synchronize writers
+ uint64_t __attribute__ ((aligned (8))) writers_upper_;
+ Writer** writers_tail_;
+
+ SnapshotList snapshots_;
+
+ // Set of table files to protect from deletion because they are
+ // part of ongoing compactions.
+ std::set<uint64_t> pending_outputs_;
+
+ bool allow_background_activity_;
+ bool levels_locked_[leveldb::config::kNumLevels];
+ int num_bg_threads_;
+ // Tell the foreground that background has done something of note
+ port::CondVar bg_fg_cv_;
+ // Communicate with compaction background thread
+ port::CondVar bg_compaction_cv_;
+ // Communicate with memtable->L0 background thread
+ port::CondVar bg_memtable_cv_;
+ // Communicate with the optimistic background thread
+ bool bg_optimistic_trip_;
+ port::CondVar bg_optimistic_cv_;
+ // Mutual exlusion protecting the LogAndApply func
+ port::CondVar bg_log_cv_;
+ bool bg_log_occupied_;
+
+ // Information for a manual compaction
+ struct ManualCompaction {
+ int level;
+ bool done;
+ const InternalKey* begin; // NULL means beginning of key range
+ const InternalKey* end; // NULL means end of key range
+ InternalKey tmp_storage; // Used to keep track of compaction progress
+ };
+ ManualCompaction* manual_compaction_;
+
+ // Where have we pinned tombstones?
+ SequenceNumber manual_garbage_cutoff_;
+
+ // replay iterators
+ std::list<ReplayIteratorImpl*> replay_iters_;
+
+ // how many reads have we done in a row, uninterrupted by writes
+ uint64_t straight_reads_;
+
+ VersionSet* versions_;
+
+ // Information for ongoing backup processes
+ port::CondVar backup_cv_;
+ port::AtomicPointer backup_in_progress_; // non-NULL in progress
+ bool backup_deferred_delete_; // DeleteObsoleteFiles delayed by backup; protect with mutex_
+
+ // Have we encountered a background error in paranoid mode?
+ Status bg_error_;
+
+ // Per level compaction stats. stats_[level] stores the stats for
+ // compactions that produced data for the specified "level".
+ struct CompactionStats {
+ int64_t micros;
+ int64_t bytes_read;
+ int64_t bytes_written;
+
+ CompactionStats() : micros(0), bytes_read(0), bytes_written(0) { }
+
+ void Add(const CompactionStats& c) {
+ this->micros += c.micros;
+ this->bytes_read += c.bytes_read;
+ this->bytes_written += c.bytes_written;
+ }
+ };
+ CompactionStats stats_[config::kNumLevels];
+
+ // No copying allowed
+ DBImpl(const DBImpl&);
+ void operator=(const DBImpl&);
+
+ const Comparator* user_comparator() const {
+ return internal_comparator_.user_comparator();
+ }
+};
+
+// Sanitize db options. The caller should delete result.info_log if
+// it is not equal to src.info_log.
+extern Options SanitizeOptions(const std::string& db,
+ const InternalKeyComparator* icmp,
+ const InternalFilterPolicy* ipolicy,
+ const Options& src);
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_DB_DB_IMPL_H_
diff --git a/clipper/HyperLevelDB/db/db_iter.cc b/clipper/HyperLevelDB/db/db_iter.cc
new file mode 100644
index 0000000..5ebafe7
--- /dev/null
+++ b/clipper/HyperLevelDB/db/db_iter.cc
@@ -0,0 +1,320 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "db/db_iter.h"
+
+#include "db/filename.h"
+#include "db/db_impl.h"
+#include "db/dbformat.h"
+#include "hyperleveldb/env.h"
+#include "hyperleveldb/iterator.h"
+#include "port/port.h"
+#include "util/logging.h"
+#include "util/mutexlock.h"
+#include "util/random.h"
+
+namespace leveldb {
+
+#if 0
+static void DumpInternalIter(Iterator* iter) {
+ for (iter->SeekToFirst(); iter->Valid(); iter->Next()) {
+ ParsedInternalKey k;
+ if (!ParseInternalKey(iter->key(), &k)) {
+ fprintf(stderr, "Corrupt '%s'\n", EscapeString(iter->key()).c_str());
+ } else {
+ fprintf(stderr, "@ '%s'\n", k.DebugString().c_str());
+ }
+ }
+}
+#endif
+
+namespace {
+
+// Memtables and sstables that make the DB representation contain
+// (userkey,seq,type) => uservalue entries. DBIter
+// combines multiple entries for the same userkey found in the DB
+// representation into a single entry while accounting for sequence
+// numbers, deletion markers, overwrites, etc.
+class DBIter: public Iterator {
+ public:
+ // Which direction is the iterator currently moving?
+ // (1) When moving forward, the internal iterator is positioned at
+ // the exact entry that yields this->key(), this->value()
+ // (2) When moving backwards, the internal iterator is positioned
+ // just before all entries whose user key == this->key().
+ enum Direction {
+ kForward,
+ kReverse
+ };
+
+ DBIter(DBImpl* db, const Comparator* cmp, Iterator* iter, SequenceNumber s,
+ uint32_t seed)
+ : db_(db),
+ user_comparator_(cmp),
+ iter_(iter),
+ sequence_(s),
+ direction_(kForward),
+ valid_(false),
+ rnd_(seed),
+ bytes_counter_(RandomPeriod()) {
+ }
+ virtual ~DBIter() {
+ delete iter_;
+ }
+ virtual bool Valid() const { return valid_; }
+ virtual Slice key() const {
+ assert(valid_);
+ return (direction_ == kForward) ? ExtractUserKey(iter_->key()) : saved_key_;
+ }
+ virtual Slice value() const {
+ assert(valid_);
+ return (direction_ == kForward) ? iter_->value() : saved_value_;
+ }
+ virtual Status status() const {
+ if (status_.ok()) {
+ return iter_->status();
+ } else {
+ return status_;
+ }
+ }
+
+ virtual void Next();
+ virtual void Prev();
+ virtual void Seek(const Slice& target);
+ virtual void SeekToFirst();
+ virtual void SeekToLast();
+
+ private:
+ void FindNextUserEntry(bool skipping, std::string* skip);
+ void FindPrevUserEntry();
+ bool ParseKey(ParsedInternalKey* key);
+
+ inline void SaveKey(const Slice& k, std::string* dst) {
+ dst->assign(k.data(), k.size());
+ }
+
+ inline void ClearSavedValue() {
+ if (saved_value_.capacity() > 1048576) {
+ std::string empty;
+ swap(empty, saved_value_);
+ } else {
+ saved_value_.clear();
+ }
+ }
+
+ // Pick next gap with average value of config::kReadBytesPeriod.
+ ssize_t RandomPeriod() {
+ return rnd_.Uniform(2*config::kReadBytesPeriod);
+ }
+
+ DBImpl* db_;
+ const Comparator* const user_comparator_;
+ Iterator* const iter_;
+ SequenceNumber const sequence_;
+
+ Status status_;
+ std::string saved_key_; // == current key when direction_==kReverse
+ std::string saved_value_; // == current raw value when direction_==kReverse
+ Direction direction_;
+ bool valid_;
+
+ Random rnd_;
+ ssize_t bytes_counter_;
+
+ // No copying allowed
+ DBIter(const DBIter&);
+ void operator=(const DBIter&);
+};
+
+inline bool DBIter::ParseKey(ParsedInternalKey* ikey) {
+ Slice k = iter_->key();
+ ssize_t n = k.size() + iter_->value().size();
+ bytes_counter_ -= n;
+ while (bytes_counter_ < 0) {
+ bytes_counter_ += RandomPeriod();
+ db_->RecordReadSample(k);
+ }
+ if (!ParseInternalKey(k, ikey)) {
+ status_ = Status::Corruption("corrupted internal key in DBIter");
+ return false;
+ } else {
+ return true;
+ }
+}
+
+void DBIter::Next() {
+ assert(valid_);
+
+ // Temporarily use saved_key_ as storage for key to skip.
+ std::string* skip = &saved_key_;
+
+ if (direction_ == kReverse) { // Switch directions?
+ direction_ = kForward;
+ // iter_ is pointing just before the entries for this->key(),
+ // so advance into the range of entries for this->key() and then
+ // use the normal skipping code below.
+ if (!iter_->Valid()) {
+ iter_->SeekToFirst();
+ } else {
+ iter_->Next();
+ }
+ if (!iter_->Valid()) {
+ valid_ = false;
+ saved_key_.clear();
+ return;
+ }
+ // saved_key_ already contains the key to skip past.
+ } else {
+ // Store in saved_key_ the current key so we skip it below.
+ SaveKey(ExtractUserKey(iter_->key()), &saved_key_);
+ }
+
+ FindNextUserEntry(true, &saved_key_);
+}
+
+void DBIter::FindNextUserEntry(bool skipping, std::string* skip) {
+ // Loop until we hit an acceptable entry to yield
+ assert(iter_->Valid());
+ assert(direction_ == kForward);
+ do {
+ ParsedInternalKey ikey;
+ if (ParseKey(&ikey) && ikey.sequence <= sequence_) {
+ switch (ikey.type) {
+ case kTypeDeletion:
+ // Arrange to skip all upcoming entries for this key since
+ // they are hidden by this deletion.
+ SaveKey(ikey.user_key, skip);
+ skipping = true;
+ break;
+ case kTypeValue:
+ if (skipping &&
+ user_comparator_->Compare(ikey.user_key, *skip) <= 0) {
+ // Entry hidden
+ } else {
+ valid_ = true;
+ saved_key_.clear();
+ return;
+ }
+ break;
+ }
+ }
+ iter_->Next();
+ } while (iter_->Valid());
+ saved_key_.clear();
+ valid_ = false;
+}
+
+void DBIter::Prev() {
+ assert(valid_);
+
+ if (direction_ == kForward) { // Switch directions?
+ // iter_ is pointing at the current entry. Scan backwards until
+ // the key changes so we can use the normal reverse scanning code.
+ assert(iter_->Valid()); // Otherwise valid_ would have been false
+ SaveKey(ExtractUserKey(iter_->key()), &saved_key_);
+ while (true) {
+ iter_->Prev();
+ if (!iter_->Valid()) {
+ valid_ = false;
+ saved_key_.clear();
+ ClearSavedValue();
+ return;
+ }
+ if (user_comparator_->Compare(ExtractUserKey(iter_->key()),
+ saved_key_) < 0) {
+ break;
+ }
+ }
+ direction_ = kReverse;
+ }
+
+ FindPrevUserEntry();
+}
+
+void DBIter::FindPrevUserEntry() {
+ assert(direction_ == kReverse);
+
+ ValueType value_type = kTypeDeletion;
+ if (iter_->Valid()) {
+ do {
+ ParsedInternalKey ikey;
+ if (ParseKey(&ikey) && ikey.sequence <= sequence_) {
+ if ((value_type != kTypeDeletion) &&
+ user_comparator_->Compare(ikey.user_key, saved_key_) < 0) {
+ // We encountered a non-deleted value in entries for previous keys,
+ break;
+ }
+ value_type = ikey.type;
+ if (value_type == kTypeDeletion) {
+ saved_key_.clear();
+ ClearSavedValue();
+ } else {
+ Slice raw_value = iter_->value();
+ if (saved_value_.capacity() > raw_value.size() + 1048576) {
+ std::string empty;
+ swap(empty, saved_value_);
+ }
+ SaveKey(ExtractUserKey(iter_->key()), &saved_key_);
+ saved_value_.assign(raw_value.data(), raw_value.size());
+ }
+ }
+ iter_->Prev();
+ } while (iter_->Valid());
+ }
+
+ if (value_type == kTypeDeletion) {
+ // End
+ valid_ = false;
+ saved_key_.clear();
+ ClearSavedValue();
+ direction_ = kForward;
+ } else {
+ valid_ = true;
+ }
+}
+
+void DBIter::Seek(const Slice& target) {
+ direction_ = kForward;
+ ClearSavedValue();
+ saved_key_.clear();
+ AppendInternalKey(
+ &saved_key_, ParsedInternalKey(target, sequence_, kValueTypeForSeek));
+ iter_->Seek(saved_key_);
+ if (iter_->Valid()) {
+ FindNextUserEntry(false, &saved_key_ /* temporary storage */);
+ } else {
+ valid_ = false;
+ }
+}
+
+void DBIter::SeekToFirst() {
+ direction_ = kForward;
+ ClearSavedValue();
+ iter_->SeekToFirst();
+ if (iter_->Valid()) {
+ FindNextUserEntry(false, &saved_key_ /* temporary storage */);
+ } else {
+ valid_ = false;
+ }
+}
+
+void DBIter::SeekToLast() {
+ direction_ = kReverse;
+ ClearSavedValue();
+ iter_->SeekToLast();
+ FindPrevUserEntry();
+}
+
+} // anonymous namespace
+
+Iterator* NewDBIterator(
+ DBImpl* db,
+ const Comparator* user_key_comparator,
+ Iterator* internal_iter,
+ SequenceNumber sequence,
+ uint32_t seed) {
+ return new DBIter(db, user_key_comparator, internal_iter, sequence, seed);
+}
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/db/db_iter.h b/clipper/HyperLevelDB/db/db_iter.h
new file mode 100644
index 0000000..2abadd1
--- /dev/null
+++ b/clipper/HyperLevelDB/db/db_iter.h
@@ -0,0 +1,28 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#ifndef STORAGE_LEVELDB_DB_DB_ITER_H_
+#define STORAGE_LEVELDB_DB_DB_ITER_H_
+
+#include <stdint.h>
+#include "hyperleveldb/db.h"
+#include "db/dbformat.h"
+
+namespace leveldb {
+
+class DBImpl;
+
+// Return a new iterator that converts internal keys (yielded by
+// "*internal_iter") that were live at the specified "sequence" number
+// into appropriate user keys.
+extern Iterator* NewDBIterator(
+ DBImpl* db,
+ const Comparator* user_key_comparator,
+ Iterator* internal_iter,
+ SequenceNumber sequence,
+ uint32_t seed);
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_DB_DB_ITER_H_
diff --git a/clipper/HyperLevelDB/db/db_test.cc b/clipper/HyperLevelDB/db/db_test.cc
new file mode 100644
index 0000000..b2f1bfa
--- /dev/null
+++ b/clipper/HyperLevelDB/db/db_test.cc
@@ -0,0 +1,2228 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "hyperleveldb/db.h"
+#include "hyperleveldb/filter_policy.h"
+#include "db/db_impl.h"
+#include "db/filename.h"
+#include "db/version_set.h"
+#include "db/write_batch_internal.h"
+#include "hyperleveldb/cache.h"
+#include "hyperleveldb/env.h"
+#include "hyperleveldb/table.h"
+#include "util/hash.h"
+#include "util/logging.h"
+#include "util/mutexlock.h"
+#include "util/testharness.h"
+#include "util/testutil.h"
+
+namespace leveldb {
+
+static std::string RandomString(Random* rnd, int len) {
+ std::string r;
+ test::RandomString(rnd, len, &r);
+ return r;
+}
+
+namespace {
+class AtomicCounter {
+ private:
+ port::Mutex mu_;
+ int count_;
+ public:
+ AtomicCounter() : count_(0) { }
+ void Increment() {
+ IncrementBy(1);
+ }
+ void IncrementBy(int count) {
+ MutexLock l(&mu_);
+ count_ += count;
+ }
+ int Read() {
+ MutexLock l(&mu_);
+ return count_;
+ }
+ void Reset() {
+ MutexLock l(&mu_);
+ count_ = 0;
+ }
+};
+
+void DelayMilliseconds(int millis) {
+ Env::Default()->SleepForMicroseconds(millis * 1000);
+}
+}
+
+// Special Env used to delay background operations
+class SpecialEnv : public EnvWrapper {
+ public:
+ // sstable/log Sync() calls are blocked while this pointer is non-NULL.
+ port::AtomicPointer delay_data_sync_;
+
+ // sstable/log Sync() calls return an error.
+ port::AtomicPointer data_sync_error_;
+
+ // Simulate no-space errors while this pointer is non-NULL.
+ port::AtomicPointer no_space_;
+
+ // Simulate non-writable file system while this pointer is non-NULL
+ port::AtomicPointer non_writable_;
+
+ // Force sync of manifest files to fail while this pointer is non-NULL
+ port::AtomicPointer manifest_sync_error_;
+
+ // Force write to manifest files to fail while this pointer is non-NULL
+ port::AtomicPointer manifest_write_error_;
+
+ bool count_random_reads_;
+ AtomicCounter random_read_counter_;
+
+ explicit SpecialEnv(Env* base) : EnvWrapper(base) {
+ delay_data_sync_.Release_Store(NULL);
+ data_sync_error_.Release_Store(NULL);
+ no_space_.Release_Store(NULL);
+ non_writable_.Release_Store(NULL);
+ count_random_reads_ = false;
+ manifest_sync_error_.Release_Store(NULL);
+ manifest_write_error_.Release_Store(NULL);
+ }
+
+ Status NewWritableFile(const std::string& f, WritableFile** r) {
+ class DataFile : public WritableFile {
+ private:
+ SpecialEnv* env_;
+ WritableFile* base_;
+
+ public:
+ DataFile(SpecialEnv* env, WritableFile* base)
+ : env_(env),
+ base_(base) {
+ }
+ ~DataFile() { delete base_; }
+ Status WriteAt(uint64_t offset, const Slice& data) {
+ if (env_->no_space_.Acquire_Load() != NULL) {
+ // Drop writes on the floor
+ return Status::OK();
+ } else {
+ return base_->WriteAt(offset, data);
+ }
+ }
+ Status Append(const Slice& data) {
+ if (env_->no_space_.Acquire_Load() != NULL) {
+ // Drop writes on the floor
+ return Status::OK();
+ } else {
+ return base_->Append(data);
+ }
+ }
+ Status Close() { return base_->Close(); }
+ Status Sync() {
+ if (env_->data_sync_error_.Acquire_Load() != NULL) {
+ return Status::IOError("simulated data sync error");
+ }
+ while (env_->delay_data_sync_.Acquire_Load() != NULL) {
+ DelayMilliseconds(100);
+ }
+ return base_->Sync();
+ }
+ };
+ class ManifestFile : public WritableFile {
+ private:
+ SpecialEnv* env_;
+ WritableFile* base_;
+ public:
+ ManifestFile(SpecialEnv* env, WritableFile* b) : env_(env), base_(b) { }
+ ~ManifestFile() { delete base_; }
+ Status WriteAt(uint64_t offset, const Slice& data) {
+ if (env_->manifest_write_error_.Acquire_Load() != NULL) {
+ return Status::IOError("simulated writer error");
+ } else {
+ return base_->WriteAt(offset, data);
+ }
+ }
+ Status Append(const Slice& data) {
+ if (env_->manifest_write_error_.Acquire_Load() != NULL) {
+ return Status::IOError("simulated writer error");
+ } else {
+ return base_->Append(data);
+ }
+ }
+ Status Close() { return base_->Close(); }
+ Status Sync() {
+ if (env_->manifest_sync_error_.Acquire_Load() != NULL) {
+ return Status::IOError("simulated sync error");
+ } else {
+ return base_->Sync();
+ }
+ }
+ };
+
+ if (non_writable_.Acquire_Load() != NULL) {
+ return Status::IOError("simulated write error");
+ }
+
+ Status s = target()->NewWritableFile(f, r);
+ if (s.ok()) {
+ if (strstr(f.c_str(), ".ldb") != NULL ||
+ strstr(f.c_str(), ".log") != NULL) {
+ *r = new DataFile(this, *r);
+ } else if (strstr(f.c_str(), "MANIFEST") != NULL) {
+ *r = new ManifestFile(this, *r);
+ }
+ }
+ return s;
+ }
+
+ Status NewRandomAccessFile(const std::string& f, RandomAccessFile** r) {
+ class CountingFile : public RandomAccessFile {
+ private:
+ RandomAccessFile* target_;
+ AtomicCounter* counter_;
+ public:
+ CountingFile(RandomAccessFile* target, AtomicCounter* counter)
+ : target_(target), counter_(counter) {
+ }
+ virtual ~CountingFile() { delete target_; }
+ virtual Status Read(uint64_t offset, size_t n, Slice* result,
+ char* scratch) const {
+ counter_->Increment();
+ return target_->Read(offset, n, result, scratch);
+ }
+ };
+
+ Status s = target()->NewRandomAccessFile(f, r);
+ if (s.ok() && count_random_reads_) {
+ *r = new CountingFile(*r, &random_read_counter_);
+ }
+ return s;
+ }
+};
+
+class DBTest {
+ private:
+ const FilterPolicy* filter_policy_;
+
+ // Sequence of option configurations to try
+ enum OptionConfig {
+ kDefault,
+ kFilter,
+ kUncompressed,
+ kEnd
+ };
+ int option_config_;
+
+ public:
+ std::string dbname_;
+ SpecialEnv* env_;
+ DB* db_;
+
+ Options last_options_;
+
+ DBTest() : option_config_(kDefault),
+ env_(new SpecialEnv(Env::Default())) {
+ filter_policy_ = NewBloomFilterPolicy(10);
+ dbname_ = test::TmpDir() + "/db_test";
+ DestroyDB(dbname_, Options());
+ db_ = NULL;
+ Reopen();
+ }
+
+ ~DBTest() {
+ delete db_;
+ DestroyDB(dbname_, Options());
+ delete env_;
+ delete filter_policy_;
+ }
+
+ // Switch to a fresh database with the next option configuration to
+ // test. Return false if there are no more configurations to test.
+ bool ChangeOptions() {
+ option_config_++;
+ if (option_config_ >= kEnd) {
+ return false;
+ } else {
+ DestroyAndReopen();
+ return true;
+ }
+ }
+
+ // Return the current option configuration.
+ Options CurrentOptions() {
+ Options options;
+ switch (option_config_) {
+ case kFilter:
+ options.filter_policy = filter_policy_;
+ break;
+ case kUncompressed:
+ options.compression = kNoCompression;
+ break;
+ default:
+ break;
+ }
+ return options;
+ }
+
+ DBImpl* dbfull() {
+ return reinterpret_cast<DBImpl*>(db_);
+ }
+
+ void Reopen(Options* options = NULL) {
+ ASSERT_OK(TryReopen(options));
+ }
+
+ void Close() {
+ delete db_;
+ db_ = NULL;
+ }
+
+ void DestroyAndReopen(Options* options = NULL) {
+ delete db_;
+ db_ = NULL;
+ DestroyDB(dbname_, Options());
+ ASSERT_OK(TryReopen(options));
+ }
+
+ Status TryReopen(Options* options) {
+ delete db_;
+ db_ = NULL;
+ Options opts;
+ if (options != NULL) {
+ opts = *options;
+ } else {
+ opts = CurrentOptions();
+ opts.create_if_missing = true;
+ }
+ last_options_ = opts;
+
+ return DB::Open(opts, dbname_, &db_);
+ }
+
+ Status Put(const std::string& k, const std::string& v) {
+ return db_->Put(WriteOptions(), k, v);
+ }
+
+ Status Delete(const std::string& k) {
+ return db_->Delete(WriteOptions(), k);
+ }
+
+ std::string Get(const std::string& k, const Snapshot* snapshot = NULL) {
+ ReadOptions options;
+ options.snapshot = snapshot;
+ std::string result;
+ Status s = db_->Get(options, k, &result);
+ if (s.IsNotFound()) {
+ result = "NOT_FOUND";
+ } else if (!s.ok()) {
+ result = s.ToString();
+ }
+ return result;
+ }
+
+ // Return a string that contains all key,value pairs in order,
+ // formatted like "(k1->v1)(k2->v2)".
+ std::string Contents() {
+ std::vector<std::string> forward;
+ std::string result;
+ Iterator* iter = db_->NewIterator(ReadOptions());
+ for (iter->SeekToFirst(); iter->Valid(); iter->Next()) {
+ std::string s = IterStatus(iter);
+ result.push_back('(');
+ result.append(s);
+ result.push_back(')');
+ forward.push_back(s);
+ }
+
+ // Check reverse iteration results are the reverse of forward results
+ size_t matched = 0;
+ for (iter->SeekToLast(); iter->Valid(); iter->Prev()) {
+ ASSERT_LT(matched, forward.size());
+ ASSERT_EQ(IterStatus(iter), forward[forward.size() - matched - 1]);
+ matched++;
+ }
+ ASSERT_EQ(matched, forward.size());
+
+ delete iter;
+ return result;
+ }
+
+ std::string AllEntriesFor(const Slice& user_key) {
+ Iterator* iter = dbfull()->TEST_NewInternalIterator();
+ InternalKey target(user_key, kMaxSequenceNumber, kTypeValue);
+ iter->Seek(target.Encode());
+ std::string result;
+ if (!iter->status().ok()) {
+ result = iter->status().ToString();
+ } else {
+ result = "[ ";
+ bool first = true;
+ while (iter->Valid()) {
+ ParsedInternalKey ikey;
+ if (!ParseInternalKey(iter->key(), &ikey)) {
+ result += "CORRUPTED";
+ } else {
+ if (last_options_.comparator->Compare(ikey.user_key, user_key) != 0) {
+ break;
+ }
+ if (!first) {
+ result += ", ";
+ }
+ first = false;
+ switch (ikey.type) {
+ case kTypeValue:
+ result += iter->value().ToString();
+ break;
+ case kTypeDeletion:
+ result += "DEL";
+ break;
+ }
+ }
+ iter->Next();
+ }
+ if (!first) {
+ result += " ";
+ }
+ result += "]";
+ }
+ delete iter;
+ return result;
+ }
+
+ int NumTableFilesAtLevel(int level) {
+ std::string property;
+ ASSERT_TRUE(
+ db_->GetProperty("leveldb.num-files-at-level" + NumberToString(level),
+ &property));
+ return atoi(property.c_str());
+ }
+
+ int TotalTableFiles() {
+ int result = 0;
+ for (int level = 0; level < config::kNumLevels; level++) {
+ result += NumTableFilesAtLevel(level);
+ }
+ return result;
+ }
+
+ // Return spread of files per level
+ std::string FilesPerLevel() {
+ std::string result;
+ int last_non_zero_offset = 0;
+ for (int level = 0; level < config::kNumLevels; level++) {
+ int f = NumTableFilesAtLevel(level);
+ char buf[100];
+ snprintf(buf, sizeof(buf), "%s%d", (level ? "," : ""), f);
+ result += buf;
+ if (f > 0) {
+ last_non_zero_offset = result.size();
+ }
+ }
+ result.resize(last_non_zero_offset);
+ return result;
+ }
+
+ int CountFiles() {
+ std::vector<std::string> files;
+ env_->GetChildren(dbname_, &files);
+ return static_cast<int>(files.size());
+ }
+
+ uint64_t Size(const Slice& start, const Slice& limit) {
+ Range r(start, limit);
+ uint64_t size;
+ db_->GetApproximateSizes(&r, 1, &size);
+ return size;
+ }
+
+ void Compact(const Slice& start, const Slice& limit) {
+ db_->CompactRange(&start, &limit);
+ }
+
+ // Do n memtable compactions, each of which produces an sstable
+ // covering the range [small,large].
+ void MakeTables(int n, const std::string& small, const std::string& large) {
+ for (int i = 0; i < n; i++) {
+ Put(small, "begin");
+ Put(large, "end");
+ dbfull()->TEST_CompactMemTable();
+ }
+ }
+
+ // Prevent pushing of new sstables into deeper levels by adding
+ // tables that cover a specified range to all levels.
+ void FillLevels(const std::string& smallest, const std::string& largest) {
+ MakeTables(config::kNumLevels, smallest, largest);
+ }
+
+ void DumpFileCounts(const char* label) {
+ fprintf(stderr, "---\n%s:\n", label);
+ fprintf(stderr, "maxoverlap: %lld\n",
+ static_cast<long long>(
+ dbfull()->TEST_MaxNextLevelOverlappingBytes()));
+ for (int level = 0; level < config::kNumLevels; level++) {
+ int num = NumTableFilesAtLevel(level);
+ if (num > 0) {
+ fprintf(stderr, " level %3d : %d files\n", level, num);
+ }
+ }
+ }
+
+ std::string DumpSSTableList() {
+ std::string property;
+ db_->GetProperty("leveldb.sstables", &property);
+ return property;
+ }
+
+ std::string IterStatus(Iterator* iter) {
+ std::string result;
+ if (iter->Valid()) {
+ result = iter->key().ToString() + "->" + iter->value().ToString();
+ } else {
+ result = "(invalid)";
+ }
+ return result;
+ }
+
+ bool DeleteAnSSTFile() {
+ std::vector<std::string> filenames;
+ ASSERT_OK(env_->GetChildren(dbname_, &filenames));
+ uint64_t number;
+ FileType type;
+ for (size_t i = 0; i < filenames.size(); i++) {
+ if (ParseFileName(filenames[i], &number, &type) && type == kTableFile) {
+ ASSERT_OK(env_->DeleteFile(SSTTableFileName(dbname_, number)));
+ return true;
+ }
+ }
+ return false;
+ }
+
+ // Returns number of files renamed.
+ int RenameLDBToSST() {
+ std::vector<std::string> filenames;
+ ASSERT_OK(env_->GetChildren(dbname_, &filenames));
+ uint64_t number;
+ FileType type;
+ int files_renamed = 0;
+ for (size_t i = 0; i < filenames.size(); i++) {
+ if (ParseFileName(filenames[i], &number, &type) && type == kTableFile) {
+ const std::string from = SSTTableFileName(dbname_, number);
+ const std::string to = TableFileName(dbname_, number);
+ ASSERT_OK(env_->RenameFile(from, to));
+ files_renamed++;
+ }
+ }
+ return files_renamed;
+ }
+};
+
+TEST(DBTest, Empty) {
+ do {
+ ASSERT_TRUE(db_ != NULL);
+ ASSERT_EQ("NOT_FOUND", Get("foo"));
+ } while (ChangeOptions());
+}
+
+TEST(DBTest, ReadWrite) {
+ do {
+ ASSERT_OK(Put("foo", "v1"));
+ ASSERT_EQ("v1", Get("foo"));
+ ASSERT_OK(Put("bar", "v2"));
+ ASSERT_OK(Put("foo", "v3"));
+ ASSERT_EQ("v3", Get("foo"));
+ ASSERT_EQ("v2", Get("bar"));
+ } while (ChangeOptions());
+}
+
+TEST(DBTest, PutDeleteGet) {
+ do {
+ ASSERT_OK(db_->Put(WriteOptions(), "foo", "v1"));
+ ASSERT_EQ("v1", Get("foo"));
+ ASSERT_OK(db_->Put(WriteOptions(), "foo", "v2"));
+ ASSERT_EQ("v2", Get("foo"));
+ ASSERT_OK(db_->Delete(WriteOptions(), "foo"));
+ ASSERT_EQ("NOT_FOUND", Get("foo"));
+ } while (ChangeOptions());
+}
+
+TEST(DBTest, GetFromImmutableLayer) {
+ do {
+ Options options = CurrentOptions();
+ options.env = env_;
+ options.write_buffer_size = 100000; // Small write buffer
+ Reopen(&options);
+
+ ASSERT_OK(Put("foo", "v1"));
+ ASSERT_EQ("v1", Get("foo"));
+
+ env_->delay_data_sync_.Release_Store(env_); // Block sync calls
+ Put("k1", std::string(100000, 'x')); // Fill memtable
+ Put("k2", std::string(100000, 'y')); // Trigger compaction
+ ASSERT_EQ("v1", Get("foo"));
+ env_->delay_data_sync_.Release_Store(NULL); // Release sync calls
+ } while (ChangeOptions());
+}
+
+TEST(DBTest, GetFromVersions) {
+ do {
+ ASSERT_OK(Put("foo", "v1"));
+ dbfull()->TEST_CompactMemTable();
+ ASSERT_EQ("v1", Get("foo"));
+ } while (ChangeOptions());
+}
+
+TEST(DBTest, GetSnapshot) {
+ do {
+ // Try with both a short key and a long key
+ for (int i = 0; i < 2; i++) {
+ std::string key = (i == 0) ? std::string("foo") : std::string(200, 'x');
+ ASSERT_OK(Put(key, "v1"));
+ const Snapshot* s1 = db_->GetSnapshot();
+ ASSERT_OK(Put(key, "v2"));
+ ASSERT_EQ("v2", Get(key));
+ ASSERT_EQ("v1", Get(key, s1));
+ dbfull()->TEST_CompactMemTable();
+ ASSERT_EQ("v2", Get(key));
+ ASSERT_EQ("v1", Get(key, s1));
+ db_->ReleaseSnapshot(s1);
+ }
+ } while (ChangeOptions());
+}
+
+TEST(DBTest, GetLevel0Ordering) {
+ do {
+ // Check that we process level-0 files in correct order. The code
+ // below generates two level-0 files where the earlier one comes
+ // before the later one in the level-0 file list since the earlier
+ // one has a smaller "smallest" key.
+ ASSERT_OK(Put("bar", "b"));
+ ASSERT_OK(Put("foo", "v1"));
+ dbfull()->TEST_CompactMemTable();
+ ASSERT_OK(Put("foo", "v2"));
+ dbfull()->TEST_CompactMemTable();
+ ASSERT_EQ("v2", Get("foo"));
+ } while (ChangeOptions());
+}
+
+TEST(DBTest, GetOrderedByLevels) {
+ do {
+ ASSERT_OK(Put("foo", "v1"));
+ Compact("a", "z");
+ ASSERT_EQ("v1", Get("foo"));
+ ASSERT_OK(Put("foo", "v2"));
+ ASSERT_EQ("v2", Get("foo"));
+ dbfull()->TEST_CompactMemTable();
+ ASSERT_EQ("v2", Get("foo"));
+ } while (ChangeOptions());
+}
+
+TEST(DBTest, GetPicksCorrectFile) {
+ do {
+ // Arrange to have multiple files in a non-level-0 level.
+ ASSERT_OK(Put("a", "va"));
+ Compact("a", "b");
+ ASSERT_OK(Put("x", "vx"));
+ Compact("x", "y");
+ ASSERT_OK(Put("f", "vf"));
+ Compact("f", "g");
+ ASSERT_EQ("va", Get("a"));
+ ASSERT_EQ("vf", Get("f"));
+ ASSERT_EQ("vx", Get("x"));
+ } while (ChangeOptions());
+}
+
+#if 0
+TEST(DBTest, GetEncountersEmptyLevel) {
+ do {
+ // Arrange for the following to happen:
+ // * sstable A in level 0
+ // * nothing in level 1
+ // * sstable B in level 2
+ // Then do enough Get() calls to arrange for an automatic compaction
+ // of sstable A. A bug would cause the compaction to be marked as
+ // occuring at level 1 (instead of the correct level 0).
+
+ // Step 1: First place sstables in levels 0 and 2
+ int compaction_count = 0;
+ while (NumTableFilesAtLevel(0) == 0 ||
+ NumTableFilesAtLevel(2) == 0) {
+ ASSERT_LE(compaction_count, 100) << "could not fill levels 0 and 2";
+ compaction_count++;
+ Put("a", "begin");
+ Put("z", "end");
+ dbfull()->TEST_CompactMemTable();
+ }
+
+ // Step 2: clear level 1 if necessary.
+ dbfull()->TEST_CompactRange(1, NULL, NULL);
+ ASSERT_EQ(NumTableFilesAtLevel(0), 1);
+ ASSERT_EQ(NumTableFilesAtLevel(1), 0);
+ ASSERT_EQ(NumTableFilesAtLevel(2), 1);
+
+ // Step 3: read a bunch of times
+ for (int i = 0; i < 1000; i++) {
+ ASSERT_EQ("NOT_FOUND", Get("missing"));
+ }
+
+ // Step 4: Wait for compaction to finish
+ env_->SleepForMicroseconds(1000000);
+
+ ASSERT_EQ(NumTableFilesAtLevel(0), 0);
+ } while (ChangeOptions());
+}
+#endif
+
+TEST(DBTest, IterEmpty) {
+ Iterator* iter = db_->NewIterator(ReadOptions());
+
+ iter->SeekToFirst();
+ ASSERT_EQ(IterStatus(iter), "(invalid)");
+
+ iter->SeekToLast();
+ ASSERT_EQ(IterStatus(iter), "(invalid)");
+
+ iter->Seek("foo");
+ ASSERT_EQ(IterStatus(iter), "(invalid)");
+
+ delete iter;
+}
+
+TEST(DBTest, IterSingle) {
+ ASSERT_OK(Put("a", "va"));
+ Iterator* iter = db_->NewIterator(ReadOptions());
+
+ iter->SeekToFirst();
+ ASSERT_EQ(IterStatus(iter), "a->va");
+ iter->Next();
+ ASSERT_EQ(IterStatus(iter), "(invalid)");
+ iter->SeekToFirst();
+ ASSERT_EQ(IterStatus(iter), "a->va");
+ iter->Prev();
+ ASSERT_EQ(IterStatus(iter), "(invalid)");
+
+ iter->SeekToLast();
+ ASSERT_EQ(IterStatus(iter), "a->va");
+ iter->Next();
+ ASSERT_EQ(IterStatus(iter), "(invalid)");
+ iter->SeekToLast();
+ ASSERT_EQ(IterStatus(iter), "a->va");
+ iter->Prev();
+ ASSERT_EQ(IterStatus(iter), "(invalid)");
+
+ iter->Seek("");
+ ASSERT_EQ(IterStatus(iter), "a->va");
+ iter->Next();
+ ASSERT_EQ(IterStatus(iter), "(invalid)");
+
+ iter->Seek("a");
+ ASSERT_EQ(IterStatus(iter), "a->va");
+ iter->Next();
+ ASSERT_EQ(IterStatus(iter), "(invalid)");
+
+ iter->Seek("b");
+ ASSERT_EQ(IterStatus(iter), "(invalid)");
+
+ delete iter;
+}
+
+TEST(DBTest, IterMulti) {
+ ASSERT_OK(Put("a", "va"));
+ ASSERT_OK(Put("b", "vb"));
+ ASSERT_OK(Put("c", "vc"));
+ Iterator* iter = db_->NewIterator(ReadOptions());
+
+ iter->SeekToFirst();
+ ASSERT_EQ(IterStatus(iter), "a->va");
+ iter->Next();
+ ASSERT_EQ(IterStatus(iter), "b->vb");
+ iter->Next();
+ ASSERT_EQ(IterStatus(iter), "c->vc");
+ iter->Next();
+ ASSERT_EQ(IterStatus(iter), "(invalid)");
+ iter->SeekToFirst();
+ ASSERT_EQ(IterStatus(iter), "a->va");
+ iter->Prev();
+ ASSERT_EQ(IterStatus(iter), "(invalid)");
+
+ iter->SeekToLast();
+ ASSERT_EQ(IterStatus(iter), "c->vc");
+ iter->Prev();
+ ASSERT_EQ(IterStatus(iter), "b->vb");
+ iter->Prev();
+ ASSERT_EQ(IterStatus(iter), "a->va");
+ iter->Prev();
+ ASSERT_EQ(IterStatus(iter), "(invalid)");
+ iter->SeekToLast();
+ ASSERT_EQ(IterStatus(iter), "c->vc");
+ iter->Next();
+ ASSERT_EQ(IterStatus(iter), "(invalid)");
+
+ iter->Seek("");
+ ASSERT_EQ(IterStatus(iter), "a->va");
+ iter->Seek("a");
+ ASSERT_EQ(IterStatus(iter), "a->va");
+ iter->Seek("ax");
+ ASSERT_EQ(IterStatus(iter), "b->vb");
+ iter->Seek("b");
+ ASSERT_EQ(IterStatus(iter), "b->vb");
+ iter->Seek("z");
+ ASSERT_EQ(IterStatus(iter), "(invalid)");
+
+ // Switch from reverse to forward
+ iter->SeekToLast();
+ iter->Prev();
+ iter->Prev();
+ iter->Next();
+ ASSERT_EQ(IterStatus(iter), "b->vb");
+
+ // Switch from forward to reverse
+ iter->SeekToFirst();
+ iter->Next();
+ iter->Next();
+ iter->Prev();
+ ASSERT_EQ(IterStatus(iter), "b->vb");
+
+ // Make sure iter stays at snapshot
+ ASSERT_OK(Put("a", "va2"));
+ ASSERT_OK(Put("a2", "va3"));
+ ASSERT_OK(Put("b", "vb2"));
+ ASSERT_OK(Put("c", "vc2"));
+ ASSERT_OK(Delete("b"));
+ iter->SeekToFirst();
+ ASSERT_EQ(IterStatus(iter), "a->va");
+ iter->Next();
+ ASSERT_EQ(IterStatus(iter), "b->vb");
+ iter->Next();
+ ASSERT_EQ(IterStatus(iter), "c->vc");
+ iter->Next();
+ ASSERT_EQ(IterStatus(iter), "(invalid)");
+ iter->SeekToLast();
+ ASSERT_EQ(IterStatus(iter), "c->vc");
+ iter->Prev();
+ ASSERT_EQ(IterStatus(iter), "b->vb");
+ iter->Prev();
+ ASSERT_EQ(IterStatus(iter), "a->va");
+ iter->Prev();
+ ASSERT_EQ(IterStatus(iter), "(invalid)");
+
+ delete iter;
+}
+
+TEST(DBTest, IterSmallAndLargeMix) {
+ ASSERT_OK(Put("a", "va"));
+ ASSERT_OK(Put("b", std::string(100000, 'b')));
+ ASSERT_OK(Put("c", "vc"));
+ ASSERT_OK(Put("d", std::string(100000, 'd')));
+ ASSERT_OK(Put("e", std::string(100000, 'e')));
+
+ Iterator* iter = db_->NewIterator(ReadOptions());
+
+ iter->SeekToFirst();
+ ASSERT_EQ(IterStatus(iter), "a->va");
+ iter->Next();
+ ASSERT_EQ(IterStatus(iter), "b->" + std::string(100000, 'b'));
+ iter->Next();
+ ASSERT_EQ(IterStatus(iter), "c->vc");
+ iter->Next();
+ ASSERT_EQ(IterStatus(iter), "d->" + std::string(100000, 'd'));
+ iter->Next();
+ ASSERT_EQ(IterStatus(iter), "e->" + std::string(100000, 'e'));
+ iter->Next();
+ ASSERT_EQ(IterStatus(iter), "(invalid)");
+
+ iter->SeekToLast();
+ ASSERT_EQ(IterStatus(iter), "e->" + std::string(100000, 'e'));
+ iter->Prev();
+ ASSERT_EQ(IterStatus(iter), "d->" + std::string(100000, 'd'));
+ iter->Prev();
+ ASSERT_EQ(IterStatus(iter), "c->vc");
+ iter->Prev();
+ ASSERT_EQ(IterStatus(iter), "b->" + std::string(100000, 'b'));
+ iter->Prev();
+ ASSERT_EQ(IterStatus(iter), "a->va");
+ iter->Prev();
+ ASSERT_EQ(IterStatus(iter), "(invalid)");
+
+ delete iter;
+}
+
+TEST(DBTest, IterMultiWithDelete) {
+ do {
+ ASSERT_OK(Put("a", "va"));
+ ASSERT_OK(Put("b", "vb"));
+ ASSERT_OK(Put("c", "vc"));
+ ASSERT_OK(Delete("b"));
+ ASSERT_EQ("NOT_FOUND", Get("b"));
+
+ Iterator* iter = db_->NewIterator(ReadOptions());
+ iter->Seek("c");
+ ASSERT_EQ(IterStatus(iter), "c->vc");
+ iter->Prev();
+ ASSERT_EQ(IterStatus(iter), "a->va");
+ delete iter;
+ } while (ChangeOptions());
+}
+
+TEST(DBTest, Recover) {
+ do {
+ ASSERT_OK(Put("foo", "v1"));
+ ASSERT_OK(Put("baz", "v5"));
+
+ Reopen();
+ ASSERT_EQ("v1", Get("foo"));
+
+ ASSERT_EQ("v1", Get("foo"));
+ ASSERT_EQ("v5", Get("baz"));
+ ASSERT_OK(Put("bar", "v2"));
+ ASSERT_OK(Put("foo", "v3"));
+
+ Reopen();
+ ASSERT_EQ("v3", Get("foo"));
+ ASSERT_OK(Put("foo", "v4"));
+ ASSERT_EQ("v4", Get("foo"));
+ ASSERT_EQ("v2", Get("bar"));
+ ASSERT_EQ("v5", Get("baz"));
+ } while (ChangeOptions());
+}
+
+TEST(DBTest, RecoveryWithEmptyLog) {
+ do {
+ ASSERT_OK(Put("foo", "v1"));
+ ASSERT_OK(Put("foo", "v2"));
+ Reopen();
+ Reopen();
+ ASSERT_OK(Put("foo", "v3"));
+ Reopen();
+ ASSERT_EQ("v3", Get("foo"));
+ } while (ChangeOptions());
+}
+
+// Check that writes done during a memtable compaction are recovered
+// if the database is shutdown during the memtable compaction.
+TEST(DBTest, RecoverDuringMemtableCompaction) {
+ do {
+ Options options = CurrentOptions();
+ options.env = env_;
+ options.write_buffer_size = 1000000;
+ Reopen(&options);
+
+ // Trigger a long memtable compaction and reopen the database during it
+ ASSERT_OK(Put("foo", "v1")); // Goes to 1st log file
+ ASSERT_OK(Put("big1", std::string(10000000, 'x'))); // Fills memtable
+ ASSERT_OK(Put("big2", std::string(1000, 'y'))); // Triggers compaction
+ ASSERT_OK(Put("bar", "v2")); // Goes to new log file
+
+ Reopen(&options);
+ ASSERT_EQ("v1", Get("foo"));
+ ASSERT_EQ("v2", Get("bar"));
+ ASSERT_EQ(std::string(10000000, 'x'), Get("big1"));
+ ASSERT_EQ(std::string(1000, 'y'), Get("big2"));
+ } while (ChangeOptions());
+}
+
+static std::string Key(int i) {
+ char buf[100];
+ snprintf(buf, sizeof(buf), "key%06d", i);
+ return std::string(buf);
+}
+
+TEST(DBTest, MinorCompactionsHappen) {
+ Options options = CurrentOptions();
+ options.write_buffer_size = 10000;
+ Reopen(&options);
+
+ const int N = 500;
+
+ int starting_num_tables = TotalTableFiles();
+ for (int i = 0; i < N; i++) {
+ ASSERT_OK(Put(Key(i), Key(i) + std::string(1000, 'v')));
+ }
+ int ending_num_tables = TotalTableFiles();
+ ASSERT_GT(ending_num_tables, starting_num_tables);
+
+ for (int i = 0; i < N; i++) {
+ ASSERT_EQ(Key(i) + std::string(1000, 'v'), Get(Key(i)));
+ }
+
+ Reopen();
+
+ for (int i = 0; i < N; i++) {
+ ASSERT_EQ(Key(i) + std::string(1000, 'v'), Get(Key(i)));
+ }
+}
+
+TEST(DBTest, RecoverWithLargeLog) {
+ {
+ Options options = CurrentOptions();
+ Reopen(&options);
+ ASSERT_OK(Put("big1", std::string(200000, '1')));
+ ASSERT_OK(Put("big2", std::string(200000, '2')));
+ ASSERT_OK(Put("small3", std::string(10, '3')));
+ ASSERT_OK(Put("small4", std::string(10, '4')));
+ ASSERT_EQ(NumTableFilesAtLevel(0), 0);
+ }
+
+ // Make sure that if we re-open with a small write buffer size that
+ // we flush table files in the middle of a large log file.
+ Options options = CurrentOptions();
+ options.write_buffer_size = 100000;
+ Reopen(&options);
+ ASSERT_EQ(NumTableFilesAtLevel(0), 3);
+ ASSERT_EQ(std::string(200000, '1'), Get("big1"));
+ ASSERT_EQ(std::string(200000, '2'), Get("big2"));
+ ASSERT_EQ(std::string(10, '3'), Get("small3"));
+ ASSERT_EQ(std::string(10, '4'), Get("small4"));
+ ASSERT_GT(NumTableFilesAtLevel(0), 1);
+}
+
+TEST(DBTest, CompactionsGenerateMultipleFiles) {
+ Options options = CurrentOptions();
+ options.write_buffer_size = 100000000; // Large write buffer
+ Reopen(&options);
+
+ Random rnd(301);
+
+ // Write 32MB (320 values, each 100K)
+ ASSERT_EQ(NumTableFilesAtLevel(0), 0);
+ std::vector<std::string> values;
+ for (int i = 0; i < 320; i++) {
+ values.push_back(RandomString(&rnd, 100000));
+ ASSERT_OK(Put(Key(i), values[i]));
+ }
+
+ // Reopening moves updates to level-0
+ Reopen(&options);
+ dbfull()->TEST_CompactRange(0, NULL, NULL);
+
+ ASSERT_EQ(NumTableFilesAtLevel(0), 0);
+ ASSERT_GT(NumTableFilesAtLevel(1), 1);
+ for (int i = 0; i < 320; i++) {
+ ASSERT_EQ(Get(Key(i)), values[i]);
+ }
+}
+
+#if 0
+// In HyperLevelDB, this test is useless because we have no "max files" cap.
+TEST(DBTest, RepeatedWritesToSameKey) {
+ Options options = CurrentOptions();
+ options.env = env_;
+ options.write_buffer_size = 100000; // Small write buffer
+ Reopen(&options);
+
+ // We must have at most one file per level except for level-0,
+ // which may have up to kL0_StopWritesTrigger files.
+ const int kMaxFiles = config::kNumLevels + config::kL0_StopWritesTrigger;
+
+ Random rnd(301);
+ std::string value = RandomString(&rnd, 2 * options.write_buffer_size);
+ for (int i = 0; i < 5 * kMaxFiles; i++) {
+ Put("key", value);
+ ASSERT_LE(TotalTableFiles(), kMaxFiles);
+ fprintf(stderr, "after %d: %d files\n", int(i+1), TotalTableFiles());
+ }
+}
+#endif
+
+TEST(DBTest, SparseMerge) {
+ Options options = CurrentOptions();
+ options.compression = kNoCompression;
+ Reopen(&options);
+
+ FillLevels("A", "Z");
+
+ // Suppose there is:
+ // small amount of data with prefix A
+ // large amount of data with prefix B
+ // small amount of data with prefix C
+ // and that recent updates have made small changes to all three prefixes.
+ // Check that we do not do a compaction that merges all of B in one shot.
+ const std::string value(1000, 'x');
+ Put("A", "va");
+ // Write approximately 100MB of "B" values
+ for (int i = 0; i < 100000; i++) {
+ char key[100];
+ snprintf(key, sizeof(key), "B%010d", i);
+ Put(key, value);
+ }
+ Put("C", "vc");
+ dbfull()->TEST_CompactMemTable();
+ dbfull()->TEST_CompactRange(0, NULL, NULL);
+
+ // Make sparse update
+ Put("A", "va2");
+ Put("B100", "bvalue2");
+ Put("C", "vc2");
+ dbfull()->TEST_CompactMemTable();
+
+ // this test used to test whether or not compactions would push as high as
+ // possible.
+ // Hint: we don't do that anymore.
+}
+
+static bool Between(uint64_t val, uint64_t low, uint64_t high) {
+ bool result = (val >= low) && (val <= high);
+ if (!result) {
+ fprintf(stderr, "Value %llu is not in range [%llu, %llu]\n",
+ (unsigned long long)(val),
+ (unsigned long long)(low),
+ (unsigned long long)(high));
+ }
+ return result;
+}
+
+TEST(DBTest, ApproximateSizes) {
+ do {
+ Options options = CurrentOptions();
+ options.write_buffer_size = 100000000; // Large write buffer
+ options.compression = kNoCompression;
+ DestroyAndReopen();
+
+ ASSERT_TRUE(Between(Size("", "xyz"), 0, 0));
+ Reopen(&options);
+ ASSERT_TRUE(Between(Size("", "xyz"), 0, 0));
+
+ // Write 8MB (80 values, each 100K)
+ ASSERT_EQ(NumTableFilesAtLevel(0), 0);
+ const int N = 80;
+ static const int S1 = 100000;
+ static const int S2 = 105000; // Allow some expansion from metadata
+ Random rnd(301);
+ for (int i = 0; i < N; i++) {
+ ASSERT_OK(Put(Key(i), RandomString(&rnd, S1)));
+ }
+
+ // 0 because GetApproximateSizes() does not account for memtable space
+ ASSERT_TRUE(Between(Size("", Key(50)), 0, 0));
+
+ // Check sizes across recovery by reopening a few times
+ for (int run = 0; run < 3; run++) {
+ Reopen(&options);
+
+ for (int compact_start = 0; compact_start < N; compact_start += 10) {
+ for (int i = 0; i < N; i += 10) {
+ ASSERT_TRUE(Between(Size("", Key(i)), S1*i, S2*i));
+ ASSERT_TRUE(Between(Size("", Key(i)+".suffix"), S1*(i+1), S2*(i+1)));
+ ASSERT_TRUE(Between(Size(Key(i), Key(i+10)), S1*10, S2*10));
+ }
+ ASSERT_TRUE(Between(Size("", Key(50)), S1*50, S2*50));
+ ASSERT_TRUE(Between(Size("", Key(50)+".suffix"), S1*50, S2*50));
+
+ std::string cstart_str = Key(compact_start);
+ std::string cend_str = Key(compact_start + 9);
+ Slice cstart = cstart_str;
+ Slice cend = cend_str;
+ dbfull()->TEST_CompactRange(0, &cstart, &cend);
+ }
+
+ ASSERT_EQ(NumTableFilesAtLevel(0), 0);
+ ASSERT_GT(NumTableFilesAtLevel(1), 0);
+ }
+ } while (ChangeOptions());
+}
+
+TEST(DBTest, ApproximateSizes_MixOfSmallAndLarge) {
+ do {
+ Options options = CurrentOptions();
+ options.compression = kNoCompression;
+ Reopen();
+
+ Random rnd(301);
+ std::string big1 = RandomString(&rnd, 100000);
+ ASSERT_OK(Put(Key(0), RandomString(&rnd, 10000)));
+ ASSERT_OK(Put(Key(1), RandomString(&rnd, 10000)));
+ ASSERT_OK(Put(Key(2), big1));
+ ASSERT_OK(Put(Key(3), RandomString(&rnd, 10000)));
+ ASSERT_OK(Put(Key(4), big1));
+ ASSERT_OK(Put(Key(5), RandomString(&rnd, 10000)));
+ ASSERT_OK(Put(Key(6), RandomString(&rnd, 300000)));
+ ASSERT_OK(Put(Key(7), RandomString(&rnd, 10000)));
+
+ // Check sizes across recovery by reopening a few times
+ for (int run = 0; run < 3; run++) {
+ Reopen(&options);
+
+ ASSERT_TRUE(Between(Size("", Key(0)), 0, 0));
+ ASSERT_TRUE(Between(Size("", Key(1)), 10000, 11000));
+ ASSERT_TRUE(Between(Size("", Key(2)), 20000, 21000));
+ ASSERT_TRUE(Between(Size("", Key(3)), 120000, 121000));
+ ASSERT_TRUE(Between(Size("", Key(4)), 130000, 131000));
+ ASSERT_TRUE(Between(Size("", Key(5)), 230000, 231000));
+ ASSERT_TRUE(Between(Size("", Key(6)), 240000, 241000));
+ ASSERT_TRUE(Between(Size("", Key(7)), 540000, 541000));
+ ASSERT_TRUE(Between(Size("", Key(8)), 550000, 560000));
+
+ ASSERT_TRUE(Between(Size(Key(3), Key(5)), 110000, 111000));
+
+ dbfull()->TEST_CompactRange(0, NULL, NULL);
+ }
+ } while (ChangeOptions());
+}
+
+TEST(DBTest, IteratorPinsRef) {
+ Put("foo", "hello");
+
+ // Get iterator that will yield the current contents of the DB.
+ Iterator* iter = db_->NewIterator(ReadOptions());
+
+ // Write to force compactions
+ Put("foo", "newvalue1");
+ for (int i = 0; i < 100; i++) {
+ ASSERT_OK(Put(Key(i), Key(i) + std::string(100000, 'v'))); // 100K values
+ }
+ Put("foo", "newvalue2");
+
+ iter->SeekToFirst();
+ ASSERT_TRUE(iter->Valid());
+ ASSERT_EQ("foo", iter->key().ToString());
+ ASSERT_EQ("hello", iter->value().ToString());
+ iter->Next();
+ ASSERT_TRUE(!iter->Valid());
+ delete iter;
+}
+
+TEST(DBTest, Snapshot) {
+ do {
+ Put("foo", "v1");
+ const Snapshot* s1 = db_->GetSnapshot();
+ Put("foo", "v2");
+ const Snapshot* s2 = db_->GetSnapshot();
+ Put("foo", "v3");
+ const Snapshot* s3 = db_->GetSnapshot();
+
+ Put("foo", "v4");
+ ASSERT_EQ("v1", Get("foo", s1));
+ ASSERT_EQ("v2", Get("foo", s2));
+ ASSERT_EQ("v3", Get("foo", s3));
+ ASSERT_EQ("v4", Get("foo"));
+
+ db_->ReleaseSnapshot(s3);
+ ASSERT_EQ("v1", Get("foo", s1));
+ ASSERT_EQ("v2", Get("foo", s2));
+ ASSERT_EQ("v4", Get("foo"));
+
+ db_->ReleaseSnapshot(s1);
+ ASSERT_EQ("v2", Get("foo", s2));
+ ASSERT_EQ("v4", Get("foo"));
+
+ db_->ReleaseSnapshot(s2);
+ ASSERT_EQ("v4", Get("foo"));
+ } while (ChangeOptions());
+}
+
+TEST(DBTest, HiddenValuesAreRemoved) {
+ do {
+ Random rnd(301);
+ FillLevels("a", "z");
+
+ std::string big = RandomString(&rnd, 50000);
+ Put("foo", big);
+ Put("pastfoo", "v");
+ const Snapshot* snapshot = db_->GetSnapshot();
+ Put("foo", "tiny");
+ Put("pastfoo2", "v2"); // Advance sequence number one more
+
+ ASSERT_OK(dbfull()->TEST_CompactMemTable());
+ ASSERT_GT(NumTableFilesAtLevel(0), 0);
+
+ ASSERT_EQ(big, Get("foo", snapshot));
+ ASSERT_TRUE(Between(Size("", "pastfoo"), 50000, 60000));
+ db_->ReleaseSnapshot(snapshot);
+ ASSERT_EQ(AllEntriesFor("foo"), "[ tiny, " + big + " ]");
+ Slice x("x");
+ dbfull()->TEST_CompactRange(0, NULL, &x);
+ ASSERT_EQ(AllEntriesFor("foo"), "[ tiny ]");
+ ASSERT_EQ(NumTableFilesAtLevel(0), 0);
+ ASSERT_GE(NumTableFilesAtLevel(1), 1);
+ dbfull()->TEST_CompactRange(1, NULL, &x);
+ ASSERT_EQ(AllEntriesFor("foo"), "[ tiny ]");
+
+ ASSERT_TRUE(Between(Size("", "pastfoo"), 0, 1000));
+ } while (ChangeOptions());
+}
+
+TEST(DBTest, DeletionMarkers1) {
+ Put("foo", "v1");
+ ASSERT_OK(dbfull()->TEST_CompactMemTable());
+ const int last = config::kMaxMemCompactLevel;
+ ASSERT_EQ(NumTableFilesAtLevel(last), 1); // foo => v1 is now in last level
+
+ // Place a table at level last-1 to prevent merging with preceding mutation
+ Put("a", "begin");
+ Put("z", "end");
+ dbfull()->TEST_CompactMemTable();
+ ASSERT_EQ(NumTableFilesAtLevel(last), 1);
+ ASSERT_EQ(NumTableFilesAtLevel(last-1), 1);
+
+ Delete("foo");
+ Put("foo", "v2");
+ ASSERT_EQ(AllEntriesFor("foo"), "[ v2, DEL, v1 ]");
+ ASSERT_OK(dbfull()->TEST_CompactMemTable()); // Moves to level last-2
+ ASSERT_EQ(AllEntriesFor("foo"), "[ v2, DEL, v1 ]");
+ Slice z("z");
+ dbfull()->TEST_CompactRange(last-2, NULL, &z);
+ // DEL eliminated, but v1 remains because we aren't compacting that level
+ // (DEL can be eliminated because v2 hides v1).
+ ASSERT_EQ(AllEntriesFor("foo"), "[ v2, v1 ]");
+ dbfull()->TEST_CompactRange(last-1, NULL, NULL);
+ // Merging last-1 w/ last, so we are the base level for "foo", so
+ // DEL is removed. (as is v1).
+ ASSERT_EQ(AllEntriesFor("foo"), "[ v2 ]");
+}
+
+TEST(DBTest, DeletionMarkers2) {
+ Put("foo", "v1");
+ ASSERT_OK(dbfull()->TEST_CompactMemTable());
+ const int last = config::kMaxMemCompactLevel;
+ ASSERT_EQ(NumTableFilesAtLevel(last), 1); // foo => v1 is now in last level
+
+ // Place a table at level last-1 to prevent merging with preceding mutation
+ Put("a", "begin");
+ Put("z", "end");
+ dbfull()->TEST_CompactMemTable();
+ ASSERT_EQ(NumTableFilesAtLevel(last), 1);
+ ASSERT_EQ(NumTableFilesAtLevel(last-1), 1);
+
+ Delete("foo");
+ ASSERT_EQ(AllEntriesFor("foo"), "[ DEL, v1 ]");
+ ASSERT_OK(dbfull()->TEST_CompactMemTable()); // Moves to level last-2
+ ASSERT_EQ(AllEntriesFor("foo"), "[ DEL, v1 ]");
+ dbfull()->TEST_CompactRange(last-2, NULL, NULL);
+ // DEL kept: "last" file overlaps
+ ASSERT_EQ(AllEntriesFor("foo"), "[ DEL, v1 ]");
+ dbfull()->TEST_CompactRange(last-1, NULL, NULL);
+ // Merging last-1 w/ last, so we are the base level for "foo", so
+ // DEL is removed. (as is v1).
+ ASSERT_EQ(AllEntriesFor("foo"), "[ ]");
+}
+
+TEST(DBTest, OverlapInLevel0) {
+ do {
+ ASSERT_EQ(config::kMaxMemCompactLevel, 2) << "Fix test to match config";
+
+ // Fill levels 1 and 2 to disable the pushing of new memtables to levels > 0.
+ ASSERT_OK(Put("100", "v100"));
+ ASSERT_OK(Put("999", "v999"));
+ dbfull()->TEST_CompactMemTable();
+ ASSERT_OK(Delete("100"));
+ ASSERT_OK(Delete("999"));
+ dbfull()->TEST_CompactMemTable();
+ ASSERT_EQ("0,1,1", FilesPerLevel());
+
+ // Make files spanning the following ranges in level-0:
+ // files[0] 200 .. 900
+ // files[1] 300 .. 500
+ // Note that files are sorted by smallest key.
+ ASSERT_OK(Put("300", "v300"));
+ ASSERT_OK(Put("500", "v500"));
+ dbfull()->TEST_CompactMemTable();
+ ASSERT_OK(Put("200", "v200"));
+ ASSERT_OK(Put("600", "v600"));
+ ASSERT_OK(Put("900", "v900"));
+ dbfull()->TEST_CompactMemTable();
+ ASSERT_EQ("2,1,1", FilesPerLevel());
+
+ // Compact away the placeholder files we created initially
+ dbfull()->TEST_CompactRange(1, NULL, NULL);
+ dbfull()->TEST_CompactRange(2, NULL, NULL);
+ ASSERT_EQ("2", FilesPerLevel());
+
+ // Do a memtable compaction. Before bug-fix, the compaction would
+ // not detect the overlap with level-0 files and would incorrectly place
+ // the deletion in a deeper level.
+ ASSERT_OK(Delete("600"));
+ dbfull()->TEST_CompactMemTable();
+ ASSERT_EQ("3", FilesPerLevel());
+ ASSERT_EQ("NOT_FOUND", Get("600"));
+ } while (ChangeOptions());
+}
+
+TEST(DBTest, L0_CompactionBug_Issue44_a) {
+ Reopen();
+ ASSERT_OK(Put("b", "v"));
+ Reopen();
+ ASSERT_OK(Delete("b"));
+ ASSERT_OK(Delete("a"));
+ Reopen();
+ ASSERT_OK(Delete("a"));
+ Reopen();
+ ASSERT_OK(Put("a", "v"));
+ Reopen();
+ Reopen();
+ ASSERT_EQ("(a->v)", Contents());
+ DelayMilliseconds(1000); // Wait for compaction to finish
+ ASSERT_EQ("(a->v)", Contents());
+}
+
+TEST(DBTest, L0_CompactionBug_Issue44_b) {
+ Reopen();
+ Put("","");
+ Reopen();
+ Delete("e");
+ Put("","");
+ Reopen();
+ Put("c", "cv");
+ Reopen();
+ Put("","");
+ Reopen();
+ Put("","");
+ DelayMilliseconds(1000); // Wait for compaction to finish
+ Reopen();
+ Put("d","dv");
+ Reopen();
+ Put("","");
+ Reopen();
+ Delete("d");
+ Delete("b");
+ Reopen();
+ ASSERT_EQ("(->)(c->cv)", Contents());
+ DelayMilliseconds(1000); // Wait for compaction to finish
+ ASSERT_EQ("(->)(c->cv)", Contents());
+}
+
+TEST(DBTest, ComparatorCheck) {
+ class NewComparator : public Comparator {
+ public:
+ virtual const char* Name() const { return "leveldb.NewComparator"; }
+ virtual int Compare(const Slice& a, const Slice& b) const {
+ return BytewiseComparator()->Compare(a, b);
+ }
+ virtual void FindShortestSeparator(std::string* s, const Slice& l) const {
+ BytewiseComparator()->FindShortestSeparator(s, l);
+ }
+ virtual void FindShortSuccessor(std::string* key) const {
+ BytewiseComparator()->FindShortSuccessor(key);
+ }
+ };
+ NewComparator cmp;
+ Options new_options = CurrentOptions();
+ new_options.comparator = &cmp;
+ Status s = TryReopen(&new_options);
+ ASSERT_TRUE(!s.ok());
+ ASSERT_TRUE(s.ToString().find("comparator") != std::string::npos)
+ << s.ToString();
+}
+
+TEST(DBTest, CustomComparator) {
+ class NumberComparator : public Comparator {
+ public:
+ virtual const char* Name() const { return "test.NumberComparator"; }
+ virtual int Compare(const Slice& a, const Slice& b) const {
+ return ToNumber(a) - ToNumber(b);
+ }
+ virtual void FindShortestSeparator(std::string* s, const Slice& l) const {
+ ToNumber(*s); // Check format
+ ToNumber(l); // Check format
+ }
+ virtual void FindShortSuccessor(std::string* key) const {
+ ToNumber(*key); // Check format
+ }
+ private:
+ static int ToNumber(const Slice& x) {
+ // Check that there are no extra characters.
+ ASSERT_TRUE(x.size() >= 2 && x[0] == '[' && x[x.size()-1] == ']')
+ << EscapeString(x);
+ int val;
+ char ignored;
+ ASSERT_TRUE(sscanf(x.ToString().c_str(), "[%i]%c", &val, &ignored) == 1)
+ << EscapeString(x);
+ return val;
+ }
+ };
+ NumberComparator cmp;
+ Options new_options = CurrentOptions();
+ new_options.create_if_missing = true;
+ new_options.comparator = &cmp;
+ new_options.filter_policy = NULL; // Cannot use bloom filters
+ new_options.write_buffer_size = 1000; // Compact more often
+ DestroyAndReopen(&new_options);
+ ASSERT_OK(Put("[10]", "ten"));
+ ASSERT_OK(Put("[0x14]", "twenty"));
+ for (int i = 0; i < 2; i++) {
+ ASSERT_EQ("ten", Get("[10]"));
+ ASSERT_EQ("ten", Get("[0xa]"));
+ ASSERT_EQ("twenty", Get("[20]"));
+ ASSERT_EQ("twenty", Get("[0x14]"));
+ ASSERT_EQ("NOT_FOUND", Get("[15]"));
+ ASSERT_EQ("NOT_FOUND", Get("[0xf]"));
+ Compact("[0]", "[9999]");
+ }
+
+ for (int run = 0; run < 2; run++) {
+ for (int i = 0; i < 1000; i++) {
+ char buf[100];
+ snprintf(buf, sizeof(buf), "[%d]", i*10);
+ ASSERT_OK(Put(buf, buf));
+ }
+ Compact("[0]", "[1000000]");
+ }
+}
+
+TEST(DBTest, ManualCompaction) {
+ ASSERT_EQ(config::kMaxMemCompactLevel, 2)
+ << "Need to update this test to match kMaxMemCompactLevel";
+
+ MakeTables(3, "p", "q");
+ ASSERT_EQ("1,1,1", FilesPerLevel());
+
+ // Compaction range falls before files
+ Compact("", "c");
+ ASSERT_EQ("1,1,1", FilesPerLevel());
+
+ // Compaction range falls after files
+ Compact("r", "z");
+ ASSERT_EQ("1,1,1", FilesPerLevel());
+
+ // Compaction range overlaps files
+ Compact("p1", "p9");
+ ASSERT_EQ("0,0,1", FilesPerLevel());
+
+ // Populate a different range
+ MakeTables(3, "c", "e");
+ ASSERT_EQ("1,1,2", FilesPerLevel());
+
+ // Compact just the new range
+ Compact("b", "f");
+ ASSERT_EQ("0,0,2", FilesPerLevel());
+
+ // Compact all
+ MakeTables(1, "a", "z");
+ ASSERT_EQ("0,1,2", FilesPerLevel());
+ db_->CompactRange(NULL, NULL);
+ ASSERT_EQ("0,0,1", FilesPerLevel());
+}
+
+TEST(DBTest, DBOpen_Options) {
+ std::string dbname = test::TmpDir() + "/db_options_test";
+ DestroyDB(dbname, Options());
+
+ // Does not exist, and create_if_missing == false: error
+ DB* db = NULL;
+ Options opts;
+ opts.create_if_missing = false;
+ Status s = DB::Open(opts, dbname, &db);
+ ASSERT_TRUE(strstr(s.ToString().c_str(), "does not exist") != NULL);
+ ASSERT_TRUE(db == NULL);
+
+ // Does not exist, and create_if_missing == true: OK
+ opts.create_if_missing = true;
+ s = DB::Open(opts, dbname, &db);
+ ASSERT_OK(s);
+ ASSERT_TRUE(db != NULL);
+
+ delete db;
+ db = NULL;
+
+ // Does exist, and error_if_exists == true: error
+ opts.create_if_missing = false;
+ opts.error_if_exists = true;
+ s = DB::Open(opts, dbname, &db);
+ ASSERT_TRUE(strstr(s.ToString().c_str(), "exists") != NULL);
+ ASSERT_TRUE(db == NULL);
+
+ // Does exist, and error_if_exists == false: OK
+ opts.create_if_missing = true;
+ opts.error_if_exists = false;
+ s = DB::Open(opts, dbname, &db);
+ ASSERT_OK(s);
+ ASSERT_TRUE(db != NULL);
+
+ delete db;
+ db = NULL;
+}
+
+TEST(DBTest, Locking) {
+ DB* db2 = NULL;
+ Status s = DB::Open(CurrentOptions(), dbname_, &db2);
+ ASSERT_TRUE(!s.ok()) << "Locking did not prevent re-opening db";
+}
+
+// Check that number of files does not grow when we are out of space
+TEST(DBTest, NoSpace) {
+ Options options = CurrentOptions();
+ options.env = env_;
+ Reopen(&options);
+
+ ASSERT_OK(Put("foo", "v1"));
+ ASSERT_EQ("v1", Get("foo"));
+ Compact("a", "z");
+ const int num_files = CountFiles();
+ env_->no_space_.Release_Store(env_); // Force out-of-space errors
+ for (int i = 0; i < 10; i++) {
+ for (int level = 0; level < config::kNumLevels-1; level++) {
+ dbfull()->TEST_CompactRange(level, NULL, NULL);
+ }
+ }
+ env_->no_space_.Release_Store(NULL);
+ ASSERT_LT(CountFiles(), num_files + 3);
+}
+
+TEST(DBTest, NonWritableFileSystem) {
+ Options options = CurrentOptions();
+ options.write_buffer_size = 1000;
+ options.env = env_;
+ Reopen(&options);
+ ASSERT_OK(Put("foo", "v1"));
+ env_->non_writable_.Release_Store(env_); // Force errors for new files
+ std::string big(100000, 'x');
+ int errors = 0;
+ for (int i = 0; i < 20; i++) {
+ fprintf(stderr, "iter %d; errors %d\n", i, errors);
+ if (!Put("foo", big).ok()) {
+ errors++;
+ DelayMilliseconds(100);
+ }
+ }
+ ASSERT_GT(errors, 0);
+ env_->non_writable_.Release_Store(NULL);
+}
+
+TEST(DBTest, WriteSyncError) {
+ // Check that log sync errors cause the DB to disallow future writes.
+
+ // (a) Cause log sync calls to fail
+ Options options = CurrentOptions();
+ options.env = env_;
+ Reopen(&options);
+ env_->data_sync_error_.Release_Store(env_);
+
+ // (b) Normal write should succeed
+ WriteOptions w;
+ ASSERT_OK(db_->Put(w, "k1", "v1"));
+ ASSERT_EQ("v1", Get("k1"));
+
+ // (c) Do a sync write; should fail
+ w.sync = true;
+ ASSERT_TRUE(!db_->Put(w, "k2", "v2").ok());
+ ASSERT_EQ("v1", Get("k1"));
+ ASSERT_EQ("NOT_FOUND", Get("k2"));
+
+ // (d) make sync behave normally
+ env_->data_sync_error_.Release_Store(NULL);
+
+ // (e) Do a non-sync write; should fail
+ w.sync = false;
+ ASSERT_TRUE(!db_->Put(w, "k3", "v3").ok());
+ ASSERT_EQ("v1", Get("k1"));
+ ASSERT_EQ("NOT_FOUND", Get("k2"));
+ ASSERT_EQ("NOT_FOUND", Get("k3"));
+}
+
+TEST(DBTest, ManifestWriteError) {
+ // Test for the following problem:
+ // (a) Compaction produces file F
+ // (b) Log record containing F is written to MANIFEST file, but Sync() fails
+ // (c) GC deletes F
+ // (d) After reopening DB, reads fail since deleted F is named in log record
+
+ // We iterate twice. In the second iteration, everything is the
+ // same except the log record never makes it to the MANIFEST file.
+ for (int iter = 0; iter < 2; iter++) {
+ port::AtomicPointer* error_type = (iter == 0)
+ ? &env_->manifest_sync_error_
+ : &env_->manifest_write_error_;
+
+ // Insert foo=>bar mapping
+ Options options = CurrentOptions();
+ options.env = env_;
+ options.create_if_missing = true;
+ options.error_if_exists = false;
+ DestroyAndReopen(&options);
+ ASSERT_OK(Put("foo", "bar"));
+ ASSERT_EQ("bar", Get("foo"));
+
+ // Memtable compaction (will succeed)
+ dbfull()->TEST_CompactMemTable();
+ ASSERT_EQ("bar", Get("foo"));
+ const int last = config::kMaxMemCompactLevel;
+ ASSERT_EQ(NumTableFilesAtLevel(last), 1); // foo=>bar is now in last level
+
+ // Merging compaction (will fail)
+ error_type->Release_Store(env_);
+ dbfull()->TEST_CompactRange(last, NULL, NULL); // Should fail
+ ASSERT_EQ("bar", Get("foo"));
+
+ // Recovery: should not lose data
+ error_type->Release_Store(NULL);
+ Reopen(&options);
+ ASSERT_EQ("bar", Get("foo"));
+ }
+}
+
+TEST(DBTest, MissingSSTFile) {
+ ASSERT_OK(Put("foo", "bar"));
+ ASSERT_EQ("bar", Get("foo"));
+
+ // Dump the memtable to disk.
+ dbfull()->TEST_CompactMemTable();
+ ASSERT_EQ("bar", Get("foo"));
+
+ Close();
+ ASSERT_TRUE(DeleteAnSSTFile());
+ Options options = CurrentOptions();
+ options.paranoid_checks = true;
+ Status s = TryReopen(&options);
+ ASSERT_TRUE(!s.ok());
+ ASSERT_TRUE(s.ToString().find("issing") != std::string::npos)
+ << s.ToString();
+}
+
+TEST(DBTest, StillReadSST) {
+ ASSERT_OK(Put("foo", "bar"));
+ ASSERT_EQ("bar", Get("foo"));
+
+ // Dump the memtable to disk.
+ dbfull()->TEST_CompactMemTable();
+ ASSERT_EQ("bar", Get("foo"));
+ Close();
+ ASSERT_GT(RenameLDBToSST(), 0);
+ Options options = CurrentOptions();
+ options.paranoid_checks = true;
+ Status s = TryReopen(&options);
+ ASSERT_TRUE(s.ok());
+ ASSERT_EQ("bar", Get("foo"));
+}
+
+TEST(DBTest, FilesDeletedAfterCompaction) {
+ ASSERT_OK(Put("foo", "v2"));
+ Compact("a", "z");
+ const int num_files = CountFiles();
+ for (int i = 0; i < 10; i++) {
+ ASSERT_OK(Put("foo", "v2"));
+ Compact("a", "z");
+ }
+ ASSERT_EQ(CountFiles(), num_files);
+}
+
+TEST(DBTest, BloomFilter) {
+ env_->count_random_reads_ = true;
+ Options options = CurrentOptions();
+ options.env = env_;
+ options.block_cache = NewLRUCache(0); // Prevent cache hits
+ options.filter_policy = NewBloomFilterPolicy(10);
+ Reopen(&options);
+
+ // Populate multiple layers
+ const int N = 10000;
+ for (int i = 0; i < N; i++) {
+ ASSERT_OK(Put(Key(i), Key(i)));
+ }
+ Compact("a", "z");
+ for (int i = 0; i < N; i += 100) {
+ ASSERT_OK(Put(Key(i), Key(i)));
+ }
+ dbfull()->TEST_CompactMemTable();
+
+ // Prevent auto compactions triggered by seeks
+ env_->delay_data_sync_.Release_Store(env_);
+
+ // Lookup present keys. Should rarely read from small sstable.
+ env_->random_read_counter_.Reset();
+ for (int i = 0; i < N; i++) {
+ ASSERT_EQ(Key(i), Get(Key(i)));
+ }
+ int reads = env_->random_read_counter_.Read();
+ fprintf(stderr, "%d present => %d reads\n", N, reads);
+ ASSERT_GE(reads, N);
+ ASSERT_LE(reads, N + 2*N/100);
+
+ // Lookup present keys. Should rarely read from either sstable.
+ env_->random_read_counter_.Reset();
+ for (int i = 0; i < N; i++) {
+ ASSERT_EQ("NOT_FOUND", Get(Key(i) + ".missing"));
+ }
+ reads = env_->random_read_counter_.Read();
+ fprintf(stderr, "%d missing => %d reads\n", N, reads);
+ ASSERT_LE(reads, 3*N/100);
+
+ env_->delay_data_sync_.Release_Store(NULL);
+ Close();
+ delete options.block_cache;
+ delete options.filter_policy;
+}
+
+// Multi-threaded test:
+namespace {
+
+static const int kNumThreads = 4;
+static const int kTestSeconds = 10;
+static const int kNumKeys = 1000;
+
+struct MTState {
+ DBTest* test;
+ port::AtomicPointer stop;
+ port::AtomicPointer counter[kNumThreads];
+ port::AtomicPointer thread_done[kNumThreads];
+};
+
+struct MTThread {
+ MTState* state;
+ int id;
+};
+
+static void MTThreadBody(void* arg) {
+ MTThread* t = reinterpret_cast<MTThread*>(arg);
+ int id = t->id;
+ DB* db = t->state->test->db_;
+ uintptr_t counter = 0;
+ fprintf(stderr, "... starting thread %d\n", id);
+ Random rnd(1000 + id);
+ std::string value;
+ char valbuf[1500];
+ while (t->state->stop.Acquire_Load() == NULL) {
+ t->state->counter[id].Release_Store(reinterpret_cast<void*>(counter));
+
+ int key = rnd.Uniform(kNumKeys);
+ char keybuf[20];
+ snprintf(keybuf, sizeof(keybuf), "%016d", key);
+
+ if (rnd.OneIn(2)) {
+ // Write values of the form <key, my id, counter>.
+ // We add some padding for force compactions.
+ snprintf(valbuf, sizeof(valbuf), "%d.%d.%-1000d",
+ key, id, static_cast<int>(counter));
+ ASSERT_OK(db->Put(WriteOptions(), Slice(keybuf), Slice(valbuf)));
+ } else {
+ // Read a value and verify that it matches the pattern written above.
+ Status s = db->Get(ReadOptions(), Slice(keybuf), &value);
+ if (s.IsNotFound()) {
+ // Key has not yet been written
+ } else {
+ // Check that the writer thread counter is >= the counter in the value
+ ASSERT_OK(s);
+ int k, w, c;
+ ASSERT_EQ(3, sscanf(value.c_str(), "%d.%d.%d", &k, &w, &c)) << value;
+ ASSERT_EQ(k, key);
+ ASSERT_GE(w, 0);
+ ASSERT_LT(w, kNumThreads);
+ ASSERT_LE(static_cast<uintptr_t>(c), reinterpret_cast<uintptr_t>(
+ t->state->counter[w].Acquire_Load()));
+ }
+ }
+ counter++;
+ }
+ t->state->thread_done[id].Release_Store(t);
+ fprintf(stderr, "... stopping thread %d after %d ops\n", id, int(counter));
+}
+
+} // namespace
+
+TEST(DBTest, MultiThreaded) {
+ do {
+ // Initialize state
+ MTState mt;
+ mt.test = this;
+ mt.stop.Release_Store(0);
+ for (int id = 0; id < kNumThreads; id++) {
+ mt.counter[id].Release_Store(0);
+ mt.thread_done[id].Release_Store(0);
+ }
+
+ // Start threads
+ MTThread thread[kNumThreads];
+ for (int id = 0; id < kNumThreads; id++) {
+ thread[id].state = &mt;
+ thread[id].id = id;
+ env_->StartThread(MTThreadBody, &thread[id]);
+ }
+
+ // Let them run for a while
+ DelayMilliseconds(kTestSeconds * 1000);
+
+ // Stop the threads and wait for them to finish
+ mt.stop.Release_Store(&mt);
+ for (int id = 0; id < kNumThreads; id++) {
+ while (mt.thread_done[id].Acquire_Load() == NULL) {
+ DelayMilliseconds(100);
+ }
+ }
+ } while (ChangeOptions());
+}
+
+namespace {
+typedef std::map<std::string, std::string> KVMap;
+}
+
+class ModelDB: public DB {
+ public:
+ class ModelSnapshot : public Snapshot {
+ public:
+ KVMap map_;
+ };
+
+ explicit ModelDB(const Options& options): options_(options) { }
+ ~ModelDB() { }
+ virtual Status Put(const WriteOptions& o, const Slice& k, const Slice& v) {
+ return DB::Put(o, k, v);
+ }
+ virtual Status Delete(const WriteOptions& o, const Slice& key) {
+ return DB::Delete(o, key);
+ }
+ virtual Status Get(const ReadOptions& options,
+ const Slice& key, std::string* value) {
+ assert(false); // Not implemented
+ return Status::NotFound(key);
+ }
+ virtual Iterator* NewIterator(const ReadOptions& options) {
+ if (options.snapshot == NULL) {
+ KVMap* saved = new KVMap;
+ *saved = map_;
+ return new ModelIter(saved, true);
+ } else {
+ const KVMap* snapshot_state =
+ &(reinterpret_cast<const ModelSnapshot*>(options.snapshot)->map_);
+ return new ModelIter(snapshot_state, false);
+ }
+ }
+ virtual void GetReplayTimestamp(std::string* timestamp) {
+ }
+ virtual void AllowGarbageCollectBeforeTimestamp(const std::string& timestamp) {
+ }
+ virtual bool ValidateTimestamp(const std::string&) {
+ return false;
+ }
+ virtual int CompareTimestamps(const std::string&, const std::string&) {
+ return 0;
+ }
+ virtual Status GetReplayIterator(const std::string& timestamp,
+ ReplayIterator** iter) {
+ *iter = NULL;
+ return Status::OK();
+ }
+ virtual void ReleaseReplayIterator(ReplayIterator* iter) {
+ }
+ virtual const Snapshot* GetSnapshot() {
+ ModelSnapshot* snapshot = new ModelSnapshot;
+ snapshot->map_ = map_;
+ return snapshot;
+ }
+
+ virtual void ReleaseSnapshot(const Snapshot* snapshot) {
+ delete reinterpret_cast<const ModelSnapshot*>(snapshot);
+ }
+ virtual Status Write(const WriteOptions& options, WriteBatch* batch) {
+ class Handler : public WriteBatch::Handler {
+ public:
+ KVMap* map_;
+ virtual void Put(const Slice& key, const Slice& value) {
+ (*map_)[key.ToString()] = value.ToString();
+ }
+ virtual void Delete(const Slice& key) {
+ map_->erase(key.ToString());
+ }
+ };
+ Handler handler;
+ handler.map_ = &map_;
+ return batch->Iterate(&handler);
+ }
+
+ virtual bool GetProperty(const Slice& property, std::string* value) {
+ return false;
+ }
+ virtual void GetApproximateSizes(const Range* r, int n, uint64_t* sizes) {
+ for (int i = 0; i < n; i++) {
+ sizes[i] = 0;
+ }
+ }
+ virtual void CompactRange(const Slice* start, const Slice* end) {
+ }
+ virtual Status LiveBackup(const Slice& name) {
+ }
+
+ private:
+ class ModelIter: public Iterator {
+ public:
+ ModelIter(const KVMap* map, bool owned)
+ : map_(map), owned_(owned), iter_(map_->end()) {
+ }
+ ~ModelIter() {
+ if (owned_) delete map_;
+ }
+ virtual bool Valid() const { return iter_ != map_->end(); }
+ virtual void SeekToFirst() { iter_ = map_->begin(); }
+ virtual void SeekToLast() {
+ if (map_->empty()) {
+ iter_ = map_->end();
+ } else {
+ iter_ = map_->find(map_->rbegin()->first);
+ }
+ }
+ virtual void Seek(const Slice& k) {
+ iter_ = map_->lower_bound(k.ToString());
+ }
+ virtual void Next() { ++iter_; }
+ virtual void Prev() { --iter_; }
+ virtual Slice key() const { return iter_->first; }
+ virtual Slice value() const { return iter_->second; }
+ virtual Status status() const { return Status::OK(); }
+ private:
+ const KVMap* const map_;
+ const bool owned_; // Do we own map_
+ KVMap::const_iterator iter_;
+ };
+ const Options options_;
+ KVMap map_;
+};
+
+static std::string RandomKey(Random* rnd) {
+ int len = (rnd->OneIn(3)
+ ? 1 // Short sometimes to encourage collisions
+ : (rnd->OneIn(100) ? rnd->Skewed(10) : rnd->Uniform(10)));
+ return test::RandomKey(rnd, len);
+}
+
+static bool CompareIterators(int step,
+ DB* model,
+ DB* db,
+ const Snapshot* model_snap,
+ const Snapshot* db_snap) {
+ ReadOptions options;
+ options.snapshot = model_snap;
+ Iterator* miter = model->NewIterator(options);
+ options.snapshot = db_snap;
+ Iterator* dbiter = db->NewIterator(options);
+ bool ok = true;
+ int count = 0;
+ for (miter->SeekToFirst(), dbiter->SeekToFirst();
+ ok && miter->Valid() && dbiter->Valid();
+ miter->Next(), dbiter->Next()) {
+ count++;
+ if (miter->key().compare(dbiter->key()) != 0) {
+ fprintf(stderr, "step %d: Key mismatch: '%s' vs. '%s'\n",
+ step,
+ EscapeString(miter->key()).c_str(),
+ EscapeString(dbiter->key()).c_str());
+ ok = false;
+ break;
+ }
+
+ if (miter->value().compare(dbiter->value()) != 0) {
+ fprintf(stderr, "step %d: Value mismatch for key '%s': '%s' vs. '%s'\n",
+ step,
+ EscapeString(miter->key()).c_str(),
+ EscapeString(miter->value()).c_str(),
+ EscapeString(miter->value()).c_str());
+ ok = false;
+ }
+ }
+
+ if (ok) {
+ if (miter->Valid() != dbiter->Valid()) {
+ fprintf(stderr, "step %d: Mismatch at end of iterators: %d vs. %d\n",
+ step, miter->Valid(), dbiter->Valid());
+ ok = false;
+ }
+ }
+ fprintf(stderr, "%d entries compared: ok=%d\n", count, ok);
+ delete miter;
+ delete dbiter;
+ return ok;
+}
+
+TEST(DBTest, Randomized) {
+ Random rnd(test::RandomSeed());
+ do {
+ ModelDB model(CurrentOptions());
+ const int N = 10000;
+ const Snapshot* model_snap = NULL;
+ const Snapshot* db_snap = NULL;
+ std::string k, v;
+ for (int step = 0; step < N; step++) {
+ if (step % 100 == 0) {
+ fprintf(stderr, "Step %d of %d\n", step, N);
+ }
+ // TODO(sanjay): Test Get() works
+ int p = rnd.Uniform(100);
+ if (p < 45) { // Put
+ k = RandomKey(&rnd);
+ v = RandomString(&rnd,
+ rnd.OneIn(20)
+ ? 100 + rnd.Uniform(100)
+ : rnd.Uniform(8));
+ ASSERT_OK(model.Put(WriteOptions(), k, v));
+ ASSERT_OK(db_->Put(WriteOptions(), k, v));
+
+ } else if (p < 90) { // Delete
+ k = RandomKey(&rnd);
+ ASSERT_OK(model.Delete(WriteOptions(), k));
+ ASSERT_OK(db_->Delete(WriteOptions(), k));
+
+
+ } else { // Multi-element batch
+ WriteBatch b;
+ const int num = rnd.Uniform(8);
+ for (int i = 0; i < num; i++) {
+ if (i == 0 || !rnd.OneIn(10)) {
+ k = RandomKey(&rnd);
+ } else {
+ // Periodically re-use the same key from the previous iter, so
+ // we have multiple entries in the write batch for the same key
+ }
+ if (rnd.OneIn(2)) {
+ v = RandomString(&rnd, rnd.Uniform(10));
+ b.Put(k, v);
+ } else {
+ b.Delete(k);
+ }
+ }
+ ASSERT_OK(model.Write(WriteOptions(), &b));
+ ASSERT_OK(db_->Write(WriteOptions(), &b));
+ }
+
+ if ((step % 100) == 0) {
+ ASSERT_TRUE(CompareIterators(step, &model, db_, NULL, NULL));
+ ASSERT_TRUE(CompareIterators(step, &model, db_, model_snap, db_snap));
+ // Save a snapshot from each DB this time that we'll use next
+ // time we compare things, to make sure the current state is
+ // preserved with the snapshot
+ if (model_snap != NULL) model.ReleaseSnapshot(model_snap);
+ if (db_snap != NULL) db_->ReleaseSnapshot(db_snap);
+
+ Reopen();
+ ASSERT_TRUE(CompareIterators(step, &model, db_, NULL, NULL));
+
+ model_snap = model.GetSnapshot();
+ db_snap = db_->GetSnapshot();
+ }
+ }
+ if (model_snap != NULL) model.ReleaseSnapshot(model_snap);
+ if (db_snap != NULL) db_->ReleaseSnapshot(db_snap);
+ } while (ChangeOptions());
+}
+
+TEST(DBTest, Replay) {
+ std::string ts;
+ db_->GetReplayTimestamp(&ts);
+ ASSERT_OK(Put("key", "v0"));
+ ASSERT_OK(Put("key", "v1"));
+ ASSERT_OK(Put("key", "v2"));
+ ASSERT_OK(Put("key", "v3"));
+ ASSERT_OK(Put("key", "v4"));
+ ASSERT_OK(Put("key", "v5"));
+ ASSERT_OK(Put("key", "v6"));
+ ASSERT_OK(Put("key", "v7"));
+ ASSERT_OK(Put("key", "v8"));
+ ASSERT_OK(Put("key", "v9"));
+
+ // get the iterator
+ ReplayIterator* iter = NULL;
+ ASSERT_OK(db_->GetReplayIterator(ts, &iter));
+
+ // Iterate over what was there to start with
+ ASSERT_TRUE(iter->Valid());
+ ASSERT_TRUE(iter->HasValue());
+ ASSERT_EQ("key", iter->key().ToString());
+ ASSERT_EQ("v9", iter->value().ToString());
+ iter->Next();
+ // The implementation is allowed to return things twice.
+ // This is a case where it will.
+ ASSERT_TRUE(iter->Valid());
+ ASSERT_TRUE(iter->HasValue());
+ ASSERT_EQ("key", iter->key().ToString());
+ ASSERT_EQ("v9", iter->value().ToString());
+ iter->Next();
+ // Now it's no longer valid.
+ ASSERT_TRUE(!iter->Valid());
+ ASSERT_TRUE(!iter->Valid());
+
+ // Add another and iterate some more
+ ASSERT_OK(Put("key", "v10"));
+ ASSERT_TRUE(iter->Valid());
+ ASSERT_TRUE(iter->HasValue());
+ ASSERT_EQ("key", iter->key().ToString());
+ ASSERT_EQ("v10", iter->value().ToString());
+ iter->Next();
+ ASSERT_TRUE(!iter->Valid());
+
+ // Dump the memtable
+ dbfull()->TEST_CompactMemTable();
+
+ // Write into the new MemTable and iterate some more
+ ASSERT_OK(Put("key", "v11"));
+ ASSERT_TRUE(iter->Valid());
+ ASSERT_TRUE(iter->HasValue());
+ ASSERT_EQ("key", iter->key().ToString());
+ ASSERT_EQ("v11", iter->value().ToString());
+ iter->Next();
+ ASSERT_TRUE(!iter->Valid());
+
+ // What does it do on delete?
+ ASSERT_OK(Delete("key"));
+ ASSERT_TRUE(iter->Valid());
+ ASSERT_TRUE(!iter->HasValue());
+ ASSERT_EQ("key", iter->key().ToString());
+ iter->Next();
+ ASSERT_TRUE(!iter->Valid());
+}
+
+std::string MakeKey(unsigned int num) {
+ char buf[30];
+ snprintf(buf, sizeof(buf), "%016u", num);
+ return std::string(buf);
+}
+
+void BM_LogAndApply(int iters, int num_base_files) {
+ std::string dbname = test::TmpDir() + "/leveldb_test_benchmark";
+ DestroyDB(dbname, Options());
+
+ DB* db = NULL;
+ Options opts;
+ opts.create_if_missing = true;
+ Status s = DB::Open(opts, dbname, &db);
+ ASSERT_OK(s);
+ ASSERT_TRUE(db != NULL);
+
+ delete db;
+ db = NULL;
+
+ Env* env = Env::Default();
+
+ port::Mutex mu;
+ port::CondVar cv(&mu);
+ bool wt;
+ MutexLock l(&mu);
+
+ InternalKeyComparator cmp(BytewiseComparator());
+ Options options;
+ VersionSet vset(dbname, &options, NULL, &cmp);
+ ASSERT_OK(vset.Recover());
+ VersionEdit vbase;
+ uint64_t fnum = 1;
+ for (int i = 0; i < num_base_files; i++) {
+ InternalKey start(MakeKey(2*fnum), 1, kTypeValue);
+ InternalKey limit(MakeKey(2*fnum+1), 1, kTypeDeletion);
+ vbase.AddFile(2, fnum++, 1 /* file size */, start, limit);
+ }
+ ASSERT_OK(vset.LogAndApply(&vbase, &mu, &cv, &wt));
+
+ uint64_t start_micros = env->NowMicros();
+
+ for (int i = 0; i < iters; i++) {
+ VersionEdit vedit;
+ vedit.DeleteFile(2, fnum);
+ InternalKey start(MakeKey(2*fnum), 1, kTypeValue);
+ InternalKey limit(MakeKey(2*fnum+1), 1, kTypeDeletion);
+ vedit.AddFile(2, fnum++, 1 /* file size */, start, limit);
+ vset.LogAndApply(&vedit, &mu, &cv, &wt);
+ }
+ uint64_t stop_micros = env->NowMicros();
+ unsigned int us = stop_micros - start_micros;
+ char buf[16];
+ snprintf(buf, sizeof(buf), "%d", num_base_files);
+ fprintf(stderr,
+ "BM_LogAndApply/%-6s %8d iters : %9u us (%7.0f us / iter)\n",
+ buf, iters, us, ((float)us) / iters);
+}
+
+} // namespace leveldb
+
+int main(int argc, char** argv) {
+ if (argc > 1 && std::string(argv[1]) == "--benchmark") {
+ leveldb::BM_LogAndApply(1000, 1);
+ leveldb::BM_LogAndApply(1000, 100);
+ leveldb::BM_LogAndApply(1000, 10000);
+ leveldb::BM_LogAndApply(100, 100000);
+ return 0;
+ }
+
+ return leveldb::test::RunAllTests();
+}
diff --git a/clipper/HyperLevelDB/db/dbformat.cc b/clipper/HyperLevelDB/db/dbformat.cc
new file mode 100644
index 0000000..20a7ca4
--- /dev/null
+++ b/clipper/HyperLevelDB/db/dbformat.cc
@@ -0,0 +1,140 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include <stdio.h>
+#include "db/dbformat.h"
+#include "port/port.h"
+#include "util/coding.h"
+
+namespace leveldb {
+
+static uint64_t PackSequenceAndType(uint64_t seq, ValueType t) {
+ assert(seq <= kMaxSequenceNumber);
+ assert(t <= kValueTypeForSeek);
+ return (seq << 8) | t;
+}
+
+void AppendInternalKey(std::string* result, const ParsedInternalKey& key) {
+ result->append(key.user_key.data(), key.user_key.size());
+ PutFixed64(result, PackSequenceAndType(key.sequence, key.type));
+}
+
+std::string ParsedInternalKey::DebugString() const {
+ char buf[50];
+ snprintf(buf, sizeof(buf), "' @ %llu : %d",
+ (unsigned long long) sequence,
+ int(type));
+ std::string result = "'";
+ result += EscapeString(user_key.ToString());
+ result += buf;
+ return result;
+}
+
+std::string InternalKey::DebugString() const {
+ std::string result;
+ ParsedInternalKey parsed;
+ if (ParseInternalKey(rep_, &parsed)) {
+ result = parsed.DebugString();
+ } else {
+ result = "(bad)";
+ result.append(EscapeString(rep_));
+ }
+ return result;
+}
+
+const char* InternalKeyComparator::Name() const {
+ return "leveldb.InternalKeyComparator";
+}
+
+int InternalKeyComparator::Compare(const Slice& akey, const Slice& bkey) const {
+ // Order by:
+ // increasing user key (according to user-supplied comparator)
+ // decreasing sequence number
+ // decreasing type (though sequence# should be enough to disambiguate)
+ int r = user_comparator_->Compare(ExtractUserKey(akey), ExtractUserKey(bkey));
+ if (r == 0) {
+ const uint64_t anum = DecodeFixed64(akey.data() + akey.size() - 8);
+ const uint64_t bnum = DecodeFixed64(bkey.data() + bkey.size() - 8);
+ if (anum > bnum) {
+ r = -1;
+ } else if (anum < bnum) {
+ r = +1;
+ }
+ }
+ return r;
+}
+
+void InternalKeyComparator::FindShortestSeparator(
+ std::string* start,
+ const Slice& limit) const {
+ // Attempt to shorten the user portion of the key
+ Slice user_start = ExtractUserKey(*start);
+ Slice user_limit = ExtractUserKey(limit);
+ std::string tmp(user_start.data(), user_start.size());
+ user_comparator_->FindShortestSeparator(&tmp, user_limit);
+ if (tmp.size() < user_start.size() &&
+ user_comparator_->Compare(user_start, tmp) < 0) {
+ // User key has become shorter physically, but larger logically.
+ // Tack on the earliest possible number to the shortened user key.
+ PutFixed64(&tmp, PackSequenceAndType(kMaxSequenceNumber,kValueTypeForSeek));
+ assert(this->Compare(*start, tmp) < 0);
+ assert(this->Compare(tmp, limit) < 0);
+ start->swap(tmp);
+ }
+}
+
+void InternalKeyComparator::FindShortSuccessor(std::string* key) const {
+ Slice user_key = ExtractUserKey(*key);
+ std::string tmp(user_key.data(), user_key.size());
+ user_comparator_->FindShortSuccessor(&tmp);
+ if (tmp.size() < user_key.size() &&
+ user_comparator_->Compare(user_key, tmp) < 0) {
+ // User key has become shorter physically, but larger logically.
+ // Tack on the earliest possible number to the shortened user key.
+ PutFixed64(&tmp, PackSequenceAndType(kMaxSequenceNumber,kValueTypeForSeek));
+ assert(this->Compare(*key, tmp) < 0);
+ key->swap(tmp);
+ }
+}
+
+const char* InternalFilterPolicy::Name() const {
+ return user_policy_->Name();
+}
+
+void InternalFilterPolicy::CreateFilter(const Slice* keys, int n,
+ std::string* dst) const {
+ // We rely on the fact that the code in table.cc does not mind us
+ // adjusting keys[].
+ Slice* mkey = const_cast<Slice*>(keys);
+ for (int i = 0; i < n; i++) {
+ mkey[i] = ExtractUserKey(keys[i]);
+ // TODO(sanjay): Suppress dups?
+ }
+ user_policy_->CreateFilter(keys, n, dst);
+}
+
+bool InternalFilterPolicy::KeyMayMatch(const Slice& key, const Slice& f) const {
+ return user_policy_->KeyMayMatch(ExtractUserKey(key), f);
+}
+
+LookupKey::LookupKey(const Slice& user_key, SequenceNumber s) {
+ size_t usize = user_key.size();
+ size_t needed = usize + 13; // A conservative estimate
+ char* dst;
+ if (needed <= sizeof(space_)) {
+ dst = space_;
+ } else {
+ dst = new char[needed];
+ }
+ start_ = dst;
+ dst = EncodeVarint32(dst, usize + 8);
+ kstart_ = dst;
+ memcpy(dst, user_key.data(), usize);
+ dst += usize;
+ EncodeFixed64(dst, PackSequenceAndType(s, kValueTypeForSeek));
+ dst += 8;
+ end_ = dst;
+}
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/db/dbformat.h b/clipper/HyperLevelDB/db/dbformat.h
new file mode 100644
index 0000000..d347e3b
--- /dev/null
+++ b/clipper/HyperLevelDB/db/dbformat.h
@@ -0,0 +1,232 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#ifndef STORAGE_LEVELDB_DB_FORMAT_H_
+#define STORAGE_LEVELDB_DB_FORMAT_H_
+
+#include <stdio.h>
+#include "hyperleveldb/comparator.h"
+#include "hyperleveldb/db.h"
+#include "hyperleveldb/filter_policy.h"
+#include "hyperleveldb/slice.h"
+#include "hyperleveldb/table_builder.h"
+#include "util/coding.h"
+#include "util/logging.h"
+
+namespace leveldb {
+
+// Grouping of constants. We may want to make some of these
+// parameters set via options.
+namespace config {
+static const int kNumLevels = 7;
+
+// Level-0 compaction is started when we hit this many files.
+static const int kL0_CompactionTrigger = 4;
+
+// Soft limit on number of level-0 files. We could slow down writes at this
+// point, but don't.
+static const int kL0_SlowdownWritesTrigger = 8;
+
+// Maximum number of level-0 files. We could stop writes at this point, but
+// don't.
+static const int kL0_StopWritesTrigger = 12;
+
+// Maximum level to which a new compacted memtable is pushed if it
+// does not create overlap. We try to push to level 2 to avoid the
+// relatively expensive level 0=>1 compactions and to avoid some
+// expensive manifest file operations. We do not push all the way to
+// the largest level since that can generate a lot of wasted disk
+// space if the same key space is being repeatedly overwritten.
+static const int kMaxMemCompactLevel = 2;
+
+// Approximate gap in bytes between samples of data read during iteration.
+static const int kReadBytesPeriod = 1048576;
+
+} // namespace config
+
+class InternalKey;
+
+// Value types encoded as the last component of internal keys.
+// DO NOT CHANGE THESE ENUM VALUES: they are embedded in the on-disk
+// data structures.
+enum ValueType {
+ kTypeDeletion = 0x0,
+ kTypeValue = 0x1
+};
+// kValueTypeForSeek defines the ValueType that should be passed when
+// constructing a ParsedInternalKey object for seeking to a particular
+// sequence number (since we sort sequence numbers in decreasing order
+// and the value type is embedded as the low 8 bits in the sequence
+// number in internal keys, we need to use the highest-numbered
+// ValueType, not the lowest).
+static const ValueType kValueTypeForSeek = kTypeValue;
+
+typedef uint64_t SequenceNumber;
+
+// We leave eight bits empty at the bottom so a type and sequence#
+// can be packed together into 64-bits.
+static const SequenceNumber kMaxSequenceNumber =
+ ((0x1ull << 56) - 1);
+
+struct ParsedInternalKey {
+ Slice user_key;
+ SequenceNumber sequence;
+ ValueType type;
+
+ ParsedInternalKey() { } // Intentionally left uninitialized (for speed)
+ ParsedInternalKey(const Slice& u, const SequenceNumber& seq, ValueType t)
+ : user_key(u), sequence(seq), type(t) { }
+ std::string DebugString() const;
+};
+
+// Return the length of the encoding of "key".
+inline size_t InternalKeyEncodingLength(const ParsedInternalKey& key) {
+ return key.user_key.size() + 8;
+}
+
+// Append the serialization of "key" to *result.
+extern void AppendInternalKey(std::string* result,
+ const ParsedInternalKey& key);
+
+// Attempt to parse an internal key from "internal_key". On success,
+// stores the parsed data in "*result", and returns true.
+//
+// On error, returns false, leaves "*result" in an undefined state.
+extern bool ParseInternalKey(const Slice& internal_key,
+ ParsedInternalKey* result);
+
+// Returns the user key portion of an internal key.
+inline Slice ExtractUserKey(const Slice& internal_key) {
+ assert(internal_key.size() >= 8);
+ return Slice(internal_key.data(), internal_key.size() - 8);
+}
+
+inline ValueType ExtractValueType(const Slice& internal_key) {
+ assert(internal_key.size() >= 8);
+ const size_t n = internal_key.size();
+ uint64_t num = DecodeFixed64(internal_key.data() + n - 8);
+ unsigned char c = num & 0xff;
+ return static_cast<ValueType>(c);
+}
+
+// A comparator for internal keys that uses a specified comparator for
+// the user key portion and breaks ties by decreasing sequence number.
+class InternalKeyComparator : public Comparator {
+ private:
+ const Comparator* user_comparator_;
+ public:
+ explicit InternalKeyComparator(const Comparator* c) : user_comparator_(c) { }
+ virtual const char* Name() const;
+ virtual int Compare(const Slice& a, const Slice& b) const;
+ virtual void FindShortestSeparator(
+ std::string* start,
+ const Slice& limit) const;
+ virtual void FindShortSuccessor(std::string* key) const;
+
+ const Comparator* user_comparator() const { return user_comparator_; }
+
+ int Compare(const InternalKey& a, const InternalKey& b) const;
+};
+
+// Filter policy wrapper that converts from internal keys to user keys
+class InternalFilterPolicy : public FilterPolicy {
+ private:
+ const FilterPolicy* const user_policy_;
+ public:
+ explicit InternalFilterPolicy(const FilterPolicy* p) : user_policy_(p) { }
+ virtual const char* Name() const;
+ virtual void CreateFilter(const Slice* keys, int n, std::string* dst) const;
+ virtual bool KeyMayMatch(const Slice& key, const Slice& filter) const;
+};
+
+// Modules in this directory should keep internal keys wrapped inside
+// the following class instead of plain strings so that we do not
+// incorrectly use string comparisons instead of an InternalKeyComparator.
+class InternalKey {
+ private:
+ std::string rep_;
+ public:
+ InternalKey() { } // Leave rep_ as empty to indicate it is invalid
+ InternalKey(const Slice& user_key, SequenceNumber s, ValueType t) {
+ AppendInternalKey(&rep_, ParsedInternalKey(user_key, s, t));
+ }
+
+ void DecodeFrom(const Slice& s) { rep_.assign(s.data(), s.size()); }
+ Slice Encode() const {
+ assert(!rep_.empty());
+ return rep_;
+ }
+
+ Slice user_key() const { return ExtractUserKey(rep_); }
+
+ void SetFrom(const ParsedInternalKey& p) {
+ rep_.clear();
+ AppendInternalKey(&rep_, p);
+ }
+
+ void Clear() { rep_.clear(); }
+
+ std::string DebugString() const;
+};
+
+inline int InternalKeyComparator::Compare(
+ const InternalKey& a, const InternalKey& b) const {
+ return Compare(a.Encode(), b.Encode());
+}
+
+inline bool ParseInternalKey(const Slice& internal_key,
+ ParsedInternalKey* result) {
+ const size_t n = internal_key.size();
+ if (n < 8) return false;
+ uint64_t num = DecodeFixed64(internal_key.data() + n - 8);
+ unsigned char c = num & 0xff;
+ result->sequence = num >> 8;
+ result->type = static_cast<ValueType>(c);
+ result->user_key = Slice(internal_key.data(), n - 8);
+ return (c <= static_cast<unsigned char>(kTypeValue));
+}
+
+// A helper class useful for DBImpl::Get()
+class LookupKey {
+ public:
+ // Initialize *this for looking up user_key at a snapshot with
+ // the specified sequence number.
+ LookupKey(const Slice& user_key, SequenceNumber sequence);
+
+ ~LookupKey();
+
+ // Return a key suitable for lookup in a MemTable.
+ Slice memtable_key() const { return Slice(start_, end_ - start_); }
+
+ // Return an internal key (suitable for passing to an internal iterator)
+ Slice internal_key() const { return Slice(kstart_, end_ - kstart_); }
+
+ // Return the user key
+ Slice user_key() const { return Slice(kstart_, end_ - kstart_ - 8); }
+
+ private:
+ // We construct a char array of the form:
+ // klength varint32 <-- start_
+ // userkey char[klength] <-- kstart_
+ // tag uint64
+ // <-- end_
+ // The array is a suitable MemTable key.
+ // The suffix starting with "userkey" can be used as an InternalKey.
+ const char* start_;
+ const char* kstart_;
+ const char* end_;
+ char space_[200]; // Avoid allocation for short keys
+
+ // No copying allowed
+ LookupKey(const LookupKey&);
+ void operator=(const LookupKey&);
+};
+
+inline LookupKey::~LookupKey() {
+ if (start_ != space_) delete[] start_;
+}
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_DB_FORMAT_H_
diff --git a/clipper/HyperLevelDB/db/dbformat_test.cc b/clipper/HyperLevelDB/db/dbformat_test.cc
new file mode 100644
index 0000000..5d82f5d
--- /dev/null
+++ b/clipper/HyperLevelDB/db/dbformat_test.cc
@@ -0,0 +1,112 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "db/dbformat.h"
+#include "util/logging.h"
+#include "util/testharness.h"
+
+namespace leveldb {
+
+static std::string IKey(const std::string& user_key,
+ uint64_t seq,
+ ValueType vt) {
+ std::string encoded;
+ AppendInternalKey(&encoded, ParsedInternalKey(user_key, seq, vt));
+ return encoded;
+}
+
+static std::string Shorten(const std::string& s, const std::string& l) {
+ std::string result = s;
+ InternalKeyComparator(BytewiseComparator()).FindShortestSeparator(&result, l);
+ return result;
+}
+
+static std::string ShortSuccessor(const std::string& s) {
+ std::string result = s;
+ InternalKeyComparator(BytewiseComparator()).FindShortSuccessor(&result);
+ return result;
+}
+
+static void TestKey(const std::string& key,
+ uint64_t seq,
+ ValueType vt) {
+ std::string encoded = IKey(key, seq, vt);
+
+ Slice in(encoded);
+ ParsedInternalKey decoded("", 0, kTypeValue);
+
+ ASSERT_TRUE(ParseInternalKey(in, &decoded));
+ ASSERT_EQ(key, decoded.user_key.ToString());
+ ASSERT_EQ(seq, decoded.sequence);
+ ASSERT_EQ(vt, decoded.type);
+
+ ASSERT_TRUE(!ParseInternalKey(Slice("bar"), &decoded));
+}
+
+class FormatTest { };
+
+TEST(FormatTest, InternalKey_EncodeDecode) {
+ const char* keys[] = { "", "k", "hello", "longggggggggggggggggggggg" };
+ const uint64_t seq[] = {
+ 1, 2, 3,
+ (1ull << 8) - 1, 1ull << 8, (1ull << 8) + 1,
+ (1ull << 16) - 1, 1ull << 16, (1ull << 16) + 1,
+ (1ull << 32) - 1, 1ull << 32, (1ull << 32) + 1
+ };
+ for (int k = 0; k < sizeof(keys) / sizeof(keys[0]); k++) {
+ for (int s = 0; s < sizeof(seq) / sizeof(seq[0]); s++) {
+ TestKey(keys[k], seq[s], kTypeValue);
+ TestKey("hello", 1, kTypeDeletion);
+ }
+ }
+}
+
+TEST(FormatTest, InternalKeyShortSeparator) {
+ // When user keys are same
+ ASSERT_EQ(IKey("foo", 100, kTypeValue),
+ Shorten(IKey("foo", 100, kTypeValue),
+ IKey("foo", 99, kTypeValue)));
+ ASSERT_EQ(IKey("foo", 100, kTypeValue),
+ Shorten(IKey("foo", 100, kTypeValue),
+ IKey("foo", 101, kTypeValue)));
+ ASSERT_EQ(IKey("foo", 100, kTypeValue),
+ Shorten(IKey("foo", 100, kTypeValue),
+ IKey("foo", 100, kTypeValue)));
+ ASSERT_EQ(IKey("foo", 100, kTypeValue),
+ Shorten(IKey("foo", 100, kTypeValue),
+ IKey("foo", 100, kTypeDeletion)));
+
+ // When user keys are misordered
+ ASSERT_EQ(IKey("foo", 100, kTypeValue),
+ Shorten(IKey("foo", 100, kTypeValue),
+ IKey("bar", 99, kTypeValue)));
+
+ // When user keys are different, but correctly ordered
+ ASSERT_EQ(IKey("g", kMaxSequenceNumber, kValueTypeForSeek),
+ Shorten(IKey("foo", 100, kTypeValue),
+ IKey("hello", 200, kTypeValue)));
+
+ // When start user key is prefix of limit user key
+ ASSERT_EQ(IKey("foo", 100, kTypeValue),
+ Shorten(IKey("foo", 100, kTypeValue),
+ IKey("foobar", 200, kTypeValue)));
+
+ // When limit user key is prefix of start user key
+ ASSERT_EQ(IKey("foobar", 100, kTypeValue),
+ Shorten(IKey("foobar", 100, kTypeValue),
+ IKey("foo", 200, kTypeValue)));
+}
+
+TEST(FormatTest, InternalKeyShortestSuccessor) {
+ ASSERT_EQ(IKey("g", kMaxSequenceNumber, kValueTypeForSeek),
+ ShortSuccessor(IKey("foo", 100, kTypeValue)));
+ ASSERT_EQ(IKey("\xff\xff", 100, kTypeValue),
+ ShortSuccessor(IKey("\xff\xff", 100, kTypeValue)));
+}
+
+} // namespace leveldb
+
+int main(int argc, char** argv) {
+ return leveldb::test::RunAllTests();
+}
diff --git a/clipper/HyperLevelDB/db/filename.cc b/clipper/HyperLevelDB/db/filename.cc
new file mode 100644
index 0000000..14bf22a
--- /dev/null
+++ b/clipper/HyperLevelDB/db/filename.cc
@@ -0,0 +1,144 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include <ctype.h>
+#include <stdio.h>
+#include "db/filename.h"
+#include "db/dbformat.h"
+#include "hyperleveldb/env.h"
+#include "util/logging.h"
+
+namespace leveldb {
+
+// A utility routine: write "data" to the named file and Sync() it.
+extern Status WriteStringToFileSync(Env* env, const Slice& data,
+ const std::string& fname);
+
+static std::string MakeFileName(const std::string& name, uint64_t number,
+ const char* suffix) {
+ char buf[100];
+ snprintf(buf, sizeof(buf), "/%06llu.%s",
+ static_cast<unsigned long long>(number),
+ suffix);
+ return name + buf;
+}
+
+std::string LogFileName(const std::string& name, uint64_t number) {
+ assert(number > 0);
+ return MakeFileName(name, number, "log");
+}
+
+std::string TableFileName(const std::string& name, uint64_t number) {
+ assert(number > 0);
+ return MakeFileName(name, number, "ldb");
+}
+
+std::string SSTTableFileName(const std::string& name, uint64_t number) {
+ assert(number > 0);
+ return MakeFileName(name, number, "sst");
+}
+
+std::string DescriptorFileName(const std::string& dbname, uint64_t number) {
+ assert(number > 0);
+ char buf[100];
+ snprintf(buf, sizeof(buf), "/MANIFEST-%06llu",
+ static_cast<unsigned long long>(number));
+ return dbname + buf;
+}
+
+std::string CurrentFileName(const std::string& dbname) {
+ return dbname + "/CURRENT";
+}
+
+std::string LockFileName(const std::string& dbname) {
+ return dbname + "/LOCK";
+}
+
+std::string TempFileName(const std::string& dbname, uint64_t number) {
+ assert(number > 0);
+ return MakeFileName(dbname, number, "dbtmp");
+}
+
+std::string InfoLogFileName(const std::string& dbname) {
+ return dbname + "/LOG";
+}
+
+// Return the name of the old info log file for "dbname".
+std::string OldInfoLogFileName(const std::string& dbname) {
+ return dbname + "/LOG.old";
+}
+
+
+// Owned filenames have the form:
+// dbname/CURRENT
+// dbname/LOCK
+// dbname/LOG
+// dbname/LOG.old
+// dbname/MANIFEST-[0-9]+
+// dbname/[0-9]+.(log|sst|ldb)
+bool ParseFileName(const std::string& fname,
+ uint64_t* number,
+ FileType* type) {
+ Slice rest(fname);
+ if (rest == "CURRENT") {
+ *number = 0;
+ *type = kCurrentFile;
+ } else if (rest == "LOCK") {
+ *number = 0;
+ *type = kDBLockFile;
+ } else if (rest == "LOG" || rest == "LOG.old") {
+ *number = 0;
+ *type = kInfoLogFile;
+ } else if (rest.starts_with("MANIFEST-")) {
+ rest.remove_prefix(strlen("MANIFEST-"));
+ uint64_t num;
+ if (!ConsumeDecimalNumber(&rest, &num)) {
+ return false;
+ }
+ if (!rest.empty()) {
+ return false;
+ }
+ *type = kDescriptorFile;
+ *number = num;
+ } else {
+ // Avoid strtoull() to keep filename format independent of the
+ // current locale
+ uint64_t num;
+ if (!ConsumeDecimalNumber(&rest, &num)) {
+ return false;
+ }
+ Slice suffix = rest;
+ if (suffix == Slice(".log")) {
+ *type = kLogFile;
+ } else if (suffix == Slice(".sst") || suffix == Slice(".ldb")) {
+ *type = kTableFile;
+ } else if (suffix == Slice(".dbtmp")) {
+ *type = kTempFile;
+ } else {
+ return false;
+ }
+ *number = num;
+ }
+ return true;
+}
+
+Status SetCurrentFile(Env* env, const std::string& dbname,
+ uint64_t descriptor_number) {
+ // Remove leading "dbname/" and add newline to manifest file name
+ std::string manifest = DescriptorFileName(dbname, descriptor_number);
+ Slice contents = manifest;
+ assert(contents.starts_with(dbname + "/"));
+ contents.remove_prefix(dbname.size() + 1);
+ std::string tmp = TempFileName(dbname, descriptor_number);
+ Status s = WriteStringToFileSync(env, contents.ToString() + "\n", tmp);
+ if (s.ok()) {
+ s = env->RenameFile(tmp, CurrentFileName(dbname));
+ }
+ if (!s.ok()) {
+ env->DeleteFile(tmp);
+ }
+ return s;
+}
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/db/filename.h b/clipper/HyperLevelDB/db/filename.h
new file mode 100644
index 0000000..4126b95
--- /dev/null
+++ b/clipper/HyperLevelDB/db/filename.h
@@ -0,0 +1,85 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+//
+// File names used by DB code
+
+#ifndef STORAGE_LEVELDB_DB_FILENAME_H_
+#define STORAGE_LEVELDB_DB_FILENAME_H_
+
+#include <stdint.h>
+#include <string>
+#include "hyperleveldb/slice.h"
+#include "hyperleveldb/status.h"
+#include "port/port.h"
+
+namespace leveldb {
+
+class Env;
+
+enum FileType {
+ kLogFile,
+ kDBLockFile,
+ kTableFile,
+ kDescriptorFile,
+ kCurrentFile,
+ kTempFile,
+ kInfoLogFile // Either the current one, or an old one
+};
+
+// Return the name of the log file with the specified number
+// in the db named by "dbname". The result will be prefixed with
+// "dbname".
+extern std::string LogFileName(const std::string& dbname, uint64_t number);
+
+// Return the name of the sstable with the specified number
+// in the db named by "dbname". The result will be prefixed with
+// "dbname".
+extern std::string TableFileName(const std::string& dbname, uint64_t number);
+
+// Return the legacy file name for an sstable with the specified number
+// in the db named by "dbname". The result will be prefixed with
+// "dbname".
+extern std::string SSTTableFileName(const std::string& dbname, uint64_t number);
+
+// Return the name of the descriptor file for the db named by
+// "dbname" and the specified incarnation number. The result will be
+// prefixed with "dbname".
+extern std::string DescriptorFileName(const std::string& dbname,
+ uint64_t number);
+
+// Return the name of the current file. This file contains the name
+// of the current manifest file. The result will be prefixed with
+// "dbname".
+extern std::string CurrentFileName(const std::string& dbname);
+
+// Return the name of the lock file for the db named by
+// "dbname". The result will be prefixed with "dbname".
+extern std::string LockFileName(const std::string& dbname);
+
+// Return the name of a temporary file owned by the db named "dbname".
+// The result will be prefixed with "dbname".
+extern std::string TempFileName(const std::string& dbname, uint64_t number);
+
+// Return the name of the info log file for "dbname".
+extern std::string InfoLogFileName(const std::string& dbname);
+
+// Return the name of the old info log file for "dbname".
+extern std::string OldInfoLogFileName(const std::string& dbname);
+
+// If filename is a leveldb file, store the type of the file in *type.
+// The number encoded in the filename is stored in *number. If the
+// filename was successfully parsed, returns true. Else return false.
+extern bool ParseFileName(const std::string& filename,
+ uint64_t* number,
+ FileType* type);
+
+// Make the CURRENT file point to the descriptor file with the
+// specified number.
+extern Status SetCurrentFile(Env* env, const std::string& dbname,
+ uint64_t descriptor_number);
+
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_DB_FILENAME_H_
diff --git a/clipper/HyperLevelDB/db/filename_test.cc b/clipper/HyperLevelDB/db/filename_test.cc
new file mode 100644
index 0000000..a32556d
--- /dev/null
+++ b/clipper/HyperLevelDB/db/filename_test.cc
@@ -0,0 +1,123 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "db/filename.h"
+
+#include "db/dbformat.h"
+#include "port/port.h"
+#include "util/logging.h"
+#include "util/testharness.h"
+
+namespace leveldb {
+
+class FileNameTest { };
+
+TEST(FileNameTest, Parse) {
+ Slice db;
+ FileType type;
+ uint64_t number;
+
+ // Successful parses
+ static struct {
+ const char* fname;
+ uint64_t number;
+ FileType type;
+ } cases[] = {
+ { "100.log", 100, kLogFile },
+ { "0.log", 0, kLogFile },
+ { "0.sst", 0, kTableFile },
+ { "0.ldb", 0, kTableFile },
+ { "CURRENT", 0, kCurrentFile },
+ { "LOCK", 0, kDBLockFile },
+ { "MANIFEST-2", 2, kDescriptorFile },
+ { "MANIFEST-7", 7, kDescriptorFile },
+ { "LOG", 0, kInfoLogFile },
+ { "LOG.old", 0, kInfoLogFile },
+ { "18446744073709551615.log", 18446744073709551615ull, kLogFile },
+ };
+ for (int i = 0; i < sizeof(cases) / sizeof(cases[0]); i++) {
+ std::string f = cases[i].fname;
+ ASSERT_TRUE(ParseFileName(f, &number, &type)) << f;
+ ASSERT_EQ(cases[i].type, type) << f;
+ ASSERT_EQ(cases[i].number, number) << f;
+ }
+
+ // Errors
+ static const char* errors[] = {
+ "",
+ "foo",
+ "foo-dx-100.log",
+ ".log",
+ "",
+ "manifest",
+ "CURREN",
+ "CURRENTX",
+ "MANIFES",
+ "MANIFEST",
+ "MANIFEST-",
+ "XMANIFEST-3",
+ "MANIFEST-3x",
+ "LOC",
+ "LOCKx",
+ "LO",
+ "LOGx",
+ "18446744073709551616.log",
+ "184467440737095516150.log",
+ "100",
+ "100.",
+ "100.lop"
+ };
+ for (int i = 0; i < sizeof(errors) / sizeof(errors[0]); i++) {
+ std::string f = errors[i];
+ ASSERT_TRUE(!ParseFileName(f, &number, &type)) << f;
+ }
+}
+
+TEST(FileNameTest, Construction) {
+ uint64_t number;
+ FileType type;
+ std::string fname;
+
+ fname = CurrentFileName("foo");
+ ASSERT_EQ("foo/", std::string(fname.data(), 4));
+ ASSERT_TRUE(ParseFileName(fname.c_str() + 4, &number, &type));
+ ASSERT_EQ(0, number);
+ ASSERT_EQ(kCurrentFile, type);
+
+ fname = LockFileName("foo");
+ ASSERT_EQ("foo/", std::string(fname.data(), 4));
+ ASSERT_TRUE(ParseFileName(fname.c_str() + 4, &number, &type));
+ ASSERT_EQ(0, number);
+ ASSERT_EQ(kDBLockFile, type);
+
+ fname = LogFileName("foo", 192);
+ ASSERT_EQ("foo/", std::string(fname.data(), 4));
+ ASSERT_TRUE(ParseFileName(fname.c_str() + 4, &number, &type));
+ ASSERT_EQ(192, number);
+ ASSERT_EQ(kLogFile, type);
+
+ fname = TableFileName("bar", 200);
+ ASSERT_EQ("bar/", std::string(fname.data(), 4));
+ ASSERT_TRUE(ParseFileName(fname.c_str() + 4, &number, &type));
+ ASSERT_EQ(200, number);
+ ASSERT_EQ(kTableFile, type);
+
+ fname = DescriptorFileName("bar", 100);
+ ASSERT_EQ("bar/", std::string(fname.data(), 4));
+ ASSERT_TRUE(ParseFileName(fname.c_str() + 4, &number, &type));
+ ASSERT_EQ(100, number);
+ ASSERT_EQ(kDescriptorFile, type);
+
+ fname = TempFileName("tmp", 999);
+ ASSERT_EQ("tmp/", std::string(fname.data(), 4));
+ ASSERT_TRUE(ParseFileName(fname.c_str() + 4, &number, &type));
+ ASSERT_EQ(999, number);
+ ASSERT_EQ(kTempFile, type);
+}
+
+} // namespace leveldb
+
+int main(int argc, char** argv) {
+ return leveldb::test::RunAllTests();
+}
diff --git a/clipper/HyperLevelDB/db/leveldb_main.cc b/clipper/HyperLevelDB/db/leveldb_main.cc
new file mode 100644
index 0000000..d34d806
--- /dev/null
+++ b/clipper/HyperLevelDB/db/leveldb_main.cc
@@ -0,0 +1,238 @@
+// Copyright (c) 2012 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include <stdio.h>
+#include "db/dbformat.h"
+#include "db/filename.h"
+#include "db/log_reader.h"
+#include "db/version_edit.h"
+#include "db/write_batch_internal.h"
+#include "hyperleveldb/env.h"
+#include "hyperleveldb/iterator.h"
+#include "hyperleveldb/options.h"
+#include "hyperleveldb/status.h"
+#include "hyperleveldb/table.h"
+#include "hyperleveldb/write_batch.h"
+#include "util/logging.h"
+
+namespace leveldb {
+
+namespace {
+
+bool GuessType(const std::string& fname, FileType* type) {
+ size_t pos = fname.rfind('/');
+ std::string basename;
+ if (pos == std::string::npos) {
+ basename = fname;
+ } else {
+ basename = std::string(fname.data() + pos + 1, fname.size() - pos - 1);
+ }
+ uint64_t ignored;
+ return ParseFileName(basename, &ignored, type);
+}
+
+// Notified when log reader encounters corruption.
+class CorruptionReporter : public log::Reader::Reporter {
+ public:
+ virtual void Corruption(size_t bytes, const Status& status) {
+ printf("corruption: %d bytes; %s\n",
+ static_cast<int>(bytes),
+ status.ToString().c_str());
+ }
+};
+
+// Print contents of a log file. (*func)() is called on every record.
+bool PrintLogContents(Env* env, const std::string& fname,
+ void (*func)(Slice)) {
+ SequentialFile* file;
+ Status s = env->NewSequentialFile(fname, &file);
+ if (!s.ok()) {
+ fprintf(stderr, "%s\n", s.ToString().c_str());
+ return false;
+ }
+ CorruptionReporter reporter;
+ log::Reader reader(file, &reporter, true, 0);
+ Slice record;
+ std::string scratch;
+ while (reader.ReadRecord(&record, &scratch)) {
+ printf("--- offset %llu; ",
+ static_cast<unsigned long long>(reader.LastRecordOffset()));
+ (*func)(record);
+ }
+ delete file;
+ return true;
+}
+
+// Called on every item found in a WriteBatch.
+class WriteBatchItemPrinter : public WriteBatch::Handler {
+ public:
+ uint64_t offset_;
+ uint64_t sequence_;
+
+ virtual void Put(const Slice& key, const Slice& value) {
+ printf(" put '%s' '%s'\n",
+ EscapeString(key).c_str(),
+ EscapeString(value).c_str());
+ }
+ virtual void Delete(const Slice& key) {
+ printf(" del '%s'\n",
+ EscapeString(key).c_str());
+ }
+};
+
+
+// Called on every log record (each one of which is a WriteBatch)
+// found in a kLogFile.
+static void WriteBatchPrinter(Slice record) {
+ if (record.size() < 12) {
+ printf("log record length %d is too small\n",
+ static_cast<int>(record.size()));
+ return;
+ }
+ WriteBatch batch;
+ WriteBatchInternal::SetContents(&batch, record);
+ printf("sequence %llu\n",
+ static_cast<unsigned long long>(WriteBatchInternal::Sequence(&batch)));
+ WriteBatchItemPrinter batch_item_printer;
+ Status s = batch.Iterate(&batch_item_printer);
+ if (!s.ok()) {
+ printf(" error: %s\n", s.ToString().c_str());
+ }
+}
+
+bool DumpLog(Env* env, const std::string& fname) {
+ return PrintLogContents(env, fname, WriteBatchPrinter);
+}
+
+// Called on every log record (each one of which is a WriteBatch)
+// found in a kDescriptorFile.
+static void VersionEditPrinter(Slice record) {
+ VersionEdit edit;
+ Status s = edit.DecodeFrom(record);
+ if (!s.ok()) {
+ printf("%s\n", s.ToString().c_str());
+ return;
+ }
+ printf("%s", edit.DebugString().c_str());
+}
+
+bool DumpDescriptor(Env* env, const std::string& fname) {
+ return PrintLogContents(env, fname, VersionEditPrinter);
+}
+
+bool DumpTable(Env* env, const std::string& fname) {
+ uint64_t file_size;
+ RandomAccessFile* file = NULL;
+ Table* table = NULL;
+ Status s = env->GetFileSize(fname, &file_size);
+ if (s.ok()) {
+ s = env->NewRandomAccessFile(fname, &file);
+ }
+ if (s.ok()) {
+ // We use the default comparator, which may or may not match the
+ // comparator used in this database. However this should not cause
+ // problems since we only use Table operations that do not require
+ // any comparisons. In particular, we do not call Seek or Prev.
+ s = Table::Open(Options(), file, file_size, &table);
+ }
+ if (!s.ok()) {
+ fprintf(stderr, "%s\n", s.ToString().c_str());
+ delete table;
+ delete file;
+ return false;
+ }
+
+ ReadOptions ro;
+ ro.fill_cache = false;
+ Iterator* iter = table->NewIterator(ro);
+ for (iter->SeekToFirst(); iter->Valid(); iter->Next()) {
+ ParsedInternalKey key;
+ if (!ParseInternalKey(iter->key(), &key)) {
+ printf("badkey '%s' => '%s'\n",
+ EscapeString(iter->key()).c_str(),
+ EscapeString(iter->value()).c_str());
+ } else {
+ char kbuf[20];
+ const char* type;
+ if (key.type == kTypeDeletion) {
+ type = "del";
+ } else if (key.type == kTypeValue) {
+ type = "val";
+ } else {
+ snprintf(kbuf, sizeof(kbuf), "%d", static_cast<int>(key.type));
+ type = kbuf;
+ }
+ printf("'%s' @ %8llu : %s => '%s'\n",
+ EscapeString(key.user_key).c_str(),
+ static_cast<unsigned long long>(key.sequence),
+ type,
+ EscapeString(iter->value()).c_str());
+ }
+ }
+ s = iter->status();
+ if (!s.ok()) {
+ printf("iterator error: %s\n", s.ToString().c_str());
+ }
+
+ delete iter;
+ delete table;
+ delete file;
+ return true;
+}
+
+bool DumpFile(Env* env, const std::string& fname) {
+ FileType ftype;
+ if (!GuessType(fname, &ftype)) {
+ fprintf(stderr, "%s: unknown file type\n", fname.c_str());
+ return false;
+ }
+ switch (ftype) {
+ case kLogFile: return DumpLog(env, fname);
+ case kDescriptorFile: return DumpDescriptor(env, fname);
+ case kTableFile: return DumpTable(env, fname);
+
+ default: {
+ fprintf(stderr, "%s: not a dump-able file type\n", fname.c_str());
+ break;
+ }
+ }
+ return false;
+}
+
+bool HandleDumpCommand(Env* env, char** files, int num) {
+ bool ok = true;
+ for (int i = 0; i < num; i++) {
+ ok &= DumpFile(env, files[i]);
+ }
+ return ok;
+}
+
+}
+} // namespace leveldb
+
+static void Usage() {
+ fprintf(
+ stderr,
+ "Usage: leveldbutil command...\n"
+ " dump files... -- dump contents of specified files\n"
+ );
+}
+
+int main(int argc, char** argv) {
+ leveldb::Env* env = leveldb::Env::Default();
+ bool ok = true;
+ if (argc < 2) {
+ Usage();
+ ok = false;
+ } else {
+ std::string command = argv[1];
+ if (command == "dump") {
+ ok = leveldb::HandleDumpCommand(env, argv+2, argc-2);
+ } else {
+ Usage();
+ ok = false;
+ }
+ }
+ return (ok ? 0 : 1);
+}
diff --git a/clipper/HyperLevelDB/db/log_format.h b/clipper/HyperLevelDB/db/log_format.h
new file mode 100644
index 0000000..2690cb9
--- /dev/null
+++ b/clipper/HyperLevelDB/db/log_format.h
@@ -0,0 +1,35 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+//
+// Log format information shared by reader and writer.
+// See ../doc/log_format.txt for more detail.
+
+#ifndef STORAGE_LEVELDB_DB_LOG_FORMAT_H_
+#define STORAGE_LEVELDB_DB_LOG_FORMAT_H_
+
+namespace leveldb {
+namespace log {
+
+enum RecordType {
+ // Zero is reserved for preallocated files
+ kZeroType = 0,
+
+ kFullType = 1,
+
+ // For fragments
+ kFirstType = 2,
+ kMiddleType = 3,
+ kLastType = 4
+};
+static const int kMaxRecordType = kLastType;
+
+static const int kBlockSize = 32768;
+
+// Header is checksum (4 bytes), type (1 byte), length (2 bytes).
+static const int kHeaderSize = 4 + 1 + 2;
+
+} // namespace log
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_DB_LOG_FORMAT_H_
diff --git a/clipper/HyperLevelDB/db/log_reader.cc b/clipper/HyperLevelDB/db/log_reader.cc
new file mode 100644
index 0000000..46c7647
--- /dev/null
+++ b/clipper/HyperLevelDB/db/log_reader.cc
@@ -0,0 +1,266 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "db/log_reader.h"
+
+#include <stdio.h>
+#include "hyperleveldb/env.h"
+#include "util/coding.h"
+#include "util/crc32c.h"
+
+namespace leveldb {
+namespace log {
+
+Reader::Reporter::~Reporter() {
+}
+
+Reader::Reader(SequentialFile* file, Reporter* reporter, bool checksum,
+ uint64_t initial_offset)
+ : file_(file),
+ reporter_(reporter),
+ checksum_(checksum),
+ backing_store_(new char[kBlockSize]),
+ buffer_(),
+ eof_(false),
+ last_record_offset_(0),
+ end_of_buffer_offset_(0),
+ initial_offset_(initial_offset) {
+}
+
+Reader::~Reader() {
+ delete[] backing_store_;
+}
+
+bool Reader::SkipToInitialBlock() {
+ size_t offset_in_block = initial_offset_ % kBlockSize;
+ uint64_t block_start_location = initial_offset_ - offset_in_block;
+
+ // Don't search a block if we'd be in the trailer
+ if (offset_in_block > kBlockSize - 6) {
+ offset_in_block = 0;
+ block_start_location += kBlockSize;
+ }
+
+ end_of_buffer_offset_ = block_start_location;
+
+ // Skip to start of first block that can contain the initial record
+ if (block_start_location > 0) {
+ Status skip_status = file_->Skip(block_start_location);
+ if (!skip_status.ok()) {
+ ReportDrop(block_start_location, skip_status);
+ return false;
+ }
+ }
+
+ return true;
+}
+
+bool Reader::ReadRecord(Slice* record, std::string* scratch) {
+ if (last_record_offset_ < initial_offset_) {
+ if (!SkipToInitialBlock()) {
+ return false;
+ }
+ }
+
+ scratch->clear();
+ record->clear();
+ bool in_fragmented_record = false;
+ // Record offset of the logical record that we're reading
+ // 0 is a dummy value to make compilers happy
+ uint64_t prospective_record_offset = 0;
+
+ Slice fragment;
+ while (true) {
+ uint64_t physical_record_offset = end_of_buffer_offset_ - buffer_.size();
+ const unsigned int record_type = ReadPhysicalRecord(&fragment);
+ switch (record_type) {
+ case kFullType:
+ if (in_fragmented_record) {
+ // Handle bug in earlier versions of log::Writer where
+ // it could emit an empty kFirstType record at the tail end
+ // of a block followed by a kFullType or kFirstType record
+ // at the beginning of the next block.
+ if (scratch->empty()) {
+ in_fragmented_record = false;
+ } else {
+ ReportCorruption(scratch->size(), "partial record without end(1)");
+ }
+ }
+ prospective_record_offset = physical_record_offset;
+ scratch->clear();
+ *record = fragment;
+ last_record_offset_ = prospective_record_offset;
+ return true;
+
+ case kFirstType:
+ if (in_fragmented_record) {
+ // Handle bug in earlier versions of log::Writer where
+ // it could emit an empty kFirstType record at the tail end
+ // of a block followed by a kFullType or kFirstType record
+ // at the beginning of the next block.
+ if (scratch->empty()) {
+ in_fragmented_record = false;
+ } else {
+ ReportCorruption(scratch->size(), "partial record without end(2)");
+ }
+ }
+ prospective_record_offset = physical_record_offset;
+ scratch->assign(fragment.data(), fragment.size());
+ in_fragmented_record = true;
+ break;
+
+ case kMiddleType:
+ if (!in_fragmented_record) {
+ ReportCorruption(fragment.size(),
+ "missing start of fragmented record(1)");
+ } else {
+ scratch->append(fragment.data(), fragment.size());
+ }
+ break;
+
+ case kLastType:
+ if (!in_fragmented_record) {
+ ReportCorruption(fragment.size(),
+ "missing start of fragmented record(2)");
+ } else {
+ scratch->append(fragment.data(), fragment.size());
+ *record = Slice(*scratch);
+ last_record_offset_ = prospective_record_offset;
+ return true;
+ }
+ break;
+
+ case kEof:
+ if (in_fragmented_record) {
+ // This can be caused by the writer dying immediately after
+ // writing a physical record but before completing the next; don't
+ // treat it as a corruption, just ignore the entire logical record.
+ scratch->clear();
+ }
+ return false;
+
+ case kBadRecord:
+ if (in_fragmented_record) {
+ ReportCorruption(scratch->size(), "error in middle of record");
+ in_fragmented_record = false;
+ scratch->clear();
+ }
+ break;
+
+ default: {
+ char buf[40];
+ snprintf(buf, sizeof(buf), "unknown record type %u", record_type);
+ ReportCorruption(
+ (fragment.size() + (in_fragmented_record ? scratch->size() : 0)),
+ buf);
+ in_fragmented_record = false;
+ scratch->clear();
+ break;
+ }
+ }
+ }
+ return false;
+}
+
+uint64_t Reader::LastRecordOffset() {
+ return last_record_offset_;
+}
+
+void Reader::ReportCorruption(size_t bytes, const char* reason) {
+ ReportDrop(bytes, Status::Corruption(reason));
+}
+
+void Reader::ReportDrop(size_t bytes, const Status& reason) {
+ if (reporter_ != NULL &&
+ end_of_buffer_offset_ - buffer_.size() - bytes >= initial_offset_) {
+ reporter_->Corruption(bytes, reason);
+ }
+}
+
+unsigned int Reader::ReadPhysicalRecord(Slice* result) {
+ while (true) {
+ if (buffer_.size() < kHeaderSize) {
+ if (!eof_) {
+ // Last read was a full read, so this is a trailer to skip
+ buffer_.clear();
+ Status status = file_->Read(kBlockSize, &buffer_, backing_store_);
+ end_of_buffer_offset_ += buffer_.size();
+ if (!status.ok()) {
+ buffer_.clear();
+ ReportDrop(kBlockSize, status);
+ eof_ = true;
+ return kEof;
+ } else if (buffer_.size() < kBlockSize) {
+ eof_ = true;
+ }
+ continue;
+ } else {
+ // Note that if buffer_ is non-empty, we have a truncated header at the
+ // end of the file, which can be caused by the writer crashing in the
+ // middle of writing the header. Instead of considering this an error,
+ // just report EOF.
+ buffer_.clear();
+ return kEof;
+ }
+ }
+
+ // Parse the header
+ const char* header = buffer_.data();
+ const uint32_t a = static_cast<uint32_t>(header[4]) & 0xff;
+ const uint32_t b = static_cast<uint32_t>(header[5]) & 0xff;
+ const unsigned int type = header[6];
+ const uint32_t length = a | (b << 8);
+ if (kHeaderSize + length > buffer_.size()) {
+ size_t drop_size = buffer_.size();
+ buffer_.clear();
+ if (!eof_) {
+ ReportCorruption(drop_size, "bad record length");
+ return kBadRecord;
+ }
+ // If the end of the file has been reached without reading |length| bytes
+ // of payload, assume the writer died in the middle of writing the record.
+ // Don't report a corruption.
+ return kEof;
+ }
+
+ if (type == kZeroType && length == 0) {
+ // Skip zero length record without reporting any drops since
+ // such records are produced by the mmap based writing code in
+ // env_posix.cc that preallocates file regions.
+ buffer_.clear();
+ return kBadRecord;
+ }
+
+ // Check crc
+ if (checksum_) {
+ uint32_t expected_crc = crc32c::Unmask(DecodeFixed32(header));
+ uint32_t actual_crc = crc32c::Value(header + 6, 1 + length);
+ if (actual_crc != expected_crc) {
+ // Drop the rest of the buffer since "length" itself may have
+ // been corrupted and if we trust it, we could find some
+ // fragment of a real log record that just happens to look
+ // like a valid log record.
+ size_t drop_size = buffer_.size();
+ buffer_.clear();
+ ReportCorruption(drop_size, "checksum mismatch");
+ return kBadRecord;
+ }
+ }
+
+ buffer_.remove_prefix(kHeaderSize + length);
+
+ // Skip physical record that started before initial_offset_
+ if (end_of_buffer_offset_ - buffer_.size() - kHeaderSize - length <
+ initial_offset_) {
+ result->clear();
+ return kBadRecord;
+ }
+
+ *result = Slice(header + kHeaderSize, length);
+ return type;
+ }
+}
+
+} // namespace log
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/db/log_reader.h b/clipper/HyperLevelDB/db/log_reader.h
new file mode 100644
index 0000000..98025f4
--- /dev/null
+++ b/clipper/HyperLevelDB/db/log_reader.h
@@ -0,0 +1,108 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#ifndef STORAGE_LEVELDB_DB_LOG_READER_H_
+#define STORAGE_LEVELDB_DB_LOG_READER_H_
+
+#include <stdint.h>
+
+#include "db/log_format.h"
+#include "hyperleveldb/slice.h"
+#include "hyperleveldb/status.h"
+
+namespace leveldb {
+
+class SequentialFile;
+
+namespace log {
+
+class Reader {
+ public:
+ // Interface for reporting errors.
+ class Reporter {
+ public:
+ virtual ~Reporter();
+
+ // Some corruption was detected. "size" is the approximate number
+ // of bytes dropped due to the corruption.
+ virtual void Corruption(size_t bytes, const Status& status) = 0;
+ };
+
+ // Create a reader that will return log records from "*file".
+ // "*file" must remain live while this Reader is in use.
+ //
+ // If "reporter" is non-NULL, it is notified whenever some data is
+ // dropped due to a detected corruption. "*reporter" must remain
+ // live while this Reader is in use.
+ //
+ // If "checksum" is true, verify checksums if available.
+ //
+ // The Reader will start reading at the first record located at physical
+ // position >= initial_offset within the file.
+ Reader(SequentialFile* file, Reporter* reporter, bool checksum,
+ uint64_t initial_offset);
+
+ ~Reader();
+
+ // Read the next record into *record. Returns true if read
+ // successfully, false if we hit end of the input. May use
+ // "*scratch" as temporary storage. The contents filled in *record
+ // will only be valid until the next mutating operation on this
+ // reader or the next mutation to *scratch.
+ bool ReadRecord(Slice* record, std::string* scratch);
+
+ // Returns the physical offset of the last record returned by ReadRecord.
+ //
+ // Undefined before the first call to ReadRecord.
+ uint64_t LastRecordOffset();
+
+ private:
+ SequentialFile* const file_;
+ Reporter* const reporter_;
+ bool const checksum_;
+ char* const backing_store_;
+ Slice buffer_;
+ bool eof_; // Last Read() indicated EOF by returning < kBlockSize
+
+ // Offset of the last record returned by ReadRecord.
+ uint64_t last_record_offset_;
+ // Offset of the first location past the end of buffer_.
+ uint64_t end_of_buffer_offset_;
+
+ // Offset at which to start looking for the first record to return
+ uint64_t const initial_offset_;
+
+ // Extend record types with the following special values
+ enum {
+ kEof = kMaxRecordType + 1,
+ // Returned whenever we find an invalid physical record.
+ // Currently there are three situations in which this happens:
+ // * The record has an invalid CRC (ReadPhysicalRecord reports a drop)
+ // * The record is a 0-length record (No drop is reported)
+ // * The record is below constructor's initial_offset (No drop is reported)
+ kBadRecord = kMaxRecordType + 2
+ };
+
+ // Skips all blocks that are completely before "initial_offset_".
+ //
+ // Returns true on success. Handles reporting.
+ bool SkipToInitialBlock();
+
+ // Return type, or one of the preceding special values
+ unsigned int ReadPhysicalRecord(Slice* result);
+
+ // Reports dropped bytes to the reporter.
+ // buffer_ must be updated to remove the dropped bytes prior to invocation.
+ void ReportCorruption(size_t bytes, const char* reason);
+ void ReportDrop(size_t bytes, const Status& reason);
+
+ // No copying allowed
+ Reader(const Reader&);
+ void operator=(const Reader&);
+};
+
+} // namespace log
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_DB_LOG_READER_H_
diff --git a/clipper/HyperLevelDB/db/log_test.cc b/clipper/HyperLevelDB/db/log_test.cc
new file mode 100644
index 0000000..a42a858
--- /dev/null
+++ b/clipper/HyperLevelDB/db/log_test.cc
@@ -0,0 +1,539 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "db/log_reader.h"
+#include "db/log_writer.h"
+#include "hyperleveldb/env.h"
+#include "util/coding.h"
+#include "util/crc32c.h"
+#include "util/random.h"
+#include "util/testharness.h"
+
+namespace leveldb {
+namespace log {
+
+// Construct a string of the specified length made out of the supplied
+// partial string.
+static std::string BigString(const std::string& partial_string, size_t n) {
+ std::string result;
+ while (result.size() < n) {
+ result.append(partial_string);
+ }
+ result.resize(n);
+ return result;
+}
+
+// Construct a string from a number
+static std::string NumberString(int n) {
+ char buf[50];
+ snprintf(buf, sizeof(buf), "%d.", n);
+ return std::string(buf);
+}
+
+// Return a skewed potentially long string
+static std::string RandomSkewedString(int i, Random* rnd) {
+ return BigString(NumberString(i), rnd->Skewed(17));
+}
+
+class LogTest {
+ private:
+ class StringDest : public WritableFile {
+ public:
+ std::string contents_;
+
+ virtual Status Close() { return Status::OK(); }
+ virtual Status Flush() { return Status::OK(); }
+ virtual Status Sync() { return Status::OK(); }
+ virtual Status WriteAt(uint64_t offset, const Slice& slice) {
+ std::string tmp = contents_.substr(0, offset);
+ tmp.append(slice.data(), slice.size());
+ if (contents_.size() > offset + slice.size()) {
+ tmp += contents_.substr(offset + slice.size());
+ }
+ contents_ = tmp;
+ return Status::OK();
+ }
+ virtual Status Append(const Slice& slice) {
+ contents_.append(slice.data(), slice.size());
+ return Status::OK();
+ }
+ };
+
+ class StringSource : public SequentialFile {
+ public:
+ Slice contents_;
+ bool force_error_;
+ bool returned_partial_;
+ StringSource() : force_error_(false), returned_partial_(false) { }
+
+ virtual Status Read(size_t n, Slice* result, char* scratch) {
+ ASSERT_TRUE(!returned_partial_) << "must not Read() after eof/error";
+
+ if (force_error_) {
+ force_error_ = false;
+ returned_partial_ = true;
+ return Status::Corruption("read error");
+ }
+
+ if (contents_.size() < n) {
+ n = contents_.size();
+ returned_partial_ = true;
+ }
+ *result = Slice(contents_.data(), n);
+ contents_.remove_prefix(n);
+ return Status::OK();
+ }
+
+ virtual Status Skip(uint64_t n) {
+ if (n > contents_.size()) {
+ contents_.clear();
+ return Status::NotFound("in-memory file skipepd past end");
+ }
+
+ contents_.remove_prefix(n);
+
+ return Status::OK();
+ }
+ };
+
+ class ReportCollector : public Reader::Reporter {
+ public:
+ size_t dropped_bytes_;
+ std::string message_;
+
+ ReportCollector() : dropped_bytes_(0) { }
+ virtual void Corruption(size_t bytes, const Status& status) {
+ dropped_bytes_ += bytes;
+ message_.append(status.ToString());
+ }
+ };
+
+ StringDest dest_;
+ StringSource source_;
+ ReportCollector report_;
+ bool reading_;
+ Writer writer_;
+ Reader reader_;
+
+ // Record metadata for testing initial offset functionality
+ static size_t initial_offset_record_sizes_[];
+ static uint64_t initial_offset_last_record_offsets_[];
+
+ public:
+ LogTest() : reading_(false),
+ writer_(&dest_),
+ reader_(&source_, &report_, true/*checksum*/,
+ 0/*initial_offset*/) {
+ }
+
+ void Write(const std::string& msg) {
+ ASSERT_TRUE(!reading_) << "Write() after starting to read";
+ writer_.AddRecord(Slice(msg));
+ }
+
+ size_t WrittenBytes() const {
+ return dest_.contents_.size();
+ }
+
+ std::string Read() {
+ if (!reading_) {
+ reading_ = true;
+ source_.contents_ = Slice(dest_.contents_);
+ }
+ std::string scratch;
+ Slice record;
+ if (reader_.ReadRecord(&record, &scratch)) {
+ return record.ToString();
+ } else {
+ return "EOF";
+ }
+ }
+
+ void IncrementByte(int offset, int delta) {
+ dest_.contents_[offset] += delta;
+ }
+
+ void SetByte(int offset, char new_byte) {
+ dest_.contents_[offset] = new_byte;
+ }
+
+ void ShrinkSize(int bytes) {
+ dest_.contents_.resize(dest_.contents_.size() - bytes);
+ }
+
+ void FixChecksum(int header_offset, int len) {
+ // Compute crc of type/len/data
+ uint32_t crc = crc32c::Value(&dest_.contents_[header_offset+6], 1 + len);
+ crc = crc32c::Mask(crc);
+ EncodeFixed32(&dest_.contents_[header_offset], crc);
+ }
+
+ void ForceError() {
+ source_.force_error_ = true;
+ }
+
+ size_t DroppedBytes() const {
+ return report_.dropped_bytes_;
+ }
+
+ std::string ReportMessage() const {
+ return report_.message_;
+ }
+
+ // Returns OK iff recorded error message contains "msg"
+ std::string MatchError(const std::string& msg) const {
+ if (report_.message_.find(msg) == std::string::npos) {
+ return report_.message_;
+ } else {
+ return "OK";
+ }
+ }
+
+ void WriteInitialOffsetLog() {
+ for (int i = 0; i < 4; i++) {
+ std::string record(initial_offset_record_sizes_[i],
+ static_cast<char>('a' + i));
+ Write(record);
+ }
+ }
+
+ void CheckOffsetPastEndReturnsNoRecords(uint64_t offset_past_end) {
+ WriteInitialOffsetLog();
+ reading_ = true;
+ source_.contents_ = Slice(dest_.contents_);
+ Reader* offset_reader = new Reader(&source_, &report_, true/*checksum*/,
+ WrittenBytes() + offset_past_end);
+ Slice record;
+ std::string scratch;
+ ASSERT_TRUE(!offset_reader->ReadRecord(&record, &scratch));
+ delete offset_reader;
+ }
+
+ void CheckInitialOffsetRecord(uint64_t initial_offset,
+ int expected_record_offset) {
+ WriteInitialOffsetLog();
+ reading_ = true;
+ source_.contents_ = Slice(dest_.contents_);
+ Reader* offset_reader = new Reader(&source_, &report_, true/*checksum*/,
+ initial_offset);
+ Slice record;
+ std::string scratch;
+ ASSERT_TRUE(offset_reader->ReadRecord(&record, &scratch));
+ ASSERT_EQ(initial_offset_record_sizes_[expected_record_offset],
+ record.size());
+ ASSERT_EQ(initial_offset_last_record_offsets_[expected_record_offset],
+ offset_reader->LastRecordOffset());
+ ASSERT_EQ((char)('a' + expected_record_offset), record.data()[0]);
+ delete offset_reader;
+ }
+
+};
+
+size_t LogTest::initial_offset_record_sizes_[] =
+ {10000, // Two sizable records in first block
+ 10000,
+ 2 * log::kBlockSize - 1000, // Span three blocks
+ 1};
+
+uint64_t LogTest::initial_offset_last_record_offsets_[] =
+ {0,
+ kHeaderSize + 10000,
+ 2 * (kHeaderSize + 10000),
+ 2 * (kHeaderSize + 10000) +
+ (2 * log::kBlockSize - 1000) + 3 * kHeaderSize};
+
+
+TEST(LogTest, Empty) {
+ ASSERT_EQ("EOF", Read());
+}
+
+TEST(LogTest, ReadWrite) {
+ Write("foo");
+ Write("bar");
+ Write("");
+ Write("xxxx");
+ ASSERT_EQ("foo", Read());
+ ASSERT_EQ("bar", Read());
+ ASSERT_EQ("", Read());
+ ASSERT_EQ("xxxx", Read());
+ ASSERT_EQ("EOF", Read());
+ ASSERT_EQ("EOF", Read()); // Make sure reads at eof work
+}
+
+TEST(LogTest, ManyBlocks) {
+ for (int i = 0; i < 100000; i++) {
+ Write(NumberString(i));
+ }
+ for (int i = 0; i < 100000; i++) {
+ ASSERT_EQ(NumberString(i), Read());
+ }
+ ASSERT_EQ("EOF", Read());
+}
+
+TEST(LogTest, Fragmentation) {
+ Write("small");
+ Write(BigString("medium", 50000));
+ Write(BigString("large", 100000));
+ ASSERT_EQ("small", Read());
+ ASSERT_EQ(BigString("medium", 50000), Read());
+ ASSERT_EQ(BigString("large", 100000), Read());
+ ASSERT_EQ("EOF", Read());
+}
+
+TEST(LogTest, MarginalTrailer) {
+ // Make a trailer that is exactly the same length as an empty record.
+ const int n = kBlockSize - 2*kHeaderSize;
+ Write(BigString("foo", n));
+ ASSERT_EQ(kBlockSize - kHeaderSize, WrittenBytes());
+ Write("");
+ Write("bar");
+ ASSERT_EQ(BigString("foo", n), Read());
+ ASSERT_EQ("", Read());
+ ASSERT_EQ("bar", Read());
+ ASSERT_EQ("EOF", Read());
+}
+
+TEST(LogTest, MarginalTrailer2) {
+ // Make a trailer that is exactly the same length as an empty record.
+ const int n = kBlockSize - 2*kHeaderSize;
+ Write(BigString("foo", n));
+ ASSERT_EQ(kBlockSize - kHeaderSize, WrittenBytes());
+ Write("bar");
+ ASSERT_EQ(BigString("foo", n), Read());
+ ASSERT_EQ("bar", Read());
+ ASSERT_EQ("EOF", Read());
+ ASSERT_EQ(0, DroppedBytes());
+ ASSERT_EQ("", ReportMessage());
+}
+
+TEST(LogTest, ShortTrailer) {
+ const int n = kBlockSize - 2*kHeaderSize + 4;
+ Write(BigString("foo", n));
+ ASSERT_EQ(kBlockSize - kHeaderSize + 4, WrittenBytes());
+ Write("");
+ Write("bar");
+ ASSERT_EQ(BigString("foo", n), Read());
+ ASSERT_EQ("", Read());
+ ASSERT_EQ("bar", Read());
+ ASSERT_EQ("EOF", Read());
+}
+
+TEST(LogTest, AlignedEof) {
+ const int n = kBlockSize - 2*kHeaderSize + 4;
+ Write(BigString("foo", n));
+ ASSERT_EQ(kBlockSize - kHeaderSize + 4, WrittenBytes());
+ ASSERT_EQ(BigString("foo", n), Read());
+ ASSERT_EQ("EOF", Read());
+}
+
+TEST(LogTest, RandomRead) {
+ const int N = 500;
+ Random write_rnd(301);
+ for (int i = 0; i < N; i++) {
+ Write(RandomSkewedString(i, &write_rnd));
+ }
+ Random read_rnd(301);
+ for (int i = 0; i < N; i++) {
+ ASSERT_EQ(RandomSkewedString(i, &read_rnd), Read());
+ }
+ ASSERT_EQ("EOF", Read());
+}
+
+// Tests of all the error paths in log_reader.cc follow:
+
+TEST(LogTest, ReadError) {
+ Write("foo");
+ ForceError();
+ ASSERT_EQ("EOF", Read());
+ ASSERT_EQ(kBlockSize, DroppedBytes());
+ ASSERT_EQ("OK", MatchError("read error"));
+}
+
+TEST(LogTest, BadRecordType) {
+ Write("foo");
+ // Type is stored in header[6]
+ IncrementByte(6, 100);
+ FixChecksum(0, 3);
+ ASSERT_EQ("EOF", Read());
+ ASSERT_EQ(3, DroppedBytes());
+ ASSERT_EQ("OK", MatchError("unknown record type"));
+}
+
+TEST(LogTest, TruncatedTrailingRecordIsIgnored) {
+ Write("foo");
+ ShrinkSize(4); // Drop all payload as well as a header byte
+ ASSERT_EQ("EOF", Read());
+ // Truncated last record is ignored, not treated as an error.
+ ASSERT_EQ(0, DroppedBytes());
+ ASSERT_EQ("", ReportMessage());
+}
+
+TEST(LogTest, BadLength) {
+ const int kPayloadSize = kBlockSize - kHeaderSize;
+ Write(BigString("bar", kPayloadSize));
+ Write("foo");
+ // Least significant size byte is stored in header[4].
+ IncrementByte(4, 1);
+ ASSERT_EQ("foo", Read());
+ ASSERT_EQ(kBlockSize, DroppedBytes());
+ ASSERT_EQ("OK", MatchError("bad record length"));
+}
+
+TEST(LogTest, BadLengthAtEndIsIgnored) {
+ Write("foo");
+ ShrinkSize(1);
+ ASSERT_EQ("EOF", Read());
+ ASSERT_EQ(0, DroppedBytes());
+ ASSERT_EQ("", ReportMessage());
+}
+
+TEST(LogTest, ChecksumMismatch) {
+ Write("foo");
+ IncrementByte(0, 10);
+ ASSERT_EQ("EOF", Read());
+ ASSERT_EQ(10, DroppedBytes());
+ ASSERT_EQ("OK", MatchError("checksum mismatch"));
+}
+
+TEST(LogTest, UnexpectedMiddleType) {
+ Write("foo");
+ SetByte(6, kMiddleType);
+ FixChecksum(0, 3);
+ ASSERT_EQ("EOF", Read());
+ ASSERT_EQ(3, DroppedBytes());
+ ASSERT_EQ("OK", MatchError("missing start"));
+}
+
+TEST(LogTest, UnexpectedLastType) {
+ Write("foo");
+ SetByte(6, kLastType);
+ FixChecksum(0, 3);
+ ASSERT_EQ("EOF", Read());
+ ASSERT_EQ(3, DroppedBytes());
+ ASSERT_EQ("OK", MatchError("missing start"));
+}
+
+TEST(LogTest, UnexpectedFullType) {
+ Write("foo");
+ Write("bar");
+ SetByte(6, kFirstType);
+ FixChecksum(0, 3);
+ ASSERT_EQ("bar", Read());
+ ASSERT_EQ("EOF", Read());
+ ASSERT_EQ(3, DroppedBytes());
+ ASSERT_EQ("OK", MatchError("partial record without end"));
+}
+
+TEST(LogTest, UnexpectedFirstType) {
+ Write("foo");
+ Write(BigString("bar", 100000));
+ SetByte(6, kFirstType);
+ FixChecksum(0, 3);
+ ASSERT_EQ(BigString("bar", 100000), Read());
+ ASSERT_EQ("EOF", Read());
+ ASSERT_EQ(3, DroppedBytes());
+ ASSERT_EQ("OK", MatchError("partial record without end"));
+}
+
+TEST(LogTest, MissingLastIsIgnored) {
+ Write(BigString("bar", kBlockSize));
+ // Remove the LAST block, including header.
+ ShrinkSize(14);
+ ASSERT_EQ("EOF", Read());
+ ASSERT_EQ("", ReportMessage());
+ ASSERT_EQ(0, DroppedBytes());
+}
+
+TEST(LogTest, PartialLastIsIgnored) {
+ Write(BigString("bar", kBlockSize));
+ // Cause a bad record length in the LAST block.
+ ShrinkSize(1);
+ ASSERT_EQ("EOF", Read());
+ ASSERT_EQ("", ReportMessage());
+ ASSERT_EQ(0, DroppedBytes());
+}
+
+TEST(LogTest, ErrorJoinsRecords) {
+ // Consider two fragmented records:
+ // first(R1) last(R1) first(R2) last(R2)
+ // where the middle two fragments disappear. We do not want
+ // first(R1),last(R2) to get joined and returned as a valid record.
+
+ // Write records that span two blocks
+ Write(BigString("foo", kBlockSize));
+ Write(BigString("bar", kBlockSize));
+ Write("correct");
+
+ // Wipe the middle block
+ for (int offset = kBlockSize; offset < 2*kBlockSize; offset++) {
+ SetByte(offset, 'x');
+ }
+
+ ASSERT_EQ("correct", Read());
+ ASSERT_EQ("EOF", Read());
+ const int dropped = DroppedBytes();
+ ASSERT_LE(dropped, 2*kBlockSize + 100);
+ ASSERT_GE(dropped, 2*kBlockSize);
+}
+
+TEST(LogTest, ReadStart) {
+ CheckInitialOffsetRecord(0, 0);
+}
+
+TEST(LogTest, ReadSecondOneOff) {
+ CheckInitialOffsetRecord(1, 1);
+}
+
+TEST(LogTest, ReadSecondTenThousand) {
+ CheckInitialOffsetRecord(10000, 1);
+}
+
+TEST(LogTest, ReadSecondStart) {
+ CheckInitialOffsetRecord(10007, 1);
+}
+
+TEST(LogTest, ReadThirdOneOff) {
+ CheckInitialOffsetRecord(10008, 2);
+}
+
+TEST(LogTest, ReadThirdStart) {
+ CheckInitialOffsetRecord(20014, 2);
+}
+
+TEST(LogTest, ReadFourthOneOff) {
+ CheckInitialOffsetRecord(20015, 3);
+}
+
+TEST(LogTest, ReadFourthFirstBlockTrailer) {
+ CheckInitialOffsetRecord(log::kBlockSize - 4, 3);
+}
+
+TEST(LogTest, ReadFourthMiddleBlock) {
+ CheckInitialOffsetRecord(log::kBlockSize + 1, 3);
+}
+
+TEST(LogTest, ReadFourthLastBlock) {
+ CheckInitialOffsetRecord(2 * log::kBlockSize + 1, 3);
+}
+
+TEST(LogTest, ReadFourthStart) {
+ CheckInitialOffsetRecord(
+ 2 * (kHeaderSize + 1000) + (2 * log::kBlockSize - 1000) + 3 * kHeaderSize,
+ 3);
+}
+
+TEST(LogTest, ReadEnd) {
+ CheckOffsetPastEndReturnsNoRecords(0);
+}
+
+TEST(LogTest, ReadPastEnd) {
+ CheckOffsetPastEndReturnsNoRecords(5);
+}
+
+} // namespace log
+} // namespace leveldb
+
+int main(int argc, char** argv) {
+ return leveldb::test::RunAllTests();
+}
diff --git a/clipper/HyperLevelDB/db/log_writer.cc b/clipper/HyperLevelDB/db/log_writer.cc
new file mode 100644
index 0000000..6d6a8b5
--- /dev/null
+++ b/clipper/HyperLevelDB/db/log_writer.cc
@@ -0,0 +1,132 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "db/log_writer.h"
+
+#include <stdint.h>
+#include "hyperleveldb/env.h"
+#include "util/coding.h"
+#include "util/crc32c.h"
+#include "util/mutexlock.h"
+
+namespace leveldb {
+namespace log {
+
+Writer::Writer(WritableFile* dest)
+ : dest_(dest),
+ offset_mtx_(),
+ offset_(0) {
+ for (int i = 0; i <= kMaxRecordType; i++) {
+ char t = static_cast<char>(i);
+ type_crc_[i] = crc32c::Value(&t, 1);
+ }
+}
+
+Writer::~Writer() {
+}
+
+Status Writer::AddRecord(const Slice& slice) {
+ // computation of block_offset requires a pow2
+ assert(kBlockSize == 32768);
+ uint64_t start_offset;
+ uint64_t end_offset;
+
+ {
+ MutexLock l(&offset_mtx_);
+ start_offset = offset_;
+ end_offset = offset_;
+ // compute the new offset_
+ uint64_t left = slice.size();
+ do {
+ uint64_t block_offset = end_offset & (kBlockSize - 1);
+ const uint64_t leftover = kBlockSize - block_offset;
+ assert(leftover > 0);
+ if (leftover < kHeaderSize) {
+ end_offset += leftover;
+ block_offset = 0;
+ }
+ // Invariant: we never leave < kHeaderSize bytes in a block.
+ assert(kBlockSize - block_offset - kHeaderSize >= 0);
+
+ const uint64_t avail = kBlockSize - block_offset - kHeaderSize;
+ const uint64_t fragment_length = (left < avail) ? left : avail;
+
+ end_offset += kHeaderSize + fragment_length;
+ left -= fragment_length;
+ } while (left > 0);
+ offset_ = end_offset;
+ }
+
+ const char* ptr = slice.data();
+ size_t left = slice.size();
+ uint64_t offset = start_offset;
+
+ // Fragment the record if necessary and emit it. Note that if slice
+ // is empty, we still want to iterate once to emit a single
+ // zero-length record
+ Status s;
+ bool begin = true;
+ do {
+ uint64_t block_offset = offset & (kBlockSize - 1);
+ const uint64_t leftover = kBlockSize - block_offset;
+ assert(leftover > 0);
+ if (leftover < kHeaderSize) {
+ // Switch to a new block
+ // Fill the trailer (literal below relies on kHeaderSize being 7)
+ assert(kHeaderSize == 7);
+ dest_->WriteAt(offset, Slice("\x00\x00\x00\x00\x00\x00", leftover));
+ block_offset = 0;
+ offset += leftover;
+ }
+ // Invariant: we never leave < kHeaderSize bytes in a block.
+ assert(kBlockSize - block_offset - kHeaderSize >= 0);
+
+ const size_t avail = kBlockSize - block_offset - kHeaderSize;
+ const size_t fragment_length = (left < avail) ? left : avail;
+
+ RecordType type;
+ const bool end = (left == fragment_length);
+ if (begin && end) {
+ type = kFullType;
+ } else if (begin) {
+ type = kFirstType;
+ } else if (end) {
+ type = kLastType;
+ } else {
+ type = kMiddleType;
+ }
+
+ s = EmitPhysicalRecordAt(type, ptr, offset, fragment_length);
+ offset += kHeaderSize + fragment_length;
+ ptr += fragment_length;
+ left -= fragment_length;
+ begin = false;
+ } while (s.ok() && left > 0);
+ return s;
+}
+
+Status Writer::EmitPhysicalRecordAt(RecordType t, const char* ptr, uint64_t offset, size_t n) {
+ assert(n <= 0xffff); // Must fit in two bytes
+
+ // Format the header
+ char buf[kHeaderSize];
+ buf[4] = static_cast<char>(n & 0xff);
+ buf[5] = static_cast<char>(n >> 8);
+ buf[6] = static_cast<char>(t);
+
+ // Compute the crc of the record type and the payload.
+ uint32_t crc = crc32c::Extend(type_crc_[t], ptr, n);
+ crc = crc32c::Mask(crc); // Adjust for storage
+ EncodeFixed32(buf, crc);
+
+ // Write the header and the payload
+ Status s = dest_->WriteAt(offset, Slice(buf, kHeaderSize));
+ if (s.ok()) {
+ s = dest_->WriteAt(offset + kHeaderSize, Slice(ptr, n));
+ }
+ return s;
+}
+
+} // namespace log
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/db/log_writer.h b/clipper/HyperLevelDB/db/log_writer.h
new file mode 100644
index 0000000..72e69fb
--- /dev/null
+++ b/clipper/HyperLevelDB/db/log_writer.h
@@ -0,0 +1,50 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#ifndef STORAGE_LEVELDB_DB_LOG_WRITER_H_
+#define STORAGE_LEVELDB_DB_LOG_WRITER_H_
+
+#include <stdint.h>
+#include "db/log_format.h"
+#include "hyperleveldb/slice.h"
+#include "hyperleveldb/status.h"
+#include "port/port.h"
+
+namespace leveldb {
+
+class WritableFile;
+
+namespace log {
+
+class Writer {
+ public:
+ // Create a writer that will append data to "*dest".
+ // "*dest" must be initially empty.
+ // "*dest" must remain live while this Writer is in use.
+ explicit Writer(WritableFile* dest);
+ ~Writer();
+
+ Status AddRecord(const Slice& slice);
+
+ private:
+ WritableFile* dest_;
+ port::Mutex offset_mtx_;
+ uint64_t offset_; // Current offset in file
+
+ // crc32c values for all supported record types. These are
+ // pre-computed to reduce the overhead of computing the crc of the
+ // record type stored in the header.
+ uint32_t type_crc_[kMaxRecordType + 1];
+
+ Status EmitPhysicalRecordAt(RecordType type, const char* ptr, uint64_t offset, size_t length);
+
+ // No copying allowed
+ Writer(const Writer&);
+ void operator=(const Writer&);
+};
+
+} // namespace log
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_DB_LOG_WRITER_H_
diff --git a/clipper/HyperLevelDB/db/memtable.cc b/clipper/HyperLevelDB/db/memtable.cc
new file mode 100644
index 0000000..3b5adb4
--- /dev/null
+++ b/clipper/HyperLevelDB/db/memtable.cc
@@ -0,0 +1,180 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "db/memtable.h"
+#include "db/dbformat.h"
+#include "hyperleveldb/comparator.h"
+#include "hyperleveldb/env.h"
+#include "hyperleveldb/iterator.h"
+#include "util/coding.h"
+#include "util/mutexlock.h"
+
+namespace leveldb {
+
+static Slice GetLengthPrefixedSlice(const char* data) {
+ uint32_t len;
+ const char* p = data;
+ p = GetVarint32Ptr(p, p + 5, &len); // +5: we assume "p" is not corrupted
+ return Slice(p, len);
+}
+
+static Slice GetLengthPrefixedSlice(std::pair<uint64_t, const char*> tk) {
+ return GetLengthPrefixedSlice(tk.second);
+}
+
+MemTable::MemTable(const InternalKeyComparator& cmp)
+ : comparator_(cmp),
+ refs_(0),
+ table_(comparator_, &arena_) {
+}
+
+MemTable::~MemTable() {
+ assert(refs_ == 0);
+}
+
+size_t MemTable::ApproximateMemoryUsage() {
+ MutexLock l(&mtx_);
+ return arena_.MemoryUsage();
+}
+
+int MemTable::KeyComparator::operator()(TableKey ak, TableKey bk)
+ const {
+ if (ak.first < bk.first) {
+ return -1;
+ } else if (ak.first > bk.first) {
+ return 1;
+ }
+ // Internal keys are encoded as length-prefixed strings.
+ Slice a = GetLengthPrefixedSlice(ak);
+ Slice b = GetLengthPrefixedSlice(bk);
+ return comparator.Compare(a, b);
+}
+
+// Encode a suitable internal key target for "target" and return it.
+// Uses *scratch as scratch space, and the returned pointer will point
+// into this scratch space.
+static const char* EncodeKey(std::string* scratch, const Slice& target) {
+ scratch->clear();
+ PutVarint32(scratch, target.size());
+ scratch->append(target.data(), target.size());
+ return scratch->data();
+}
+
+class MemTableIterator: public Iterator {
+ public:
+ explicit MemTableIterator(MemTable::Table* table,
+ MemTable::KeyComparator* cmp)
+ : iter_(table), comparator_(cmp) { }
+
+ virtual bool Valid() const { return iter_.Valid(); }
+ virtual void Seek(const Slice& k) {
+ uint64_t keynum = comparator_->comparator.user_comparator()->KeyNum(Slice(k.data(), k.size() - 8));
+ iter_.Seek(std::make_pair(keynum, EncodeKey(&tmp_, k)));
+ }
+ virtual void SeekToFirst() { iter_.SeekToFirst(); }
+ virtual void SeekToLast() { iter_.SeekToLast(); }
+ virtual void Next() { iter_.Next(); }
+ virtual void Prev() { iter_.Prev(); }
+ virtual Slice key() const { return GetLengthPrefixedSlice(iter_.key()); }
+ virtual Slice value() const {
+ Slice key_slice = GetLengthPrefixedSlice(iter_.key());
+ return GetLengthPrefixedSlice(key_slice.data() + key_slice.size());
+ }
+
+ virtual Status status() const { return Status::OK(); }
+
+ private:
+ MemTable::Table::Iterator iter_;
+ MemTable::KeyComparator* comparator_;
+ std::string tmp_; // For passing to EncodeKey
+
+ // No copying allowed
+ MemTableIterator(const MemTableIterator&);
+ void operator=(const MemTableIterator&);
+};
+
+Iterator* MemTable::NewIterator() {
+ return new MemTableIterator(&table_, &comparator_);
+}
+
+void MemTable::Add(SequenceNumber s, ValueType type,
+ const Slice& key,
+ const Slice& value) {
+ // Format of an entry is concatenation of:
+ // key_size : varint32 of internal_key.size()
+ // key bytes : char[internal_key.size()]
+ // value_size : varint32 of value.size()
+ // value bytes : char[value.size()]
+ size_t key_size = key.size();
+ size_t val_size = value.size();
+ size_t internal_key_size = key_size + 8;
+ const size_t encoded_len =
+ VarintLength(internal_key_size) + internal_key_size +
+ VarintLength(val_size) + val_size;
+ char* buf = NULL;
+
+ {
+ MutexLock l(&mtx_);
+ buf = arena_.Allocate(encoded_len);
+ }
+
+ char* p = EncodeVarint32(buf, internal_key_size);
+ memcpy(p, key.data(), key_size);
+ p += key_size;
+ EncodeFixed64(p, (s << 8) | type);
+ p += 8;
+ p = EncodeVarint32(p, val_size);
+ memcpy(p, value.data(), val_size);
+ assert((p + val_size) - buf == encoded_len);
+ uint64_t keynum = comparator_.comparator.user_comparator()->KeyNum(key);
+ TableKey tk(keynum, buf);
+ Table::InsertHint ih(&table_, tk);
+
+ {
+ MutexLock l(&mtx_);
+ table_.InsertWithHint(&ih, tk);
+ }
+}
+
+bool MemTable::Get(const LookupKey& key, std::string* value, Status* s) {
+ Slice memkey = key.memtable_key();
+ Table::Iterator iter(&table_);
+ uint64_t keynum = comparator_.comparator.user_comparator()->KeyNum(key.user_key());
+ TableKey tk(keynum, memkey.data());
+ iter.Seek(tk);
+ if (iter.Valid()) {
+ // entry format is:
+ // klength varint32
+ // userkey char[klength]
+ // tag uint64
+ // vlength varint32
+ // value char[vlength]
+ // Check that it belongs to same user key. We do not check the
+ // sequence number since the Seek() call above should have skipped
+ // all entries with overly large sequence numbers.
+ const char* entry = iter.key().second;
+ uint32_t key_length;
+ const char* key_ptr = GetVarint32Ptr(entry, entry+5, &key_length);
+ if (iter.key().first == tk.first &&
+ comparator_.comparator.user_comparator()->Compare(
+ Slice(key_ptr, key_length - 8),
+ key.user_key()) == 0) {
+ // Correct user key
+ const uint64_t tag = DecodeFixed64(key_ptr + key_length - 8);
+ switch (static_cast<ValueType>(tag & 0xff)) {
+ case kTypeValue: {
+ Slice v = GetLengthPrefixedSlice(key_ptr + key_length);
+ value->assign(v.data(), v.size());
+ return true;
+ }
+ case kTypeDeletion:
+ *s = Status::NotFound(Slice());
+ return true;
+ }
+ }
+ }
+ return false;
+}
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/db/memtable.h b/clipper/HyperLevelDB/db/memtable.h
new file mode 100644
index 0000000..ce95c89
--- /dev/null
+++ b/clipper/HyperLevelDB/db/memtable.h
@@ -0,0 +1,95 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#ifndef STORAGE_LEVELDB_DB_MEMTABLE_H_
+#define STORAGE_LEVELDB_DB_MEMTABLE_H_
+
+#include <string>
+#include "hyperleveldb/db.h"
+#include "db/dbformat.h"
+#include "db/skiplist.h"
+#include "util/arena.h"
+
+namespace leveldb {
+
+class InternalKeyComparator;
+class Mutex;
+class MemTableIterator;
+
+class MemTable {
+ public:
+ // MemTables are reference counted. The initial reference count
+ // is zero and the caller must call Ref() at least once.
+ explicit MemTable(const InternalKeyComparator& comparator);
+
+ // Increase reference count.
+ // XXX use a release increment if not using GCC intrinsics
+ void Ref() { __sync_add_and_fetch(&refs_, 1); }
+
+ // Drop reference count. Delete if no more references exist.
+ // XXX use an acquire decrement if not using GCC intrinsics
+ void Unref() {
+ int refs = __sync_sub_and_fetch(&refs_, 1);
+ assert(refs >= 0);
+ if (refs <= 0) {
+ delete this;
+ }
+ }
+
+ // Returns an estimate of the number of bytes of data in use by this
+ // data structure.
+ //
+ // REQUIRES: external synchronization to prevent simultaneous
+ // operations on the same MemTable.
+ size_t ApproximateMemoryUsage();
+
+ // Return an iterator that yields the contents of the memtable.
+ //
+ // The caller must ensure that the underlying MemTable remains live
+ // while the returned iterator is live. The keys returned by this
+ // iterator are internal keys encoded by AppendInternalKey in the
+ // db/format.{h,cc} module.
+ Iterator* NewIterator();
+
+ // Add an entry into memtable that maps key to value at the
+ // specified sequence number and with the specified type.
+ // Typically value will be empty if type==kTypeDeletion.
+ void Add(SequenceNumber seq, ValueType type,
+ const Slice& key,
+ const Slice& value);
+
+ // If memtable contains a value for key, store it in *value and return true.
+ // If memtable contains a deletion for key, store a NotFound() error
+ // in *status and return true.
+ // Else, return false.
+ bool Get(const LookupKey& key, std::string* value, Status* s);
+
+ private:
+ ~MemTable(); // Private since only Unref() should be used to delete it
+ typedef std::pair<uint64_t, const char*> TableKey;
+
+ struct KeyComparator {
+ const InternalKeyComparator comparator;
+ explicit KeyComparator(const InternalKeyComparator& c) : comparator(c) { }
+ int operator()(TableKey a, TableKey b) const;
+ };
+ friend class MemTableIterator;
+ friend class MemTableBackwardIterator;
+
+ typedef SkipList<TableKey, KeyComparator> Table;
+
+ KeyComparator comparator_;
+ int refs_;
+ port::Mutex mtx_;
+ Arena arena_;
+ Table table_;
+
+ // No copying allowed
+ MemTable(const MemTable&);
+ void operator=(const MemTable&);
+};
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_DB_MEMTABLE_H_
diff --git a/clipper/HyperLevelDB/db/repair.cc b/clipper/HyperLevelDB/db/repair.cc
new file mode 100644
index 0000000..0b7d209
--- /dev/null
+++ b/clipper/HyperLevelDB/db/repair.cc
@@ -0,0 +1,461 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+//
+// We recover the contents of the descriptor from the other files we find.
+// (1) Any log files are first converted to tables
+// (2) We scan every table to compute
+// (a) smallest/largest for the table
+// (b) largest sequence number in the table
+// (3) We generate descriptor contents:
+// - log number is set to zero
+// - next-file-number is set to 1 + largest file number we found
+// - last-sequence-number is set to largest sequence# found across
+// all tables (see 2c)
+// - compaction pointers are cleared
+// - every table file is added at level 0
+//
+// Possible optimization 1:
+// (a) Compute total size and use to pick appropriate max-level M
+// (b) Sort tables by largest sequence# in the table
+// (c) For each table: if it overlaps earlier table, place in level-0,
+// else place in level-M.
+// Possible optimization 2:
+// Store per-table metadata (smallest, largest, largest-seq#, ...)
+// in the table's meta section to speed up ScanTable.
+
+#include "db/builder.h"
+#include "db/db_impl.h"
+#include "db/dbformat.h"
+#include "db/filename.h"
+#include "db/log_reader.h"
+#include "db/log_writer.h"
+#include "db/memtable.h"
+#include "db/table_cache.h"
+#include "db/version_edit.h"
+#include "db/write_batch_internal.h"
+#include "hyperleveldb/comparator.h"
+#include "hyperleveldb/db.h"
+#include "hyperleveldb/env.h"
+
+namespace leveldb {
+
+namespace {
+
+class Repairer {
+ public:
+ Repairer(const std::string& dbname, const Options& options)
+ : dbname_(dbname),
+ env_(options.env),
+ icmp_(options.comparator),
+ ipolicy_(options.filter_policy),
+ options_(SanitizeOptions(dbname, &icmp_, &ipolicy_, options)),
+ owns_info_log_(options_.info_log != options.info_log),
+ owns_cache_(options_.block_cache != options.block_cache),
+ next_file_number_(1) {
+ // TableCache can be small since we expect each table to be opened once.
+ table_cache_ = new TableCache(dbname_, &options_, 10);
+ }
+
+ ~Repairer() {
+ delete table_cache_;
+ if (owns_info_log_) {
+ delete options_.info_log;
+ }
+ if (owns_cache_) {
+ delete options_.block_cache;
+ }
+ }
+
+ Status Run() {
+ Status status = FindFiles();
+ if (status.ok()) {
+ ConvertLogFilesToTables();
+ ExtractMetaData();
+ status = WriteDescriptor();
+ }
+ if (status.ok()) {
+ unsigned long long bytes = 0;
+ for (size_t i = 0; i < tables_.size(); i++) {
+ bytes += tables_[i].meta.file_size;
+ }
+ Log(options_.info_log,
+ "**** Repaired leveldb %s; "
+ "recovered %d files; %llu bytes. "
+ "Some data may have been lost. "
+ "****",
+ dbname_.c_str(),
+ static_cast<int>(tables_.size()),
+ bytes);
+ }
+ return status;
+ }
+
+ private:
+ struct TableInfo {
+ FileMetaData meta;
+ SequenceNumber max_sequence;
+ };
+
+ std::string const dbname_;
+ Env* const env_;
+ InternalKeyComparator const icmp_;
+ InternalFilterPolicy const ipolicy_;
+ Options const options_;
+ bool owns_info_log_;
+ bool owns_cache_;
+ TableCache* table_cache_;
+ VersionEdit edit_;
+
+ std::vector<std::string> manifests_;
+ std::vector<uint64_t> table_numbers_;
+ std::vector<uint64_t> logs_;
+ std::vector<TableInfo> tables_;
+ uint64_t next_file_number_;
+
+ Status FindFiles() {
+ std::vector<std::string> filenames;
+ Status status = env_->GetChildren(dbname_, &filenames);
+ if (!status.ok()) {
+ return status;
+ }
+ if (filenames.empty()) {
+ return Status::IOError(dbname_, "repair found no files");
+ }
+
+ uint64_t number;
+ FileType type;
+ for (size_t i = 0; i < filenames.size(); i++) {
+ if (ParseFileName(filenames[i], &number, &type)) {
+ if (type == kDescriptorFile) {
+ manifests_.push_back(filenames[i]);
+ } else {
+ if (number + 1 > next_file_number_) {
+ next_file_number_ = number + 1;
+ }
+ if (type == kLogFile) {
+ logs_.push_back(number);
+ } else if (type == kTableFile) {
+ table_numbers_.push_back(number);
+ } else {
+ // Ignore other files
+ }
+ }
+ }
+ }
+ return status;
+ }
+
+ void ConvertLogFilesToTables() {
+ for (size_t i = 0; i < logs_.size(); i++) {
+ std::string logname = LogFileName(dbname_, logs_[i]);
+ Status status = ConvertLogToTable(logs_[i]);
+ if (!status.ok()) {
+ Log(options_.info_log, "Log #%llu: ignoring conversion error: %s",
+ (unsigned long long) logs_[i],
+ status.ToString().c_str());
+ }
+ ArchiveFile(logname);
+ }
+ }
+
+ Status ConvertLogToTable(uint64_t log) {
+ struct LogReporter : public log::Reader::Reporter {
+ Env* env;
+ Logger* info_log;
+ uint64_t lognum;
+ virtual void Corruption(size_t bytes, const Status& s) {
+ // We print error messages for corruption, but continue repairing.
+ Log(info_log, "Log #%llu: dropping %d bytes; %s",
+ (unsigned long long) lognum,
+ static_cast<int>(bytes),
+ s.ToString().c_str());
+ }
+ };
+
+ // Open the log file
+ std::string logname = LogFileName(dbname_, log);
+ SequentialFile* lfile;
+ Status status = env_->NewSequentialFile(logname, &lfile);
+ if (!status.ok()) {
+ return status;
+ }
+
+ // Create the log reader.
+ LogReporter reporter;
+ reporter.env = env_;
+ reporter.info_log = options_.info_log;
+ reporter.lognum = log;
+ // We intentially make log::Reader do checksumming so that
+ // corruptions cause entire commits to be skipped instead of
+ // propagating bad information (like overly large sequence
+ // numbers).
+ log::Reader reader(lfile, &reporter, false/*do not checksum*/,
+ 0/*initial_offset*/);
+
+ // Read all the records and add to a memtable
+ std::string scratch;
+ Slice record;
+ WriteBatch batch;
+ MemTable* mem = new MemTable(icmp_);
+ mem->Ref();
+ int counter = 0;
+ while (reader.ReadRecord(&record, &scratch)) {
+ if (record.size() < 12) {
+ reporter.Corruption(
+ record.size(), Status::Corruption("log record too small"));
+ continue;
+ }
+ WriteBatchInternal::SetContents(&batch, record);
+ status = WriteBatchInternal::InsertInto(&batch, mem);
+ if (status.ok()) {
+ counter += WriteBatchInternal::Count(&batch);
+ } else {
+ Log(options_.info_log, "Log #%llu: ignoring %s",
+ (unsigned long long) log,
+ status.ToString().c_str());
+ status = Status::OK(); // Keep going with rest of file
+ }
+ }
+ delete lfile;
+
+ // Do not record a version edit for this conversion to a Table
+ // since ExtractMetaData() will also generate edits.
+ FileMetaData meta;
+ meta.number = next_file_number_++;
+ Iterator* iter = mem->NewIterator();
+ status = BuildTable(dbname_, env_, options_, table_cache_, iter, &meta);
+ delete iter;
+ mem->Unref();
+ mem = NULL;
+ if (status.ok()) {
+ if (meta.file_size > 0) {
+ table_numbers_.push_back(meta.number);
+ }
+ }
+ Log(options_.info_log, "Log #%llu: %d ops saved to Table #%llu %s",
+ (unsigned long long) log,
+ counter,
+ (unsigned long long) meta.number,
+ status.ToString().c_str());
+ return status;
+ }
+
+ void ExtractMetaData() {
+ for (size_t i = 0; i < table_numbers_.size(); i++) {
+ ScanTable(table_numbers_[i]);
+ }
+ }
+
+ Iterator* NewTableIterator(const FileMetaData& meta) {
+ // Same as compaction iterators: if paranoid_checks are on, turn
+ // on checksum verification.
+ ReadOptions r;
+ r.verify_checksums = options_.paranoid_checks;
+ return table_cache_->NewIterator(r, meta.number, meta.file_size);
+ }
+
+ void ScanTable(uint64_t number) {
+ TableInfo t;
+ t.meta.number = number;
+ std::string fname = SSTTableFileName(dbname_, number);
+ Status status = env_->GetFileSize(fname, &t.meta.file_size);
+ if (!status.ok()) {
+ // Try alternate file name.
+ fname = TableFileName(dbname_, number);
+ Status s2 = env_->GetFileSize(fname, &t.meta.file_size);
+ if (s2.ok()) {
+ status = Status::OK();
+ }
+ }
+ if (!status.ok()) {
+ ArchiveFile(TableFileName(dbname_, number));
+ ArchiveFile(SSTTableFileName(dbname_, number));
+ Log(options_.info_log, "Table #%llu: dropped: %s",
+ (unsigned long long) t.meta.number,
+ status.ToString().c_str());
+ return;
+ }
+
+ // Extract metadata by scanning through table.
+ int counter = 0;
+ Iterator* iter = NewTableIterator(t.meta);
+ bool empty = true;
+ ParsedInternalKey parsed;
+ t.max_sequence = 0;
+ for (iter->SeekToFirst(); iter->Valid(); iter->Next()) {
+ Slice key = iter->key();
+ if (!ParseInternalKey(key, &parsed)) {
+ Log(options_.info_log, "Table #%llu: unparsable key %s",
+ (unsigned long long) t.meta.number,
+ EscapeString(key).c_str());
+ continue;
+ }
+
+ counter++;
+ if (empty) {
+ empty = false;
+ t.meta.smallest.DecodeFrom(key);
+ }
+ t.meta.largest.DecodeFrom(key);
+ if (parsed.sequence > t.max_sequence) {
+ t.max_sequence = parsed.sequence;
+ }
+ }
+ if (!iter->status().ok()) {
+ status = iter->status();
+ }
+ delete iter;
+ Log(options_.info_log, "Table #%llu: %d entries %s",
+ (unsigned long long) t.meta.number,
+ counter,
+ status.ToString().c_str());
+
+ if (status.ok()) {
+ tables_.push_back(t);
+ } else {
+ RepairTable(fname, t); // RepairTable archives input file.
+ }
+ }
+
+ void RepairTable(const std::string& src, TableInfo t) {
+ // We will copy src contents to a new table and then rename the
+ // new table over the source.
+
+ // Create builder.
+ std::string copy = TableFileName(dbname_, next_file_number_++);
+ WritableFile* file;
+ Status s = env_->NewWritableFile(copy, &file);
+ if (!s.ok()) {
+ return;
+ }
+ TableBuilder* builder = new TableBuilder(options_, file);
+
+ // Copy data.
+ Iterator* iter = NewTableIterator(t.meta);
+ int counter = 0;
+ for (iter->SeekToFirst(); iter->Valid(); iter->Next()) {
+ builder->Add(iter->key(), iter->value());
+ counter++;
+ }
+ delete iter;
+
+ ArchiveFile(src);
+ if (counter == 0) {
+ builder->Abandon(); // Nothing to save
+ } else {
+ s = builder->Finish();
+ if (s.ok()) {
+ t.meta.file_size = builder->FileSize();
+ }
+ }
+ delete builder;
+ builder = NULL;
+
+ if (s.ok()) {
+ s = file->Close();
+ }
+ delete file;
+ file = NULL;
+
+ if (counter > 0 && s.ok()) {
+ std::string orig = TableFileName(dbname_, t.meta.number);
+ s = env_->RenameFile(copy, orig);
+ if (s.ok()) {
+ Log(options_.info_log, "Table #%llu: %d entries repaired",
+ (unsigned long long) t.meta.number, counter);
+ tables_.push_back(t);
+ }
+ }
+ if (!s.ok()) {
+ env_->DeleteFile(copy);
+ }
+ }
+
+ Status WriteDescriptor() {
+ std::string tmp = TempFileName(dbname_, 1);
+ WritableFile* file;
+ Status status = env_->NewWritableFile(tmp, &file);
+ if (!status.ok()) {
+ return status;
+ }
+
+ SequenceNumber max_sequence = 0;
+ for (size_t i = 0; i < tables_.size(); i++) {
+ if (max_sequence < tables_[i].max_sequence) {
+ max_sequence = tables_[i].max_sequence;
+ }
+ }
+
+ edit_.SetComparatorName(icmp_.user_comparator()->Name());
+ edit_.SetLogNumber(0);
+ edit_.SetNextFile(next_file_number_);
+ edit_.SetLastSequence(max_sequence);
+
+ for (size_t i = 0; i < tables_.size(); i++) {
+ // TODO(opt): separate out into multiple levels
+ const TableInfo& t = tables_[i];
+ edit_.AddFile(0, t.meta.number, t.meta.file_size,
+ t.meta.smallest, t.meta.largest);
+ }
+
+ //fprintf(stderr, "NewDescriptor:\n%s\n", edit_.DebugString().c_str());
+ {
+ log::Writer log(file);
+ std::string record;
+ edit_.EncodeTo(&record);
+ status = log.AddRecord(record);
+ }
+ if (status.ok()) {
+ status = file->Close();
+ }
+ delete file;
+ file = NULL;
+
+ if (!status.ok()) {
+ env_->DeleteFile(tmp);
+ } else {
+ // Discard older manifests
+ for (size_t i = 0; i < manifests_.size(); i++) {
+ ArchiveFile(dbname_ + "/" + manifests_[i]);
+ }
+
+ // Install new manifest
+ status = env_->RenameFile(tmp, DescriptorFileName(dbname_, 1));
+ if (status.ok()) {
+ status = SetCurrentFile(env_, dbname_, 1);
+ } else {
+ env_->DeleteFile(tmp);
+ }
+ }
+ return status;
+ }
+
+ void ArchiveFile(const std::string& fname) {
+ // Move into another directory. E.g., for
+ // dir/foo
+ // rename to
+ // dir/lost/foo
+ const char* slash = strrchr(fname.c_str(), '/');
+ std::string new_dir;
+ if (slash != NULL) {
+ new_dir.assign(fname.data(), slash - fname.data());
+ }
+ new_dir.append("/lost");
+ env_->CreateDir(new_dir); // Ignore error
+ std::string new_file = new_dir;
+ new_file.append("/");
+ new_file.append((slash == NULL) ? fname.c_str() : slash + 1);
+ Status s = env_->RenameFile(fname, new_file);
+ Log(options_.info_log, "Archiving %s: %s\n",
+ fname.c_str(), s.ToString().c_str());
+ }
+};
+} // namespace
+
+Status RepairDB(const std::string& dbname, const Options& options) {
+ Repairer repairer(dbname, options);
+ return repairer.Run();
+}
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/db/replay_iterator.cc b/clipper/HyperLevelDB/db/replay_iterator.cc
new file mode 100644
index 0000000..01b7731
--- /dev/null
+++ b/clipper/HyperLevelDB/db/replay_iterator.cc
@@ -0,0 +1,220 @@
+// Copyright (c) 2013 The HyperLevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "db/replay_iterator.h"
+
+#include "db/filename.h"
+#include "db/db_impl.h"
+#include "db/dbformat.h"
+#include "hyperleveldb/env.h"
+#include "hyperleveldb/iterator.h"
+#include "port/port.h"
+#include "util/logging.h"
+#include "util/mutexlock.h"
+#include "util/random.h"
+
+namespace leveldb {
+
+ReplayIterator::ReplayIterator() {
+}
+
+ReplayIterator::~ReplayIterator() {
+}
+
+ReplayState::ReplayState(Iterator* i, SequenceNumber s, SequenceNumber l)
+ : mem_(NULL),
+ iter_(i),
+ seq_start_(s),
+ seq_limit_(l) {
+}
+
+ReplayState::ReplayState(MemTable* m, SequenceNumber s)
+ : mem_(m),
+ iter_(NULL),
+ seq_start_(s),
+ seq_limit_(0) {
+}
+
+ReplayIteratorImpl::ReplayIteratorImpl(DBImpl* db, port::Mutex* mutex, const Comparator* cmp,
+ Iterator* iter, MemTable* m, SequenceNumber s)
+ : ReplayIterator(),
+ db_(db),
+ mutex_(mutex),
+ user_comparator_(cmp),
+ start_at_(s),
+ valid_(),
+ status_(),
+ has_current_user_key_(false),
+ current_user_key_(),
+ current_user_sequence_(),
+ rs_(iter, s, kMaxSequenceNumber),
+ mems_() {
+ m->Ref();
+ mems_.push_back(ReplayState(m, s));
+}
+
+ReplayIteratorImpl::~ReplayIteratorImpl() {
+}
+
+bool ReplayIteratorImpl::Valid() {
+ Prime();
+ return valid_;
+}
+
+void ReplayIteratorImpl::Next() {
+ rs_.iter_->Next();
+}
+
+void ReplayIteratorImpl::SkipTo(const Slice& target) {
+ std::string internal_key;
+ AppendInternalKey(&internal_key, ParsedInternalKey(target, kMaxSequenceNumber, kValueTypeForSeek));
+ rs_.iter_->Seek(internal_key);
+}
+
+void ReplayIteratorImpl::SkipToLast() {
+ rs_.iter_->SeekToLast();
+ while (rs_.iter_->Valid()) {
+ rs_.iter_->Next();
+ }
+}
+
+void SkipTo(const Slice& target) {
+}
+
+bool ReplayIteratorImpl::HasValue() {
+ ParsedInternalKey ikey;
+ return ParseKey(&ikey) && ikey.type == kTypeValue;
+}
+
+Slice ReplayIteratorImpl::key() const {
+ assert(valid_);
+ return ExtractUserKey(rs_.iter_->key());
+}
+
+Slice ReplayIteratorImpl::value() const {
+ assert(valid_);
+ return rs_.iter_->value();
+}
+
+Status ReplayIteratorImpl::status() const {
+ if (!status_.ok()) {
+ return status_;
+ } else {
+ return rs_.iter_->status();
+ }
+}
+
+void ReplayIteratorImpl::enqueue(MemTable* m, SequenceNumber s) {
+ m->Ref();
+ mems_.push_back(ReplayState(m, s));
+}
+
+void ReplayIteratorImpl::cleanup() {
+ mutex_->Unlock();
+ if (rs_.iter_) {
+ delete rs_.iter_;
+ }
+ if (rs_.mem_) {
+ rs_.mem_->Unref();
+ }
+ mutex_->Lock();
+ rs_.iter_ = NULL;
+ rs_.mem_ = NULL;
+
+ while (!mems_.empty()) {
+ MemTable* mem = mems_.front().mem_;
+ Iterator* iter = mems_.front().iter_;
+ mutex_->Unlock();
+ if (iter) {
+ delete iter;
+ }
+ if (mem) {
+ mem->Unref();
+ }
+ mutex_->Lock();
+ mems_.pop_front();
+ }
+
+ delete this;
+}
+
+bool ReplayIteratorImpl::ParseKey(ParsedInternalKey* ikey) {
+ return ParseKey(rs_.iter_->key(), ikey);
+}
+
+bool ReplayIteratorImpl::ParseKey(const Slice& k, ParsedInternalKey* ikey) {
+ if (!ParseInternalKey(k, ikey)) {
+ status_ = Status::Corruption("corrupted internal key in ReplayIteratorImpl");
+ return false;
+ } else {
+ return true;
+ }
+}
+
+void ReplayIteratorImpl::Prime() {
+ valid_ = false;
+ if (!status_.ok()) {
+ return;
+ }
+ while (true) {
+ assert(rs_.iter_);
+ while (rs_.iter_->Valid()) {
+ ParsedInternalKey ikey;
+ if (!ParseKey(rs_.iter_->key(), &ikey)) {
+ return;
+ }
+ // if we can consider this key, and it's recent enough and of the right
+ // type
+ if ((!has_current_user_key_ ||
+ user_comparator_->Compare(ikey.user_key,
+ Slice(current_user_key_)) != 0 ||
+ ikey.sequence >= current_user_sequence_) &&
+ (ikey.sequence >= rs_.seq_start_ &&
+ (ikey.type == kTypeDeletion || ikey.type == kTypeValue))) {
+ has_current_user_key_ = true;
+ current_user_key_.assign(ikey.user_key.data(), ikey.user_key.size());
+ current_user_sequence_ = ikey.sequence;
+ valid_ = true;
+ return;
+ }
+ rs_.iter_->Next();
+ }
+ if (!rs_.iter_->status().ok()) {
+ status_ = rs_.iter_->status();
+ valid_ = false;
+ return;
+ }
+ // we're done with rs_.iter_
+ has_current_user_key_ = false;
+ current_user_key_.assign("", 0);
+ current_user_sequence_ = kMaxSequenceNumber;
+ delete rs_.iter_;
+ rs_.iter_ = NULL;
+ {
+ MutexLock l(mutex_);
+ if (mems_.empty() ||
+ rs_.seq_limit_ < mems_.front().seq_start_) {
+ rs_.seq_start_ = rs_.seq_limit_;
+ } else {
+ if (rs_.mem_) {
+ rs_.mem_->Unref();
+ rs_.mem_ = NULL;
+ }
+ rs_.mem_ = mems_.front().mem_;
+ rs_.seq_start_ = mems_.front().seq_start_;
+ mems_.pop_front();
+ }
+ }
+ rs_.seq_limit_ = db_->LastSequence();
+ rs_.iter_ = rs_.mem_->NewIterator();
+ rs_.iter_->SeekToFirst();
+ assert(rs_.seq_start_ <= rs_.seq_limit_);
+ if (rs_.seq_start_ == rs_.seq_limit_) {
+ valid_ = false;
+ return;
+ }
+ }
+}
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/db/replay_iterator.h b/clipper/HyperLevelDB/db/replay_iterator.h
new file mode 100644
index 0000000..165b040
--- /dev/null
+++ b/clipper/HyperLevelDB/db/replay_iterator.h
@@ -0,0 +1,73 @@
+// Copyright (c) 2013 The HyperLevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#ifndef STORAGE_LEVELDB_DB_ROLLING_ITERATOR_H_
+#define STORAGE_LEVELDB_DB_ROLLING_ITERATOR_H_
+
+#include <stdint.h>
+#include <list>
+#include "hyperleveldb/db.h"
+#include "hyperleveldb/replay_iterator.h"
+#include "db/dbformat.h"
+#include "db/memtable.h"
+
+namespace leveldb {
+
+class DBImpl;
+struct ReplayState {
+ ReplayState(Iterator* i, SequenceNumber s, SequenceNumber l);
+ ReplayState(MemTable* m, SequenceNumber s);
+ MemTable* mem_;
+ Iterator* iter_;
+ SequenceNumber seq_start_;
+ SequenceNumber seq_limit_;
+};
+
+class ReplayIteratorImpl : public ReplayIterator {
+ public:
+ // Refs the memtable on its own; caller must hold mutex while creating this
+ ReplayIteratorImpl(DBImpl* db, port::Mutex* mutex, const Comparator* cmp,
+ Iterator* iter, MemTable* m, SequenceNumber s);
+ virtual bool Valid();
+ virtual void Next();
+ virtual void SkipTo(const Slice& target);
+ virtual void SkipToLast();
+ virtual bool HasValue();
+ virtual Slice key() const;
+ virtual Slice value() const;
+ virtual Status status() const;
+
+ // extra interface
+
+ // we ref the memtable; caller holds mutex passed into ctor
+ // REQUIRES: caller must hold mutex passed into ctor
+ void enqueue(MemTable* m, SequenceNumber s);
+
+ // REQUIRES: caller must hold mutex passed into ctor
+ void cleanup(); // calls delete this;
+
+ private:
+ virtual ~ReplayIteratorImpl();
+ bool ParseKey(ParsedInternalKey* ikey);
+ bool ParseKey(const Slice& k, ParsedInternalKey* ikey);
+ void Prime();
+
+ DBImpl* const db_;
+ port::Mutex* mutex_;
+ const Comparator* const user_comparator_;
+ SequenceNumber const start_at_;
+ bool valid_;
+ Status status_;
+
+ bool has_current_user_key_;
+ std::string current_user_key_;
+ SequenceNumber current_user_sequence_;
+
+ ReplayState rs_;
+ std::list<ReplayState> mems_;
+};
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_DB_ROLLING_ITERATOR_H_
diff --git a/clipper/HyperLevelDB/db/skiplist.h b/clipper/HyperLevelDB/db/skiplist.h
new file mode 100644
index 0000000..8f17ad2
--- /dev/null
+++ b/clipper/HyperLevelDB/db/skiplist.h
@@ -0,0 +1,460 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+//
+// Thread safety
+// -------------
+//
+// Writes require external synchronization, most likely a mutex.
+// Reads require a guarantee that the SkipList will not be destroyed
+// while the read is in progress. Apart from that, reads progress
+// without any internal locking or synchronization.
+//
+// Invariants:
+//
+// (1) Allocated nodes are never deleted until the SkipList is
+// destroyed. This is trivially guaranteed by the code since we
+// never delete any skip list nodes.
+//
+// (2) The contents of a Node except for the next/prev pointers are
+// immutable after the Node has been linked into the SkipList.
+// Only Insert() modifies the list, and it is careful to initialize
+// a node and use release-stores to publish the nodes in one or
+// more lists.
+//
+// ... prev vs. next pointer ordering ...
+
+#include <assert.h>
+#include <stdlib.h>
+#include "port/port.h"
+#include "util/arena.h"
+#include "util/random.h"
+
+namespace leveldb {
+
+class Arena;
+
+template<typename Key, class Comparator>
+class SkipList {
+ private:
+ struct Node;
+ enum { kMaxHeight = 12 };
+
+ public:
+ // Create a new SkipList object that will use "cmp" for comparing keys,
+ // and will allocate memory using "*arena". Objects allocated in the arena
+ // must remain allocated for the lifetime of the skiplist object.
+ explicit SkipList(Comparator cmp, Arena* arena);
+
+ // Insert key into the list.
+ // REQUIRES: nothing that compares equal to key is currently in the list.
+ // REQUIRES: external synchronization.
+ void Insert(const Key& key);
+
+ // Insert key into the list using the iterator as a hint.
+ // REQUIRES: nothing that compares equal to key is currently in the list.
+ // REQUIRES: external synchronization.
+ class InsertHint;
+ void InsertWithHint(InsertHint* ih, const Key& key);
+
+ // Returns true iff an entry that compares equal to key is in the list.
+ bool Contains(const Key& key) const;
+
+ // Perform expensive iteration over the skip list prior to insert so that the
+ // cost of a synchronized insert is reduced when the structure is full.
+ // REQUIRES: same synchronization as is necessary for a read.
+ class InsertHint {
+ public:
+ InsertHint(const SkipList* list, const Key& key);
+
+ private:
+ const SkipList* list_;
+ Node* x_;
+ Node* prev_[kMaxHeight];
+ Node* obs_[kMaxHeight];
+
+ // No copying allowed
+ InsertHint(const InsertHint&);
+ void operator=(const InsertHint&);
+ friend class SkipList;
+ };
+
+ // Iteration over the contents of a skip list
+ class Iterator {
+ public:
+ // Initialize an iterator over the specified list.
+ // The returned iterator is not valid.
+ explicit Iterator(const SkipList* list);
+
+ // Returns true iff the iterator is positioned at a valid node.
+ bool Valid() const;
+
+ // Returns the key at the current position.
+ // REQUIRES: Valid()
+ const Key& key() const;
+
+ // Advances to the next position.
+ // REQUIRES: Valid()
+ void Next();
+
+ // Advances to the previous position.
+ // REQUIRES: Valid()
+ void Prev();
+
+ // Advance to the first entry with a key >= target
+ void Seek(const Key& target);
+
+ // Position at the first entry in list.
+ // Final state of iterator is Valid() iff list is not empty.
+ void SeekToFirst();
+
+ // Position at the last entry in list.
+ // Final state of iterator is Valid() iff list is not empty.
+ void SeekToLast();
+
+ private:
+ const SkipList* list_;
+ Node* node_;
+ // Intentionally copyable
+ };
+
+ private:
+ // Immutable after construction
+ Comparator const compare_;
+ Arena* const arena_; // Arena used for allocations of nodes
+
+ Node* const head_;
+
+ // Modified only by Insert(). Read racily by readers, but stale
+ // values are ok.
+ port::AtomicPointer max_height_; // Height of the entire list
+
+ inline int GetMaxHeight() const {
+ return static_cast<int>(
+ reinterpret_cast<intptr_t>(max_height_.NoBarrier_Load()));
+ }
+
+ // Read/written only by Insert().
+ Random rnd_;
+
+ Node* NewNode(const Key& key, int height);
+ int RandomHeight();
+ bool Equal(const Key& a, const Key& b) const { return (compare_(a, b) == 0); }
+
+ // Return true if key is greater than the data stored in "n"
+ bool KeyIsAfterNode(const Key& key, Node* n) const;
+
+ // Return the earliest node that comes at or after key.
+ // Return NULL if there is no such node.
+ //
+ // If prev is non-NULL, fills prev[level] with pointer to previous
+ // node at "level" for every level in [0..max_height_-1].
+ Node* FindGreaterOrEqual(const Key& key, Node** prev, Node** obs) const;
+
+ // Return the latest node with a key < key.
+ // Return head_ if there is no such node.
+ Node* FindLessThan(const Key& key) const;
+
+ // Return the last node in the list.
+ // Return head_ if list is empty.
+ Node* FindLast() const;
+
+ // Update the state of the InsertHint to reflect the latest values
+ void UpdateHint(InsertHint* ih, const Key& k);
+
+ // No copying allowed
+ SkipList(const SkipList&);
+ void operator=(const SkipList&);
+};
+
+// Implementation details follow
+template<typename Key, class Comparator>
+struct SkipList<Key,Comparator>::Node {
+ explicit Node(const Key& k) : key(k) { }
+
+ Key const key;
+
+ // Accessors/mutators for links. Wrapped in methods so we can
+ // add the appropriate barriers as necessary.
+ Node* Next(int n) {
+ assert(n >= 0);
+ // Use an 'acquire load' so that we observe a fully initialized
+ // version of the returned Node.
+ return reinterpret_cast<Node*>(next_[n].Acquire_Load());
+ }
+ void SetNext(int n, Node* x) {
+ assert(n >= 0);
+ // Use a 'release store' so that anybody who reads through this
+ // pointer observes a fully initialized version of the inserted node.
+ next_[n].Release_Store(x);
+ }
+
+ // No-barrier variants that can be safely used in a few locations.
+ Node* NoBarrier_Next(int n) {
+ assert(n >= 0);
+ return reinterpret_cast<Node*>(next_[n].NoBarrier_Load());
+ }
+ void NoBarrier_SetNext(int n, Node* x) {
+ assert(n >= 0);
+ next_[n].NoBarrier_Store(x);
+ }
+
+ private:
+ // Array of length equal to the node height. next_[0] is lowest level link.
+ port::AtomicPointer next_[1];
+};
+
+template<typename Key, class Comparator>
+typename SkipList<Key,Comparator>::Node*
+SkipList<Key,Comparator>::NewNode(const Key& key, int height) {
+ char* mem = arena_->AllocateAligned(
+ sizeof(Node) + sizeof(port::AtomicPointer) * (height - 1));
+ return new (mem) Node(key);
+}
+
+template<typename Key, class Comparator>
+inline SkipList<Key,Comparator>::Iterator::Iterator(const SkipList* list) {
+ list_ = list;
+ node_ = NULL;
+}
+
+template<typename Key, class Comparator>
+inline bool SkipList<Key,Comparator>::Iterator::Valid() const {
+ return node_ != NULL;
+}
+
+template<typename Key, class Comparator>
+inline const Key& SkipList<Key,Comparator>::Iterator::key() const {
+ assert(Valid());
+ return node_->key;
+}
+
+template<typename Key, class Comparator>
+inline void SkipList<Key,Comparator>::Iterator::Next() {
+ assert(Valid());
+ node_ = node_->Next(0);
+}
+
+template<typename Key, class Comparator>
+inline void SkipList<Key,Comparator>::Iterator::Prev() {
+ // Instead of using explicit "prev" links, we just search for the
+ // last node that falls before key.
+ assert(Valid());
+ node_ = list_->FindLessThan(node_->key);
+ if (node_ == list_->head_) {
+ node_ = NULL;
+ }
+}
+
+template<typename Key, class Comparator>
+inline void SkipList<Key,Comparator>::Iterator::Seek(const Key& target) {
+ node_ = list_->FindGreaterOrEqual(target, NULL, NULL);
+}
+
+template<typename Key, class Comparator>
+inline void SkipList<Key,Comparator>::Iterator::SeekToFirst() {
+ node_ = list_->head_->Next(0);
+}
+
+template<typename Key, class Comparator>
+inline void SkipList<Key,Comparator>::Iterator::SeekToLast() {
+ node_ = list_->FindLast();
+ if (node_ == list_->head_) {
+ node_ = NULL;
+ }
+}
+
+template<typename Key, class Comparator>
+int SkipList<Key,Comparator>::RandomHeight() {
+ // Increase height with probability 1 in kBranching
+ static const unsigned int kBranching = 4;
+ int height = 1;
+ while (height < kMaxHeight && ((rnd_.Next() % kBranching) == 0)) {
+ height++;
+ }
+ assert(height > 0);
+ assert(height <= kMaxHeight);
+ return height;
+}
+
+template<typename Key, class Comparator>
+bool SkipList<Key,Comparator>::KeyIsAfterNode(const Key& key, Node* n) const {
+ // NULL n is considered infinite
+ return (n != NULL) && (compare_(n->key, key) < 0);
+}
+
+template<typename Key, class Comparator>
+typename SkipList<Key,Comparator>::Node* SkipList<Key,Comparator>::FindGreaterOrEqual(const Key& key, Node** prev, Node** obs)
+ const {
+ Node* x = head_;
+ int level = GetMaxHeight() - 1;
+ while (true) {
+ Node* next = x->Next(level);
+ if (KeyIsAfterNode(key, next)) {
+ // Keep searching in this list
+ x = next;
+ } else {
+ if (prev != NULL) prev[level] = x;
+ if (obs != NULL) obs[level] = next;
+ if (level == 0) {
+ return next;
+ } else {
+ // Switch to next list
+ level--;
+ }
+ }
+ }
+}
+
+template<typename Key, class Comparator>
+typename SkipList<Key,Comparator>::Node*
+SkipList<Key,Comparator>::FindLessThan(const Key& key) const {
+ Node* x = head_;
+ int level = GetMaxHeight() - 1;
+ while (true) {
+ assert(x == head_ || compare_(x->key, key) < 0);
+ Node* next = x->Next(level);
+ if (next == NULL || compare_(next->key, key) >= 0) {
+ if (level == 0) {
+ return x;
+ } else {
+ // Switch to next list
+ level--;
+ }
+ } else {
+ x = next;
+ }
+ }
+}
+
+template<typename Key, class Comparator>
+typename SkipList<Key,Comparator>::Node* SkipList<Key,Comparator>::FindLast()
+ const {
+ Node* x = head_;
+ int level = GetMaxHeight() - 1;
+ while (true) {
+ Node* next = x->Next(level);
+ if (next == NULL) {
+ if (level == 0) {
+ return x;
+ } else {
+ // Switch to next list
+ level--;
+ }
+ } else {
+ x = next;
+ }
+ }
+}
+
+template<typename Key, class Comparator>
+SkipList<Key,Comparator>::SkipList(Comparator cmp, Arena* arena)
+ : compare_(cmp),
+ arena_(arena),
+ head_(NewNode(Key(), kMaxHeight)),
+ max_height_(reinterpret_cast<void*>(1)),
+ rnd_(0xdeadbeef) {
+ for (int i = 0; i < kMaxHeight; i++) {
+ head_->SetNext(i, NULL);
+ }
+}
+
+template<typename Key, class Comparator>
+void SkipList<Key,Comparator>::Insert(const Key& key) {
+ InsertHint ih(this, key);
+ return InsertWithHint(&ih, key);
+}
+
+template<typename Key, class Comparator>
+SkipList<Key,Comparator>::InsertHint::InsertHint(const SkipList* list, const Key& key)
+ : list_(list),
+ x_(NULL) {
+ for (int i = 0; i < kMaxHeight; ++i)
+ {
+ prev_[i] = list_->head_;
+ obs_[i] = NULL;
+ }
+ x_ = list_->FindGreaterOrEqual(key, prev_, obs_);
+}
+
+template<typename Key, class Comparator>
+void SkipList<Key,Comparator>::UpdateHint(InsertHint* ih, const Key& key) {
+ // TODO(opt): We can be smarter here by using the skip list structure to
+ // advance. It's assumed that a small number of insertions to the SkipList
+ // happen between the time ih was created and now.
+ for (int level = 0; level < kMaxHeight; ++level) {
+ Node* x = ih->prev_[level];
+ while (true) {
+ Node* next = x->Next(level);
+ if (next == ih->obs_[level] || !KeyIsAfterNode(key, next)) {
+ ih->prev_[level] = x;
+ ih->obs_[level] = next;
+ break;
+ }
+ x = next;
+ }
+ }
+ ih->x_ = ih->obs_[0];
+}
+
+template<typename Key, class Comparator>
+void SkipList<Key,Comparator>::InsertWithHint(InsertHint* ih, const Key& key) {
+ // Advance pointers to account for any data written between the creation of
+ // the InsertHint and this call.
+ UpdateHint(ih, key);
+ Node* prev[kMaxHeight];
+ Node* x = ih->x_;
+ for (int i = 0; i < kMaxHeight; ++i) {
+ prev[i] = ih->prev_[i];
+ }
+
+#if 0
+ Node* check_prev[kMaxHeight];
+ Node* check_x = FindGreaterOrEqual(key, check_prev, NULL);
+
+ for (int i = 0; i < GetMaxHeight(); ++i) {
+ assert(check_prev[i] == prev[i]);
+ assert(check_x == x);
+ }
+#endif
+
+ // Our data structure does not allow duplicate insertion
+ assert(x == NULL || !Equal(key, x->key));
+
+ int height = RandomHeight();
+ if (height > GetMaxHeight()) {
+ for (int i = GetMaxHeight(); i < height; i++) {
+ prev[i] = head_;
+ }
+ //fprintf(stderr, "Change height from %d to %d\n", max_height_, height);
+
+ // It is ok to mutate max_height_ without any synchronization
+ // with concurrent readers. A concurrent reader that observes
+ // the new value of max_height_ will see either the old value of
+ // new level pointers from head_ (NULL), or a new value set in
+ // the loop below. In the former case the reader will
+ // immediately drop to the next level since NULL sorts after all
+ // keys. In the latter case the reader will use the new node.
+ max_height_.NoBarrier_Store(reinterpret_cast<void*>(height));
+ }
+
+ x = NewNode(key, height);
+ for (int i = 0; i < height; i++) {
+ // NoBarrier_SetNext() suffices since we will add a barrier when
+ // we publish a pointer to "x" in prev[i].
+ x->NoBarrier_SetNext(i, prev[i]->NoBarrier_Next(i));
+ prev[i]->SetNext(i, x);
+ }
+}
+
+template<typename Key, class Comparator>
+bool SkipList<Key,Comparator>::Contains(const Key& key) const {
+ Node* x = FindGreaterOrEqual(key, NULL, NULL);
+ if (x != NULL && Equal(key, x->key)) {
+ return true;
+ } else {
+ return false;
+ }
+}
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/db/skiplist_test.cc b/clipper/HyperLevelDB/db/skiplist_test.cc
new file mode 100644
index 0000000..ce3a259
--- /dev/null
+++ b/clipper/HyperLevelDB/db/skiplist_test.cc
@@ -0,0 +1,378 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "db/skiplist.h"
+#include <set>
+#include "hyperleveldb/env.h"
+#include "util/arena.h"
+#include "util/hash.h"
+#include "util/random.h"
+#include "util/testharness.h"
+
+namespace leveldb {
+
+typedef uint64_t Key;
+
+struct Comparator {
+ int operator()(const Key& a, const Key& b) const {
+ if (a < b) {
+ return -1;
+ } else if (a > b) {
+ return +1;
+ } else {
+ return 0;
+ }
+ }
+};
+
+class SkipTest { };
+
+TEST(SkipTest, Empty) {
+ Arena arena;
+ Comparator cmp;
+ SkipList<Key, Comparator> list(cmp, &arena);
+ ASSERT_TRUE(!list.Contains(10));
+
+ SkipList<Key, Comparator>::Iterator iter(&list);
+ ASSERT_TRUE(!iter.Valid());
+ iter.SeekToFirst();
+ ASSERT_TRUE(!iter.Valid());
+ iter.Seek(100);
+ ASSERT_TRUE(!iter.Valid());
+ iter.SeekToLast();
+ ASSERT_TRUE(!iter.Valid());
+}
+
+TEST(SkipTest, InsertAndLookup) {
+ const int N = 2000;
+ const int R = 5000;
+ Random rnd(1000);
+ std::set<Key> keys;
+ Arena arena;
+ Comparator cmp;
+ SkipList<Key, Comparator> list(cmp, &arena);
+ for (int i = 0; i < N; i++) {
+ Key key = rnd.Next() % R;
+ if (keys.insert(key).second) {
+ list.Insert(key);
+ }
+ }
+
+ for (int i = 0; i < R; i++) {
+ if (list.Contains(i)) {
+ ASSERT_EQ(keys.count(i), 1);
+ } else {
+ ASSERT_EQ(keys.count(i), 0);
+ }
+ }
+
+ // Simple iterator tests
+ {
+ SkipList<Key, Comparator>::Iterator iter(&list);
+ ASSERT_TRUE(!iter.Valid());
+
+ iter.Seek(0);
+ ASSERT_TRUE(iter.Valid());
+ ASSERT_EQ(*(keys.begin()), iter.key());
+
+ iter.SeekToFirst();
+ ASSERT_TRUE(iter.Valid());
+ ASSERT_EQ(*(keys.begin()), iter.key());
+
+ iter.SeekToLast();
+ ASSERT_TRUE(iter.Valid());
+ ASSERT_EQ(*(keys.rbegin()), iter.key());
+ }
+
+ // Forward iteration test
+ for (int i = 0; i < R; i++) {
+ SkipList<Key, Comparator>::Iterator iter(&list);
+ iter.Seek(i);
+
+ // Compare against model iterator
+ std::set<Key>::iterator model_iter = keys.lower_bound(i);
+ for (int j = 0; j < 3; j++) {
+ if (model_iter == keys.end()) {
+ ASSERT_TRUE(!iter.Valid());
+ break;
+ } else {
+ ASSERT_TRUE(iter.Valid());
+ ASSERT_EQ(*model_iter, iter.key());
+ ++model_iter;
+ iter.Next();
+ }
+ }
+ }
+
+ // Backward iteration test
+ {
+ SkipList<Key, Comparator>::Iterator iter(&list);
+ iter.SeekToLast();
+
+ // Compare against model iterator
+ for (std::set<Key>::reverse_iterator model_iter = keys.rbegin();
+ model_iter != keys.rend();
+ ++model_iter) {
+ ASSERT_TRUE(iter.Valid());
+ ASSERT_EQ(*model_iter, iter.key());
+ iter.Prev();
+ }
+ ASSERT_TRUE(!iter.Valid());
+ }
+}
+
+// We want to make sure that with a single writer and multiple
+// concurrent readers (with no synchronization other than when a
+// reader's iterator is created), the reader always observes all the
+// data that was present in the skip list when the iterator was
+// constructor. Because insertions are happening concurrently, we may
+// also observe new values that were inserted since the iterator was
+// constructed, but we should never miss any values that were present
+// at iterator construction time.
+//
+// We generate multi-part keys:
+// <key,gen,hash>
+// where:
+// key is in range [0..K-1]
+// gen is a generation number for key
+// hash is hash(key,gen)
+//
+// The insertion code picks a random key, sets gen to be 1 + the last
+// generation number inserted for that key, and sets hash to Hash(key,gen).
+//
+// At the beginning of a read, we snapshot the last inserted
+// generation number for each key. We then iterate, including random
+// calls to Next() and Seek(). For every key we encounter, we
+// check that it is either expected given the initial snapshot or has
+// been concurrently added since the iterator started.
+class ConcurrentTest {
+ private:
+ static const uint32_t K = 4;
+
+ static uint64_t key(Key key) { return (key >> 40); }
+ static uint64_t gen(Key key) { return (key >> 8) & 0xffffffffu; }
+ static uint64_t hash(Key key) { return key & 0xff; }
+
+ static uint64_t HashNumbers(uint64_t k, uint64_t g) {
+ uint64_t data[2] = { k, g };
+ return Hash(reinterpret_cast<char*>(data), sizeof(data), 0);
+ }
+
+ static Key MakeKey(uint64_t k, uint64_t g) {
+ assert(sizeof(Key) == sizeof(uint64_t));
+ assert(k <= K); // We sometimes pass K to seek to the end of the skiplist
+ assert(g <= 0xffffffffu);
+ return ((k << 40) | (g << 8) | (HashNumbers(k, g) & 0xff));
+ }
+
+ static bool IsValidKey(Key k) {
+ return hash(k) == (HashNumbers(key(k), gen(k)) & 0xff);
+ }
+
+ static Key RandomTarget(Random* rnd) {
+ switch (rnd->Next() % 10) {
+ case 0:
+ // Seek to beginning
+ return MakeKey(0, 0);
+ case 1:
+ // Seek to end
+ return MakeKey(K, 0);
+ default:
+ // Seek to middle
+ return MakeKey(rnd->Next() % K, 0);
+ }
+ }
+
+ // Per-key generation
+ struct State {
+ port::AtomicPointer generation[K];
+ void Set(int k, intptr_t v) {
+ generation[k].Release_Store(reinterpret_cast<void*>(v));
+ }
+ intptr_t Get(int k) {
+ return reinterpret_cast<intptr_t>(generation[k].Acquire_Load());
+ }
+
+ State() {
+ for (int k = 0; k < K; k++) {
+ Set(k, 0);
+ }
+ }
+ };
+
+ // Current state of the test
+ State current_;
+
+ Arena arena_;
+
+ // SkipList is not protected by mu_. We just use a single writer
+ // thread to modify it.
+ SkipList<Key, Comparator> list_;
+
+ public:
+ ConcurrentTest() : list_(Comparator(), &arena_) { }
+
+ // REQUIRES: External synchronization
+ void WriteStep(Random* rnd) {
+ const uint32_t k = rnd->Next() % K;
+ const intptr_t g = current_.Get(k) + 1;
+ const Key key = MakeKey(k, g);
+ list_.Insert(key);
+ current_.Set(k, g);
+ }
+
+ void ReadStep(Random* rnd) {
+ // Remember the initial committed state of the skiplist.
+ State initial_state;
+ for (int k = 0; k < K; k++) {
+ initial_state.Set(k, current_.Get(k));
+ }
+
+ Key pos = RandomTarget(rnd);
+ SkipList<Key, Comparator>::Iterator iter(&list_);
+ iter.Seek(pos);
+ while (true) {
+ Key current;
+ if (!iter.Valid()) {
+ current = MakeKey(K, 0);
+ } else {
+ current = iter.key();
+ ASSERT_TRUE(IsValidKey(current)) << current;
+ }
+ ASSERT_LE(pos, current) << "should not go backwards";
+
+ // Verify that everything in [pos,current) was not present in
+ // initial_state.
+ while (pos < current) {
+ ASSERT_LT(key(pos), K) << pos;
+
+ // Note that generation 0 is never inserted, so it is ok if
+ // <*,0,*> is missing.
+ ASSERT_TRUE((gen(pos) == 0) ||
+ (gen(pos) > initial_state.Get(key(pos)))
+ ) << "key: " << key(pos)
+ << "; gen: " << gen(pos)
+ << "; initgen: "
+ << initial_state.Get(key(pos));
+
+ // Advance to next key in the valid key space
+ if (key(pos) < key(current)) {
+ pos = MakeKey(key(pos) + 1, 0);
+ } else {
+ pos = MakeKey(key(pos), gen(pos) + 1);
+ }
+ }
+
+ if (!iter.Valid()) {
+ break;
+ }
+
+ if (rnd->Next() % 2) {
+ iter.Next();
+ pos = MakeKey(key(pos), gen(pos) + 1);
+ } else {
+ Key new_target = RandomTarget(rnd);
+ if (new_target > pos) {
+ pos = new_target;
+ iter.Seek(new_target);
+ }
+ }
+ }
+ }
+};
+const uint32_t ConcurrentTest::K;
+
+// Simple test that does single-threaded testing of the ConcurrentTest
+// scaffolding.
+TEST(SkipTest, ConcurrentWithoutThreads) {
+ ConcurrentTest test;
+ Random rnd(test::RandomSeed());
+ for (int i = 0; i < 10000; i++) {
+ test.ReadStep(&rnd);
+ test.WriteStep(&rnd);
+ }
+}
+
+class TestState {
+ public:
+ ConcurrentTest t_;
+ int seed_;
+ port::AtomicPointer quit_flag_;
+
+ enum ReaderState {
+ STARTING,
+ RUNNING,
+ DONE
+ };
+
+ explicit TestState(int s)
+ : seed_(s),
+ quit_flag_(NULL),
+ state_(STARTING),
+ state_cv_(&mu_) {}
+
+ void Wait(ReaderState s) {
+ mu_.Lock();
+ while (state_ != s) {
+ state_cv_.Wait();
+ }
+ mu_.Unlock();
+ }
+
+ void Change(ReaderState s) {
+ mu_.Lock();
+ state_ = s;
+ state_cv_.Signal();
+ mu_.Unlock();
+ }
+
+ private:
+ port::Mutex mu_;
+ ReaderState state_;
+ port::CondVar state_cv_;
+};
+
+static void ConcurrentReader(void* arg) {
+ TestState* state = reinterpret_cast<TestState*>(arg);
+ Random rnd(state->seed_);
+ int64_t reads = 0;
+ state->Change(TestState::RUNNING);
+ while (!state->quit_flag_.Acquire_Load()) {
+ state->t_.ReadStep(&rnd);
+ ++reads;
+ }
+ state->Change(TestState::DONE);
+}
+
+static void RunConcurrent(int run) {
+ const int seed = test::RandomSeed() + (run * 100);
+ Random rnd(seed);
+ const int N = 1000;
+ const int kSize = 1000;
+ for (int i = 0; i < N; i++) {
+ if ((i % 100) == 0) {
+ fprintf(stderr, "Run %d of %d\n", i, N);
+ }
+ TestState state(seed + 1);
+ Env::Default()->Schedule(ConcurrentReader, &state);
+ state.Wait(TestState::RUNNING);
+ for (int i = 0; i < kSize; i++) {
+ state.t_.WriteStep(&rnd);
+ }
+ state.quit_flag_.Release_Store(&state); // Any non-NULL arg will do
+ state.Wait(TestState::DONE);
+ }
+}
+
+TEST(SkipTest, Concurrent1) { RunConcurrent(1); }
+TEST(SkipTest, Concurrent2) { RunConcurrent(2); }
+TEST(SkipTest, Concurrent3) { RunConcurrent(3); }
+TEST(SkipTest, Concurrent4) { RunConcurrent(4); }
+TEST(SkipTest, Concurrent5) { RunConcurrent(5); }
+
+} // namespace leveldb
+
+int main(int argc, char** argv) {
+ return leveldb::test::RunAllTests();
+}
diff --git a/clipper/HyperLevelDB/db/snapshot.h b/clipper/HyperLevelDB/db/snapshot.h
new file mode 100644
index 0000000..29196e4
--- /dev/null
+++ b/clipper/HyperLevelDB/db/snapshot.h
@@ -0,0 +1,66 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#ifndef STORAGE_LEVELDB_DB_SNAPSHOT_H_
+#define STORAGE_LEVELDB_DB_SNAPSHOT_H_
+
+#include "hyperleveldb/db.h"
+
+namespace leveldb {
+
+class SnapshotList;
+
+// Snapshots are kept in a doubly-linked list in the DB.
+// Each SnapshotImpl corresponds to a particular sequence number.
+class SnapshotImpl : public Snapshot {
+ public:
+ SequenceNumber number_; // const after creation
+
+ private:
+ friend class SnapshotList;
+
+ // SnapshotImpl is kept in a doubly-linked circular list
+ SnapshotImpl* prev_;
+ SnapshotImpl* next_;
+
+ SnapshotList* list_; // just for sanity checks
+};
+
+class SnapshotList {
+ public:
+ SnapshotList() {
+ list_.prev_ = &list_;
+ list_.next_ = &list_;
+ }
+
+ bool empty() const { return list_.next_ == &list_; }
+ SnapshotImpl* oldest() const { assert(!empty()); return list_.next_; }
+ SnapshotImpl* newest() const { assert(!empty()); return list_.prev_; }
+
+ const SnapshotImpl* New(SequenceNumber seq) {
+ SnapshotImpl* s = new SnapshotImpl;
+ s->number_ = seq;
+ s->list_ = this;
+ s->next_ = &list_;
+ s->prev_ = list_.prev_;
+ s->prev_->next_ = s;
+ s->next_->prev_ = s;
+ return s;
+ }
+
+ void Delete(const SnapshotImpl* s) {
+ assert(s->list_ == this);
+ s->prev_->next_ = s->next_;
+ s->next_->prev_ = s->prev_;
+ delete s;
+ }
+
+ private:
+ // Dummy head of doubly-linked list of snapshots
+ SnapshotImpl list_;
+};
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_DB_SNAPSHOT_H_
diff --git a/clipper/HyperLevelDB/db/table_cache.cc b/clipper/HyperLevelDB/db/table_cache.cc
new file mode 100644
index 0000000..8418495
--- /dev/null
+++ b/clipper/HyperLevelDB/db/table_cache.cc
@@ -0,0 +1,127 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "db/table_cache.h"
+
+#include "db/filename.h"
+#include "hyperleveldb/env.h"
+#include "hyperleveldb/table.h"
+#include "util/coding.h"
+
+namespace leveldb {
+
+struct TableAndFile {
+ RandomAccessFile* file;
+ Table* table;
+};
+
+static void DeleteEntry(const Slice& key, void* value) {
+ TableAndFile* tf = reinterpret_cast<TableAndFile*>(value);
+ delete tf->table;
+ delete tf->file;
+ delete tf;
+}
+
+static void UnrefEntry(void* arg1, void* arg2) {
+ Cache* cache = reinterpret_cast<Cache*>(arg1);
+ Cache::Handle* h = reinterpret_cast<Cache::Handle*>(arg2);
+ cache->Release(h);
+}
+
+TableCache::TableCache(const std::string& dbname,
+ const Options* options,
+ int entries)
+ : env_(options->env),
+ dbname_(dbname),
+ options_(options),
+ cache_(NewLRUCache(entries)) {
+}
+
+TableCache::~TableCache() {
+ delete cache_;
+}
+
+Status TableCache::FindTable(uint64_t file_number, uint64_t file_size,
+ Cache::Handle** handle) {
+ Status s;
+ char buf[sizeof(file_number)];
+ EncodeFixed64(buf, file_number);
+ Slice key(buf, sizeof(buf));
+ *handle = cache_->Lookup(key);
+ if (*handle == NULL) {
+ std::string fname = SSTTableFileName(dbname_, file_number);
+ RandomAccessFile* file = NULL;
+ Table* table = NULL;
+ s = env_->NewRandomAccessFile(fname, &file);
+ if (!s.ok()) {
+ std::string old_fname = TableFileName(dbname_, file_number);
+ if (env_->NewRandomAccessFile(old_fname, &file).ok()) {
+ s = Status::OK();
+ }
+ }
+ if (s.ok()) {
+ s = Table::Open(*options_, file, file_size, &table);
+ }
+
+ if (!s.ok()) {
+ assert(table == NULL);
+ delete file;
+ // We do not cache error results so that if the error is transient,
+ // or somebody repairs the file, we recover automatically.
+ } else {
+ TableAndFile* tf = new TableAndFile;
+ tf->file = file;
+ tf->table = table;
+ *handle = cache_->Insert(key, tf, 1, &DeleteEntry);
+ }
+ }
+ return s;
+}
+
+Iterator* TableCache::NewIterator(const ReadOptions& options,
+ uint64_t file_number,
+ uint64_t file_size,
+ Table** tableptr) {
+ if (tableptr != NULL) {
+ *tableptr = NULL;
+ }
+
+ Cache::Handle* handle = NULL;
+ Status s = FindTable(file_number, file_size, &handle);
+ if (!s.ok()) {
+ return NewErrorIterator(s);
+ }
+
+ Table* table = reinterpret_cast<TableAndFile*>(cache_->Value(handle))->table;
+ Iterator* result = table->NewIterator(options);
+ result->RegisterCleanup(&UnrefEntry, cache_, handle);
+ if (tableptr != NULL) {
+ *tableptr = table;
+ }
+ return result;
+}
+
+Status TableCache::Get(const ReadOptions& options,
+ uint64_t file_number,
+ uint64_t file_size,
+ const Slice& k,
+ void* arg,
+ void (*saver)(void*, const Slice&, const Slice&)) {
+ Cache::Handle* handle = NULL;
+ Status s = FindTable(file_number, file_size, &handle);
+ if (s.ok()) {
+ Table* t = reinterpret_cast<TableAndFile*>(cache_->Value(handle))->table;
+ s = t->InternalGet(options, k, arg, saver);
+ cache_->Release(handle);
+ }
+ return s;
+}
+
+void TableCache::Evict(uint64_t file_number) {
+ char buf[sizeof(file_number)];
+ EncodeFixed64(buf, file_number);
+ cache_->Erase(Slice(buf, sizeof(buf)));
+}
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/db/table_cache.h b/clipper/HyperLevelDB/db/table_cache.h
new file mode 100644
index 0000000..7f25cc5
--- /dev/null
+++ b/clipper/HyperLevelDB/db/table_cache.h
@@ -0,0 +1,61 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+//
+// Thread-safe (provides internal synchronization)
+
+#ifndef STORAGE_LEVELDB_DB_TABLE_CACHE_H_
+#define STORAGE_LEVELDB_DB_TABLE_CACHE_H_
+
+#include <string>
+#include <stdint.h>
+#include "db/dbformat.h"
+#include "hyperleveldb/cache.h"
+#include "hyperleveldb/table.h"
+#include "port/port.h"
+
+namespace leveldb {
+
+class Env;
+
+class TableCache {
+ public:
+ TableCache(const std::string& dbname, const Options* options, int entries);
+ ~TableCache();
+
+ // Return an iterator for the specified file number (the corresponding
+ // file length must be exactly "file_size" bytes). If "tableptr" is
+ // non-NULL, also sets "*tableptr" to point to the Table object
+ // underlying the returned iterator, or NULL if no Table object underlies
+ // the returned iterator. The returned "*tableptr" object is owned by
+ // the cache and should not be deleted, and is valid for as long as the
+ // returned iterator is live.
+ Iterator* NewIterator(const ReadOptions& options,
+ uint64_t file_number,
+ uint64_t file_size,
+ Table** tableptr = NULL);
+
+ // If a seek to internal key "k" in specified file finds an entry,
+ // call (*handle_result)(arg, found_key, found_value).
+ Status Get(const ReadOptions& options,
+ uint64_t file_number,
+ uint64_t file_size,
+ const Slice& k,
+ void* arg,
+ void (*handle_result)(void*, const Slice&, const Slice&));
+
+ // Evict any entry for the specified file number
+ void Evict(uint64_t file_number);
+
+ private:
+ Env* const env_;
+ const std::string dbname_;
+ const Options* options_;
+ Cache* cache_;
+
+ Status FindTable(uint64_t file_number, uint64_t file_size, Cache::Handle**);
+};
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_DB_TABLE_CACHE_H_
diff --git a/clipper/HyperLevelDB/db/version_edit.cc b/clipper/HyperLevelDB/db/version_edit.cc
new file mode 100644
index 0000000..f10a2d5
--- /dev/null
+++ b/clipper/HyperLevelDB/db/version_edit.cc
@@ -0,0 +1,266 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "db/version_edit.h"
+
+#include "db/version_set.h"
+#include "util/coding.h"
+
+namespace leveldb {
+
+// Tag numbers for serialized VersionEdit. These numbers are written to
+// disk and should not be changed.
+enum Tag {
+ kComparator = 1,
+ kLogNumber = 2,
+ kNextFileNumber = 3,
+ kLastSequence = 4,
+ kCompactPointer = 5,
+ kDeletedFile = 6,
+ kNewFile = 7,
+ // 8 was used for large value refs
+ kPrevLogNumber = 9
+};
+
+void VersionEdit::Clear() {
+ comparator_.clear();
+ log_number_ = 0;
+ prev_log_number_ = 0;
+ last_sequence_ = 0;
+ next_file_number_ = 0;
+ has_comparator_ = false;
+ has_log_number_ = false;
+ has_prev_log_number_ = false;
+ has_next_file_number_ = false;
+ has_last_sequence_ = false;
+ deleted_files_.clear();
+ new_files_.clear();
+}
+
+void VersionEdit::EncodeTo(std::string* dst) const {
+ if (has_comparator_) {
+ PutVarint32(dst, kComparator);
+ PutLengthPrefixedSlice(dst, comparator_);
+ }
+ if (has_log_number_) {
+ PutVarint32(dst, kLogNumber);
+ PutVarint64(dst, log_number_);
+ }
+ if (has_prev_log_number_) {
+ PutVarint32(dst, kPrevLogNumber);
+ PutVarint64(dst, prev_log_number_);
+ }
+ if (has_next_file_number_) {
+ PutVarint32(dst, kNextFileNumber);
+ PutVarint64(dst, next_file_number_);
+ }
+ if (has_last_sequence_) {
+ PutVarint32(dst, kLastSequence);
+ PutVarint64(dst, last_sequence_);
+ }
+
+ for (size_t i = 0; i < compact_pointers_.size(); i++) {
+ PutVarint32(dst, kCompactPointer);
+ PutVarint32(dst, compact_pointers_[i].first); // level
+ PutLengthPrefixedSlice(dst, compact_pointers_[i].second.Encode());
+ }
+
+ for (DeletedFileSet::const_iterator iter = deleted_files_.begin();
+ iter != deleted_files_.end();
+ ++iter) {
+ PutVarint32(dst, kDeletedFile);
+ PutVarint32(dst, iter->first); // level
+ PutVarint64(dst, iter->second); // file number
+ }
+
+ for (size_t i = 0; i < new_files_.size(); i++) {
+ const FileMetaData& f = new_files_[i].second;
+ PutVarint32(dst, kNewFile);
+ PutVarint32(dst, new_files_[i].first); // level
+ PutVarint64(dst, f.number);
+ PutVarint64(dst, f.file_size);
+ PutLengthPrefixedSlice(dst, f.smallest.Encode());
+ PutLengthPrefixedSlice(dst, f.largest.Encode());
+ }
+}
+
+static bool GetInternalKey(Slice* input, InternalKey* dst) {
+ Slice str;
+ if (GetLengthPrefixedSlice(input, &str)) {
+ dst->DecodeFrom(str);
+ return true;
+ } else {
+ return false;
+ }
+}
+
+static bool GetLevel(Slice* input, int* level) {
+ uint32_t v;
+ if (GetVarint32(input, &v) &&
+ v < config::kNumLevels) {
+ *level = v;
+ return true;
+ } else {
+ return false;
+ }
+}
+
+Status VersionEdit::DecodeFrom(const Slice& src) {
+ Clear();
+ Slice input = src;
+ const char* msg = NULL;
+ uint32_t tag;
+
+ // Temporary storage for parsing
+ int level;
+ uint64_t number;
+ FileMetaData f;
+ Slice str;
+ InternalKey key;
+
+ while (msg == NULL && GetVarint32(&input, &tag)) {
+ switch (tag) {
+ case kComparator:
+ if (GetLengthPrefixedSlice(&input, &str)) {
+ comparator_ = str.ToString();
+ has_comparator_ = true;
+ } else {
+ msg = "comparator name";
+ }
+ break;
+
+ case kLogNumber:
+ if (GetVarint64(&input, &log_number_)) {
+ has_log_number_ = true;
+ } else {
+ msg = "log number";
+ }
+ break;
+
+ case kPrevLogNumber:
+ if (GetVarint64(&input, &prev_log_number_)) {
+ has_prev_log_number_ = true;
+ } else {
+ msg = "previous log number";
+ }
+ break;
+
+ case kNextFileNumber:
+ if (GetVarint64(&input, &next_file_number_)) {
+ has_next_file_number_ = true;
+ } else {
+ msg = "next file number";
+ }
+ break;
+
+ case kLastSequence:
+ if (GetVarint64(&input, &last_sequence_)) {
+ has_last_sequence_ = true;
+ } else {
+ msg = "last sequence number";
+ }
+ break;
+
+ case kCompactPointer:
+ if (GetLevel(&input, &level) &&
+ GetInternalKey(&input, &key)) {
+ compact_pointers_.push_back(std::make_pair(level, key));
+ } else {
+ msg = "compaction pointer";
+ }
+ break;
+
+ case kDeletedFile:
+ if (GetLevel(&input, &level) &&
+ GetVarint64(&input, &number)) {
+ deleted_files_.insert(std::make_pair(level, number));
+ } else {
+ msg = "deleted file";
+ }
+ break;
+
+ case kNewFile:
+ if (GetLevel(&input, &level) &&
+ GetVarint64(&input, &f.number) &&
+ GetVarint64(&input, &f.file_size) &&
+ GetInternalKey(&input, &f.smallest) &&
+ GetInternalKey(&input, &f.largest)) {
+ new_files_.push_back(std::make_pair(level, f));
+ } else {
+ msg = "new-file entry";
+ }
+ break;
+
+ default:
+ msg = "unknown tag";
+ break;
+ }
+ }
+
+ if (msg == NULL && !input.empty()) {
+ msg = "invalid tag";
+ }
+
+ Status result;
+ if (msg != NULL) {
+ result = Status::Corruption("VersionEdit", msg);
+ }
+ return result;
+}
+
+std::string VersionEdit::DebugString() const {
+ std::string r;
+ r.append("VersionEdit {");
+ if (has_comparator_) {
+ r.append("\n Comparator: ");
+ r.append(comparator_);
+ }
+ if (has_log_number_) {
+ r.append("\n LogNumber: ");
+ AppendNumberTo(&r, log_number_);
+ }
+ if (has_prev_log_number_) {
+ r.append("\n PrevLogNumber: ");
+ AppendNumberTo(&r, prev_log_number_);
+ }
+ if (has_next_file_number_) {
+ r.append("\n NextFile: ");
+ AppendNumberTo(&r, next_file_number_);
+ }
+ if (has_last_sequence_) {
+ r.append("\n LastSeq: ");
+ AppendNumberTo(&r, last_sequence_);
+ }
+ for (size_t i = 0; i < compact_pointers_.size(); i++) {
+ r.append("\n CompactPointer: ");
+ AppendNumberTo(&r, compact_pointers_[i].first);
+ r.append(" ");
+ r.append(compact_pointers_[i].second.DebugString());
+ }
+ for (DeletedFileSet::const_iterator iter = deleted_files_.begin();
+ iter != deleted_files_.end();
+ ++iter) {
+ r.append("\n DeleteFile: ");
+ AppendNumberTo(&r, iter->first);
+ r.append(" ");
+ AppendNumberTo(&r, iter->second);
+ }
+ for (size_t i = 0; i < new_files_.size(); i++) {
+ const FileMetaData& f = new_files_[i].second;
+ r.append("\n AddFile: ");
+ AppendNumberTo(&r, new_files_[i].first);
+ r.append(" ");
+ AppendNumberTo(&r, f.number);
+ r.append(" ");
+ AppendNumberTo(&r, f.file_size);
+ r.append(" ");
+ r.append(f.smallest.DebugString());
+ r.append(" .. ");
+ r.append(f.largest.DebugString());
+ }
+ r.append("\n}\n");
+ return r;
+}
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/db/version_edit.h b/clipper/HyperLevelDB/db/version_edit.h
new file mode 100644
index 0000000..eaef77b
--- /dev/null
+++ b/clipper/HyperLevelDB/db/version_edit.h
@@ -0,0 +1,107 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#ifndef STORAGE_LEVELDB_DB_VERSION_EDIT_H_
+#define STORAGE_LEVELDB_DB_VERSION_EDIT_H_
+
+#include <set>
+#include <utility>
+#include <vector>
+#include "db/dbformat.h"
+
+namespace leveldb {
+
+class VersionSet;
+
+struct FileMetaData {
+ int refs;
+ int allowed_seeks; // Seeks allowed until compaction
+ uint64_t number;
+ uint64_t file_size; // File size in bytes
+ InternalKey smallest; // Smallest internal key served by table
+ InternalKey largest; // Largest internal key served by table
+
+ FileMetaData() : refs(0), allowed_seeks(1 << 30), file_size(0) { }
+};
+
+class VersionEdit {
+ public:
+ VersionEdit() { Clear(); }
+ ~VersionEdit() { }
+
+ void Clear();
+
+ void SetComparatorName(const Slice& name) {
+ has_comparator_ = true;
+ comparator_ = name.ToString();
+ }
+ void SetLogNumber(uint64_t num) {
+ has_log_number_ = true;
+ log_number_ = num;
+ }
+ void SetPrevLogNumber(uint64_t num) {
+ has_prev_log_number_ = true;
+ prev_log_number_ = num;
+ }
+ void SetNextFile(uint64_t num) {
+ has_next_file_number_ = true;
+ next_file_number_ = num;
+ }
+ void SetLastSequence(SequenceNumber seq) {
+ has_last_sequence_ = true;
+ last_sequence_ = seq;
+ }
+ void SetCompactPointer(int level, const InternalKey& key) {
+ compact_pointers_.push_back(std::make_pair(level, key));
+ }
+
+ // Add the specified file at the specified number.
+ // REQUIRES: This version has not been saved (see VersionSet::SaveTo)
+ // REQUIRES: "smallest" and "largest" are smallest and largest keys in file
+ void AddFile(int level, uint64_t file,
+ uint64_t file_size,
+ const InternalKey& smallest,
+ const InternalKey& largest) {
+ FileMetaData f;
+ f.number = file;
+ f.file_size = file_size;
+ f.smallest = smallest;
+ f.largest = largest;
+ new_files_.push_back(std::make_pair(level, f));
+ }
+
+ // Delete the specified "file" from the specified "level".
+ void DeleteFile(int level, uint64_t file) {
+ deleted_files_.insert(std::make_pair(level, file));
+ }
+
+ void EncodeTo(std::string* dst) const;
+ Status DecodeFrom(const Slice& src);
+
+ std::string DebugString() const;
+
+ private:
+ friend class VersionSet;
+
+ typedef std::set< std::pair<int, uint64_t> > DeletedFileSet;
+
+ std::string comparator_;
+ uint64_t log_number_;
+ uint64_t prev_log_number_;
+ uint64_t next_file_number_;
+ SequenceNumber last_sequence_;
+ bool has_comparator_;
+ bool has_log_number_;
+ bool has_prev_log_number_;
+ bool has_next_file_number_;
+ bool has_last_sequence_;
+
+ std::vector< std::pair<int, InternalKey> > compact_pointers_;
+ DeletedFileSet deleted_files_;
+ std::vector< std::pair<int, FileMetaData> > new_files_;
+};
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_DB_VERSION_EDIT_H_
diff --git a/clipper/HyperLevelDB/db/version_edit_test.cc b/clipper/HyperLevelDB/db/version_edit_test.cc
new file mode 100644
index 0000000..280310b
--- /dev/null
+++ b/clipper/HyperLevelDB/db/version_edit_test.cc
@@ -0,0 +1,46 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "db/version_edit.h"
+#include "util/testharness.h"
+
+namespace leveldb {
+
+static void TestEncodeDecode(const VersionEdit& edit) {
+ std::string encoded, encoded2;
+ edit.EncodeTo(&encoded);
+ VersionEdit parsed;
+ Status s = parsed.DecodeFrom(encoded);
+ ASSERT_TRUE(s.ok()) << s.ToString();
+ parsed.EncodeTo(&encoded2);
+ ASSERT_EQ(encoded, encoded2);
+}
+
+class VersionEditTest { };
+
+TEST(VersionEditTest, EncodeDecode) {
+ static const uint64_t kBig = 1ull << 50;
+
+ VersionEdit edit;
+ for (int i = 0; i < 4; i++) {
+ TestEncodeDecode(edit);
+ edit.AddFile(3, kBig + 300 + i, kBig + 400 + i,
+ InternalKey("foo", kBig + 500 + i, kTypeValue),
+ InternalKey("zoo", kBig + 600 + i, kTypeDeletion));
+ edit.DeleteFile(4, kBig + 700 + i);
+ edit.SetCompactPointer(i, InternalKey("x", kBig + 900 + i, kTypeValue));
+ }
+
+ edit.SetComparatorName("foo");
+ edit.SetLogNumber(kBig + 100);
+ edit.SetNextFile(kBig + 200);
+ edit.SetLastSequence(kBig + 1000);
+ TestEncodeDecode(edit);
+}
+
+} // namespace leveldb
+
+int main(int argc, char** argv) {
+ return leveldb::test::RunAllTests();
+}
diff --git a/clipper/HyperLevelDB/db/version_set.cc b/clipper/HyperLevelDB/db/version_set.cc
new file mode 100644
index 0000000..2a17a9e
--- /dev/null
+++ b/clipper/HyperLevelDB/db/version_set.cc
@@ -0,0 +1,1584 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "db/version_set.h"
+
+#include <algorithm>
+#include <stdio.h>
+#include "db/dbformat.h"
+#include "db/filename.h"
+#include "db/log_reader.h"
+#include "db/log_writer.h"
+#include "db/memtable.h"
+#include "db/table_cache.h"
+#include "hyperleveldb/env.h"
+#include "hyperleveldb/table_builder.h"
+#include "table/merger.h"
+#include "table/two_level_iterator.h"
+#include "util/coding.h"
+#include "util/logging.h"
+
+namespace leveldb {
+
+static double MaxBytesForLevel(int level) {
+ assert(level < leveldb::config::kNumLevels);
+ static const double bytes[] = {10 * 1048576.0,
+ 100 * 1048576.0,
+ 100 * 1048576.0,
+ 1000 * 1048576.0,
+ 10000 * 1048576.0,
+ 100000 * 1048576.0,
+ 1000000 * 1048576.0};
+ return bytes[level];
+}
+
+static uint64_t MaxFileSizeForLevel(int level) {
+ assert(level < leveldb::config::kNumLevels);
+ static const uint64_t bytes[] = {8 * 1048576,
+ 8 * 1048576,
+ 8 * 1048576,
+ 8 * 1048576,
+ 8 * 1048576,
+ 8 * 1048576,
+ 8 * 1048576};
+ return bytes[level];
+}
+
+static uint64_t MaxCompactionBytesForLevel(int level) {
+ assert(level < leveldb::config::kNumLevels);
+ static const uint64_t bytes[] = {128 * 1048576,
+ 128 * 1048576,
+ 128 * 1048576,
+ 256 * 1048576,
+ 256 * 1048576,
+ 256 * 1048576,
+ 256 * 1048576};
+ return bytes[level];
+}
+
+static int64_t TotalFileSize(const std::vector<FileMetaData*>& files) {
+ int64_t sum = 0;
+ for (size_t i = 0; i < files.size(); i++) {
+ sum += files[i]->file_size;
+ }
+ return sum;
+}
+
+Version::~Version() {
+ assert(refs_ == 0);
+
+ // Remove from linked list
+ prev_->next_ = next_;
+ next_->prev_ = prev_;
+
+ // Drop references to files
+ for (int level = 0; level < config::kNumLevels; level++) {
+ for (size_t i = 0; i < files_[level].size(); i++) {
+ FileMetaData* f = files_[level][i];
+ assert(f->refs > 0);
+ f->refs--;
+ if (f->refs <= 0) {
+ delete f;
+ }
+ }
+ }
+}
+
+int FindFile(const InternalKeyComparator& icmp,
+ const std::vector<FileMetaData*>& files,
+ const Slice& key) {
+ uint32_t left = 0;
+ uint32_t right = files.size();
+ while (left < right) {
+ uint32_t mid = (left + right) / 2;
+ const FileMetaData* f = files[mid];
+ if (icmp.InternalKeyComparator::Compare(f->largest.Encode(), key) < 0) {
+ // Key at "mid.largest" is < "target". Therefore all
+ // files at or before "mid" are uninteresting.
+ left = mid + 1;
+ } else {
+ // Key at "mid.largest" is >= "target". Therefore all files
+ // after "mid" are uninteresting.
+ right = mid;
+ }
+ }
+ return right;
+}
+
+static bool AfterFile(const Comparator* ucmp,
+ const Slice* user_key, const FileMetaData* f) {
+ // NULL user_key occurs before all keys and is therefore never after *f
+ return (user_key != NULL &&
+ ucmp->Compare(*user_key, f->largest.user_key()) > 0);
+}
+
+static bool BeforeFile(const Comparator* ucmp,
+ const Slice* user_key, const FileMetaData* f) {
+ // NULL user_key occurs after all keys and is therefore never before *f
+ return (user_key != NULL &&
+ ucmp->Compare(*user_key, f->smallest.user_key()) < 0);
+}
+
+bool SomeFileOverlapsRange(
+ const InternalKeyComparator& icmp,
+ bool disjoint_sorted_files,
+ const std::vector<FileMetaData*>& files,
+ const Slice* smallest_user_key,
+ const Slice* largest_user_key) {
+ const Comparator* ucmp = icmp.user_comparator();
+ if (!disjoint_sorted_files) {
+ // Need to check against all files
+ for (size_t i = 0; i < files.size(); i++) {
+ const FileMetaData* f = files[i];
+ if (AfterFile(ucmp, smallest_user_key, f) ||
+ BeforeFile(ucmp, largest_user_key, f)) {
+ // No overlap
+ } else {
+ return true; // Overlap
+ }
+ }
+ return false;
+ }
+
+ // Binary search over file list
+ uint32_t index = 0;
+ if (smallest_user_key != NULL) {
+ // Find the earliest possible internal key for smallest_user_key
+ InternalKey small(*smallest_user_key, kMaxSequenceNumber,kValueTypeForSeek);
+ index = FindFile(icmp, files, small.Encode());
+ }
+
+ if (index >= files.size()) {
+ // beginning of range is after all files, so no overlap.
+ return false;
+ }
+
+ return !BeforeFile(ucmp, largest_user_key, files[index]);
+}
+
+// An internal iterator. For a given version/level pair, yields
+// information about the files in the level. For a given entry, key()
+// is the largest key that occurs in the file, and value() is an
+// 16-byte value containing the file number and file size, both
+// encoded using EncodeFixed64.
+//
+// If num != 0, then do not call SeekToLast, Prev
+class Version::LevelFileNumIterator : public Iterator {
+ public:
+ LevelFileNumIterator(const InternalKeyComparator& icmp,
+ const std::vector<FileMetaData*>* flist,
+ uint64_t num)
+ : icmp_(icmp),
+ flist_(flist),
+ index_(flist->size()), // Marks as invalid
+ number_(num) {
+ }
+ virtual bool Valid() const {
+ return index_ < flist_->size();
+ }
+ virtual void Seek(const Slice& target) {
+ index_ = FindFile(icmp_, *flist_, target);
+ Bump();
+ }
+ virtual void SeekToFirst() {
+ index_ = 0;
+ Bump();
+ }
+ virtual void SeekToLast() {
+ index_ = flist_->empty() ? 0 : flist_->size() - 1;
+ Bump();
+ }
+ virtual void Next() {
+ assert(Valid());
+ index_++;
+ Bump();
+ }
+ virtual void Prev() {
+ assert(Valid());
+ assert(number_ == 0);
+ if (index_ == 0) {
+ index_ = flist_->size(); // Marks as invalid
+ } else {
+ index_--;
+ }
+ }
+ Slice key() const {
+ assert(Valid());
+ return (*flist_)[index_]->largest.Encode();
+ }
+ Slice value() const {
+ assert(Valid());
+ EncodeFixed64(value_buf_, (*flist_)[index_]->number);
+ EncodeFixed64(value_buf_+8, (*flist_)[index_]->file_size);
+ return Slice(value_buf_, sizeof(value_buf_));
+ }
+ virtual Status status() const { return Status::OK(); }
+ private:
+ void Bump() {
+ while (index_ < flist_->size() &&
+ (*flist_)[index_]->number < number_) {
+ ++index_;
+ }
+ }
+ const InternalKeyComparator icmp_;
+ const std::vector<FileMetaData*>* const flist_;
+ uint32_t index_;
+ uint64_t number_;
+
+ // Backing store for value(). Holds the file number and size.
+ mutable char value_buf_[16];
+};
+
+static Iterator* GetFileIterator(void* arg,
+ const ReadOptions& options,
+ const Slice& file_value) {
+ TableCache* cache = reinterpret_cast<TableCache*>(arg);
+ if (file_value.size() != 16) {
+ return NewErrorIterator(
+ Status::Corruption("FileReader invoked with unexpected value"));
+ } else {
+ return cache->NewIterator(options,
+ DecodeFixed64(file_value.data()),
+ DecodeFixed64(file_value.data() + 8));
+ }
+}
+
+Iterator* Version::NewConcatenatingIterator(const ReadOptions& options,
+ int level, uint64_t num) const {
+ return NewTwoLevelIterator(
+ new LevelFileNumIterator(vset_->icmp_, &files_[level], num),
+ &GetFileIterator, vset_->table_cache_, options);
+}
+
+void Version::AddIterators(const ReadOptions& options,
+ std::vector<Iterator*>* iters) {
+ return AddSomeIterators(options, 0, iters);
+}
+
+void Version::AddSomeIterators(const ReadOptions& options, uint64_t num,
+ std::vector<Iterator*>* iters) {
+ // Merge all level zero files together since they may overlap
+ for (size_t i = 0; i < files_[0].size(); i++) {
+ iters->push_back(
+ vset_->table_cache_->NewIterator(
+ options, files_[0][i]->number, files_[0][i]->file_size));
+ }
+
+ // For levels > 0, we can use a concatenating iterator that sequentially
+ // walks through the non-overlapping files in the level, opening them
+ // lazily.
+ for (int level = 1; level < config::kNumLevels; level++) {
+ if (!files_[level].empty()) {
+ iters->push_back(NewConcatenatingIterator(options, level, num));
+ }
+ }
+}
+
+// Callback from TableCache::Get()
+namespace {
+enum SaverState {
+ kNotFound,
+ kFound,
+ kDeleted,
+ kCorrupt,
+};
+struct Saver {
+ SaverState state;
+ const Comparator* ucmp;
+ Slice user_key;
+ std::string* value;
+};
+}
+static void SaveValue(void* arg, const Slice& ikey, const Slice& v) {
+ Saver* s = reinterpret_cast<Saver*>(arg);
+ ParsedInternalKey parsed_key;
+ if (!ParseInternalKey(ikey, &parsed_key)) {
+ s->state = kCorrupt;
+ } else {
+ if (s->ucmp->Compare(parsed_key.user_key, s->user_key) == 0) {
+ s->state = (parsed_key.type == kTypeValue) ? kFound : kDeleted;
+ if (s->state == kFound) {
+ s->value->assign(v.data(), v.size());
+ }
+ }
+ }
+}
+
+static bool NewestFirst(FileMetaData* a, FileMetaData* b) {
+ return a->number > b->number;
+}
+
+void Version::ForEachOverlapping(Slice user_key, Slice internal_key,
+ void* arg,
+ bool (*func)(void*, int, FileMetaData*)) {
+ // TODO(sanjay): Change Version::Get() to use this function.
+ const Comparator* ucmp = vset_->icmp_.user_comparator();
+
+ // Search level-0 in order from newest to oldest.
+ std::vector<FileMetaData*> tmp;
+ tmp.reserve(files_[0].size());
+ for (uint32_t i = 0; i < files_[0].size(); i++) {
+ FileMetaData* f = files_[0][i];
+ if (ucmp->Compare(user_key, f->smallest.user_key()) >= 0 &&
+ ucmp->Compare(user_key, f->largest.user_key()) <= 0) {
+ tmp.push_back(f);
+ }
+ }
+ if (!tmp.empty()) {
+ std::sort(tmp.begin(), tmp.end(), NewestFirst);
+ for (uint32_t i = 0; i < tmp.size(); i++) {
+ if (!(*func)(arg, 0, tmp[i])) {
+ return;
+ }
+ }
+ }
+
+ // Search other levels.
+ for (int level = 1; level < config::kNumLevels; level++) {
+ size_t num_files = files_[level].size();
+ if (num_files == 0) continue;
+
+ // Binary search to find earliest index whose largest key >= internal_key.
+ uint32_t index = FindFile(vset_->icmp_, files_[level], internal_key);
+ if (index < num_files) {
+ FileMetaData* f = files_[level][index];
+ if (ucmp->Compare(user_key, f->smallest.user_key()) < 0) {
+ // All of "f" is past any data for user_key
+ } else {
+ if (!(*func)(arg, level, f)) {
+ return;
+ }
+ }
+ }
+ }
+}
+
+Status Version::Get(const ReadOptions& options,
+ const LookupKey& k,
+ std::string* value,
+ GetStats* stats) {
+ Slice ikey = k.internal_key();
+ Slice user_key = k.user_key();
+ const Comparator* ucmp = vset_->icmp_.user_comparator();
+ Status s;
+
+ stats->seek_file = NULL;
+ stats->seek_file_level = -1;
+ FileMetaData* last_file_read = NULL;
+ int last_file_read_level = -1;
+
+ // We can search level-by-level since entries never hop across
+ // levels. Therefore we are guaranteed that if we find data
+ // in an smaller level, later levels are irrelevant.
+ std::vector<FileMetaData*> tmp;
+ FileMetaData* tmp2;
+ for (int level = 0; level < config::kNumLevels; level++) {
+ size_t num_files = files_[level].size();
+ if (num_files == 0) continue;
+
+ // Get the list of files to search in this level
+ FileMetaData* const* files = &files_[level][0];
+ if (level == 0) {
+ // Level-0 files may overlap each other. Find all files that
+ // overlap user_key and process them in order from newest to oldest.
+ tmp.reserve(num_files);
+ for (uint32_t i = 0; i < num_files; i++) {
+ FileMetaData* f = files[i];
+ if (ucmp->Compare(user_key, f->smallest.user_key()) >= 0 &&
+ ucmp->Compare(user_key, f->largest.user_key()) <= 0) {
+ tmp.push_back(f);
+ }
+ }
+ if (tmp.empty()) continue;
+
+ std::sort(tmp.begin(), tmp.end(), NewestFirst);
+ files = &tmp[0];
+ num_files = tmp.size();
+ } else {
+ // Binary search to find earliest index whose largest key >= ikey.
+ uint32_t index = FindFile(vset_->icmp_, files_[level], ikey);
+ if (index >= num_files) {
+ files = NULL;
+ num_files = 0;
+ } else {
+ tmp2 = files[index];
+ if (ucmp->Compare(user_key, tmp2->smallest.user_key()) < 0) {
+ // All of "tmp2" is past any data for user_key
+ files = NULL;
+ num_files = 0;
+ } else {
+ files = &tmp2;
+ num_files = 1;
+ }
+ }
+ }
+
+ for (uint32_t i = 0; i < num_files; ++i) {
+ if (last_file_read != NULL && stats->seek_file == NULL) {
+ // We have had more than one seek for this read. Charge the 1st file.
+ stats->seek_file = last_file_read;
+ stats->seek_file_level = last_file_read_level;
+ }
+
+ FileMetaData* f = files[i];
+ last_file_read = f;
+ last_file_read_level = level;
+
+ Saver saver;
+ saver.state = kNotFound;
+ saver.ucmp = ucmp;
+ saver.user_key = user_key;
+ saver.value = value;
+ s = vset_->table_cache_->Get(options, f->number, f->file_size,
+ ikey, &saver, SaveValue);
+ if (!s.ok()) {
+ return s;
+ }
+ switch (saver.state) {
+ case kNotFound:
+ break; // Keep searching in other files
+ case kFound:
+ return s;
+ case kDeleted:
+ s = Status::NotFound(Slice()); // Use empty error message for speed
+ return s;
+ case kCorrupt:
+ s = Status::Corruption("corrupted key for ", user_key);
+ return s;
+ }
+ }
+ }
+
+ return Status::NotFound(Slice()); // Use an empty error message for speed
+}
+
+bool Version::UpdateStats(const GetStats& stats) {
+ FileMetaData* f = stats.seek_file;
+ if (f != NULL) {
+ f->allowed_seeks--;
+ if (f->allowed_seeks <= 0 && file_to_compact_ == NULL) {
+ file_to_compact_ = f;
+ file_to_compact_level_ = stats.seek_file_level;
+ return true;
+ }
+ }
+ return false;
+}
+
+bool Version::RecordReadSample(Slice internal_key) {
+ ParsedInternalKey ikey;
+ if (!ParseInternalKey(internal_key, &ikey)) {
+ return false;
+ }
+
+ struct State {
+ GetStats stats; // Holds first matching file
+ int matches;
+
+ static bool Match(void* arg, int level, FileMetaData* f) {
+ State* state = reinterpret_cast<State*>(arg);
+ state->matches++;
+ if (state->matches == 1) {
+ // Remember first match.
+ state->stats.seek_file = f;
+ state->stats.seek_file_level = level;
+ }
+ // We can stop iterating once we have a second match.
+ return state->matches < 2;
+ }
+ };
+
+ State state;
+ state.matches = 0;
+ ForEachOverlapping(ikey.user_key, internal_key, &state, &State::Match);
+
+ // Must have at least two matches since we want to merge across
+ // files. But what if we have a single file that contains many
+ // overwrites and deletions? Should we have another mechanism for
+ // finding such files?
+ if (state.matches >= 2) {
+ // 1MB cost is about 1 seek (see comment in Builder::Apply).
+ return UpdateStats(state.stats);
+ }
+ return false;
+}
+
+void Version::Ref() {
+ ++refs_;
+}
+
+void Version::Unref() {
+ assert(this != &vset_->dummy_versions_);
+ assert(refs_ >= 1);
+ --refs_;
+ if (refs_ == 0) {
+ delete this;
+ }
+}
+
+bool Version::OverlapInLevel(int level,
+ const Slice* smallest_user_key,
+ const Slice* largest_user_key) {
+ return SomeFileOverlapsRange(vset_->icmp_, (level > 0), files_[level],
+ smallest_user_key, largest_user_key);
+}
+
+int Version::PickLevelForMemTableOutput(
+ const Slice& smallest_user_key,
+ const Slice& largest_user_key) {
+ int level = 0;
+ if (!OverlapInLevel(0, &smallest_user_key, &largest_user_key)) {
+ // Push to next level if there is no overlap in next level,
+ // and the #bytes overlapping in the level after that are limited.
+ InternalKey start(smallest_user_key, kMaxSequenceNumber, kValueTypeForSeek);
+ InternalKey limit(largest_user_key, 0, static_cast<ValueType>(0));
+ std::vector<FileMetaData*> overlaps;
+ while (level < config::kMaxMemCompactLevel) {
+ if (OverlapInLevel(level + 1, &smallest_user_key, &largest_user_key)) {
+ break;
+ }
+ GetOverlappingInputs(level + 2, &start, &limit, &overlaps);
+ level++;
+ }
+ }
+ return level;
+}
+
+// Store in "*inputs" all files in "level" that overlap [begin,end]
+void Version::GetOverlappingInputs(
+ int level,
+ const InternalKey* begin,
+ const InternalKey* end,
+ std::vector<FileMetaData*>* inputs) {
+ assert(level >= 0);
+ assert(level < config::kNumLevels);
+ inputs->clear();
+ Slice user_begin, user_end;
+ if (begin != NULL) {
+ user_begin = begin->user_key();
+ }
+ if (end != NULL) {
+ user_end = end->user_key();
+ }
+ const Comparator* user_cmp = vset_->icmp_.user_comparator();
+ for (size_t i = 0; i < files_[level].size(); ) {
+ FileMetaData* f = files_[level][i++];
+ const Slice file_start = f->smallest.user_key();
+ const Slice file_limit = f->largest.user_key();
+ if (begin != NULL && user_cmp->Compare(file_limit, user_begin) < 0) {
+ // "f" is completely before specified range; skip it
+ } else if (end != NULL && user_cmp->Compare(file_start, user_end) > 0) {
+ // "f" is completely after specified range; skip it
+ } else {
+ inputs->push_back(f);
+ if (level == 0) {
+ // Level-0 files may overlap each other. So check if the newly
+ // added file has expanded the range. If so, restart search.
+ if (begin != NULL && user_cmp->Compare(file_start, user_begin) < 0) {
+ user_begin = file_start;
+ inputs->clear();
+ i = 0;
+ } else if (end != NULL && user_cmp->Compare(file_limit, user_end) > 0) {
+ user_end = file_limit;
+ inputs->clear();
+ i = 0;
+ }
+ }
+ }
+ }
+}
+
+std::string Version::DebugString() const {
+ std::string r;
+ for (int level = 0; level < config::kNumLevels; level++) {
+ // E.g.,
+ // --- level 1 ---
+ // 17:123['a' .. 'd']
+ // 20:43['e' .. 'g']
+ r.append("--- level ");
+ AppendNumberTo(&r, level);
+ r.append(" ---\n");
+ const std::vector<FileMetaData*>& files = files_[level];
+ for (size_t i = 0; i < files.size(); i++) {
+ r.push_back(' ');
+ AppendNumberTo(&r, files[i]->number);
+ r.push_back(':');
+ AppendNumberTo(&r, files[i]->file_size);
+ r.append("[");
+ r.append(files[i]->smallest.DebugString());
+ r.append(" .. ");
+ r.append(files[i]->largest.DebugString());
+ r.append("]\n");
+ }
+ }
+ return r;
+}
+
+// A helper class so we can efficiently apply a whole sequence
+// of edits to a particular state without creating intermediate
+// Versions that contain full copies of the intermediate state.
+class VersionSet::Builder {
+ private:
+ // Helper to sort by v->files_[file_number].smallest
+ struct BySmallestKey {
+ const InternalKeyComparator* internal_comparator;
+
+ bool operator()(FileMetaData* f1, FileMetaData* f2) const {
+ int r = internal_comparator->Compare(f1->smallest, f2->smallest);
+ if (r != 0) {
+ return (r < 0);
+ } else {
+ // Break ties by file number
+ return (f1->number < f2->number);
+ }
+ }
+ };
+
+ typedef std::set<FileMetaData*, BySmallestKey> FileSet;
+ struct LevelState {
+ std::set<uint64_t> deleted_files;
+ FileSet* added_files;
+ };
+
+ VersionSet* vset_;
+ Version* base_;
+ LevelState levels_[config::kNumLevels];
+
+ public:
+ // Initialize a builder with the files from *base and other info from *vset
+ Builder(VersionSet* vset, Version* base)
+ : vset_(vset),
+ base_(base) {
+ base_->Ref();
+ BySmallestKey cmp;
+ cmp.internal_comparator = &vset_->icmp_;
+ for (int level = 0; level < config::kNumLevels; level++) {
+ levels_[level].added_files = new FileSet(cmp);
+ }
+ }
+
+ ~Builder() {
+ for (int level = 0; level < config::kNumLevels; level++) {
+ const FileSet* added = levels_[level].added_files;
+ std::vector<FileMetaData*> to_unref;
+ to_unref.reserve(added->size());
+ for (FileSet::const_iterator it = added->begin();
+ it != added->end(); ++it) {
+ to_unref.push_back(*it);
+ }
+ delete added;
+ for (uint32_t i = 0; i < to_unref.size(); i++) {
+ FileMetaData* f = to_unref[i];
+ f->refs--;
+ if (f->refs <= 0) {
+ delete f;
+ }
+ }
+ }
+ base_->Unref();
+ }
+
+ // Apply all of the edits in *edit to the current state.
+ void Apply(VersionEdit* edit) {
+ // Update compaction pointers
+ for (size_t i = 0; i < edit->compact_pointers_.size(); i++) {
+ const int level = edit->compact_pointers_[i].first;
+ vset_->compact_pointer_[level] =
+ edit->compact_pointers_[i].second.Encode().ToString();
+ }
+
+ // Delete files
+ const VersionEdit::DeletedFileSet& del = edit->deleted_files_;
+ for (VersionEdit::DeletedFileSet::const_iterator iter = del.begin();
+ iter != del.end();
+ ++iter) {
+ const int level = iter->first;
+ const uint64_t number = iter->second;
+ levels_[level].deleted_files.insert(number);
+ }
+
+ // Add new files
+ for (size_t i = 0; i < edit->new_files_.size(); i++) {
+ const int level = edit->new_files_[i].first;
+ FileMetaData* f = new FileMetaData(edit->new_files_[i].second);
+ f->refs = 1;
+
+ // We arrange to automatically compact this file after
+ // a certain number of seeks. Let's assume:
+ // (1) One seek costs 10ms
+ // (2) Writing or reading 1MB costs 10ms (100MB/s)
+ // (3) A compaction of 1MB does 25MB of IO:
+ // 1MB read from this level
+ // 10-12MB read from next level (boundaries may be misaligned)
+ // 10-12MB written to next level
+ // This implies that 25 seeks cost the same as the compaction
+ // of 1MB of data. I.e., one seek costs approximately the
+ // same as the compaction of 40KB of data. We are a little
+ // conservative and allow approximately one seek for every 16KB
+ // of data before triggering a compaction.
+ f->allowed_seeks = (f->file_size / 16384);
+ if (f->allowed_seeks < 100) f->allowed_seeks = 100;
+
+ levels_[level].deleted_files.erase(f->number);
+ levels_[level].added_files->insert(f);
+ }
+ }
+
+ // Save the current state in *v.
+ void SaveTo(Version* v) {
+ BySmallestKey cmp;
+ cmp.internal_comparator = &vset_->icmp_;
+ for (int level = 0; level < config::kNumLevels; level++) {
+ // Merge the set of added files with the set of pre-existing files.
+ // Drop any deleted files. Store the result in *v.
+ const std::vector<FileMetaData*>& base_files = base_->files_[level];
+ std::vector<FileMetaData*>::const_iterator base_iter = base_files.begin();
+ std::vector<FileMetaData*>::const_iterator base_end = base_files.end();
+ const FileSet* added = levels_[level].added_files;
+ v->files_[level].reserve(base_files.size() + added->size());
+ for (FileSet::const_iterator added_iter = added->begin();
+ added_iter != added->end();
+ ++added_iter) {
+ // Add all smaller files listed in base_
+ for (std::vector<FileMetaData*>::const_iterator bpos
+ = std::upper_bound(base_iter, base_end, *added_iter, cmp);
+ base_iter != bpos;
+ ++base_iter) {
+ MaybeAddFile(v, level, *base_iter);
+ }
+
+ MaybeAddFile(v, level, *added_iter);
+ }
+
+ // Add remaining base files
+ for (; base_iter != base_end; ++base_iter) {
+ MaybeAddFile(v, level, *base_iter);
+ }
+
+#ifndef NDEBUG
+ // Make sure there is no overlap in levels > 0
+ if (level > 0) {
+ for (uint32_t i = 1; i < v->files_[level].size(); i++) {
+ const InternalKey& prev_end = v->files_[level][i-1]->largest;
+ const InternalKey& this_begin = v->files_[level][i]->smallest;
+ if (vset_->icmp_.Compare(prev_end, this_begin) >= 0) {
+ fprintf(stderr, "overlapping ranges in same level %s vs. %s\n",
+ prev_end.DebugString().c_str(),
+ this_begin.DebugString().c_str());
+ abort();
+ }
+ }
+ }
+#endif
+ }
+ }
+
+ void MaybeAddFile(Version* v, int level, FileMetaData* f) {
+ if (levels_[level].deleted_files.count(f->number) > 0) {
+ // File is deleted: do nothing
+ } else {
+ std::vector<FileMetaData*>* files = &v->files_[level];
+ if (level > 0 && !files->empty()) {
+ // Must not overlap
+ assert(vset_->icmp_.Compare((*files)[files->size()-1]->largest,
+ f->smallest) < 0);
+ }
+ f->refs++;
+ files->push_back(f);
+ }
+ }
+};
+
+VersionSet::VersionSet(const std::string& dbname,
+ const Options* options,
+ TableCache* table_cache,
+ const InternalKeyComparator* cmp)
+ : env_(options->env),
+ dbname_(dbname),
+ options_(options),
+ table_cache_(table_cache),
+ icmp_(*cmp),
+ next_file_number_(2),
+ manifest_file_number_(0), // Filled by Recover()
+ last_sequence_(0),
+ log_number_(0),
+ prev_log_number_(0),
+ descriptor_file_(NULL),
+ descriptor_log_(NULL),
+ dummy_versions_(this),
+ current_(NULL) {
+ AppendVersion(new Version(this));
+}
+
+VersionSet::~VersionSet() {
+ current_->Unref();
+ assert(dummy_versions_.next_ == &dummy_versions_); // List must be empty
+ delete descriptor_log_;
+ delete descriptor_file_;
+}
+
+void VersionSet::AppendVersion(Version* v) {
+ // Make "v" current
+ assert(v->refs_ == 0);
+ assert(v != current_);
+ if (current_ != NULL) {
+ current_->Unref();
+ }
+ current_ = v;
+ v->Ref();
+
+ // Append to linked list
+ v->prev_ = dummy_versions_.prev_;
+ v->next_ = &dummy_versions_;
+ v->prev_->next_ = v;
+ v->next_->prev_ = v;
+}
+
+Status VersionSet::LogAndApply(VersionEdit* edit, port::Mutex* mu, port::CondVar* cv, bool* wt) {
+ while (*wt) {
+ cv->Wait();
+ }
+ *wt = true;
+ if (edit->has_log_number_) {
+ assert(edit->log_number_ >= log_number_);
+ assert(edit->log_number_ < next_file_number_);
+ } else {
+ edit->SetLogNumber(log_number_);
+ }
+
+ if (!edit->has_prev_log_number_) {
+ edit->SetPrevLogNumber(prev_log_number_);
+ }
+
+ edit->SetNextFile(next_file_number_);
+ edit->SetLastSequence(last_sequence_);
+
+ Version* v = new Version(this);
+ {
+ Builder builder(this, current_);
+ builder.Apply(edit);
+ builder.SaveTo(v);
+ }
+ Finalize(v);
+
+ // Initialize new descriptor log file if necessary by creating
+ // a temporary file that contains a snapshot of the current version.
+ std::string new_manifest_file;
+ Status s;
+ if (descriptor_log_ == NULL) {
+ // No reason to unlock *mu here since we only hit this path in the
+ // first call to LogAndApply (when opening the database).
+ assert(descriptor_file_ == NULL);
+ new_manifest_file = DescriptorFileName(dbname_, manifest_file_number_);
+ edit->SetNextFile(next_file_number_);
+ s = env_->NewWritableFile(new_manifest_file, &descriptor_file_);
+ if (s.ok()) {
+ descriptor_log_ = new log::Writer(descriptor_file_);
+ s = WriteSnapshot(descriptor_log_);
+ }
+ }
+
+ // Unlock during expensive MANIFEST log write
+ {
+ mu->Unlock();
+
+ // Write new record to MANIFEST log
+ if (s.ok()) {
+ std::string record;
+ edit->EncodeTo(&record);
+ s = descriptor_log_->AddRecord(record);
+ if (s.ok()) {
+ // XXX Unlock during expensive MANIFEST log write
+ s = descriptor_file_->Sync();
+ }
+ if (!s.ok()) {
+ Log(options_->info_log, "MANIFEST write: %s\n", s.ToString().c_str());
+ }
+ }
+
+ // If we just created a new descriptor file, install it by writing a
+ // new CURRENT file that points to it.
+ if (s.ok() && !new_manifest_file.empty()) {
+ s = SetCurrentFile(env_, dbname_, manifest_file_number_);
+ }
+
+ mu->Lock();
+ }
+
+ // Install the new version
+ if (s.ok()) {
+ AppendVersion(v);
+ log_number_ = edit->log_number_;
+ prev_log_number_ = edit->prev_log_number_;
+ } else {
+ delete v;
+ if (!new_manifest_file.empty()) {
+ delete descriptor_log_;
+ delete descriptor_file_;
+ descriptor_log_ = NULL;
+ descriptor_file_ = NULL;
+ env_->DeleteFile(new_manifest_file);
+ }
+ }
+
+ *wt = false;
+ cv->Signal();
+ return s;
+}
+
+Status VersionSet::Recover() {
+ struct LogReporter : public log::Reader::Reporter {
+ Status* status;
+ virtual void Corruption(size_t bytes, const Status& s) {
+ if (this->status->ok()) *this->status = s;
+ }
+ };
+
+ // Read "CURRENT" file, which contains a pointer to the current manifest file
+ std::string current;
+ Status s = ReadFileToString(env_, CurrentFileName(dbname_), ¤t);
+ if (!s.ok()) {
+ return s;
+ }
+ if (current.empty() || current[current.size()-1] != '\n') {
+ return Status::Corruption("CURRENT file does not end with newline");
+ }
+ current.resize(current.size() - 1);
+
+ std::string dscname = dbname_ + "/" + current;
+ SequentialFile* file;
+ s = env_->NewSequentialFile(dscname, &file);
+ if (!s.ok()) {
+ return s;
+ }
+
+ bool have_log_number = false;
+ bool have_prev_log_number = false;
+ bool have_next_file = false;
+ bool have_last_sequence = false;
+ uint64_t next_file = 0;
+ uint64_t last_sequence = 0;
+ uint64_t log_number = 0;
+ uint64_t prev_log_number = 0;
+ Builder builder(this, current_);
+
+ {
+ LogReporter reporter;
+ reporter.status = &s;
+ log::Reader reader(file, &reporter, true/*checksum*/, 0/*initial_offset*/);
+ Slice record;
+ std::string scratch;
+ while (reader.ReadRecord(&record, &scratch) && s.ok()) {
+ VersionEdit edit;
+ s = edit.DecodeFrom(record);
+ if (s.ok()) {
+ if (edit.has_comparator_ &&
+ edit.comparator_ != icmp_.user_comparator()->Name()) {
+ s = Status::InvalidArgument(
+ edit.comparator_ + " does not match existing comparator ",
+ icmp_.user_comparator()->Name());
+ }
+ }
+
+ if (s.ok()) {
+ builder.Apply(&edit);
+ }
+
+ if (edit.has_log_number_) {
+ log_number = edit.log_number_;
+ have_log_number = true;
+ }
+
+ if (edit.has_prev_log_number_) {
+ prev_log_number = edit.prev_log_number_;
+ have_prev_log_number = true;
+ }
+
+ if (edit.has_next_file_number_) {
+ next_file = edit.next_file_number_;
+ have_next_file = true;
+ }
+
+ if (edit.has_last_sequence_) {
+ last_sequence = edit.last_sequence_;
+ have_last_sequence = true;
+ }
+ }
+ }
+ delete file;
+ file = NULL;
+
+ if (s.ok()) {
+ if (!have_next_file) {
+ s = Status::Corruption("no meta-nextfile entry in descriptor");
+ } else if (!have_log_number) {
+ s = Status::Corruption("no meta-lognumber entry in descriptor");
+ } else if (!have_last_sequence) {
+ s = Status::Corruption("no last-sequence-number entry in descriptor");
+ }
+
+ if (!have_prev_log_number) {
+ prev_log_number = 0;
+ }
+
+ MarkFileNumberUsed(prev_log_number);
+ MarkFileNumberUsed(log_number);
+ }
+
+ if (s.ok()) {
+ Version* v = new Version(this);
+ builder.SaveTo(v);
+ // Install recovered version
+ Finalize(v);
+ AppendVersion(v);
+ manifest_file_number_ = next_file;
+ next_file_number_ = next_file + 1;
+ last_sequence_ = last_sequence;
+ log_number_ = log_number;
+ prev_log_number_ = prev_log_number;
+ }
+
+ return s;
+}
+
+void VersionSet::MarkFileNumberUsed(uint64_t number) {
+ if (next_file_number_ <= number) {
+ next_file_number_ = number + 1;
+ }
+}
+
+void VersionSet::Finalize(Version* v) {
+ // Compute the ratio of disk usage to its limit
+ for (int level = 0; level + 1 < config::kNumLevels; ++level) {
+ double score;
+ if (level == 0) {
+ // We treat level-0 specially by bounding the number of files
+ // instead of number of bytes for two reasons:
+ //
+ // (1) With larger write-buffer sizes, it is nice not to do too
+ // many level-0 compactions.
+ //
+ // (2) The files in level-0 are merged on every read and
+ // therefore we wish to avoid too many files when the individual
+ // file size is small (perhaps because of a small write-buffer
+ // setting, or very high compression ratios, or lots of
+ // overwrites/deletions).
+ score = v->files_[level].size() /
+ static_cast<double>(config::kL0_CompactionTrigger);
+ } else {
+ // Compute the ratio of current size to size limit.
+ const uint64_t level_bytes = TotalFileSize(v->files_[level]);
+ score = static_cast<double>(level_bytes) / MaxBytesForLevel(level);
+ }
+ v->compaction_scores_[level] = score;
+ }
+}
+
+Status VersionSet::WriteSnapshot(log::Writer* log) {
+ // TODO: Break up into multiple records to reduce memory usage on recovery?
+
+ // Save metadata
+ VersionEdit edit;
+ edit.SetComparatorName(icmp_.user_comparator()->Name());
+
+ // Save compaction pointers
+ for (int level = 0; level < config::kNumLevels; level++) {
+ if (!compact_pointer_[level].empty()) {
+ InternalKey key;
+ key.DecodeFrom(compact_pointer_[level]);
+ edit.SetCompactPointer(level, key);
+ }
+ }
+
+ // Save files
+ for (int level = 0; level < config::kNumLevels; level++) {
+ const std::vector<FileMetaData*>& files = current_->files_[level];
+ for (size_t i = 0; i < files.size(); i++) {
+ const FileMetaData* f = files[i];
+ edit.AddFile(level, f->number, f->file_size, f->smallest, f->largest);
+ }
+ }
+
+ std::string record;
+ edit.EncodeTo(&record);
+ return log->AddRecord(record);
+}
+
+int VersionSet::NumLevelFiles(int level) const {
+ assert(level >= 0);
+ assert(level < config::kNumLevels);
+ return current_->files_[level].size();
+}
+
+const char* VersionSet::LevelSummary(LevelSummaryStorage* scratch) const {
+ // Update code if kNumLevels changes
+ assert(config::kNumLevels == 7);
+ snprintf(scratch->buffer, sizeof(scratch->buffer),
+ "files[ %d %d %d %d %d %d %d ]",
+ int(current_->files_[0].size()),
+ int(current_->files_[1].size()),
+ int(current_->files_[2].size()),
+ int(current_->files_[3].size()),
+ int(current_->files_[4].size()),
+ int(current_->files_[5].size()),
+ int(current_->files_[6].size()));
+ return scratch->buffer;
+}
+
+uint64_t VersionSet::ApproximateOffsetOf(Version* v, const InternalKey& ikey) {
+ uint64_t result = 0;
+ for (int level = 0; level < config::kNumLevels; level++) {
+ const std::vector<FileMetaData*>& files = v->files_[level];
+ for (size_t i = 0; i < files.size(); i++) {
+ if (icmp_.Compare(files[i]->largest, ikey) <= 0) {
+ // Entire file is before "ikey", so just add the file size
+ result += files[i]->file_size;
+ } else if (icmp_.Compare(files[i]->smallest, ikey) > 0) {
+ // Entire file is after "ikey", so ignore
+ if (level > 0) {
+ // Files other than level 0 are sorted by meta->smallest, so
+ // no further files in this level will contain data for
+ // "ikey".
+ break;
+ }
+ } else {
+ // "ikey" falls in the range for this table. Add the
+ // approximate offset of "ikey" within the table.
+ Table* tableptr;
+ Iterator* iter = table_cache_->NewIterator(
+ ReadOptions(), files[i]->number, files[i]->file_size, &tableptr);
+ if (tableptr != NULL) {
+ result += tableptr->ApproximateOffsetOf(ikey.Encode());
+ }
+ delete iter;
+ }
+ }
+ }
+ return result;
+}
+
+void VersionSet::AddLiveFiles(std::set<uint64_t>* live) {
+ for (Version* v = dummy_versions_.next_;
+ v != &dummy_versions_;
+ v = v->next_) {
+ for (int level = 0; level < config::kNumLevels; level++) {
+ const std::vector<FileMetaData*>& files = v->files_[level];
+ for (size_t i = 0; i < files.size(); i++) {
+ live->insert(files[i]->number);
+ }
+ }
+ }
+}
+
+int64_t VersionSet::NumLevelBytes(int level) const {
+ assert(level >= 0);
+ assert(level < config::kNumLevels);
+ return TotalFileSize(current_->files_[level]);
+}
+
+int64_t VersionSet::MaxNextLevelOverlappingBytes() {
+ int64_t result = 0;
+ std::vector<FileMetaData*> overlaps;
+ for (int level = 1; level < config::kNumLevels - 1; level++) {
+ for (size_t i = 0; i < current_->files_[level].size(); i++) {
+ const FileMetaData* f = current_->files_[level][i];
+ current_->GetOverlappingInputs(level+1, &f->smallest, &f->largest,
+ &overlaps);
+ const int64_t sum = TotalFileSize(overlaps);
+ if (sum > result) {
+ result = sum;
+ }
+ }
+ }
+ return result;
+}
+
+// Stores the minimal range that covers all entries in inputs in
+// *smallest, *largest.
+// REQUIRES: inputs is not empty
+void VersionSet::GetRange(const std::vector<FileMetaData*>& inputs,
+ InternalKey* smallest,
+ InternalKey* largest) {
+ assert(!inputs.empty());
+ smallest->Clear();
+ largest->Clear();
+ for (size_t i = 0; i < inputs.size(); i++) {
+ FileMetaData* f = inputs[i];
+ if (i == 0) {
+ *smallest = f->smallest;
+ *largest = f->largest;
+ } else {
+ if (icmp_.Compare(f->smallest, *smallest) < 0) {
+ *smallest = f->smallest;
+ }
+ if (icmp_.Compare(f->largest, *largest) > 0) {
+ *largest = f->largest;
+ }
+ }
+ }
+}
+
+// Stores the minimal range that covers all entries in inputs1 and inputs2
+// in *smallest, *largest.
+// REQUIRES: inputs is not empty
+void VersionSet::GetRange2(const std::vector<FileMetaData*>& inputs1,
+ const std::vector<FileMetaData*>& inputs2,
+ InternalKey* smallest,
+ InternalKey* largest) {
+ std::vector<FileMetaData*> all = inputs1;
+ all.insert(all.end(), inputs2.begin(), inputs2.end());
+ GetRange(all, smallest, largest);
+}
+
+Iterator* VersionSet::MakeInputIterator(Compaction* c) {
+ ReadOptions options;
+ options.verify_checksums = options_->paranoid_checks;
+ options.fill_cache = false;
+
+ // Level-0 files have to be merged together. For other levels,
+ // we will make a concatenating iterator per level.
+ // TODO(opt): use concatenating iterator for level-0 if there is no overlap
+ const int space = (c->level() == 0 ? c->inputs_[0].size() + 1 : 2);
+ Iterator** list = new Iterator*[space];
+ int num = 0;
+ for (int which = 0; which < 2; which++) {
+ if (!c->inputs_[which].empty()) {
+ if (c->level() + which == 0) {
+ const std::vector<FileMetaData*>& files = c->inputs_[which];
+ for (size_t i = 0; i < files.size(); i++) {
+ list[num++] = table_cache_->NewIterator(
+ options, files[i]->number, files[i]->file_size);
+ }
+ } else {
+ // Create concatenating iterator for the files from this level
+ list[num++] = NewTwoLevelIterator(
+ new Version::LevelFileNumIterator(icmp_, &c->inputs_[which], 0),
+ &GetFileIterator, table_cache_, options);
+ }
+ }
+ }
+ assert(num <= space);
+ Iterator* result = NewMergingIterator(&icmp_, list, num);
+ delete[] list;
+ return result;
+}
+
+struct CompactionBoundary {
+ size_t start;
+ size_t limit;
+ CompactionBoundary() : start(0), limit(0) {}
+ CompactionBoundary(size_t s, size_t l) : start(s), limit(l) {}
+};
+
+struct CmpByRange {
+ CmpByRange(const InternalKeyComparator* cmp) : cmp_(cmp) {}
+ bool operator () (const FileMetaData* lhs, const FileMetaData* rhs) {
+ int smallest = cmp_->Compare(lhs->smallest, rhs->smallest);
+ if (smallest == 0) {
+ return cmp_->Compare(lhs->largest, rhs->largest) < 0;
+ }
+ return smallest < 0;
+ }
+ private:
+ const InternalKeyComparator* cmp_;
+};
+
+// Stores the compaction boundaries between level and level + 1
+void VersionSet::GetCompactionBoundaries(Version* v,
+ int level,
+ std::vector<FileMetaData*>* LA,
+ std::vector<FileMetaData*>* LB,
+ std::vector<uint64_t>* LA_sizes,
+ std::vector<uint64_t>* LB_sizes,
+ std::vector<CompactionBoundary>* boundaries)
+{
+ const Comparator* user_cmp = icmp_.user_comparator();
+ *LA = v->files_[level + 0];
+ *LB = v->files_[level + 1];
+ *LA_sizes = std::vector<uint64_t>(LA->size() + 1, 0);
+ *LB_sizes = std::vector<uint64_t>(LB->size() + 1, 0);
+ std::sort(LA->begin(), LA->end(), CmpByRange(&icmp_));
+ std::sort(LB->begin(), LB->end(), CmpByRange(&icmp_));
+ boundaries->resize(LA->size());
+
+ // compute sizes
+ for (size_t i = 0; i < LA->size(); ++i) {
+ (*LA_sizes)[i + 1] = (*LA_sizes)[i] + (*LA)[i]->file_size;
+ }
+ for (size_t i = 0; i < LB->size(); ++i) {
+ (*LB_sizes)[i + 1] = (*LB_sizes)[i] + (*LB)[i]->file_size;
+ }
+
+ // compute boundaries
+ size_t start = 0;
+ size_t limit = 0;
+ // figure out which range of LB each LA covers
+ for (size_t i = 0; i < LA->size(); ++i) {
+ // find smallest start s.t. LB[start] overlaps LA[i]
+ while (start < LB->size() &&
+ user_cmp->Compare((*LB)[start]->largest.user_key(),
+ (*LA)[i]->smallest.user_key()) < 0) {
+ ++start;
+ }
+ limit = std::max(start, limit);
+ // find smallest limit >= start s.t. LB[limit] does not overlap LA[i]
+ while (limit < LB->size() &&
+ user_cmp->Compare((*LB)[limit]->smallest.user_key(),
+ (*LA)[i]->largest.user_key()) <= 0) {
+ ++limit;
+ }
+ (*boundaries)[i].start = start;
+ (*boundaries)[i].limit = limit;
+ }
+}
+
+int VersionSet::PickCompactionLevel(bool* locked, bool seek_driven) const {
+ // Find an unlocked level has score >= 1 where level + 1 has score < 1.
+ int level = config::kNumLevels;
+ for (int i = 0; i + 1 < config::kNumLevels; ++i) {
+ if (locked[i] || locked[i + 1]) {
+ continue;
+ }
+ if (current_->compaction_scores_[i + 0] >= 1.0 &&
+ (i + 2 >= config::kNumLevels ||
+ current_->compaction_scores_[i + 1] < 1.0)) {
+ level = i;
+ break;
+ }
+ }
+ if (seek_driven &&
+ level == config::kNumLevels &&
+ current_->file_to_compact_ != NULL &&
+ !locked[current_->file_to_compact_level_ + 0] &&
+ !locked[current_->file_to_compact_level_ + 1]) {
+ level = current_->file_to_compact_level_;
+ }
+ return level;
+}
+
+static bool OldestFirst(FileMetaData* a, FileMetaData* b) {
+ return a->number < b->number;
+}
+
+Compaction* VersionSet::PickCompaction(Version* v, int level) {
+ assert(0 <= level && level < config::kNumLevels);
+ bool trivial = false;
+
+ if (v->files_[level].empty()) {
+ return NULL;
+ }
+
+ Compaction* c = new Compaction(level);
+ c->input_version_ = v;
+ c->input_version_->Ref();
+
+ if (level > 0) {
+ std::vector<FileMetaData*> LA;
+ std::vector<FileMetaData*> LB;
+ std::vector<uint64_t> LA_sizes;
+ std::vector<uint64_t> LB_sizes;
+ std::vector<CompactionBoundary> boundaries;
+ GetCompactionBoundaries(v, level, &LA, &LB, &LA_sizes, &LB_sizes, &boundaries);
+
+ // find the best set of files: maximize the ratio of sizeof(LA)/sizeof(LB)
+ // while keeping sizeof(LA)+sizeof(LB) < some threshold. If there's a tie
+ // for ratio, minimize size.
+ size_t best_idx_start = 0;
+ size_t best_idx_limit = 0;
+ uint64_t best_size = 0;
+ double best_ratio = -1;
+ for (size_t i = 0; i < boundaries.size(); ++i) {
+ for (size_t j = i; j < boundaries.size(); ++j) {
+ uint64_t sz_a = LA_sizes[j + 1] - LA_sizes[i];
+ uint64_t sz_b = LB_sizes[boundaries[j].limit] - LB_sizes[boundaries[i].start];
+ if (boundaries[j].start == boundaries[j].limit) {
+ trivial = true;
+ break;
+ }
+ if (sz_a + sz_b >= MaxCompactionBytesForLevel(level)) {
+ break;
+ }
+ assert(sz_b > 0); // true because we exclude trivial moves
+ double ratio = double(sz_a) / double(sz_b);
+ if (ratio > best_ratio ||
+ (ratio == best_ratio && sz_a + sz_b < best_size)) {
+ best_ratio = ratio;
+ best_size = sz_a + sz_b;
+ best_idx_start = i;
+ best_idx_limit = j + 1;
+ }
+ }
+ }
+
+ // Trivial moves have a near-0 cost, so do them first.
+ if (trivial) {
+ for (size_t i = 0; i < LA.size(); ++i) {
+ if (boundaries[i].start == boundaries[i].limit) {
+ c->inputs_[0].push_back(LA[i]);
+ }
+ }
+ trivial = level != 0;
+ c->SetRatio(1.0);
+ // If the best we could do would be wasteful and the best level has more
+ // data in it than the next level would have, move it all
+ } else if (level < 4 && best_ratio >= 0.0 &&
+ LA_sizes.back() * best_ratio >= LB_sizes.back()) {
+ for (size_t i = 0 ; i < LA.size(); ++i) {
+ c->inputs_[0].push_back(LA[i]);
+ }
+ c->SetRatio(double(LA_sizes.back()) / double(LB_sizes.back()));
+ // otherwise go with the best ratio
+ } else if (best_ratio >= 0.0) {
+ for (size_t i = best_idx_start; i < best_idx_limit; ++i) {
+ assert(i >= 0 && i < LA.size());
+ c->inputs_[0].push_back(LA[i]);
+ }
+ for (size_t i = boundaries[best_idx_start].start;
+ i < boundaries[best_idx_limit - 1].limit; ++i) {
+ assert(i >= 0 && i < LB.size());
+ c->inputs_[1].push_back(LB[i]);
+ }
+ c->SetRatio(best_ratio);
+ // pick the file to compact in this level
+ } else if (v->file_to_compact_ != NULL) {
+ c->inputs_[0].push_back(v->file_to_compact_);
+ // otherwise just pick the file with least overlap
+ } else {
+ assert(level >= 0);
+ assert(level+1 < config::kNumLevels);
+ // Pick the file that overlaps with the fewest files in the next level
+ size_t smallest = boundaries.size();
+ for (size_t i = 0; i < boundaries.size(); ++i) {
+ if (smallest == boundaries.size() ||
+ boundaries[smallest].limit - boundaries[smallest].start >
+ boundaries[i].limit - boundaries[i].start) {
+ smallest = i;
+ }
+ }
+ assert(smallest < boundaries.size());
+ c->inputs_[0].push_back(LA[smallest]);
+ for (size_t i = boundaries[smallest].start; i < boundaries[smallest].limit; ++i) {
+ c->inputs_[1].push_back(LB[i]);
+ }
+ }
+ } else {
+ std::vector<FileMetaData*> tmp(v->files_[0]);
+ std::sort(tmp.begin(), tmp.end(), OldestFirst);
+ for (size_t i = 0; i < tmp.size() && c->inputs_[0].size() < 32; ++i) {
+ c->inputs_[0].push_back(tmp[i]);
+ }
+ }
+
+ if (!trivial) {
+ SetupOtherInputs(c);
+ }
+ return c;
+}
+
+void VersionSet::SetupOtherInputs(Compaction* c) {
+ const int level = c->level();
+ InternalKey smallest, largest;
+ GetRange(c->inputs_[0], &smallest, &largest);
+ c->input_version_->GetOverlappingInputs(level+1, &smallest, &largest, &c->inputs_[1]);
+
+ // Update the place where we will do the next compaction for this level.
+ // We update this immediately instead of waiting for the VersionEdit
+ // to be applied so that if the compaction fails, we will try a different
+ // key range next time.
+ //compact_pointer_[level] = largest.Encode().ToString();
+ c->edit_.SetCompactPointer(level, largest);
+}
+
+Compaction* VersionSet::CompactRange(
+ int level,
+ const InternalKey* begin,
+ const InternalKey* end) {
+ std::vector<FileMetaData*> inputs;
+ current_->GetOverlappingInputs(level, begin, end, &inputs);
+ if (inputs.empty()) {
+ return NULL;
+ }
+
+ // Avoid compacting too much in one shot in case the range is large.
+ // But we cannot do this for level-0 since level-0 files can overlap
+ // and we must not pick one file and drop another older file if the
+ // two files overlap.
+ if (level > 0) {
+ const uint64_t limit = MaxFileSizeForLevel(level);
+ uint64_t total = 0;
+ for (size_t i = 0; i < inputs.size(); i++) {
+ uint64_t s = inputs[i]->file_size;
+ total += s;
+ if (total >= limit) {
+ inputs.resize(i + 1);
+ break;
+ }
+ }
+ }
+
+ Compaction* c = new Compaction(level);
+ c->input_version_ = current_;
+ c->input_version_->Ref();
+ c->inputs_[0] = inputs;
+ SetupOtherInputs(c);
+ return c;
+}
+
+Compaction::Compaction(int level)
+ : level_(level),
+ max_output_file_size_(MaxFileSizeForLevel(level)),
+ input_version_(NULL),
+ ratio_(0) {
+ for (int i = 0; i < config::kNumLevels; i++) {
+ level_ptrs_[i] = 0;
+ }
+}
+
+Compaction::~Compaction() {
+ if (input_version_ != NULL) {
+ input_version_->Unref();
+ }
+}
+
+bool Compaction::IsTrivialMove() const {
+ return num_input_files(1) == 0;
+}
+
+void Compaction::AddInputDeletions(VersionEdit* edit) {
+ for (int which = 0; which < 2; which++) {
+ for (size_t i = 0; i < inputs_[which].size(); i++) {
+ edit->DeleteFile(level_ + which, inputs_[which][i]->number);
+ }
+ }
+}
+
+bool Compaction::IsBaseLevelForKey(const Slice& user_key) {
+ // Maybe use binary search to find right entry instead of linear search?
+ const Comparator* user_cmp = input_version_->vset_->icmp_.user_comparator();
+ for (int lvl = level_ + 2; lvl < config::kNumLevels; lvl++) {
+ const std::vector<FileMetaData*>& files = input_version_->files_[lvl];
+ for (; level_ptrs_[lvl] < files.size(); ) {
+ FileMetaData* f = files[level_ptrs_[lvl]];
+ if (user_cmp->Compare(user_key, f->largest.user_key()) <= 0) {
+ // We've advanced far enough
+ if (user_cmp->Compare(user_key, f->smallest.user_key()) >= 0) {
+ // Key falls in this file's range, so definitely not base level
+ return false;
+ }
+ break;
+ }
+ level_ptrs_[lvl]++;
+ }
+ }
+ return true;
+}
+
+void Compaction::ReleaseInputs() {
+ if (input_version_ != NULL) {
+ input_version_->Unref();
+ input_version_ = NULL;
+ }
+}
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/db/version_set.h b/clipper/HyperLevelDB/db/version_set.h
new file mode 100644
index 0000000..2a97e32
--- /dev/null
+++ b/clipper/HyperLevelDB/db/version_set.h
@@ -0,0 +1,412 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+//
+// The representation of a DBImpl consists of a set of Versions. The
+// newest version is called "current". Older versions may be kept
+// around to provide a consistent view to live iterators.
+//
+// Each Version keeps track of a set of Table files per level. The
+// entire set of versions is maintained in a VersionSet.
+//
+// Version,VersionSet are thread-compatible, but require external
+// synchronization on all accesses.
+
+#ifndef STORAGE_LEVELDB_DB_VERSION_SET_H_
+#define STORAGE_LEVELDB_DB_VERSION_SET_H_
+
+#include <map>
+#include <set>
+#include <vector>
+#include "db/dbformat.h"
+#include "db/version_edit.h"
+#include "port/port.h"
+#include "port/thread_annotations.h"
+
+namespace leveldb {
+
+namespace log { class Writer; }
+
+class Compaction;
+class CompactionBoundary;
+class Iterator;
+class MemTable;
+class TableBuilder;
+class TableCache;
+class Version;
+class VersionSet;
+class WritableFile;
+
+// Return the smallest index i such that files[i]->largest >= key.
+// Return files.size() if there is no such file.
+// REQUIRES: "files" contains a sorted list of non-overlapping files.
+extern int FindFile(const InternalKeyComparator& icmp,
+ const std::vector<FileMetaData*>& files,
+ const Slice& key);
+
+// Returns true iff some file in "files" overlaps the user key range
+// [*smallest,*largest].
+// smallest==NULL represents a key smaller than all keys in the DB.
+// largest==NULL represents a key largest than all keys in the DB.
+// REQUIRES: If disjoint_sorted_files, files[] contains disjoint ranges
+// in sorted order.
+extern bool SomeFileOverlapsRange(
+ const InternalKeyComparator& icmp,
+ bool disjoint_sorted_files,
+ const std::vector<FileMetaData*>& files,
+ const Slice* smallest_user_key,
+ const Slice* largest_user_key);
+
+class Version {
+ public:
+ // Append to *iters a sequence of iterators that will
+ // yield the contents of this Version when merged together.
+ // REQUIRES: This version has been saved (see VersionSet::SaveTo)
+ void AddIterators(const ReadOptions&, std::vector<Iterator*>* iters);
+
+ // Append to *iters a sequence of iterators that will
+ // yield a subset of the contents of this Version when merged together.
+ // Yields only files with number greater or equal to num
+ // REQUIRES: This version has been saved (see VersionSet::SaveTo)
+ void AddSomeIterators(const ReadOptions&, uint64_t num, std::vector<Iterator*>* iters);
+
+ // Lookup the value for key. If found, store it in *val and
+ // return OK. Else return a non-OK status. Fills *stats.
+ // REQUIRES: lock is not held
+ struct GetStats {
+ FileMetaData* seek_file;
+ int seek_file_level;
+ };
+ Status Get(const ReadOptions&, const LookupKey& key, std::string* val,
+ GetStats* stats);
+
+ // Adds "stats" into the current state. Returns true if a new
+ // compaction may need to be triggered, false otherwise.
+ // REQUIRES: lock is held
+ bool UpdateStats(const GetStats& stats);
+
+ // Record a sample of bytes read at the specified internal key.
+ // Samples are taken approximately once every config::kReadBytesPeriod
+ // bytes. Returns true if a new compaction may need to be triggered.
+ // REQUIRES: lock is held
+ bool RecordReadSample(Slice key);
+
+ // Reference count management (so Versions do not disappear out from
+ // under live iterators)
+ void Ref();
+ void Unref();
+
+ void GetOverlappingInputs(
+ int level,
+ const InternalKey* begin, // NULL means before all keys
+ const InternalKey* end, // NULL means after all keys
+ std::vector<FileMetaData*>* inputs);
+
+ // Returns true iff some file in the specified level overlaps
+ // some part of [*smallest_user_key,*largest_user_key].
+ // smallest_user_key==NULL represents a key smaller than all keys in the DB.
+ // largest_user_key==NULL represents a key largest than all keys in the DB.
+ bool OverlapInLevel(int level,
+ const Slice* smallest_user_key,
+ const Slice* largest_user_key);
+
+ // Return the level at which we should place a new memtable compaction
+ // result that covers the range [smallest_user_key,largest_user_key].
+ int PickLevelForMemTableOutput(const Slice& smallest_user_key,
+ const Slice& largest_user_key);
+
+ int NumFiles(int level) const { return files_[level].size(); }
+
+ // Return a human readable string that describes this version's contents.
+ std::string DebugString() const;
+
+ private:
+ friend class Compaction;
+ friend class VersionSet;
+
+ class LevelFileNumIterator;
+ Iterator* NewConcatenatingIterator(const ReadOptions&, int level, uint64_t num) const;
+
+ // Call func(arg, level, f) for every file that overlaps user_key in
+ // order from newest to oldest. If an invocation of func returns
+ // false, makes no more calls.
+ //
+ // REQUIRES: user portion of internal_key == user_key.
+ void ForEachOverlapping(Slice user_key, Slice internal_key,
+ void* arg,
+ bool (*func)(void*, int, FileMetaData*));
+
+ VersionSet* vset_; // VersionSet to which this Version belongs
+ Version* next_; // Next version in linked list
+ Version* prev_; // Previous version in linked list
+ int refs_; // Number of live refs to this version
+
+ // List of files per level
+ std::vector<FileMetaData*> files_[config::kNumLevels];
+
+ // Next file to compact based on seek stats.
+ FileMetaData* file_to_compact_;
+ int file_to_compact_level_;
+
+ // Level that should be compacted next and its compaction score.
+ // Score < 1 means compaction is not strictly needed. These fields
+ // are initialized by Finalize().
+ double compaction_scores_[config::kNumLevels];
+
+ explicit Version(VersionSet* vset)
+ : vset_(vset), next_(this), prev_(this), refs_(0),
+ file_to_compact_(NULL),
+ file_to_compact_level_(-1) {
+ for (int i = 0; i < config::kNumLevels; ++i) {
+ compaction_scores_[i] = -1;
+ }
+ }
+
+ ~Version();
+
+ // No copying allowed
+ Version(const Version&);
+ void operator=(const Version&);
+};
+
+class VersionSet {
+ public:
+ VersionSet(const std::string& dbname,
+ const Options* options,
+ TableCache* table_cache,
+ const InternalKeyComparator*);
+ ~VersionSet();
+
+ // Apply *edit to the current version to form a new descriptor that
+ // is both saved to persistent state and installed as the new
+ // current version. Will release *mu while actually writing to the file.
+ // REQUIRES: *mu is held on entry.
+ // REQUIRES: no other thread concurrently calls LogAndApply()
+ Status LogAndApply(VersionEdit* edit, port::Mutex* mu, port::CondVar* cv, bool* wt)
+ EXCLUSIVE_LOCKS_REQUIRED(mu);
+
+ // Recover the last saved descriptor from persistent storage.
+ Status Recover();
+
+ // Return the current version.
+ Version* current() const { return current_; }
+
+ // Return the current manifest file number
+ uint64_t ManifestFileNumber() const { return manifest_file_number_; }
+
+ // Allocate and return a new file number
+ uint64_t NewFileNumber() { return next_file_number_++; }
+
+ // Arrange to reuse "file_number" unless a newer file number has
+ // already been allocated.
+ // REQUIRES: "file_number" was returned by a call to NewFileNumber().
+ void ReuseFileNumber(uint64_t file_number) {
+ if (next_file_number_ == file_number + 1) {
+ next_file_number_ = file_number;
+ }
+ }
+
+ // Return the number of Table files at the specified level.
+ int NumLevelFiles(int level) const;
+
+ // Return the combined file size of all files at the specified level.
+ int64_t NumLevelBytes(int level) const;
+
+ // Return the last sequence number.
+ uint64_t LastSequence() const { return last_sequence_; }
+
+ // Set the last sequence number to s.
+ void SetLastSequence(uint64_t s) {
+ assert(s >= last_sequence_);
+ last_sequence_ = s;
+ }
+
+ // Mark the specified file number as used.
+ void MarkFileNumberUsed(uint64_t number);
+
+ // Return the current log file number.
+ uint64_t LogNumber() const { return log_number_; }
+
+ // Return the log file number for the log file that is currently
+ // being compacted, or zero if there is no such log file.
+ uint64_t PrevLogNumber() const { return prev_log_number_; }
+
+ // Pick level for a new compaction.
+ // Returns kNumLevels if there is no compaction to be done.
+ // Otherwise returns the lowest unlocked level that may compact upwards.
+ int PickCompactionLevel(bool* locked, bool seek_driven) const;
+
+ // Pick inputs for a new compaction at the specified level.
+ // Returns NULL if there is no compaction to be done.
+ // Otherwise returns a pointer to a heap-allocated object that
+ // describes the compaction. Caller should delete the result.
+ Compaction* PickCompaction(Version* v, int level);
+
+ // Return a compaction object for compacting the range [begin,end] in
+ // the specified level. Returns NULL if there is nothing in that
+ // level that overlaps the specified range. Caller should delete
+ // the result.
+ Compaction* CompactRange(
+ int level,
+ const InternalKey* begin,
+ const InternalKey* end);
+
+ // Return the maximum overlapping data (in bytes) at next level for any
+ // file at a level >= 1.
+ int64_t MaxNextLevelOverlappingBytes();
+
+ // Create an iterator that reads over the compaction inputs for "*c".
+ // The caller should delete the iterator when no longer needed.
+ Iterator* MakeInputIterator(Compaction* c);
+
+ // Returns true iff some level needs a compaction.
+ bool NeedsCompaction(bool* levels, bool seek_driven) const {
+ return PickCompactionLevel(levels, seek_driven) != config::kNumLevels;
+ }
+
+ // Add all files listed in any live version to *live.
+ // May also mutate some internal state.
+ void AddLiveFiles(std::set<uint64_t>* live);
+
+ // Return the approximate offset in the database of the data for
+ // "key" as of version "v".
+ uint64_t ApproximateOffsetOf(Version* v, const InternalKey& key);
+
+ // Return a human-readable short (single-line) summary of the number
+ // of files per level. Uses *scratch as backing store.
+ struct LevelSummaryStorage {
+ char buffer[100];
+ };
+ const char* LevelSummary(LevelSummaryStorage* scratch) const;
+
+ private:
+ class Builder;
+
+ friend class Compaction;
+ friend class Version;
+
+ void Finalize(Version* v);
+
+ void GetRange(const std::vector<FileMetaData*>& inputs,
+ InternalKey* smallest,
+ InternalKey* largest);
+
+ void GetRange2(const std::vector<FileMetaData*>& inputs1,
+ const std::vector<FileMetaData*>& inputs2,
+ InternalKey* smallest,
+ InternalKey* largest);
+
+ void GetCompactionBoundaries(Version* version,
+ int level,
+ std::vector<FileMetaData*>* LA,
+ std::vector<FileMetaData*>* LB,
+ std::vector<uint64_t>* LA_sizes,
+ std::vector<uint64_t>* LB_sizes,
+ std::vector<class CompactionBoundary>* boundaries);
+
+ void SetupOtherInputs(Compaction* c);
+
+ // Save current contents to *log
+ Status WriteSnapshot(log::Writer* log);
+
+ void AppendVersion(Version* v);
+
+ Env* const env_;
+ const std::string dbname_;
+ const Options* const options_;
+ TableCache* const table_cache_;
+ const InternalKeyComparator icmp_;
+ uint64_t next_file_number_;
+ uint64_t manifest_file_number_;
+ uint64_t last_sequence_;
+ uint64_t log_number_;
+ uint64_t prev_log_number_; // 0 or backing store for memtable being compacted
+
+ // Opened lazily
+ WritableFile* descriptor_file_;
+ log::Writer* descriptor_log_;
+ Version dummy_versions_; // Head of circular doubly-linked list of versions.
+ Version* current_; // == dummy_versions_.prev_
+
+ // Per-level key at which the next compaction at that level should start.
+ // Either an empty string, or a valid InternalKey.
+ std::string compact_pointer_[config::kNumLevels];
+
+ // No copying allowed
+ VersionSet(const VersionSet&);
+ void operator=(const VersionSet&);
+};
+
+// A Compaction encapsulates information about a compaction.
+class Compaction {
+ public:
+ ~Compaction();
+
+ // Return the level that is being compacted. Inputs from "level"
+ // and "level+1" will be merged to produce a set of "level+1" files.
+ int level() const { return level_; }
+
+ // Return the object that holds the edits to the descriptor done
+ // by this compaction.
+ VersionEdit* edit() { return &edit_; }
+
+ // "which" must be either 0 or 1
+ int num_input_files(int which) const { return inputs_[which].size(); }
+
+ // Return the ith input file at "level()+which" ("which" must be 0 or 1).
+ FileMetaData* input(int which, int i) const { return inputs_[which][i]; }
+
+ // Maximum size of files to build during this compaction.
+ uint64_t MaxOutputFileSize() const { return max_output_file_size_; }
+
+ // Is this a trivial compaction that can be implemented by just
+ // moving a single input file to the next level (no merging or splitting)
+ bool IsTrivialMove() const;
+
+ // Add all inputs to this compaction as delete operations to *edit.
+ void AddInputDeletions(VersionEdit* edit);
+
+ // Returns true if the information we have available guarantees that
+ // the compaction is producing data in "level+1" for which no data exists
+ // in levels greater than "level+1".
+ bool IsBaseLevelForKey(const Slice& user_key);
+
+ // Release the input version for the compaction, once the compaction
+ // is successful.
+ void ReleaseInputs();
+
+ // Set and get the ratio of inputs to outputs.
+ // If nonzero, this is the ratio of inputs to outputs. If zero, it indicates
+ // that the compaction was chosen without concern for the ratio of inputs to
+ // outputs.
+ void SetRatio(double ratio) { ratio_ = ratio; }
+ double ratio() { return ratio_; }
+
+ private:
+ friend class Version;
+ friend class VersionSet;
+
+ explicit Compaction(int level);
+
+ int level_;
+ uint64_t max_output_file_size_;
+ Version* input_version_;
+ VersionEdit edit_;
+
+ double ratio_;
+
+ // Each compaction reads inputs from "level_" and "level_+1"
+ std::vector<FileMetaData*> inputs_[2]; // The two sets of inputs
+
+ // State for implementing IsBaseLevelForKey
+
+ // level_ptrs_ holds indices into input_version_->levels_: our state
+ // is that we are positioned at one of the file ranges for each
+ // higher level than the ones involved in this compaction (i.e. for
+ // all L >= level_ + 2).
+ size_t level_ptrs_[config::kNumLevels];
+};
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_DB_VERSION_SET_H_
diff --git a/clipper/HyperLevelDB/db/version_set_test.cc b/clipper/HyperLevelDB/db/version_set_test.cc
new file mode 100644
index 0000000..501e34d
--- /dev/null
+++ b/clipper/HyperLevelDB/db/version_set_test.cc
@@ -0,0 +1,179 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "db/version_set.h"
+#include "util/logging.h"
+#include "util/testharness.h"
+#include "util/testutil.h"
+
+namespace leveldb {
+
+class FindFileTest {
+ public:
+ std::vector<FileMetaData*> files_;
+ bool disjoint_sorted_files_;
+
+ FindFileTest() : disjoint_sorted_files_(true) { }
+
+ ~FindFileTest() {
+ for (int i = 0; i < files_.size(); i++) {
+ delete files_[i];
+ }
+ }
+
+ void Add(const char* smallest, const char* largest,
+ SequenceNumber smallest_seq = 100,
+ SequenceNumber largest_seq = 100) {
+ FileMetaData* f = new FileMetaData;
+ f->number = files_.size() + 1;
+ f->smallest = InternalKey(smallest, smallest_seq, kTypeValue);
+ f->largest = InternalKey(largest, largest_seq, kTypeValue);
+ files_.push_back(f);
+ }
+
+ int Find(const char* key) {
+ InternalKey target(key, 100, kTypeValue);
+ InternalKeyComparator cmp(BytewiseComparator());
+ return FindFile(cmp, files_, target.Encode());
+ }
+
+ bool Overlaps(const char* smallest, const char* largest) {
+ InternalKeyComparator cmp(BytewiseComparator());
+ Slice s(smallest != NULL ? smallest : "");
+ Slice l(largest != NULL ? largest : "");
+ return SomeFileOverlapsRange(cmp, disjoint_sorted_files_, files_,
+ (smallest != NULL ? &s : NULL),
+ (largest != NULL ? &l : NULL));
+ }
+};
+
+TEST(FindFileTest, Empty) {
+ ASSERT_EQ(0, Find("foo"));
+ ASSERT_TRUE(! Overlaps("a", "z"));
+ ASSERT_TRUE(! Overlaps(NULL, "z"));
+ ASSERT_TRUE(! Overlaps("a", NULL));
+ ASSERT_TRUE(! Overlaps(NULL, NULL));
+}
+
+TEST(FindFileTest, Single) {
+ Add("p", "q");
+ ASSERT_EQ(0, Find("a"));
+ ASSERT_EQ(0, Find("p"));
+ ASSERT_EQ(0, Find("p1"));
+ ASSERT_EQ(0, Find("q"));
+ ASSERT_EQ(1, Find("q1"));
+ ASSERT_EQ(1, Find("z"));
+
+ ASSERT_TRUE(! Overlaps("a", "b"));
+ ASSERT_TRUE(! Overlaps("z1", "z2"));
+ ASSERT_TRUE(Overlaps("a", "p"));
+ ASSERT_TRUE(Overlaps("a", "q"));
+ ASSERT_TRUE(Overlaps("a", "z"));
+ ASSERT_TRUE(Overlaps("p", "p1"));
+ ASSERT_TRUE(Overlaps("p", "q"));
+ ASSERT_TRUE(Overlaps("p", "z"));
+ ASSERT_TRUE(Overlaps("p1", "p2"));
+ ASSERT_TRUE(Overlaps("p1", "z"));
+ ASSERT_TRUE(Overlaps("q", "q"));
+ ASSERT_TRUE(Overlaps("q", "q1"));
+
+ ASSERT_TRUE(! Overlaps(NULL, "j"));
+ ASSERT_TRUE(! Overlaps("r", NULL));
+ ASSERT_TRUE(Overlaps(NULL, "p"));
+ ASSERT_TRUE(Overlaps(NULL, "p1"));
+ ASSERT_TRUE(Overlaps("q", NULL));
+ ASSERT_TRUE(Overlaps(NULL, NULL));
+}
+
+
+TEST(FindFileTest, Multiple) {
+ Add("150", "200");
+ Add("200", "250");
+ Add("300", "350");
+ Add("400", "450");
+ ASSERT_EQ(0, Find("100"));
+ ASSERT_EQ(0, Find("150"));
+ ASSERT_EQ(0, Find("151"));
+ ASSERT_EQ(0, Find("199"));
+ ASSERT_EQ(0, Find("200"));
+ ASSERT_EQ(1, Find("201"));
+ ASSERT_EQ(1, Find("249"));
+ ASSERT_EQ(1, Find("250"));
+ ASSERT_EQ(2, Find("251"));
+ ASSERT_EQ(2, Find("299"));
+ ASSERT_EQ(2, Find("300"));
+ ASSERT_EQ(2, Find("349"));
+ ASSERT_EQ(2, Find("350"));
+ ASSERT_EQ(3, Find("351"));
+ ASSERT_EQ(3, Find("400"));
+ ASSERT_EQ(3, Find("450"));
+ ASSERT_EQ(4, Find("451"));
+
+ ASSERT_TRUE(! Overlaps("100", "149"));
+ ASSERT_TRUE(! Overlaps("251", "299"));
+ ASSERT_TRUE(! Overlaps("451", "500"));
+ ASSERT_TRUE(! Overlaps("351", "399"));
+
+ ASSERT_TRUE(Overlaps("100", "150"));
+ ASSERT_TRUE(Overlaps("100", "200"));
+ ASSERT_TRUE(Overlaps("100", "300"));
+ ASSERT_TRUE(Overlaps("100", "400"));
+ ASSERT_TRUE(Overlaps("100", "500"));
+ ASSERT_TRUE(Overlaps("375", "400"));
+ ASSERT_TRUE(Overlaps("450", "450"));
+ ASSERT_TRUE(Overlaps("450", "500"));
+}
+
+TEST(FindFileTest, MultipleNullBoundaries) {
+ Add("150", "200");
+ Add("200", "250");
+ Add("300", "350");
+ Add("400", "450");
+ ASSERT_TRUE(! Overlaps(NULL, "149"));
+ ASSERT_TRUE(! Overlaps("451", NULL));
+ ASSERT_TRUE(Overlaps(NULL, NULL));
+ ASSERT_TRUE(Overlaps(NULL, "150"));
+ ASSERT_TRUE(Overlaps(NULL, "199"));
+ ASSERT_TRUE(Overlaps(NULL, "200"));
+ ASSERT_TRUE(Overlaps(NULL, "201"));
+ ASSERT_TRUE(Overlaps(NULL, "400"));
+ ASSERT_TRUE(Overlaps(NULL, "800"));
+ ASSERT_TRUE(Overlaps("100", NULL));
+ ASSERT_TRUE(Overlaps("200", NULL));
+ ASSERT_TRUE(Overlaps("449", NULL));
+ ASSERT_TRUE(Overlaps("450", NULL));
+}
+
+TEST(FindFileTest, OverlapSequenceChecks) {
+ Add("200", "200", 5000, 3000);
+ ASSERT_TRUE(! Overlaps("199", "199"));
+ ASSERT_TRUE(! Overlaps("201", "300"));
+ ASSERT_TRUE(Overlaps("200", "200"));
+ ASSERT_TRUE(Overlaps("190", "200"));
+ ASSERT_TRUE(Overlaps("200", "210"));
+}
+
+TEST(FindFileTest, OverlappingFiles) {
+ Add("150", "600");
+ Add("400", "500");
+ disjoint_sorted_files_ = false;
+ ASSERT_TRUE(! Overlaps("100", "149"));
+ ASSERT_TRUE(! Overlaps("601", "700"));
+ ASSERT_TRUE(Overlaps("100", "150"));
+ ASSERT_TRUE(Overlaps("100", "200"));
+ ASSERT_TRUE(Overlaps("100", "300"));
+ ASSERT_TRUE(Overlaps("100", "400"));
+ ASSERT_TRUE(Overlaps("100", "500"));
+ ASSERT_TRUE(Overlaps("375", "400"));
+ ASSERT_TRUE(Overlaps("450", "450"));
+ ASSERT_TRUE(Overlaps("450", "500"));
+ ASSERT_TRUE(Overlaps("450", "700"));
+ ASSERT_TRUE(Overlaps("600", "700"));
+}
+
+} // namespace leveldb
+
+int main(int argc, char** argv) {
+ return leveldb::test::RunAllTests();
+}
diff --git a/clipper/HyperLevelDB/db/write_batch.cc b/clipper/HyperLevelDB/db/write_batch.cc
new file mode 100644
index 0000000..5a3e021
--- /dev/null
+++ b/clipper/HyperLevelDB/db/write_batch.cc
@@ -0,0 +1,147 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+//
+// WriteBatch::rep_ :=
+// sequence: fixed64
+// count: fixed32
+// data: record[count]
+// record :=
+// kTypeValue varstring varstring |
+// kTypeDeletion varstring
+// varstring :=
+// len: varint32
+// data: uint8[len]
+
+#include "hyperleveldb/write_batch.h"
+
+#include "hyperleveldb/db.h"
+#include "db/dbformat.h"
+#include "db/memtable.h"
+#include "db/write_batch_internal.h"
+#include "util/coding.h"
+
+namespace leveldb {
+
+// WriteBatch header has an 8-byte sequence number followed by a 4-byte count.
+static const size_t kHeader = 12;
+
+WriteBatch::WriteBatch() {
+ Clear();
+}
+
+WriteBatch::~WriteBatch() { }
+
+WriteBatch::Handler::~Handler() { }
+
+void WriteBatch::Clear() {
+ rep_.clear();
+ rep_.resize(kHeader);
+}
+
+Status WriteBatch::Iterate(Handler* handler) const {
+ Slice input(rep_);
+ if (input.size() < kHeader) {
+ return Status::Corruption("malformed WriteBatch (too small)");
+ }
+
+ input.remove_prefix(kHeader);
+ Slice key, value;
+ int found = 0;
+ while (!input.empty()) {
+ found++;
+ char tag = input[0];
+ input.remove_prefix(1);
+ switch (tag) {
+ case kTypeValue:
+ if (GetLengthPrefixedSlice(&input, &key) &&
+ GetLengthPrefixedSlice(&input, &value)) {
+ handler->Put(key, value);
+ } else {
+ return Status::Corruption("bad WriteBatch Put");
+ }
+ break;
+ case kTypeDeletion:
+ if (GetLengthPrefixedSlice(&input, &key)) {
+ handler->Delete(key);
+ } else {
+ return Status::Corruption("bad WriteBatch Delete");
+ }
+ break;
+ default:
+ return Status::Corruption("unknown WriteBatch tag");
+ }
+ }
+ if (found != WriteBatchInternal::Count(this)) {
+ return Status::Corruption("WriteBatch has wrong count");
+ } else {
+ return Status::OK();
+ }
+}
+
+int WriteBatchInternal::Count(const WriteBatch* b) {
+ return DecodeFixed32(b->rep_.data() + 8);
+}
+
+void WriteBatchInternal::SetCount(WriteBatch* b, int n) {
+ EncodeFixed32(&b->rep_[8], n);
+}
+
+SequenceNumber WriteBatchInternal::Sequence(const WriteBatch* b) {
+ return SequenceNumber(DecodeFixed64(b->rep_.data()));
+}
+
+void WriteBatchInternal::SetSequence(WriteBatch* b, SequenceNumber seq) {
+ EncodeFixed64(&b->rep_[0], seq);
+}
+
+void WriteBatch::Put(const Slice& key, const Slice& value) {
+ WriteBatchInternal::SetCount(this, WriteBatchInternal::Count(this) + 1);
+ rep_.push_back(static_cast<char>(kTypeValue));
+ PutLengthPrefixedSlice(&rep_, key);
+ PutLengthPrefixedSlice(&rep_, value);
+}
+
+void WriteBatch::Delete(const Slice& key) {
+ WriteBatchInternal::SetCount(this, WriteBatchInternal::Count(this) + 1);
+ rep_.push_back(static_cast<char>(kTypeDeletion));
+ PutLengthPrefixedSlice(&rep_, key);
+}
+
+namespace {
+class MemTableInserter : public WriteBatch::Handler {
+ public:
+ SequenceNumber sequence_;
+ MemTable* mem_;
+
+ virtual void Put(const Slice& key, const Slice& value) {
+ mem_->Add(sequence_, kTypeValue, key, value);
+ sequence_++;
+ }
+ virtual void Delete(const Slice& key) {
+ mem_->Add(sequence_, kTypeDeletion, key, Slice());
+ sequence_++;
+ }
+};
+} // namespace
+
+Status WriteBatchInternal::InsertInto(const WriteBatch* b,
+ MemTable* memtable) {
+ MemTableInserter inserter;
+ inserter.sequence_ = WriteBatchInternal::Sequence(b);
+ inserter.mem_ = memtable;
+ return b->Iterate(&inserter);
+}
+
+void WriteBatchInternal::SetContents(WriteBatch* b, const Slice& contents) {
+ assert(contents.size() >= kHeader);
+ b->rep_.assign(contents.data(), contents.size());
+}
+
+void WriteBatchInternal::Append(WriteBatch* dst, const WriteBatch* src) {
+ SetCount(dst, Count(dst) + Count(src));
+ assert(src->rep_.size() >= kHeader);
+ dst->rep_.append(src->rep_.data() + kHeader, src->rep_.size() - kHeader);
+}
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/db/write_batch_internal.h b/clipper/HyperLevelDB/db/write_batch_internal.h
new file mode 100644
index 0000000..48ec885
--- /dev/null
+++ b/clipper/HyperLevelDB/db/write_batch_internal.h
@@ -0,0 +1,49 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#ifndef STORAGE_LEVELDB_DB_WRITE_BATCH_INTERNAL_H_
+#define STORAGE_LEVELDB_DB_WRITE_BATCH_INTERNAL_H_
+
+#include "hyperleveldb/write_batch.h"
+
+namespace leveldb {
+
+class MemTable;
+
+// WriteBatchInternal provides static methods for manipulating a
+// WriteBatch that we don't want in the public WriteBatch interface.
+class WriteBatchInternal {
+ public:
+ // Return the number of entries in the batch.
+ static int Count(const WriteBatch* batch);
+
+ // Set the count for the number of entries in the batch.
+ static void SetCount(WriteBatch* batch, int n);
+
+ // Return the seqeunce number for the start of this batch.
+ static SequenceNumber Sequence(const WriteBatch* batch);
+
+ // Store the specified number as the seqeunce number for the start of
+ // this batch.
+ static void SetSequence(WriteBatch* batch, SequenceNumber seq);
+
+ static Slice Contents(const WriteBatch* batch) {
+ return Slice(batch->rep_);
+ }
+
+ static size_t ByteSize(const WriteBatch* batch) {
+ return batch->rep_.size();
+ }
+
+ static void SetContents(WriteBatch* batch, const Slice& contents);
+
+ static Status InsertInto(const WriteBatch* batch, MemTable* memtable);
+
+ static void Append(WriteBatch* dst, const WriteBatch* src);
+};
+
+} // namespace leveldb
+
+
+#endif // STORAGE_LEVELDB_DB_WRITE_BATCH_INTERNAL_H_
diff --git a/clipper/HyperLevelDB/db/write_batch_test.cc b/clipper/HyperLevelDB/db/write_batch_test.cc
new file mode 100644
index 0000000..b150542
--- /dev/null
+++ b/clipper/HyperLevelDB/db/write_batch_test.cc
@@ -0,0 +1,120 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "hyperleveldb/db.h"
+
+#include "db/memtable.h"
+#include "db/write_batch_internal.h"
+#include "hyperleveldb/env.h"
+#include "util/logging.h"
+#include "util/testharness.h"
+
+namespace leveldb {
+
+static std::string PrintContents(WriteBatch* b) {
+ InternalKeyComparator cmp(BytewiseComparator());
+ MemTable* mem = new MemTable(cmp);
+ mem->Ref();
+ std::string state;
+ Status s = WriteBatchInternal::InsertInto(b, mem);
+ int count = 0;
+ Iterator* iter = mem->NewIterator();
+ for (iter->SeekToFirst(); iter->Valid(); iter->Next()) {
+ ParsedInternalKey ikey;
+ ASSERT_TRUE(ParseInternalKey(iter->key(), &ikey));
+ switch (ikey.type) {
+ case kTypeValue:
+ state.append("Put(");
+ state.append(ikey.user_key.ToString());
+ state.append(", ");
+ state.append(iter->value().ToString());
+ state.append(")");
+ count++;
+ break;
+ case kTypeDeletion:
+ state.append("Delete(");
+ state.append(ikey.user_key.ToString());
+ state.append(")");
+ count++;
+ break;
+ }
+ state.append("@");
+ state.append(NumberToString(ikey.sequence));
+ }
+ delete iter;
+ if (!s.ok()) {
+ state.append("ParseError()");
+ } else if (count != WriteBatchInternal::Count(b)) {
+ state.append("CountMismatch()");
+ }
+ mem->Unref();
+ return state;
+}
+
+class WriteBatchTest { };
+
+TEST(WriteBatchTest, Empty) {
+ WriteBatch batch;
+ ASSERT_EQ("", PrintContents(&batch));
+ ASSERT_EQ(0, WriteBatchInternal::Count(&batch));
+}
+
+TEST(WriteBatchTest, Multiple) {
+ WriteBatch batch;
+ batch.Put(Slice("foo"), Slice("bar"));
+ batch.Delete(Slice("box"));
+ batch.Put(Slice("baz"), Slice("boo"));
+ WriteBatchInternal::SetSequence(&batch, 100);
+ ASSERT_EQ(100, WriteBatchInternal::Sequence(&batch));
+ ASSERT_EQ(3, WriteBatchInternal::Count(&batch));
+ ASSERT_EQ("Put(baz, boo)@102"
+ "Delete(box)@101"
+ "Put(foo, bar)@100",
+ PrintContents(&batch));
+}
+
+TEST(WriteBatchTest, Corruption) {
+ WriteBatch batch;
+ batch.Put(Slice("foo"), Slice("bar"));
+ batch.Delete(Slice("box"));
+ WriteBatchInternal::SetSequence(&batch, 200);
+ Slice contents = WriteBatchInternal::Contents(&batch);
+ WriteBatchInternal::SetContents(&batch,
+ Slice(contents.data(),contents.size()-1));
+ ASSERT_EQ("Put(foo, bar)@200"
+ "ParseError()",
+ PrintContents(&batch));
+}
+
+TEST(WriteBatchTest, Append) {
+ WriteBatch b1, b2;
+ WriteBatchInternal::SetSequence(&b1, 200);
+ WriteBatchInternal::SetSequence(&b2, 300);
+ WriteBatchInternal::Append(&b1, &b2);
+ ASSERT_EQ("",
+ PrintContents(&b1));
+ b2.Put("a", "va");
+ WriteBatchInternal::Append(&b1, &b2);
+ ASSERT_EQ("Put(a, va)@200",
+ PrintContents(&b1));
+ b2.Clear();
+ b2.Put("b", "vb");
+ WriteBatchInternal::Append(&b1, &b2);
+ ASSERT_EQ("Put(a, va)@200"
+ "Put(b, vb)@201",
+ PrintContents(&b1));
+ b2.Delete("foo");
+ WriteBatchInternal::Append(&b1, &b2);
+ ASSERT_EQ("Put(a, va)@200"
+ "Put(b, vb)@202"
+ "Put(b, vb)@201"
+ "Delete(foo)@203",
+ PrintContents(&b1));
+}
+
+} // namespace leveldb
+
+int main(int argc, char** argv) {
+ return leveldb::test::RunAllTests();
+}
diff --git a/clipper/HyperLevelDB/doc/bench/db_bench_sqlite3.cc b/clipper/HyperLevelDB/doc/bench/db_bench_sqlite3.cc
new file mode 100644
index 0000000..e63aaa8
--- /dev/null
+++ b/clipper/HyperLevelDB/doc/bench/db_bench_sqlite3.cc
@@ -0,0 +1,718 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <sqlite3.h>
+#include "util/histogram.h"
+#include "util/random.h"
+#include "util/testutil.h"
+
+// Comma-separated list of operations to run in the specified order
+// Actual benchmarks:
+//
+// fillseq -- write N values in sequential key order in async mode
+// fillseqsync -- write N/100 values in sequential key order in sync mode
+// fillseqbatch -- batch write N values in sequential key order in async mode
+// fillrandom -- write N values in random key order in async mode
+// fillrandsync -- write N/100 values in random key order in sync mode
+// fillrandbatch -- batch write N values in sequential key order in async mode
+// overwrite -- overwrite N values in random key order in async mode
+// fillrand100K -- write N/1000 100K values in random order in async mode
+// fillseq100K -- write N/1000 100K values in sequential order in async mode
+// readseq -- read N times sequentially
+// readrandom -- read N times in random order
+// readrand100K -- read N/1000 100K values in sequential order in async mode
+static const char* FLAGS_benchmarks =
+ "fillseq,"
+ "fillseqsync,"
+ "fillseqbatch,"
+ "fillrandom,"
+ "fillrandsync,"
+ "fillrandbatch,"
+ "overwrite,"
+ "overwritebatch,"
+ "readrandom,"
+ "readseq,"
+ "fillrand100K,"
+ "fillseq100K,"
+ "readseq,"
+ "readrand100K,"
+ ;
+
+// Number of key/values to place in database
+static int FLAGS_num = 1000000;
+
+// Number of read operations to do. If negative, do FLAGS_num reads.
+static int FLAGS_reads = -1;
+
+// Size of each value
+static int FLAGS_value_size = 100;
+
+// Print histogram of operation timings
+static bool FLAGS_histogram = false;
+
+// Arrange to generate values that shrink to this fraction of
+// their original size after compression
+static double FLAGS_compression_ratio = 0.5;
+
+// Page size. Default 1 KB.
+static int FLAGS_page_size = 1024;
+
+// Number of pages.
+// Default cache size = FLAGS_page_size * FLAGS_num_pages = 4 MB.
+static int FLAGS_num_pages = 4096;
+
+// If true, do not destroy the existing database. If you set this
+// flag and also specify a benchmark that wants a fresh database, that
+// benchmark will fail.
+static bool FLAGS_use_existing_db = false;
+
+// If true, we allow batch writes to occur
+static bool FLAGS_transaction = true;
+
+// If true, we enable Write-Ahead Logging
+static bool FLAGS_WAL_enabled = true;
+
+// Use the db with the following name.
+static const char* FLAGS_db = NULL;
+
+inline
+static void ExecErrorCheck(int status, char *err_msg) {
+ if (status != SQLITE_OK) {
+ fprintf(stderr, "SQL error: %s\n", err_msg);
+ sqlite3_free(err_msg);
+ exit(1);
+ }
+}
+
+inline
+static void StepErrorCheck(int status) {
+ if (status != SQLITE_DONE) {
+ fprintf(stderr, "SQL step error: status = %d\n", status);
+ exit(1);
+ }
+}
+
+inline
+static void ErrorCheck(int status) {
+ if (status != SQLITE_OK) {
+ fprintf(stderr, "sqlite3 error: status = %d\n", status);
+ exit(1);
+ }
+}
+
+inline
+static void WalCheckpoint(sqlite3* db_) {
+ // Flush all writes to disk
+ if (FLAGS_WAL_enabled) {
+ sqlite3_wal_checkpoint_v2(db_, NULL, SQLITE_CHECKPOINT_FULL, NULL, NULL);
+ }
+}
+
+namespace leveldb {
+
+// Helper for quickly generating random data.
+namespace {
+class RandomGenerator {
+ private:
+ std::string data_;
+ int pos_;
+
+ public:
+ RandomGenerator() {
+ // We use a limited amount of data over and over again and ensure
+ // that it is larger than the compression window (32KB), and also
+ // large enough to serve all typical value sizes we want to write.
+ Random rnd(301);
+ std::string piece;
+ while (data_.size() < 1048576) {
+ // Add a short fragment that is as compressible as specified
+ // by FLAGS_compression_ratio.
+ test::CompressibleString(&rnd, FLAGS_compression_ratio, 100, &piece);
+ data_.append(piece);
+ }
+ pos_ = 0;
+ }
+
+ Slice Generate(int len) {
+ if (pos_ + len > data_.size()) {
+ pos_ = 0;
+ assert(len < data_.size());
+ }
+ pos_ += len;
+ return Slice(data_.data() + pos_ - len, len);
+ }
+};
+
+static Slice TrimSpace(Slice s) {
+ int start = 0;
+ while (start < s.size() && isspace(s[start])) {
+ start++;
+ }
+ int limit = s.size();
+ while (limit > start && isspace(s[limit-1])) {
+ limit--;
+ }
+ return Slice(s.data() + start, limit - start);
+}
+
+} // namespace
+
+class Benchmark {
+ private:
+ sqlite3* db_;
+ int db_num_;
+ int num_;
+ int reads_;
+ double start_;
+ double last_op_finish_;
+ int64_t bytes_;
+ std::string message_;
+ Histogram hist_;
+ RandomGenerator gen_;
+ Random rand_;
+
+ // State kept for progress messages
+ int done_;
+ int next_report_; // When to report next
+
+ void PrintHeader() {
+ const int kKeySize = 16;
+ PrintEnvironment();
+ fprintf(stdout, "Keys: %d bytes each\n", kKeySize);
+ fprintf(stdout, "Values: %d bytes each\n", FLAGS_value_size);
+ fprintf(stdout, "Entries: %d\n", num_);
+ fprintf(stdout, "RawSize: %.1f MB (estimated)\n",
+ ((static_cast<int64_t>(kKeySize + FLAGS_value_size) * num_)
+ / 1048576.0));
+ PrintWarnings();
+ fprintf(stdout, "------------------------------------------------\n");
+ }
+
+ void PrintWarnings() {
+#if defined(__GNUC__) && !defined(__OPTIMIZE__)
+ fprintf(stdout,
+ "WARNING: Optimization is disabled: benchmarks unnecessarily slow\n"
+ );
+#endif
+#ifndef NDEBUG
+ fprintf(stdout,
+ "WARNING: Assertions are enabled; benchmarks unnecessarily slow\n");
+#endif
+ }
+
+ void PrintEnvironment() {
+ fprintf(stderr, "SQLite: version %s\n", SQLITE_VERSION);
+
+#if defined(__linux)
+ time_t now = time(NULL);
+ fprintf(stderr, "Date: %s", ctime(&now)); // ctime() adds newline
+
+ FILE* cpuinfo = fopen("/proc/cpuinfo", "r");
+ if (cpuinfo != NULL) {
+ char line[1000];
+ int num_cpus = 0;
+ std::string cpu_type;
+ std::string cache_size;
+ while (fgets(line, sizeof(line), cpuinfo) != NULL) {
+ const char* sep = strchr(line, ':');
+ if (sep == NULL) {
+ continue;
+ }
+ Slice key = TrimSpace(Slice(line, sep - 1 - line));
+ Slice val = TrimSpace(Slice(sep + 1));
+ if (key == "model name") {
+ ++num_cpus;
+ cpu_type = val.ToString();
+ } else if (key == "cache size") {
+ cache_size = val.ToString();
+ }
+ }
+ fclose(cpuinfo);
+ fprintf(stderr, "CPU: %d * %s\n", num_cpus, cpu_type.c_str());
+ fprintf(stderr, "CPUCache: %s\n", cache_size.c_str());
+ }
+#endif
+ }
+
+ void Start() {
+ start_ = Env::Default()->NowMicros() * 1e-6;
+ bytes_ = 0;
+ message_.clear();
+ last_op_finish_ = start_;
+ hist_.Clear();
+ done_ = 0;
+ next_report_ = 100;
+ }
+
+ void FinishedSingleOp() {
+ if (FLAGS_histogram) {
+ double now = Env::Default()->NowMicros() * 1e-6;
+ double micros = (now - last_op_finish_) * 1e6;
+ hist_.Add(micros);
+ if (micros > 20000) {
+ fprintf(stderr, "long op: %.1f micros%30s\r", micros, "");
+ fflush(stderr);
+ }
+ last_op_finish_ = now;
+ }
+
+ done_++;
+ if (done_ >= next_report_) {
+ if (next_report_ < 1000) next_report_ += 100;
+ else if (next_report_ < 5000) next_report_ += 500;
+ else if (next_report_ < 10000) next_report_ += 1000;
+ else if (next_report_ < 50000) next_report_ += 5000;
+ else if (next_report_ < 100000) next_report_ += 10000;
+ else if (next_report_ < 500000) next_report_ += 50000;
+ else next_report_ += 100000;
+ fprintf(stderr, "... finished %d ops%30s\r", done_, "");
+ fflush(stderr);
+ }
+ }
+
+ void Stop(const Slice& name) {
+ double finish = Env::Default()->NowMicros() * 1e-6;
+
+ // Pretend at least one op was done in case we are running a benchmark
+ // that does not call FinishedSingleOp().
+ if (done_ < 1) done_ = 1;
+
+ if (bytes_ > 0) {
+ char rate[100];
+ snprintf(rate, sizeof(rate), "%6.1f MB/s",
+ (bytes_ / 1048576.0) / (finish - start_));
+ if (!message_.empty()) {
+ message_ = std::string(rate) + " " + message_;
+ } else {
+ message_ = rate;
+ }
+ }
+
+ fprintf(stdout, "%-12s : %11.3f micros/op;%s%s\n",
+ name.ToString().c_str(),
+ (finish - start_) * 1e6 / done_,
+ (message_.empty() ? "" : " "),
+ message_.c_str());
+ if (FLAGS_histogram) {
+ fprintf(stdout, "Microseconds per op:\n%s\n", hist_.ToString().c_str());
+ }
+ fflush(stdout);
+ }
+
+ public:
+ enum Order {
+ SEQUENTIAL,
+ RANDOM
+ };
+ enum DBState {
+ FRESH,
+ EXISTING
+ };
+
+ Benchmark()
+ : db_(NULL),
+ db_num_(0),
+ num_(FLAGS_num),
+ reads_(FLAGS_reads < 0 ? FLAGS_num : FLAGS_reads),
+ bytes_(0),
+ rand_(301) {
+ std::vector<std::string> files;
+ std::string test_dir;
+ Env::Default()->GetTestDirectory(&test_dir);
+ Env::Default()->GetChildren(test_dir, &files);
+ if (!FLAGS_use_existing_db) {
+ for (int i = 0; i < files.size(); i++) {
+ if (Slice(files[i]).starts_with("dbbench_sqlite3")) {
+ std::string file_name(test_dir);
+ file_name += "/";
+ file_name += files[i];
+ Env::Default()->DeleteFile(file_name.c_str());
+ }
+ }
+ }
+ }
+
+ ~Benchmark() {
+ int status = sqlite3_close(db_);
+ ErrorCheck(status);
+ }
+
+ void Run() {
+ PrintHeader();
+ Open();
+
+ const char* benchmarks = FLAGS_benchmarks;
+ while (benchmarks != NULL) {
+ const char* sep = strchr(benchmarks, ',');
+ Slice name;
+ if (sep == NULL) {
+ name = benchmarks;
+ benchmarks = NULL;
+ } else {
+ name = Slice(benchmarks, sep - benchmarks);
+ benchmarks = sep + 1;
+ }
+
+ bytes_ = 0;
+ Start();
+
+ bool known = true;
+ bool write_sync = false;
+ if (name == Slice("fillseq")) {
+ Write(write_sync, SEQUENTIAL, FRESH, num_, FLAGS_value_size, 1);
+ WalCheckpoint(db_);
+ } else if (name == Slice("fillseqbatch")) {
+ Write(write_sync, SEQUENTIAL, FRESH, num_, FLAGS_value_size, 1000);
+ WalCheckpoint(db_);
+ } else if (name == Slice("fillrandom")) {
+ Write(write_sync, RANDOM, FRESH, num_, FLAGS_value_size, 1);
+ WalCheckpoint(db_);
+ } else if (name == Slice("fillrandbatch")) {
+ Write(write_sync, RANDOM, FRESH, num_, FLAGS_value_size, 1000);
+ WalCheckpoint(db_);
+ } else if (name == Slice("overwrite")) {
+ Write(write_sync, RANDOM, EXISTING, num_, FLAGS_value_size, 1);
+ WalCheckpoint(db_);
+ } else if (name == Slice("overwritebatch")) {
+ Write(write_sync, RANDOM, EXISTING, num_, FLAGS_value_size, 1000);
+ WalCheckpoint(db_);
+ } else if (name == Slice("fillrandsync")) {
+ write_sync = true;
+ Write(write_sync, RANDOM, FRESH, num_ / 100, FLAGS_value_size, 1);
+ WalCheckpoint(db_);
+ } else if (name == Slice("fillseqsync")) {
+ write_sync = true;
+ Write(write_sync, SEQUENTIAL, FRESH, num_ / 100, FLAGS_value_size, 1);
+ WalCheckpoint(db_);
+ } else if (name == Slice("fillrand100K")) {
+ Write(write_sync, RANDOM, FRESH, num_ / 1000, 100 * 1000, 1);
+ WalCheckpoint(db_);
+ } else if (name == Slice("fillseq100K")) {
+ Write(write_sync, SEQUENTIAL, FRESH, num_ / 1000, 100 * 1000, 1);
+ WalCheckpoint(db_);
+ } else if (name == Slice("readseq")) {
+ ReadSequential();
+ } else if (name == Slice("readrandom")) {
+ Read(RANDOM, 1);
+ } else if (name == Slice("readrand100K")) {
+ int n = reads_;
+ reads_ /= 1000;
+ Read(RANDOM, 1);
+ reads_ = n;
+ } else {
+ known = false;
+ if (name != Slice()) { // No error message for empty name
+ fprintf(stderr, "unknown benchmark '%s'\n", name.ToString().c_str());
+ }
+ }
+ if (known) {
+ Stop(name);
+ }
+ }
+ }
+
+ void Open() {
+ assert(db_ == NULL);
+
+ int status;
+ char file_name[100];
+ char* err_msg = NULL;
+ db_num_++;
+
+ // Open database
+ std::string tmp_dir;
+ Env::Default()->GetTestDirectory(&tmp_dir);
+ snprintf(file_name, sizeof(file_name),
+ "%s/dbbench_sqlite3-%d.db",
+ tmp_dir.c_str(),
+ db_num_);
+ status = sqlite3_open(file_name, &db_);
+ if (status) {
+ fprintf(stderr, "open error: %s\n", sqlite3_errmsg(db_));
+ exit(1);
+ }
+
+ // Change SQLite cache size
+ char cache_size[100];
+ snprintf(cache_size, sizeof(cache_size), "PRAGMA cache_size = %d",
+ FLAGS_num_pages);
+ status = sqlite3_exec(db_, cache_size, NULL, NULL, &err_msg);
+ ExecErrorCheck(status, err_msg);
+
+ // FLAGS_page_size is defaulted to 1024
+ if (FLAGS_page_size != 1024) {
+ char page_size[100];
+ snprintf(page_size, sizeof(page_size), "PRAGMA page_size = %d",
+ FLAGS_page_size);
+ status = sqlite3_exec(db_, page_size, NULL, NULL, &err_msg);
+ ExecErrorCheck(status, err_msg);
+ }
+
+ // Change journal mode to WAL if WAL enabled flag is on
+ if (FLAGS_WAL_enabled) {
+ std::string WAL_stmt = "PRAGMA journal_mode = WAL";
+
+ // LevelDB's default cache size is a combined 4 MB
+ std::string WAL_checkpoint = "PRAGMA wal_autocheckpoint = 4096";
+ status = sqlite3_exec(db_, WAL_stmt.c_str(), NULL, NULL, &err_msg);
+ ExecErrorCheck(status, err_msg);
+ status = sqlite3_exec(db_, WAL_checkpoint.c_str(), NULL, NULL, &err_msg);
+ ExecErrorCheck(status, err_msg);
+ }
+
+ // Change locking mode to exclusive and create tables/index for database
+ std::string locking_stmt = "PRAGMA locking_mode = EXCLUSIVE";
+ std::string create_stmt =
+ "CREATE TABLE test (key blob, value blob, PRIMARY KEY(key))";
+ std::string stmt_array[] = { locking_stmt, create_stmt };
+ int stmt_array_length = sizeof(stmt_array) / sizeof(std::string);
+ for (int i = 0; i < stmt_array_length; i++) {
+ status = sqlite3_exec(db_, stmt_array[i].c_str(), NULL, NULL, &err_msg);
+ ExecErrorCheck(status, err_msg);
+ }
+ }
+
+ void Write(bool write_sync, Order order, DBState state,
+ int num_entries, int value_size, int entries_per_batch) {
+ // Create new database if state == FRESH
+ if (state == FRESH) {
+ if (FLAGS_use_existing_db) {
+ message_ = "skipping (--use_existing_db is true)";
+ return;
+ }
+ sqlite3_close(db_);
+ db_ = NULL;
+ Open();
+ Start();
+ }
+
+ if (num_entries != num_) {
+ char msg[100];
+ snprintf(msg, sizeof(msg), "(%d ops)", num_entries);
+ message_ = msg;
+ }
+
+ char* err_msg = NULL;
+ int status;
+
+ sqlite3_stmt *replace_stmt, *begin_trans_stmt, *end_trans_stmt;
+ std::string replace_str = "REPLACE INTO test (key, value) VALUES (?, ?)";
+ std::string begin_trans_str = "BEGIN TRANSACTION;";
+ std::string end_trans_str = "END TRANSACTION;";
+
+ // Check for synchronous flag in options
+ std::string sync_stmt = (write_sync) ? "PRAGMA synchronous = FULL" :
+ "PRAGMA synchronous = OFF";
+ status = sqlite3_exec(db_, sync_stmt.c_str(), NULL, NULL, &err_msg);
+ ExecErrorCheck(status, err_msg);
+
+ // Preparing sqlite3 statements
+ status = sqlite3_prepare_v2(db_, replace_str.c_str(), -1,
+ &replace_stmt, NULL);
+ ErrorCheck(status);
+ status = sqlite3_prepare_v2(db_, begin_trans_str.c_str(), -1,
+ &begin_trans_stmt, NULL);
+ ErrorCheck(status);
+ status = sqlite3_prepare_v2(db_, end_trans_str.c_str(), -1,
+ &end_trans_stmt, NULL);
+ ErrorCheck(status);
+
+ bool transaction = (entries_per_batch > 1);
+ for (int i = 0; i < num_entries; i += entries_per_batch) {
+ // Begin write transaction
+ if (FLAGS_transaction && transaction) {
+ status = sqlite3_step(begin_trans_stmt);
+ StepErrorCheck(status);
+ status = sqlite3_reset(begin_trans_stmt);
+ ErrorCheck(status);
+ }
+
+ // Create and execute SQL statements
+ for (int j = 0; j < entries_per_batch; j++) {
+ const char* value = gen_.Generate(value_size).data();
+
+ // Create values for key-value pair
+ const int k = (order == SEQUENTIAL) ? i + j :
+ (rand_.Next() % num_entries);
+ char key[100];
+ snprintf(key, sizeof(key), "%016d", k);
+
+ // Bind KV values into replace_stmt
+ status = sqlite3_bind_blob(replace_stmt, 1, key, 16, SQLITE_STATIC);
+ ErrorCheck(status);
+ status = sqlite3_bind_blob(replace_stmt, 2, value,
+ value_size, SQLITE_STATIC);
+ ErrorCheck(status);
+
+ // Execute replace_stmt
+ bytes_ += value_size + strlen(key);
+ status = sqlite3_step(replace_stmt);
+ StepErrorCheck(status);
+
+ // Reset SQLite statement for another use
+ status = sqlite3_clear_bindings(replace_stmt);
+ ErrorCheck(status);
+ status = sqlite3_reset(replace_stmt);
+ ErrorCheck(status);
+
+ FinishedSingleOp();
+ }
+
+ // End write transaction
+ if (FLAGS_transaction && transaction) {
+ status = sqlite3_step(end_trans_stmt);
+ StepErrorCheck(status);
+ status = sqlite3_reset(end_trans_stmt);
+ ErrorCheck(status);
+ }
+ }
+
+ status = sqlite3_finalize(replace_stmt);
+ ErrorCheck(status);
+ status = sqlite3_finalize(begin_trans_stmt);
+ ErrorCheck(status);
+ status = sqlite3_finalize(end_trans_stmt);
+ ErrorCheck(status);
+ }
+
+ void Read(Order order, int entries_per_batch) {
+ int status;
+ sqlite3_stmt *read_stmt, *begin_trans_stmt, *end_trans_stmt;
+
+ std::string read_str = "SELECT * FROM test WHERE key = ?";
+ std::string begin_trans_str = "BEGIN TRANSACTION;";
+ std::string end_trans_str = "END TRANSACTION;";
+
+ // Preparing sqlite3 statements
+ status = sqlite3_prepare_v2(db_, begin_trans_str.c_str(), -1,
+ &begin_trans_stmt, NULL);
+ ErrorCheck(status);
+ status = sqlite3_prepare_v2(db_, end_trans_str.c_str(), -1,
+ &end_trans_stmt, NULL);
+ ErrorCheck(status);
+ status = sqlite3_prepare_v2(db_, read_str.c_str(), -1, &read_stmt, NULL);
+ ErrorCheck(status);
+
+ bool transaction = (entries_per_batch > 1);
+ for (int i = 0; i < reads_; i += entries_per_batch) {
+ // Begin read transaction
+ if (FLAGS_transaction && transaction) {
+ status = sqlite3_step(begin_trans_stmt);
+ StepErrorCheck(status);
+ status = sqlite3_reset(begin_trans_stmt);
+ ErrorCheck(status);
+ }
+
+ // Create and execute SQL statements
+ for (int j = 0; j < entries_per_batch; j++) {
+ // Create key value
+ char key[100];
+ int k = (order == SEQUENTIAL) ? i + j : (rand_.Next() % reads_);
+ snprintf(key, sizeof(key), "%016d", k);
+
+ // Bind key value into read_stmt
+ status = sqlite3_bind_blob(read_stmt, 1, key, 16, SQLITE_STATIC);
+ ErrorCheck(status);
+
+ // Execute read statement
+ while ((status = sqlite3_step(read_stmt)) == SQLITE_ROW) {}
+ StepErrorCheck(status);
+
+ // Reset SQLite statement for another use
+ status = sqlite3_clear_bindings(read_stmt);
+ ErrorCheck(status);
+ status = sqlite3_reset(read_stmt);
+ ErrorCheck(status);
+ FinishedSingleOp();
+ }
+
+ // End read transaction
+ if (FLAGS_transaction && transaction) {
+ status = sqlite3_step(end_trans_stmt);
+ StepErrorCheck(status);
+ status = sqlite3_reset(end_trans_stmt);
+ ErrorCheck(status);
+ }
+ }
+
+ status = sqlite3_finalize(read_stmt);
+ ErrorCheck(status);
+ status = sqlite3_finalize(begin_trans_stmt);
+ ErrorCheck(status);
+ status = sqlite3_finalize(end_trans_stmt);
+ ErrorCheck(status);
+ }
+
+ void ReadSequential() {
+ int status;
+ sqlite3_stmt *pStmt;
+ std::string read_str = "SELECT * FROM test ORDER BY key";
+
+ status = sqlite3_prepare_v2(db_, read_str.c_str(), -1, &pStmt, NULL);
+ ErrorCheck(status);
+ for (int i = 0; i < reads_ && SQLITE_ROW == sqlite3_step(pStmt); i++) {
+ bytes_ += sqlite3_column_bytes(pStmt, 1) + sqlite3_column_bytes(pStmt, 2);
+ FinishedSingleOp();
+ }
+
+ status = sqlite3_finalize(pStmt);
+ ErrorCheck(status);
+ }
+
+};
+
+} // namespace leveldb
+
+int main(int argc, char** argv) {
+ std::string default_db_path;
+ for (int i = 1; i < argc; i++) {
+ double d;
+ int n;
+ char junk;
+ if (leveldb::Slice(argv[i]).starts_with("--benchmarks=")) {
+ FLAGS_benchmarks = argv[i] + strlen("--benchmarks=");
+ } else if (sscanf(argv[i], "--histogram=%d%c", &n, &junk) == 1 &&
+ (n == 0 || n == 1)) {
+ FLAGS_histogram = n;
+ } else if (sscanf(argv[i], "--compression_ratio=%lf%c", &d, &junk) == 1) {
+ FLAGS_compression_ratio = d;
+ } else if (sscanf(argv[i], "--use_existing_db=%d%c", &n, &junk) == 1 &&
+ (n == 0 || n == 1)) {
+ FLAGS_use_existing_db = n;
+ } else if (sscanf(argv[i], "--num=%d%c", &n, &junk) == 1) {
+ FLAGS_num = n;
+ } else if (sscanf(argv[i], "--reads=%d%c", &n, &junk) == 1) {
+ FLAGS_reads = n;
+ } else if (sscanf(argv[i], "--value_size=%d%c", &n, &junk) == 1) {
+ FLAGS_value_size = n;
+ } else if (leveldb::Slice(argv[i]) == leveldb::Slice("--no_transaction")) {
+ FLAGS_transaction = false;
+ } else if (sscanf(argv[i], "--page_size=%d%c", &n, &junk) == 1) {
+ FLAGS_page_size = n;
+ } else if (sscanf(argv[i], "--num_pages=%d%c", &n, &junk) == 1) {
+ FLAGS_num_pages = n;
+ } else if (sscanf(argv[i], "--WAL_enabled=%d%c", &n, &junk) == 1 &&
+ (n == 0 || n == 1)) {
+ FLAGS_WAL_enabled = n;
+ } else if (strncmp(argv[i], "--db=", 5) == 0) {
+ FLAGS_db = argv[i] + 5;
+ } else {
+ fprintf(stderr, "Invalid flag '%s'\n", argv[i]);
+ exit(1);
+ }
+ }
+
+ // Choose a location for the test database if none given with --db=<path>
+ if (FLAGS_db == NULL) {
+ leveldb::Env::Default()->GetTestDirectory(&default_db_path);
+ default_db_path += "/dbbench";
+ FLAGS_db = default_db_path.c_str();
+ }
+
+ leveldb::Benchmark benchmark;
+ benchmark.Run();
+ return 0;
+}
diff --git a/clipper/HyperLevelDB/doc/bench/db_bench_tree_db.cc b/clipper/HyperLevelDB/doc/bench/db_bench_tree_db.cc
new file mode 100644
index 0000000..ed86f03
--- /dev/null
+++ b/clipper/HyperLevelDB/doc/bench/db_bench_tree_db.cc
@@ -0,0 +1,528 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <kcpolydb.h>
+#include "util/histogram.h"
+#include "util/random.h"
+#include "util/testutil.h"
+
+// Comma-separated list of operations to run in the specified order
+// Actual benchmarks:
+//
+// fillseq -- write N values in sequential key order in async mode
+// fillrandom -- write N values in random key order in async mode
+// overwrite -- overwrite N values in random key order in async mode
+// fillseqsync -- write N/100 values in sequential key order in sync mode
+// fillrandsync -- write N/100 values in random key order in sync mode
+// fillrand100K -- write N/1000 100K values in random order in async mode
+// fillseq100K -- write N/1000 100K values in seq order in async mode
+// readseq -- read N times sequentially
+// readseq100K -- read N/1000 100K values in sequential order in async mode
+// readrand100K -- read N/1000 100K values in sequential order in async mode
+// readrandom -- read N times in random order
+static const char* FLAGS_benchmarks =
+ "fillseq,"
+ "fillseqsync,"
+ "fillrandsync,"
+ "fillrandom,"
+ "overwrite,"
+ "readrandom,"
+ "readseq,"
+ "fillrand100K,"
+ "fillseq100K,"
+ "readseq100K,"
+ "readrand100K,"
+ ;
+
+// Number of key/values to place in database
+static int FLAGS_num = 1000000;
+
+// Number of read operations to do. If negative, do FLAGS_num reads.
+static int FLAGS_reads = -1;
+
+// Size of each value
+static int FLAGS_value_size = 100;
+
+// Arrange to generate values that shrink to this fraction of
+// their original size after compression
+static double FLAGS_compression_ratio = 0.5;
+
+// Print histogram of operation timings
+static bool FLAGS_histogram = false;
+
+// Cache size. Default 4 MB
+static int FLAGS_cache_size = 4194304;
+
+// Page size. Default 1 KB
+static int FLAGS_page_size = 1024;
+
+// If true, do not destroy the existing database. If you set this
+// flag and also specify a benchmark that wants a fresh database, that
+// benchmark will fail.
+static bool FLAGS_use_existing_db = false;
+
+// Compression flag. If true, compression is on. If false, compression
+// is off.
+static bool FLAGS_compression = true;
+
+// Use the db with the following name.
+static const char* FLAGS_db = NULL;
+
+inline
+static void DBSynchronize(kyotocabinet::TreeDB* db_)
+{
+ // Synchronize will flush writes to disk
+ if (!db_->synchronize()) {
+ fprintf(stderr, "synchronize error: %s\n", db_->error().name());
+ }
+}
+
+namespace leveldb {
+
+// Helper for quickly generating random data.
+namespace {
+class RandomGenerator {
+ private:
+ std::string data_;
+ int pos_;
+
+ public:
+ RandomGenerator() {
+ // We use a limited amount of data over and over again and ensure
+ // that it is larger than the compression window (32KB), and also
+ // large enough to serve all typical value sizes we want to write.
+ Random rnd(301);
+ std::string piece;
+ while (data_.size() < 1048576) {
+ // Add a short fragment that is as compressible as specified
+ // by FLAGS_compression_ratio.
+ test::CompressibleString(&rnd, FLAGS_compression_ratio, 100, &piece);
+ data_.append(piece);
+ }
+ pos_ = 0;
+ }
+
+ Slice Generate(int len) {
+ if (pos_ + len > data_.size()) {
+ pos_ = 0;
+ assert(len < data_.size());
+ }
+ pos_ += len;
+ return Slice(data_.data() + pos_ - len, len);
+ }
+};
+
+static Slice TrimSpace(Slice s) {
+ int start = 0;
+ while (start < s.size() && isspace(s[start])) {
+ start++;
+ }
+ int limit = s.size();
+ while (limit > start && isspace(s[limit-1])) {
+ limit--;
+ }
+ return Slice(s.data() + start, limit - start);
+}
+
+} // namespace
+
+class Benchmark {
+ private:
+ kyotocabinet::TreeDB* db_;
+ int db_num_;
+ int num_;
+ int reads_;
+ double start_;
+ double last_op_finish_;
+ int64_t bytes_;
+ std::string message_;
+ Histogram hist_;
+ RandomGenerator gen_;
+ Random rand_;
+ kyotocabinet::LZOCompressor<kyotocabinet::LZO::RAW> comp_;
+
+ // State kept for progress messages
+ int done_;
+ int next_report_; // When to report next
+
+ void PrintHeader() {
+ const int kKeySize = 16;
+ PrintEnvironment();
+ fprintf(stdout, "Keys: %d bytes each\n", kKeySize);
+ fprintf(stdout, "Values: %d bytes each (%d bytes after compression)\n",
+ FLAGS_value_size,
+ static_cast<int>(FLAGS_value_size * FLAGS_compression_ratio + 0.5));
+ fprintf(stdout, "Entries: %d\n", num_);
+ fprintf(stdout, "RawSize: %.1f MB (estimated)\n",
+ ((static_cast<int64_t>(kKeySize + FLAGS_value_size) * num_)
+ / 1048576.0));
+ fprintf(stdout, "FileSize: %.1f MB (estimated)\n",
+ (((kKeySize + FLAGS_value_size * FLAGS_compression_ratio) * num_)
+ / 1048576.0));
+ PrintWarnings();
+ fprintf(stdout, "------------------------------------------------\n");
+ }
+
+ void PrintWarnings() {
+#if defined(__GNUC__) && !defined(__OPTIMIZE__)
+ fprintf(stdout,
+ "WARNING: Optimization is disabled: benchmarks unnecessarily slow\n"
+ );
+#endif
+#ifndef NDEBUG
+ fprintf(stdout,
+ "WARNING: Assertions are enabled; benchmarks unnecessarily slow\n");
+#endif
+ }
+
+ void PrintEnvironment() {
+ fprintf(stderr, "Kyoto Cabinet: version %s, lib ver %d, lib rev %d\n",
+ kyotocabinet::VERSION, kyotocabinet::LIBVER, kyotocabinet::LIBREV);
+
+#if defined(__linux)
+ time_t now = time(NULL);
+ fprintf(stderr, "Date: %s", ctime(&now)); // ctime() adds newline
+
+ FILE* cpuinfo = fopen("/proc/cpuinfo", "r");
+ if (cpuinfo != NULL) {
+ char line[1000];
+ int num_cpus = 0;
+ std::string cpu_type;
+ std::string cache_size;
+ while (fgets(line, sizeof(line), cpuinfo) != NULL) {
+ const char* sep = strchr(line, ':');
+ if (sep == NULL) {
+ continue;
+ }
+ Slice key = TrimSpace(Slice(line, sep - 1 - line));
+ Slice val = TrimSpace(Slice(sep + 1));
+ if (key == "model name") {
+ ++num_cpus;
+ cpu_type = val.ToString();
+ } else if (key == "cache size") {
+ cache_size = val.ToString();
+ }
+ }
+ fclose(cpuinfo);
+ fprintf(stderr, "CPU: %d * %s\n", num_cpus, cpu_type.c_str());
+ fprintf(stderr, "CPUCache: %s\n", cache_size.c_str());
+ }
+#endif
+ }
+
+ void Start() {
+ start_ = Env::Default()->NowMicros() * 1e-6;
+ bytes_ = 0;
+ message_.clear();
+ last_op_finish_ = start_;
+ hist_.Clear();
+ done_ = 0;
+ next_report_ = 100;
+ }
+
+ void FinishedSingleOp() {
+ if (FLAGS_histogram) {
+ double now = Env::Default()->NowMicros() * 1e-6;
+ double micros = (now - last_op_finish_) * 1e6;
+ hist_.Add(micros);
+ if (micros > 20000) {
+ fprintf(stderr, "long op: %.1f micros%30s\r", micros, "");
+ fflush(stderr);
+ }
+ last_op_finish_ = now;
+ }
+
+ done_++;
+ if (done_ >= next_report_) {
+ if (next_report_ < 1000) next_report_ += 100;
+ else if (next_report_ < 5000) next_report_ += 500;
+ else if (next_report_ < 10000) next_report_ += 1000;
+ else if (next_report_ < 50000) next_report_ += 5000;
+ else if (next_report_ < 100000) next_report_ += 10000;
+ else if (next_report_ < 500000) next_report_ += 50000;
+ else next_report_ += 100000;
+ fprintf(stderr, "... finished %d ops%30s\r", done_, "");
+ fflush(stderr);
+ }
+ }
+
+ void Stop(const Slice& name) {
+ double finish = Env::Default()->NowMicros() * 1e-6;
+
+ // Pretend at least one op was done in case we are running a benchmark
+ // that does not call FinishedSingleOp().
+ if (done_ < 1) done_ = 1;
+
+ if (bytes_ > 0) {
+ char rate[100];
+ snprintf(rate, sizeof(rate), "%6.1f MB/s",
+ (bytes_ / 1048576.0) / (finish - start_));
+ if (!message_.empty()) {
+ message_ = std::string(rate) + " " + message_;
+ } else {
+ message_ = rate;
+ }
+ }
+
+ fprintf(stdout, "%-12s : %11.3f micros/op;%s%s\n",
+ name.ToString().c_str(),
+ (finish - start_) * 1e6 / done_,
+ (message_.empty() ? "" : " "),
+ message_.c_str());
+ if (FLAGS_histogram) {
+ fprintf(stdout, "Microseconds per op:\n%s\n", hist_.ToString().c_str());
+ }
+ fflush(stdout);
+ }
+
+ public:
+ enum Order {
+ SEQUENTIAL,
+ RANDOM
+ };
+ enum DBState {
+ FRESH,
+ EXISTING
+ };
+
+ Benchmark()
+ : db_(NULL),
+ num_(FLAGS_num),
+ reads_(FLAGS_reads < 0 ? FLAGS_num : FLAGS_reads),
+ bytes_(0),
+ rand_(301) {
+ std::vector<std::string> files;
+ std::string test_dir;
+ Env::Default()->GetTestDirectory(&test_dir);
+ Env::Default()->GetChildren(test_dir.c_str(), &files);
+ if (!FLAGS_use_existing_db) {
+ for (int i = 0; i < files.size(); i++) {
+ if (Slice(files[i]).starts_with("dbbench_polyDB")) {
+ std::string file_name(test_dir);
+ file_name += "/";
+ file_name += files[i];
+ Env::Default()->DeleteFile(file_name.c_str());
+ }
+ }
+ }
+ }
+
+ ~Benchmark() {
+ if (!db_->close()) {
+ fprintf(stderr, "close error: %s\n", db_->error().name());
+ }
+ }
+
+ void Run() {
+ PrintHeader();
+ Open(false);
+
+ const char* benchmarks = FLAGS_benchmarks;
+ while (benchmarks != NULL) {
+ const char* sep = strchr(benchmarks, ',');
+ Slice name;
+ if (sep == NULL) {
+ name = benchmarks;
+ benchmarks = NULL;
+ } else {
+ name = Slice(benchmarks, sep - benchmarks);
+ benchmarks = sep + 1;
+ }
+
+ Start();
+
+ bool known = true;
+ bool write_sync = false;
+ if (name == Slice("fillseq")) {
+ Write(write_sync, SEQUENTIAL, FRESH, num_, FLAGS_value_size, 1);
+
+ } else if (name == Slice("fillrandom")) {
+ Write(write_sync, RANDOM, FRESH, num_, FLAGS_value_size, 1);
+ DBSynchronize(db_);
+ } else if (name == Slice("overwrite")) {
+ Write(write_sync, RANDOM, EXISTING, num_, FLAGS_value_size, 1);
+ DBSynchronize(db_);
+ } else if (name == Slice("fillrandsync")) {
+ write_sync = true;
+ Write(write_sync, RANDOM, FRESH, num_ / 100, FLAGS_value_size, 1);
+ DBSynchronize(db_);
+ } else if (name == Slice("fillseqsync")) {
+ write_sync = true;
+ Write(write_sync, SEQUENTIAL, FRESH, num_ / 100, FLAGS_value_size, 1);
+ DBSynchronize(db_);
+ } else if (name == Slice("fillrand100K")) {
+ Write(write_sync, RANDOM, FRESH, num_ / 1000, 100 * 1000, 1);
+ DBSynchronize(db_);
+ } else if (name == Slice("fillseq100K")) {
+ Write(write_sync, SEQUENTIAL, FRESH, num_ / 1000, 100 * 1000, 1);
+ DBSynchronize(db_);
+ } else if (name == Slice("readseq")) {
+ ReadSequential();
+ } else if (name == Slice("readrandom")) {
+ ReadRandom();
+ } else if (name == Slice("readrand100K")) {
+ int n = reads_;
+ reads_ /= 1000;
+ ReadRandom();
+ reads_ = n;
+ } else if (name == Slice("readseq100K")) {
+ int n = reads_;
+ reads_ /= 1000;
+ ReadSequential();
+ reads_ = n;
+ } else {
+ known = false;
+ if (name != Slice()) { // No error message for empty name
+ fprintf(stderr, "unknown benchmark '%s'\n", name.ToString().c_str());
+ }
+ }
+ if (known) {
+ Stop(name);
+ }
+ }
+ }
+
+ private:
+ void Open(bool sync) {
+ assert(db_ == NULL);
+
+ // Initialize db_
+ db_ = new kyotocabinet::TreeDB();
+ char file_name[100];
+ db_num_++;
+ std::string test_dir;
+ Env::Default()->GetTestDirectory(&test_dir);
+ snprintf(file_name, sizeof(file_name),
+ "%s/dbbench_polyDB-%d.kct",
+ test_dir.c_str(),
+ db_num_);
+
+ // Create tuning options and open the database
+ int open_options = kyotocabinet::PolyDB::OWRITER |
+ kyotocabinet::PolyDB::OCREATE;
+ int tune_options = kyotocabinet::TreeDB::TSMALL |
+ kyotocabinet::TreeDB::TLINEAR;
+ if (FLAGS_compression) {
+ tune_options |= kyotocabinet::TreeDB::TCOMPRESS;
+ db_->tune_compressor(&comp_);
+ }
+ db_->tune_options(tune_options);
+ db_->tune_page_cache(FLAGS_cache_size);
+ db_->tune_page(FLAGS_page_size);
+ db_->tune_map(256LL<<20);
+ if (sync) {
+ open_options |= kyotocabinet::PolyDB::OAUTOSYNC;
+ }
+ if (!db_->open(file_name, open_options)) {
+ fprintf(stderr, "open error: %s\n", db_->error().name());
+ }
+ }
+
+ void Write(bool sync, Order order, DBState state,
+ int num_entries, int value_size, int entries_per_batch) {
+ // Create new database if state == FRESH
+ if (state == FRESH) {
+ if (FLAGS_use_existing_db) {
+ message_ = "skipping (--use_existing_db is true)";
+ return;
+ }
+ delete db_;
+ db_ = NULL;
+ Open(sync);
+ Start(); // Do not count time taken to destroy/open
+ }
+
+ if (num_entries != num_) {
+ char msg[100];
+ snprintf(msg, sizeof(msg), "(%d ops)", num_entries);
+ message_ = msg;
+ }
+
+ // Write to database
+ for (int i = 0; i < num_entries; i++)
+ {
+ const int k = (order == SEQUENTIAL) ? i : (rand_.Next() % num_entries);
+ char key[100];
+ snprintf(key, sizeof(key), "%016d", k);
+ bytes_ += value_size + strlen(key);
+ std::string cpp_key = key;
+ if (!db_->set(cpp_key, gen_.Generate(value_size).ToString())) {
+ fprintf(stderr, "set error: %s\n", db_->error().name());
+ }
+ FinishedSingleOp();
+ }
+ }
+
+ void ReadSequential() {
+ kyotocabinet::DB::Cursor* cur = db_->cursor();
+ cur->jump();
+ std::string ckey, cvalue;
+ while (cur->get(&ckey, &cvalue, true)) {
+ bytes_ += ckey.size() + cvalue.size();
+ FinishedSingleOp();
+ }
+ delete cur;
+ }
+
+ void ReadRandom() {
+ std::string value;
+ for (int i = 0; i < reads_; i++) {
+ char key[100];
+ const int k = rand_.Next() % reads_;
+ snprintf(key, sizeof(key), "%016d", k);
+ db_->get(key, &value);
+ FinishedSingleOp();
+ }
+ }
+};
+
+} // namespace leveldb
+
+int main(int argc, char** argv) {
+ std::string default_db_path;
+ for (int i = 1; i < argc; i++) {
+ double d;
+ int n;
+ char junk;
+ if (leveldb::Slice(argv[i]).starts_with("--benchmarks=")) {
+ FLAGS_benchmarks = argv[i] + strlen("--benchmarks=");
+ } else if (sscanf(argv[i], "--compression_ratio=%lf%c", &d, &junk) == 1) {
+ FLAGS_compression_ratio = d;
+ } else if (sscanf(argv[i], "--histogram=%d%c", &n, &junk) == 1 &&
+ (n == 0 || n == 1)) {
+ FLAGS_histogram = n;
+ } else if (sscanf(argv[i], "--num=%d%c", &n, &junk) == 1) {
+ FLAGS_num = n;
+ } else if (sscanf(argv[i], "--reads=%d%c", &n, &junk) == 1) {
+ FLAGS_reads = n;
+ } else if (sscanf(argv[i], "--value_size=%d%c", &n, &junk) == 1) {
+ FLAGS_value_size = n;
+ } else if (sscanf(argv[i], "--cache_size=%d%c", &n, &junk) == 1) {
+ FLAGS_cache_size = n;
+ } else if (sscanf(argv[i], "--page_size=%d%c", &n, &junk) == 1) {
+ FLAGS_page_size = n;
+ } else if (sscanf(argv[i], "--compression=%d%c", &n, &junk) == 1 &&
+ (n == 0 || n == 1)) {
+ FLAGS_compression = (n == 1) ? true : false;
+ } else if (strncmp(argv[i], "--db=", 5) == 0) {
+ FLAGS_db = argv[i] + 5;
+ } else {
+ fprintf(stderr, "Invalid flag '%s'\n", argv[i]);
+ exit(1);
+ }
+ }
+
+ // Choose a location for the test database if none given with --db=<path>
+ if (FLAGS_db == NULL) {
+ leveldb::Env::Default()->GetTestDirectory(&default_db_path);
+ default_db_path += "/dbbench";
+ FLAGS_db = default_db_path.c_str();
+ }
+
+ leveldb::Benchmark benchmark;
+ benchmark.Run();
+ return 0;
+}
diff --git a/clipper/HyperLevelDB/doc/benchmark.html b/clipper/HyperLevelDB/doc/benchmark.html
new file mode 100644
index 0000000..c463977
--- /dev/null
+++ b/clipper/HyperLevelDB/doc/benchmark.html
@@ -0,0 +1,459 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>LevelDB Benchmarks</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style>
+body {
+ font-family:Helvetica,sans-serif;
+ padding:20px;
+}
+
+h2 {
+ padding-top:30px;
+}
+
+table.bn {
+ width:800px;
+ border-collapse:collapse;
+ border:0;
+ padding:0;
+}
+
+table.bnbase {
+ width:650px;
+}
+
+table.bn td {
+ padding:2px 0;
+}
+
+table.bn td.c1 {
+ font-weight:bold;
+ width:150px;
+}
+
+table.bn td.c1 div.e {
+ float:right;
+ font-weight:normal;
+}
+
+table.bn td.c2 {
+ width:150px;
+ text-align:right;
+ padding:2px;
+}
+
+table.bn td.c3 {
+ width:350px;
+}
+
+table.bn td.c4 {
+ width:150px;
+ font-size:small;
+ padding-left:4px;
+}
+
+/* chart bars */
+div.bldb {
+ background-color:#0255df;
+}
+
+div.bkct {
+ background-color:#df5555;
+}
+
+div.bsql {
+ background-color:#aadf55;
+}
+
+.code {
+ font-family:monospace;
+ font-size:large;
+}
+
+.todo {
+ color: red;
+}
+
+</style>
+</head>
+<body>
+<h1>LevelDB Benchmarks</h1>
+<p>Google, July 2011</p>
+<hr>
+
+<p>In order to test LevelDB's performance, we benchmark it against other well-established database implementations. We compare LevelDB (revision 39) against <a href="http://www.sqlite.org/">SQLite3</a> (version 3.7.6.3) and <a href="http://fallabs.com/kyotocabinet/spex.html">Kyoto Cabinet's</a> (version 1.2.67) TreeDB (a B+Tree based key-value store). We would like to acknowledge Scott Hess and Mikio Hirabayashi for their suggestions and contributions to the SQLite3 and Kyoto Cabinet ben [...]
+
+<p>Benchmarks were all performed on a six-core Intel(R) Xeon(R) CPU X5650 @ 2.67GHz, with 12288 KB of total L3 cache and 12 GB of DDR3 RAM at 1333 MHz. (Note that LevelDB uses at most two CPUs since the benchmarks are single threaded: one to run the benchmark, and one for background compactions.) We ran the benchmarks on two machines (with identical processors), one with an Ext3 file system and one with an Ext4 file system. The machine with the Ext3 file system has a SATA Hitachi HDS7210 [...]
+
+<h4>Benchmark Source Code</h4>
+<p>We wrote benchmark tools for SQLite and Kyoto TreeDB based on LevelDB's <span class="code">db_bench</span>. The code for each of the benchmarks resides here:</p>
+<ul>
+ <li> <b>LevelDB:</b> <a href="http://code.google.com/p/leveldb/source/browse/trunk/db/db_bench.cc">db/db_bench.cc</a>.</li>
+ <li> <b>SQLite:</b> <a href="http://code.google.com/p/leveldb/source/browse/#svn%2Ftrunk%2Fdoc%2Fbench%2Fdb_bench_sqlite3.cc">doc/bench/db_bench_sqlite3.cc</a>.</li>
+ <li> <b>Kyoto TreeDB:</b> <a href="http://code.google.com/p/leveldb/source/browse/#svn%2Ftrunk%2Fdoc%2Fbench%2Fdb_bench_tree_db.cc">doc/bench/db_bench_tree_db.cc</a>.</li>
+</ul>
+
+<h4>Custom Build Specifications</h4>
+<ul>
+<li>LevelDB: LevelDB was compiled with the <a href="http://code.google.com/p/google-perftools">tcmalloc</a> library and the <a href="http://code.google.com/p/snappy/">Snappy</a> compression library (revision 33). Assertions were disabled.</li>
+<li>TreeDB: TreeDB was compiled using the <a href="http://www.oberhumer.com/opensource/lzo/">LZO</a> compression library (version 2.03). Furthermore, we enabled the TSMALL and TLINEAR options when opening the database in order to reduce the footprint of each record.</li>
+<li>SQLite: We tuned SQLite's performance, by setting its locking mode to exclusive. We also enabled SQLite's <a href="http://www.sqlite.org/draft/wal.html">write-ahead logging</a>.</li>
+</ul>
+
+<h2>1. Baseline Performance</h2>
+<p>This section gives the baseline performance of all the
+databases. Following sections show how performance changes as various
+parameters are varied. For the baseline:</p>
+<ul>
+ <li> Each database is allowed 4 MB of cache memory.</li>
+ <li> Databases are opened in <em>asynchronous</em> write mode.
+ (LevelDB's sync option, TreeDB's OAUTOSYNC option, and
+ SQLite3's synchronous options are all turned off). I.e.,
+ every write is pushed to the operating system, but the
+ benchmark does not wait for the write to reach the disk.</li>
+ <li> Keys are 16 bytes each.</li>
+ <li> Value are 100 bytes each (with enough redundancy so that
+ a simple compressor shrinks them to 50% of their original
+ size).</li>
+ <li> Sequential reads/writes traverse the key space in increasing order.</li>
+ <li> Random reads/writes traverse the key space in random order.</li>
+</ul>
+
+<h3>A. Sequential Reads</h3>
+<table class="bn bnbase">
+<tr><td class="c1">LevelDB</td>
+ <td class="c2">4,030,000 ops/sec</td>
+ <td class="c3"><div class="bldb" style="width:350px"> </div></td>
+<tr><td class="c1">Kyoto TreeDB</td>
+ <td class="c2">1,010,000 ops/sec</td>
+ <td class="c3"><div class="bkct" style="width:95px"> </div></td>
+<tr><td class="c1">SQLite3</td>
+ <td class="c2">383,000 ops/sec</td>
+ <td class="c3"><div class="bsql" style="width:33px"> </div></td>
+</table>
+<h3>B. Random Reads</h3>
+<table class="bn bnbase">
+<tr><td class="c1">LevelDB</td>
+ <td class="c2">129,000 ops/sec</td>
+ <td class="c3"><div class="bldb" style="width:298px"> </div></td>
+<tr><td class="c1">Kyoto TreeDB</td>
+ <td class="c2">151,000 ops/sec</td>
+ <td class="c3"><div class="bkct" style="width:350px"> </div></td>
+<tr><td class="c1">SQLite3</td>
+ <td class="c2">134,000 ops/sec</td>
+ <td class="c3"><div class="bsql" style="width:310px"> </div></td>
+</table>
+<h3>C. Sequential Writes</h3>
+<table class="bn bnbase">
+<tr><td class="c1">LevelDB</td>
+ <td class="c2">779,000 ops/sec</td>
+ <td class="c3"><div class="bldb" style="width:350px"> </div></td>
+<tr><td class="c1">Kyoto TreeDB</td>
+ <td class="c2">342,000 ops/sec</td>
+ <td class="c3"><div class="bkct" style="width:154px"> </div></td>
+<tr><td class="c1">SQLite3</td>
+ <td class="c2">48,600 ops/sec</td>
+ <td class="c3"><div class="bsql" style="width:22px"> </div></td>
+</table>
+<h3>D. Random Writes</h3>
+<table class="bn bnbase">
+<tr><td class="c1">LevelDB</td>
+ <td class="c2">164,000 ops/sec</td>
+ <td class="c3"><div class="bldb" style="width:350px"> </div></td>
+<tr><td class="c1">Kyoto TreeDB</td>
+ <td class="c2">88,500 ops/sec</td>
+ <td class="c3"><div class="bkct" style="width:188px"> </div></td>
+<tr><td class="c1">SQLite3</td>
+ <td class="c2">9,860 ops/sec</td>
+ <td class="c3"><div class="bsql" style="width:21px"> </div></td>
+</table>
+
+<p>LevelDB outperforms both SQLite3 and TreeDB in sequential and random write operations and sequential read operations. Kyoto Cabinet has the fastest random read operations.</p>
+
+<h2>2. Write Performance under Different Configurations</h2>
+<h3>A. Large Values </h3>
+<p>For this benchmark, we start with an empty database, and write 100,000 byte values (~50% compressible). To keep the benchmark running time reasonable, we stop after writing 1000 values.</p>
+<h4>Sequential Writes</h4>
+<table class="bn bnbase">
+<tr><td class="c1">LevelDB</td>
+ <td class="c2">1,100 ops/sec</td>
+ <td class="c3"><div class="bldb" style="width:234px"> </div></td></tr>
+<tr><td class="c1">Kyoto TreeDB</td>
+ <td class="c2">1,000 ops/sec</td>
+ <td class="c3"><div class="bkct" style="width:224px"> </div></td></tr>
+<tr><td class="c1">SQLite3</td>
+ <td class="c2">1,600 ops/sec</td>
+ <td class="c3"><div class="bsql" style="width:350px"> </div></td></tr>
+</table>
+<h4>Random Writes</h4>
+<table class="bn bnbase">
+<tr><td class="c1">LevelDB</td>
+ <td class="c2">480 ops/sec</td>
+ <td class="c3"><div class="bldb" style="width:105px"> </div></td></tr>
+<tr><td class="c1">Kyoto TreeDB</td>
+ <td class="c2">1,100 ops/sec</td>
+ <td class="c3"><div class="bkct" style="width:240px"> </div></td></tr>
+<tr><td class="c1">SQLite3</td>
+ <td class="c2">1,600 ops/sec</td>
+ <td class="c3"><div class="bsql" style="width:350px"> </div></td></tr>
+</table>
+<p>LevelDB doesn't perform as well with large values of 100,000 bytes each. This is because LevelDB writes keys and values at least twice: first time to the transaction log, and second time (during a compaction) to a sorted file.
+With larger values, LevelDB's per-operation efficiency is swamped by the
+cost of extra copies of large values.</p>
+<h3>B. Batch Writes</h3>
+<p>A batch write is a set of writes that are applied atomically to the underlying database. A single batch of N writes may be significantly faster than N individual writes. The following benchmark writes one thousand batches where each batch contains one thousand 100-byte values. TreeDB does not support batch writes and is omitted from this benchmark.</p>
+<h4>Sequential Writes</h4>
+<table class="bn">
+<tr><td class="c1">LevelDB</td>
+ <td class="c2">840,000 entries/sec</td>
+ <td class="c3"><div class="bldb" style="width:350px"> </div></td>
+ <td class="c4">(1.08x baseline)</td></tr>
+<tr><td class="c1">SQLite3</td>
+ <td class="c2">124,000 entries/sec</td>
+ <td class="c3"><div class="bsql" style="width:52px"> </div></td>
+ <td class="c4">(2.55x baseline)</td></tr>
+</table>
+<h4>Random Writes</h4>
+<table class="bn">
+<tr><td class="c1">LevelDB</td>
+ <td class="c2">221,000 entries/sec</td>
+ <td class="c3"><div class="bldb" style="width:350px"> </div></td>
+ <td class="c4">(1.35x baseline)</td></tr>
+<tr><td class="c1">SQLite3</td>
+ <td class="c2">22,000 entries/sec</td>
+ <td class="c3"><div class="bsql" style="width:34px"> </div></td>
+ <td class="c4">(2.23x baseline)</td></tr>
+</table>
+
+<p>Because of the way LevelDB persistent storage is organized, batches of
+random writes are not much slower (only a factor of 4x) than batches
+of sequential writes.</p>
+
+<h3>C. Synchronous Writes</h3>
+<p>In the following benchmark, we enable the synchronous writing modes
+of all of the databases. Since this change significantly slows down the
+benchmark, we stop after 10,000 writes. For synchronous write tests, we've
+disabled hard drive write-caching (using `hdparm -W 0 [device]`).</p>
+<ul>
+ <li>For LevelDB, we set WriteOptions.sync = true.</li>
+ <li>In TreeDB, we enabled TreeDB's OAUTOSYNC option.</li>
+ <li>For SQLite3, we set "PRAGMA synchronous = FULL".</li>
+</ul>
+<h4>Sequential Writes</h4>
+<table class="bn">
+<tr><td class="c1">LevelDB</td>
+ <td class="c2">100 ops/sec</td>
+ <td class="c3"><div class="bldb" style="width:350px"> </div></td>
+ <td class="c4">(0.003x baseline)</td></tr>
+<tr><td class="c1">Kyoto TreeDB</td>
+ <td class="c2">7 ops/sec</td>
+ <td class="c3"><div class="bkct" style="width:27px"> </div></td>
+ <td class="c4">(0.0004x baseline)</td></tr>
+<tr><td class="c1">SQLite3</td>
+ <td class="c2">88 ops/sec</td>
+ <td class="c3"><div class="bsql" style="width:315px"> </div></td>
+ <td class="c4">(0.002x baseline)</td></tr>
+</table>
+<h4>Random Writes</h4>
+<table class="bn">
+<tr><td class="c1">LevelDB</td>
+ <td class="c2">100 ops/sec</td>
+ <td class="c3"><div class="bldb" style="width:350px"> </div></td>
+ <td class="c4">(0.015x baseline)</td></tr>
+<tr><td class="c1">Kyoto TreeDB</td>
+ <td class="c2">8 ops/sec</td>
+ <td class="c3"><div class="bkct" style="width:29px"> </div></td>
+ <td class="c4">(0.001x baseline)</td></tr>
+<tr><td class="c1">SQLite3</td>
+ <td class="c2">88 ops/sec</td>
+ <td class="c3"><div class="bsql" style="width:314px"> </div></td>
+ <td class="c4">(0.009x baseline)</td></tr>
+</table>
+
+<p>Also see the <code>ext4</code> performance numbers below
+since synchronous writes behave significantly differently
+on <code>ext3</code> and <code>ext4</code>.</p>
+
+<h3>D. Turning Compression Off</h3>
+
+<p>In the baseline measurements, LevelDB and TreeDB were using
+light-weight compression
+(<a href="http://code.google.com/p/snappy/">Snappy</a> for LevelDB,
+and <a href="http://www.oberhumer.com/opensource/lzo/">LZO</a> for
+TreeDB). SQLite3, by default does not use compression. The
+experiments below show what happens when compression is disabled in
+all of the databases (the SQLite3 numbers are just a copy of
+its baseline measurements):</p>
+
+<h4>Sequential Writes</h4>
+<table class="bn">
+<tr><td class="c1">LevelDB</td>
+ <td class="c2">594,000 ops/sec</td>
+ <td class="c3"><div class="bldb" style="width:350px"> </div></td>
+ <td class="c4">(0.76x baseline)</td></tr>
+<tr><td class="c1">Kyoto TreeDB</td>
+ <td class="c2">485,000 ops/sec</td>
+ <td class="c3"><div class="bkct" style="width:239px"> </div></td>
+ <td class="c4">(1.42x baseline)</td></tr>
+<tr><td class="c1">SQLite3</td>
+ <td class="c2">48,600 ops/sec</td>
+ <td class="c3"><div class="bsql" style="width:29px"> </div></td>
+ <td class="c4">(1.00x baseline)</td></tr>
+</table>
+<h4>Random Writes</h4>
+<table class="bn">
+<tr><td class="c1">LevelDB</td>
+ <td class="c2">135,000 ops/sec</td>
+ <td class="c3"><div class="bldb" style="width:296px"> </div></td>
+ <td class="c4">(0.82x baseline)</td></tr>
+<tr><td class="c1">Kyoto TreeDB</td>
+ <td class="c2">159,000 ops/sec</td>
+ <td class="c3"><div class="bkct" style="width:350px"> </div></td>
+ <td class="c4">(1.80x baseline)</td></tr>
+<tr><td class="c1">SQLite3</td>
+ <td class="c2">9,860 ops/sec</td>
+ <td class="c3"><div class="bsql" style="width:22px"> </div></td>
+ <td class="c4">(1.00x baseline)</td></tr>
+</table>
+
+<p>LevelDB's write performance is better with compression than without
+since compression decreases the amount of data that has to be written
+to disk. Therefore LevelDB users can leave compression enabled in
+most scenarios without having worry about a tradeoff between space
+usage and performance. TreeDB's performance on the other hand is
+better without compression than with compression. Presumably this is
+because TreeDB's compression library (LZO) is more expensive than
+LevelDB's compression library (Snappy).<p>
+
+<h3>E. Using More Memory</h3>
+<p>We increased the overall cache size for each database to 128 MB. For LevelDB, we partitioned 128 MB into a 120 MB write buffer and 8 MB of cache (up from 2 MB of write buffer and 2 MB of cache). For SQLite3, we kept the page size at 1024 bytes, but increased the number of pages to 131,072 (up from 4096). For TreeDB, we also kept the page size at 1024 bytes, but increased the cache size to 128 MB (up from 4 MB).</p>
+<h4>Sequential Writes</h4>
+<table class="bn">
+<tr><td class="c1">LevelDB</td>
+ <td class="c2">812,000 ops/sec</td>
+ <td class="c3"><div class="bldb" style="width:350px"> </div></td>
+ <td class="c4">(1.04x baseline)</td></tr>
+<tr><td class="c1">Kyoto TreeDB</td>
+ <td class="c2">321,000 ops/sec</td>
+ <td class="c3"><div class="bkct" style="width:138px"> </div></td>
+ <td class="c4">(0.94x baseline)</td></tr>
+<tr><td class="c1">SQLite3</td>
+ <td class="c2">48,500 ops/sec</td>
+ <td class="c3"><div class="bsql" style="width:21px"> </div></td>
+ <td class="c4">(1.00x baseline)</td></tr>
+</table>
+<h4>Random Writes</h4>
+<table class="bn">
+<tr><td class="c1">LevelDB</td>
+ <td class="c2">355,000 ops/sec</td>
+ <td class="c3"><div class="bldb" style="width:350px"> </div></td>
+ <td class="c4">(2.16x baseline)</td></tr>
+<tr><td class="c1">Kyoto TreeDB</td>
+ <td class="c2">284,000 ops/sec</td>
+ <td class="c3"><div class="bkct" style="width:280px"> </div></td>
+ <td class="c4">(3.21x baseline)</td></tr>
+<tr><td class="c1">SQLite3</td>
+ <td class="c2">9,670 ops/sec</td>
+ <td class="c3"><div class="bsql" style="width:10px"> </div></td>
+ <td class="c4">(0.98x baseline)</td></tr>
+</table>
+
+<p>SQLite's performance does not change substantially when compared to
+the baseline, but the random write performance for both LevelDB and
+TreeDB increases significantly. LevelDB's performance improves
+because a larger write buffer reduces the need to merge sorted files
+(since it creates a smaller number of larger sorted files). TreeDB's
+performance goes up because the entire database is available in memory
+for fast in-place updates.</p>
+
+ <h2>3. Read Performance under Different Configurations</h2>
+<h3>A. Larger Caches</h3>
+<p>We increased the overall memory usage to 128 MB for each database.
+For LevelDB, we allocated 8 MB to LevelDB's write buffer and 120 MB
+to LevelDB's cache. The other databases don't differentiate between a
+write buffer and a cache, so we simply set their cache size to 128
+MB.</p>
+<h4>Sequential Reads</h4>
+<table class="bn">
+<tr><td class="c1">LevelDB</td>
+ <td class="c2">5,210,000 ops/sec</td>
+ <td class="c3"><div class="bldb" style="width:350px"> </div></td>
+ <td class="c4">(1.29x baseline)</td></tr>
+<tr><td class="c1">Kyoto TreeDB</td>
+ <td class="c2">1,070,000 ops/sec</td>
+ <td class="c3"><div class="bkct" style="width:72px"> </div></td>
+ <td class="c4">(1.06x baseline)</td></tr>
+<tr><td class="c1">SQLite3</td>
+ <td class="c2">609,000 ops/sec</td>
+ <td class="c3"><div class="bsql" style="width:41px"> </div></td>
+ <td class="c4">(1.59x baseline)</td></tr>
+</table>
+
+<h4>Random Reads</h4>
+<table class="bn">
+<tr><td class="c1">LevelDB</td>
+ <td class="c2">190,000 ops/sec</td>
+ <td class="c3"><div class="bldb" style="width:144px"> </div></td>
+ <td class="c4">(1.47x baseline)</td></tr>
+<tr><td class="c1">Kyoto TreeDB</td>
+ <td class="c2">463,000 ops/sec</td>
+ <td class="c3"><div class="bkct" style="width:350px"> </div></td>
+ <td class="c4">(3.07x baseline)</td></tr>
+<tr><td class="c1">SQLite3</td>
+ <td class="c2">186,000 ops/sec</td>
+ <td class="c3"><div class="bsql" style="width:141px"> </div></td>
+ <td class="c4">(1.39x baseline)</td></tr>
+</table>
+
+<p>As expected, the read performance of all of the databases increases
+when the caches are enlarged. In particular, TreeDB seems to make
+very effective use of a cache that is large enough to hold the entire
+database.</p>
+
+<h3>B. No Compression Reads </h3>
+<p>For this benchmark, we populated a database with 1 million entries consisting of 16 byte keys and 100 byte values. We compiled LevelDB and Kyoto Cabinet without compression support, so results that are read out from the database are already uncompressed. We've listed the SQLite3 baseline read performance as a point of comparison.</p>
+<h4>Sequential Reads</h4>
+<table class="bn">
+<tr><td class="c1">LevelDB</td>
+ <td class="c2">4,880,000 ops/sec</td>
+ <td class="c3"><div class="bldb" style="width:350px"> </div></td>
+ <td class="c4">(1.21x baseline)</td></tr>
+<tr><td class="c1">Kyoto TreeDB</td>
+ <td class="c2">1,230,000 ops/sec</td>
+ <td class="c3"><div class="bkct" style="width:88px"> </div></td>
+ <td class="c4">(3.60x baseline)</td></tr>
+<tr><td class="c1">SQLite3</td>
+ <td class="c2">383,000 ops/sec</td>
+ <td class="c3"><div class="bsql" style="width:27px"> </div></td>
+ <td class="c4">(1.00x baseline)</td></tr>
+</table>
+<h4>Random Reads</h4>
+<table class="bn">
+<tr><td class="c1">LevelDB</td>
+ <td class="c2">149,000 ops/sec</td>
+ <td class="c3"><div class="bldb" style="width:300px"> </div></td>
+ <td class="c4">(1.16x baseline)</td></tr>
+<tr><td class="c1">Kyoto TreeDB</td>
+ <td class="c2">175,000 ops/sec</td>
+ <td class="c3"><div class="bkct" style="width:350px"> </div></td>
+ <td class="c4">(1.16x baseline)</td></tr>
+<tr><td class="c1">SQLite3</td>
+ <td class="c2">134,000 ops/sec</td>
+ <td class="c3"><div class="bsql" style="width:268px"> </div></td>
+ <td class="c4">(1.00x baseline)</td></tr>
+</table>
+
+<p>Performance of both LevelDB and TreeDB improves a small amount when
+compression is disabled. Note however that under different workloads,
+performance may very well be better with compression if it allows more
+of the working set to fit in memory.</p>
+
+<h2>Note about Ext4 Filesystems</h2>
+<p>The preceding numbers are for an ext3 file system. Synchronous writes are much slower under <a href="http://en.wikipedia.org/wiki/Ext4">ext4</a> (LevelDB drops to ~31 writes / second and TreeDB drops to ~5 writes / second; SQLite3's synchronous writes do not noticeably drop) due to ext4's different handling of <span class="code">fsync</span> / <span class="code">msync</span> calls. Even LevelDB's asynchronous write performance drops somewhat since it spreads its storage across multipl [...]
+
+<h2>Acknowledgements</h2>
+<p>Jeff Dean and Sanjay Ghemawat wrote LevelDB. Kevin Tseng wrote and compiled these benchmarks. Mikio Hirabayashi, Scott Hess, and Gabor Cselle provided help and advice.</p>
+</body>
+</html>
diff --git a/clipper/HyperLevelDB/doc/doc.css b/clipper/HyperLevelDB/doc/doc.css
new file mode 100644
index 0000000..700c564
--- /dev/null
+++ b/clipper/HyperLevelDB/doc/doc.css
@@ -0,0 +1,89 @@
+body {
+ margin-left: 0.5in;
+ margin-right: 0.5in;
+ background: white;
+ color: black;
+}
+
+h1 {
+ margin-left: -0.2in;
+ font-size: 14pt;
+}
+h2 {
+ margin-left: -0in;
+ font-size: 12pt;
+}
+h3 {
+ margin-left: -0in;
+}
+h4 {
+ margin-left: -0in;
+}
+hr {
+ margin-left: -0in;
+}
+
+/* Definition lists: definition term bold */
+dt {
+ font-weight: bold;
+}
+
+address {
+ text-align: center;
+}
+code,samp,var {
+ color: blue;
+}
+kbd {
+ color: #600000;
+}
+div.note p {
+ float: right;
+ width: 3in;
+ margin-right: 0%;
+ padding: 1px;
+ border: 2px solid #6060a0;
+ background-color: #fffff0;
+}
+
+ul {
+ margin-top: -0em;
+ margin-bottom: -0em;
+}
+
+ol {
+ margin-top: -0em;
+ margin-bottom: -0em;
+}
+
+UL.nobullets {
+ list-style-type: none;
+ list-style-image: none;
+ margin-left: -1em;
+}
+
+p {
+ margin: 1em 0 1em 0;
+ padding: 0 0 0 0;
+}
+
+pre {
+ line-height: 1.3em;
+ padding: 0.4em 0 0.8em 0;
+ margin: 0 0 0 0;
+ border: 0 0 0 0;
+ color: blue;
+}
+
+.datatable {
+ margin-left: auto;
+ margin-right: auto;
+ margin-top: 2em;
+ margin-bottom: 2em;
+ border: 1px solid;
+}
+
+.datatable td,th {
+ padding: 0 0.5em 0 0.5em;
+ text-align: right;
+}
diff --git a/clipper/HyperLevelDB/doc/impl.html b/clipper/HyperLevelDB/doc/impl.html
new file mode 100644
index 0000000..28817fe
--- /dev/null
+++ b/clipper/HyperLevelDB/doc/impl.html
@@ -0,0 +1,213 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="doc.css" />
+<title>Leveldb file layout and compactions</title>
+</head>
+
+<body>
+
+<h1>Files</h1>
+
+The implementation of leveldb is similar in spirit to the
+representation of a single
+<a href="http://research.google.com/archive/bigtable.html">
+Bigtable tablet (section 5.3)</a>.
+However the organization of the files that make up the representation
+is somewhat different and is explained below.
+
+<p>
+Each database is represented by a set of files stored in a directory.
+There are several different types of files as documented below:
+<p>
+<h2>Log files</h2>
+<p>
+A log file (*.log) stores a sequence of recent updates. Each update
+is appended to the current log file. When the log file reaches a
+pre-determined size (approximately 4MB by default), it is converted
+to a sorted table (see below) and a new log file is created for future
+updates.
+<p>
+A copy of the current log file is kept in an in-memory structure (the
+<code>memtable</code>). This copy is consulted on every read so that read
+operations reflect all logged updates.
+<p>
+<h2>Sorted tables</h2>
+<p>
+A sorted table (*.sst) stores a sequence of entries sorted by key.
+Each entry is either a value for the key, or a deletion marker for the
+key. (Deletion markers are kept around to hide obsolete values
+present in older sorted tables).
+<p>
+The set of sorted tables are organized into a sequence of levels. The
+sorted table generated from a log file is placed in a special <code>young</code>
+level (also called level-0). When the number of young files exceeds a
+certain threshold (currently four), all of the young files are merged
+together with all of the overlapping level-1 files to produce a
+sequence of new level-1 files (we create a new level-1 file for every
+2MB of data.)
+<p>
+Files in the young level may contain overlapping keys. However files
+in other levels have distinct non-overlapping key ranges. Consider
+level number L where L >= 1. When the combined size of files in
+level-L exceeds (10^L) MB (i.e., 10MB for level-1, 100MB for level-2,
+...), one file in level-L, and all of the overlapping files in
+level-(L+1) are merged to form a set of new files for level-(L+1).
+These merges have the effect of gradually migrating new updates from
+the young level to the largest level using only bulk reads and writes
+(i.e., minimizing expensive seeks).
+
+<h2>Manifest</h2>
+<p>
+A MANIFEST file lists the set of sorted tables that make up each
+level, the corresponding key ranges, and other important metadata.
+A new MANIFEST file (with a new number embedded in the file name)
+is created whenever the database is reopened. The MANIFEST file is
+formatted as a log, and changes made to the serving state (as files
+are added or removed) are appended to this log.
+<p>
+<h2>Current</h2>
+<p>
+CURRENT is a simple text file that contains the name of the latest
+MANIFEST file.
+<p>
+<h2>Info logs</h2>
+<p>
+Informational messages are printed to files named LOG and LOG.old.
+<p>
+<h2>Others</h2>
+<p>
+Other files used for miscellaneous purposes may also be present
+(LOCK, *.dbtmp).
+
+<h1>Level 0</h1>
+When the log file grows above a certain size (1MB by default):
+<ul>
+<li>Create a brand new memtable and log file and direct future updates here
+<li>In the background:
+<ul>
+<li>Write the contents of the previous memtable to an sstable
+<li>Discard the memtable
+<li>Delete the old log file and the old memtable
+<li>Add the new sstable to the young (level-0) level.
+</ul>
+</ul>
+
+<h1>Compactions</h1>
+
+<p>
+When the size of level L exceeds its limit, we compact it in a
+background thread. The compaction picks a file from level L and all
+overlapping files from the next level L+1. Note that if a level-L
+file overlaps only part of a level-(L+1) file, the entire file at
+level-(L+1) is used as an input to the compaction and will be
+discarded after the compaction. Aside: because level-0 is special
+(files in it may overlap each other), we treat compactions from
+level-0 to level-1 specially: a level-0 compaction may pick more than
+one level-0 file in case some of these files overlap each other.
+
+<p>
+A compaction merges the contents of the picked files to produce a
+sequence of level-(L+1) files. We switch to producing a new
+level-(L+1) file after the current output file has reached the target
+file size (2MB). We also switch to a new output file when the key
+range of the current output file has grown enough to overlap more then
+ten level-(L+2) files. This last rule ensures that a later compaction
+of a level-(L+1) file will not pick up too much data from level-(L+2).
+
+<p>
+The old files are discarded and the new files are added to the serving
+state.
+
+<p>
+Compactions for a particular level rotate through the key space. In
+more detail, for each level L, we remember the ending key of the last
+compaction at level L. The next compaction for level L will pick the
+first file that starts after this key (wrapping around to the
+beginning of the key space if there is no such file).
+
+<p>
+Compactions drop overwritten values. They also drop deletion markers
+if there are no higher numbered levels that contain a file whose range
+overlaps the current key.
+
+<h2>Timing</h2>
+
+Level-0 compactions will read up to four 1MB files from level-0, and
+at worst all the level-1 files (10MB). I.e., we will read 14MB and
+write 14MB.
+
+<p>
+Other than the special level-0 compactions, we will pick one 2MB file
+from level L. In the worst case, this will overlap ~ 12 files from
+level L+1 (10 because level-(L+1) is ten times the size of level-L,
+and another two at the boundaries since the file ranges at level-L
+will usually not be aligned with the file ranges at level-L+1). The
+compaction will therefore read 26MB and write 26MB. Assuming a disk
+IO rate of 100MB/s (ballpark range for modern drives), the worst
+compaction cost will be approximately 0.5 second.
+
+<p>
+If we throttle the background writing to something small, say 10% of
+the full 100MB/s speed, a compaction may take up to 5 seconds. If the
+user is writing at 10MB/s, we might build up lots of level-0 files
+(~50 to hold the 5*10MB). This may signficantly increase the cost of
+reads due to the overhead of merging more files together on every
+read.
+
+<p>
+Solution 1: To reduce this problem, we might want to increase the log
+switching threshold when the number of level-0 files is large. Though
+the downside is that the larger this threshold, the more memory we will
+need to hold the corresponding memtable.
+
+<p>
+Solution 2: We might want to decrease write rate artificially when the
+number of level-0 files goes up.
+
+<p>
+Solution 3: We work on reducing the cost of very wide merges.
+Perhaps most of the level-0 files will have their blocks sitting
+uncompressed in the cache and we will only need to worry about the
+O(N) complexity in the merging iterator.
+
+<h2>Number of files</h2>
+
+Instead of always making 2MB files, we could make larger files for
+larger levels to reduce the total file count, though at the expense of
+more bursty compactions. Alternatively, we could shard the set of
+files into multiple directories.
+
+<p>
+An experiment on an <code>ext3</code> filesystem on Feb 04, 2011 shows
+the following timings to do 100K file opens in directories with
+varying number of files:
+<table class="datatable">
+<tr><th>Files in directory</th><th>Microseconds to open a file</th></tr>
+<tr><td>1000</td><td>9</td>
+<tr><td>10000</td><td>10</td>
+<tr><td>100000</td><td>16</td>
+</table>
+So maybe even the sharding is not necessary on modern filesystems?
+
+<h1>Recovery</h1>
+
+<ul>
+<li> Read CURRENT to find name of the latest committed MANIFEST
+<li> Read the named MANIFEST file
+<li> Clean up stale files
+<li> We could open all sstables here, but it is probably better to be lazy...
+<li> Convert log chunk to a new level-0 sstable
+<li> Start directing new writes to a new log file with recovered sequence#
+</ul>
+
+<h1>Garbage collection of files</h1>
+
+<code>DeleteObsoleteFiles()</code> is called at the end of every
+compaction and at the end of recovery. It finds the names of all
+files in the database. It deletes all log files that are not the
+current log file. It deletes all table files that are not referenced
+from some level and are not the output of an active compaction.
+
+</body>
+</html>
diff --git a/clipper/HyperLevelDB/doc/index.html b/clipper/HyperLevelDB/doc/index.html
new file mode 100644
index 0000000..3ed0ed9
--- /dev/null
+++ b/clipper/HyperLevelDB/doc/index.html
@@ -0,0 +1,549 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="doc.css" />
+<title>Leveldb</title>
+</head>
+
+<body>
+<h1>Leveldb</h1>
+<address>Jeff Dean, Sanjay Ghemawat</address>
+<p>
+The <code>leveldb</code> library provides a persistent key value store. Keys and
+values are arbitrary byte arrays. The keys are ordered within the key
+value store according to a user-specified comparator function.
+
+<p>
+<h1>Opening A Database</h1>
+<p>
+A <code>leveldb</code> database has a name which corresponds to a file system
+directory. All of the contents of database are stored in this
+directory. The following example shows how to open a database,
+creating it if necessary:
+<p>
+<pre>
+ #include <assert>
+ #include "leveldb/db.h"
+
+ leveldb::DB* db;
+ leveldb::Options options;
+ options.create_if_missing = true;
+ leveldb::Status status = leveldb::DB::Open(options, "/tmp/testdb", &db);
+ assert(status.ok());
+ ...
+</pre>
+If you want to raise an error if the database already exists, add
+the following line before the <code>leveldb::DB::Open</code> call:
+<pre>
+ options.error_if_exists = true;
+</pre>
+<h1>Status</h1>
+<p>
+You may have noticed the <code>leveldb::Status</code> type above. Values of this
+type are returned by most functions in <code>leveldb</code> that may encounter an
+error. You can check if such a result is ok, and also print an
+associated error message:
+<p>
+<pre>
+ leveldb::Status s = ...;
+ if (!s.ok()) cerr << s.ToString() << endl;
+</pre>
+<h1>Closing A Database</h1>
+<p>
+When you are done with a database, just delete the database object.
+Example:
+<p>
+<pre>
+ ... open the db as described above ...
+ ... do something with db ...
+ delete db;
+</pre>
+<h1>Reads And Writes</h1>
+<p>
+The database provides <code>Put</code>, <code>Delete</code>, and <code>Get</code> methods to
+modify/query the database. For example, the following code
+moves the value stored under key1 to key2.
+<pre>
+ std::string value;
+ leveldb::Status s = db->Get(leveldb::ReadOptions(), key1, &value);
+ if (s.ok()) s = db->Put(leveldb::WriteOptions(), key2, value);
+ if (s.ok()) s = db->Delete(leveldb::WriteOptions(), key1);
+</pre>
+
+<h1>Atomic Updates</h1>
+<p>
+Note that if the process dies after the Put of key2 but before the
+delete of key1, the same value may be left stored under multiple keys.
+Such problems can be avoided by using the <code>WriteBatch</code> class to
+atomically apply a set of updates:
+<p>
+<pre>
+ #include "leveldb/write_batch.h"
+ ...
+ std::string value;
+ leveldb::Status s = db->Get(leveldb::ReadOptions(), key1, &value);
+ if (s.ok()) {
+ leveldb::WriteBatch batch;
+ batch.Delete(key1);
+ batch.Put(key2, value);
+ s = db->Write(leveldb::WriteOptions(), &batch);
+ }
+</pre>
+The <code>WriteBatch</code> holds a sequence of edits to be made to the database,
+and these edits within the batch are applied in order. Note that we
+called <code>Delete</code> before <code>Put</code> so that if <code>key1</code> is identical to <code>key2</code>,
+we do not end up erroneously dropping the value entirely.
+<p>
+Apart from its atomicity benefits, <code>WriteBatch</code> may also be used to
+speed up bulk updates by placing lots of individual mutations into the
+same batch.
+
+<h1>Synchronous Writes</h1>
+By default, each write to <code>leveldb</code> is asynchronous: it
+returns after pushing the write from the process into the operating
+system. The transfer from operating system memory to the underlying
+persistent storage happens asynchronously. The <code>sync</code> flag
+can be turned on for a particular write to make the write operation
+not return until the data being written has been pushed all the way to
+persistent storage. (On Posix systems, this is implemented by calling
+either <code>fsync(...)</code> or <code>fdatasync(...)</code> or
+<code>msync(..., MS_SYNC)</code> before the write operation returns.)
+<pre>
+ leveldb::WriteOptions write_options;
+ write_options.sync = true;
+ db->Put(write_options, ...);
+</pre>
+Asynchronous writes are often more than a thousand times as fast as
+synchronous writes. The downside of asynchronous writes is that a
+crash of the machine may cause the last few updates to be lost. Note
+that a crash of just the writing process (i.e., not a reboot) will not
+cause any loss since even when <code>sync</code> is false, an update
+is pushed from the process memory into the operating system before it
+is considered done.
+
+<p>
+Asynchronous writes can often be used safely. For example, when
+loading a large amount of data into the database you can handle lost
+updates by restarting the bulk load after a crash. A hybrid scheme is
+also possible where every Nth write is synchronous, and in the event
+of a crash, the bulk load is restarted just after the last synchronous
+write finished by the previous run. (The synchronous write can update
+a marker that describes where to restart on a crash.)
+
+<p>
+<code>WriteBatch</code> provides an alternative to asynchronous writes.
+Multiple updates may be placed in the same <code>WriteBatch</code> and
+applied together using a synchronous write (i.e.,
+<code>write_options.sync</code> is set to true). The extra cost of
+the synchronous write will be amortized across all of the writes in
+the batch.
+
+<p>
+<h1>Concurrency</h1>
+<p>
+A database may only be opened by one process at a time.
+The <code>leveldb</code> implementation acquires a lock from the
+operating system to prevent misuse. Within a single process, the
+same <code>leveldb::DB</code> object may be safely shared by multiple
+concurrent threads. I.e., different threads may write into or fetch
+iterators or call <code>Get</code> on the same database without any
+external synchronization (the leveldb implementation will
+automatically do the required synchronization). However other objects
+(like Iterator and WriteBatch) may require external synchronization.
+If two threads share such an object, they must protect access to it
+using their own locking protocol. More details are available in
+the public header files.
+<p>
+<h1>Iteration</h1>
+<p>
+The following example demonstrates how to print all key,value pairs
+in a database.
+<p>
+<pre>
+ leveldb::Iterator* it = db->NewIterator(leveldb::ReadOptions());
+ for (it->SeekToFirst(); it->Valid(); it->Next()) {
+ cout << it->key().ToString() << ": " << it->value().ToString() << endl;
+ }
+ assert(it->status().ok()); // Check for any errors found during the scan
+ delete it;
+</pre>
+The following variation shows how to process just the keys in the
+range <code>[start,limit)</code>:
+<p>
+<pre>
+ for (it->Seek(start);
+ it->Valid() && it->key().ToString() < limit;
+ it->Next()) {
+ ...
+ }
+</pre>
+You can also process entries in reverse order. (Caveat: reverse
+iteration may be somewhat slower than forward iteration.)
+<p>
+<pre>
+ for (it->SeekToLast(); it->Valid(); it->Prev()) {
+ ...
+ }
+</pre>
+<h1>Snapshots</h1>
+<p>
+Snapshots provide consistent read-only views over the entire state of
+the key-value store. <code>ReadOptions::snapshot</code> may be non-NULL to indicate
+that a read should operate on a particular version of the DB state.
+If <code>ReadOptions::snapshot</code> is NULL, the read will operate on an
+implicit snapshot of the current state.
+<p>
+Snapshots are created by the DB::GetSnapshot() method:
+<p>
+<pre>
+ leveldb::ReadOptions options;
+ options.snapshot = db->GetSnapshot();
+ ... apply some updates to db ...
+ leveldb::Iterator* iter = db->NewIterator(options);
+ ... read using iter to view the state when the snapshot was created ...
+ delete iter;
+ db->ReleaseSnapshot(options.snapshot);
+</pre>
+Note that when a snapshot is no longer needed, it should be released
+using the DB::ReleaseSnapshot interface. This allows the
+implementation to get rid of state that was being maintained just to
+support reading as of that snapshot.
+<h1>Slice</h1>
+<p>
+The return value of the <code>it->key()</code> and <code>it->value()</code> calls above
+are instances of the <code>leveldb::Slice</code> type. <code>Slice</code> is a simple
+structure that contains a length and a pointer to an external byte
+array. Returning a <code>Slice</code> is a cheaper alternative to returning a
+<code>std::string</code> since we do not need to copy potentially large keys and
+values. In addition, <code>leveldb</code> methods do not return null-terminated
+C-style strings since <code>leveldb</code> keys and values are allowed to
+contain '\0' bytes.
+<p>
+C++ strings and null-terminated C-style strings can be easily converted
+to a Slice:
+<p>
+<pre>
+ leveldb::Slice s1 = "hello";
+
+ std::string str("world");
+ leveldb::Slice s2 = str;
+</pre>
+A Slice can be easily converted back to a C++ string:
+<pre>
+ std::string str = s1.ToString();
+ assert(str == std::string("hello"));
+</pre>
+Be careful when using Slices since it is up to the caller to ensure that
+the external byte array into which the Slice points remains live while
+the Slice is in use. For example, the following is buggy:
+<p>
+<pre>
+ leveldb::Slice slice;
+ if (...) {
+ std::string str = ...;
+ slice = str;
+ }
+ Use(slice);
+</pre>
+When the <code>if</code> statement goes out of scope, <code>str</code> will be destroyed and the
+backing storage for <code>slice</code> will disappear.
+<p>
+<h1>Comparators</h1>
+<p>
+The preceding examples used the default ordering function for key,
+which orders bytes lexicographically. You can however supply a custom
+comparator when opening a database. For example, suppose each
+database key consists of two numbers and we should sort by the first
+number, breaking ties by the second number. First, define a proper
+subclass of <code>leveldb::Comparator</code> that expresses these rules:
+<p>
+<pre>
+ class TwoPartComparator : public leveldb::Comparator {
+ public:
+ // Three-way comparison function:
+ // if a < b: negative result
+ // if a > b: positive result
+ // else: zero result
+ int Compare(const leveldb::Slice& a, const leveldb::Slice& b) const {
+ int a1, a2, b1, b2;
+ ParseKey(a, &a1, &a2);
+ ParseKey(b, &b1, &b2);
+ if (a1 < b1) return -1;
+ if (a1 > b1) return +1;
+ if (a2 < b2) return -1;
+ if (a2 > b2) return +1;
+ return 0;
+ }
+
+ // Ignore the following methods for now:
+ const char* Name() const { return "TwoPartComparator"; }
+ void FindShortestSeparator(std::string*, const leveldb::Slice&) const { }
+ void FindShortSuccessor(std::string*) const { }
+ };
+</pre>
+Now create a database using this custom comparator:
+<p>
+<pre>
+ TwoPartComparator cmp;
+ leveldb::DB* db;
+ leveldb::Options options;
+ options.create_if_missing = true;
+ options.comparator = &cmp;
+ leveldb::Status status = leveldb::DB::Open(options, "/tmp/testdb", &db);
+ ...
+</pre>
+<h2>Backwards compatibility</h2>
+<p>
+The result of the comparator's <code>Name</code> method is attached to the
+database when it is created, and is checked on every subsequent
+database open. If the name changes, the <code>leveldb::DB::Open</code> call will
+fail. Therefore, change the name if and only if the new key format
+and comparison function are incompatible with existing databases, and
+it is ok to discard the contents of all existing databases.
+<p>
+You can however still gradually evolve your key format over time with
+a little bit of pre-planning. For example, you could store a version
+number at the end of each key (one byte should suffice for most uses).
+When you wish to switch to a new key format (e.g., adding an optional
+third part to the keys processed by <code>TwoPartComparator</code>),
+(a) keep the same comparator name (b) increment the version number
+for new keys (c) change the comparator function so it uses the
+version numbers found in the keys to decide how to interpret them.
+<p>
+<h1>Performance</h1>
+<p>
+Performance can be tuned by changing the default values of the
+types defined in <code>include/leveldb/options.h</code>.
+
+<p>
+<h2>Block size</h2>
+<p>
+<code>leveldb</code> groups adjacent keys together into the same block and such a
+block is the unit of transfer to and from persistent storage. The
+default block size is approximately 4096 uncompressed bytes.
+Applications that mostly do bulk scans over the contents of the
+database may wish to increase this size. Applications that do a lot
+of point reads of small values may wish to switch to a smaller block
+size if performance measurements indicate an improvement. There isn't
+much benefit in using blocks smaller than one kilobyte, or larger than
+a few megabytes. Also note that compression will be more effective
+with larger block sizes.
+<p>
+<h2>Compression</h2>
+<p>
+Each block is individually compressed before being written to
+persistent storage. Compression is on by default since the default
+compression method is very fast, and is automatically disabled for
+uncompressible data. In rare cases, applications may want to disable
+compression entirely, but should only do so if benchmarks show a
+performance improvement:
+<p>
+<pre>
+ leveldb::Options options;
+ options.compression = leveldb::kNoCompression;
+ ... leveldb::DB::Open(options, name, ...) ....
+</pre>
+<h2>Cache</h2>
+<p>
+The contents of the database are stored in a set of files in the
+filesystem and each file stores a sequence of compressed blocks. If
+<code>options.cache</code> is non-NULL, it is used to cache frequently used
+uncompressed block contents.
+<p>
+<pre>
+ #include "leveldb/cache.h"
+
+ leveldb::Options options;
+ options.cache = leveldb::NewLRUCache(100 * 1048576); // 100MB cache
+ leveldb::DB* db;
+ leveldb::DB::Open(options, name, &db);
+ ... use the db ...
+ delete db
+ delete options.cache;
+</pre>
+Note that the cache holds uncompressed data, and therefore it should
+be sized according to application level data sizes, without any
+reduction from compression. (Caching of compressed blocks is left to
+the operating system buffer cache, or any custom <code>Env</code>
+implementation provided by the client.)
+<p>
+When performing a bulk read, the application may wish to disable
+caching so that the data processed by the bulk read does not end up
+displacing most of the cached contents. A per-iterator option can be
+used to achieve this:
+<p>
+<pre>
+ leveldb::ReadOptions options;
+ options.fill_cache = false;
+ leveldb::Iterator* it = db->NewIterator(options);
+ for (it->SeekToFirst(); it->Valid(); it->Next()) {
+ ...
+ }
+</pre>
+<h2>Key Layout</h2>
+<p>
+Note that the unit of disk transfer and caching is a block. Adjacent
+keys (according to the database sort order) will usually be placed in
+the same block. Therefore the application can improve its performance
+by placing keys that are accessed together near each other and placing
+infrequently used keys in a separate region of the key space.
+<p>
+For example, suppose we are implementing a simple file system on top
+of <code>leveldb</code>. The types of entries we might wish to store are:
+<p>
+<pre>
+ filename -> permission-bits, length, list of file_block_ids
+ file_block_id -> data
+</pre>
+We might want to prefix <code>filename</code> keys with one letter (say '/') and the
+<code>file_block_id</code> keys with a different letter (say '0') so that scans
+over just the metadata do not force us to fetch and cache bulky file
+contents.
+<p>
+<h2>Filters</h2>
+<p>
+Because of the way <code>leveldb</code> data is organized on disk,
+a single <code>Get()</code> call may involve multiple reads from disk.
+The optional <code>FilterPolicy</code> mechanism can be used to reduce
+the number of disk reads substantially.
+<pre>
+ leveldb::Options options;
+ options.filter_policy = NewBloomFilterPolicy(10);
+ leveldb::DB* db;
+ leveldb::DB::Open(options, "/tmp/testdb", &db);
+ ... use the database ...
+ delete db;
+ delete options.filter_policy;
+</pre>
+The preceding code associates a
+<a href="http://en.wikipedia.org/wiki/Bloom_filter">Bloom filter</a>
+based filtering policy with the database. Bloom filter based
+filtering relies on keeping some number of bits of data in memory per
+key (in this case 10 bits per key since that is the argument we passed
+to NewBloomFilterPolicy). This filter will reduce the number of unnecessary
+disk reads needed for <code>Get()</code> calls by a factor of
+approximately a 100. Increasing the bits per key will lead to a
+larger reduction at the cost of more memory usage. We recommend that
+applications whose working set does not fit in memory and that do a
+lot of random reads set a filter policy.
+<p>
+If you are using a custom comparator, you should ensure that the filter
+policy you are using is compatible with your comparator. For example,
+consider a comparator that ignores trailing spaces when comparing keys.
+<code>NewBloomFilterPolicy</code> must not be used with such a comparator.
+Instead, the application should provide a custom filter policy that
+also ignores trailing spaces. For example:
+<pre>
+ class CustomFilterPolicy : public leveldb::FilterPolicy {
+ private:
+ FilterPolicy* builtin_policy_;
+ public:
+ CustomFilterPolicy() : builtin_policy_(NewBloomFilterPolicy(10)) { }
+ ~CustomFilterPolicy() { delete builtin_policy_; }
+
+ const char* Name() const { return "IgnoreTrailingSpacesFilter"; }
+
+ void CreateFilter(const Slice* keys, int n, std::string* dst) const {
+ // Use builtin bloom filter code after removing trailing spaces
+ std::vector<Slice> trimmed(n);
+ for (int i = 0; i < n; i++) {
+ trimmed[i] = RemoveTrailingSpaces(keys[i]);
+ }
+ return builtin_policy_->CreateFilter(&trimmed[i], n, dst);
+ }
+
+ bool KeyMayMatch(const Slice& key, const Slice& filter) const {
+ // Use builtin bloom filter code after removing trailing spaces
+ return builtin_policy_->KeyMayMatch(RemoveTrailingSpaces(key), filter);
+ }
+ };
+</pre>
+<p>
+Advanced applications may provide a filter policy that does not use
+a bloom filter but uses some other mechanism for summarizing a set
+of keys. See <code>leveldb/filter_policy.h</code> for detail.
+<p>
+<h1>Checksums</h1>
+<p>
+<code>leveldb</code> associates checksums with all data it stores in the file system.
+There are two separate controls provided over how aggressively these
+checksums are verified:
+<p>
+<ul>
+<li> <code>ReadOptions::verify_checksums</code> may be set to true to force
+ checksum verification of all data that is read from the file system on
+ behalf of a particular read. By default, no such verification is
+ done.
+<p>
+<li> <code>Options::paranoid_checks</code> may be set to true before opening a
+ database to make the database implementation raise an error as soon as
+ it detects an internal corruption. Depending on which portion of the
+ database has been corrupted, the error may be raised when the database
+ is opened, or later by another database operation. By default,
+ paranoid checking is off so that the database can be used even if
+ parts of its persistent storage have been corrupted.
+<p>
+ If a database is corrupted (perhaps it cannot be opened when
+ paranoid checking is turned on), the <code>leveldb::RepairDB</code> function
+ may be used to recover as much of the data as possible
+<p>
+</ul>
+<h1>Approximate Sizes</h1>
+<p>
+The <code>GetApproximateSizes</code> method can used to get the approximate
+number of bytes of file system space used by one or more key ranges.
+<p>
+<pre>
+ leveldb::Range ranges[2];
+ ranges[0] = leveldb::Range("a", "c");
+ ranges[1] = leveldb::Range("x", "z");
+ uint64_t sizes[2];
+ leveldb::Status s = db->GetApproximateSizes(ranges, 2, sizes);
+</pre>
+The preceding call will set <code>sizes[0]</code> to the approximate number of
+bytes of file system space used by the key range <code>[a..c)</code> and
+<code>sizes[1]</code> to the approximate number of bytes used by the key range
+<code>[x..z)</code>.
+<p>
+<h1>Environment</h1>
+<p>
+All file operations (and other operating system calls) issued by the
+<code>leveldb</code> implementation are routed through a <code>leveldb::Env</code> object.
+Sophisticated clients may wish to provide their own <code>Env</code>
+implementation to get better control. For example, an application may
+introduce artificial delays in the file IO paths to limit the impact
+of <code>leveldb</code> on other activities in the system.
+<p>
+<pre>
+ class SlowEnv : public leveldb::Env {
+ .. implementation of the Env interface ...
+ };
+
+ SlowEnv env;
+ leveldb::Options options;
+ options.env = &env;
+ Status s = leveldb::DB::Open(options, ...);
+</pre>
+<h1>Porting</h1>
+<p>
+<code>leveldb</code> may be ported to a new platform by providing platform
+specific implementations of the types/methods/functions exported by
+<code>leveldb/port/port.h</code>. See <code>leveldb/port/port_example.h</code> for more
+details.
+<p>
+In addition, the new platform may need a new default <code>leveldb::Env</code>
+implementation. See <code>leveldb/util/env_posix.h</code> for an example.
+
+<h1>Other Information</h1>
+
+<p>
+Details about the <code>leveldb</code> implementation may be found in
+the following documents:
+<ul>
+<li> <a href="impl.html">Implementation notes</a>
+<li> <a href="table_format.txt">Format of an immutable Table file</a>
+<li> <a href="log_format.txt">Format of a log file</a>
+</ul>
+
+</body>
+</html>
diff --git a/clipper/HyperLevelDB/doc/log_format.txt b/clipper/HyperLevelDB/doc/log_format.txt
new file mode 100644
index 0000000..5228f62
--- /dev/null
+++ b/clipper/HyperLevelDB/doc/log_format.txt
@@ -0,0 +1,75 @@
+The log file contents are a sequence of 32KB blocks. The only
+exception is that the tail of the file may contain a partial block.
+
+Each block consists of a sequence of records:
+ block := record* trailer?
+ record :=
+ checksum: uint32 // crc32c of type and data[] ; little-endian
+ length: uint16 // little-endian
+ type: uint8 // One of FULL, FIRST, MIDDLE, LAST
+ data: uint8[length]
+
+A record never starts within the last six bytes of a block (since it
+won't fit). Any leftover bytes here form the trailer, which must
+consist entirely of zero bytes and must be skipped by readers.
+
+Aside: if exactly seven bytes are left in the current block, and a new
+non-zero length record is added, the writer must emit a FIRST record
+(which contains zero bytes of user data) to fill up the trailing seven
+bytes of the block and then emit all of the user data in subsequent
+blocks.
+
+More types may be added in the future. Some Readers may skip record
+types they do not understand, others may report that some data was
+skipped.
+
+FULL == 1
+FIRST == 2
+MIDDLE == 3
+LAST == 4
+
+The FULL record contains the contents of an entire user record.
+
+FIRST, MIDDLE, LAST are types used for user records that have been
+split into multiple fragments (typically because of block boundaries).
+FIRST is the type of the first fragment of a user record, LAST is the
+type of the last fragment of a user record, and MID is the type of all
+interior fragments of a user record.
+
+Example: consider a sequence of user records:
+ A: length 1000
+ B: length 97270
+ C: length 8000
+A will be stored as a FULL record in the first block.
+
+B will be split into three fragments: first fragment occupies the rest
+of the first block, second fragment occupies the entirety of the
+second block, and the third fragment occupies a prefix of the third
+block. This will leave six bytes free in the third block, which will
+be left empty as the trailer.
+
+C will be stored as a FULL record in the fourth block.
+
+===================
+
+Some benefits over the recordio format:
+
+(1) We do not need any heuristics for resyncing - just go to next
+block boundary and scan. If there is a corruption, skip to the next
+block. As a side-benefit, we do not get confused when part of the
+contents of one log file are embedded as a record inside another log
+file.
+
+(2) Splitting at approximate boundaries (e.g., for mapreduce) is
+simple: find the next block boundary and skip records until we
+hit a FULL or FIRST record.
+
+(3) We do not need extra buffering for large records.
+
+Some downsides compared to recordio format:
+
+(1) No packing of tiny records. This could be fixed by adding a new
+record type, so it is a shortcoming of the current implementation,
+not necessarily the format.
+
+(2) No compression. Again, this could be fixed by adding new record types.
diff --git a/clipper/HyperLevelDB/doc/table_format.txt b/clipper/HyperLevelDB/doc/table_format.txt
new file mode 100644
index 0000000..ca8f9b4
--- /dev/null
+++ b/clipper/HyperLevelDB/doc/table_format.txt
@@ -0,0 +1,104 @@
+File format
+===========
+
+ <beginning_of_file>
+ [data block 1]
+ [data block 2]
+ ...
+ [data block N]
+ [meta block 1]
+ ...
+ [meta block K]
+ [metaindex block]
+ [index block]
+ [Footer] (fixed size; starts at file_size - sizeof(Footer))
+ <end_of_file>
+
+The file contains internal pointers. Each such pointer is called
+a BlockHandle and contains the following information:
+ offset: varint64
+ size: varint64
+See https://developers.google.com/protocol-buffers/docs/encoding#varints
+for an explanation of varint64 format.
+
+(1) The sequence of key/value pairs in the file are stored in sorted
+order and partitioned into a sequence of data blocks. These blocks
+come one after another at the beginning of the file. Each data block
+is formatted according to the code in block_builder.cc, and then
+optionally compressed.
+
+(2) After the data blocks we store a bunch of meta blocks. The
+supported meta block types are described below. More meta block types
+may be added in the future. Each meta block is again formatted using
+block_builder.cc and then optionally compressed.
+
+(3) A "metaindex" block. It contains one entry for every other meta
+block where the key is the name of the meta block and the value is a
+BlockHandle pointing to that meta block.
+
+(4) An "index" block. This block contains one entry per data block,
+where the key is a string >= last key in that data block and before
+the first key in the successive data block. The value is the
+BlockHandle for the data block.
+
+(6) At the very end of the file is a fixed length footer that contains
+the BlockHandle of the metaindex and index blocks as well as a magic number.
+ metaindex_handle: char[p]; // Block handle for metaindex
+ index_handle: char[q]; // Block handle for index
+ padding: char[40-p-q]; // zeroed bytes to make fixed length
+ // (40==2*BlockHandle::kMaxEncodedLength)
+ magic: fixed64; // == 0xdb4775248b80fb57 (little-endian)
+
+"filter" Meta Block
+-------------------
+
+If a "FilterPolicy" was specified when the database was opened, a
+filter block is stored in each table. The "metaindex" block contains
+an entry that maps from "filter.<N>" to the BlockHandle for the filter
+block where "<N>" is the string returned by the filter policy's
+"Name()" method.
+
+The filter block stores a sequence of filters, where filter i contains
+the output of FilterPolicy::CreateFilter() on all keys that are stored
+in a block whose file offset falls within the range
+
+ [ i*base ... (i+1)*base-1 ]
+
+Currently, "base" is 2KB. So for example, if blocks X and Y start in
+the range [ 0KB .. 2KB-1 ], all of the keys in X and Y will be
+converted to a filter by calling FilterPolicy::CreateFilter(), and the
+resulting filter will be stored as the first filter in the filter
+block.
+
+The filter block is formatted as follows:
+
+ [filter 0]
+ [filter 1]
+ [filter 2]
+ ...
+ [filter N-1]
+
+ [offset of filter 0] : 4 bytes
+ [offset of filter 1] : 4 bytes
+ [offset of filter 2] : 4 bytes
+ ...
+ [offset of filter N-1] : 4 bytes
+
+ [offset of beginning of offset array] : 4 bytes
+ lg(base) : 1 byte
+
+The offset array at the end of the filter block allows efficient
+mapping from a data block offset to the corresponding filter.
+
+"stats" Meta Block
+------------------
+
+This meta block contains a bunch of stats. The key is the name
+of the statistic. The value contains the statistic.
+TODO(postrelease): record following stats.
+ data size
+ index size
+ key size (uncompressed)
+ value size (uncompressed)
+ number of entries
+ number of data blocks
diff --git a/clipper/HyperLevelDB/helpers/memenv/memenv.cc b/clipper/HyperLevelDB/helpers/memenv/memenv.cc
new file mode 100644
index 0000000..c933656
--- /dev/null
+++ b/clipper/HyperLevelDB/helpers/memenv/memenv.cc
@@ -0,0 +1,383 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "helpers/memenv/memenv.h"
+
+#include "hyperleveldb/env.h"
+#include "hyperleveldb/status.h"
+#include "port/port.h"
+#include "util/mutexlock.h"
+#include <map>
+#include <string.h>
+#include <string>
+#include <vector>
+
+namespace leveldb {
+
+namespace {
+
+class FileState {
+ public:
+ // FileStates are reference counted. The initial reference count is zero
+ // and the caller must call Ref() at least once.
+ FileState() : refs_(0), size_(0) {}
+
+ // Increase the reference count.
+ void Ref() {
+ MutexLock lock(&refs_mutex_);
+ ++refs_;
+ }
+
+ // Decrease the reference count. Delete if this is the last reference.
+ void Unref() {
+ bool do_delete = false;
+
+ {
+ MutexLock lock(&refs_mutex_);
+ --refs_;
+ assert(refs_ >= 0);
+ if (refs_ <= 0) {
+ do_delete = true;
+ }
+ }
+
+ if (do_delete) {
+ delete this;
+ }
+ }
+
+ uint64_t Size() const { return size_; }
+
+ Status Read(uint64_t offset, size_t n, Slice* result, char* scratch) const {
+ if (offset > size_) {
+ return Status::IOError("Offset greater than file size.");
+ }
+ const uint64_t available = size_ - offset;
+ if (n > available) {
+ n = available;
+ }
+ if (n == 0) {
+ *result = Slice();
+ return Status::OK();
+ }
+
+ size_t block = offset / kBlockSize;
+ size_t block_offset = offset % kBlockSize;
+
+ if (n <= kBlockSize - block_offset) {
+ // The requested bytes are all in the first block.
+ *result = Slice(blocks_[block] + block_offset, n);
+ return Status::OK();
+ }
+
+ size_t bytes_to_copy = n;
+ char* dst = scratch;
+
+ while (bytes_to_copy > 0) {
+ size_t avail = kBlockSize - block_offset;
+ if (avail > bytes_to_copy) {
+ avail = bytes_to_copy;
+ }
+ memcpy(dst, blocks_[block] + block_offset, avail);
+
+ bytes_to_copy -= avail;
+ dst += avail;
+ block++;
+ block_offset = 0;
+ }
+
+ *result = Slice(scratch, n);
+ return Status::OK();
+ }
+
+ Status Append(const Slice& data) {
+ const char* src = data.data();
+ size_t src_len = data.size();
+
+ while (src_len > 0) {
+ size_t avail;
+ size_t offset = size_ % kBlockSize;
+
+ if (offset != 0) {
+ // There is some room in the last block.
+ avail = kBlockSize - offset;
+ } else {
+ // No room in the last block; push new one.
+ blocks_.push_back(new char[kBlockSize]);
+ avail = kBlockSize;
+ }
+
+ if (avail > src_len) {
+ avail = src_len;
+ }
+ memcpy(blocks_.back() + offset, src, avail);
+ src_len -= avail;
+ src += avail;
+ size_ += avail;
+ }
+
+ return Status::OK();
+ }
+
+ private:
+ // Private since only Unref() should be used to delete it.
+ ~FileState() {
+ for (std::vector<char*>::iterator i = blocks_.begin(); i != blocks_.end();
+ ++i) {
+ delete [] *i;
+ }
+ }
+
+ // No copying allowed.
+ FileState(const FileState&);
+ void operator=(const FileState&);
+
+ port::Mutex refs_mutex_;
+ int refs_; // Protected by refs_mutex_;
+
+ // The following fields are not protected by any mutex. They are only mutable
+ // while the file is being written, and concurrent access is not allowed
+ // to writable files.
+ std::vector<char*> blocks_;
+ uint64_t size_;
+
+ enum { kBlockSize = 8 * 1024 };
+};
+
+class SequentialFileImpl : public SequentialFile {
+ public:
+ explicit SequentialFileImpl(FileState* file) : file_(file), pos_(0) {
+ file_->Ref();
+ }
+
+ ~SequentialFileImpl() {
+ file_->Unref();
+ }
+
+ virtual Status Read(size_t n, Slice* result, char* scratch) {
+ Status s = file_->Read(pos_, n, result, scratch);
+ if (s.ok()) {
+ pos_ += result->size();
+ }
+ return s;
+ }
+
+ virtual Status Skip(uint64_t n) {
+ if (pos_ > file_->Size()) {
+ return Status::IOError("pos_ > file_->Size()");
+ }
+ const size_t available = file_->Size() - pos_;
+ if (n > available) {
+ n = available;
+ }
+ pos_ += n;
+ return Status::OK();
+ }
+
+ private:
+ FileState* file_;
+ size_t pos_;
+};
+
+class RandomAccessFileImpl : public RandomAccessFile {
+ public:
+ explicit RandomAccessFileImpl(FileState* file) : file_(file) {
+ file_->Ref();
+ }
+
+ ~RandomAccessFileImpl() {
+ file_->Unref();
+ }
+
+ virtual Status Read(uint64_t offset, size_t n, Slice* result,
+ char* scratch) const {
+ return file_->Read(offset, n, result, scratch);
+ }
+
+ private:
+ FileState* file_;
+};
+
+class WritableFileImpl : public WritableFile {
+ public:
+ WritableFileImpl(FileState* file) : file_(file) {
+ file_->Ref();
+ }
+
+ ~WritableFileImpl() {
+ file_->Unref();
+ }
+
+ virtual Status Append(const Slice& data) {
+ return file_->Append(data);
+ }
+
+ virtual Status Close() { return Status::OK(); }
+ virtual Status Sync() { return Status::OK(); }
+
+ private:
+ FileState* file_;
+};
+
+class NoOpLogger : public Logger {
+ public:
+ virtual void Logv(const char* format, va_list ap) { }
+};
+
+class InMemoryEnv : public EnvWrapper {
+ public:
+ explicit InMemoryEnv(Env* base_env) : EnvWrapper(base_env) { }
+
+ virtual ~InMemoryEnv() {
+ for (FileSystem::iterator i = file_map_.begin(); i != file_map_.end(); ++i){
+ i->second->Unref();
+ }
+ }
+
+ // Partial implementation of the Env interface.
+ virtual Status NewSequentialFile(const std::string& fname,
+ SequentialFile** result) {
+ MutexLock lock(&mutex_);
+ if (file_map_.find(fname) == file_map_.end()) {
+ *result = NULL;
+ return Status::IOError(fname, "File not found");
+ }
+
+ *result = new SequentialFileImpl(file_map_[fname]);
+ return Status::OK();
+ }
+
+ virtual Status NewRandomAccessFile(const std::string& fname,
+ RandomAccessFile** result) {
+ MutexLock lock(&mutex_);
+ if (file_map_.find(fname) == file_map_.end()) {
+ *result = NULL;
+ return Status::IOError(fname, "File not found");
+ }
+
+ *result = new RandomAccessFileImpl(file_map_[fname]);
+ return Status::OK();
+ }
+
+ virtual Status NewWritableFile(const std::string& fname,
+ WritableFile** result) {
+ MutexLock lock(&mutex_);
+ if (file_map_.find(fname) != file_map_.end()) {
+ DeleteFileInternal(fname);
+ }
+
+ FileState* file = new FileState();
+ file->Ref();
+ file_map_[fname] = file;
+
+ *result = new WritableFileImpl(file);
+ return Status::OK();
+ }
+
+ virtual bool FileExists(const std::string& fname) {
+ MutexLock lock(&mutex_);
+ return file_map_.find(fname) != file_map_.end();
+ }
+
+ virtual Status GetChildren(const std::string& dir,
+ std::vector<std::string>* result) {
+ MutexLock lock(&mutex_);
+ result->clear();
+
+ for (FileSystem::iterator i = file_map_.begin(); i != file_map_.end(); ++i){
+ const std::string& filename = i->first;
+
+ if (filename.size() >= dir.size() + 1 && filename[dir.size()] == '/' &&
+ Slice(filename).starts_with(Slice(dir))) {
+ result->push_back(filename.substr(dir.size() + 1));
+ }
+ }
+
+ return Status::OK();
+ }
+
+ void DeleteFileInternal(const std::string& fname) {
+ if (file_map_.find(fname) == file_map_.end()) {
+ return;
+ }
+
+ file_map_[fname]->Unref();
+ file_map_.erase(fname);
+ }
+
+ virtual Status DeleteFile(const std::string& fname) {
+ MutexLock lock(&mutex_);
+ if (file_map_.find(fname) == file_map_.end()) {
+ return Status::IOError(fname, "File not found");
+ }
+
+ DeleteFileInternal(fname);
+ return Status::OK();
+ }
+
+ virtual Status CreateDir(const std::string& dirname) {
+ return Status::OK();
+ }
+
+ virtual Status DeleteDir(const std::string& dirname) {
+ return Status::OK();
+ }
+
+ virtual Status GetFileSize(const std::string& fname, uint64_t* file_size) {
+ MutexLock lock(&mutex_);
+ if (file_map_.find(fname) == file_map_.end()) {
+ return Status::IOError(fname, "File not found");
+ }
+
+ *file_size = file_map_[fname]->Size();
+ return Status::OK();
+ }
+
+ virtual Status RenameFile(const std::string& src,
+ const std::string& target) {
+ MutexLock lock(&mutex_);
+ if (file_map_.find(src) == file_map_.end()) {
+ return Status::IOError(src, "File not found");
+ }
+
+ DeleteFileInternal(target);
+ file_map_[target] = file_map_[src];
+ file_map_.erase(src);
+ return Status::OK();
+ }
+
+ virtual Status LockFile(const std::string& fname, FileLock** lock) {
+ *lock = new FileLock;
+ return Status::OK();
+ }
+
+ virtual Status UnlockFile(FileLock* lock) {
+ delete lock;
+ return Status::OK();
+ }
+
+ virtual Status GetTestDirectory(std::string* path) {
+ *path = "/test";
+ return Status::OK();
+ }
+
+ virtual Status NewLogger(const std::string& fname, Logger** result) {
+ *result = new NoOpLogger;
+ return Status::OK();
+ }
+
+ private:
+ // Map from filenames to FileState objects, representing a simple file system.
+ typedef std::map<std::string, FileState*> FileSystem;
+ port::Mutex mutex_;
+ FileSystem file_map_; // Protected by mutex_.
+};
+
+} // namespace
+
+Env* NewMemEnv(Env* base_env) {
+ return new InMemoryEnv(base_env);
+}
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/helpers/memenv/memenv.h b/clipper/HyperLevelDB/helpers/memenv/memenv.h
new file mode 100644
index 0000000..03b88de
--- /dev/null
+++ b/clipper/HyperLevelDB/helpers/memenv/memenv.h
@@ -0,0 +1,20 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#ifndef STORAGE_LEVELDB_HELPERS_MEMENV_MEMENV_H_
+#define STORAGE_LEVELDB_HELPERS_MEMENV_MEMENV_H_
+
+namespace leveldb {
+
+class Env;
+
+// Returns a new environment that stores its data in memory and delegates
+// all non-file-storage tasks to base_env. The caller must delete the result
+// when it is no longer needed.
+// *base_env must remain live while the result is in use.
+Env* NewMemEnv(Env* base_env);
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_HELPERS_MEMENV_MEMENV_H_
diff --git a/clipper/HyperLevelDB/helpers/memenv/memenv_test.cc b/clipper/HyperLevelDB/helpers/memenv/memenv_test.cc
new file mode 100644
index 0000000..a8b00fc
--- /dev/null
+++ b/clipper/HyperLevelDB/helpers/memenv/memenv_test.cc
@@ -0,0 +1,232 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "helpers/memenv/memenv.h"
+
+#include "db/db_impl.h"
+#include "hyperleveldb/db.h"
+#include "hyperleveldb/env.h"
+#include "util/testharness.h"
+#include <string>
+#include <vector>
+
+namespace leveldb {
+
+class MemEnvTest {
+ public:
+ Env* env_;
+
+ MemEnvTest()
+ : env_(NewMemEnv(Env::Default())) {
+ }
+ ~MemEnvTest() {
+ delete env_;
+ }
+};
+
+TEST(MemEnvTest, Basics) {
+ uint64_t file_size;
+ WritableFile* writable_file;
+ std::vector<std::string> children;
+
+ ASSERT_OK(env_->CreateDir("/dir"));
+
+ // Check that the directory is empty.
+ ASSERT_TRUE(!env_->FileExists("/dir/non_existent"));
+ ASSERT_TRUE(!env_->GetFileSize("/dir/non_existent", &file_size).ok());
+ ASSERT_OK(env_->GetChildren("/dir", &children));
+ ASSERT_EQ(0, children.size());
+
+ // Create a file.
+ ASSERT_OK(env_->NewWritableFile("/dir/f", &writable_file));
+ delete writable_file;
+
+ // Check that the file exists.
+ ASSERT_TRUE(env_->FileExists("/dir/f"));
+ ASSERT_OK(env_->GetFileSize("/dir/f", &file_size));
+ ASSERT_EQ(0, file_size);
+ ASSERT_OK(env_->GetChildren("/dir", &children));
+ ASSERT_EQ(1, children.size());
+ ASSERT_EQ("f", children[0]);
+
+ // Write to the file.
+ ASSERT_OK(env_->NewWritableFile("/dir/f", &writable_file));
+ ASSERT_OK(writable_file->Append("abc"));
+ delete writable_file;
+
+ // Check for expected size.
+ ASSERT_OK(env_->GetFileSize("/dir/f", &file_size));
+ ASSERT_EQ(3, file_size);
+
+ // Check that renaming works.
+ ASSERT_TRUE(!env_->RenameFile("/dir/non_existent", "/dir/g").ok());
+ ASSERT_OK(env_->RenameFile("/dir/f", "/dir/g"));
+ ASSERT_TRUE(!env_->FileExists("/dir/f"));
+ ASSERT_TRUE(env_->FileExists("/dir/g"));
+ ASSERT_OK(env_->GetFileSize("/dir/g", &file_size));
+ ASSERT_EQ(3, file_size);
+
+ // Check that opening non-existent file fails.
+ SequentialFile* seq_file;
+ RandomAccessFile* rand_file;
+ ASSERT_TRUE(!env_->NewSequentialFile("/dir/non_existent", &seq_file).ok());
+ ASSERT_TRUE(!seq_file);
+ ASSERT_TRUE(!env_->NewRandomAccessFile("/dir/non_existent", &rand_file).ok());
+ ASSERT_TRUE(!rand_file);
+
+ // Check that deleting works.
+ ASSERT_TRUE(!env_->DeleteFile("/dir/non_existent").ok());
+ ASSERT_OK(env_->DeleteFile("/dir/g"));
+ ASSERT_TRUE(!env_->FileExists("/dir/g"));
+ ASSERT_OK(env_->GetChildren("/dir", &children));
+ ASSERT_EQ(0, children.size());
+ ASSERT_OK(env_->DeleteDir("/dir"));
+}
+
+TEST(MemEnvTest, ReadWrite) {
+ WritableFile* writable_file;
+ SequentialFile* seq_file;
+ RandomAccessFile* rand_file;
+ Slice result;
+ char scratch[100];
+
+ ASSERT_OK(env_->CreateDir("/dir"));
+
+ ASSERT_OK(env_->NewWritableFile("/dir/f", &writable_file));
+ ASSERT_OK(writable_file->Append("hello "));
+ ASSERT_OK(writable_file->Append("world"));
+ delete writable_file;
+
+ // Read sequentially.
+ ASSERT_OK(env_->NewSequentialFile("/dir/f", &seq_file));
+ ASSERT_OK(seq_file->Read(5, &result, scratch)); // Read "hello".
+ ASSERT_EQ(0, result.compare("hello"));
+ ASSERT_OK(seq_file->Skip(1));
+ ASSERT_OK(seq_file->Read(1000, &result, scratch)); // Read "world".
+ ASSERT_EQ(0, result.compare("world"));
+ ASSERT_OK(seq_file->Read(1000, &result, scratch)); // Try reading past EOF.
+ ASSERT_EQ(0, result.size());
+ ASSERT_OK(seq_file->Skip(100)); // Try to skip past end of file.
+ ASSERT_OK(seq_file->Read(1000, &result, scratch));
+ ASSERT_EQ(0, result.size());
+ delete seq_file;
+
+ // Random reads.
+ ASSERT_OK(env_->NewRandomAccessFile("/dir/f", &rand_file));
+ ASSERT_OK(rand_file->Read(6, 5, &result, scratch)); // Read "world".
+ ASSERT_EQ(0, result.compare("world"));
+ ASSERT_OK(rand_file->Read(0, 5, &result, scratch)); // Read "hello".
+ ASSERT_EQ(0, result.compare("hello"));
+ ASSERT_OK(rand_file->Read(10, 100, &result, scratch)); // Read "d".
+ ASSERT_EQ(0, result.compare("d"));
+
+ // Too high offset.
+ ASSERT_TRUE(!rand_file->Read(1000, 5, &result, scratch).ok());
+ delete rand_file;
+}
+
+TEST(MemEnvTest, Locks) {
+ FileLock* lock;
+
+ // These are no-ops, but we test they return success.
+ ASSERT_OK(env_->LockFile("some file", &lock));
+ ASSERT_OK(env_->UnlockFile(lock));
+}
+
+TEST(MemEnvTest, Misc) {
+ std::string test_dir;
+ ASSERT_OK(env_->GetTestDirectory(&test_dir));
+ ASSERT_TRUE(!test_dir.empty());
+
+ WritableFile* writable_file;
+ ASSERT_OK(env_->NewWritableFile("/a/b", &writable_file));
+
+ // These are no-ops, but we test they return success.
+ ASSERT_OK(writable_file->Sync());
+ ASSERT_OK(writable_file->Flush());
+ ASSERT_OK(writable_file->Close());
+ delete writable_file;
+}
+
+TEST(MemEnvTest, LargeWrite) {
+ const size_t kWriteSize = 300 * 1024;
+ char* scratch = new char[kWriteSize * 2];
+
+ std::string write_data;
+ for (size_t i = 0; i < kWriteSize; ++i) {
+ write_data.append(1, static_cast<char>(i));
+ }
+
+ WritableFile* writable_file;
+ ASSERT_OK(env_->NewWritableFile("/dir/f", &writable_file));
+ ASSERT_OK(writable_file->Append("foo"));
+ ASSERT_OK(writable_file->Append(write_data));
+ delete writable_file;
+
+ SequentialFile* seq_file;
+ Slice result;
+ ASSERT_OK(env_->NewSequentialFile("/dir/f", &seq_file));
+ ASSERT_OK(seq_file->Read(3, &result, scratch)); // Read "foo".
+ ASSERT_EQ(0, result.compare("foo"));
+
+ size_t read = 0;
+ std::string read_data;
+ while (read < kWriteSize) {
+ ASSERT_OK(seq_file->Read(kWriteSize - read, &result, scratch));
+ read_data.append(result.data(), result.size());
+ read += result.size();
+ }
+ ASSERT_TRUE(write_data == read_data);
+ delete seq_file;
+ delete [] scratch;
+}
+
+TEST(MemEnvTest, DBTest) {
+ Options options;
+ options.create_if_missing = true;
+ options.env = env_;
+ DB* db;
+
+ const Slice keys[] = {Slice("aaa"), Slice("bbb"), Slice("ccc")};
+ const Slice vals[] = {Slice("foo"), Slice("bar"), Slice("baz")};
+
+ ASSERT_OK(DB::Open(options, "/dir/db", &db));
+ for (size_t i = 0; i < 3; ++i) {
+ ASSERT_OK(db->Put(WriteOptions(), keys[i], vals[i]));
+ }
+
+ for (size_t i = 0; i < 3; ++i) {
+ std::string res;
+ ASSERT_OK(db->Get(ReadOptions(), keys[i], &res));
+ ASSERT_TRUE(res == vals[i]);
+ }
+
+ Iterator* iterator = db->NewIterator(ReadOptions());
+ iterator->SeekToFirst();
+ for (size_t i = 0; i < 3; ++i) {
+ ASSERT_TRUE(iterator->Valid());
+ ASSERT_TRUE(keys[i] == iterator->key());
+ ASSERT_TRUE(vals[i] == iterator->value());
+ iterator->Next();
+ }
+ ASSERT_TRUE(!iterator->Valid());
+ delete iterator;
+
+ DBImpl* dbi = reinterpret_cast<DBImpl*>(db);
+ ASSERT_OK(dbi->TEST_CompactMemTable());
+
+ for (size_t i = 0; i < 3; ++i) {
+ std::string res;
+ ASSERT_OK(db->Get(ReadOptions(), keys[i], &res));
+ ASSERT_TRUE(res == vals[i]);
+ }
+
+ delete db;
+}
+
+} // namespace leveldb
+
+int main(int argc, char** argv) {
+ return leveldb::test::RunAllTests();
+}
diff --git a/clipper/HyperLevelDB/hyperleveldb.upack.in b/clipper/HyperLevelDB/hyperleveldb.upack.in
new file mode 100644
index 0000000..3920a76
--- /dev/null
+++ b/clipper/HyperLevelDB/hyperleveldb.upack.in
@@ -0,0 +1,41 @@
+package hyperleveldb
+| source="hyperleveldb"
+| debian name="libhyperleveldb0"
+| version="@VERSION@"
+| release="1"
+| license="BSD"
+| copyright="2011-2013 The LevelDB Authors"
+| homepage="http://hyperdex.org"
+| tarball="http://hyperdex.org/src/hyperleveldb-{version}.tar.gz"
+| debian section="libs"
+| configure="--disable-static"
+| summary="A fast key-value storage library"
++ {libdir}/libhyperleveldb.so.0
++ {libdir}/libhyperleveldb.so.0.0.0
+'''LevelDB is a fast key-value storage library written at Google that provides
+an ordered mapping from string keys to string values.'''
+
+subpackage hyperleveldb-devel
+| debian name="libhyperleveldb-dev"
+| debian section="libdevel"
+| debian requires="libhyperleveldb0{self}"
+| fedora requires="hyperleveldb{self}"
+| summary="A fast key-value storage library (development files)"
++ {includedir}/hyperleveldb/cache.h
++ {includedir}/hyperleveldb/c.h
++ {includedir}/hyperleveldb/comparator.h
++ {includedir}/hyperleveldb/db.h
++ {includedir}/hyperleveldb/env.h
++ {includedir}/hyperleveldb/filter_policy.h
++ {includedir}/hyperleveldb/iterator.h
++ {includedir}/hyperleveldb/options.h
++ {includedir}/hyperleveldb/replay_iterator.h
++ {includedir}/hyperleveldb/slice.h
++ {includedir}/hyperleveldb/status.h
++ {includedir}/hyperleveldb/table_builder.h
++ {includedir}/hyperleveldb/table.h
++ {includedir}/hyperleveldb/write_batch.h
++ {libdir}/libhyperleveldb.so
++ {libdir}/pkgconfig/libhyperleveldb.pc
+
+exclude {libdir}/libhyperleveldb.la
diff --git a/clipper/HyperLevelDB/include/hyperleveldb/c.h b/clipper/HyperLevelDB/include/hyperleveldb/c.h
new file mode 100644
index 0000000..1048fe3
--- /dev/null
+++ b/clipper/HyperLevelDB/include/hyperleveldb/c.h
@@ -0,0 +1,290 @@
+/* Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style license that can be
+ found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+ C bindings for leveldb. May be useful as a stable ABI that can be
+ used by programs that keep leveldb in a shared library, or for
+ a JNI api.
+
+ Does not support:
+ . getters for the option types
+ . custom comparators that implement key shortening
+ . custom iter, db, env, cache implementations using just the C bindings
+
+ Some conventions:
+
+ (1) We expose just opaque struct pointers and functions to clients.
+ This allows us to change internal representations without having to
+ recompile clients.
+
+ (2) For simplicity, there is no equivalent to the Slice type. Instead,
+ the caller has to pass the pointer and length as separate
+ arguments.
+
+ (3) Errors are represented by a null-terminated c string. NULL
+ means no error. All operations that can raise an error are passed
+ a "char** errptr" as the last argument. One of the following must
+ be true on entry:
+ *errptr == NULL
+ *errptr points to a malloc()ed null-terminated error message
+ (On Windows, *errptr must have been malloc()-ed by this library.)
+ On success, a leveldb routine leaves *errptr unchanged.
+ On failure, leveldb frees the old value of *errptr and
+ set *errptr to a malloc()ed error message.
+
+ (4) Bools have the type unsigned char (0 == false; rest == true)
+
+ (5) All of the pointer arguments must be non-NULL.
+*/
+
+#ifndef STORAGE_LEVELDB_INCLUDE_C_H_
+#define STORAGE_LEVELDB_INCLUDE_C_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdint.h>
+
+/* Exported types */
+
+typedef struct leveldb_t leveldb_t;
+typedef struct leveldb_cache_t leveldb_cache_t;
+typedef struct leveldb_comparator_t leveldb_comparator_t;
+typedef struct leveldb_env_t leveldb_env_t;
+typedef struct leveldb_filelock_t leveldb_filelock_t;
+typedef struct leveldb_filterpolicy_t leveldb_filterpolicy_t;
+typedef struct leveldb_iterator_t leveldb_iterator_t;
+typedef struct leveldb_logger_t leveldb_logger_t;
+typedef struct leveldb_options_t leveldb_options_t;
+typedef struct leveldb_randomfile_t leveldb_randomfile_t;
+typedef struct leveldb_readoptions_t leveldb_readoptions_t;
+typedef struct leveldb_seqfile_t leveldb_seqfile_t;
+typedef struct leveldb_snapshot_t leveldb_snapshot_t;
+typedef struct leveldb_writablefile_t leveldb_writablefile_t;
+typedef struct leveldb_writebatch_t leveldb_writebatch_t;
+typedef struct leveldb_writeoptions_t leveldb_writeoptions_t;
+
+/* DB operations */
+
+extern leveldb_t* leveldb_open(
+ const leveldb_options_t* options,
+ const char* name,
+ char** errptr);
+
+extern void leveldb_close(leveldb_t* db);
+
+extern void leveldb_put(
+ leveldb_t* db,
+ const leveldb_writeoptions_t* options,
+ const char* key, size_t keylen,
+ const char* val, size_t vallen,
+ char** errptr);
+
+extern void leveldb_delete(
+ leveldb_t* db,
+ const leveldb_writeoptions_t* options,
+ const char* key, size_t keylen,
+ char** errptr);
+
+extern void leveldb_write(
+ leveldb_t* db,
+ const leveldb_writeoptions_t* options,
+ leveldb_writebatch_t* batch,
+ char** errptr);
+
+/* Returns NULL if not found. A malloc()ed array otherwise.
+ Stores the length of the array in *vallen. */
+extern char* leveldb_get(
+ leveldb_t* db,
+ const leveldb_readoptions_t* options,
+ const char* key, size_t keylen,
+ size_t* vallen,
+ char** errptr);
+
+extern leveldb_iterator_t* leveldb_create_iterator(
+ leveldb_t* db,
+ const leveldb_readoptions_t* options);
+
+extern const leveldb_snapshot_t* leveldb_create_snapshot(
+ leveldb_t* db);
+
+extern void leveldb_release_snapshot(
+ leveldb_t* db,
+ const leveldb_snapshot_t* snapshot);
+
+/* Returns NULL if property name is unknown.
+ Else returns a pointer to a malloc()-ed null-terminated value. */
+extern char* leveldb_property_value(
+ leveldb_t* db,
+ const char* propname);
+
+extern void leveldb_approximate_sizes(
+ leveldb_t* db,
+ int num_ranges,
+ const char* const* range_start_key, const size_t* range_start_key_len,
+ const char* const* range_limit_key, const size_t* range_limit_key_len,
+ uint64_t* sizes);
+
+extern void leveldb_compact_range(
+ leveldb_t* db,
+ const char* start_key, size_t start_key_len,
+ const char* limit_key, size_t limit_key_len);
+
+/* Management operations */
+
+extern void leveldb_destroy_db(
+ const leveldb_options_t* options,
+ const char* name,
+ char** errptr);
+
+extern void leveldb_repair_db(
+ const leveldb_options_t* options,
+ const char* name,
+ char** errptr);
+
+/* Iterator */
+
+extern void leveldb_iter_destroy(leveldb_iterator_t*);
+extern unsigned char leveldb_iter_valid(const leveldb_iterator_t*);
+extern void leveldb_iter_seek_to_first(leveldb_iterator_t*);
+extern void leveldb_iter_seek_to_last(leveldb_iterator_t*);
+extern void leveldb_iter_seek(leveldb_iterator_t*, const char* k, size_t klen);
+extern void leveldb_iter_next(leveldb_iterator_t*);
+extern void leveldb_iter_prev(leveldb_iterator_t*);
+extern const char* leveldb_iter_key(const leveldb_iterator_t*, size_t* klen);
+extern const char* leveldb_iter_value(const leveldb_iterator_t*, size_t* vlen);
+extern void leveldb_iter_get_error(const leveldb_iterator_t*, char** errptr);
+
+/* Write batch */
+
+extern leveldb_writebatch_t* leveldb_writebatch_create();
+extern void leveldb_writebatch_destroy(leveldb_writebatch_t*);
+extern void leveldb_writebatch_clear(leveldb_writebatch_t*);
+extern void leveldb_writebatch_put(
+ leveldb_writebatch_t*,
+ const char* key, size_t klen,
+ const char* val, size_t vlen);
+extern void leveldb_writebatch_delete(
+ leveldb_writebatch_t*,
+ const char* key, size_t klen);
+extern void leveldb_writebatch_iterate(
+ leveldb_writebatch_t*,
+ void* state,
+ void (*put)(void*, const char* k, size_t klen, const char* v, size_t vlen),
+ void (*deleted)(void*, const char* k, size_t klen));
+
+/* Options */
+
+extern leveldb_options_t* leveldb_options_create();
+extern void leveldb_options_destroy(leveldb_options_t*);
+extern void leveldb_options_set_comparator(
+ leveldb_options_t*,
+ leveldb_comparator_t*);
+extern void leveldb_options_set_filter_policy(
+ leveldb_options_t*,
+ leveldb_filterpolicy_t*);
+extern void leveldb_options_set_create_if_missing(
+ leveldb_options_t*, unsigned char);
+extern void leveldb_options_set_error_if_exists(
+ leveldb_options_t*, unsigned char);
+extern void leveldb_options_set_paranoid_checks(
+ leveldb_options_t*, unsigned char);
+extern void leveldb_options_set_env(leveldb_options_t*, leveldb_env_t*);
+extern void leveldb_options_set_info_log(leveldb_options_t*, leveldb_logger_t*);
+extern void leveldb_options_set_write_buffer_size(leveldb_options_t*, size_t);
+extern void leveldb_options_set_max_open_files(leveldb_options_t*, int);
+extern void leveldb_options_set_cache(leveldb_options_t*, leveldb_cache_t*);
+extern void leveldb_options_set_block_size(leveldb_options_t*, size_t);
+extern void leveldb_options_set_block_restart_interval(leveldb_options_t*, int);
+
+enum {
+ leveldb_no_compression = 0,
+ leveldb_snappy_compression = 1
+};
+extern void leveldb_options_set_compression(leveldb_options_t*, int);
+
+/* Comparator */
+
+extern leveldb_comparator_t* leveldb_comparator_create(
+ void* state,
+ void (*destructor)(void*),
+ int (*compare)(
+ void*,
+ const char* a, size_t alen,
+ const char* b, size_t blen),
+ const char* (*name)(void*));
+extern void leveldb_comparator_destroy(leveldb_comparator_t*);
+
+/* Filter policy */
+
+extern leveldb_filterpolicy_t* leveldb_filterpolicy_create(
+ void* state,
+ void (*destructor)(void*),
+ char* (*create_filter)(
+ void*,
+ const char* const* key_array, const size_t* key_length_array,
+ int num_keys,
+ size_t* filter_length),
+ unsigned char (*key_may_match)(
+ void*,
+ const char* key, size_t length,
+ const char* filter, size_t filter_length),
+ const char* (*name)(void*));
+extern void leveldb_filterpolicy_destroy(leveldb_filterpolicy_t*);
+
+extern leveldb_filterpolicy_t* leveldb_filterpolicy_create_bloom(
+ int bits_per_key);
+
+/* Read options */
+
+extern leveldb_readoptions_t* leveldb_readoptions_create();
+extern void leveldb_readoptions_destroy(leveldb_readoptions_t*);
+extern void leveldb_readoptions_set_verify_checksums(
+ leveldb_readoptions_t*,
+ unsigned char);
+extern void leveldb_readoptions_set_fill_cache(
+ leveldb_readoptions_t*, unsigned char);
+extern void leveldb_readoptions_set_snapshot(
+ leveldb_readoptions_t*,
+ const leveldb_snapshot_t*);
+
+/* Write options */
+
+extern leveldb_writeoptions_t* leveldb_writeoptions_create();
+extern void leveldb_writeoptions_destroy(leveldb_writeoptions_t*);
+extern void leveldb_writeoptions_set_sync(
+ leveldb_writeoptions_t*, unsigned char);
+
+/* Cache */
+
+extern leveldb_cache_t* leveldb_cache_create_lru(size_t capacity);
+extern void leveldb_cache_destroy(leveldb_cache_t* cache);
+
+/* Env */
+
+extern leveldb_env_t* leveldb_create_default_env();
+extern void leveldb_env_destroy(leveldb_env_t*);
+
+/* Utility */
+
+/* Calls free(ptr).
+ REQUIRES: ptr was malloc()-ed and returned by one of the routines
+ in this file. Note that in certain cases (typically on Windows), you
+ may need to call this routine instead of free(ptr) to dispose of
+ malloc()-ed memory returned by this library. */
+extern void leveldb_free(void* ptr);
+
+/* Return the major version number for this release. */
+extern int leveldb_major_version();
+
+/* Return the minor version number for this release. */
+extern int leveldb_minor_version();
+
+#ifdef __cplusplus
+} /* end extern "C" */
+#endif
+
+#endif /* STORAGE_LEVELDB_INCLUDE_C_H_ */
diff --git a/clipper/HyperLevelDB/include/hyperleveldb/cache.h b/clipper/HyperLevelDB/include/hyperleveldb/cache.h
new file mode 100644
index 0000000..56c1c04
--- /dev/null
+++ b/clipper/HyperLevelDB/include/hyperleveldb/cache.h
@@ -0,0 +1,99 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+//
+// A Cache is an interface that maps keys to values. It has internal
+// synchronization and may be safely accessed concurrently from
+// multiple threads. It may automatically evict entries to make room
+// for new entries. Values have a specified charge against the cache
+// capacity. For example, a cache where the values are variable
+// length strings, may use the length of the string as the charge for
+// the string.
+//
+// A builtin cache implementation with a least-recently-used eviction
+// policy is provided. Clients may use their own implementations if
+// they want something more sophisticated (like scan-resistance, a
+// custom eviction policy, variable cache sizing, etc.)
+
+#ifndef STORAGE_LEVELDB_INCLUDE_CACHE_H_
+#define STORAGE_LEVELDB_INCLUDE_CACHE_H_
+
+#include <stdint.h>
+#include "hyperleveldb/slice.h"
+
+namespace leveldb {
+
+class Cache;
+
+// Create a new cache with a fixed size capacity. This implementation
+// of Cache uses a least-recently-used eviction policy.
+extern Cache* NewLRUCache(size_t capacity);
+
+class Cache {
+ public:
+ Cache() { }
+
+ // Destroys all existing entries by calling the "deleter"
+ // function that was passed to the constructor.
+ virtual ~Cache();
+
+ // Opaque handle to an entry stored in the cache.
+ struct Handle { };
+
+ // Insert a mapping from key->value into the cache and assign it
+ // the specified charge against the total cache capacity.
+ //
+ // Returns a handle that corresponds to the mapping. The caller
+ // must call this->Release(handle) when the returned mapping is no
+ // longer needed.
+ //
+ // When the inserted entry is no longer needed, the key and
+ // value will be passed to "deleter".
+ virtual Handle* Insert(const Slice& key, void* value, size_t charge,
+ void (*deleter)(const Slice& key, void* value)) = 0;
+
+ // If the cache has no mapping for "key", returns NULL.
+ //
+ // Else return a handle that corresponds to the mapping. The caller
+ // must call this->Release(handle) when the returned mapping is no
+ // longer needed.
+ virtual Handle* Lookup(const Slice& key) = 0;
+
+ // Release a mapping returned by a previous Lookup().
+ // REQUIRES: handle must not have been released yet.
+ // REQUIRES: handle must have been returned by a method on *this.
+ virtual void Release(Handle* handle) = 0;
+
+ // Return the value encapsulated in a handle returned by a
+ // successful Lookup().
+ // REQUIRES: handle must not have been released yet.
+ // REQUIRES: handle must have been returned by a method on *this.
+ virtual void* Value(Handle* handle) = 0;
+
+ // If the cache contains entry for key, erase it. Note that the
+ // underlying entry will be kept around until all existing handles
+ // to it have been released.
+ virtual void Erase(const Slice& key) = 0;
+
+ // Return a new numeric id. May be used by multiple clients who are
+ // sharing the same cache to partition the key space. Typically the
+ // client will allocate a new id at startup and prepend the id to
+ // its cache keys.
+ virtual uint64_t NewId() = 0;
+
+ private:
+ void LRU_Remove(Handle* e);
+ void LRU_Append(Handle* e);
+ void Unref(Handle* e);
+
+ struct Rep;
+ Rep* rep_;
+
+ // No copying allowed
+ Cache(const Cache&);
+ void operator=(const Cache&);
+};
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_UTIL_CACHE_H_
diff --git a/clipper/HyperLevelDB/include/hyperleveldb/comparator.h b/clipper/HyperLevelDB/include/hyperleveldb/comparator.h
new file mode 100644
index 0000000..24cefe3
--- /dev/null
+++ b/clipper/HyperLevelDB/include/hyperleveldb/comparator.h
@@ -0,0 +1,67 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#ifndef STORAGE_LEVELDB_INCLUDE_COMPARATOR_H_
+#define STORAGE_LEVELDB_INCLUDE_COMPARATOR_H_
+
+#include <stdint.h>
+#include <string>
+
+namespace leveldb {
+
+class Slice;
+
+// A Comparator object provides a total order across slices that are
+// used as keys in an sstable or a database. A Comparator implementation
+// must be thread-safe since leveldb may invoke its methods concurrently
+// from multiple threads.
+class Comparator {
+ public:
+ virtual ~Comparator();
+
+ // Three-way comparison. Returns value:
+ // < 0 iff "a" < "b",
+ // == 0 iff "a" == "b",
+ // > 0 iff "a" > "b"
+ virtual int Compare(const Slice& a, const Slice& b) const = 0;
+
+ // The name of the comparator. Used to check for comparator
+ // mismatches (i.e., a DB created with one comparator is
+ // accessed using a different comparator.
+ //
+ // The client of this package should switch to a new name whenever
+ // the comparator implementation changes in a way that will cause
+ // the relative ordering of any two keys to change.
+ //
+ // Names starting with "leveldb." are reserved and should not be used
+ // by any clients of this package.
+ virtual const char* Name() const = 0;
+
+ // Advanced functions: these are used to reduce the space requirements
+ // for internal data structures like index blocks.
+
+ // If *start < limit, changes *start to a short string in [start,limit).
+ // Simple comparator implementations may return with *start unchanged,
+ // i.e., an implementation of this method that does nothing is correct.
+ virtual void FindShortestSeparator(
+ std::string* start,
+ const Slice& limit) const = 0;
+
+ // Changes *key to a short string >= *key.
+ // Simple comparator implementations may return with *key unchanged,
+ // i.e., an implementation of this method that does nothing is correct.
+ virtual void FindShortSuccessor(std::string* key) const = 0;
+
+ // If unsure, return 0;
+ virtual uint64_t KeyNum(const Slice& key) const;
+};
+
+// Return a builtin comparator that uses lexicographic byte-wise
+// ordering. The result remains the property of this module and
+// must not be deleted.
+extern const Comparator* BytewiseComparator();
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_INCLUDE_COMPARATOR_H_
diff --git a/clipper/HyperLevelDB/include/hyperleveldb/db.h b/clipper/HyperLevelDB/include/hyperleveldb/db.h
new file mode 100644
index 0000000..894bde6
--- /dev/null
+++ b/clipper/HyperLevelDB/include/hyperleveldb/db.h
@@ -0,0 +1,192 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#ifndef STORAGE_LEVELDB_INCLUDE_DB_H_
+#define STORAGE_LEVELDB_INCLUDE_DB_H_
+
+#include <stdint.h>
+#include <stdio.h>
+#include "hyperleveldb/iterator.h"
+#include "hyperleveldb/options.h"
+#include "hyperleveldb/replay_iterator.h"
+
+namespace leveldb {
+
+// Update Makefile if you change these
+static const int kMajorVersion = 1;
+static const int kMinorVersion = 16;
+
+struct Options;
+struct ReadOptions;
+struct WriteOptions;
+class WriteBatch;
+
+// Abstract handle to particular state of a DB.
+// A Snapshot is an immutable object and can therefore be safely
+// accessed from multiple threads without any external synchronization.
+class Snapshot {
+ protected:
+ virtual ~Snapshot();
+};
+
+// A range of keys
+struct Range {
+ Slice start; // Included in the range
+ Slice limit; // Not included in the range
+
+ Range() : start(), limit() { }
+ Range(const Slice& s, const Slice& l) : start(s), limit(l) { }
+};
+
+// A DB is a persistent ordered map from keys to values.
+// A DB is safe for concurrent access from multiple threads without
+// any external synchronization.
+class DB {
+ public:
+ // Open the database with the specified "name".
+ // Stores a pointer to a heap-allocated database in *dbptr and returns
+ // OK on success.
+ // Stores NULL in *dbptr and returns a non-OK status on error.
+ // Caller should delete *dbptr when it is no longer needed.
+ static Status Open(const Options& options,
+ const std::string& name,
+ DB** dbptr);
+
+ DB() { }
+ virtual ~DB();
+
+ // Set the database entry for "key" to "value". Returns OK on success,
+ // and a non-OK status on error.
+ // Note: consider setting options.sync = true.
+ virtual Status Put(const WriteOptions& options,
+ const Slice& key,
+ const Slice& value) = 0;
+
+ // Remove the database entry (if any) for "key". Returns OK on
+ // success, and a non-OK status on error. It is not an error if "key"
+ // did not exist in the database.
+ // Note: consider setting options.sync = true.
+ virtual Status Delete(const WriteOptions& options, const Slice& key) = 0;
+
+ // Apply the specified updates to the database.
+ // Returns OK on success, non-OK on failure.
+ // Note: consider setting options.sync = true.
+ virtual Status Write(const WriteOptions& options, WriteBatch* updates) = 0;
+
+ // If the database contains an entry for "key" store the
+ // corresponding value in *value and return OK.
+ //
+ // If there is no entry for "key" leave *value unchanged and return
+ // a status for which Status::IsNotFound() returns true.
+ //
+ // May return some other Status on an error.
+ virtual Status Get(const ReadOptions& options,
+ const Slice& key, std::string* value) = 0;
+
+ // Return a heap-allocated iterator over the contents of the database.
+ // The result of NewIterator() is initially invalid (caller must
+ // call one of the Seek methods on the iterator before using it).
+ //
+ // Caller should delete the iterator when it is no longer needed.
+ // The returned iterator should be deleted before this db is deleted.
+ virtual Iterator* NewIterator(const ReadOptions& options) = 0;
+
+ // Return a handle to the current DB state. Iterators created with
+ // this handle will all observe a stable snapshot of the current DB
+ // state. The caller must call ReleaseSnapshot(result) when the
+ // snapshot is no longer needed.
+ virtual const Snapshot* GetSnapshot() = 0;
+
+ // Release a previously acquired snapshot. The caller must not
+ // use "snapshot" after this call.
+ virtual void ReleaseSnapshot(const Snapshot* snapshot) = 0;
+
+ // DB implementations can export properties about their state
+ // via this method. If "property" is a valid property understood by this
+ // DB implementation, fills "*value" with its current value and returns
+ // true. Otherwise returns false.
+ //
+ //
+ // Valid property names include:
+ //
+ // "leveldb.num-files-at-level<N>" - return the number of files at level <N>,
+ // where <N> is an ASCII representation of a level number (e.g. "0").
+ // "leveldb.stats" - returns a multi-line string that describes statistics
+ // about the internal operation of the DB.
+ // "leveldb.sstables" - returns a multi-line string that describes all
+ // of the sstables that make up the db contents.
+ virtual bool GetProperty(const Slice& property, std::string* value) = 0;
+
+ // For each i in [0,n-1], store in "sizes[i]", the approximate
+ // file system space used by keys in "[range[i].start .. range[i].limit)".
+ //
+ // Note that the returned sizes measure file system space usage, so
+ // if the user data compresses by a factor of ten, the returned
+ // sizes will be one-tenth the size of the corresponding user data size.
+ //
+ // The results may not include the sizes of recently written data.
+ virtual void GetApproximateSizes(const Range* range, int n,
+ uint64_t* sizes) = 0;
+
+ // Compact the underlying storage for the key range [*begin,*end].
+ // In particular, deleted and overwritten versions are discarded,
+ // and the data is rearranged to reduce the cost of operations
+ // needed to access the data. This operation should typically only
+ // be invoked by users who understand the underlying implementation.
+ //
+ // begin==NULL is treated as a key before all keys in the database.
+ // end==NULL is treated as a key after all keys in the database.
+ // Therefore the following call will compact the entire database:
+ // db->CompactRange(NULL, NULL);
+ virtual void CompactRange(const Slice* begin, const Slice* end) = 0;
+
+ // Create a live backup of a live LevelDB instance.
+ // The backup is stored in a directory named "backup-<name>" under the top
+ // level of the open LevelDB database. The implementation is permitted, and
+ // even encouraged, to improve the performance of this call through
+ // hard-links.
+ virtual Status LiveBackup(const Slice& name) = 0;
+
+ // Return an opaque timestamp that identifies the current point in time of the
+ // database. This timestamp may be subsequently presented to the
+ // NewReplayIterator method to create a ReplayIterator.
+ virtual void GetReplayTimestamp(std::string* timestamp) = 0;
+
+ // Set the lower bound for manual garbage collection. This method only takes
+ // effect when Options.manual_garbage_collection is true.
+ virtual void AllowGarbageCollectBeforeTimestamp(const std::string& timestamp) = 0;
+
+ // Validate the timestamp
+ virtual bool ValidateTimestamp(const std::string& timestamp) = 0;
+
+ // Compare two timestamps and return -1, 0, 1 for lt, eq, gt
+ virtual int CompareTimestamps(const std::string& lhs, const std::string& rhs) = 0;
+
+ // Return a ReplayIterator that returns every write operation performed after
+ // the timestamp.
+ virtual Status GetReplayIterator(const std::string& timestamp,
+ ReplayIterator** iter) = 0;
+
+ // Release a previously allocated replay iterator.
+ virtual void ReleaseReplayIterator(ReplayIterator* iter) = 0;
+
+ private:
+ // No copying allowed
+ DB(const DB&);
+ void operator=(const DB&);
+};
+
+// Destroy the contents of the specified database.
+// Be very careful using this method.
+Status DestroyDB(const std::string& name, const Options& options);
+
+// If a DB cannot be opened, you may attempt to call this method to
+// resurrect as much of the contents of the database as possible.
+// Some data may be lost, so be careful when calling this function
+// on a database that contains important information.
+Status RepairDB(const std::string& dbname, const Options& options);
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_INCLUDE_DB_H_
diff --git a/clipper/HyperLevelDB/include/hyperleveldb/env.h b/clipper/HyperLevelDB/include/hyperleveldb/env.h
new file mode 100644
index 0000000..11a1e5b
--- /dev/null
+++ b/clipper/HyperLevelDB/include/hyperleveldb/env.h
@@ -0,0 +1,352 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+//
+// An Env is an interface used by the leveldb implementation to access
+// operating system functionality like the filesystem etc. Callers
+// may wish to provide a custom Env object when opening a database to
+// get fine gain control; e.g., to rate limit file system operations.
+//
+// All Env implementations are safe for concurrent access from
+// multiple threads without any external synchronization.
+
+#ifndef STORAGE_LEVELDB_INCLUDE_ENV_H_
+#define STORAGE_LEVELDB_INCLUDE_ENV_H_
+
+#include <string>
+#include <vector>
+#include <stdarg.h>
+#include <stdint.h>
+#include "hyperleveldb/status.h"
+
+namespace leveldb {
+
+class FileLock;
+class Logger;
+class RandomAccessFile;
+class SequentialFile;
+class Slice;
+class WritableFile;
+
+class Env {
+ public:
+ Env() { }
+ virtual ~Env();
+
+ // Return a default environment suitable for the current operating
+ // system. Sophisticated users may wish to provide their own Env
+ // implementation instead of relying on this default environment.
+ //
+ // The result of Default() belongs to leveldb and must never be deleted.
+ static Env* Default();
+
+ // Create a brand new sequentially-readable file with the specified name.
+ // On success, stores a pointer to the new file in *result and returns OK.
+ // On failure stores NULL in *result and returns non-OK. If the file does
+ // not exist, returns a non-OK status.
+ //
+ // The returned file will only be accessed by one thread at a time.
+ virtual Status NewSequentialFile(const std::string& fname,
+ SequentialFile** result) = 0;
+
+ // Create a brand new random access read-only file with the
+ // specified name. On success, stores a pointer to the new file in
+ // *result and returns OK. On failure stores NULL in *result and
+ // returns non-OK. If the file does not exist, returns a non-OK
+ // status.
+ //
+ // The returned file may be concurrently accessed by multiple threads.
+ virtual Status NewRandomAccessFile(const std::string& fname,
+ RandomAccessFile** result) = 0;
+
+ // Create an object that writes to a new file with the specified
+ // name. Deletes any existing file with the same name and creates a
+ // new file. On success, stores a pointer to the new file in
+ // *result and returns OK. On failure stores NULL in *result and
+ // returns non-OK.
+ //
+ // The returned file will only be accessed by one thread at a time.
+ virtual Status NewWritableFile(const std::string& fname,
+ WritableFile** result) = 0;
+
+ // Returns true iff the named file exists.
+ virtual bool FileExists(const std::string& fname) = 0;
+
+ // Store in *result the names of the children of the specified directory.
+ // The names are relative to "dir".
+ // Original contents of *results are dropped.
+ virtual Status GetChildren(const std::string& dir,
+ std::vector<std::string>* result) = 0;
+
+ // Delete the named file.
+ virtual Status DeleteFile(const std::string& fname) = 0;
+
+ // Create the specified directory.
+ virtual Status CreateDir(const std::string& dirname) = 0;
+
+ // Delete the specified directory.
+ virtual Status DeleteDir(const std::string& dirname) = 0;
+
+ // Store the size of fname in *file_size.
+ virtual Status GetFileSize(const std::string& fname, uint64_t* file_size) = 0;
+
+ // Rename file src to target.
+ virtual Status RenameFile(const std::string& src,
+ const std::string& target) = 0;
+
+ // Copy file src to target.
+ virtual Status CopyFile(const std::string& src,
+ const std::string& target) = 0;
+
+ // Link file src to target.
+ virtual Status LinkFile(const std::string& src,
+ const std::string& target) = 0;
+
+
+ // Lock the specified file. Used to prevent concurrent access to
+ // the same db by multiple processes. On failure, stores NULL in
+ // *lock and returns non-OK.
+ //
+ // On success, stores a pointer to the object that represents the
+ // acquired lock in *lock and returns OK. The caller should call
+ // UnlockFile(*lock) to release the lock. If the process exits,
+ // the lock will be automatically released.
+ //
+ // If somebody else already holds the lock, finishes immediately
+ // with a failure. I.e., this call does not wait for existing locks
+ // to go away.
+ //
+ // May create the named file if it does not already exist.
+ virtual Status LockFile(const std::string& fname, FileLock** lock) = 0;
+
+ // Release the lock acquired by a previous successful call to LockFile.
+ // REQUIRES: lock was returned by a successful LockFile() call
+ // REQUIRES: lock has not already been unlocked.
+ virtual Status UnlockFile(FileLock* lock) = 0;
+
+ // Arrange to run "(*function)(arg)" once in a background thread.
+ //
+ // "function" may run in an unspecified thread. Multiple functions
+ // added to the same Env may run concurrently in different threads.
+ // I.e., the caller may not assume that background work items are
+ // serialized.
+ virtual void Schedule(
+ void (*function)(void* arg),
+ void* arg) = 0;
+
+ // Start a new thread, invoking "function(arg)" within the new thread.
+ // When "function(arg)" returns, the thread will be destroyed.
+ virtual void StartThread(void (*function)(void* arg), void* arg) = 0;
+
+ // *path is set to a temporary directory that can be used for testing. It may
+ // or many not have just been created. The directory may or may not differ
+ // between runs of the same process, but subsequent calls will return the
+ // same directory.
+ virtual Status GetTestDirectory(std::string* path) = 0;
+
+ // Create and return a log file for storing informational messages.
+ virtual Status NewLogger(const std::string& fname, Logger** result) = 0;
+
+ // Returns the number of micro-seconds since some fixed point in time. Only
+ // useful for computing deltas of time.
+ virtual uint64_t NowMicros() = 0;
+
+ // Sleep/delay the thread for the perscribed number of micro-seconds.
+ virtual void SleepForMicroseconds(int micros) = 0;
+
+ private:
+ // No copying allowed
+ Env(const Env&);
+ void operator=(const Env&);
+};
+
+// A file abstraction for reading sequentially through a file
+class SequentialFile {
+ public:
+ SequentialFile() { }
+ virtual ~SequentialFile();
+
+ // Read up to "n" bytes from the file. "scratch[0..n-1]" may be
+ // written by this routine. Sets "*result" to the data that was
+ // read (including if fewer than "n" bytes were successfully read).
+ // May set "*result" to point at data in "scratch[0..n-1]", so
+ // "scratch[0..n-1]" must be live when "*result" is used.
+ // If an error was encountered, returns a non-OK status.
+ //
+ // REQUIRES: External synchronization
+ virtual Status Read(size_t n, Slice* result, char* scratch) = 0;
+
+ // Skip "n" bytes from the file. This is guaranteed to be no
+ // slower that reading the same data, but may be faster.
+ //
+ // If end of file is reached, skipping will stop at the end of the
+ // file, and Skip will return OK.
+ //
+ // REQUIRES: External synchronization
+ virtual Status Skip(uint64_t n) = 0;
+
+ private:
+ // No copying allowed
+ SequentialFile(const SequentialFile&);
+ void operator=(const SequentialFile&);
+};
+
+// A file abstraction for randomly reading the contents of a file.
+class RandomAccessFile {
+ public:
+ RandomAccessFile() { }
+ virtual ~RandomAccessFile();
+
+ // Read up to "n" bytes from the file starting at "offset".
+ // "scratch[0..n-1]" may be written by this routine. Sets "*result"
+ // to the data that was read (including if fewer than "n" bytes were
+ // successfully read). May set "*result" to point at data in
+ // "scratch[0..n-1]", so "scratch[0..n-1]" must be live when
+ // "*result" is used. If an error was encountered, returns a non-OK
+ // status.
+ //
+ // Safe for concurrent use by multiple threads.
+ virtual Status Read(uint64_t offset, size_t n, Slice* result,
+ char* scratch) const = 0;
+
+ private:
+ // No copying allowed
+ RandomAccessFile(const RandomAccessFile&);
+ void operator=(const RandomAccessFile&);
+};
+
+// A file abstraction for sequential writing. The implementation
+// must provide buffering since callers may append small fragments
+// at a time to the file.
+class WritableFile {
+ public:
+ WritableFile() { }
+ virtual ~WritableFile();
+
+ // Allows concurrent writers
+ // REQUIRES: The range of data falling in [offset, offset + data.size()) must
+ // only be written once.
+ virtual Status WriteAt(uint64_t offset, const Slice& data) = 0;
+ // REQUIRES: external synchronization
+ virtual Status Append(const Slice& data) = 0;
+ virtual Status Close() = 0;
+ virtual Status Sync() = 0;
+
+ private:
+ // No copying allowed
+ WritableFile(const WritableFile&);
+ void operator=(const WritableFile&);
+};
+
+// An interface for writing log messages.
+class Logger {
+ public:
+ Logger() { }
+ virtual ~Logger();
+
+ // Write an entry to the log file with the specified format.
+ virtual void Logv(const char* format, va_list ap) = 0;
+
+ private:
+ // No copying allowed
+ Logger(const Logger&);
+ void operator=(const Logger&);
+};
+
+
+// Identifies a locked file.
+class FileLock {
+ public:
+ FileLock() { }
+ virtual ~FileLock();
+ private:
+ // No copying allowed
+ FileLock(const FileLock&);
+ void operator=(const FileLock&);
+};
+
+// Log the specified data to *info_log if info_log is non-NULL.
+extern void Log(Logger* info_log, const char* format, ...)
+# if defined(__GNUC__) || defined(__clang__)
+ __attribute__((__format__ (__printf__, 2, 3)))
+# endif
+ ;
+
+// A utility routine: write "data" to the named file.
+extern Status WriteStringToFile(Env* env, const Slice& data,
+ const std::string& fname);
+
+// A utility routine: read contents of named file into *data
+extern Status ReadFileToString(Env* env, const std::string& fname,
+ std::string* data);
+
+// An implementation of Env that forwards all calls to another Env.
+// May be useful to clients who wish to override just part of the
+// functionality of another Env.
+class EnvWrapper : public Env {
+ public:
+ // Initialize an EnvWrapper that delegates all calls to *t
+ explicit EnvWrapper(Env* t) : target_(t) { }
+ virtual ~EnvWrapper();
+
+ // Return the target to which this Env forwards all calls
+ Env* target() const { return target_; }
+
+ // The following text is boilerplate that forwards all methods to target()
+ Status NewSequentialFile(const std::string& f, SequentialFile** r) {
+ return target_->NewSequentialFile(f, r);
+ }
+ Status NewRandomAccessFile(const std::string& f, RandomAccessFile** r) {
+ return target_->NewRandomAccessFile(f, r);
+ }
+ Status NewWritableFile(const std::string& f, WritableFile** r) {
+ return target_->NewWritableFile(f, r);
+ }
+ bool FileExists(const std::string& f) { return target_->FileExists(f); }
+ Status GetChildren(const std::string& dir, std::vector<std::string>* r) {
+ return target_->GetChildren(dir, r);
+ }
+ Status DeleteFile(const std::string& f) { return target_->DeleteFile(f); }
+ Status CreateDir(const std::string& d) { return target_->CreateDir(d); }
+ Status DeleteDir(const std::string& d) { return target_->DeleteDir(d); }
+ Status GetFileSize(const std::string& f, uint64_t* s) {
+ return target_->GetFileSize(f, s);
+ }
+ Status RenameFile(const std::string& s, const std::string& t) {
+ return target_->RenameFile(s, t);
+ }
+ Status CopyFile(const std::string& s, const std::string& t) {
+ return target_->CopyFile(s, t);
+ }
+ Status LinkFile(const std::string& s, const std::string& t) {
+ return target_->LinkFile(s, t);
+ }
+ Status LockFile(const std::string& f, FileLock** l) {
+ return target_->LockFile(f, l);
+ }
+ Status UnlockFile(FileLock* l) { return target_->UnlockFile(l); }
+ void Schedule(void (*f)(void*), void* a) {
+ return target_->Schedule(f, a);
+ }
+ void StartThread(void (*f)(void*), void* a) {
+ return target_->StartThread(f, a);
+ }
+ virtual Status GetTestDirectory(std::string* path) {
+ return target_->GetTestDirectory(path);
+ }
+ virtual Status NewLogger(const std::string& fname, Logger** result) {
+ return target_->NewLogger(fname, result);
+ }
+ uint64_t NowMicros() {
+ return target_->NowMicros();
+ }
+ void SleepForMicroseconds(int micros) {
+ target_->SleepForMicroseconds(micros);
+ }
+ private:
+ Env* target_;
+};
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_INCLUDE_ENV_H_
diff --git a/clipper/HyperLevelDB/include/hyperleveldb/filter_policy.h b/clipper/HyperLevelDB/include/hyperleveldb/filter_policy.h
new file mode 100644
index 0000000..1fba080
--- /dev/null
+++ b/clipper/HyperLevelDB/include/hyperleveldb/filter_policy.h
@@ -0,0 +1,70 @@
+// Copyright (c) 2012 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+//
+// A database can be configured with a custom FilterPolicy object.
+// This object is responsible for creating a small filter from a set
+// of keys. These filters are stored in leveldb and are consulted
+// automatically by leveldb to decide whether or not to read some
+// information from disk. In many cases, a filter can cut down the
+// number of disk seeks form a handful to a single disk seek per
+// DB::Get() call.
+//
+// Most people will want to use the builtin bloom filter support (see
+// NewBloomFilterPolicy() below).
+
+#ifndef STORAGE_LEVELDB_INCLUDE_FILTER_POLICY_H_
+#define STORAGE_LEVELDB_INCLUDE_FILTER_POLICY_H_
+
+#include <string>
+
+namespace leveldb {
+
+class Slice;
+
+class FilterPolicy {
+ public:
+ virtual ~FilterPolicy();
+
+ // Return the name of this policy. Note that if the filter encoding
+ // changes in an incompatible way, the name returned by this method
+ // must be changed. Otherwise, old incompatible filters may be
+ // passed to methods of this type.
+ virtual const char* Name() const = 0;
+
+ // keys[0,n-1] contains a list of keys (potentially with duplicates)
+ // that are ordered according to the user supplied comparator.
+ // Append a filter that summarizes keys[0,n-1] to *dst.
+ //
+ // Warning: do not change the initial contents of *dst. Instead,
+ // append the newly constructed filter to *dst.
+ virtual void CreateFilter(const Slice* keys, int n, std::string* dst)
+ const = 0;
+
+ // "filter" contains the data appended by a preceding call to
+ // CreateFilter() on this class. This method must return true if
+ // the key was in the list of keys passed to CreateFilter().
+ // This method may return true or false if the key was not on the
+ // list, but it should aim to return false with a high probability.
+ virtual bool KeyMayMatch(const Slice& key, const Slice& filter) const = 0;
+};
+
+// Return a new filter policy that uses a bloom filter with approximately
+// the specified number of bits per key. A good value for bits_per_key
+// is 10, which yields a filter with ~ 1% false positive rate.
+//
+// Callers must delete the result after any database that is using the
+// result has been closed.
+//
+// Note: if you are using a custom comparator that ignores some parts
+// of the keys being compared, you must not use NewBloomFilterPolicy()
+// and must provide your own FilterPolicy that also ignores the
+// corresponding parts of the keys. For example, if the comparator
+// ignores trailing spaces, it would be incorrect to use a
+// FilterPolicy (like NewBloomFilterPolicy) that does not ignore
+// trailing spaces in keys.
+extern const FilterPolicy* NewBloomFilterPolicy(int bits_per_key);
+
+}
+
+#endif // STORAGE_LEVELDB_INCLUDE_FILTER_POLICY_H_
diff --git a/clipper/HyperLevelDB/include/hyperleveldb/iterator.h b/clipper/HyperLevelDB/include/hyperleveldb/iterator.h
new file mode 100644
index 0000000..36ef1e5
--- /dev/null
+++ b/clipper/HyperLevelDB/include/hyperleveldb/iterator.h
@@ -0,0 +1,100 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+//
+// An iterator yields a sequence of key/value pairs from a source.
+// The following class defines the interface. Multiple implementations
+// are provided by this library. In particular, iterators are provided
+// to access the contents of a Table or a DB.
+//
+// Multiple threads can invoke const methods on an Iterator without
+// external synchronization, but if any of the threads may call a
+// non-const method, all threads accessing the same Iterator must use
+// external synchronization.
+
+#ifndef STORAGE_LEVELDB_INCLUDE_ITERATOR_H_
+#define STORAGE_LEVELDB_INCLUDE_ITERATOR_H_
+
+#include "hyperleveldb/slice.h"
+#include "hyperleveldb/status.h"
+
+namespace leveldb {
+
+class Iterator {
+ public:
+ Iterator();
+ virtual ~Iterator();
+
+ // An iterator is either positioned at a key/value pair, or
+ // not valid. This method returns true iff the iterator is valid.
+ virtual bool Valid() const = 0;
+
+ // Position at the first key in the source. The iterator is Valid()
+ // after this call iff the source is not empty.
+ virtual void SeekToFirst() = 0;
+
+ // Position at the last key in the source. The iterator is
+ // Valid() after this call iff the source is not empty.
+ virtual void SeekToLast() = 0;
+
+ // Position at the first key in the source that at or past target
+ // The iterator is Valid() after this call iff the source contains
+ // an entry that comes at or past target.
+ virtual void Seek(const Slice& target) = 0;
+
+ // Moves to the next entry in the source. After this call, Valid() is
+ // true iff the iterator was not positioned at the last entry in the source.
+ // REQUIRES: Valid()
+ virtual void Next() = 0;
+
+ // Moves to the previous entry in the source. After this call, Valid() is
+ // true iff the iterator was not positioned at the first entry in source.
+ // REQUIRES: Valid()
+ virtual void Prev() = 0;
+
+ // Return the key for the current entry. The underlying storage for
+ // the returned slice is valid only until the next modification of
+ // the iterator.
+ // REQUIRES: Valid()
+ virtual Slice key() const = 0;
+
+ // Return the value for the current entry. The underlying storage for
+ // the returned slice is valid only until the next modification of
+ // the iterator.
+ // REQUIRES: !AtEnd() && !AtStart()
+ virtual Slice value() const = 0;
+
+ // If an error has occurred, return it. Else return an ok status.
+ virtual Status status() const = 0;
+
+ // Clients are allowed to register function/arg1/arg2 triples that
+ // will be invoked when this iterator is destroyed.
+ //
+ // Note that unlike all of the preceding methods, this method is
+ // not abstract and therefore clients should not override it.
+ typedef void (*CleanupFunction)(void* arg1, void* arg2);
+ void RegisterCleanup(CleanupFunction function, void* arg1, void* arg2);
+
+ private:
+ struct Cleanup {
+ CleanupFunction function;
+ void* arg1;
+ void* arg2;
+ Cleanup* next;
+ };
+ Cleanup cleanup_;
+
+ // No copying allowed
+ Iterator(const Iterator&);
+ void operator=(const Iterator&);
+};
+
+// Return an empty iterator (yields nothing).
+extern Iterator* NewEmptyIterator();
+
+// Return an empty iterator with the specified status.
+extern Iterator* NewErrorIterator(const Status& status);
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_INCLUDE_ITERATOR_H_
diff --git a/clipper/HyperLevelDB/include/hyperleveldb/options.h b/clipper/HyperLevelDB/include/hyperleveldb/options.h
new file mode 100644
index 0000000..3ba3536
--- /dev/null
+++ b/clipper/HyperLevelDB/include/hyperleveldb/options.h
@@ -0,0 +1,206 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#ifndef STORAGE_LEVELDB_INCLUDE_OPTIONS_H_
+#define STORAGE_LEVELDB_INCLUDE_OPTIONS_H_
+
+#include <stddef.h>
+
+namespace leveldb {
+
+class Cache;
+class Comparator;
+class Env;
+class FilterPolicy;
+class Logger;
+class Snapshot;
+
+// DB contents are stored in a set of blocks, each of which holds a
+// sequence of key,value pairs. Each block may be compressed before
+// being stored in a file. The following enum describes which
+// compression method (if any) is used to compress a block.
+enum CompressionType {
+ // NOTE: do not change the values of existing entries, as these are
+ // part of the persistent format on disk.
+ kNoCompression = 0x0,
+ kSnappyCompression = 0x1
+};
+
+// Options to control the behavior of a database (passed to DB::Open)
+struct Options {
+ // -------------------
+ // Parameters that affect behavior
+
+ // Comparator used to define the order of keys in the table.
+ // Default: a comparator that uses lexicographic byte-wise ordering
+ //
+ // REQUIRES: The client must ensure that the comparator supplied
+ // here has the same name and orders keys *exactly* the same as the
+ // comparator provided to previous open calls on the same DB.
+ const Comparator* comparator;
+
+ // If true, the database will be created if it is missing.
+ // Default: false
+ bool create_if_missing;
+
+ // If true, an error is raised if the database already exists.
+ // Default: false
+ bool error_if_exists;
+
+ // If true, the implementation will do aggressive checking of the
+ // data it is processing and will stop early if it detects any
+ // errors. This may have unforeseen ramifications: for example, a
+ // corruption of one DB entry may cause a large number of entries to
+ // become unreadable or for the entire DB to become unopenable.
+ // Default: false
+ bool paranoid_checks;
+
+ // Use the specified object to interact with the environment,
+ // e.g. to read/write files, schedule background work, etc.
+ // Default: Env::Default()
+ Env* env;
+
+ // Any internal progress/error information generated by the db will
+ // be written to info_log if it is non-NULL, or to a file stored
+ // in the same directory as the DB contents if info_log is NULL.
+ // Default: NULL
+ Logger* info_log;
+
+ // -------------------
+ // Parameters that affect performance
+
+ // Amount of data to build up in memory (backed by an unsorted log
+ // on disk) before converting to a sorted on-disk file.
+ //
+ // Larger values increase performance, especially during bulk loads.
+ // Up to two write buffers may be held in memory at the same time,
+ // so you may wish to adjust this parameter to control memory usage.
+ // Also, a larger write buffer will result in a longer recovery time
+ // the next time the database is opened.
+ //
+ // Default: 4MB
+ size_t write_buffer_size;
+
+ // Number of open files that can be used by the DB. You may need to
+ // increase this if your database has a large working set (budget
+ // one open file per 2MB of working set).
+ //
+ // Default: 1000
+ int max_open_files;
+
+ // Control over blocks (user data is stored in a set of blocks, and
+ // a block is the unit of reading from disk).
+
+ // If non-NULL, use the specified cache for blocks.
+ // If NULL, leveldb will automatically create and use an 8MB internal cache.
+ // Default: NULL
+ Cache* block_cache;
+
+ // Approximate size of user data packed per block. Note that the
+ // block size specified here corresponds to uncompressed data. The
+ // actual size of the unit read from disk may be smaller if
+ // compression is enabled. This parameter can be changed dynamically.
+ //
+ // Default: 4K
+ size_t block_size;
+
+ // Number of keys between restart points for delta encoding of keys.
+ // This parameter can be changed dynamically. Most clients should
+ // leave this parameter alone.
+ //
+ // Default: 16
+ int block_restart_interval;
+
+ // Compress blocks using the specified compression algorithm. This
+ // parameter can be changed dynamically.
+ //
+ // Default: kSnappyCompression, which gives lightweight but fast
+ // compression.
+ //
+ // Typical speeds of kSnappyCompression on an Intel(R) Core(TM)2 2.4GHz:
+ // ~200-500MB/s compression
+ // ~400-800MB/s decompression
+ // Note that these speeds are significantly faster than most
+ // persistent storage speeds, and therefore it is typically never
+ // worth switching to kNoCompression. Even if the input data is
+ // incompressible, the kSnappyCompression implementation will
+ // efficiently detect that and will switch to uncompressed mode.
+ CompressionType compression;
+
+ // If non-NULL, use the specified filter policy to reduce disk reads.
+ // Many applications will benefit from passing the result of
+ // NewBloomFilterPolicy() here.
+ //
+ // Default: NULL
+ const FilterPolicy* filter_policy;
+
+ // Is the database used with the Replay mechanism? If yes, the lower bound on
+ // values to compact is (somewhat) left up to the application; if no, then
+ // LevelDB functions as usual, and uses snapshots to determine the lower
+ // bound. HyperLevelDB will always maintain the integrity of snapshots, so
+ // the application merely has the option to hold data as if it's holding a
+ // snapshot. This just prevents compaction from grabbing data before the app
+ // can get a snapshot.
+ //
+ // Default: false/no.
+ bool manual_garbage_collection;
+
+ // Create an Options object with default values for all fields.
+ Options();
+};
+
+// Options that control read operations
+struct ReadOptions {
+ // If true, all data read from underlying storage will be
+ // verified against corresponding checksums.
+ // Default: false
+ bool verify_checksums;
+
+ // Should the data read for this iteration be cached in memory?
+ // Callers may wish to set this field to false for bulk scans.
+ // Default: true
+ bool fill_cache;
+
+ // If "snapshot" is non-NULL, read as of the supplied snapshot
+ // (which must belong to the DB that is being read and which must
+ // not have been released). If "snapshot" is NULL, use an impliicit
+ // snapshot of the state at the beginning of this read operation.
+ // Default: NULL
+ const Snapshot* snapshot;
+
+ ReadOptions()
+ : verify_checksums(false),
+ fill_cache(true),
+ snapshot(NULL) {
+ }
+};
+
+// Options that control write operations
+struct WriteOptions {
+ // If true, the write will be flushed from the operating system
+ // buffer cache (by calling WritableFile::Sync()) before the write
+ // is considered complete. If this flag is true, writes will be
+ // slower.
+ //
+ // If this flag is false, and the machine crashes, some recent
+ // writes may be lost. Note that if it is just the process that
+ // crashes (i.e., the machine does not reboot), no writes will be
+ // lost even if sync==false.
+ //
+ // In other words, a DB write with sync==false has similar
+ // crash semantics as the "write()" system call. A DB write
+ // with sync==true has similar crash semantics to a "write()"
+ // system call followed by "fsync()".
+ //
+ // Default: false
+ bool sync;
+
+ WriteOptions()
+ : sync(false) {
+ }
+};
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_INCLUDE_OPTIONS_H_
diff --git a/clipper/HyperLevelDB/include/hyperleveldb/replay_iterator.h b/clipper/HyperLevelDB/include/hyperleveldb/replay_iterator.h
new file mode 100644
index 0000000..3748fb1
--- /dev/null
+++ b/clipper/HyperLevelDB/include/hyperleveldb/replay_iterator.h
@@ -0,0 +1,65 @@
+// Copyright (c) 2013 The HyperLevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#ifndef STORAGE_LEVELDB_INCLUDE_REPLAY_ITERATOR_H_
+#define STORAGE_LEVELDB_INCLUDE_REPLAY_ITERATOR_H_
+
+#include "hyperleveldb/slice.h"
+#include "hyperleveldb/status.h"
+
+namespace leveldb {
+
+class ReplayIterator {
+ public:
+ ReplayIterator();
+
+ // An iterator is either positioned at a deleted key, present key/value pair,
+ // or not valid. This method returns true iff the iterator is valid.
+ virtual bool Valid() = 0;
+
+ // Moves to the next entry in the source. After this call, Valid() is
+ // true iff the iterator was not positioned at the last entry in the source.
+ // REQUIRES: Valid()
+ virtual void Next() = 0;
+
+ // Position at the first key in the source that at or past target for this
+ // pass. Note that this is unlike the Seek call, as the ReplayIterator is
+ // unsorted.
+ // The iterator is Valid() after this call iff the source contains
+ // an entry that comes at or past target.
+ virtual void SkipTo(const Slice& target) = 0;
+ virtual void SkipToLast() = 0;
+
+ // Return true if the current entry points to a key-value pair. If this
+ // returns false, it means the current entry is a deleted entry.
+ virtual bool HasValue() = 0;
+
+ // Return the key for the current entry. The underlying storage for
+ // the returned slice is valid only until the next modification of
+ // the iterator.
+ // REQUIRES: Valid()
+ virtual Slice key() const = 0;
+
+ // Return the value for the current entry. The underlying storage for
+ // the returned slice is valid only until the next modification of
+ // the iterator.
+ // REQUIRES: !AtEnd() && !AtStart()
+ virtual Slice value() const = 0;
+
+ // If an error has occurred, return it. Else return an ok status.
+ virtual Status status() const = 0;
+
+ protected:
+ // must be released by giving it back to the DB
+ virtual ~ReplayIterator();
+
+ private:
+ // No copying allowed
+ ReplayIterator(const ReplayIterator&);
+ void operator=(const ReplayIterator&);
+};
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_INCLUDE_REPLAY_ITERATOR_H_
diff --git a/clipper/HyperLevelDB/include/hyperleveldb/slice.h b/clipper/HyperLevelDB/include/hyperleveldb/slice.h
new file mode 100644
index 0000000..74ea8fa
--- /dev/null
+++ b/clipper/HyperLevelDB/include/hyperleveldb/slice.h
@@ -0,0 +1,109 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+//
+// Slice is a simple structure containing a pointer into some external
+// storage and a size. The user of a Slice must ensure that the slice
+// is not used after the corresponding external storage has been
+// deallocated.
+//
+// Multiple threads can invoke const methods on a Slice without
+// external synchronization, but if any of the threads may call a
+// non-const method, all threads accessing the same Slice must use
+// external synchronization.
+
+#ifndef STORAGE_LEVELDB_INCLUDE_SLICE_H_
+#define STORAGE_LEVELDB_INCLUDE_SLICE_H_
+
+#include <assert.h>
+#include <stddef.h>
+#include <string.h>
+#include <string>
+
+namespace leveldb {
+
+class Slice {
+ public:
+ // Create an empty slice.
+ Slice() : data_(""), size_(0) { }
+
+ // Create a slice that refers to d[0,n-1].
+ Slice(const char* d, size_t n) : data_(d), size_(n) { }
+
+ // Create a slice that refers to the contents of "s"
+ Slice(const std::string& s) : data_(s.data()), size_(s.size()) { }
+
+ // Create a slice that refers to s[0,strlen(s)-1]
+ Slice(const char* s) : data_(s), size_(strlen(s)) { }
+
+ // Return a pointer to the beginning of the referenced data
+ const char* data() const { return data_; }
+
+ // Return the length (in bytes) of the referenced data
+ size_t size() const { return size_; }
+
+ // Return true iff the length of the referenced data is zero
+ bool empty() const { return size_ == 0; }
+
+ // Return the ith byte in the referenced data.
+ // REQUIRES: n < size()
+ char operator[](size_t n) const {
+ assert(n < size());
+ return data_[n];
+ }
+
+ // Change this slice to refer to an empty array
+ void clear() { data_ = ""; size_ = 0; }
+
+ // Drop the first "n" bytes from this slice.
+ void remove_prefix(size_t n) {
+ assert(n <= size());
+ data_ += n;
+ size_ -= n;
+ }
+
+ // Return a string that contains the copy of the referenced data.
+ std::string ToString() const { return std::string(data_, size_); }
+
+ // Three-way comparison. Returns value:
+ // < 0 iff "*this" < "b",
+ // == 0 iff "*this" == "b",
+ // > 0 iff "*this" > "b"
+ int compare(const Slice& b) const;
+
+ // Return true iff "x" is a prefix of "*this"
+ bool starts_with(const Slice& x) const {
+ return ((size_ >= x.size_) &&
+ (memcmp(data_, x.data_, x.size_) == 0));
+ }
+
+ private:
+ const char* data_;
+ size_t size_;
+
+ // Intentionally copyable
+};
+
+inline bool operator==(const Slice& x, const Slice& y) {
+ return ((x.size() == y.size()) &&
+ (memcmp(x.data(), y.data(), x.size()) == 0));
+}
+
+inline bool operator!=(const Slice& x, const Slice& y) {
+ return !(x == y);
+}
+
+inline int Slice::compare(const Slice& b) const {
+ const int min_len = (size_ < b.size_) ? size_ : b.size_;
+ int r = memcmp(data_, b.data_, min_len);
+ if (r == 0) {
+ if (size_ < b.size_) r = -1;
+ else if (size_ > b.size_) r = +1;
+ }
+ return r;
+}
+
+} // namespace leveldb
+
+
+#endif // STORAGE_LEVELDB_INCLUDE_SLICE_H_
diff --git a/clipper/HyperLevelDB/include/hyperleveldb/status.h b/clipper/HyperLevelDB/include/hyperleveldb/status.h
new file mode 100644
index 0000000..cb8c141
--- /dev/null
+++ b/clipper/HyperLevelDB/include/hyperleveldb/status.h
@@ -0,0 +1,107 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+//
+// A Status encapsulates the result of an operation. It may indicate success,
+// or it may indicate an error with an associated error message.
+//
+// Multiple threads can invoke const methods on a Status without
+// external synchronization, but if any of the threads may call a
+// non-const method, all threads accessing the same Status must use
+// external synchronization.
+
+#ifndef STORAGE_LEVELDB_INCLUDE_STATUS_H_
+#define STORAGE_LEVELDB_INCLUDE_STATUS_H_
+
+#include <string>
+#include "hyperleveldb/slice.h"
+
+namespace leveldb {
+
+class Status {
+ public:
+ // Create a success status.
+ Status() : state_(NULL) { }
+ ~Status() { delete[] state_; }
+
+ // Copy the specified status.
+ Status(const Status& s);
+ Status& operator=(const Status& s);
+
+ // Return a success status.
+ static Status OK() { return Status(); }
+
+ // Return error status of an appropriate type.
+ static Status NotFound(const Slice& msg, const Slice& msg2 = Slice()) {
+ return Status(kNotFound, msg, msg2);
+ }
+ static Status Corruption(const Slice& msg, const Slice& msg2 = Slice()) {
+ return Status(kCorruption, msg, msg2);
+ }
+ static Status NotSupported(const Slice& msg, const Slice& msg2 = Slice()) {
+ return Status(kNotSupported, msg, msg2);
+ }
+ static Status InvalidArgument(const Slice& msg, const Slice& msg2 = Slice()) {
+ return Status(kInvalidArgument, msg, msg2);
+ }
+ static Status IOError(const Slice& msg, const Slice& msg2 = Slice()) {
+ return Status(kIOError, msg, msg2);
+ }
+
+ // Returns true iff the status indicates success.
+ bool ok() const { return (state_ == NULL); }
+
+ // Returns true iff the status indicates a NotFound error.
+ bool IsNotFound() const { return code() == kNotFound; }
+
+ // Returns true iff the status indicates a Corruption error.
+ bool IsCorruption() const { return code() == kCorruption; }
+
+ // Returns true iff the status indicates an IOError.
+ bool IsIOError() const { return code() == kIOError; }
+
+ // Return a string representation of this status suitable for printing.
+ // Returns the string "OK" for success.
+ std::string ToString() const;
+
+ private:
+ // OK status has a NULL state_. Otherwise, state_ is a new[] array
+ // of the following form:
+ // state_[0..3] == length of message
+ // state_[4] == code
+ // state_[5..] == message
+ const char* state_;
+
+ enum Code {
+ kOk = 0,
+ kNotFound = 1,
+ kCorruption = 2,
+ kNotSupported = 3,
+ kInvalidArgument = 4,
+ kIOError = 5
+ };
+
+ Code code() const {
+ return (state_ == NULL) ? kOk : static_cast<Code>(state_[4]);
+ }
+
+ Status(Code code, const Slice& msg, const Slice& msg2);
+ static const char* CopyState(const char* s);
+};
+
+inline Status::Status(const Status& s) : state_(NULL) {
+ state_ = (s.state_ == NULL) ? NULL : CopyState(s.state_);
+}
+inline Status& Status::operator=(const Status& s) {
+ // The following condition catches both aliasing (when this == &s),
+ // and the common case where both s and *this are ok.
+ if (state_ != s.state_) {
+ delete[] state_;
+ state_ = (s.state_ == NULL) ? NULL : CopyState(s.state_);
+ }
+ return *this;
+}
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_INCLUDE_STATUS_H_
diff --git a/clipper/HyperLevelDB/include/hyperleveldb/table.h b/clipper/HyperLevelDB/include/hyperleveldb/table.h
new file mode 100644
index 0000000..d43db13
--- /dev/null
+++ b/clipper/HyperLevelDB/include/hyperleveldb/table.h
@@ -0,0 +1,85 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#ifndef STORAGE_LEVELDB_INCLUDE_TABLE_H_
+#define STORAGE_LEVELDB_INCLUDE_TABLE_H_
+
+#include <stdint.h>
+#include "hyperleveldb/iterator.h"
+
+namespace leveldb {
+
+class Block;
+class BlockHandle;
+class Footer;
+struct Options;
+class RandomAccessFile;
+struct ReadOptions;
+class TableCache;
+
+// A Table is a sorted map from strings to strings. Tables are
+// immutable and persistent. A Table may be safely accessed from
+// multiple threads without external synchronization.
+class Table {
+ public:
+ // Attempt to open the table that is stored in bytes [0..file_size)
+ // of "file", and read the metadata entries necessary to allow
+ // retrieving data from the table.
+ //
+ // If successful, returns ok and sets "*table" to the newly opened
+ // table. The client should delete "*table" when no longer needed.
+ // If there was an error while initializing the table, sets "*table"
+ // to NULL and returns a non-ok status. Does not take ownership of
+ // "*source", but the client must ensure that "source" remains live
+ // for the duration of the returned table's lifetime.
+ //
+ // *file must remain live while this Table is in use.
+ static Status Open(const Options& options,
+ RandomAccessFile* file,
+ uint64_t file_size,
+ Table** table);
+
+ ~Table();
+
+ // Returns a new iterator over the table contents.
+ // The result of NewIterator() is initially invalid (caller must
+ // call one of the Seek methods on the iterator before using it).
+ Iterator* NewIterator(const ReadOptions&) const;
+
+ // Given a key, return an approximate byte offset in the file where
+ // the data for that key begins (or would begin if the key were
+ // present in the file). The returned value is in terms of file
+ // bytes, and so includes effects like compression of the underlying data.
+ // E.g., the approximate offset of the last key in the table will
+ // be close to the file length.
+ uint64_t ApproximateOffsetOf(const Slice& key) const;
+
+ private:
+ struct Rep;
+ Rep* rep_;
+
+ explicit Table(Rep* rep) { rep_ = rep; }
+ static Iterator* BlockReader(void*, const ReadOptions&, const Slice&);
+
+ // Calls (*handle_result)(arg, ...) with the entry found after a call
+ // to Seek(key). May not make such a call if filter policy says
+ // that key is not present.
+ friend class TableCache;
+ Status InternalGet(
+ const ReadOptions&, const Slice& key,
+ void* arg,
+ void (*handle_result)(void* arg, const Slice& k, const Slice& v));
+
+
+ void ReadMeta(const Footer& footer);
+ void ReadFilter(const Slice& filter_handle_value);
+
+ // No copying allowed
+ Table(const Table&);
+ void operator=(const Table&);
+};
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_INCLUDE_TABLE_H_
diff --git a/clipper/HyperLevelDB/include/hyperleveldb/table_builder.h b/clipper/HyperLevelDB/include/hyperleveldb/table_builder.h
new file mode 100644
index 0000000..493a7db
--- /dev/null
+++ b/clipper/HyperLevelDB/include/hyperleveldb/table_builder.h
@@ -0,0 +1,92 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+//
+// TableBuilder provides the interface used to build a Table
+// (an immutable and sorted map from keys to values).
+//
+// Multiple threads can invoke const methods on a TableBuilder without
+// external synchronization, but if any of the threads may call a
+// non-const method, all threads accessing the same TableBuilder must use
+// external synchronization.
+
+#ifndef STORAGE_LEVELDB_INCLUDE_TABLE_BUILDER_H_
+#define STORAGE_LEVELDB_INCLUDE_TABLE_BUILDER_H_
+
+#include <stdint.h>
+#include "hyperleveldb/options.h"
+#include "hyperleveldb/status.h"
+
+namespace leveldb {
+
+class BlockBuilder;
+class BlockHandle;
+class WritableFile;
+
+class TableBuilder {
+ public:
+ // Create a builder that will store the contents of the table it is
+ // building in *file. Does not close the file. It is up to the
+ // caller to close the file after calling Finish().
+ TableBuilder(const Options& options, WritableFile* file);
+
+ // REQUIRES: Either Finish() or Abandon() has been called.
+ ~TableBuilder();
+
+ // Change the options used by this builder. Note: only some of the
+ // option fields can be changed after construction. If a field is
+ // not allowed to change dynamically and its value in the structure
+ // passed to the constructor is different from its value in the
+ // structure passed to this method, this method will return an error
+ // without changing any fields.
+ Status ChangeOptions(const Options& options);
+
+ // Add key,value to the table being constructed.
+ // REQUIRES: key is after any previously added key according to comparator.
+ // REQUIRES: Finish(), Abandon() have not been called
+ void Add(const Slice& key, const Slice& value);
+
+ // Advanced operation: flush any buffered key/value pairs to file.
+ // Can be used to ensure that two adjacent entries never live in
+ // the same data block. Most clients should not need to use this method.
+ // REQUIRES: Finish(), Abandon() have not been called
+ void Flush();
+
+ // Return non-ok iff some error has been detected.
+ Status status() const;
+
+ // Finish building the table. Stops using the file passed to the
+ // constructor after this function returns.
+ // REQUIRES: Finish(), Abandon() have not been called
+ Status Finish();
+
+ // Indicate that the contents of this builder should be abandoned. Stops
+ // using the file passed to the constructor after this function returns.
+ // If the caller is not going to call Finish(), it must call Abandon()
+ // before destroying this builder.
+ // REQUIRES: Finish(), Abandon() have not been called
+ void Abandon();
+
+ // Number of calls to Add() so far.
+ uint64_t NumEntries() const;
+
+ // Size of the file generated so far. If invoked after a successful
+ // Finish() call, returns the size of the final generated file.
+ uint64_t FileSize() const;
+
+ private:
+ bool ok() const { return status().ok(); }
+ void WriteBlock(BlockBuilder* block, BlockHandle* handle);
+ void WriteRawBlock(const Slice& data, CompressionType, BlockHandle* handle);
+
+ struct Rep;
+ Rep* rep_;
+
+ // No copying allowed
+ TableBuilder(const TableBuilder&);
+ void operator=(const TableBuilder&);
+};
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_INCLUDE_TABLE_BUILDER_H_
diff --git a/clipper/HyperLevelDB/include/hyperleveldb/write_batch.h b/clipper/HyperLevelDB/include/hyperleveldb/write_batch.h
new file mode 100644
index 0000000..c50fe5e
--- /dev/null
+++ b/clipper/HyperLevelDB/include/hyperleveldb/write_batch.h
@@ -0,0 +1,64 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+//
+// WriteBatch holds a collection of updates to apply atomically to a DB.
+//
+// The updates are applied in the order in which they are added
+// to the WriteBatch. For example, the value of "key" will be "v3"
+// after the following batch is written:
+//
+// batch.Put("key", "v1");
+// batch.Delete("key");
+// batch.Put("key", "v2");
+// batch.Put("key", "v3");
+//
+// Multiple threads can invoke const methods on a WriteBatch without
+// external synchronization, but if any of the threads may call a
+// non-const method, all threads accessing the same WriteBatch must use
+// external synchronization.
+
+#ifndef STORAGE_LEVELDB_INCLUDE_WRITE_BATCH_H_
+#define STORAGE_LEVELDB_INCLUDE_WRITE_BATCH_H_
+
+#include <string>
+#include "hyperleveldb/status.h"
+
+namespace leveldb {
+
+class Slice;
+
+class WriteBatch {
+ public:
+ WriteBatch();
+ ~WriteBatch();
+
+ // Store the mapping "key->value" in the database.
+ void Put(const Slice& key, const Slice& value);
+
+ // If the database contains a mapping for "key", erase it. Else do nothing.
+ void Delete(const Slice& key);
+
+ // Clear all updates buffered in this batch.
+ void Clear();
+
+ // Support for iterating over the contents of a batch.
+ class Handler {
+ public:
+ virtual ~Handler();
+ virtual void Put(const Slice& key, const Slice& value) = 0;
+ virtual void Delete(const Slice& key) = 0;
+ };
+ Status Iterate(Handler* handler) const;
+
+ private:
+ friend class WriteBatchInternal;
+
+ std::string rep_; // See comment in write_batch.cc for the format of rep_
+
+ // Intentionally copyable
+};
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_INCLUDE_WRITE_BATCH_H_
diff --git a/clipper/HyperLevelDB/issues/issue178_test.cc b/clipper/HyperLevelDB/issues/issue178_test.cc
new file mode 100644
index 0000000..ffba66a
--- /dev/null
+++ b/clipper/HyperLevelDB/issues/issue178_test.cc
@@ -0,0 +1,92 @@
+// Copyright (c) 2013 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+// Test for issue 178: a manual compaction causes deleted data to reappear.
+#include <iostream>
+#include <sstream>
+#include <cstdlib>
+
+#include "hyperleveldb/db.h"
+#include "hyperleveldb/write_batch.h"
+#include "util/testharness.h"
+
+namespace {
+
+const int kNumKeys = 1100000;
+
+std::string Key1(int i) {
+ char buf[100];
+ snprintf(buf, sizeof(buf), "my_key_%d", i);
+ return buf;
+}
+
+std::string Key2(int i) {
+ return Key1(i) + "_xxx";
+}
+
+class Issue178 { };
+
+TEST(Issue178, Test) {
+ // Get rid of any state from an old run.
+ std::string dbpath = leveldb::test::TmpDir() + "/leveldb_cbug_test";
+ DestroyDB(dbpath, leveldb::Options());
+
+ // Open database. Disable compression since it affects the creation
+ // of layers and the code below is trying to test against a very
+ // specific scenario.
+ leveldb::DB* db;
+ leveldb::Options db_options;
+ db_options.create_if_missing = true;
+ db_options.compression = leveldb::kNoCompression;
+ ASSERT_OK(leveldb::DB::Open(db_options, dbpath, &db));
+
+ // create first key range
+ leveldb::WriteBatch batch;
+ for (size_t i = 0; i < kNumKeys; i++) {
+ batch.Put(Key1(i), "value for range 1 key");
+ }
+ ASSERT_OK(db->Write(leveldb::WriteOptions(), &batch));
+
+ // create second key range
+ batch.Clear();
+ for (size_t i = 0; i < kNumKeys; i++) {
+ batch.Put(Key2(i), "value for range 2 key");
+ }
+ ASSERT_OK(db->Write(leveldb::WriteOptions(), &batch));
+
+ // delete second key range
+ batch.Clear();
+ for (size_t i = 0; i < kNumKeys; i++) {
+ batch.Delete(Key2(i));
+ }
+ ASSERT_OK(db->Write(leveldb::WriteOptions(), &batch));
+
+ // compact database
+ std::string start_key = Key1(0);
+ std::string end_key = Key1(kNumKeys - 1);
+ leveldb::Slice least(start_key.data(), start_key.size());
+ leveldb::Slice greatest(end_key.data(), end_key.size());
+
+ // commenting out the line below causes the example to work correctly
+ db->CompactRange(&least, &greatest);
+
+ // count the keys
+ leveldb::Iterator* iter = db->NewIterator(leveldb::ReadOptions());
+ size_t num_keys = 0;
+ for (iter->SeekToFirst(); iter->Valid(); iter->Next()) {
+ num_keys++;
+ }
+ delete iter;
+ ASSERT_EQ(kNumKeys, num_keys) << "Bad number of keys";
+
+ // close database
+ delete db;
+ DestroyDB(dbpath, leveldb::Options());
+}
+
+} // anonymous namespace
+
+int main(int argc, char** argv) {
+ return leveldb::test::RunAllTests();
+}
diff --git a/clipper/HyperLevelDB/issues/issue200_test.cc b/clipper/HyperLevelDB/issues/issue200_test.cc
new file mode 100644
index 0000000..17c267d
--- /dev/null
+++ b/clipper/HyperLevelDB/issues/issue200_test.cc
@@ -0,0 +1,59 @@
+// Copyright (c) 2013 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+// Test for issue 200: when iterator switches direction from backward
+// to forward, the current key can be yielded unexpectedly if a new
+// mutation has been added just before the current key.
+
+#include "hyperleveldb/db.h"
+#include "util/testharness.h"
+
+namespace leveldb {
+
+class Issue200 { };
+
+TEST(Issue200, Test) {
+ // Get rid of any state from an old run.
+ std::string dbpath = test::TmpDir() + "/leveldb_issue200_test";
+ DestroyDB(dbpath, Options());
+
+ DB *db;
+ Options options;
+ options.create_if_missing = true;
+ ASSERT_OK(DB::Open(options, dbpath, &db));
+
+ WriteOptions write_options;
+ ASSERT_OK(db->Put(write_options, "1", "b"));
+ ASSERT_OK(db->Put(write_options, "2", "c"));
+ ASSERT_OK(db->Put(write_options, "3", "d"));
+ ASSERT_OK(db->Put(write_options, "4", "e"));
+ ASSERT_OK(db->Put(write_options, "5", "f"));
+
+ ReadOptions read_options;
+ Iterator *iter = db->NewIterator(read_options);
+
+ // Add an element that should not be reflected in the iterator.
+ ASSERT_OK(db->Put(write_options, "25", "cd"));
+
+ iter->Seek("5");
+ ASSERT_EQ(iter->key().ToString(), "5");
+ iter->Prev();
+ ASSERT_EQ(iter->key().ToString(), "4");
+ iter->Prev();
+ ASSERT_EQ(iter->key().ToString(), "3");
+ iter->Next();
+ ASSERT_EQ(iter->key().ToString(), "4");
+ iter->Next();
+ ASSERT_EQ(iter->key().ToString(), "5");
+
+ delete iter;
+ delete db;
+ DestroyDB(dbpath, options);
+}
+
+} // namespace leveldb
+
+int main(int argc, char** argv) {
+ return leveldb::test::RunAllTests();
+}
diff --git a/clipper/HyperLevelDB/leveldb-verify.cc b/clipper/HyperLevelDB/leveldb-verify.cc
new file mode 100644
index 0000000..656e890
--- /dev/null
+++ b/clipper/HyperLevelDB/leveldb-verify.cc
@@ -0,0 +1,205 @@
+// Copyright (c) 2012-2013 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include <stdio.h>
+#include "db/dbformat.h"
+#include "db/filename.h"
+#include "db/log_reader.h"
+#include "db/version_edit.h"
+#include "db/write_batch_internal.h"
+#include "hyperleveldb/env.h"
+#include "hyperleveldb/iterator.h"
+#include "hyperleveldb/options.h"
+#include "hyperleveldb/status.h"
+#include "hyperleveldb/table.h"
+#include "hyperleveldb/write_batch.h"
+#include "util/logging.h"
+
+namespace leveldb {
+
+namespace {
+
+bool GuessType(const std::string& fname, FileType* type) {
+ size_t pos = fname.rfind('/');
+ std::string basename;
+ if (pos == std::string::npos) {
+ basename = fname;
+ } else {
+ basename = std::string(fname.data() + pos + 1, fname.size() - pos - 1);
+ }
+ uint64_t ignored;
+ return ParseFileName(basename, &ignored, type);
+}
+
+// Notified when log reader encounters corruption.
+class CorruptionReporter : public log::Reader::Reporter {
+ public:
+ virtual void Corruption(size_t bytes, const Status& status) {
+ printf("corruption: %d bytes; %s\n",
+ static_cast<int>(bytes),
+ status.ToString().c_str());
+ }
+};
+
+// Print contents of a log file. (*func)() is called on every record.
+bool PrintLogContents(Env* env, const std::string& fname,
+ void (*func)(Slice)) {
+ SequentialFile* file;
+ Status s = env->NewSequentialFile(fname, &file);
+ if (!s.ok()) {
+ fprintf(stderr, "%s\n", s.ToString().c_str());
+ return false;
+ }
+ CorruptionReporter reporter;
+ log::Reader reader(file, &reporter, true, 0);
+ Slice record;
+ std::string scratch;
+ while (reader.ReadRecord(&record, &scratch)) {
+ (*func)(record);
+ }
+ delete file;
+ return true;
+}
+
+// Called on every item found in a WriteBatch.
+class WriteBatchItemPrinter : public WriteBatch::Handler {
+ public:
+ uint64_t offset_;
+ uint64_t sequence_;
+
+ virtual void Put(const Slice& key, const Slice& value) {
+ }
+ virtual void Delete(const Slice& key) {
+ }
+};
+
+// Called on every log record (each one of which is a WriteBatch)
+// found in a kLogFile.
+static void WriteBatchPrinter(Slice record) {
+ if (record.size() < 12) {
+ printf("log record length %d is too small\n",
+ static_cast<int>(record.size()));
+ return;
+ }
+ WriteBatch batch;
+ WriteBatchInternal::SetContents(&batch, record);
+ WriteBatchItemPrinter batch_item_printer;
+ Status s = batch.Iterate(&batch_item_printer);
+ if (!s.ok()) {
+ fprintf(stderr, "error: %s\n", s.ToString().c_str());
+ }
+}
+
+bool DumpLog(Env* env, const std::string& fname) {
+ return PrintLogContents(env, fname, WriteBatchPrinter);
+}
+
+// Called on every log record (each one of which is a WriteBatch)
+// found in a kDescriptorFile.
+static void VersionEditPrinter(Slice record) {
+ VersionEdit edit;
+ Status s = edit.DecodeFrom(record);
+ if (!s.ok()) {
+ fprintf(stderr, "%s\n", s.ToString().c_str());
+ return;
+ }
+}
+
+bool DumpDescriptor(Env* env, const std::string& fname) {
+ return PrintLogContents(env, fname, VersionEditPrinter);
+}
+
+bool DumpTable(Env* env, const std::string& fname) {
+ uint64_t file_size;
+ RandomAccessFile* file = NULL;
+ Table* table = NULL;
+ Status s = env->GetFileSize(fname, &file_size);
+ if (s.ok()) {
+ s = env->NewRandomAccessFile(fname, &file);
+ }
+ if (s.ok()) {
+ // We use the default comparator, which may or may not match the
+ // comparator used in this database. However this should not cause
+ // problems since we only use Table operations that do not require
+ // any comparisons. In particular, we do not call Seek or Prev.
+ s = Table::Open(Options(), file, file_size, &table);
+ }
+ if (!s.ok()) {
+ fprintf(stderr, "%s\n", s.ToString().c_str());
+ delete table;
+ delete file;
+ return false;
+ }
+
+ ReadOptions ro;
+ ro.verify_checksums = true;
+ Iterator* iter = table->NewIterator(ro);
+ Iterator* verify = table->NewIterator(ro);
+ for (iter->SeekToFirst(); iter->Valid(); iter->Next()) {
+ if (!iter->status().ok()) {
+ fprintf(stderr, "bad iteration %s\n", iter->status().ToString().c_str());
+ }
+ ParsedInternalKey key;
+ if (!ParseInternalKey(iter->key(), &key)) {
+ fprintf(stderr, "badkey '%s' => '%s'\n",
+ EscapeString(iter->key()).c_str(),
+ EscapeString(iter->value()).c_str());
+ }
+ verify->SeekToFirst();
+ if (!verify->status().ok()) {
+ fprintf(stderr, "bad iteration %s\n", verify->status().ToString().c_str());
+ }
+ verify->Seek(key.user_key);
+ if (!verify->status().ok()) {
+ fprintf(stderr, "bad iteration %s\n", verify->status().ToString().c_str());
+ }
+ }
+ s = iter->status();
+ if (!s.ok()) {
+ fprintf(stderr, "iterator error: %s\n", s.ToString().c_str());
+ }
+
+ delete iter;
+ delete verify;
+ delete table;
+ delete file;
+ return true;
+}
+
+bool DumpFile(Env* env, const std::string& fname) {
+ FileType ftype;
+ if (!GuessType(fname, &ftype)) {
+ fprintf(stderr, "%s: unknown file type\n", fname.c_str());
+ return false;
+ }
+ switch (ftype) {
+ case kLogFile: return DumpLog(env, fname);
+ case kDescriptorFile: return DumpDescriptor(env, fname);
+ case kTableFile: return DumpTable(env, fname);
+
+ default: {
+ fprintf(stderr, "%s: not a dump-able file type\n", fname.c_str());
+ break;
+ }
+ }
+ return false;
+}
+
+bool HandleDumpCommand(Env* env, char** files, int num) {
+ bool ok = true;
+ for (int i = 0; i < num; i++) {
+ ok &= DumpFile(env, files[i]);
+ }
+ return ok;
+}
+
+}
+} // namespace leveldb
+
+int main(int argc, char** argv) {
+ leveldb::Env* env = leveldb::Env::Default();
+ bool ok = true;
+ ok = leveldb::HandleDumpCommand(env, argv+1, argc-1);
+ return (ok ? 0 : 1);
+}
diff --git a/clipper/HyperLevelDB/libhyperleveldb.pc.in b/clipper/HyperLevelDB/libhyperleveldb.pc.in
new file mode 100644
index 0000000..9122267
--- /dev/null
+++ b/clipper/HyperLevelDB/libhyperleveldb.pc.in
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: HyperLevelDB
+Description: A fast and lightweight key-value storage library
+Version: @VERSION@
+
+Requires:
+Libs: -L${libdir} -lhyperleveldb
+Cflags: -I${includedir}
diff --git a/clipper/HyperLevelDB/m4/ax_check_compile_flag.m4 b/clipper/HyperLevelDB/m4/ax_check_compile_flag.m4
new file mode 100644
index 0000000..c3a8d69
--- /dev/null
+++ b/clipper/HyperLevelDB/m4/ax_check_compile_flag.m4
@@ -0,0 +1,72 @@
+# ===========================================================================
+# http://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS])
+#
+# DESCRIPTION
+#
+# Check whether the given FLAG works with the current language's compiler
+# or gives an error. (Warnings, however, are ignored)
+#
+# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
+# success/failure.
+#
+# If EXTRA-FLAGS is defined, it is added to the current language's default
+# flags (e.g. CFLAGS) when the check is done. The check is thus made with
+# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to
+# force the compiler to issue an error when a bad flag is given.
+#
+# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this
+# macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG.
+#
+# LICENSE
+#
+# Copyright (c) 2008 Guido U. Draheim <guidod at gmx.de>
+# Copyright (c) 2011 Maarten Bosmans <mkbosmans at gmail.com>
+#
+# 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 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, see <http://www.gnu.org/licenses/>.
+#
+# As a special exception, the respective Autoconf Macro's copyright owner
+# gives unlimited permission to copy, distribute and modify the configure
+# scripts that are the output of Autoconf when processing the Macro. You
+# need not follow the terms of the GNU General Public License when using
+# or distributing such scripts, even though portions of the text of the
+# Macro appear in them. The GNU General Public License (GPL) does govern
+# all other use of the material that constitutes the Autoconf Macro.
+#
+# This special exception to the GPL applies to versions of the Autoconf
+# Macro released by the Autoconf Archive. When you make and distribute a
+# modified version of the Autoconf Macro, you may extend this special
+# exception to the GPL to apply to your modified version as well.
+
+#serial 2
+
+AC_DEFUN([AX_CHECK_COMPILE_FLAG],
+[AC_PREREQ(2.59)dnl for _AC_LANG_PREFIX
+AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl
+AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [
+ ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS
+ _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
+ [AS_VAR_SET(CACHEVAR,[yes])],
+ [AS_VAR_SET(CACHEVAR,[no])])
+ _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags])
+AS_IF([test x"AS_VAR_GET(CACHEVAR)" = xyes],
+ [m4_default([$2], :)],
+ [m4_default([$3], :)])
+AS_VAR_POPDEF([CACHEVAR])dnl
+])dnl AX_CHECK_COMPILE_FLAGS
diff --git a/clipper/HyperLevelDB/port/README b/clipper/HyperLevelDB/port/README
new file mode 100644
index 0000000..422563e
--- /dev/null
+++ b/clipper/HyperLevelDB/port/README
@@ -0,0 +1,10 @@
+This directory contains interfaces and implementations that isolate the
+rest of the package from platform details.
+
+Code in the rest of the package includes "port.h" from this directory.
+"port.h" in turn includes a platform specific "port_<platform>.h" file
+that provides the platform specific implementation.
+
+See port_posix.h for an example of what must be provided in a platform
+specific header file.
+
diff --git a/clipper/HyperLevelDB/port/atomic_pointer.h b/clipper/HyperLevelDB/port/atomic_pointer.h
new file mode 100644
index 0000000..a9866b2
--- /dev/null
+++ b/clipper/HyperLevelDB/port/atomic_pointer.h
@@ -0,0 +1,224 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+// AtomicPointer provides storage for a lock-free pointer.
+// Platform-dependent implementation of AtomicPointer:
+// - If the platform provides a cheap barrier, we use it with raw pointers
+// - If cstdatomic is present (on newer versions of gcc, it is), we use
+// a cstdatomic-based AtomicPointer. However we prefer the memory
+// barrier based version, because at least on a gcc 4.4 32-bit build
+// on linux, we have encountered a buggy <cstdatomic>
+// implementation. Also, some <cstdatomic> implementations are much
+// slower than a memory-barrier based implementation (~16ns for
+// <cstdatomic> based acquire-load vs. ~1ns for a barrier based
+// acquire-load).
+// This code is based on atomicops-internals-* in Google's perftools:
+// http://code.google.com/p/google-perftools/source/browse/#svn%2Ftrunk%2Fsrc%2Fbase
+
+#ifndef PORT_ATOMIC_POINTER_H_
+#define PORT_ATOMIC_POINTER_H_
+
+#include <stdint.h>
+#ifdef LEVELDB_CSTDATOMIC_PRESENT
+#include <cstdatomic>
+#endif
+#ifdef OS_WIN
+#include <windows.h>
+#endif
+#ifdef OS_MACOSX
+#include <libkern/OSAtomic.h>
+#endif
+
+#if defined(_M_X64) || defined(__x86_64__)
+#define ARCH_CPU_X86_FAMILY 1
+#elif defined(_M_IX86) || defined(__i386__) || defined(__i386)
+#define ARCH_CPU_X86_FAMILY 1
+#elif defined(__ARMEL__)
+#define ARCH_CPU_ARM_FAMILY 1
+#elif defined(__ppc__) || defined(__powerpc__) || defined(__powerpc64__)
+#define ARCH_CPU_PPC_FAMILY 1
+#endif
+
+namespace leveldb {
+namespace port {
+
+// Define MemoryBarrier() if available
+// Windows on x86
+#if defined(OS_WIN) && defined(COMPILER_MSVC) && defined(ARCH_CPU_X86_FAMILY)
+// windows.h already provides a MemoryBarrier(void) macro
+// http://msdn.microsoft.com/en-us/library/ms684208(v=vs.85).aspx
+#define LEVELDB_HAVE_MEMORY_BARRIER
+
+// Mac OS
+#elif defined(OS_MACOSX)
+inline void MemoryBarrier() {
+ OSMemoryBarrier();
+}
+#define LEVELDB_HAVE_MEMORY_BARRIER
+
+// Gcc on x86
+#elif defined(ARCH_CPU_X86_FAMILY) && defined(__GNUC__)
+inline void MemoryBarrier() {
+ // See http://gcc.gnu.org/ml/gcc/2003-04/msg01180.html for a discussion on
+ // this idiom. Also see http://en.wikipedia.org/wiki/Memory_ordering.
+ __asm__ __volatile__("" : : : "memory");
+}
+#define LEVELDB_HAVE_MEMORY_BARRIER
+
+// Sun Studio
+#elif defined(ARCH_CPU_X86_FAMILY) && defined(__SUNPRO_CC)
+inline void MemoryBarrier() {
+ // See http://gcc.gnu.org/ml/gcc/2003-04/msg01180.html for a discussion on
+ // this idiom. Also see http://en.wikipedia.org/wiki/Memory_ordering.
+ asm volatile("" : : : "memory");
+}
+#define LEVELDB_HAVE_MEMORY_BARRIER
+
+// ARM Linux
+#elif defined(ARCH_CPU_ARM_FAMILY) && defined(__linux__)
+typedef void (*LinuxKernelMemoryBarrierFunc)(void);
+// The Linux ARM kernel provides a highly optimized device-specific memory
+// barrier function at a fixed memory address that is mapped in every
+// user-level process.
+//
+// This beats using CPU-specific instructions which are, on single-core
+// devices, un-necessary and very costly (e.g. ARMv7-A "dmb" takes more
+// than 180ns on a Cortex-A8 like the one on a Nexus One). Benchmarking
+// shows that the extra function call cost is completely negligible on
+// multi-core devices.
+//
+inline void MemoryBarrier() {
+ (*(LinuxKernelMemoryBarrierFunc)0xffff0fa0)();
+}
+#define LEVELDB_HAVE_MEMORY_BARRIER
+
+// PPC
+#elif defined(ARCH_CPU_PPC_FAMILY) && defined(__GNUC__)
+inline void MemoryBarrier() {
+ // TODO for some powerpc expert: is there a cheaper suitable variant?
+ // Perhaps by having separate barriers for acquire and release ops.
+ asm volatile("sync" : : : "memory");
+}
+#define LEVELDB_HAVE_MEMORY_BARRIER
+
+#endif
+
+// AtomicPointer built using platform-specific MemoryBarrier()
+#if defined(LEVELDB_HAVE_MEMORY_BARRIER)
+class AtomicPointer {
+ private:
+ void* rep_;
+ public:
+ AtomicPointer() { }
+ explicit AtomicPointer(void* p) : rep_(p) {}
+ inline void* NoBarrier_Load() const { return rep_; }
+ inline void NoBarrier_Store(void* v) { rep_ = v; }
+ inline void* Acquire_Load() const {
+ void* result = rep_;
+ MemoryBarrier();
+ return result;
+ }
+ inline void Release_Store(void* v) {
+ MemoryBarrier();
+ rep_ = v;
+ }
+};
+
+// AtomicPointer based on <cstdatomic>
+#elif defined(LEVELDB_CSTDATOMIC_PRESENT)
+class AtomicPointer {
+ private:
+ std::atomic<void*> rep_;
+ public:
+ AtomicPointer() { }
+ explicit AtomicPointer(void* v) : rep_(v) { }
+ inline void* Acquire_Load() const {
+ return rep_.load(std::memory_order_acquire);
+ }
+ inline void Release_Store(void* v) {
+ rep_.store(v, std::memory_order_release);
+ }
+ inline void* NoBarrier_Load() const {
+ return rep_.load(std::memory_order_relaxed);
+ }
+ inline void NoBarrier_Store(void* v) {
+ rep_.store(v, std::memory_order_relaxed);
+ }
+};
+
+// Atomic pointer based on sparc memory barriers
+#elif defined(__sparcv9) && defined(__GNUC__)
+class AtomicPointer {
+ private:
+ void* rep_;
+ public:
+ AtomicPointer() { }
+ explicit AtomicPointer(void* v) : rep_(v) { }
+ inline void* Acquire_Load() const {
+ void* val;
+ __asm__ __volatile__ (
+ "ldx [%[rep_]], %[val] \n\t"
+ "membar #LoadLoad|#LoadStore \n\t"
+ : [val] "=r" (val)
+ : [rep_] "r" (&rep_)
+ : "memory");
+ return val;
+ }
+ inline void Release_Store(void* v) {
+ __asm__ __volatile__ (
+ "membar #LoadStore|#StoreStore \n\t"
+ "stx %[v], [%[rep_]] \n\t"
+ :
+ : [rep_] "r" (&rep_), [v] "r" (v)
+ : "memory");
+ }
+ inline void* NoBarrier_Load() const { return rep_; }
+ inline void NoBarrier_Store(void* v) { rep_ = v; }
+};
+
+// Atomic pointer based on ia64 acq/rel
+#elif defined(__ia64) && defined(__GNUC__)
+class AtomicPointer {
+ private:
+ void* rep_;
+ public:
+ AtomicPointer() { }
+ explicit AtomicPointer(void* v) : rep_(v) { }
+ inline void* Acquire_Load() const {
+ void* val ;
+ __asm__ __volatile__ (
+ "ld8.acq %[val] = [%[rep_]] \n\t"
+ : [val] "=r" (val)
+ : [rep_] "r" (&rep_)
+ : "memory"
+ );
+ return val;
+ }
+ inline void Release_Store(void* v) {
+ __asm__ __volatile__ (
+ "st8.rel [%[rep_]] = %[v] \n\t"
+ :
+ : [rep_] "r" (&rep_), [v] "r" (v)
+ : "memory"
+ );
+ }
+ inline void* NoBarrier_Load() const { return rep_; }
+ inline void NoBarrier_Store(void* v) { rep_ = v; }
+};
+
+// We have neither MemoryBarrier(), nor <cstdatomic>
+#else
+#error Please implement AtomicPointer for this platform.
+
+#endif
+
+#undef LEVELDB_HAVE_MEMORY_BARRIER
+#undef ARCH_CPU_X86_FAMILY
+#undef ARCH_CPU_ARM_FAMILY
+#undef ARCH_CPU_PPC_FAMILY
+
+} // namespace port
+} // namespace leveldb
+
+#endif // PORT_ATOMIC_POINTER_H_
diff --git a/clipper/HyperLevelDB/port/port.h b/clipper/HyperLevelDB/port/port.h
new file mode 100644
index 0000000..e667db4
--- /dev/null
+++ b/clipper/HyperLevelDB/port/port.h
@@ -0,0 +1,19 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#ifndef STORAGE_LEVELDB_PORT_PORT_H_
+#define STORAGE_LEVELDB_PORT_PORT_H_
+
+#include <string.h>
+
+// Include the appropriate platform specific file below. If you are
+// porting to a new platform, see "port_example.h" for documentation
+// of what the new port_<platform>.h file must provide.
+#if defined(LEVELDB_PLATFORM_POSIX)
+# include "port/port_posix.h"
+#elif defined(LEVELDB_PLATFORM_CHROMIUM)
+# include "port/port_chromium.h"
+#endif
+
+#endif // STORAGE_LEVELDB_PORT_PORT_H_
diff --git a/clipper/HyperLevelDB/port/port_example.h b/clipper/HyperLevelDB/port/port_example.h
new file mode 100644
index 0000000..ab9e489
--- /dev/null
+++ b/clipper/HyperLevelDB/port/port_example.h
@@ -0,0 +1,135 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+//
+// This file contains the specification, but not the implementations,
+// of the types/operations/etc. that should be defined by a platform
+// specific port_<platform>.h file. Use this file as a reference for
+// how to port this package to a new platform.
+
+#ifndef STORAGE_LEVELDB_PORT_PORT_EXAMPLE_H_
+#define STORAGE_LEVELDB_PORT_PORT_EXAMPLE_H_
+
+namespace leveldb {
+namespace port {
+
+// TODO(jorlow): Many of these belong more in the environment class rather than
+// here. We should try moving them and see if it affects perf.
+
+// The following boolean constant must be true on a little-endian machine
+// and false otherwise.
+static const bool kLittleEndian = true /* or some other expression */;
+
+// ------------------ Threading -------------------
+
+// A Mutex represents an exclusive lock.
+class Mutex {
+ public:
+ Mutex();
+ ~Mutex();
+
+ // Lock the mutex. Waits until other lockers have exited.
+ // Will deadlock if the mutex is already locked by this thread.
+ void Lock();
+
+ // Unlock the mutex.
+ // REQUIRES: This mutex was locked by this thread.
+ void Unlock();
+
+ // Optionally crash if this thread does not hold this mutex.
+ // The implementation must be fast, especially if NDEBUG is
+ // defined. The implementation is allowed to skip all checks.
+ void AssertHeld();
+};
+
+class CondVar {
+ public:
+ explicit CondVar(Mutex* mu);
+ ~CondVar();
+
+ // Atomically release *mu and block on this condition variable until
+ // either a call to SignalAll(), or a call to Signal() that picks
+ // this thread to wakeup.
+ // REQUIRES: this thread holds *mu
+ void Wait();
+
+ // If there are some threads waiting, wake up at least one of them.
+ void Signal();
+
+ // Wake up all waiting threads.
+ void SignallAll();
+};
+
+// Thread-safe initialization.
+// Used as follows:
+// static port::OnceType init_control = LEVELDB_ONCE_INIT;
+// static void Initializer() { ... do something ...; }
+// ...
+// port::InitOnce(&init_control, &Initializer);
+typedef intptr_t OnceType;
+#define LEVELDB_ONCE_INIT 0
+extern void InitOnce(port::OnceType*, void (*initializer)());
+
+// A type that holds a pointer that can be read or written atomically
+// (i.e., without word-tearing.)
+class AtomicPointer {
+ private:
+ intptr_t rep_;
+ public:
+ // Initialize to arbitrary value
+ AtomicPointer();
+
+ // Initialize to hold v
+ explicit AtomicPointer(void* v) : rep_(v) { }
+
+ // Read and return the stored pointer with the guarantee that no
+ // later memory access (read or write) by this thread can be
+ // reordered ahead of this read.
+ void* Acquire_Load() const;
+
+ // Set v as the stored pointer with the guarantee that no earlier
+ // memory access (read or write) by this thread can be reordered
+ // after this store.
+ void Release_Store(void* v);
+
+ // Read the stored pointer with no ordering guarantees.
+ void* NoBarrier_Load() const;
+
+ // Set va as the stored pointer with no ordering guarantees.
+ void NoBarrier_Store(void* v);
+};
+
+// ------------------ Compression -------------------
+
+// Store the snappy compression of "input[0,input_length-1]" in *output.
+// Returns false if snappy is not supported by this port.
+extern bool Snappy_Compress(const char* input, size_t input_length,
+ std::string* output);
+
+// If input[0,input_length-1] looks like a valid snappy compressed
+// buffer, store the size of the uncompressed data in *result and
+// return true. Else return false.
+extern bool Snappy_GetUncompressedLength(const char* input, size_t length,
+ size_t* result);
+
+// Attempt to snappy uncompress input[0,input_length-1] into *output.
+// Returns true if successful, false if the input is invalid lightweight
+// compressed data.
+//
+// REQUIRES: at least the first "n" bytes of output[] must be writable
+// where "n" is the result of a successful call to
+// Snappy_GetUncompressedLength.
+extern bool Snappy_Uncompress(const char* input_data, size_t input_length,
+ char* output);
+
+// ------------------ Miscellaneous -------------------
+
+// If heap profiling is not supported, returns false.
+// Else repeatedly calls (*func)(arg, data, n) and then returns true.
+// The concatenation of all "data[0,n-1]" fragments is the heap profile.
+extern bool GetHeapProfile(void (*func)(void*, const char*, int), void* arg);
+
+} // namespace port
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_PORT_PORT_EXAMPLE_H_
diff --git a/clipper/HyperLevelDB/port/port_posix.cc b/clipper/HyperLevelDB/port/port_posix.cc
new file mode 100644
index 0000000..5ba127a
--- /dev/null
+++ b/clipper/HyperLevelDB/port/port_posix.cc
@@ -0,0 +1,54 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "port/port_posix.h"
+
+#include <cstdlib>
+#include <stdio.h>
+#include <string.h>
+#include "util/logging.h"
+
+namespace leveldb {
+namespace port {
+
+static void PthreadCall(const char* label, int result) {
+ if (result != 0) {
+ fprintf(stderr, "pthread %s: %s\n", label, strerror(result));
+ abort();
+ }
+}
+
+Mutex::Mutex() { PthreadCall("init mutex", pthread_mutex_init(&mu_, NULL)); }
+
+Mutex::~Mutex() { PthreadCall("destroy mutex", pthread_mutex_destroy(&mu_)); }
+
+void Mutex::Lock() { PthreadCall("lock", pthread_mutex_lock(&mu_)); }
+
+void Mutex::Unlock() { PthreadCall("unlock", pthread_mutex_unlock(&mu_)); }
+
+CondVar::CondVar(Mutex* mu)
+ : mu_(mu) {
+ PthreadCall("init cv", pthread_cond_init(&cv_, NULL));
+}
+
+CondVar::~CondVar() { PthreadCall("destroy cv", pthread_cond_destroy(&cv_)); }
+
+void CondVar::Wait() {
+ PthreadCall("wait", pthread_cond_wait(&cv_, &mu_->mu_));
+}
+
+void CondVar::Signal() {
+ PthreadCall("signal", pthread_cond_signal(&cv_));
+}
+
+void CondVar::SignalAll() {
+ PthreadCall("broadcast", pthread_cond_broadcast(&cv_));
+}
+
+void InitOnce(OnceType* once, void (*initializer)()) {
+ PthreadCall("once", pthread_once(once, initializer));
+}
+
+} // namespace port
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/port/port_posix.h b/clipper/HyperLevelDB/port/port_posix.h
new file mode 100644
index 0000000..5a00eaf
--- /dev/null
+++ b/clipper/HyperLevelDB/port/port_posix.h
@@ -0,0 +1,171 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+//
+// See port_example.h for documentation for the following types/functions.
+
+#ifndef STORAGE_LEVELDB_PORT_PORT_POSIX_H_
+#define STORAGE_LEVELDB_PORT_PORT_POSIX_H_
+
+#if HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#if HAVE_ENDIAN_H
+#include <endian.h>
+#endif
+
+#if HAVE_MACHINE_ENDIAN_H
+#include <machine/endian.h>
+#endif
+
+#if HAVE_SYS_ENDIAN_H
+#include <sys/endian.h>
+#endif
+
+#if HAVE_SYS_ISA_DEFS_H
+#include <sys/isa_defs.h>
+#endif
+
+#if HAVE_SYS_ENDIAN_H
+#include <sys/types.h>
+#endif
+
+#undef PLATFORM_IS_LITTLE_ENDIAN
+
+#if defined(__DARWIN_LITTLE_ENDIAN) && defined(__DARWIN_BYTE_ORDER)
+# define PLATFORM_IS_LITTLE_ENDIAN (__DARWIN_BYTE_ORDER == __DARWIN_LITTLE_ENDIAN)
+#elif defined(_BYTE_ORDER) && defined(_LITTLE_ENDIAN)
+ // Due to a bug in the NDK x86 <sys/endian.h> definition,
+ // _BYTE_ORDER must be used instead of __BYTE_ORDER on Android.
+ // See http://code.google.com/p/android/issues/detail?id=39824
+# define PLATFORM_IS_LITTLE_ENDIAN (_BYTE_ORDER == _LITTLE_ENDIAN)
+#elif defined(_LITTLE_ENDIAN)
+# define PLATFORM_IS_LITTLE_ENDIAN true
+#endif
+
+#include <pthread.h>
+#ifdef SNAPPY
+#include <snappy.h>
+#endif
+#include <stdint.h>
+#include <string>
+#include "port/atomic_pointer.h"
+
+#ifndef PLATFORM_IS_LITTLE_ENDIAN
+#define PLATFORM_IS_LITTLE_ENDIAN (__BYTE_ORDER == __LITTLE_ENDIAN)
+#endif
+
+#if HAVE_FFLUSH_UNLOCKED
+// do nothing
+#elif HAVE_FFLUSH
+#define fflush_unlocked fflush
+#else
+#error "no fflush found"
+#endif
+
+#if HAVE_FREAD_UNLOCKED
+// do nothing
+#elif HAVE_FREAD
+#define fread_unlocked fread
+#else
+#error "no fread found"
+#endif
+
+#if HAVE_FWRITE_UNLOCKED
+// do nothing
+#elif HAVE_FWRITE
+#define fwrite_unlocked fwrite
+#else
+#error "no fwrite found"
+#endif
+
+#if HAVE_DECL_FDATASYNC
+// do nothing
+#elif HAVE_FSYNC
+#define fdatasync fsync
+#else
+#error "no fdatasync/fsync found"
+#endif
+
+namespace leveldb {
+namespace port {
+
+static const bool kLittleEndian = PLATFORM_IS_LITTLE_ENDIAN;
+#undef PLATFORM_IS_LITTLE_ENDIAN
+
+class CondVar;
+
+class Mutex {
+ public:
+ Mutex();
+ ~Mutex();
+
+ void Lock();
+ void Unlock();
+ void AssertHeld() { }
+
+ private:
+ friend class CondVar;
+ pthread_mutex_t mu_;
+
+ // No copying
+ Mutex(const Mutex&);
+ void operator=(const Mutex&);
+};
+
+class CondVar {
+ public:
+ explicit CondVar(Mutex* mu);
+ ~CondVar();
+ void Wait();
+ void Signal();
+ void SignalAll();
+ private:
+ pthread_cond_t cv_;
+ Mutex* mu_;
+};
+
+typedef pthread_once_t OnceType;
+#define LEVELDB_ONCE_INIT PTHREAD_ONCE_INIT
+extern void InitOnce(OnceType* once, void (*initializer)());
+
+inline bool Snappy_Compress(const char* input, size_t length,
+ ::std::string* output) {
+#ifdef SNAPPY
+ output->resize(snappy::MaxCompressedLength(length));
+ size_t outlen;
+ snappy::RawCompress(input, length, &(*output)[0], &outlen);
+ output->resize(outlen);
+ return true;
+#endif
+
+ return false;
+}
+
+inline bool Snappy_GetUncompressedLength(const char* input, size_t length,
+ size_t* result) {
+#ifdef SNAPPY
+ return snappy::GetUncompressedLength(input, length, result);
+#else
+ return false;
+#endif
+}
+
+inline bool Snappy_Uncompress(const char* input, size_t length,
+ char* output) {
+#ifdef SNAPPY
+ return snappy::RawUncompress(input, length, output);
+#else
+ return false;
+#endif
+}
+
+inline bool GetHeapProfile(void (*func)(void*, const char*, int), void* arg) {
+ return false;
+}
+
+} // namespace port
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_PORT_PORT_POSIX_H_
diff --git a/clipper/HyperLevelDB/port/thread_annotations.h b/clipper/HyperLevelDB/port/thread_annotations.h
new file mode 100644
index 0000000..6f9b6a7
--- /dev/null
+++ b/clipper/HyperLevelDB/port/thread_annotations.h
@@ -0,0 +1,59 @@
+// Copyright (c) 2012 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#ifndef STORAGE_LEVELDB_PORT_THREAD_ANNOTATIONS_H
+
+// Some environments provide custom macros to aid in static thread-safety
+// analysis. Provide empty definitions of such macros unless they are already
+// defined.
+
+#ifndef EXCLUSIVE_LOCKS_REQUIRED
+#define EXCLUSIVE_LOCKS_REQUIRED(...)
+#endif
+
+#ifndef SHARED_LOCKS_REQUIRED
+#define SHARED_LOCKS_REQUIRED(...)
+#endif
+
+#ifndef LOCKS_EXCLUDED
+#define LOCKS_EXCLUDED(...)
+#endif
+
+#ifndef LOCK_RETURNED
+#define LOCK_RETURNED(x)
+#endif
+
+#ifndef LOCKABLE
+#define LOCKABLE
+#endif
+
+#ifndef SCOPED_LOCKABLE
+#define SCOPED_LOCKABLE
+#endif
+
+#ifndef EXCLUSIVE_LOCK_FUNCTION
+#define EXCLUSIVE_LOCK_FUNCTION(...)
+#endif
+
+#ifndef SHARED_LOCK_FUNCTION
+#define SHARED_LOCK_FUNCTION(...)
+#endif
+
+#ifndef EXCLUSIVE_TRYLOCK_FUNCTION
+#define EXCLUSIVE_TRYLOCK_FUNCTION(...)
+#endif
+
+#ifndef SHARED_TRYLOCK_FUNCTION
+#define SHARED_TRYLOCK_FUNCTION(...)
+#endif
+
+#ifndef UNLOCK_FUNCTION
+#define UNLOCK_FUNCTION(...)
+#endif
+
+#ifndef NO_THREAD_SAFETY_ANALYSIS
+#define NO_THREAD_SAFETY_ANALYSIS
+#endif
+
+#endif // STORAGE_LEVELDB_PORT_THREAD_ANNOTATIONS_H
diff --git a/clipper/HyperLevelDB/port/win/stdint.h b/clipper/HyperLevelDB/port/win/stdint.h
new file mode 100644
index 0000000..39edd0d
--- /dev/null
+++ b/clipper/HyperLevelDB/port/win/stdint.h
@@ -0,0 +1,24 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+// MSVC didn't ship with this file until the 2010 version.
+
+#ifndef STORAGE_LEVELDB_PORT_WIN_STDINT_H_
+#define STORAGE_LEVELDB_PORT_WIN_STDINT_H_
+
+#if !defined(_MSC_VER)
+#error This file should only be included when compiling with MSVC.
+#endif
+
+// Define C99 equivalent types.
+typedef signed char int8_t;
+typedef signed short int16_t;
+typedef signed int int32_t;
+typedef signed long long int64_t;
+typedef unsigned char uint8_t;
+typedef unsigned short uint16_t;
+typedef unsigned int uint32_t;
+typedef unsigned long long uint64_t;
+
+#endif // STORAGE_LEVELDB_PORT_WIN_STDINT_H_
diff --git a/clipper/HyperLevelDB/table/block.cc b/clipper/HyperLevelDB/table/block.cc
new file mode 100644
index 0000000..285a8b9
--- /dev/null
+++ b/clipper/HyperLevelDB/table/block.cc
@@ -0,0 +1,268 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+//
+// Decodes the blocks generated by block_builder.cc.
+
+#include "table/block.h"
+
+#include <vector>
+#include <algorithm>
+#include "hyperleveldb/comparator.h"
+#include "table/format.h"
+#include "util/coding.h"
+#include "util/logging.h"
+
+namespace leveldb {
+
+inline uint32_t Block::NumRestarts() const {
+ assert(size_ >= sizeof(uint32_t));
+ return DecodeFixed32(data_ + size_ - sizeof(uint32_t));
+}
+
+Block::Block(const BlockContents& contents)
+ : data_(contents.data.data()),
+ size_(contents.data.size()),
+ owned_(contents.heap_allocated) {
+ if (size_ < sizeof(uint32_t)) {
+ size_ = 0; // Error marker
+ } else {
+ size_t max_restarts_allowed = (size_-sizeof(uint32_t)) / sizeof(uint32_t);
+ if (NumRestarts() > max_restarts_allowed) {
+ // The size is too small for NumRestarts()
+ size_ = 0;
+ } else {
+ restart_offset_ = size_ - (1 + NumRestarts()) * sizeof(uint32_t);
+ }
+ }
+}
+
+Block::~Block() {
+ if (owned_) {
+ delete[] data_;
+ }
+}
+
+// Helper routine: decode the next block entry starting at "p",
+// storing the number of shared key bytes, non_shared key bytes,
+// and the length of the value in "*shared", "*non_shared", and
+// "*value_length", respectively. Will not derefence past "limit".
+//
+// If any errors are detected, returns NULL. Otherwise, returns a
+// pointer to the key delta (just past the three decoded values).
+static inline const char* DecodeEntry(const char* p, const char* limit,
+ uint32_t* shared,
+ uint32_t* non_shared,
+ uint32_t* value_length) {
+ if (limit - p < 3) return NULL;
+ *shared = reinterpret_cast<const unsigned char*>(p)[0];
+ *non_shared = reinterpret_cast<const unsigned char*>(p)[1];
+ *value_length = reinterpret_cast<const unsigned char*>(p)[2];
+ if ((*shared | *non_shared | *value_length) < 128) {
+ // Fast path: all three values are encoded in one byte each
+ p += 3;
+ } else {
+ if ((p = GetVarint32Ptr(p, limit, shared)) == NULL) return NULL;
+ if ((p = GetVarint32Ptr(p, limit, non_shared)) == NULL) return NULL;
+ if ((p = GetVarint32Ptr(p, limit, value_length)) == NULL) return NULL;
+ }
+
+ if (static_cast<uint32_t>(limit - p) < (*non_shared + *value_length)) {
+ return NULL;
+ }
+ return p;
+}
+
+class Block::Iter : public Iterator {
+ private:
+ const Comparator* const comparator_;
+ const char* const data_; // underlying block contents
+ uint32_t const restarts_; // Offset of restart array (list of fixed32)
+ uint32_t const num_restarts_; // Number of uint32_t entries in restart array
+
+ // current_ is offset in data_ of current entry. >= restarts_ if !Valid
+ uint32_t current_;
+ uint32_t restart_index_; // Index of restart block in which current_ falls
+ std::string key_;
+ Slice value_;
+ Status status_;
+
+ inline int Compare(const Slice& a, const Slice& b) const {
+ return comparator_->Compare(a, b);
+ }
+
+ // Return the offset in data_ just past the end of the current entry.
+ inline uint32_t NextEntryOffset() const {
+ return (value_.data() + value_.size()) - data_;
+ }
+
+ uint32_t GetRestartPoint(uint32_t index) {
+ assert(index < num_restarts_);
+ return DecodeFixed32(data_ + restarts_ + index * sizeof(uint32_t));
+ }
+
+ void SeekToRestartPoint(uint32_t index) {
+ key_.clear();
+ restart_index_ = index;
+ // current_ will be fixed by ParseNextKey();
+
+ // ParseNextKey() starts at the end of value_, so set value_ accordingly
+ uint32_t offset = GetRestartPoint(index);
+ value_ = Slice(data_ + offset, 0);
+ }
+
+ public:
+ Iter(const Comparator* comparator,
+ const char* data,
+ uint32_t restarts,
+ uint32_t num_restarts)
+ : comparator_(comparator),
+ data_(data),
+ restarts_(restarts),
+ num_restarts_(num_restarts),
+ current_(restarts_),
+ restart_index_(num_restarts_) {
+ assert(num_restarts_ > 0);
+ }
+
+ virtual bool Valid() const { return current_ < restarts_; }
+ virtual Status status() const { return status_; }
+ virtual Slice key() const {
+ assert(Valid());
+ return key_;
+ }
+ virtual Slice value() const {
+ assert(Valid());
+ return value_;
+ }
+
+ virtual void Next() {
+ assert(Valid());
+ ParseNextKey();
+ }
+
+ virtual void Prev() {
+ assert(Valid());
+
+ // Scan backwards to a restart point before current_
+ const uint32_t original = current_;
+ while (GetRestartPoint(restart_index_) >= original) {
+ if (restart_index_ == 0) {
+ // No more entries
+ current_ = restarts_;
+ restart_index_ = num_restarts_;
+ return;
+ }
+ restart_index_--;
+ }
+
+ SeekToRestartPoint(restart_index_);
+ do {
+ // Loop until end of current entry hits the start of original entry
+ } while (ParseNextKey() && NextEntryOffset() < original);
+ }
+
+ virtual void Seek(const Slice& target) {
+ // Binary search in restart array to find the last restart point
+ // with a key < target
+ uint32_t left = 0;
+ uint32_t right = num_restarts_ - 1;
+ while (left < right) {
+ uint32_t mid = (left + right + 1) / 2;
+ uint32_t region_offset = GetRestartPoint(mid);
+ uint32_t shared, non_shared, value_length;
+ const char* key_ptr = DecodeEntry(data_ + region_offset,
+ data_ + restarts_,
+ &shared, &non_shared, &value_length);
+ if (key_ptr == NULL || (shared != 0)) {
+ CorruptionError();
+ return;
+ }
+ Slice mid_key(key_ptr, non_shared);
+ if (Compare(mid_key, target) < 0) {
+ // Key at "mid" is smaller than "target". Therefore all
+ // blocks before "mid" are uninteresting.
+ left = mid;
+ } else {
+ // Key at "mid" is >= "target". Therefore all blocks at or
+ // after "mid" are uninteresting.
+ right = mid - 1;
+ }
+ }
+
+ // Linear search (within restart block) for first key >= target
+ SeekToRestartPoint(left);
+ while (true) {
+ if (!ParseNextKey()) {
+ return;
+ }
+ if (Compare(key_, target) >= 0) {
+ return;
+ }
+ }
+ }
+
+ virtual void SeekToFirst() {
+ SeekToRestartPoint(0);
+ ParseNextKey();
+ }
+
+ virtual void SeekToLast() {
+ SeekToRestartPoint(num_restarts_ - 1);
+ while (ParseNextKey() && NextEntryOffset() < restarts_) {
+ // Keep skipping
+ }
+ }
+
+ private:
+ void CorruptionError() {
+ current_ = restarts_;
+ restart_index_ = num_restarts_;
+ status_ = Status::Corruption("bad entry in block");
+ key_.clear();
+ value_.clear();
+ }
+
+ bool ParseNextKey() {
+ current_ = NextEntryOffset();
+ const char* p = data_ + current_;
+ const char* limit = data_ + restarts_; // Restarts come right after data
+ if (p >= limit) {
+ // No more entries to return. Mark as invalid.
+ current_ = restarts_;
+ restart_index_ = num_restarts_;
+ return false;
+ }
+
+ // Decode next entry
+ uint32_t shared, non_shared, value_length;
+ p = DecodeEntry(p, limit, &shared, &non_shared, &value_length);
+ if (p == NULL || key_.size() < shared) {
+ CorruptionError();
+ return false;
+ } else {
+ key_.resize(shared);
+ key_.append(p, non_shared);
+ value_ = Slice(p + non_shared, value_length);
+ while (restart_index_ + 1 < num_restarts_ &&
+ GetRestartPoint(restart_index_ + 1) < current_) {
+ ++restart_index_;
+ }
+ return true;
+ }
+ }
+};
+
+Iterator* Block::NewIterator(const Comparator* cmp) {
+ if (size_ < sizeof(uint32_t)) {
+ return NewErrorIterator(Status::Corruption("bad block contents"));
+ }
+ const uint32_t num_restarts = NumRestarts();
+ if (num_restarts == 0) {
+ return NewEmptyIterator();
+ } else {
+ return new Iter(cmp, data_, restart_offset_, num_restarts);
+ }
+}
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/table/block.h b/clipper/HyperLevelDB/table/block.h
new file mode 100644
index 0000000..60a7989
--- /dev/null
+++ b/clipper/HyperLevelDB/table/block.h
@@ -0,0 +1,44 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#ifndef STORAGE_LEVELDB_TABLE_BLOCK_H_
+#define STORAGE_LEVELDB_TABLE_BLOCK_H_
+
+#include <stddef.h>
+#include <stdint.h>
+#include "hyperleveldb/iterator.h"
+
+namespace leveldb {
+
+struct BlockContents;
+class Comparator;
+
+class Block {
+ public:
+ // Initialize the block with the specified contents.
+ explicit Block(const BlockContents& contents);
+
+ ~Block();
+
+ size_t size() const { return size_; }
+ Iterator* NewIterator(const Comparator* comparator);
+
+ private:
+ uint32_t NumRestarts() const;
+
+ const char* data_;
+ size_t size_;
+ uint32_t restart_offset_; // Offset in data_ of restart array
+ bool owned_; // Block owns data_[]
+
+ // No copying allowed
+ Block(const Block&);
+ void operator=(const Block&);
+
+ class Iter;
+};
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_TABLE_BLOCK_H_
diff --git a/clipper/HyperLevelDB/table/block_builder.cc b/clipper/HyperLevelDB/table/block_builder.cc
new file mode 100644
index 0000000..4076290
--- /dev/null
+++ b/clipper/HyperLevelDB/table/block_builder.cc
@@ -0,0 +1,109 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+//
+// BlockBuilder generates blocks where keys are prefix-compressed:
+//
+// When we store a key, we drop the prefix shared with the previous
+// string. This helps reduce the space requirement significantly.
+// Furthermore, once every K keys, we do not apply the prefix
+// compression and store the entire key. We call this a "restart
+// point". The tail end of the block stores the offsets of all of the
+// restart points, and can be used to do a binary search when looking
+// for a particular key. Values are stored as-is (without compression)
+// immediately following the corresponding key.
+//
+// An entry for a particular key-value pair has the form:
+// shared_bytes: varint32
+// unshared_bytes: varint32
+// value_length: varint32
+// key_delta: char[unshared_bytes]
+// value: char[value_length]
+// shared_bytes == 0 for restart points.
+//
+// The trailer of the block has the form:
+// restarts: uint32[num_restarts]
+// num_restarts: uint32
+// restarts[i] contains the offset within the block of the ith restart point.
+
+#include "table/block_builder.h"
+
+#include <algorithm>
+#include <assert.h>
+#include "hyperleveldb/comparator.h"
+#include "hyperleveldb/table_builder.h"
+#include "util/coding.h"
+
+namespace leveldb {
+
+BlockBuilder::BlockBuilder(const Options* options)
+ : options_(options),
+ restarts_(),
+ counter_(0),
+ finished_(false) {
+ assert(options->block_restart_interval >= 1);
+ restarts_.push_back(0); // First restart point is at offset 0
+}
+
+void BlockBuilder::Reset() {
+ buffer_.clear();
+ restarts_.clear();
+ restarts_.push_back(0); // First restart point is at offset 0
+ counter_ = 0;
+ finished_ = false;
+ last_key_.clear();
+}
+
+size_t BlockBuilder::CurrentSizeEstimate() const {
+ return (buffer_.size() + // Raw data buffer
+ restarts_.size() * sizeof(uint32_t) + // Restart array
+ sizeof(uint32_t)); // Restart array length
+}
+
+Slice BlockBuilder::Finish() {
+ // Append restart array
+ for (size_t i = 0; i < restarts_.size(); i++) {
+ PutFixed32(&buffer_, restarts_[i]);
+ }
+ PutFixed32(&buffer_, restarts_.size());
+ finished_ = true;
+ return Slice(buffer_);
+}
+
+void BlockBuilder::Add(const Slice& key, const Slice& value) {
+ Slice last_key_piece(last_key_);
+ assert(!finished_);
+ assert(counter_ <= options_->block_restart_interval);
+ assert(buffer_.empty() // No values yet?
+ || options_->comparator->Compare(key, last_key_piece) > 0);
+ size_t shared = 0;
+ if (counter_ < options_->block_restart_interval) {
+ // See how much sharing to do with previous string
+ const size_t min_length = std::min(last_key_piece.size(), key.size());
+ while ((shared < min_length) && (last_key_piece[shared] == key[shared])) {
+ shared++;
+ }
+ } else {
+ // Restart compression
+ restarts_.push_back(buffer_.size());
+ counter_ = 0;
+ }
+ const size_t non_shared = key.size() - shared;
+
+ // Add "<shared><non_shared><value_size>" to buffer_
+ PutVarint32(&buffer_, shared);
+ PutVarint32(&buffer_, non_shared);
+ PutVarint32(&buffer_, value.size());
+
+ // Add string delta to buffer_ followed by value
+ buffer_.append(key.data() + shared, non_shared);
+ buffer_.append(value.data(), value.size());
+
+ // Update state
+ last_key_.resize(shared);
+ last_key_.append(key.data() + shared, non_shared);
+ assert(Slice(last_key_) == key);
+ counter_++;
+}
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/table/block_builder.h b/clipper/HyperLevelDB/table/block_builder.h
new file mode 100644
index 0000000..41a9f72
--- /dev/null
+++ b/clipper/HyperLevelDB/table/block_builder.h
@@ -0,0 +1,57 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#ifndef STORAGE_LEVELDB_TABLE_BLOCK_BUILDER_H_
+#define STORAGE_LEVELDB_TABLE_BLOCK_BUILDER_H_
+
+#include <vector>
+
+#include <stdint.h>
+#include "hyperleveldb/slice.h"
+
+namespace leveldb {
+
+struct Options;
+
+class BlockBuilder {
+ public:
+ explicit BlockBuilder(const Options* options);
+
+ // Reset the contents as if the BlockBuilder was just constructed.
+ void Reset();
+
+ // REQUIRES: Finish() has not been callled since the last call to Reset().
+ // REQUIRES: key is larger than any previously added key
+ void Add(const Slice& key, const Slice& value);
+
+ // Finish building the block and return a slice that refers to the
+ // block contents. The returned slice will remain valid for the
+ // lifetime of this builder or until Reset() is called.
+ Slice Finish();
+
+ // Returns an estimate of the current (uncompressed) size of the block
+ // we are building.
+ size_t CurrentSizeEstimate() const;
+
+ // Return true iff no entries have been added since the last Reset()
+ bool empty() const {
+ return buffer_.empty();
+ }
+
+ private:
+ const Options* options_;
+ std::string buffer_; // Destination buffer
+ std::vector<uint32_t> restarts_; // Restart points
+ int counter_; // Number of entries emitted since restart
+ bool finished_; // Has Finish() been called?
+ std::string last_key_;
+
+ // No copying allowed
+ BlockBuilder(const BlockBuilder&);
+ void operator=(const BlockBuilder&);
+};
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_TABLE_BLOCK_BUILDER_H_
diff --git a/clipper/HyperLevelDB/table/filter_block.cc b/clipper/HyperLevelDB/table/filter_block.cc
new file mode 100644
index 0000000..3f7cfc6
--- /dev/null
+++ b/clipper/HyperLevelDB/table/filter_block.cc
@@ -0,0 +1,111 @@
+// Copyright (c) 2012 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "table/filter_block.h"
+
+#include "hyperleveldb/filter_policy.h"
+#include "util/coding.h"
+
+namespace leveldb {
+
+// See doc/table_format.txt for an explanation of the filter block format.
+
+// Generate new filter every 2KB of data
+static const size_t kFilterBaseLg = 11;
+static const size_t kFilterBase = 1 << kFilterBaseLg;
+
+FilterBlockBuilder::FilterBlockBuilder(const FilterPolicy* policy)
+ : policy_(policy) {
+}
+
+void FilterBlockBuilder::StartBlock(uint64_t block_offset) {
+ uint64_t filter_index = (block_offset / kFilterBase);
+ assert(filter_index >= filter_offsets_.size());
+ while (filter_index > filter_offsets_.size()) {
+ GenerateFilter();
+ }
+}
+
+void FilterBlockBuilder::AddKey(const Slice& key) {
+ Slice k = key;
+ start_.push_back(keys_.size());
+ keys_.append(k.data(), k.size());
+}
+
+Slice FilterBlockBuilder::Finish() {
+ if (!start_.empty()) {
+ GenerateFilter();
+ }
+
+ // Append array of per-filter offsets
+ const uint32_t array_offset = result_.size();
+ for (size_t i = 0; i < filter_offsets_.size(); i++) {
+ PutFixed32(&result_, filter_offsets_[i]);
+ }
+
+ PutFixed32(&result_, array_offset);
+ result_.push_back(kFilterBaseLg); // Save encoding parameter in result
+ return Slice(result_);
+}
+
+void FilterBlockBuilder::GenerateFilter() {
+ const size_t num_keys = start_.size();
+ if (num_keys == 0) {
+ // Fast path if there are no keys for this filter
+ filter_offsets_.push_back(result_.size());
+ return;
+ }
+
+ // Make list of keys from flattened key structure
+ start_.push_back(keys_.size()); // Simplify length computation
+ tmp_keys_.resize(num_keys);
+ for (size_t i = 0; i < num_keys; i++) {
+ const char* base = keys_.data() + start_[i];
+ size_t length = start_[i+1] - start_[i];
+ tmp_keys_[i] = Slice(base, length);
+ }
+
+ // Generate filter for current set of keys and append to result_.
+ filter_offsets_.push_back(result_.size());
+ policy_->CreateFilter(&tmp_keys_[0], num_keys, &result_);
+
+ tmp_keys_.clear();
+ keys_.clear();
+ start_.clear();
+}
+
+FilterBlockReader::FilterBlockReader(const FilterPolicy* policy,
+ const Slice& contents)
+ : policy_(policy),
+ data_(NULL),
+ offset_(NULL),
+ num_(0),
+ base_lg_(0) {
+ size_t n = contents.size();
+ if (n < 5) return; // 1 byte for base_lg_ and 4 for start of offset array
+ base_lg_ = contents[n-1];
+ uint32_t last_word = DecodeFixed32(contents.data() + n - 5);
+ if (last_word > n - 5) return;
+ data_ = contents.data();
+ offset_ = data_ + last_word;
+ num_ = (n - 5 - last_word) / 4;
+}
+
+bool FilterBlockReader::KeyMayMatch(uint64_t block_offset, const Slice& key) {
+ uint64_t index = block_offset >> base_lg_;
+ if (index < num_) {
+ uint32_t start = DecodeFixed32(offset_ + index*4);
+ uint32_t limit = DecodeFixed32(offset_ + index*4 + 4);
+ if (start <= limit && limit <= (offset_ - data_)) {
+ Slice filter = Slice(data_ + start, limit - start);
+ return policy_->KeyMayMatch(key, filter);
+ } else if (start == limit) {
+ // Empty filters do not match any keys
+ return false;
+ }
+ }
+ return true; // Errors are treated as potential matches
+}
+
+}
diff --git a/clipper/HyperLevelDB/table/filter_block.h b/clipper/HyperLevelDB/table/filter_block.h
new file mode 100644
index 0000000..f308954
--- /dev/null
+++ b/clipper/HyperLevelDB/table/filter_block.h
@@ -0,0 +1,68 @@
+// Copyright (c) 2012 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+//
+// A filter block is stored near the end of a Table file. It contains
+// filters (e.g., bloom filters) for all data blocks in the table combined
+// into a single filter block.
+
+#ifndef STORAGE_LEVELDB_TABLE_FILTER_BLOCK_H_
+#define STORAGE_LEVELDB_TABLE_FILTER_BLOCK_H_
+
+#include <stddef.h>
+#include <stdint.h>
+#include <string>
+#include <vector>
+#include "hyperleveldb/slice.h"
+#include "util/hash.h"
+
+namespace leveldb {
+
+class FilterPolicy;
+
+// A FilterBlockBuilder is used to construct all of the filters for a
+// particular Table. It generates a single string which is stored as
+// a special block in the Table.
+//
+// The sequence of calls to FilterBlockBuilder must match the regexp:
+// (StartBlock AddKey*)* Finish
+class FilterBlockBuilder {
+ public:
+ explicit FilterBlockBuilder(const FilterPolicy*);
+
+ void StartBlock(uint64_t block_offset);
+ void AddKey(const Slice& key);
+ Slice Finish();
+
+ private:
+ void GenerateFilter();
+
+ const FilterPolicy* policy_;
+ std::string keys_; // Flattened key contents
+ std::vector<size_t> start_; // Starting index in keys_ of each key
+ std::string result_; // Filter data computed so far
+ std::vector<Slice> tmp_keys_; // policy_->CreateFilter() argument
+ std::vector<uint32_t> filter_offsets_;
+
+ // No copying allowed
+ FilterBlockBuilder(const FilterBlockBuilder&);
+ void operator=(const FilterBlockBuilder&);
+};
+
+class FilterBlockReader {
+ public:
+ // REQUIRES: "contents" and *policy must stay live while *this is live.
+ FilterBlockReader(const FilterPolicy* policy, const Slice& contents);
+ bool KeyMayMatch(uint64_t block_offset, const Slice& key);
+
+ private:
+ const FilterPolicy* policy_;
+ const char* data_; // Pointer to filter data (at block-start)
+ const char* offset_; // Pointer to beginning of offset array (at block-end)
+ size_t num_; // Number of entries in offset array
+ size_t base_lg_; // Encoding parameter (see kFilterBaseLg in .cc file)
+};
+
+}
+
+#endif // STORAGE_LEVELDB_TABLE_FILTER_BLOCK_H_
diff --git a/clipper/HyperLevelDB/table/filter_block_test.cc b/clipper/HyperLevelDB/table/filter_block_test.cc
new file mode 100644
index 0000000..0b84289
--- /dev/null
+++ b/clipper/HyperLevelDB/table/filter_block_test.cc
@@ -0,0 +1,128 @@
+// Copyright (c) 2012 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "table/filter_block.h"
+
+#include "hyperleveldb/filter_policy.h"
+#include "util/coding.h"
+#include "util/hash.h"
+#include "util/logging.h"
+#include "util/testharness.h"
+#include "util/testutil.h"
+
+namespace leveldb {
+
+// For testing: emit an array with one hash value per key
+class TestHashFilter : public FilterPolicy {
+ public:
+ virtual const char* Name() const {
+ return "TestHashFilter";
+ }
+
+ virtual void CreateFilter(const Slice* keys, int n, std::string* dst) const {
+ for (int i = 0; i < n; i++) {
+ uint32_t h = Hash(keys[i].data(), keys[i].size(), 1);
+ PutFixed32(dst, h);
+ }
+ }
+
+ virtual bool KeyMayMatch(const Slice& key, const Slice& filter) const {
+ uint32_t h = Hash(key.data(), key.size(), 1);
+ for (size_t i = 0; i + 4 <= filter.size(); i += 4) {
+ if (h == DecodeFixed32(filter.data() + i)) {
+ return true;
+ }
+ }
+ return false;
+ }
+};
+
+class FilterBlockTest {
+ public:
+ TestHashFilter policy_;
+};
+
+TEST(FilterBlockTest, EmptyBuilder) {
+ FilterBlockBuilder builder(&policy_);
+ Slice block = builder.Finish();
+ ASSERT_EQ("\\x00\\x00\\x00\\x00\\x0b", EscapeString(block));
+ FilterBlockReader reader(&policy_, block);
+ ASSERT_TRUE(reader.KeyMayMatch(0, "foo"));
+ ASSERT_TRUE(reader.KeyMayMatch(100000, "foo"));
+}
+
+TEST(FilterBlockTest, SingleChunk) {
+ FilterBlockBuilder builder(&policy_);
+ builder.StartBlock(100);
+ builder.AddKey("foo");
+ builder.AddKey("bar");
+ builder.AddKey("box");
+ builder.StartBlock(200);
+ builder.AddKey("box");
+ builder.StartBlock(300);
+ builder.AddKey("hello");
+ Slice block = builder.Finish();
+ FilterBlockReader reader(&policy_, block);
+ ASSERT_TRUE(reader.KeyMayMatch(100, "foo"));
+ ASSERT_TRUE(reader.KeyMayMatch(100, "bar"));
+ ASSERT_TRUE(reader.KeyMayMatch(100, "box"));
+ ASSERT_TRUE(reader.KeyMayMatch(100, "hello"));
+ ASSERT_TRUE(reader.KeyMayMatch(100, "foo"));
+ ASSERT_TRUE(! reader.KeyMayMatch(100, "missing"));
+ ASSERT_TRUE(! reader.KeyMayMatch(100, "other"));
+}
+
+TEST(FilterBlockTest, MultiChunk) {
+ FilterBlockBuilder builder(&policy_);
+
+ // First filter
+ builder.StartBlock(0);
+ builder.AddKey("foo");
+ builder.StartBlock(2000);
+ builder.AddKey("bar");
+
+ // Second filter
+ builder.StartBlock(3100);
+ builder.AddKey("box");
+
+ // Third filter is empty
+
+ // Last filter
+ builder.StartBlock(9000);
+ builder.AddKey("box");
+ builder.AddKey("hello");
+
+ Slice block = builder.Finish();
+ FilterBlockReader reader(&policy_, block);
+
+ // Check first filter
+ ASSERT_TRUE(reader.KeyMayMatch(0, "foo"));
+ ASSERT_TRUE(reader.KeyMayMatch(2000, "bar"));
+ ASSERT_TRUE(! reader.KeyMayMatch(0, "box"));
+ ASSERT_TRUE(! reader.KeyMayMatch(0, "hello"));
+
+ // Check second filter
+ ASSERT_TRUE(reader.KeyMayMatch(3100, "box"));
+ ASSERT_TRUE(! reader.KeyMayMatch(3100, "foo"));
+ ASSERT_TRUE(! reader.KeyMayMatch(3100, "bar"));
+ ASSERT_TRUE(! reader.KeyMayMatch(3100, "hello"));
+
+ // Check third filter (empty)
+ ASSERT_TRUE(! reader.KeyMayMatch(4100, "foo"));
+ ASSERT_TRUE(! reader.KeyMayMatch(4100, "bar"));
+ ASSERT_TRUE(! reader.KeyMayMatch(4100, "box"));
+ ASSERT_TRUE(! reader.KeyMayMatch(4100, "hello"));
+
+ // Check last filter
+ ASSERT_TRUE(reader.KeyMayMatch(9000, "box"));
+ ASSERT_TRUE(reader.KeyMayMatch(9000, "hello"));
+ ASSERT_TRUE(! reader.KeyMayMatch(9000, "foo"));
+ ASSERT_TRUE(! reader.KeyMayMatch(9000, "bar"));
+}
+
+} // namespace leveldb
+
+int main(int argc, char** argv) {
+ return leveldb::test::RunAllTests();
+}
diff --git a/clipper/HyperLevelDB/table/format.cc b/clipper/HyperLevelDB/table/format.cc
new file mode 100644
index 0000000..d6326e5
--- /dev/null
+++ b/clipper/HyperLevelDB/table/format.cc
@@ -0,0 +1,145 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "table/format.h"
+
+#include "hyperleveldb/env.h"
+#include "port/port.h"
+#include "table/block.h"
+#include "util/coding.h"
+#include "util/crc32c.h"
+
+namespace leveldb {
+
+void BlockHandle::EncodeTo(std::string* dst) const {
+ // Sanity check that all fields have been set
+ assert(offset_ != ~static_cast<uint64_t>(0));
+ assert(size_ != ~static_cast<uint64_t>(0));
+ PutVarint64(dst, offset_);
+ PutVarint64(dst, size_);
+}
+
+Status BlockHandle::DecodeFrom(Slice* input) {
+ if (GetVarint64(input, &offset_) &&
+ GetVarint64(input, &size_)) {
+ return Status::OK();
+ } else {
+ return Status::Corruption("bad block handle");
+ }
+}
+
+void Footer::EncodeTo(std::string* dst) const {
+#ifndef NDEBUG
+ const size_t original_size = dst->size();
+#endif
+ metaindex_handle_.EncodeTo(dst);
+ index_handle_.EncodeTo(dst);
+ dst->resize(2 * BlockHandle::kMaxEncodedLength); // Padding
+ PutFixed32(dst, static_cast<uint32_t>(kTableMagicNumber & 0xffffffffu));
+ PutFixed32(dst, static_cast<uint32_t>(kTableMagicNumber >> 32));
+ assert(dst->size() == original_size + kEncodedLength);
+}
+
+Status Footer::DecodeFrom(Slice* input) {
+ const char* magic_ptr = input->data() + kEncodedLength - 8;
+ const uint32_t magic_lo = DecodeFixed32(magic_ptr);
+ const uint32_t magic_hi = DecodeFixed32(magic_ptr + 4);
+ const uint64_t magic = ((static_cast<uint64_t>(magic_hi) << 32) |
+ (static_cast<uint64_t>(magic_lo)));
+ if (magic != kTableMagicNumber) {
+ return Status::InvalidArgument("not an sstable (bad magic number)");
+ }
+
+ Status result = metaindex_handle_.DecodeFrom(input);
+ if (result.ok()) {
+ result = index_handle_.DecodeFrom(input);
+ }
+ if (result.ok()) {
+ // We skip over any leftover data (just padding for now) in "input"
+ const char* end = magic_ptr + 8;
+ *input = Slice(end, input->data() + input->size() - end);
+ }
+ return result;
+}
+
+Status ReadBlock(RandomAccessFile* file,
+ const ReadOptions& options,
+ const BlockHandle& handle,
+ BlockContents* result) {
+ result->data = Slice();
+ result->cachable = false;
+ result->heap_allocated = false;
+
+ // Read the block contents as well as the type/crc footer.
+ // See table_builder.cc for the code that built this structure.
+ size_t n = static_cast<size_t>(handle.size());
+ char* buf = new char[n + kBlockTrailerSize];
+ Slice contents;
+ Status s = file->Read(handle.offset(), n + kBlockTrailerSize, &contents, buf);
+ if (!s.ok()) {
+ delete[] buf;
+ return s;
+ }
+ if (contents.size() != n + kBlockTrailerSize) {
+ delete[] buf;
+ return Status::Corruption("truncated block read");
+ }
+
+ // Check the crc of the type and the block contents
+ const char* data = contents.data(); // Pointer to where Read put the data
+ if (options.verify_checksums) {
+ const uint32_t crc = crc32c::Unmask(DecodeFixed32(data + n + 1));
+ const uint32_t actual = crc32c::Value(data, n + 1);
+ if (actual != crc) {
+ delete[] buf;
+ s = Status::Corruption("block checksum mismatch");
+ return s;
+ }
+ }
+
+ switch (data[n]) {
+ case kNoCompression:
+ if (data != buf) {
+ // File implementation gave us pointer to some other data.
+ // Use it directly under the assumption that it will be live
+ // while the file is open.
+ delete[] buf;
+ result->data = Slice(data, n);
+ result->heap_allocated = false;
+ result->cachable = false; // Do not double-cache
+ } else {
+ result->data = Slice(buf, n);
+ result->heap_allocated = true;
+ result->cachable = true;
+ }
+
+ // Ok
+ break;
+ case kSnappyCompression: {
+ size_t ulength = 0;
+ if (!port::Snappy_GetUncompressedLength(data, n, &ulength)) {
+ delete[] buf;
+ return Status::Corruption("corrupted compressed block contents");
+ }
+ char* ubuf = new char[ulength];
+ if (!port::Snappy_Uncompress(data, n, ubuf)) {
+ delete[] buf;
+ delete[] ubuf;
+ return Status::Corruption("corrupted compressed block contents");
+ }
+ delete[] buf;
+ result->data = Slice(ubuf, ulength);
+ result->heap_allocated = true;
+ result->cachable = true;
+ break;
+ }
+ default:
+ delete[] buf;
+ return Status::Corruption("bad block type");
+ }
+
+ return Status::OK();
+}
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/table/format.h b/clipper/HyperLevelDB/table/format.h
new file mode 100644
index 0000000..10edb59
--- /dev/null
+++ b/clipper/HyperLevelDB/table/format.h
@@ -0,0 +1,108 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#ifndef STORAGE_LEVELDB_TABLE_FORMAT_H_
+#define STORAGE_LEVELDB_TABLE_FORMAT_H_
+
+#include <string>
+#include <stdint.h>
+#include "hyperleveldb/slice.h"
+#include "hyperleveldb/status.h"
+#include "hyperleveldb/table_builder.h"
+
+namespace leveldb {
+
+class Block;
+class RandomAccessFile;
+struct ReadOptions;
+
+// BlockHandle is a pointer to the extent of a file that stores a data
+// block or a meta block.
+class BlockHandle {
+ public:
+ BlockHandle();
+
+ // The offset of the block in the file.
+ uint64_t offset() const { return offset_; }
+ void set_offset(uint64_t offset) { offset_ = offset; }
+
+ // The size of the stored block
+ uint64_t size() const { return size_; }
+ void set_size(uint64_t size) { size_ = size; }
+
+ void EncodeTo(std::string* dst) const;
+ Status DecodeFrom(Slice* input);
+
+ // Maximum encoding length of a BlockHandle
+ enum { kMaxEncodedLength = 10 + 10 };
+
+ private:
+ uint64_t offset_;
+ uint64_t size_;
+};
+
+// Footer encapsulates the fixed information stored at the tail
+// end of every table file.
+class Footer {
+ public:
+ Footer() { }
+
+ // The block handle for the metaindex block of the table
+ const BlockHandle& metaindex_handle() const { return metaindex_handle_; }
+ void set_metaindex_handle(const BlockHandle& h) { metaindex_handle_ = h; }
+
+ // The block handle for the index block of the table
+ const BlockHandle& index_handle() const {
+ return index_handle_;
+ }
+ void set_index_handle(const BlockHandle& h) {
+ index_handle_ = h;
+ }
+
+ void EncodeTo(std::string* dst) const;
+ Status DecodeFrom(Slice* input);
+
+ // Encoded length of a Footer. Note that the serialization of a
+ // Footer will always occupy exactly this many bytes. It consists
+ // of two block handles and a magic number.
+ enum {
+ kEncodedLength = 2*BlockHandle::kMaxEncodedLength + 8
+ };
+
+ private:
+ BlockHandle metaindex_handle_;
+ BlockHandle index_handle_;
+};
+
+// kTableMagicNumber was picked by running
+// echo http://code.google.com/p/leveldb/ | sha1sum
+// and taking the leading 64 bits.
+static const uint64_t kTableMagicNumber = 0xdb4775248b80fb57ull;
+
+// 1-byte type + 32-bit crc
+static const size_t kBlockTrailerSize = 5;
+
+struct BlockContents {
+ Slice data; // Actual contents of data
+ bool cachable; // True iff data can be cached
+ bool heap_allocated; // True iff caller should delete[] data.data()
+};
+
+// Read the block identified by "handle" from "file". On failure
+// return non-OK. On success fill *result and return OK.
+extern Status ReadBlock(RandomAccessFile* file,
+ const ReadOptions& options,
+ const BlockHandle& handle,
+ BlockContents* result);
+
+// Implementation details follow. Clients should ignore,
+
+inline BlockHandle::BlockHandle()
+ : offset_(~static_cast<uint64_t>(0)),
+ size_(~static_cast<uint64_t>(0)) {
+}
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_TABLE_FORMAT_H_
diff --git a/clipper/HyperLevelDB/table/iterator.cc b/clipper/HyperLevelDB/table/iterator.cc
new file mode 100644
index 0000000..6a0a8f6
--- /dev/null
+++ b/clipper/HyperLevelDB/table/iterator.cc
@@ -0,0 +1,67 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "hyperleveldb/iterator.h"
+
+namespace leveldb {
+
+Iterator::Iterator() {
+ cleanup_.function = NULL;
+ cleanup_.next = NULL;
+}
+
+Iterator::~Iterator() {
+ if (cleanup_.function != NULL) {
+ (*cleanup_.function)(cleanup_.arg1, cleanup_.arg2);
+ for (Cleanup* c = cleanup_.next; c != NULL; ) {
+ (*c->function)(c->arg1, c->arg2);
+ Cleanup* next = c->next;
+ delete c;
+ c = next;
+ }
+ }
+}
+
+void Iterator::RegisterCleanup(CleanupFunction func, void* arg1, void* arg2) {
+ assert(func != NULL);
+ Cleanup* c;
+ if (cleanup_.function == NULL) {
+ c = &cleanup_;
+ } else {
+ c = new Cleanup;
+ c->next = cleanup_.next;
+ cleanup_.next = c;
+ }
+ c->function = func;
+ c->arg1 = arg1;
+ c->arg2 = arg2;
+}
+
+namespace {
+class EmptyIterator : public Iterator {
+ public:
+ EmptyIterator(const Status& s) : status_(s) { }
+ virtual bool Valid() const { return false; }
+ virtual void Seek(const Slice& target) { }
+ virtual void SeekToFirst() { }
+ virtual void SeekToLast() { }
+ virtual void Next() { assert(false); }
+ virtual void Prev() { assert(false); }
+ Slice key() const { assert(false); return Slice(); }
+ Slice value() const { assert(false); return Slice(); }
+ virtual Status status() const { return status_; }
+ private:
+ Status status_;
+};
+} // namespace
+
+Iterator* NewEmptyIterator() {
+ return new EmptyIterator(Status::OK());
+}
+
+Iterator* NewErrorIterator(const Status& status) {
+ return new EmptyIterator(status);
+}
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/table/iterator_wrapper.h b/clipper/HyperLevelDB/table/iterator_wrapper.h
new file mode 100644
index 0000000..9e16b3d
--- /dev/null
+++ b/clipper/HyperLevelDB/table/iterator_wrapper.h
@@ -0,0 +1,63 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#ifndef STORAGE_LEVELDB_TABLE_ITERATOR_WRAPPER_H_
+#define STORAGE_LEVELDB_TABLE_ITERATOR_WRAPPER_H_
+
+namespace leveldb {
+
+// A internal wrapper class with an interface similar to Iterator that
+// caches the valid() and key() results for an underlying iterator.
+// This can help avoid virtual function calls and also gives better
+// cache locality.
+class IteratorWrapper {
+ public:
+ IteratorWrapper(): iter_(NULL), valid_(false) { }
+ explicit IteratorWrapper(Iterator* iter): iter_(NULL) {
+ Set(iter);
+ }
+ ~IteratorWrapper() { delete iter_; }
+ Iterator* iter() const { return iter_; }
+
+ // Takes ownership of "iter" and will delete it when destroyed, or
+ // when Set() is invoked again.
+ void Set(Iterator* iter) {
+ delete iter_;
+ iter_ = iter;
+ if (iter_ == NULL) {
+ valid_ = false;
+ } else {
+ Update();
+ }
+ }
+
+
+ // Iterator interface methods
+ bool Valid() const { return valid_; }
+ Slice key() const { assert(Valid()); return key_; }
+ Slice value() const { assert(Valid()); return iter_->value(); }
+ // Methods below require iter() != NULL
+ Status status() const { assert(iter_); return iter_->status(); }
+ void Next() { assert(iter_); iter_->Next(); Update(); }
+ void Prev() { assert(iter_); iter_->Prev(); Update(); }
+ void Seek(const Slice& k) { assert(iter_); iter_->Seek(k); Update(); }
+ void SeekToFirst() { assert(iter_); iter_->SeekToFirst(); Update(); }
+ void SeekToLast() { assert(iter_); iter_->SeekToLast(); Update(); }
+
+ private:
+ void Update() {
+ valid_ = iter_->Valid();
+ if (valid_) {
+ key_ = iter_->key();
+ }
+ }
+
+ Iterator* iter_;
+ bool valid_;
+ Slice key_;
+};
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_TABLE_ITERATOR_WRAPPER_H_
diff --git a/clipper/HyperLevelDB/table/merger.cc b/clipper/HyperLevelDB/table/merger.cc
new file mode 100644
index 0000000..a91738a
--- /dev/null
+++ b/clipper/HyperLevelDB/table/merger.cc
@@ -0,0 +1,197 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "table/merger.h"
+
+#include "hyperleveldb/comparator.h"
+#include "hyperleveldb/iterator.h"
+#include "table/iterator_wrapper.h"
+
+namespace leveldb {
+
+namespace {
+class MergingIterator : public Iterator {
+ public:
+ MergingIterator(const Comparator* comparator, Iterator** children, int n)
+ : comparator_(comparator),
+ children_(new IteratorWrapper[n]),
+ n_(n),
+ current_(NULL),
+ direction_(kForward) {
+ for (int i = 0; i < n; i++) {
+ children_[i].Set(children[i]);
+ }
+ }
+
+ virtual ~MergingIterator() {
+ delete[] children_;
+ }
+
+ virtual bool Valid() const {
+ return (current_ != NULL);
+ }
+
+ virtual void SeekToFirst() {
+ for (int i = 0; i < n_; i++) {
+ children_[i].SeekToFirst();
+ }
+ FindSmallest();
+ direction_ = kForward;
+ }
+
+ virtual void SeekToLast() {
+ for (int i = 0; i < n_; i++) {
+ children_[i].SeekToLast();
+ }
+ FindLargest();
+ direction_ = kReverse;
+ }
+
+ virtual void Seek(const Slice& target) {
+ for (int i = 0; i < n_; i++) {
+ children_[i].Seek(target);
+ }
+ FindSmallest();
+ direction_ = kForward;
+ }
+
+ virtual void Next() {
+ assert(Valid());
+
+ // Ensure that all children are positioned after key().
+ // If we are moving in the forward direction, it is already
+ // true for all of the non-current_ children since current_ is
+ // the smallest child and key() == current_->key(). Otherwise,
+ // we explicitly position the non-current_ children.
+ if (direction_ != kForward) {
+ for (int i = 0; i < n_; i++) {
+ IteratorWrapper* child = &children_[i];
+ if (child != current_) {
+ child->Seek(key());
+ if (child->Valid() &&
+ comparator_->Compare(key(), child->key()) == 0) {
+ child->Next();
+ }
+ }
+ }
+ direction_ = kForward;
+ }
+
+ current_->Next();
+ FindSmallest();
+ }
+
+ virtual void Prev() {
+ assert(Valid());
+
+ // Ensure that all children are positioned before key().
+ // If we are moving in the reverse direction, it is already
+ // true for all of the non-current_ children since current_ is
+ // the largest child and key() == current_->key(). Otherwise,
+ // we explicitly position the non-current_ children.
+ if (direction_ != kReverse) {
+ for (int i = 0; i < n_; i++) {
+ IteratorWrapper* child = &children_[i];
+ if (child != current_) {
+ child->Seek(key());
+ if (child->Valid()) {
+ // Child is at first entry >= key(). Step back one to be < key()
+ child->Prev();
+ } else {
+ // Child has no entries >= key(). Position at last entry.
+ child->SeekToLast();
+ }
+ }
+ }
+ direction_ = kReverse;
+ }
+
+ current_->Prev();
+ FindLargest();
+ }
+
+ virtual Slice key() const {
+ assert(Valid());
+ return current_->key();
+ }
+
+ virtual Slice value() const {
+ assert(Valid());
+ return current_->value();
+ }
+
+ virtual Status status() const {
+ Status status;
+ for (int i = 0; i < n_; i++) {
+ status = children_[i].status();
+ if (!status.ok()) {
+ break;
+ }
+ }
+ return status;
+ }
+
+ private:
+ void FindSmallest();
+ void FindLargest();
+
+ // We might want to use a heap in case there are lots of children.
+ // For now we use a simple array since we expect a very small number
+ // of children in leveldb.
+ const Comparator* comparator_;
+ IteratorWrapper* children_;
+ int n_;
+ IteratorWrapper* current_;
+
+ // Which direction is the iterator moving?
+ enum Direction {
+ kForward,
+ kReverse
+ };
+ Direction direction_;
+};
+
+void MergingIterator::FindSmallest() {
+ IteratorWrapper* smallest = NULL;
+ for (int i = 0; i < n_; i++) {
+ IteratorWrapper* child = &children_[i];
+ if (child->Valid()) {
+ if (smallest == NULL) {
+ smallest = child;
+ } else if (comparator_->Compare(child->key(), smallest->key()) < 0) {
+ smallest = child;
+ }
+ }
+ }
+ current_ = smallest;
+}
+
+void MergingIterator::FindLargest() {
+ IteratorWrapper* largest = NULL;
+ for (int i = n_-1; i >= 0; i--) {
+ IteratorWrapper* child = &children_[i];
+ if (child->Valid()) {
+ if (largest == NULL) {
+ largest = child;
+ } else if (comparator_->Compare(child->key(), largest->key()) > 0) {
+ largest = child;
+ }
+ }
+ }
+ current_ = largest;
+}
+} // namespace
+
+Iterator* NewMergingIterator(const Comparator* cmp, Iterator** list, int n) {
+ assert(n >= 0);
+ if (n == 0) {
+ return NewEmptyIterator();
+ } else if (n == 1) {
+ return list[0];
+ } else {
+ return new MergingIterator(cmp, list, n);
+ }
+}
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/table/merger.h b/clipper/HyperLevelDB/table/merger.h
new file mode 100644
index 0000000..91ddd80
--- /dev/null
+++ b/clipper/HyperLevelDB/table/merger.h
@@ -0,0 +1,26 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#ifndef STORAGE_LEVELDB_TABLE_MERGER_H_
+#define STORAGE_LEVELDB_TABLE_MERGER_H_
+
+namespace leveldb {
+
+class Comparator;
+class Iterator;
+
+// Return an iterator that provided the union of the data in
+// children[0,n-1]. Takes ownership of the child iterators and
+// will delete them when the result iterator is deleted.
+//
+// The result does no duplicate suppression. I.e., if a particular
+// key is present in K child iterators, it will be yielded K times.
+//
+// REQUIRES: n >= 0
+extern Iterator* NewMergingIterator(
+ const Comparator* comparator, Iterator** children, int n);
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_TABLE_MERGER_H_
diff --git a/clipper/HyperLevelDB/table/table.cc b/clipper/HyperLevelDB/table/table.cc
new file mode 100644
index 0000000..2ad7bd6
--- /dev/null
+++ b/clipper/HyperLevelDB/table/table.cc
@@ -0,0 +1,275 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "hyperleveldb/table.h"
+
+#include "hyperleveldb/cache.h"
+#include "hyperleveldb/comparator.h"
+#include "hyperleveldb/env.h"
+#include "hyperleveldb/filter_policy.h"
+#include "hyperleveldb/options.h"
+#include "table/block.h"
+#include "table/filter_block.h"
+#include "table/format.h"
+#include "table/two_level_iterator.h"
+#include "util/coding.h"
+
+namespace leveldb {
+
+struct Table::Rep {
+ ~Rep() {
+ delete filter;
+ delete [] filter_data;
+ delete index_block;
+ }
+
+ Options options;
+ Status status;
+ RandomAccessFile* file;
+ uint64_t cache_id;
+ FilterBlockReader* filter;
+ const char* filter_data;
+
+ BlockHandle metaindex_handle; // Handle to metaindex_block: saved from footer
+ Block* index_block;
+};
+
+Status Table::Open(const Options& options,
+ RandomAccessFile* file,
+ uint64_t size,
+ Table** table) {
+ *table = NULL;
+ if (size < Footer::kEncodedLength) {
+ return Status::InvalidArgument("file is too short to be an sstable");
+ }
+
+ char footer_space[Footer::kEncodedLength];
+ Slice footer_input;
+ Status s = file->Read(size - Footer::kEncodedLength, Footer::kEncodedLength,
+ &footer_input, footer_space);
+ if (!s.ok()) return s;
+
+ Footer footer;
+ s = footer.DecodeFrom(&footer_input);
+ if (!s.ok()) return s;
+
+ // Read the index block
+ BlockContents contents;
+ Block* index_block = NULL;
+ if (s.ok()) {
+ s = ReadBlock(file, ReadOptions(), footer.index_handle(), &contents);
+ if (s.ok()) {
+ index_block = new Block(contents);
+ }
+ }
+
+ if (s.ok()) {
+ // We've successfully read the footer and the index block: we're
+ // ready to serve requests.
+ Rep* rep = new Table::Rep;
+ rep->options = options;
+ rep->file = file;
+ rep->metaindex_handle = footer.metaindex_handle();
+ rep->index_block = index_block;
+ rep->cache_id = (options.block_cache ? options.block_cache->NewId() : 0);
+ rep->filter_data = NULL;
+ rep->filter = NULL;
+ *table = new Table(rep);
+ (*table)->ReadMeta(footer);
+ } else {
+ if (index_block) delete index_block;
+ }
+
+ return s;
+}
+
+void Table::ReadMeta(const Footer& footer) {
+ if (rep_->options.filter_policy == NULL) {
+ return; // Do not need any metadata
+ }
+
+ // TODO(sanjay): Skip this if footer.metaindex_handle() size indicates
+ // it is an empty block.
+ ReadOptions opt;
+ BlockContents contents;
+ if (!ReadBlock(rep_->file, opt, footer.metaindex_handle(), &contents).ok()) {
+ // Do not propagate errors since meta info is not needed for operation
+ return;
+ }
+ Block* meta = new Block(contents);
+
+ Iterator* iter = meta->NewIterator(BytewiseComparator());
+ std::string key = "filter.";
+ key.append(rep_->options.filter_policy->Name());
+ iter->Seek(key);
+ if (iter->Valid() && iter->key() == Slice(key)) {
+ ReadFilter(iter->value());
+ }
+ delete iter;
+ delete meta;
+}
+
+void Table::ReadFilter(const Slice& filter_handle_value) {
+ Slice v = filter_handle_value;
+ BlockHandle filter_handle;
+ if (!filter_handle.DecodeFrom(&v).ok()) {
+ return;
+ }
+
+ // We might want to unify with ReadBlock() if we start
+ // requiring checksum verification in Table::Open.
+ ReadOptions opt;
+ BlockContents block;
+ if (!ReadBlock(rep_->file, opt, filter_handle, &block).ok()) {
+ return;
+ }
+ if (block.heap_allocated) {
+ rep_->filter_data = block.data.data(); // Will need to delete later
+ }
+ rep_->filter = new FilterBlockReader(rep_->options.filter_policy, block.data);
+}
+
+Table::~Table() {
+ delete rep_;
+}
+
+static void DeleteBlock(void* arg, void* ignored) {
+ delete reinterpret_cast<Block*>(arg);
+}
+
+static void DeleteCachedBlock(const Slice& key, void* value) {
+ Block* block = reinterpret_cast<Block*>(value);
+ delete block;
+}
+
+static void ReleaseBlock(void* arg, void* h) {
+ Cache* cache = reinterpret_cast<Cache*>(arg);
+ Cache::Handle* handle = reinterpret_cast<Cache::Handle*>(h);
+ cache->Release(handle);
+}
+
+// Convert an index iterator value (i.e., an encoded BlockHandle)
+// into an iterator over the contents of the corresponding block.
+Iterator* Table::BlockReader(void* arg,
+ const ReadOptions& options,
+ const Slice& index_value) {
+ Table* table = reinterpret_cast<Table*>(arg);
+ Cache* block_cache = table->rep_->options.block_cache;
+ Block* block = NULL;
+ Cache::Handle* cache_handle = NULL;
+
+ BlockHandle handle;
+ Slice input = index_value;
+ Status s = handle.DecodeFrom(&input);
+ // We intentionally allow extra stuff in index_value so that we
+ // can add more features in the future.
+
+ if (s.ok()) {
+ BlockContents contents;
+ if (block_cache != NULL) {
+ char cache_key_buffer[16];
+ EncodeFixed64(cache_key_buffer, table->rep_->cache_id);
+ EncodeFixed64(cache_key_buffer+8, handle.offset());
+ Slice key(cache_key_buffer, sizeof(cache_key_buffer));
+ cache_handle = block_cache->Lookup(key);
+ if (cache_handle != NULL) {
+ block = reinterpret_cast<Block*>(block_cache->Value(cache_handle));
+ } else {
+ s = ReadBlock(table->rep_->file, options, handle, &contents);
+ if (s.ok()) {
+ block = new Block(contents);
+ if (contents.cachable && options.fill_cache) {
+ cache_handle = block_cache->Insert(
+ key, block, block->size(), &DeleteCachedBlock);
+ }
+ }
+ }
+ } else {
+ s = ReadBlock(table->rep_->file, options, handle, &contents);
+ if (s.ok()) {
+ block = new Block(contents);
+ }
+ }
+ }
+
+ Iterator* iter;
+ if (block != NULL) {
+ iter = block->NewIterator(table->rep_->options.comparator);
+ if (cache_handle == NULL) {
+ iter->RegisterCleanup(&DeleteBlock, block, NULL);
+ } else {
+ iter->RegisterCleanup(&ReleaseBlock, block_cache, cache_handle);
+ }
+ } else {
+ iter = NewErrorIterator(s);
+ }
+ return iter;
+}
+
+Iterator* Table::NewIterator(const ReadOptions& options) const {
+ return NewTwoLevelIterator(
+ rep_->index_block->NewIterator(rep_->options.comparator),
+ &Table::BlockReader, const_cast<Table*>(this), options);
+}
+
+Status Table::InternalGet(const ReadOptions& options, const Slice& k,
+ void* arg,
+ void (*saver)(void*, const Slice&, const Slice&)) {
+ Status s;
+ Iterator* iiter = rep_->index_block->NewIterator(rep_->options.comparator);
+ iiter->Seek(k);
+ if (iiter->Valid()) {
+ Slice handle_value = iiter->value();
+ FilterBlockReader* filter = rep_->filter;
+ BlockHandle handle;
+ if (filter != NULL &&
+ handle.DecodeFrom(&handle_value).ok() &&
+ !filter->KeyMayMatch(handle.offset(), k)) {
+ // Not found
+ } else {
+ Iterator* block_iter = BlockReader(this, options, iiter->value());
+ block_iter->Seek(k);
+ if (block_iter->Valid()) {
+ (*saver)(arg, block_iter->key(), block_iter->value());
+ }
+ s = block_iter->status();
+ delete block_iter;
+ }
+ }
+ if (s.ok()) {
+ s = iiter->status();
+ }
+ delete iiter;
+ return s;
+}
+
+
+uint64_t Table::ApproximateOffsetOf(const Slice& key) const {
+ Iterator* index_iter =
+ rep_->index_block->NewIterator(rep_->options.comparator);
+ index_iter->Seek(key);
+ uint64_t result;
+ if (index_iter->Valid()) {
+ BlockHandle handle;
+ Slice input = index_iter->value();
+ Status s = handle.DecodeFrom(&input);
+ if (s.ok()) {
+ result = handle.offset();
+ } else {
+ // Strange: we can't decode the block handle in the index block.
+ // We'll just return the offset of the metaindex block, which is
+ // close to the whole file size for this case.
+ result = rep_->metaindex_handle.offset();
+ }
+ } else {
+ // key is past the last key in the file. Approximate the offset
+ // by returning the offset of the metaindex block (which is
+ // right near the end of the file).
+ result = rep_->metaindex_handle.offset();
+ }
+ delete index_iter;
+ return result;
+}
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/table/table_builder.cc b/clipper/HyperLevelDB/table/table_builder.cc
new file mode 100644
index 0000000..4c31c67
--- /dev/null
+++ b/clipper/HyperLevelDB/table/table_builder.cc
@@ -0,0 +1,269 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "hyperleveldb/table_builder.h"
+
+#include <assert.h>
+#include "hyperleveldb/comparator.h"
+#include "hyperleveldb/env.h"
+#include "hyperleveldb/filter_policy.h"
+#include "hyperleveldb/options.h"
+#include "table/block_builder.h"
+#include "table/filter_block.h"
+#include "table/format.h"
+#include "util/coding.h"
+#include "util/crc32c.h"
+
+namespace leveldb {
+
+struct TableBuilder::Rep {
+ Options options;
+ Options index_block_options;
+ WritableFile* file;
+ uint64_t offset;
+ Status status;
+ BlockBuilder data_block;
+ BlockBuilder index_block;
+ std::string last_key;
+ int64_t num_entries;
+ bool closed; // Either Finish() or Abandon() has been called.
+ FilterBlockBuilder* filter_block;
+
+ // We do not emit the index entry for a block until we have seen the
+ // first key for the next data block. This allows us to use shorter
+ // keys in the index block. For example, consider a block boundary
+ // between the keys "the quick brown fox" and "the who". We can use
+ // "the r" as the key for the index block entry since it is >= all
+ // entries in the first block and < all entries in subsequent
+ // blocks.
+ //
+ // Invariant: r->pending_index_entry is true only if data_block is empty.
+ bool pending_index_entry;
+ BlockHandle pending_handle; // Handle to add to index block
+
+ std::string compressed_output;
+
+ Rep(const Options& opt, WritableFile* f)
+ : options(opt),
+ index_block_options(opt),
+ file(f),
+ offset(0),
+ data_block(&options),
+ index_block(&index_block_options),
+ num_entries(0),
+ closed(false),
+ filter_block(opt.filter_policy == NULL ? NULL
+ : new FilterBlockBuilder(opt.filter_policy)),
+ pending_index_entry(false) {
+ index_block_options.block_restart_interval = 1;
+ }
+};
+
+TableBuilder::TableBuilder(const Options& options, WritableFile* file)
+ : rep_(new Rep(options, file)) {
+ if (rep_->filter_block != NULL) {
+ rep_->filter_block->StartBlock(0);
+ }
+}
+
+TableBuilder::~TableBuilder() {
+ assert(rep_->closed); // Catch errors where caller forgot to call Finish()
+ delete rep_->filter_block;
+ delete rep_;
+}
+
+Status TableBuilder::ChangeOptions(const Options& options) {
+ // Note: if more fields are added to Options, update
+ // this function to catch changes that should not be allowed to
+ // change in the middle of building a Table.
+ if (options.comparator != rep_->options.comparator) {
+ return Status::InvalidArgument("changing comparator while building table");
+ }
+
+ // Note that any live BlockBuilders point to rep_->options and therefore
+ // will automatically pick up the updated options.
+ rep_->options = options;
+ rep_->index_block_options = options;
+ rep_->index_block_options.block_restart_interval = 1;
+ return Status::OK();
+}
+
+void TableBuilder::Add(const Slice& key, const Slice& value) {
+ Rep* r = rep_;
+ assert(!r->closed);
+ if (!ok()) return;
+ if (r->num_entries > 0) {
+ assert(r->options.comparator->Compare(key, Slice(r->last_key)) > 0);
+ }
+
+ if (r->pending_index_entry) {
+ assert(r->data_block.empty());
+ r->options.comparator->FindShortestSeparator(&r->last_key, key);
+ std::string handle_encoding;
+ r->pending_handle.EncodeTo(&handle_encoding);
+ r->index_block.Add(r->last_key, Slice(handle_encoding));
+ r->pending_index_entry = false;
+ }
+
+ if (r->filter_block != NULL) {
+ r->filter_block->AddKey(key);
+ }
+
+ r->last_key.assign(key.data(), key.size());
+ r->num_entries++;
+ r->data_block.Add(key, value);
+
+ const size_t estimated_block_size = r->data_block.CurrentSizeEstimate();
+ if (estimated_block_size >= r->options.block_size) {
+ Flush();
+ }
+}
+
+void TableBuilder::Flush() {
+ Rep* r = rep_;
+ assert(!r->closed);
+ if (!ok()) return;
+ if (r->data_block.empty()) return;
+ assert(!r->pending_index_entry);
+ WriteBlock(&r->data_block, &r->pending_handle);
+ if (ok()) {
+ r->pending_index_entry = true;
+ }
+ if (r->filter_block != NULL) {
+ r->filter_block->StartBlock(r->offset);
+ }
+}
+
+void TableBuilder::WriteBlock(BlockBuilder* block, BlockHandle* handle) {
+ // File format contains a sequence of blocks where each block has:
+ // block_data: uint8[n]
+ // type: uint8
+ // crc: uint32
+ assert(ok());
+ Rep* r = rep_;
+ Slice raw = block->Finish();
+
+ Slice block_contents;
+ CompressionType type = r->options.compression;
+ // TODO(postrelease): Support more compression options: zlib?
+ switch (type) {
+ case kNoCompression:
+ block_contents = raw;
+ break;
+
+ case kSnappyCompression: {
+ std::string* compressed = &r->compressed_output;
+ if (port::Snappy_Compress(raw.data(), raw.size(), compressed) &&
+ compressed->size() < raw.size() - (raw.size() / 8u)) {
+ block_contents = *compressed;
+ } else {
+ // Snappy not supported, or compressed less than 12.5%, so just
+ // store uncompressed form
+ block_contents = raw;
+ type = kNoCompression;
+ }
+ break;
+ }
+ }
+ WriteRawBlock(block_contents, type, handle);
+ r->compressed_output.clear();
+ block->Reset();
+}
+
+void TableBuilder::WriteRawBlock(const Slice& block_contents,
+ CompressionType type,
+ BlockHandle* handle) {
+ Rep* r = rep_;
+ handle->set_offset(r->offset);
+ handle->set_size(block_contents.size());
+ r->status = r->file->Append(block_contents);
+ if (r->status.ok()) {
+ char trailer[kBlockTrailerSize];
+ trailer[0] = type;
+ uint32_t crc = crc32c::Value(block_contents.data(), block_contents.size());
+ crc = crc32c::Extend(crc, trailer, 1); // Extend crc to cover block type
+ EncodeFixed32(trailer+1, crc32c::Mask(crc));
+ r->status = r->file->Append(Slice(trailer, kBlockTrailerSize));
+ if (r->status.ok()) {
+ r->offset += block_contents.size() + kBlockTrailerSize;
+ }
+ }
+}
+
+Status TableBuilder::status() const {
+ return rep_->status;
+}
+
+Status TableBuilder::Finish() {
+ Rep* r = rep_;
+ Flush();
+ assert(!r->closed);
+ r->closed = true;
+
+ BlockHandle filter_block_handle, metaindex_block_handle, index_block_handle;
+
+ // Write filter block
+ if (ok() && r->filter_block != NULL) {
+ WriteRawBlock(r->filter_block->Finish(), kNoCompression,
+ &filter_block_handle);
+ }
+
+ // Write metaindex block
+ if (ok()) {
+ BlockBuilder meta_index_block(&r->options);
+ if (r->filter_block != NULL) {
+ // Add mapping from "filter.Name" to location of filter data
+ std::string key = "filter.";
+ key.append(r->options.filter_policy->Name());
+ std::string handle_encoding;
+ filter_block_handle.EncodeTo(&handle_encoding);
+ meta_index_block.Add(key, handle_encoding);
+ }
+
+ // TODO(postrelease): Add stats and other meta blocks
+ WriteBlock(&meta_index_block, &metaindex_block_handle);
+ }
+
+ // Write index block
+ if (ok()) {
+ if (r->pending_index_entry) {
+ r->options.comparator->FindShortSuccessor(&r->last_key);
+ std::string handle_encoding;
+ r->pending_handle.EncodeTo(&handle_encoding);
+ r->index_block.Add(r->last_key, Slice(handle_encoding));
+ r->pending_index_entry = false;
+ }
+ WriteBlock(&r->index_block, &index_block_handle);
+ }
+
+ // Write footer
+ if (ok()) {
+ Footer footer;
+ footer.set_metaindex_handle(metaindex_block_handle);
+ footer.set_index_handle(index_block_handle);
+ std::string footer_encoding;
+ footer.EncodeTo(&footer_encoding);
+ r->status = r->file->Append(footer_encoding);
+ if (r->status.ok()) {
+ r->offset += footer_encoding.size();
+ }
+ }
+ return r->status;
+}
+
+void TableBuilder::Abandon() {
+ Rep* r = rep_;
+ assert(!r->closed);
+ r->closed = true;
+}
+
+uint64_t TableBuilder::NumEntries() const {
+ return rep_->num_entries;
+}
+
+uint64_t TableBuilder::FileSize() const {
+ return rep_->offset;
+}
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/table/table_test.cc b/clipper/HyperLevelDB/table/table_test.cc
new file mode 100644
index 0000000..a47ef20
--- /dev/null
+++ b/clipper/HyperLevelDB/table/table_test.cc
@@ -0,0 +1,876 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "hyperleveldb/table.h"
+
+#include <map>
+#include <string>
+#include "db/dbformat.h"
+#include "db/memtable.h"
+#include "db/write_batch_internal.h"
+#include "hyperleveldb/db.h"
+#include "hyperleveldb/env.h"
+#include "hyperleveldb/iterator.h"
+#include "hyperleveldb/table_builder.h"
+#include "table/block.h"
+#include "table/block_builder.h"
+#include "table/format.h"
+#include "util/random.h"
+#include "util/testharness.h"
+#include "util/testutil.h"
+
+namespace leveldb {
+
+// Return reverse of "key".
+// Used to test non-lexicographic comparators.
+static std::string Reverse(const Slice& key) {
+ std::string str(key.ToString());
+ std::string rev("");
+ for (std::string::reverse_iterator rit = str.rbegin();
+ rit != str.rend(); ++rit) {
+ rev.push_back(*rit);
+ }
+ return rev;
+}
+
+namespace {
+class ReverseKeyComparator : public Comparator {
+ public:
+ virtual const char* Name() const {
+ return "leveldb.ReverseBytewiseComparator";
+ }
+
+ virtual int Compare(const Slice& a, const Slice& b) const {
+ return BytewiseComparator()->Compare(Reverse(a), Reverse(b));
+ }
+
+ virtual void FindShortestSeparator(
+ std::string* start,
+ const Slice& limit) const {
+ std::string s = Reverse(*start);
+ std::string l = Reverse(limit);
+ BytewiseComparator()->FindShortestSeparator(&s, l);
+ *start = Reverse(s);
+ }
+
+ virtual void FindShortSuccessor(std::string* key) const {
+ std::string s = Reverse(*key);
+ BytewiseComparator()->FindShortSuccessor(&s);
+ *key = Reverse(s);
+ }
+};
+} // namespace
+static ReverseKeyComparator reverse_key_comparator;
+
+static void Increment(const Comparator* cmp, std::string* key) {
+ if (cmp == BytewiseComparator()) {
+ key->push_back('\0');
+ } else {
+ assert(cmp == &reverse_key_comparator);
+ std::string rev = Reverse(*key);
+ rev.push_back('\0');
+ *key = Reverse(rev);
+ }
+}
+
+// An STL comparator that uses a Comparator
+namespace {
+struct STLLessThan {
+ const Comparator* cmp;
+
+ STLLessThan() : cmp(BytewiseComparator()) { }
+ STLLessThan(const Comparator* c) : cmp(c) { }
+ bool operator()(const std::string& a, const std::string& b) const {
+ return cmp->Compare(Slice(a), Slice(b)) < 0;
+ }
+};
+} // namespace
+
+class StringSink: public WritableFile {
+ public:
+ ~StringSink() { }
+
+ const std::string& contents() const { return contents_; }
+
+ virtual Status Close() { return Status::OK(); }
+ virtual Status Sync() { return Status::OK(); }
+
+ virtual Status WriteAt(uint64_t offset, const Slice& slice) {
+ std::string tmp = contents_.substr(0, offset);
+ tmp.append(slice.data(), slice.size());
+ if (contents_.size() > offset + slice.size()) {
+ tmp += contents_.substr(offset + slice.size());
+ }
+ contents_ = tmp;
+ return Status::OK();
+ }
+ virtual Status Append(const Slice& data) {
+ contents_.append(data.data(), data.size());
+ return Status::OK();
+ }
+
+ private:
+ std::string contents_;
+};
+
+
+class StringSource: public RandomAccessFile {
+ public:
+ StringSource(const Slice& contents)
+ : contents_(contents.data(), contents.size()) {
+ }
+
+ virtual ~StringSource() { }
+
+ uint64_t Size() const { return contents_.size(); }
+
+ virtual Status Read(uint64_t offset, size_t n, Slice* result,
+ char* scratch) const {
+ if (offset > contents_.size()) {
+ return Status::InvalidArgument("invalid Read offset");
+ }
+ if (offset + n > contents_.size()) {
+ n = contents_.size() - offset;
+ }
+ memcpy(scratch, &contents_[offset], n);
+ *result = Slice(scratch, n);
+ return Status::OK();
+ }
+
+ private:
+ std::string contents_;
+};
+
+typedef std::map<std::string, std::string, STLLessThan> KVMap;
+
+// Helper class for tests to unify the interface between
+// BlockBuilder/TableBuilder and Block/Table.
+class Constructor {
+ public:
+ explicit Constructor(const Comparator* cmp) : data_(STLLessThan(cmp)) { }
+ virtual ~Constructor() { }
+
+ void Add(const std::string& key, const Slice& value) {
+ data_[key] = value.ToString();
+ }
+
+ // Finish constructing the data structure with all the keys that have
+ // been added so far. Returns the keys in sorted order in "*keys"
+ // and stores the key/value pairs in "*kvmap"
+ void Finish(const Options& options,
+ std::vector<std::string>* keys,
+ KVMap* kvmap) {
+ *kvmap = data_;
+ keys->clear();
+ for (KVMap::const_iterator it = data_.begin();
+ it != data_.end();
+ ++it) {
+ keys->push_back(it->first);
+ }
+ data_.clear();
+ Status s = FinishImpl(options, *kvmap);
+ ASSERT_TRUE(s.ok()) << s.ToString();
+ }
+
+ // Construct the data structure from the data in "data"
+ virtual Status FinishImpl(const Options& options, const KVMap& data) = 0;
+
+ virtual Iterator* NewIterator() const = 0;
+
+ virtual const KVMap& data() { return data_; }
+
+ virtual DB* db() const { return NULL; } // Overridden in DBConstructor
+
+ private:
+ KVMap data_;
+};
+
+class BlockConstructor: public Constructor {
+ public:
+ explicit BlockConstructor(const Comparator* cmp)
+ : Constructor(cmp),
+ comparator_(cmp),
+ block_(NULL) { }
+ ~BlockConstructor() {
+ delete block_;
+ }
+ virtual Status FinishImpl(const Options& options, const KVMap& data) {
+ delete block_;
+ block_ = NULL;
+ BlockBuilder builder(&options);
+
+ for (KVMap::const_iterator it = data.begin();
+ it != data.end();
+ ++it) {
+ builder.Add(it->first, it->second);
+ }
+ // Open the block
+ data_ = builder.Finish().ToString();
+ BlockContents contents;
+ contents.data = data_;
+ contents.cachable = false;
+ contents.heap_allocated = false;
+ block_ = new Block(contents);
+ return Status::OK();
+ }
+ virtual Iterator* NewIterator() const {
+ return block_->NewIterator(comparator_);
+ }
+
+ private:
+ const Comparator* comparator_;
+ std::string data_;
+ Block* block_;
+
+ BlockConstructor();
+};
+
+class TableConstructor: public Constructor {
+ public:
+ TableConstructor(const Comparator* cmp)
+ : Constructor(cmp),
+ source_(NULL), table_(NULL) {
+ }
+ ~TableConstructor() {
+ Reset();
+ }
+ virtual Status FinishImpl(const Options& options, const KVMap& data) {
+ Reset();
+ StringSink sink;
+ TableBuilder builder(options, &sink);
+
+ for (KVMap::const_iterator it = data.begin();
+ it != data.end();
+ ++it) {
+ builder.Add(it->first, it->second);
+ ASSERT_TRUE(builder.status().ok());
+ }
+ Status s = builder.Finish();
+ ASSERT_TRUE(s.ok()) << s.ToString();
+
+ ASSERT_EQ(sink.contents().size(), builder.FileSize());
+
+ // Open the table
+ source_ = new StringSource(sink.contents());
+ Options table_options;
+ table_options.comparator = options.comparator;
+ return Table::Open(table_options, source_, sink.contents().size(), &table_);
+ }
+
+ virtual Iterator* NewIterator() const {
+ return table_->NewIterator(ReadOptions());
+ }
+
+ uint64_t ApproximateOffsetOf(const Slice& key) const {
+ return table_->ApproximateOffsetOf(key);
+ }
+
+ private:
+ void Reset() {
+ delete table_;
+ delete source_;
+ table_ = NULL;
+ source_ = NULL;
+ }
+
+ StringSource* source_;
+ Table* table_;
+
+ TableConstructor();
+};
+
+// A helper class that converts internal format keys into user keys
+class KeyConvertingIterator: public Iterator {
+ public:
+ explicit KeyConvertingIterator(Iterator* iter) : iter_(iter) { }
+ virtual ~KeyConvertingIterator() { delete iter_; }
+ virtual bool Valid() const { return iter_->Valid(); }
+ virtual void Seek(const Slice& target) {
+ ParsedInternalKey ikey(target, kMaxSequenceNumber, kTypeValue);
+ std::string encoded;
+ AppendInternalKey(&encoded, ikey);
+ iter_->Seek(encoded);
+ }
+ virtual void SeekToFirst() { iter_->SeekToFirst(); }
+ virtual void SeekToLast() { iter_->SeekToLast(); }
+ virtual void Next() { iter_->Next(); }
+ virtual void Prev() { iter_->Prev(); }
+
+ virtual Slice key() const {
+ assert(Valid());
+ ParsedInternalKey key;
+ if (!ParseInternalKey(iter_->key(), &key)) {
+ status_ = Status::Corruption("malformed internal key");
+ return Slice("corrupted key");
+ }
+ return key.user_key;
+ }
+
+ virtual Slice value() const { return iter_->value(); }
+ virtual Status status() const {
+ return status_.ok() ? iter_->status() : status_;
+ }
+
+ private:
+ mutable Status status_;
+ Iterator* iter_;
+
+ // No copying allowed
+ KeyConvertingIterator(const KeyConvertingIterator&);
+ void operator=(const KeyConvertingIterator&);
+};
+
+class MemTableConstructor: public Constructor {
+ public:
+ explicit MemTableConstructor(const Comparator* cmp)
+ : Constructor(cmp),
+ internal_comparator_(cmp) {
+ memtable_ = new MemTable(internal_comparator_);
+ memtable_->Ref();
+ }
+ ~MemTableConstructor() {
+ memtable_->Unref();
+ }
+ virtual Status FinishImpl(const Options& options, const KVMap& data) {
+ memtable_->Unref();
+ memtable_ = new MemTable(internal_comparator_);
+ memtable_->Ref();
+ int seq = 1;
+ for (KVMap::const_iterator it = data.begin();
+ it != data.end();
+ ++it) {
+ memtable_->Add(seq, kTypeValue, it->first, it->second);
+ seq++;
+ }
+ return Status::OK();
+ }
+ virtual Iterator* NewIterator() const {
+ return new KeyConvertingIterator(memtable_->NewIterator());
+ }
+
+ private:
+ InternalKeyComparator internal_comparator_;
+ MemTable* memtable_;
+};
+
+class DBConstructor: public Constructor {
+ public:
+ explicit DBConstructor(const Comparator* cmp)
+ : Constructor(cmp),
+ comparator_(cmp) {
+ db_ = NULL;
+ NewDB();
+ }
+ ~DBConstructor() {
+ delete db_;
+ }
+ virtual Status FinishImpl(const Options& options, const KVMap& data) {
+ delete db_;
+ db_ = NULL;
+ NewDB();
+ for (KVMap::const_iterator it = data.begin();
+ it != data.end();
+ ++it) {
+ WriteBatch batch;
+ batch.Put(it->first, it->second);
+ ASSERT_TRUE(db_->Write(WriteOptions(), &batch).ok());
+ }
+ return Status::OK();
+ }
+ virtual Iterator* NewIterator() const {
+ return db_->NewIterator(ReadOptions());
+ }
+
+ virtual DB* db() const { return db_; }
+
+ private:
+ void NewDB() {
+ std::string name = test::TmpDir() + "/table_testdb";
+
+ Options options;
+ options.comparator = comparator_;
+ Status status = DestroyDB(name, options);
+ ASSERT_TRUE(status.ok()) << status.ToString();
+
+ options.create_if_missing = true;
+ options.error_if_exists = true;
+ options.write_buffer_size = 10000; // Something small to force merging
+ status = DB::Open(options, name, &db_);
+ ASSERT_TRUE(status.ok()) << status.ToString();
+ }
+
+ const Comparator* comparator_;
+ DB* db_;
+};
+
+enum TestType {
+ TABLE_TEST,
+ BLOCK_TEST,
+ MEMTABLE_TEST,
+ DB_TEST
+};
+
+struct TestArgs {
+ TestType type;
+ bool reverse_compare;
+ int restart_interval;
+};
+
+static const TestArgs kTestArgList[] = {
+ { TABLE_TEST, false, 16 },
+ { TABLE_TEST, false, 1 },
+ { TABLE_TEST, false, 1024 },
+ { TABLE_TEST, true, 16 },
+ { TABLE_TEST, true, 1 },
+ { TABLE_TEST, true, 1024 },
+
+ { BLOCK_TEST, false, 16 },
+ { BLOCK_TEST, false, 1 },
+ { BLOCK_TEST, false, 1024 },
+ { BLOCK_TEST, true, 16 },
+ { BLOCK_TEST, true, 1 },
+ { BLOCK_TEST, true, 1024 },
+
+ // Restart interval does not matter for memtables
+ { MEMTABLE_TEST, false, 16 },
+ { MEMTABLE_TEST, true, 16 },
+
+ // Do not bother with restart interval variations for DB
+ { DB_TEST, false, 16 },
+ { DB_TEST, true, 16 },
+};
+static const int kNumTestArgs = sizeof(kTestArgList) / sizeof(kTestArgList[0]);
+
+class Harness {
+ public:
+ Harness() : constructor_(NULL) { }
+
+ void Init(const TestArgs& args) {
+ delete constructor_;
+ constructor_ = NULL;
+ options_ = Options();
+
+ options_.block_restart_interval = args.restart_interval;
+ // Use shorter block size for tests to exercise block boundary
+ // conditions more.
+ options_.block_size = 256;
+ if (args.reverse_compare) {
+ options_.comparator = &reverse_key_comparator;
+ }
+ switch (args.type) {
+ case TABLE_TEST:
+ constructor_ = new TableConstructor(options_.comparator);
+ break;
+ case BLOCK_TEST:
+ constructor_ = new BlockConstructor(options_.comparator);
+ break;
+ case MEMTABLE_TEST:
+ constructor_ = new MemTableConstructor(options_.comparator);
+ break;
+ case DB_TEST:
+ constructor_ = new DBConstructor(options_.comparator);
+ break;
+ }
+ }
+
+ ~Harness() {
+ delete constructor_;
+ }
+
+ void Add(const std::string& key, const std::string& value) {
+ constructor_->Add(key, value);
+ }
+
+ void Test(Random* rnd) {
+ std::vector<std::string> keys;
+ KVMap data;
+ constructor_->Finish(options_, &keys, &data);
+
+ TestForwardScan(keys, data);
+ TestBackwardScan(keys, data);
+ TestRandomAccess(rnd, keys, data);
+ }
+
+ void TestForwardScan(const std::vector<std::string>& keys,
+ const KVMap& data) {
+ Iterator* iter = constructor_->NewIterator();
+ ASSERT_TRUE(!iter->Valid());
+ iter->SeekToFirst();
+ for (KVMap::const_iterator model_iter = data.begin();
+ model_iter != data.end();
+ ++model_iter) {
+ ASSERT_EQ(ToString(data, model_iter), ToString(iter));
+ iter->Next();
+ }
+ ASSERT_TRUE(!iter->Valid());
+ delete iter;
+ }
+
+ void TestBackwardScan(const std::vector<std::string>& keys,
+ const KVMap& data) {
+ Iterator* iter = constructor_->NewIterator();
+ ASSERT_TRUE(!iter->Valid());
+ iter->SeekToLast();
+ for (KVMap::const_reverse_iterator model_iter = data.rbegin();
+ model_iter != data.rend();
+ ++model_iter) {
+ ASSERT_EQ(ToString(data, model_iter), ToString(iter));
+ iter->Prev();
+ }
+ ASSERT_TRUE(!iter->Valid());
+ delete iter;
+ }
+
+ void TestRandomAccess(Random* rnd,
+ const std::vector<std::string>& keys,
+ const KVMap& data) {
+ static const bool kVerbose = false;
+ Iterator* iter = constructor_->NewIterator();
+ ASSERT_TRUE(!iter->Valid());
+ KVMap::const_iterator model_iter = data.begin();
+ if (kVerbose) fprintf(stderr, "---\n");
+ for (int i = 0; i < 200; i++) {
+ const int toss = rnd->Uniform(5);
+ switch (toss) {
+ case 0: {
+ if (iter->Valid()) {
+ if (kVerbose) fprintf(stderr, "Next\n");
+ iter->Next();
+ ++model_iter;
+ ASSERT_EQ(ToString(data, model_iter), ToString(iter));
+ }
+ break;
+ }
+
+ case 1: {
+ if (kVerbose) fprintf(stderr, "SeekToFirst\n");
+ iter->SeekToFirst();
+ model_iter = data.begin();
+ ASSERT_EQ(ToString(data, model_iter), ToString(iter));
+ break;
+ }
+
+ case 2: {
+ std::string key = PickRandomKey(rnd, keys);
+ model_iter = data.lower_bound(key);
+ if (kVerbose) fprintf(stderr, "Seek '%s'\n",
+ EscapeString(key).c_str());
+ iter->Seek(Slice(key));
+ ASSERT_EQ(ToString(data, model_iter), ToString(iter));
+ break;
+ }
+
+ case 3: {
+ if (iter->Valid()) {
+ if (kVerbose) fprintf(stderr, "Prev\n");
+ iter->Prev();
+ if (model_iter == data.begin()) {
+ model_iter = data.end(); // Wrap around to invalid value
+ } else {
+ --model_iter;
+ }
+ ASSERT_EQ(ToString(data, model_iter), ToString(iter));
+ }
+ break;
+ }
+
+ case 4: {
+ if (kVerbose) fprintf(stderr, "SeekToLast\n");
+ iter->SeekToLast();
+ if (keys.empty()) {
+ model_iter = data.end();
+ } else {
+ std::string last = data.rbegin()->first;
+ model_iter = data.lower_bound(last);
+ }
+ ASSERT_EQ(ToString(data, model_iter), ToString(iter));
+ break;
+ }
+ }
+ }
+ delete iter;
+ }
+
+ std::string ToString(const KVMap& data, const KVMap::const_iterator& it) {
+ if (it == data.end()) {
+ return "END";
+ } else {
+ return "'" + it->first + "->" + it->second + "'";
+ }
+ }
+
+ std::string ToString(const KVMap& data,
+ const KVMap::const_reverse_iterator& it) {
+ if (it == data.rend()) {
+ return "END";
+ } else {
+ return "'" + it->first + "->" + it->second + "'";
+ }
+ }
+
+ std::string ToString(const Iterator* it) {
+ if (!it->Valid()) {
+ return "END";
+ } else {
+ return "'" + it->key().ToString() + "->" + it->value().ToString() + "'";
+ }
+ }
+
+ std::string PickRandomKey(Random* rnd, const std::vector<std::string>& keys) {
+ if (keys.empty()) {
+ return "foo";
+ } else {
+ const int index = rnd->Uniform(keys.size());
+ std::string result = keys[index];
+ switch (rnd->Uniform(3)) {
+ case 0:
+ // Return an existing key
+ break;
+ case 1: {
+ // Attempt to return something smaller than an existing key
+ if (result.size() > 0 && result[result.size()-1] > '\0') {
+ result[result.size()-1]--;
+ }
+ break;
+ }
+ case 2: {
+ // Return something larger than an existing key
+ Increment(options_.comparator, &result);
+ break;
+ }
+ }
+ return result;
+ }
+ }
+
+ // Returns NULL if not running against a DB
+ DB* db() const { return constructor_->db(); }
+
+ private:
+ Options options_;
+ Constructor* constructor_;
+};
+
+// Test empty table/block.
+TEST(Harness, Empty) {
+ for (int i = 0; i < kNumTestArgs; i++) {
+ Init(kTestArgList[i]);
+ Random rnd(test::RandomSeed() + 1);
+ Test(&rnd);
+ }
+}
+
+// Special test for a block with no restart entries. The C++ leveldb
+// code never generates such blocks, but the Java version of leveldb
+// seems to.
+TEST(Harness, ZeroRestartPointsInBlock) {
+ char data[sizeof(uint32_t)];
+ memset(data, 0, sizeof(data));
+ BlockContents contents;
+ contents.data = Slice(data, sizeof(data));
+ contents.cachable = false;
+ contents.heap_allocated = false;
+ Block block(contents);
+ Iterator* iter = block.NewIterator(BytewiseComparator());
+ iter->SeekToFirst();
+ ASSERT_TRUE(!iter->Valid());
+ iter->SeekToLast();
+ ASSERT_TRUE(!iter->Valid());
+ iter->Seek("foo");
+ ASSERT_TRUE(!iter->Valid());
+ delete iter;
+}
+
+// Test the empty key
+TEST(Harness, SimpleEmptyKey) {
+ for (int i = 0; i < kNumTestArgs; i++) {
+ Init(kTestArgList[i]);
+ Random rnd(test::RandomSeed() + 1);
+ Add("", "v");
+ Test(&rnd);
+ }
+}
+
+TEST(Harness, SimpleSingle) {
+ for (int i = 0; i < kNumTestArgs; i++) {
+ Init(kTestArgList[i]);
+ Random rnd(test::RandomSeed() + 2);
+ Add("abc", "v");
+ Test(&rnd);
+ }
+}
+
+TEST(Harness, SimpleMulti) {
+ for (int i = 0; i < kNumTestArgs; i++) {
+ Init(kTestArgList[i]);
+ Random rnd(test::RandomSeed() + 3);
+ Add("abc", "v");
+ Add("abcd", "v");
+ Add("ac", "v2");
+ Test(&rnd);
+ }
+}
+
+TEST(Harness, SimpleSpecialKey) {
+ for (int i = 0; i < kNumTestArgs; i++) {
+ Init(kTestArgList[i]);
+ Random rnd(test::RandomSeed() + 4);
+ Add("\xff\xff", "v3");
+ Test(&rnd);
+ }
+}
+
+TEST(Harness, Randomized) {
+ for (int i = 0; i < kNumTestArgs; i++) {
+ Init(kTestArgList[i]);
+ Random rnd(test::RandomSeed() + 5);
+ for (int num_entries = 0; num_entries < 2000;
+ num_entries += (num_entries < 50 ? 1 : 200)) {
+ if ((num_entries % 10) == 0) {
+ fprintf(stderr, "case %d of %d: num_entries = %d\n",
+ (i + 1), int(kNumTestArgs), num_entries);
+ }
+ for (int e = 0; e < num_entries; e++) {
+ std::string v;
+ Add(test::RandomKey(&rnd, rnd.Skewed(4)),
+ test::RandomString(&rnd, rnd.Skewed(5), &v).ToString());
+ }
+ Test(&rnd);
+ }
+ }
+}
+
+TEST(Harness, RandomizedLongDB) {
+ Random rnd(test::RandomSeed());
+ TestArgs args = { DB_TEST, false, 16 };
+ Init(args);
+ int num_entries = 100000;
+ for (int e = 0; e < num_entries; e++) {
+ std::string v;
+ Add(test::RandomKey(&rnd, rnd.Skewed(4)),
+ test::RandomString(&rnd, rnd.Skewed(5), &v).ToString());
+ }
+ Test(&rnd);
+
+ // We must have created enough data to force merging
+ int files = 0;
+ for (int level = 0; level < config::kNumLevels; level++) {
+ std::string value;
+ char name[100];
+ snprintf(name, sizeof(name), "leveldb.num-files-at-level%d", level);
+ ASSERT_TRUE(db()->GetProperty(name, &value));
+ files += atoi(value.c_str());
+ }
+ ASSERT_GT(files, 0);
+}
+
+class MemTableTest { };
+
+TEST(MemTableTest, Simple) {
+ InternalKeyComparator cmp(BytewiseComparator());
+ MemTable* memtable = new MemTable(cmp);
+ memtable->Ref();
+ WriteBatch batch;
+ WriteBatchInternal::SetSequence(&batch, 100);
+ batch.Put(std::string("k1"), std::string("v1"));
+ batch.Put(std::string("k2"), std::string("v2"));
+ batch.Put(std::string("k3"), std::string("v3"));
+ batch.Put(std::string("largekey"), std::string("vlarge"));
+ ASSERT_TRUE(WriteBatchInternal::InsertInto(&batch, memtable).ok());
+
+ Iterator* iter = memtable->NewIterator();
+ iter->SeekToFirst();
+ while (iter->Valid()) {
+ fprintf(stderr, "key: '%s' -> '%s'\n",
+ iter->key().ToString().c_str(),
+ iter->value().ToString().c_str());
+ iter->Next();
+ }
+
+ delete iter;
+ memtable->Unref();
+}
+
+static bool Between(uint64_t val, uint64_t low, uint64_t high) {
+ bool result = (val >= low) && (val <= high);
+ if (!result) {
+ fprintf(stderr, "Value %llu is not in range [%llu, %llu]\n",
+ (unsigned long long)(val),
+ (unsigned long long)(low),
+ (unsigned long long)(high));
+ }
+ return result;
+}
+
+class TableTest { };
+
+TEST(TableTest, ApproximateOffsetOfPlain) {
+ TableConstructor c(BytewiseComparator());
+ c.Add("k01", "hello");
+ c.Add("k02", "hello2");
+ c.Add("k03", std::string(10000, 'x'));
+ c.Add("k04", std::string(200000, 'x'));
+ c.Add("k05", std::string(300000, 'x'));
+ c.Add("k06", "hello3");
+ c.Add("k07", std::string(100000, 'x'));
+ std::vector<std::string> keys;
+ KVMap kvmap;
+ Options options;
+ options.block_size = 1024;
+ options.compression = kNoCompression;
+ c.Finish(options, &keys, &kvmap);
+
+ ASSERT_TRUE(Between(c.ApproximateOffsetOf("abc"), 0, 0));
+ ASSERT_TRUE(Between(c.ApproximateOffsetOf("k01"), 0, 0));
+ ASSERT_TRUE(Between(c.ApproximateOffsetOf("k01a"), 0, 0));
+ ASSERT_TRUE(Between(c.ApproximateOffsetOf("k02"), 0, 0));
+ ASSERT_TRUE(Between(c.ApproximateOffsetOf("k03"), 0, 0));
+ ASSERT_TRUE(Between(c.ApproximateOffsetOf("k04"), 10000, 11000));
+ ASSERT_TRUE(Between(c.ApproximateOffsetOf("k04a"), 210000, 211000));
+ ASSERT_TRUE(Between(c.ApproximateOffsetOf("k05"), 210000, 211000));
+ ASSERT_TRUE(Between(c.ApproximateOffsetOf("k06"), 510000, 511000));
+ ASSERT_TRUE(Between(c.ApproximateOffsetOf("k07"), 510000, 511000));
+ ASSERT_TRUE(Between(c.ApproximateOffsetOf("xyz"), 610000, 612000));
+
+}
+
+static bool SnappyCompressionSupported() {
+ std::string out;
+ Slice in = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
+ return port::Snappy_Compress(in.data(), in.size(), &out);
+}
+
+TEST(TableTest, ApproximateOffsetOfCompressed) {
+ if (!SnappyCompressionSupported()) {
+ fprintf(stderr, "skipping compression tests\n");
+ return;
+ }
+
+ Random rnd(301);
+ TableConstructor c(BytewiseComparator());
+ std::string tmp;
+ c.Add("k01", "hello");
+ c.Add("k02", test::CompressibleString(&rnd, 0.25, 10000, &tmp));
+ c.Add("k03", "hello3");
+ c.Add("k04", test::CompressibleString(&rnd, 0.25, 10000, &tmp));
+ std::vector<std::string> keys;
+ KVMap kvmap;
+ Options options;
+ options.block_size = 1024;
+ options.compression = kSnappyCompression;
+ c.Finish(options, &keys, &kvmap);
+
+ ASSERT_TRUE(Between(c.ApproximateOffsetOf("abc"), 0, 0));
+ ASSERT_TRUE(Between(c.ApproximateOffsetOf("k01"), 0, 0));
+ ASSERT_TRUE(Between(c.ApproximateOffsetOf("k02"), 0, 0));
+ ASSERT_TRUE(Between(c.ApproximateOffsetOf("k03"), 2000, 3000));
+ ASSERT_TRUE(Between(c.ApproximateOffsetOf("k04"), 2000, 3000));
+ ASSERT_TRUE(Between(c.ApproximateOffsetOf("xyz"), 4000, 6000));
+}
+
+} // namespace leveldb
+
+int main(int argc, char** argv) {
+ return leveldb::test::RunAllTests();
+}
diff --git a/clipper/HyperLevelDB/table/two_level_iterator.cc b/clipper/HyperLevelDB/table/two_level_iterator.cc
new file mode 100644
index 0000000..72d41a2
--- /dev/null
+++ b/clipper/HyperLevelDB/table/two_level_iterator.cc
@@ -0,0 +1,182 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "table/two_level_iterator.h"
+
+#include "hyperleveldb/table.h"
+#include "table/block.h"
+#include "table/format.h"
+#include "table/iterator_wrapper.h"
+
+namespace leveldb {
+
+namespace {
+
+typedef Iterator* (*BlockFunction)(void*, const ReadOptions&, const Slice&);
+
+class TwoLevelIterator: public Iterator {
+ public:
+ TwoLevelIterator(
+ Iterator* index_iter,
+ BlockFunction block_function,
+ void* arg,
+ const ReadOptions& options);
+
+ virtual ~TwoLevelIterator();
+
+ virtual void Seek(const Slice& target);
+ virtual void SeekToFirst();
+ virtual void SeekToLast();
+ virtual void Next();
+ virtual void Prev();
+
+ virtual bool Valid() const {
+ return data_iter_.Valid();
+ }
+ virtual Slice key() const {
+ assert(Valid());
+ return data_iter_.key();
+ }
+ virtual Slice value() const {
+ assert(Valid());
+ return data_iter_.value();
+ }
+ virtual Status status() const {
+ // It'd be nice if status() returned a const Status& instead of a Status
+ if (!index_iter_.status().ok()) {
+ return index_iter_.status();
+ } else if (data_iter_.iter() != NULL && !data_iter_.status().ok()) {
+ return data_iter_.status();
+ } else {
+ return status_;
+ }
+ }
+
+ private:
+ void SaveError(const Status& s) {
+ if (status_.ok() && !s.ok()) status_ = s;
+ }
+ void SkipEmptyDataBlocksForward();
+ void SkipEmptyDataBlocksBackward();
+ void SetDataIterator(Iterator* data_iter);
+ void InitDataBlock();
+
+ BlockFunction block_function_;
+ void* arg_;
+ const ReadOptions options_;
+ Status status_;
+ IteratorWrapper index_iter_;
+ IteratorWrapper data_iter_; // May be NULL
+ // If data_iter_ is non-NULL, then "data_block_handle_" holds the
+ // "index_value" passed to block_function_ to create the data_iter_.
+ std::string data_block_handle_;
+};
+
+TwoLevelIterator::TwoLevelIterator(
+ Iterator* index_iter,
+ BlockFunction block_function,
+ void* arg,
+ const ReadOptions& options)
+ : block_function_(block_function),
+ arg_(arg),
+ options_(options),
+ index_iter_(index_iter),
+ data_iter_(NULL) {
+}
+
+TwoLevelIterator::~TwoLevelIterator() {
+}
+
+void TwoLevelIterator::Seek(const Slice& target) {
+ index_iter_.Seek(target);
+ InitDataBlock();
+ if (data_iter_.iter() != NULL) data_iter_.Seek(target);
+ SkipEmptyDataBlocksForward();
+}
+
+void TwoLevelIterator::SeekToFirst() {
+ index_iter_.SeekToFirst();
+ InitDataBlock();
+ if (data_iter_.iter() != NULL) data_iter_.SeekToFirst();
+ SkipEmptyDataBlocksForward();
+}
+
+void TwoLevelIterator::SeekToLast() {
+ index_iter_.SeekToLast();
+ InitDataBlock();
+ if (data_iter_.iter() != NULL) data_iter_.SeekToLast();
+ SkipEmptyDataBlocksBackward();
+}
+
+void TwoLevelIterator::Next() {
+ assert(Valid());
+ data_iter_.Next();
+ SkipEmptyDataBlocksForward();
+}
+
+void TwoLevelIterator::Prev() {
+ assert(Valid());
+ data_iter_.Prev();
+ SkipEmptyDataBlocksBackward();
+}
+
+
+void TwoLevelIterator::SkipEmptyDataBlocksForward() {
+ while (data_iter_.iter() == NULL || !data_iter_.Valid()) {
+ // Move to next block
+ if (!index_iter_.Valid()) {
+ SetDataIterator(NULL);
+ return;
+ }
+ index_iter_.Next();
+ InitDataBlock();
+ if (data_iter_.iter() != NULL) data_iter_.SeekToFirst();
+ }
+}
+
+void TwoLevelIterator::SkipEmptyDataBlocksBackward() {
+ while (data_iter_.iter() == NULL || !data_iter_.Valid()) {
+ // Move to next block
+ if (!index_iter_.Valid()) {
+ SetDataIterator(NULL);
+ return;
+ }
+ index_iter_.Prev();
+ InitDataBlock();
+ if (data_iter_.iter() != NULL) data_iter_.SeekToLast();
+ }
+}
+
+void TwoLevelIterator::SetDataIterator(Iterator* data_iter) {
+ if (data_iter_.iter() != NULL) SaveError(data_iter_.status());
+ data_iter_.Set(data_iter);
+}
+
+void TwoLevelIterator::InitDataBlock() {
+ if (!index_iter_.Valid()) {
+ SetDataIterator(NULL);
+ } else {
+ Slice handle = index_iter_.value();
+ if (data_iter_.iter() != NULL && handle.compare(data_block_handle_) == 0) {
+ // data_iter_ is already constructed with this iterator, so
+ // no need to change anything
+ } else {
+ Iterator* iter = (*block_function_)(arg_, options_, handle);
+ data_block_handle_.assign(handle.data(), handle.size());
+ SetDataIterator(iter);
+ }
+ }
+}
+
+} // namespace
+
+Iterator* NewTwoLevelIterator(
+ Iterator* index_iter,
+ BlockFunction block_function,
+ void* arg,
+ const ReadOptions& options) {
+ return new TwoLevelIterator(index_iter, block_function, arg, options);
+}
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/table/two_level_iterator.h b/clipper/HyperLevelDB/table/two_level_iterator.h
new file mode 100644
index 0000000..dc737d5
--- /dev/null
+++ b/clipper/HyperLevelDB/table/two_level_iterator.h
@@ -0,0 +1,34 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#ifndef STORAGE_LEVELDB_TABLE_TWO_LEVEL_ITERATOR_H_
+#define STORAGE_LEVELDB_TABLE_TWO_LEVEL_ITERATOR_H_
+
+#include "hyperleveldb/iterator.h"
+
+namespace leveldb {
+
+struct ReadOptions;
+
+// Return a new two level iterator. A two-level iterator contains an
+// index iterator whose values point to a sequence of blocks where
+// each block is itself a sequence of key,value pairs. The returned
+// two-level iterator yields the concatenation of all key/value pairs
+// in the sequence of blocks. Takes ownership of "index_iter" and
+// will delete it when no longer needed.
+//
+// Uses a supplied function to convert an index_iter value into
+// an iterator over the contents of the corresponding block.
+extern Iterator* NewTwoLevelIterator(
+ Iterator* index_iter,
+ Iterator* (*block_function)(
+ void* arg,
+ const ReadOptions& options,
+ const Slice& index_value),
+ void* arg,
+ const ReadOptions& options);
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_TABLE_TWO_LEVEL_ITERATOR_H_
diff --git a/clipper/HyperLevelDB/util/arena.cc b/clipper/HyperLevelDB/util/arena.cc
new file mode 100644
index 0000000..9367f71
--- /dev/null
+++ b/clipper/HyperLevelDB/util/arena.cc
@@ -0,0 +1,68 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "util/arena.h"
+#include <assert.h>
+
+namespace leveldb {
+
+static const int kBlockSize = 4096;
+
+Arena::Arena() {
+ blocks_memory_ = 0;
+ alloc_ptr_ = NULL; // First allocation will allocate a block
+ alloc_bytes_remaining_ = 0;
+}
+
+Arena::~Arena() {
+ for (size_t i = 0; i < blocks_.size(); i++) {
+ delete[] blocks_[i];
+ }
+}
+
+char* Arena::AllocateFallback(size_t bytes) {
+ if (bytes > kBlockSize / 4) {
+ // Object is more than a quarter of our block size. Allocate it separately
+ // to avoid wasting too much space in leftover bytes.
+ char* result = AllocateNewBlock(bytes);
+ return result;
+ }
+
+ // We waste the remaining space in the current block.
+ alloc_ptr_ = AllocateNewBlock(kBlockSize);
+ alloc_bytes_remaining_ = kBlockSize;
+
+ char* result = alloc_ptr_;
+ alloc_ptr_ += bytes;
+ alloc_bytes_remaining_ -= bytes;
+ return result;
+}
+
+char* Arena::AllocateAligned(size_t bytes) {
+ const int align = (sizeof(void*) > 8) ? sizeof(void*) : 8;
+ assert((align & (align-1)) == 0); // Pointer size should be a power of 2
+ size_t current_mod = reinterpret_cast<uintptr_t>(alloc_ptr_) & (align-1);
+ size_t slop = (current_mod == 0 ? 0 : align - current_mod);
+ size_t needed = bytes + slop;
+ char* result;
+ if (needed <= alloc_bytes_remaining_) {
+ result = alloc_ptr_ + slop;
+ alloc_ptr_ += needed;
+ alloc_bytes_remaining_ -= needed;
+ } else {
+ // AllocateFallback always returned aligned memory
+ result = AllocateFallback(bytes);
+ }
+ assert((reinterpret_cast<uintptr_t>(result) & (align-1)) == 0);
+ return result;
+}
+
+char* Arena::AllocateNewBlock(size_t block_bytes) {
+ char* result = new char[block_bytes];
+ blocks_memory_ += block_bytes;
+ blocks_.push_back(result);
+ return result;
+}
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/util/arena.h b/clipper/HyperLevelDB/util/arena.h
new file mode 100644
index 0000000..73bbf1c
--- /dev/null
+++ b/clipper/HyperLevelDB/util/arena.h
@@ -0,0 +1,68 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#ifndef STORAGE_LEVELDB_UTIL_ARENA_H_
+#define STORAGE_LEVELDB_UTIL_ARENA_H_
+
+#include <vector>
+#include <assert.h>
+#include <stddef.h>
+#include <stdint.h>
+
+namespace leveldb {
+
+class Arena {
+ public:
+ Arena();
+ ~Arena();
+
+ // Return a pointer to a newly allocated memory block of "bytes" bytes.
+ char* Allocate(size_t bytes);
+
+ // Allocate memory with the normal alignment guarantees provided by malloc
+ char* AllocateAligned(size_t bytes);
+
+ // Returns an estimate of the total memory usage of data allocated
+ // by the arena (including space allocated but not yet used for user
+ // allocations).
+ size_t MemoryUsage() const {
+ return blocks_memory_ + blocks_.capacity() * sizeof(char*);
+ }
+
+ private:
+ char* AllocateFallback(size_t bytes);
+ char* AllocateNewBlock(size_t block_bytes);
+
+ // Allocation state
+ char* alloc_ptr_;
+ size_t alloc_bytes_remaining_;
+
+ // Array of new[] allocated memory blocks
+ std::vector<char*> blocks_;
+
+ // Bytes of memory in blocks allocated so far
+ size_t blocks_memory_;
+
+ // No copying allowed
+ Arena(const Arena&);
+ void operator=(const Arena&);
+};
+
+inline char* Arena::Allocate(size_t bytes) {
+ // The semantics of what to return are a bit messy if we allow
+ // 0-byte allocations, so we disallow them here (we don't need
+ // them for our internal use).
+ assert(bytes > 0);
+ if (bytes <= alloc_bytes_remaining_) {
+ char* result = alloc_ptr_;
+ alloc_ptr_ += bytes;
+ alloc_bytes_remaining_ -= bytes;
+ return result;
+ }
+ return AllocateFallback(bytes);
+}
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_UTIL_ARENA_H_
diff --git a/clipper/HyperLevelDB/util/arena_test.cc b/clipper/HyperLevelDB/util/arena_test.cc
new file mode 100644
index 0000000..58e870e
--- /dev/null
+++ b/clipper/HyperLevelDB/util/arena_test.cc
@@ -0,0 +1,68 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "util/arena.h"
+
+#include "util/random.h"
+#include "util/testharness.h"
+
+namespace leveldb {
+
+class ArenaTest { };
+
+TEST(ArenaTest, Empty) {
+ Arena arena;
+}
+
+TEST(ArenaTest, Simple) {
+ std::vector<std::pair<size_t, char*> > allocated;
+ Arena arena;
+ const int N = 100000;
+ size_t bytes = 0;
+ Random rnd(301);
+ for (int i = 0; i < N; i++) {
+ size_t s;
+ if (i % (N / 10) == 0) {
+ s = i;
+ } else {
+ s = rnd.OneIn(4000) ? rnd.Uniform(6000) :
+ (rnd.OneIn(10) ? rnd.Uniform(100) : rnd.Uniform(20));
+ }
+ if (s == 0) {
+ // Our arena disallows size 0 allocations.
+ s = 1;
+ }
+ char* r;
+ if (rnd.OneIn(10)) {
+ r = arena.AllocateAligned(s);
+ } else {
+ r = arena.Allocate(s);
+ }
+
+ for (size_t b = 0; b < s; b++) {
+ // Fill the "i"th allocation with a known bit pattern
+ r[b] = i % 256;
+ }
+ bytes += s;
+ allocated.push_back(std::make_pair(s, r));
+ ASSERT_GE(arena.MemoryUsage(), bytes);
+ if (i > N/10) {
+ ASSERT_LE(arena.MemoryUsage(), bytes * 1.10);
+ }
+ }
+ for (size_t i = 0; i < allocated.size(); i++) {
+ size_t num_bytes = allocated[i].first;
+ const char* p = allocated[i].second;
+ for (size_t b = 0; b < num_bytes; b++) {
+ // Check the "i"th allocation for the known bit pattern
+ ASSERT_EQ(int(p[b]) & 0xff, i % 256);
+ }
+ }
+}
+
+} // namespace leveldb
+
+int main(int argc, char** argv) {
+ return leveldb::test::RunAllTests();
+}
diff --git a/clipper/HyperLevelDB/util/bloom.cc b/clipper/HyperLevelDB/util/bloom.cc
new file mode 100644
index 0000000..dd552a4
--- /dev/null
+++ b/clipper/HyperLevelDB/util/bloom.cc
@@ -0,0 +1,95 @@
+// Copyright (c) 2012 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "hyperleveldb/filter_policy.h"
+
+#include "hyperleveldb/slice.h"
+#include "util/hash.h"
+
+namespace leveldb {
+
+namespace {
+static uint32_t BloomHash(const Slice& key) {
+ return Hash(key.data(), key.size(), 0xbc9f1d34);
+}
+
+class BloomFilterPolicy : public FilterPolicy {
+ private:
+ size_t bits_per_key_;
+ size_t k_;
+
+ public:
+ explicit BloomFilterPolicy(int bits_per_key)
+ : bits_per_key_(bits_per_key) {
+ // We intentionally round down to reduce probing cost a little bit
+ k_ = static_cast<size_t>(bits_per_key * 0.69); // 0.69 =~ ln(2)
+ if (k_ < 1) k_ = 1;
+ if (k_ > 30) k_ = 30;
+ }
+
+ virtual const char* Name() const {
+ return "leveldb.BuiltinBloomFilter";
+ }
+
+ virtual void CreateFilter(const Slice* keys, int n, std::string* dst) const {
+ // Compute bloom filter size (in both bits and bytes)
+ size_t bits = n * bits_per_key_;
+
+ // For small n, we can see a very high false positive rate. Fix it
+ // by enforcing a minimum bloom filter length.
+ if (bits < 64) bits = 64;
+
+ size_t bytes = (bits + 7) / 8;
+ bits = bytes * 8;
+
+ const size_t init_size = dst->size();
+ dst->resize(init_size + bytes, 0);
+ dst->push_back(static_cast<char>(k_)); // Remember # of probes in filter
+ char* array = &(*dst)[init_size];
+ for (size_t i = 0; i < n; i++) {
+ // Use double-hashing to generate a sequence of hash values.
+ // See analysis in [Kirsch,Mitzenmacher 2006].
+ uint32_t h = BloomHash(keys[i]);
+ const uint32_t delta = (h >> 17) | (h << 15); // Rotate right 17 bits
+ for (size_t j = 0; j < k_; j++) {
+ const uint32_t bitpos = h % bits;
+ array[bitpos/8] |= (1 << (bitpos % 8));
+ h += delta;
+ }
+ }
+ }
+
+ virtual bool KeyMayMatch(const Slice& key, const Slice& bloom_filter) const {
+ const size_t len = bloom_filter.size();
+ if (len < 2) return false;
+
+ const char* array = bloom_filter.data();
+ const size_t bits = (len - 1) * 8;
+
+ // Use the encoded k so that we can read filters generated by
+ // bloom filters created using different parameters.
+ const size_t k = array[len-1];
+ if (k > 30) {
+ // Reserved for potentially new encodings for short bloom filters.
+ // Consider it a match.
+ return true;
+ }
+
+ uint32_t h = BloomHash(key);
+ const uint32_t delta = (h >> 17) | (h << 15); // Rotate right 17 bits
+ for (size_t j = 0; j < k; j++) {
+ const uint32_t bitpos = h % bits;
+ if ((array[bitpos/8] & (1 << (bitpos % 8))) == 0) return false;
+ h += delta;
+ }
+ return true;
+ }
+};
+}
+
+const FilterPolicy* NewBloomFilterPolicy(int bits_per_key) {
+ return new BloomFilterPolicy(bits_per_key);
+}
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/util/bloom_test.cc b/clipper/HyperLevelDB/util/bloom_test.cc
new file mode 100644
index 0000000..6b7eaab
--- /dev/null
+++ b/clipper/HyperLevelDB/util/bloom_test.cc
@@ -0,0 +1,161 @@
+// Copyright (c) 2012 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "hyperleveldb/filter_policy.h"
+
+#include "util/coding.h"
+#include "util/logging.h"
+#include "util/testharness.h"
+#include "util/testutil.h"
+
+namespace leveldb {
+
+static const int kVerbose = 1;
+
+static Slice Key(int i, char* buffer) {
+ EncodeFixed32(buffer, i);
+ return Slice(buffer, sizeof(uint32_t));
+}
+
+class BloomTest {
+ private:
+ const FilterPolicy* policy_;
+ std::string filter_;
+ std::vector<std::string> keys_;
+
+ public:
+ BloomTest() : policy_(NewBloomFilterPolicy(10)) { }
+
+ ~BloomTest() {
+ delete policy_;
+ }
+
+ void Reset() {
+ keys_.clear();
+ filter_.clear();
+ }
+
+ void Add(const Slice& s) {
+ keys_.push_back(s.ToString());
+ }
+
+ void Build() {
+ std::vector<Slice> key_slices;
+ for (size_t i = 0; i < keys_.size(); i++) {
+ key_slices.push_back(Slice(keys_[i]));
+ }
+ filter_.clear();
+ policy_->CreateFilter(&key_slices[0], key_slices.size(), &filter_);
+ keys_.clear();
+ if (kVerbose >= 2) DumpFilter();
+ }
+
+ size_t FilterSize() const {
+ return filter_.size();
+ }
+
+ void DumpFilter() {
+ fprintf(stderr, "F(");
+ for (size_t i = 0; i+1 < filter_.size(); i++) {
+ const unsigned int c = static_cast<unsigned int>(filter_[i]);
+ for (int j = 0; j < 8; j++) {
+ fprintf(stderr, "%c", (c & (1 <<j)) ? '1' : '.');
+ }
+ }
+ fprintf(stderr, ")\n");
+ }
+
+ bool Matches(const Slice& s) {
+ if (!keys_.empty()) {
+ Build();
+ }
+ return policy_->KeyMayMatch(s, filter_);
+ }
+
+ double FalsePositiveRate() {
+ char buffer[sizeof(int)];
+ int result = 0;
+ for (int i = 0; i < 10000; i++) {
+ if (Matches(Key(i + 1000000000, buffer))) {
+ result++;
+ }
+ }
+ return result / 10000.0;
+ }
+};
+
+TEST(BloomTest, EmptyFilter) {
+ ASSERT_TRUE(! Matches("hello"));
+ ASSERT_TRUE(! Matches("world"));
+}
+
+TEST(BloomTest, Small) {
+ Add("hello");
+ Add("world");
+ ASSERT_TRUE(Matches("hello"));
+ ASSERT_TRUE(Matches("world"));
+ ASSERT_TRUE(! Matches("x"));
+ ASSERT_TRUE(! Matches("foo"));
+}
+
+static int NextLength(int length) {
+ if (length < 10) {
+ length += 1;
+ } else if (length < 100) {
+ length += 10;
+ } else if (length < 1000) {
+ length += 100;
+ } else {
+ length += 1000;
+ }
+ return length;
+}
+
+TEST(BloomTest, VaryingLengths) {
+ char buffer[sizeof(int)];
+
+ // Count number of filters that significantly exceed the false positive rate
+ int mediocre_filters = 0;
+ int good_filters = 0;
+
+ for (int length = 1; length <= 10000; length = NextLength(length)) {
+ Reset();
+ for (int i = 0; i < length; i++) {
+ Add(Key(i, buffer));
+ }
+ Build();
+
+ ASSERT_LE(FilterSize(), static_cast<size_t>((length * 10 / 8) + 40))
+ << length;
+
+ // All added keys must match
+ for (int i = 0; i < length; i++) {
+ ASSERT_TRUE(Matches(Key(i, buffer)))
+ << "Length " << length << "; key " << i;
+ }
+
+ // Check false positive rate
+ double rate = FalsePositiveRate();
+ if (kVerbose >= 1) {
+ fprintf(stderr, "False positives: %5.2f%% @ length = %6d ; bytes = %6d\n",
+ rate*100.0, length, static_cast<int>(FilterSize()));
+ }
+ ASSERT_LE(rate, 0.02); // Must not be over 2%
+ if (rate > 0.0125) mediocre_filters++; // Allowed, but not too often
+ else good_filters++;
+ }
+ if (kVerbose >= 1) {
+ fprintf(stderr, "Filters: %d good, %d mediocre\n",
+ good_filters, mediocre_filters);
+ }
+ ASSERT_LE(mediocre_filters, good_filters/5);
+}
+
+// Different bits-per-byte
+
+} // namespace leveldb
+
+int main(int argc, char** argv) {
+ return leveldb::test::RunAllTests();
+}
diff --git a/clipper/HyperLevelDB/util/cache.cc b/clipper/HyperLevelDB/util/cache.cc
new file mode 100644
index 0000000..d96bae6
--- /dev/null
+++ b/clipper/HyperLevelDB/util/cache.cc
@@ -0,0 +1,325 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include <assert.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "hyperleveldb/cache.h"
+#include "port/port.h"
+#include "util/hash.h"
+#include "util/mutexlock.h"
+
+namespace leveldb {
+
+Cache::~Cache() {
+}
+
+namespace {
+
+// LRU cache implementation
+
+// An entry is a variable length heap-allocated structure. Entries
+// are kept in a circular doubly linked list ordered by access time.
+struct LRUHandle {
+ void* value;
+ void (*deleter)(const Slice&, void* value);
+ LRUHandle* next_hash;
+ LRUHandle* next;
+ LRUHandle* prev;
+ size_t charge; // TODO(opt): Only allow uint32_t?
+ size_t key_length;
+ uint32_t refs;
+ uint32_t hash; // Hash of key(); used for fast sharding and comparisons
+ char key_data[1]; // Beginning of key
+
+ Slice key() const {
+ // For cheaper lookups, we allow a temporary Handle object
+ // to store a pointer to a key in "value".
+ if (next == this) {
+ return *(reinterpret_cast<Slice*>(value));
+ } else {
+ return Slice(key_data, key_length);
+ }
+ }
+};
+
+// We provide our own simple hash table since it removes a whole bunch
+// of porting hacks and is also faster than some of the built-in hash
+// table implementations in some of the compiler/runtime combinations
+// we have tested. E.g., readrandom speeds up by ~5% over the g++
+// 4.4.3's builtin hashtable.
+class HandleTable {
+ public:
+ HandleTable() : length_(0), elems_(0), list_(NULL) { Resize(); }
+ ~HandleTable() { delete[] list_; }
+
+ LRUHandle* Lookup(const Slice& key, uint32_t hash) {
+ return *FindPointer(key, hash);
+ }
+
+ LRUHandle* Insert(LRUHandle* h) {
+ LRUHandle** ptr = FindPointer(h->key(), h->hash);
+ LRUHandle* old = *ptr;
+ h->next_hash = (old == NULL ? NULL : old->next_hash);
+ *ptr = h;
+ if (old == NULL) {
+ ++elems_;
+ if (elems_ > length_) {
+ // Since each cache entry is fairly large, we aim for a small
+ // average linked list length (<= 1).
+ Resize();
+ }
+ }
+ return old;
+ }
+
+ LRUHandle* Remove(const Slice& key, uint32_t hash) {
+ LRUHandle** ptr = FindPointer(key, hash);
+ LRUHandle* result = *ptr;
+ if (result != NULL) {
+ *ptr = result->next_hash;
+ --elems_;
+ }
+ return result;
+ }
+
+ private:
+ // The table consists of an array of buckets where each bucket is
+ // a linked list of cache entries that hash into the bucket.
+ uint32_t length_;
+ uint32_t elems_;
+ LRUHandle** list_;
+
+ // Return a pointer to slot that points to a cache entry that
+ // matches key/hash. If there is no such cache entry, return a
+ // pointer to the trailing slot in the corresponding linked list.
+ LRUHandle** FindPointer(const Slice& key, uint32_t hash) {
+ LRUHandle** ptr = &list_[hash & (length_ - 1)];
+ while (*ptr != NULL &&
+ ((*ptr)->hash != hash || key != (*ptr)->key())) {
+ ptr = &(*ptr)->next_hash;
+ }
+ return ptr;
+ }
+
+ void Resize() {
+ uint32_t new_length = 4;
+ while (new_length < elems_) {
+ new_length *= 2;
+ }
+ LRUHandle** new_list = new LRUHandle*[new_length];
+ memset(new_list, 0, sizeof(new_list[0]) * new_length);
+ uint32_t count = 0;
+ for (uint32_t i = 0; i < length_; i++) {
+ LRUHandle* h = list_[i];
+ while (h != NULL) {
+ LRUHandle* next = h->next_hash;
+ uint32_t hash = h->hash;
+ LRUHandle** ptr = &new_list[hash & (new_length - 1)];
+ h->next_hash = *ptr;
+ *ptr = h;
+ h = next;
+ count++;
+ }
+ }
+ assert(elems_ == count);
+ delete[] list_;
+ list_ = new_list;
+ length_ = new_length;
+ }
+};
+
+// A single shard of sharded cache.
+class LRUCache {
+ public:
+ LRUCache();
+ ~LRUCache();
+
+ // Separate from constructor so caller can easily make an array of LRUCache
+ void SetCapacity(size_t capacity) { capacity_ = capacity; }
+
+ // Like Cache methods, but with an extra "hash" parameter.
+ Cache::Handle* Insert(const Slice& key, uint32_t hash,
+ void* value, size_t charge,
+ void (*deleter)(const Slice& key, void* value));
+ Cache::Handle* Lookup(const Slice& key, uint32_t hash);
+ void Release(Cache::Handle* handle);
+ void Erase(const Slice& key, uint32_t hash);
+
+ private:
+ void LRU_Remove(LRUHandle* e);
+ void LRU_Append(LRUHandle* e);
+ void Unref(LRUHandle* e);
+
+ // Initialized before use.
+ size_t capacity_;
+
+ // mutex_ protects the following state.
+ port::Mutex mutex_;
+ size_t usage_;
+
+ // Dummy head of LRU list.
+ // lru.prev is newest entry, lru.next is oldest entry.
+ LRUHandle lru_;
+
+ HandleTable table_;
+};
+
+LRUCache::LRUCache()
+ : usage_(0) {
+ // Make empty circular linked list
+ lru_.next = &lru_;
+ lru_.prev = &lru_;
+}
+
+LRUCache::~LRUCache() {
+ for (LRUHandle* e = lru_.next; e != &lru_; ) {
+ LRUHandle* next = e->next;
+ assert(e->refs == 1); // Error if caller has an unreleased handle
+ Unref(e);
+ e = next;
+ }
+}
+
+void LRUCache::Unref(LRUHandle* e) {
+ assert(e->refs > 0);
+ e->refs--;
+ if (e->refs <= 0) {
+ usage_ -= e->charge;
+ (*e->deleter)(e->key(), e->value);
+ free(e);
+ }
+}
+
+void LRUCache::LRU_Remove(LRUHandle* e) {
+ e->next->prev = e->prev;
+ e->prev->next = e->next;
+}
+
+void LRUCache::LRU_Append(LRUHandle* e) {
+ // Make "e" newest entry by inserting just before lru_
+ e->next = &lru_;
+ e->prev = lru_.prev;
+ e->prev->next = e;
+ e->next->prev = e;
+}
+
+Cache::Handle* LRUCache::Lookup(const Slice& key, uint32_t hash) {
+ MutexLock l(&mutex_);
+ LRUHandle* e = table_.Lookup(key, hash);
+ if (e != NULL) {
+ e->refs++;
+ LRU_Remove(e);
+ LRU_Append(e);
+ }
+ return reinterpret_cast<Cache::Handle*>(e);
+}
+
+void LRUCache::Release(Cache::Handle* handle) {
+ MutexLock l(&mutex_);
+ Unref(reinterpret_cast<LRUHandle*>(handle));
+}
+
+Cache::Handle* LRUCache::Insert(
+ const Slice& key, uint32_t hash, void* value, size_t charge,
+ void (*deleter)(const Slice& key, void* value)) {
+ MutexLock l(&mutex_);
+
+ LRUHandle* e = reinterpret_cast<LRUHandle*>(
+ malloc(sizeof(LRUHandle)-1 + key.size()));
+ e->value = value;
+ e->deleter = deleter;
+ e->charge = charge;
+ e->key_length = key.size();
+ e->hash = hash;
+ e->refs = 2; // One from LRUCache, one for the returned handle
+ memcpy(e->key_data, key.data(), key.size());
+ LRU_Append(e);
+ usage_ += charge;
+
+ LRUHandle* old = table_.Insert(e);
+ if (old != NULL) {
+ LRU_Remove(old);
+ Unref(old);
+ }
+
+ while (usage_ > capacity_ && lru_.next != &lru_) {
+ LRUHandle* old = lru_.next;
+ LRU_Remove(old);
+ table_.Remove(old->key(), old->hash);
+ Unref(old);
+ }
+
+ return reinterpret_cast<Cache::Handle*>(e);
+}
+
+void LRUCache::Erase(const Slice& key, uint32_t hash) {
+ MutexLock l(&mutex_);
+ LRUHandle* e = table_.Remove(key, hash);
+ if (e != NULL) {
+ LRU_Remove(e);
+ Unref(e);
+ }
+}
+
+static const int kNumShardBits = 4;
+static const int kNumShards = 1 << kNumShardBits;
+
+class ShardedLRUCache : public Cache {
+ private:
+ LRUCache shard_[kNumShards];
+ port::Mutex id_mutex_;
+ uint64_t last_id_;
+
+ static inline uint32_t HashSlice(const Slice& s) {
+ return Hash(s.data(), s.size(), 0);
+ }
+
+ static uint32_t Shard(uint32_t hash) {
+ return hash >> (32 - kNumShardBits);
+ }
+
+ public:
+ explicit ShardedLRUCache(size_t capacity)
+ : last_id_(0) {
+ const size_t per_shard = (capacity + (kNumShards - 1)) / kNumShards;
+ for (int s = 0; s < kNumShards; s++) {
+ shard_[s].SetCapacity(per_shard);
+ }
+ }
+ virtual ~ShardedLRUCache() { }
+ virtual Handle* Insert(const Slice& key, void* value, size_t charge,
+ void (*deleter)(const Slice& key, void* value)) {
+ const uint32_t hash = HashSlice(key);
+ return shard_[Shard(hash)].Insert(key, hash, value, charge, deleter);
+ }
+ virtual Handle* Lookup(const Slice& key) {
+ const uint32_t hash = HashSlice(key);
+ return shard_[Shard(hash)].Lookup(key, hash);
+ }
+ virtual void Release(Handle* handle) {
+ LRUHandle* h = reinterpret_cast<LRUHandle*>(handle);
+ shard_[Shard(h->hash)].Release(handle);
+ }
+ virtual void Erase(const Slice& key) {
+ const uint32_t hash = HashSlice(key);
+ shard_[Shard(hash)].Erase(key, hash);
+ }
+ virtual void* Value(Handle* handle) {
+ return reinterpret_cast<LRUHandle*>(handle)->value;
+ }
+ virtual uint64_t NewId() {
+ MutexLock l(&id_mutex_);
+ return ++(last_id_);
+ }
+};
+
+} // end anonymous namespace
+
+Cache* NewLRUCache(size_t capacity) {
+ return new ShardedLRUCache(capacity);
+}
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/util/cache_test.cc b/clipper/HyperLevelDB/util/cache_test.cc
new file mode 100644
index 0000000..93348df
--- /dev/null
+++ b/clipper/HyperLevelDB/util/cache_test.cc
@@ -0,0 +1,186 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "hyperleveldb/cache.h"
+
+#include <vector>
+#include "util/coding.h"
+#include "util/testharness.h"
+
+namespace leveldb {
+
+// Conversions between numeric keys/values and the types expected by Cache.
+static std::string EncodeKey(int k) {
+ std::string result;
+ PutFixed32(&result, k);
+ return result;
+}
+static int DecodeKey(const Slice& k) {
+ assert(k.size() == 4);
+ return DecodeFixed32(k.data());
+}
+static void* EncodeValue(uintptr_t v) { return reinterpret_cast<void*>(v); }
+static int DecodeValue(void* v) { return reinterpret_cast<uintptr_t>(v); }
+
+class CacheTest {
+ public:
+ static CacheTest* current_;
+
+ static void Deleter(const Slice& key, void* v) {
+ current_->deleted_keys_.push_back(DecodeKey(key));
+ current_->deleted_values_.push_back(DecodeValue(v));
+ }
+
+ static const int kCacheSize = 1000;
+ std::vector<int> deleted_keys_;
+ std::vector<int> deleted_values_;
+ Cache* cache_;
+
+ CacheTest() : cache_(NewLRUCache(kCacheSize)) {
+ current_ = this;
+ }
+
+ ~CacheTest() {
+ delete cache_;
+ }
+
+ int Lookup(int key) {
+ Cache::Handle* handle = cache_->Lookup(EncodeKey(key));
+ const int r = (handle == NULL) ? -1 : DecodeValue(cache_->Value(handle));
+ if (handle != NULL) {
+ cache_->Release(handle);
+ }
+ return r;
+ }
+
+ void Insert(int key, int value, int charge = 1) {
+ cache_->Release(cache_->Insert(EncodeKey(key), EncodeValue(value), charge,
+ &CacheTest::Deleter));
+ }
+
+ void Erase(int key) {
+ cache_->Erase(EncodeKey(key));
+ }
+};
+CacheTest* CacheTest::current_;
+
+TEST(CacheTest, HitAndMiss) {
+ ASSERT_EQ(-1, Lookup(100));
+
+ Insert(100, 101);
+ ASSERT_EQ(101, Lookup(100));
+ ASSERT_EQ(-1, Lookup(200));
+ ASSERT_EQ(-1, Lookup(300));
+
+ Insert(200, 201);
+ ASSERT_EQ(101, Lookup(100));
+ ASSERT_EQ(201, Lookup(200));
+ ASSERT_EQ(-1, Lookup(300));
+
+ Insert(100, 102);
+ ASSERT_EQ(102, Lookup(100));
+ ASSERT_EQ(201, Lookup(200));
+ ASSERT_EQ(-1, Lookup(300));
+
+ ASSERT_EQ(1, deleted_keys_.size());
+ ASSERT_EQ(100, deleted_keys_[0]);
+ ASSERT_EQ(101, deleted_values_[0]);
+}
+
+TEST(CacheTest, Erase) {
+ Erase(200);
+ ASSERT_EQ(0, deleted_keys_.size());
+
+ Insert(100, 101);
+ Insert(200, 201);
+ Erase(100);
+ ASSERT_EQ(-1, Lookup(100));
+ ASSERT_EQ(201, Lookup(200));
+ ASSERT_EQ(1, deleted_keys_.size());
+ ASSERT_EQ(100, deleted_keys_[0]);
+ ASSERT_EQ(101, deleted_values_[0]);
+
+ Erase(100);
+ ASSERT_EQ(-1, Lookup(100));
+ ASSERT_EQ(201, Lookup(200));
+ ASSERT_EQ(1, deleted_keys_.size());
+}
+
+TEST(CacheTest, EntriesArePinned) {
+ Insert(100, 101);
+ Cache::Handle* h1 = cache_->Lookup(EncodeKey(100));
+ ASSERT_EQ(101, DecodeValue(cache_->Value(h1)));
+
+ Insert(100, 102);
+ Cache::Handle* h2 = cache_->Lookup(EncodeKey(100));
+ ASSERT_EQ(102, DecodeValue(cache_->Value(h2)));
+ ASSERT_EQ(0, deleted_keys_.size());
+
+ cache_->Release(h1);
+ ASSERT_EQ(1, deleted_keys_.size());
+ ASSERT_EQ(100, deleted_keys_[0]);
+ ASSERT_EQ(101, deleted_values_[0]);
+
+ Erase(100);
+ ASSERT_EQ(-1, Lookup(100));
+ ASSERT_EQ(1, deleted_keys_.size());
+
+ cache_->Release(h2);
+ ASSERT_EQ(2, deleted_keys_.size());
+ ASSERT_EQ(100, deleted_keys_[1]);
+ ASSERT_EQ(102, deleted_values_[1]);
+}
+
+TEST(CacheTest, EvictionPolicy) {
+ Insert(100, 101);
+ Insert(200, 201);
+
+ // Frequently used entry must be kept around
+ for (int i = 0; i < kCacheSize + 100; i++) {
+ Insert(1000+i, 2000+i);
+ ASSERT_EQ(2000+i, Lookup(1000+i));
+ ASSERT_EQ(101, Lookup(100));
+ }
+ ASSERT_EQ(101, Lookup(100));
+ ASSERT_EQ(-1, Lookup(200));
+}
+
+TEST(CacheTest, HeavyEntries) {
+ // Add a bunch of light and heavy entries and then count the combined
+ // size of items still in the cache, which must be approximately the
+ // same as the total capacity.
+ const int kLight = 1;
+ const int kHeavy = 10;
+ int added = 0;
+ int index = 0;
+ while (added < 2*kCacheSize) {
+ const int weight = (index & 1) ? kLight : kHeavy;
+ Insert(index, 1000+index, weight);
+ added += weight;
+ index++;
+ }
+
+ int cached_weight = 0;
+ for (int i = 0; i < index; i++) {
+ const int weight = (i & 1 ? kLight : kHeavy);
+ int r = Lookup(i);
+ if (r >= 0) {
+ cached_weight += weight;
+ ASSERT_EQ(1000+i, r);
+ }
+ }
+ ASSERT_LE(cached_weight, kCacheSize + kCacheSize/10);
+}
+
+TEST(CacheTest, NewId) {
+ uint64_t a = cache_->NewId();
+ uint64_t b = cache_->NewId();
+ ASSERT_NE(a, b);
+}
+
+} // namespace leveldb
+
+int main(int argc, char** argv) {
+ return leveldb::test::RunAllTests();
+}
diff --git a/clipper/HyperLevelDB/util/coding.cc b/clipper/HyperLevelDB/util/coding.cc
new file mode 100644
index 0000000..21e3186
--- /dev/null
+++ b/clipper/HyperLevelDB/util/coding.cc
@@ -0,0 +1,194 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "util/coding.h"
+
+namespace leveldb {
+
+void EncodeFixed32(char* buf, uint32_t value) {
+ if (port::kLittleEndian) {
+ memcpy(buf, &value, sizeof(value));
+ } else {
+ buf[0] = value & 0xff;
+ buf[1] = (value >> 8) & 0xff;
+ buf[2] = (value >> 16) & 0xff;
+ buf[3] = (value >> 24) & 0xff;
+ }
+}
+
+void EncodeFixed64(char* buf, uint64_t value) {
+ if (port::kLittleEndian) {
+ memcpy(buf, &value, sizeof(value));
+ } else {
+ buf[0] = value & 0xff;
+ buf[1] = (value >> 8) & 0xff;
+ buf[2] = (value >> 16) & 0xff;
+ buf[3] = (value >> 24) & 0xff;
+ buf[4] = (value >> 32) & 0xff;
+ buf[5] = (value >> 40) & 0xff;
+ buf[6] = (value >> 48) & 0xff;
+ buf[7] = (value >> 56) & 0xff;
+ }
+}
+
+void PutFixed32(std::string* dst, uint32_t value) {
+ char buf[sizeof(value)];
+ EncodeFixed32(buf, value);
+ dst->append(buf, sizeof(buf));
+}
+
+void PutFixed64(std::string* dst, uint64_t value) {
+ char buf[sizeof(value)];
+ EncodeFixed64(buf, value);
+ dst->append(buf, sizeof(buf));
+}
+
+char* EncodeVarint32(char* dst, uint32_t v) {
+ // Operate on characters as unsigneds
+ unsigned char* ptr = reinterpret_cast<unsigned char*>(dst);
+ static const int B = 128;
+ if (v < (1<<7)) {
+ *(ptr++) = v;
+ } else if (v < (1<<14)) {
+ *(ptr++) = v | B;
+ *(ptr++) = v>>7;
+ } else if (v < (1<<21)) {
+ *(ptr++) = v | B;
+ *(ptr++) = (v>>7) | B;
+ *(ptr++) = v>>14;
+ } else if (v < (1<<28)) {
+ *(ptr++) = v | B;
+ *(ptr++) = (v>>7) | B;
+ *(ptr++) = (v>>14) | B;
+ *(ptr++) = v>>21;
+ } else {
+ *(ptr++) = v | B;
+ *(ptr++) = (v>>7) | B;
+ *(ptr++) = (v>>14) | B;
+ *(ptr++) = (v>>21) | B;
+ *(ptr++) = v>>28;
+ }
+ return reinterpret_cast<char*>(ptr);
+}
+
+void PutVarint32(std::string* dst, uint32_t v) {
+ char buf[5];
+ char* ptr = EncodeVarint32(buf, v);
+ dst->append(buf, ptr - buf);
+}
+
+char* EncodeVarint64(char* dst, uint64_t v) {
+ static const int B = 128;
+ unsigned char* ptr = reinterpret_cast<unsigned char*>(dst);
+ while (v >= B) {
+ *(ptr++) = (v & (B-1)) | B;
+ v >>= 7;
+ }
+ *(ptr++) = static_cast<unsigned char>(v);
+ return reinterpret_cast<char*>(ptr);
+}
+
+void PutVarint64(std::string* dst, uint64_t v) {
+ char buf[10];
+ char* ptr = EncodeVarint64(buf, v);
+ dst->append(buf, ptr - buf);
+}
+
+void PutLengthPrefixedSlice(std::string* dst, const Slice& value) {
+ PutVarint32(dst, value.size());
+ dst->append(value.data(), value.size());
+}
+
+int VarintLength(uint64_t v) {
+ int len = 1;
+ while (v >= 128) {
+ v >>= 7;
+ len++;
+ }
+ return len;
+}
+
+const char* GetVarint32PtrFallback(const char* p,
+ const char* limit,
+ uint32_t* value) {
+ uint32_t result = 0;
+ for (uint32_t shift = 0; shift <= 28 && p < limit; shift += 7) {
+ uint32_t byte = *(reinterpret_cast<const unsigned char*>(p));
+ p++;
+ if (byte & 128) {
+ // More bytes are present
+ result |= ((byte & 127) << shift);
+ } else {
+ result |= (byte << shift);
+ *value = result;
+ return reinterpret_cast<const char*>(p);
+ }
+ }
+ return NULL;
+}
+
+bool GetVarint32(Slice* input, uint32_t* value) {
+ const char* p = input->data();
+ const char* limit = p + input->size();
+ const char* q = GetVarint32Ptr(p, limit, value);
+ if (q == NULL) {
+ return false;
+ } else {
+ *input = Slice(q, limit - q);
+ return true;
+ }
+}
+
+const char* GetVarint64Ptr(const char* p, const char* limit, uint64_t* value) {
+ uint64_t result = 0;
+ for (uint32_t shift = 0; shift <= 63 && p < limit; shift += 7) {
+ uint64_t byte = *(reinterpret_cast<const unsigned char*>(p));
+ p++;
+ if (byte & 128) {
+ // More bytes are present
+ result |= ((byte & 127) << shift);
+ } else {
+ result |= (byte << shift);
+ *value = result;
+ return reinterpret_cast<const char*>(p);
+ }
+ }
+ return NULL;
+}
+
+bool GetVarint64(Slice* input, uint64_t* value) {
+ const char* p = input->data();
+ const char* limit = p + input->size();
+ const char* q = GetVarint64Ptr(p, limit, value);
+ if (q == NULL) {
+ return false;
+ } else {
+ *input = Slice(q, limit - q);
+ return true;
+ }
+}
+
+const char* GetLengthPrefixedSlice(const char* p, const char* limit,
+ Slice* result) {
+ uint32_t len;
+ p = GetVarint32Ptr(p, limit, &len);
+ if (p == NULL) return NULL;
+ if (p + len > limit) return NULL;
+ *result = Slice(p, len);
+ return p + len;
+}
+
+bool GetLengthPrefixedSlice(Slice* input, Slice* result) {
+ uint32_t len;
+ if (GetVarint32(input, &len) &&
+ input->size() >= len) {
+ *result = Slice(input->data(), len);
+ input->remove_prefix(len);
+ return true;
+ } else {
+ return false;
+ }
+}
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/util/coding.h b/clipper/HyperLevelDB/util/coding.h
new file mode 100644
index 0000000..ec71a51
--- /dev/null
+++ b/clipper/HyperLevelDB/util/coding.h
@@ -0,0 +1,104 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+//
+// Endian-neutral encoding:
+// * Fixed-length numbers are encoded with least-significant byte first
+// * In addition we support variable length "varint" encoding
+// * Strings are encoded prefixed by their length in varint format
+
+#ifndef STORAGE_LEVELDB_UTIL_CODING_H_
+#define STORAGE_LEVELDB_UTIL_CODING_H_
+
+#include <stdint.h>
+#include <string.h>
+#include <string>
+#include "hyperleveldb/slice.h"
+#include "port/port.h"
+
+namespace leveldb {
+
+// Standard Put... routines append to a string
+extern void PutFixed32(std::string* dst, uint32_t value);
+extern void PutFixed64(std::string* dst, uint64_t value);
+extern void PutVarint32(std::string* dst, uint32_t value);
+extern void PutVarint64(std::string* dst, uint64_t value);
+extern void PutLengthPrefixedSlice(std::string* dst, const Slice& value);
+
+// Standard Get... routines parse a value from the beginning of a Slice
+// and advance the slice past the parsed value.
+extern bool GetVarint32(Slice* input, uint32_t* value);
+extern bool GetVarint64(Slice* input, uint64_t* value);
+extern bool GetLengthPrefixedSlice(Slice* input, Slice* result);
+
+// Pointer-based variants of GetVarint... These either store a value
+// in *v and return a pointer just past the parsed value, or return
+// NULL on error. These routines only look at bytes in the range
+// [p..limit-1]
+extern const char* GetVarint32Ptr(const char* p,const char* limit, uint32_t* v);
+extern const char* GetVarint64Ptr(const char* p,const char* limit, uint64_t* v);
+
+// Returns the length of the varint32 or varint64 encoding of "v"
+extern int VarintLength(uint64_t v);
+
+// Lower-level versions of Put... that write directly into a character buffer
+// REQUIRES: dst has enough space for the value being written
+extern void EncodeFixed32(char* dst, uint32_t value);
+extern void EncodeFixed64(char* dst, uint64_t value);
+
+// Lower-level versions of Put... that write directly into a character buffer
+// and return a pointer just past the last byte written.
+// REQUIRES: dst has enough space for the value being written
+extern char* EncodeVarint32(char* dst, uint32_t value);
+extern char* EncodeVarint64(char* dst, uint64_t value);
+
+// Lower-level versions of Get... that read directly from a character buffer
+// without any bounds checking.
+
+inline uint32_t DecodeFixed32(const char* ptr) {
+ if (port::kLittleEndian) {
+ // Load the raw bytes
+ uint32_t result;
+ memcpy(&result, ptr, sizeof(result)); // gcc optimizes this to a plain load
+ return result;
+ } else {
+ return ((static_cast<uint32_t>(static_cast<unsigned char>(ptr[0])))
+ | (static_cast<uint32_t>(static_cast<unsigned char>(ptr[1])) << 8)
+ | (static_cast<uint32_t>(static_cast<unsigned char>(ptr[2])) << 16)
+ | (static_cast<uint32_t>(static_cast<unsigned char>(ptr[3])) << 24));
+ }
+}
+
+inline uint64_t DecodeFixed64(const char* ptr) {
+ if (port::kLittleEndian) {
+ // Load the raw bytes
+ uint64_t result;
+ memcpy(&result, ptr, sizeof(result)); // gcc optimizes this to a plain load
+ return result;
+ } else {
+ uint64_t lo = DecodeFixed32(ptr);
+ uint64_t hi = DecodeFixed32(ptr + 4);
+ return (hi << 32) | lo;
+ }
+}
+
+// Internal routine for use by fallback path of GetVarint32Ptr
+extern const char* GetVarint32PtrFallback(const char* p,
+ const char* limit,
+ uint32_t* value);
+inline const char* GetVarint32Ptr(const char* p,
+ const char* limit,
+ uint32_t* value) {
+ if (p < limit) {
+ uint32_t result = *(reinterpret_cast<const unsigned char*>(p));
+ if ((result & 128) == 0) {
+ *value = result;
+ return p + 1;
+ }
+ }
+ return GetVarint32PtrFallback(p, limit, value);
+}
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_UTIL_CODING_H_
diff --git a/clipper/HyperLevelDB/util/coding_test.cc b/clipper/HyperLevelDB/util/coding_test.cc
new file mode 100644
index 0000000..521541e
--- /dev/null
+++ b/clipper/HyperLevelDB/util/coding_test.cc
@@ -0,0 +1,196 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "util/coding.h"
+
+#include "util/testharness.h"
+
+namespace leveldb {
+
+class Coding { };
+
+TEST(Coding, Fixed32) {
+ std::string s;
+ for (uint32_t v = 0; v < 100000; v++) {
+ PutFixed32(&s, v);
+ }
+
+ const char* p = s.data();
+ for (uint32_t v = 0; v < 100000; v++) {
+ uint32_t actual = DecodeFixed32(p);
+ ASSERT_EQ(v, actual);
+ p += sizeof(uint32_t);
+ }
+}
+
+TEST(Coding, Fixed64) {
+ std::string s;
+ for (int power = 0; power <= 63; power++) {
+ uint64_t v = static_cast<uint64_t>(1) << power;
+ PutFixed64(&s, v - 1);
+ PutFixed64(&s, v + 0);
+ PutFixed64(&s, v + 1);
+ }
+
+ const char* p = s.data();
+ for (int power = 0; power <= 63; power++) {
+ uint64_t v = static_cast<uint64_t>(1) << power;
+ uint64_t actual;
+ actual = DecodeFixed64(p);
+ ASSERT_EQ(v-1, actual);
+ p += sizeof(uint64_t);
+
+ actual = DecodeFixed64(p);
+ ASSERT_EQ(v+0, actual);
+ p += sizeof(uint64_t);
+
+ actual = DecodeFixed64(p);
+ ASSERT_EQ(v+1, actual);
+ p += sizeof(uint64_t);
+ }
+}
+
+// Test that encoding routines generate little-endian encodings
+TEST(Coding, EncodingOutput) {
+ std::string dst;
+ PutFixed32(&dst, 0x04030201);
+ ASSERT_EQ(4, dst.size());
+ ASSERT_EQ(0x01, static_cast<int>(dst[0]));
+ ASSERT_EQ(0x02, static_cast<int>(dst[1]));
+ ASSERT_EQ(0x03, static_cast<int>(dst[2]));
+ ASSERT_EQ(0x04, static_cast<int>(dst[3]));
+
+ dst.clear();
+ PutFixed64(&dst, 0x0807060504030201ull);
+ ASSERT_EQ(8, dst.size());
+ ASSERT_EQ(0x01, static_cast<int>(dst[0]));
+ ASSERT_EQ(0x02, static_cast<int>(dst[1]));
+ ASSERT_EQ(0x03, static_cast<int>(dst[2]));
+ ASSERT_EQ(0x04, static_cast<int>(dst[3]));
+ ASSERT_EQ(0x05, static_cast<int>(dst[4]));
+ ASSERT_EQ(0x06, static_cast<int>(dst[5]));
+ ASSERT_EQ(0x07, static_cast<int>(dst[6]));
+ ASSERT_EQ(0x08, static_cast<int>(dst[7]));
+}
+
+TEST(Coding, Varint32) {
+ std::string s;
+ for (uint32_t i = 0; i < (32 * 32); i++) {
+ uint32_t v = (i / 32) << (i % 32);
+ PutVarint32(&s, v);
+ }
+
+ const char* p = s.data();
+ const char* limit = p + s.size();
+ for (uint32_t i = 0; i < (32 * 32); i++) {
+ uint32_t expected = (i / 32) << (i % 32);
+ uint32_t actual;
+ const char* start = p;
+ p = GetVarint32Ptr(p, limit, &actual);
+ ASSERT_TRUE(p != NULL);
+ ASSERT_EQ(expected, actual);
+ ASSERT_EQ(VarintLength(actual), p - start);
+ }
+ ASSERT_EQ(p, s.data() + s.size());
+}
+
+TEST(Coding, Varint64) {
+ // Construct the list of values to check
+ std::vector<uint64_t> values;
+ // Some special values
+ values.push_back(0);
+ values.push_back(100);
+ values.push_back(~static_cast<uint64_t>(0));
+ values.push_back(~static_cast<uint64_t>(0) - 1);
+ for (uint32_t k = 0; k < 64; k++) {
+ // Test values near powers of two
+ const uint64_t power = 1ull << k;
+ values.push_back(power);
+ values.push_back(power-1);
+ values.push_back(power+1);
+ }
+
+ std::string s;
+ for (size_t i = 0; i < values.size(); i++) {
+ PutVarint64(&s, values[i]);
+ }
+
+ const char* p = s.data();
+ const char* limit = p + s.size();
+ for (size_t i = 0; i < values.size(); i++) {
+ ASSERT_TRUE(p < limit);
+ uint64_t actual;
+ const char* start = p;
+ p = GetVarint64Ptr(p, limit, &actual);
+ ASSERT_TRUE(p != NULL);
+ ASSERT_EQ(values[i], actual);
+ ASSERT_EQ(VarintLength(actual), p - start);
+ }
+ ASSERT_EQ(p, limit);
+
+}
+
+TEST(Coding, Varint32Overflow) {
+ uint32_t result;
+ std::string input("\x81\x82\x83\x84\x85\x11");
+ ASSERT_TRUE(GetVarint32Ptr(input.data(), input.data() + input.size(), &result)
+ == NULL);
+}
+
+TEST(Coding, Varint32Truncation) {
+ uint32_t large_value = (1u << 31) + 100;
+ std::string s;
+ PutVarint32(&s, large_value);
+ uint32_t result;
+ for (size_t len = 0; len < s.size() - 1; len++) {
+ ASSERT_TRUE(GetVarint32Ptr(s.data(), s.data() + len, &result) == NULL);
+ }
+ ASSERT_TRUE(GetVarint32Ptr(s.data(), s.data() + s.size(), &result) != NULL);
+ ASSERT_EQ(large_value, result);
+}
+
+TEST(Coding, Varint64Overflow) {
+ uint64_t result;
+ std::string input("\x81\x82\x83\x84\x85\x81\x82\x83\x84\x85\x11");
+ ASSERT_TRUE(GetVarint64Ptr(input.data(), input.data() + input.size(), &result)
+ == NULL);
+}
+
+TEST(Coding, Varint64Truncation) {
+ uint64_t large_value = (1ull << 63) + 100ull;
+ std::string s;
+ PutVarint64(&s, large_value);
+ uint64_t result;
+ for (size_t len = 0; len < s.size() - 1; len++) {
+ ASSERT_TRUE(GetVarint64Ptr(s.data(), s.data() + len, &result) == NULL);
+ }
+ ASSERT_TRUE(GetVarint64Ptr(s.data(), s.data() + s.size(), &result) != NULL);
+ ASSERT_EQ(large_value, result);
+}
+
+TEST(Coding, Strings) {
+ std::string s;
+ PutLengthPrefixedSlice(&s, Slice(""));
+ PutLengthPrefixedSlice(&s, Slice("foo"));
+ PutLengthPrefixedSlice(&s, Slice("bar"));
+ PutLengthPrefixedSlice(&s, Slice(std::string(200, 'x')));
+
+ Slice input(s);
+ Slice v;
+ ASSERT_TRUE(GetLengthPrefixedSlice(&input, &v));
+ ASSERT_EQ("", v.ToString());
+ ASSERT_TRUE(GetLengthPrefixedSlice(&input, &v));
+ ASSERT_EQ("foo", v.ToString());
+ ASSERT_TRUE(GetLengthPrefixedSlice(&input, &v));
+ ASSERT_EQ("bar", v.ToString());
+ ASSERT_TRUE(GetLengthPrefixedSlice(&input, &v));
+ ASSERT_EQ(std::string(200, 'x'), v.ToString());
+ ASSERT_EQ("", input.ToString());
+}
+
+} // namespace leveldb
+
+int main(int argc, char** argv) {
+ return leveldb::test::RunAllTests();
+}
diff --git a/clipper/HyperLevelDB/util/comparator.cc b/clipper/HyperLevelDB/util/comparator.cc
new file mode 100644
index 0000000..594c97d
--- /dev/null
+++ b/clipper/HyperLevelDB/util/comparator.cc
@@ -0,0 +1,102 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include <algorithm>
+#include <stdint.h>
+#include "hyperleveldb/comparator.h"
+#include "hyperleveldb/slice.h"
+#include "port/port.h"
+#include "util/coding.h"
+#include "util/logging.h"
+
+namespace leveldb {
+
+Comparator::~Comparator() { }
+
+uint64_t Comparator::KeyNum(const Slice& key) const {
+ return 0;
+}
+
+namespace {
+class BytewiseComparatorImpl : public Comparator {
+ public:
+ BytewiseComparatorImpl() { }
+
+ virtual const char* Name() const {
+ return "leveldb.BytewiseComparator";
+ }
+
+ virtual int Compare(const Slice& a, const Slice& b) const {
+ return a.compare(b);
+ }
+
+ virtual void FindShortestSeparator(
+ std::string* start,
+ const Slice& limit) const {
+ // Find length of common prefix
+ size_t min_length = std::min(start->size(), limit.size());
+ size_t diff_index = 0;
+ while ((diff_index < min_length) &&
+ ((*start)[diff_index] == limit[diff_index])) {
+ diff_index++;
+ }
+
+ if (diff_index >= min_length) {
+ // Do not shorten if one string is a prefix of the other
+ } else {
+ uint8_t diff_byte = static_cast<uint8_t>((*start)[diff_index]);
+ if (diff_byte < static_cast<uint8_t>(0xff) &&
+ diff_byte + 1 < static_cast<uint8_t>(limit[diff_index])) {
+ (*start)[diff_index]++;
+ start->resize(diff_index + 1);
+ assert(Compare(*start, limit) < 0);
+ }
+ }
+ }
+
+ virtual void FindShortSuccessor(std::string* key) const {
+ // Find first character that can be incremented
+ size_t n = key->size();
+ for (size_t i = 0; i < n; i++) {
+ const uint8_t byte = (*key)[i];
+ if (byte != static_cast<uint8_t>(0xff)) {
+ (*key)[i] = byte + 1;
+ key->resize(i+1);
+ return;
+ }
+ }
+ // *key is a run of 0xffs. Leave it alone.
+ }
+
+ virtual uint64_t KeyNum(const Slice& key) const {
+ unsigned char buf[sizeof(uint64_t)];
+ memset(buf, 0, sizeof(buf));
+ memmove(buf, key.data(), std::min(key.size(), sizeof(uint64_t)));
+ uint64_t number;
+ number = static_cast<uint64_t>(buf[0]) << 56
+ | static_cast<uint64_t>(buf[1]) << 48
+ | static_cast<uint64_t>(buf[2]) << 40
+ | static_cast<uint64_t>(buf[3]) << 32
+ | static_cast<uint64_t>(buf[4]) << 24
+ | static_cast<uint64_t>(buf[5]) << 16
+ | static_cast<uint64_t>(buf[6]) << 8
+ | static_cast<uint64_t>(buf[7]);
+ return number;
+ }
+};
+} // namespace
+
+static port::OnceType once = LEVELDB_ONCE_INIT;
+static const Comparator* bytewise;
+
+static void InitModule() {
+ bytewise = new BytewiseComparatorImpl;
+}
+
+const Comparator* BytewiseComparator() {
+ port::InitOnce(&once, InitModule);
+ return bytewise;
+}
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/util/crc32c.cc b/clipper/HyperLevelDB/util/crc32c.cc
new file mode 100644
index 0000000..6db9e77
--- /dev/null
+++ b/clipper/HyperLevelDB/util/crc32c.cc
@@ -0,0 +1,332 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+//
+// A portable implementation of crc32c, optimized to handle
+// four bytes at a time.
+
+#include "util/crc32c.h"
+
+#include <stdint.h>
+#include "util/coding.h"
+
+namespace leveldb {
+namespace crc32c {
+
+static const uint32_t table0_[256] = {
+ 0x00000000, 0xf26b8303, 0xe13b70f7, 0x1350f3f4,
+ 0xc79a971f, 0x35f1141c, 0x26a1e7e8, 0xd4ca64eb,
+ 0x8ad958cf, 0x78b2dbcc, 0x6be22838, 0x9989ab3b,
+ 0x4d43cfd0, 0xbf284cd3, 0xac78bf27, 0x5e133c24,
+ 0x105ec76f, 0xe235446c, 0xf165b798, 0x030e349b,
+ 0xd7c45070, 0x25afd373, 0x36ff2087, 0xc494a384,
+ 0x9a879fa0, 0x68ec1ca3, 0x7bbcef57, 0x89d76c54,
+ 0x5d1d08bf, 0xaf768bbc, 0xbc267848, 0x4e4dfb4b,
+ 0x20bd8ede, 0xd2d60ddd, 0xc186fe29, 0x33ed7d2a,
+ 0xe72719c1, 0x154c9ac2, 0x061c6936, 0xf477ea35,
+ 0xaa64d611, 0x580f5512, 0x4b5fa6e6, 0xb93425e5,
+ 0x6dfe410e, 0x9f95c20d, 0x8cc531f9, 0x7eaeb2fa,
+ 0x30e349b1, 0xc288cab2, 0xd1d83946, 0x23b3ba45,
+ 0xf779deae, 0x05125dad, 0x1642ae59, 0xe4292d5a,
+ 0xba3a117e, 0x4851927d, 0x5b016189, 0xa96ae28a,
+ 0x7da08661, 0x8fcb0562, 0x9c9bf696, 0x6ef07595,
+ 0x417b1dbc, 0xb3109ebf, 0xa0406d4b, 0x522bee48,
+ 0x86e18aa3, 0x748a09a0, 0x67dafa54, 0x95b17957,
+ 0xcba24573, 0x39c9c670, 0x2a993584, 0xd8f2b687,
+ 0x0c38d26c, 0xfe53516f, 0xed03a29b, 0x1f682198,
+ 0x5125dad3, 0xa34e59d0, 0xb01eaa24, 0x42752927,
+ 0x96bf4dcc, 0x64d4cecf, 0x77843d3b, 0x85efbe38,
+ 0xdbfc821c, 0x2997011f, 0x3ac7f2eb, 0xc8ac71e8,
+ 0x1c661503, 0xee0d9600, 0xfd5d65f4, 0x0f36e6f7,
+ 0x61c69362, 0x93ad1061, 0x80fde395, 0x72966096,
+ 0xa65c047d, 0x5437877e, 0x4767748a, 0xb50cf789,
+ 0xeb1fcbad, 0x197448ae, 0x0a24bb5a, 0xf84f3859,
+ 0x2c855cb2, 0xdeeedfb1, 0xcdbe2c45, 0x3fd5af46,
+ 0x7198540d, 0x83f3d70e, 0x90a324fa, 0x62c8a7f9,
+ 0xb602c312, 0x44694011, 0x5739b3e5, 0xa55230e6,
+ 0xfb410cc2, 0x092a8fc1, 0x1a7a7c35, 0xe811ff36,
+ 0x3cdb9bdd, 0xceb018de, 0xdde0eb2a, 0x2f8b6829,
+ 0x82f63b78, 0x709db87b, 0x63cd4b8f, 0x91a6c88c,
+ 0x456cac67, 0xb7072f64, 0xa457dc90, 0x563c5f93,
+ 0x082f63b7, 0xfa44e0b4, 0xe9141340, 0x1b7f9043,
+ 0xcfb5f4a8, 0x3dde77ab, 0x2e8e845f, 0xdce5075c,
+ 0x92a8fc17, 0x60c37f14, 0x73938ce0, 0x81f80fe3,
+ 0x55326b08, 0xa759e80b, 0xb4091bff, 0x466298fc,
+ 0x1871a4d8, 0xea1a27db, 0xf94ad42f, 0x0b21572c,
+ 0xdfeb33c7, 0x2d80b0c4, 0x3ed04330, 0xccbbc033,
+ 0xa24bb5a6, 0x502036a5, 0x4370c551, 0xb11b4652,
+ 0x65d122b9, 0x97baa1ba, 0x84ea524e, 0x7681d14d,
+ 0x2892ed69, 0xdaf96e6a, 0xc9a99d9e, 0x3bc21e9d,
+ 0xef087a76, 0x1d63f975, 0x0e330a81, 0xfc588982,
+ 0xb21572c9, 0x407ef1ca, 0x532e023e, 0xa145813d,
+ 0x758fe5d6, 0x87e466d5, 0x94b49521, 0x66df1622,
+ 0x38cc2a06, 0xcaa7a905, 0xd9f75af1, 0x2b9cd9f2,
+ 0xff56bd19, 0x0d3d3e1a, 0x1e6dcdee, 0xec064eed,
+ 0xc38d26c4, 0x31e6a5c7, 0x22b65633, 0xd0ddd530,
+ 0x0417b1db, 0xf67c32d8, 0xe52cc12c, 0x1747422f,
+ 0x49547e0b, 0xbb3ffd08, 0xa86f0efc, 0x5a048dff,
+ 0x8ecee914, 0x7ca56a17, 0x6ff599e3, 0x9d9e1ae0,
+ 0xd3d3e1ab, 0x21b862a8, 0x32e8915c, 0xc083125f,
+ 0x144976b4, 0xe622f5b7, 0xf5720643, 0x07198540,
+ 0x590ab964, 0xab613a67, 0xb831c993, 0x4a5a4a90,
+ 0x9e902e7b, 0x6cfbad78, 0x7fab5e8c, 0x8dc0dd8f,
+ 0xe330a81a, 0x115b2b19, 0x020bd8ed, 0xf0605bee,
+ 0x24aa3f05, 0xd6c1bc06, 0xc5914ff2, 0x37faccf1,
+ 0x69e9f0d5, 0x9b8273d6, 0x88d28022, 0x7ab90321,
+ 0xae7367ca, 0x5c18e4c9, 0x4f48173d, 0xbd23943e,
+ 0xf36e6f75, 0x0105ec76, 0x12551f82, 0xe03e9c81,
+ 0x34f4f86a, 0xc69f7b69, 0xd5cf889d, 0x27a40b9e,
+ 0x79b737ba, 0x8bdcb4b9, 0x988c474d, 0x6ae7c44e,
+ 0xbe2da0a5, 0x4c4623a6, 0x5f16d052, 0xad7d5351
+};
+static const uint32_t table1_[256] = {
+ 0x00000000, 0x13a29877, 0x274530ee, 0x34e7a899,
+ 0x4e8a61dc, 0x5d28f9ab, 0x69cf5132, 0x7a6dc945,
+ 0x9d14c3b8, 0x8eb65bcf, 0xba51f356, 0xa9f36b21,
+ 0xd39ea264, 0xc03c3a13, 0xf4db928a, 0xe7790afd,
+ 0x3fc5f181, 0x2c6769f6, 0x1880c16f, 0x0b225918,
+ 0x714f905d, 0x62ed082a, 0x560aa0b3, 0x45a838c4,
+ 0xa2d13239, 0xb173aa4e, 0x859402d7, 0x96369aa0,
+ 0xec5b53e5, 0xfff9cb92, 0xcb1e630b, 0xd8bcfb7c,
+ 0x7f8be302, 0x6c297b75, 0x58ced3ec, 0x4b6c4b9b,
+ 0x310182de, 0x22a31aa9, 0x1644b230, 0x05e62a47,
+ 0xe29f20ba, 0xf13db8cd, 0xc5da1054, 0xd6788823,
+ 0xac154166, 0xbfb7d911, 0x8b507188, 0x98f2e9ff,
+ 0x404e1283, 0x53ec8af4, 0x670b226d, 0x74a9ba1a,
+ 0x0ec4735f, 0x1d66eb28, 0x298143b1, 0x3a23dbc6,
+ 0xdd5ad13b, 0xcef8494c, 0xfa1fe1d5, 0xe9bd79a2,
+ 0x93d0b0e7, 0x80722890, 0xb4958009, 0xa737187e,
+ 0xff17c604, 0xecb55e73, 0xd852f6ea, 0xcbf06e9d,
+ 0xb19da7d8, 0xa23f3faf, 0x96d89736, 0x857a0f41,
+ 0x620305bc, 0x71a19dcb, 0x45463552, 0x56e4ad25,
+ 0x2c896460, 0x3f2bfc17, 0x0bcc548e, 0x186eccf9,
+ 0xc0d23785, 0xd370aff2, 0xe797076b, 0xf4359f1c,
+ 0x8e585659, 0x9dface2e, 0xa91d66b7, 0xbabffec0,
+ 0x5dc6f43d, 0x4e646c4a, 0x7a83c4d3, 0x69215ca4,
+ 0x134c95e1, 0x00ee0d96, 0x3409a50f, 0x27ab3d78,
+ 0x809c2506, 0x933ebd71, 0xa7d915e8, 0xb47b8d9f,
+ 0xce1644da, 0xddb4dcad, 0xe9537434, 0xfaf1ec43,
+ 0x1d88e6be, 0x0e2a7ec9, 0x3acdd650, 0x296f4e27,
+ 0x53028762, 0x40a01f15, 0x7447b78c, 0x67e52ffb,
+ 0xbf59d487, 0xacfb4cf0, 0x981ce469, 0x8bbe7c1e,
+ 0xf1d3b55b, 0xe2712d2c, 0xd69685b5, 0xc5341dc2,
+ 0x224d173f, 0x31ef8f48, 0x050827d1, 0x16aabfa6,
+ 0x6cc776e3, 0x7f65ee94, 0x4b82460d, 0x5820de7a,
+ 0xfbc3faf9, 0xe861628e, 0xdc86ca17, 0xcf245260,
+ 0xb5499b25, 0xa6eb0352, 0x920cabcb, 0x81ae33bc,
+ 0x66d73941, 0x7575a136, 0x419209af, 0x523091d8,
+ 0x285d589d, 0x3bffc0ea, 0x0f186873, 0x1cbaf004,
+ 0xc4060b78, 0xd7a4930f, 0xe3433b96, 0xf0e1a3e1,
+ 0x8a8c6aa4, 0x992ef2d3, 0xadc95a4a, 0xbe6bc23d,
+ 0x5912c8c0, 0x4ab050b7, 0x7e57f82e, 0x6df56059,
+ 0x1798a91c, 0x043a316b, 0x30dd99f2, 0x237f0185,
+ 0x844819fb, 0x97ea818c, 0xa30d2915, 0xb0afb162,
+ 0xcac27827, 0xd960e050, 0xed8748c9, 0xfe25d0be,
+ 0x195cda43, 0x0afe4234, 0x3e19eaad, 0x2dbb72da,
+ 0x57d6bb9f, 0x447423e8, 0x70938b71, 0x63311306,
+ 0xbb8de87a, 0xa82f700d, 0x9cc8d894, 0x8f6a40e3,
+ 0xf50789a6, 0xe6a511d1, 0xd242b948, 0xc1e0213f,
+ 0x26992bc2, 0x353bb3b5, 0x01dc1b2c, 0x127e835b,
+ 0x68134a1e, 0x7bb1d269, 0x4f567af0, 0x5cf4e287,
+ 0x04d43cfd, 0x1776a48a, 0x23910c13, 0x30339464,
+ 0x4a5e5d21, 0x59fcc556, 0x6d1b6dcf, 0x7eb9f5b8,
+ 0x99c0ff45, 0x8a626732, 0xbe85cfab, 0xad2757dc,
+ 0xd74a9e99, 0xc4e806ee, 0xf00fae77, 0xe3ad3600,
+ 0x3b11cd7c, 0x28b3550b, 0x1c54fd92, 0x0ff665e5,
+ 0x759baca0, 0x663934d7, 0x52de9c4e, 0x417c0439,
+ 0xa6050ec4, 0xb5a796b3, 0x81403e2a, 0x92e2a65d,
+ 0xe88f6f18, 0xfb2df76f, 0xcfca5ff6, 0xdc68c781,
+ 0x7b5fdfff, 0x68fd4788, 0x5c1aef11, 0x4fb87766,
+ 0x35d5be23, 0x26772654, 0x12908ecd, 0x013216ba,
+ 0xe64b1c47, 0xf5e98430, 0xc10e2ca9, 0xd2acb4de,
+ 0xa8c17d9b, 0xbb63e5ec, 0x8f844d75, 0x9c26d502,
+ 0x449a2e7e, 0x5738b609, 0x63df1e90, 0x707d86e7,
+ 0x0a104fa2, 0x19b2d7d5, 0x2d557f4c, 0x3ef7e73b,
+ 0xd98eedc6, 0xca2c75b1, 0xfecbdd28, 0xed69455f,
+ 0x97048c1a, 0x84a6146d, 0xb041bcf4, 0xa3e32483
+};
+static const uint32_t table2_[256] = {
+ 0x00000000, 0xa541927e, 0x4f6f520d, 0xea2ec073,
+ 0x9edea41a, 0x3b9f3664, 0xd1b1f617, 0x74f06469,
+ 0x38513ec5, 0x9d10acbb, 0x773e6cc8, 0xd27ffeb6,
+ 0xa68f9adf, 0x03ce08a1, 0xe9e0c8d2, 0x4ca15aac,
+ 0x70a27d8a, 0xd5e3eff4, 0x3fcd2f87, 0x9a8cbdf9,
+ 0xee7cd990, 0x4b3d4bee, 0xa1138b9d, 0x045219e3,
+ 0x48f3434f, 0xedb2d131, 0x079c1142, 0xa2dd833c,
+ 0xd62de755, 0x736c752b, 0x9942b558, 0x3c032726,
+ 0xe144fb14, 0x4405696a, 0xae2ba919, 0x0b6a3b67,
+ 0x7f9a5f0e, 0xdadbcd70, 0x30f50d03, 0x95b49f7d,
+ 0xd915c5d1, 0x7c5457af, 0x967a97dc, 0x333b05a2,
+ 0x47cb61cb, 0xe28af3b5, 0x08a433c6, 0xade5a1b8,
+ 0x91e6869e, 0x34a714e0, 0xde89d493, 0x7bc846ed,
+ 0x0f382284, 0xaa79b0fa, 0x40577089, 0xe516e2f7,
+ 0xa9b7b85b, 0x0cf62a25, 0xe6d8ea56, 0x43997828,
+ 0x37691c41, 0x92288e3f, 0x78064e4c, 0xdd47dc32,
+ 0xc76580d9, 0x622412a7, 0x880ad2d4, 0x2d4b40aa,
+ 0x59bb24c3, 0xfcfab6bd, 0x16d476ce, 0xb395e4b0,
+ 0xff34be1c, 0x5a752c62, 0xb05bec11, 0x151a7e6f,
+ 0x61ea1a06, 0xc4ab8878, 0x2e85480b, 0x8bc4da75,
+ 0xb7c7fd53, 0x12866f2d, 0xf8a8af5e, 0x5de93d20,
+ 0x29195949, 0x8c58cb37, 0x66760b44, 0xc337993a,
+ 0x8f96c396, 0x2ad751e8, 0xc0f9919b, 0x65b803e5,
+ 0x1148678c, 0xb409f5f2, 0x5e273581, 0xfb66a7ff,
+ 0x26217bcd, 0x8360e9b3, 0x694e29c0, 0xcc0fbbbe,
+ 0xb8ffdfd7, 0x1dbe4da9, 0xf7908dda, 0x52d11fa4,
+ 0x1e704508, 0xbb31d776, 0x511f1705, 0xf45e857b,
+ 0x80aee112, 0x25ef736c, 0xcfc1b31f, 0x6a802161,
+ 0x56830647, 0xf3c29439, 0x19ec544a, 0xbcadc634,
+ 0xc85da25d, 0x6d1c3023, 0x8732f050, 0x2273622e,
+ 0x6ed23882, 0xcb93aafc, 0x21bd6a8f, 0x84fcf8f1,
+ 0xf00c9c98, 0x554d0ee6, 0xbf63ce95, 0x1a225ceb,
+ 0x8b277743, 0x2e66e53d, 0xc448254e, 0x6109b730,
+ 0x15f9d359, 0xb0b84127, 0x5a968154, 0xffd7132a,
+ 0xb3764986, 0x1637dbf8, 0xfc191b8b, 0x595889f5,
+ 0x2da8ed9c, 0x88e97fe2, 0x62c7bf91, 0xc7862def,
+ 0xfb850ac9, 0x5ec498b7, 0xb4ea58c4, 0x11abcaba,
+ 0x655baed3, 0xc01a3cad, 0x2a34fcde, 0x8f756ea0,
+ 0xc3d4340c, 0x6695a672, 0x8cbb6601, 0x29faf47f,
+ 0x5d0a9016, 0xf84b0268, 0x1265c21b, 0xb7245065,
+ 0x6a638c57, 0xcf221e29, 0x250cde5a, 0x804d4c24,
+ 0xf4bd284d, 0x51fcba33, 0xbbd27a40, 0x1e93e83e,
+ 0x5232b292, 0xf77320ec, 0x1d5de09f, 0xb81c72e1,
+ 0xccec1688, 0x69ad84f6, 0x83834485, 0x26c2d6fb,
+ 0x1ac1f1dd, 0xbf8063a3, 0x55aea3d0, 0xf0ef31ae,
+ 0x841f55c7, 0x215ec7b9, 0xcb7007ca, 0x6e3195b4,
+ 0x2290cf18, 0x87d15d66, 0x6dff9d15, 0xc8be0f6b,
+ 0xbc4e6b02, 0x190ff97c, 0xf321390f, 0x5660ab71,
+ 0x4c42f79a, 0xe90365e4, 0x032da597, 0xa66c37e9,
+ 0xd29c5380, 0x77ddc1fe, 0x9df3018d, 0x38b293f3,
+ 0x7413c95f, 0xd1525b21, 0x3b7c9b52, 0x9e3d092c,
+ 0xeacd6d45, 0x4f8cff3b, 0xa5a23f48, 0x00e3ad36,
+ 0x3ce08a10, 0x99a1186e, 0x738fd81d, 0xd6ce4a63,
+ 0xa23e2e0a, 0x077fbc74, 0xed517c07, 0x4810ee79,
+ 0x04b1b4d5, 0xa1f026ab, 0x4bdee6d8, 0xee9f74a6,
+ 0x9a6f10cf, 0x3f2e82b1, 0xd50042c2, 0x7041d0bc,
+ 0xad060c8e, 0x08479ef0, 0xe2695e83, 0x4728ccfd,
+ 0x33d8a894, 0x96993aea, 0x7cb7fa99, 0xd9f668e7,
+ 0x9557324b, 0x3016a035, 0xda386046, 0x7f79f238,
+ 0x0b899651, 0xaec8042f, 0x44e6c45c, 0xe1a75622,
+ 0xdda47104, 0x78e5e37a, 0x92cb2309, 0x378ab177,
+ 0x437ad51e, 0xe63b4760, 0x0c158713, 0xa954156d,
+ 0xe5f54fc1, 0x40b4ddbf, 0xaa9a1dcc, 0x0fdb8fb2,
+ 0x7b2bebdb, 0xde6a79a5, 0x3444b9d6, 0x91052ba8
+};
+static const uint32_t table3_[256] = {
+ 0x00000000, 0xdd45aab8, 0xbf672381, 0x62228939,
+ 0x7b2231f3, 0xa6679b4b, 0xc4451272, 0x1900b8ca,
+ 0xf64463e6, 0x2b01c95e, 0x49234067, 0x9466eadf,
+ 0x8d665215, 0x5023f8ad, 0x32017194, 0xef44db2c,
+ 0xe964b13d, 0x34211b85, 0x560392bc, 0x8b463804,
+ 0x924680ce, 0x4f032a76, 0x2d21a34f, 0xf06409f7,
+ 0x1f20d2db, 0xc2657863, 0xa047f15a, 0x7d025be2,
+ 0x6402e328, 0xb9474990, 0xdb65c0a9, 0x06206a11,
+ 0xd725148b, 0x0a60be33, 0x6842370a, 0xb5079db2,
+ 0xac072578, 0x71428fc0, 0x136006f9, 0xce25ac41,
+ 0x2161776d, 0xfc24ddd5, 0x9e0654ec, 0x4343fe54,
+ 0x5a43469e, 0x8706ec26, 0xe524651f, 0x3861cfa7,
+ 0x3e41a5b6, 0xe3040f0e, 0x81268637, 0x5c632c8f,
+ 0x45639445, 0x98263efd, 0xfa04b7c4, 0x27411d7c,
+ 0xc805c650, 0x15406ce8, 0x7762e5d1, 0xaa274f69,
+ 0xb327f7a3, 0x6e625d1b, 0x0c40d422, 0xd1057e9a,
+ 0xaba65fe7, 0x76e3f55f, 0x14c17c66, 0xc984d6de,
+ 0xd0846e14, 0x0dc1c4ac, 0x6fe34d95, 0xb2a6e72d,
+ 0x5de23c01, 0x80a796b9, 0xe2851f80, 0x3fc0b538,
+ 0x26c00df2, 0xfb85a74a, 0x99a72e73, 0x44e284cb,
+ 0x42c2eeda, 0x9f874462, 0xfda5cd5b, 0x20e067e3,
+ 0x39e0df29, 0xe4a57591, 0x8687fca8, 0x5bc25610,
+ 0xb4868d3c, 0x69c32784, 0x0be1aebd, 0xd6a40405,
+ 0xcfa4bccf, 0x12e11677, 0x70c39f4e, 0xad8635f6,
+ 0x7c834b6c, 0xa1c6e1d4, 0xc3e468ed, 0x1ea1c255,
+ 0x07a17a9f, 0xdae4d027, 0xb8c6591e, 0x6583f3a6,
+ 0x8ac7288a, 0x57828232, 0x35a00b0b, 0xe8e5a1b3,
+ 0xf1e51979, 0x2ca0b3c1, 0x4e823af8, 0x93c79040,
+ 0x95e7fa51, 0x48a250e9, 0x2a80d9d0, 0xf7c57368,
+ 0xeec5cba2, 0x3380611a, 0x51a2e823, 0x8ce7429b,
+ 0x63a399b7, 0xbee6330f, 0xdcc4ba36, 0x0181108e,
+ 0x1881a844, 0xc5c402fc, 0xa7e68bc5, 0x7aa3217d,
+ 0x52a0c93f, 0x8fe56387, 0xedc7eabe, 0x30824006,
+ 0x2982f8cc, 0xf4c75274, 0x96e5db4d, 0x4ba071f5,
+ 0xa4e4aad9, 0x79a10061, 0x1b838958, 0xc6c623e0,
+ 0xdfc69b2a, 0x02833192, 0x60a1b8ab, 0xbde41213,
+ 0xbbc47802, 0x6681d2ba, 0x04a35b83, 0xd9e6f13b,
+ 0xc0e649f1, 0x1da3e349, 0x7f816a70, 0xa2c4c0c8,
+ 0x4d801be4, 0x90c5b15c, 0xf2e73865, 0x2fa292dd,
+ 0x36a22a17, 0xebe780af, 0x89c50996, 0x5480a32e,
+ 0x8585ddb4, 0x58c0770c, 0x3ae2fe35, 0xe7a7548d,
+ 0xfea7ec47, 0x23e246ff, 0x41c0cfc6, 0x9c85657e,
+ 0x73c1be52, 0xae8414ea, 0xcca69dd3, 0x11e3376b,
+ 0x08e38fa1, 0xd5a62519, 0xb784ac20, 0x6ac10698,
+ 0x6ce16c89, 0xb1a4c631, 0xd3864f08, 0x0ec3e5b0,
+ 0x17c35d7a, 0xca86f7c2, 0xa8a47efb, 0x75e1d443,
+ 0x9aa50f6f, 0x47e0a5d7, 0x25c22cee, 0xf8878656,
+ 0xe1873e9c, 0x3cc29424, 0x5ee01d1d, 0x83a5b7a5,
+ 0xf90696d8, 0x24433c60, 0x4661b559, 0x9b241fe1,
+ 0x8224a72b, 0x5f610d93, 0x3d4384aa, 0xe0062e12,
+ 0x0f42f53e, 0xd2075f86, 0xb025d6bf, 0x6d607c07,
+ 0x7460c4cd, 0xa9256e75, 0xcb07e74c, 0x16424df4,
+ 0x106227e5, 0xcd278d5d, 0xaf050464, 0x7240aedc,
+ 0x6b401616, 0xb605bcae, 0xd4273597, 0x09629f2f,
+ 0xe6264403, 0x3b63eebb, 0x59416782, 0x8404cd3a,
+ 0x9d0475f0, 0x4041df48, 0x22635671, 0xff26fcc9,
+ 0x2e238253, 0xf36628eb, 0x9144a1d2, 0x4c010b6a,
+ 0x5501b3a0, 0x88441918, 0xea669021, 0x37233a99,
+ 0xd867e1b5, 0x05224b0d, 0x6700c234, 0xba45688c,
+ 0xa345d046, 0x7e007afe, 0x1c22f3c7, 0xc167597f,
+ 0xc747336e, 0x1a0299d6, 0x782010ef, 0xa565ba57,
+ 0xbc65029d, 0x6120a825, 0x0302211c, 0xde478ba4,
+ 0x31035088, 0xec46fa30, 0x8e647309, 0x5321d9b1,
+ 0x4a21617b, 0x9764cbc3, 0xf54642fa, 0x2803e842
+};
+
+// Used to fetch a naturally-aligned 32-bit word in little endian byte-order
+static inline uint32_t LE_LOAD32(const uint8_t *p) {
+ return DecodeFixed32(reinterpret_cast<const char*>(p));
+}
+
+uint32_t Extend(uint32_t crc, const char* buf, size_t size) {
+ const uint8_t *p = reinterpret_cast<const uint8_t *>(buf);
+ const uint8_t *e = p + size;
+ uint32_t l = crc ^ 0xffffffffu;
+
+#define STEP1 do { \
+ int c = (l & 0xff) ^ *p++; \
+ l = table0_[c] ^ (l >> 8); \
+} while (0)
+#define STEP4 do { \
+ uint32_t c = l ^ LE_LOAD32(p); \
+ p += 4; \
+ l = table3_[c & 0xff] ^ \
+ table2_[(c >> 8) & 0xff] ^ \
+ table1_[(c >> 16) & 0xff] ^ \
+ table0_[c >> 24]; \
+} while (0)
+
+ // Point x at first 4-byte aligned byte in string. This might be
+ // just past the end of the string.
+ const uintptr_t pval = reinterpret_cast<uintptr_t>(p);
+ const uint8_t* x = reinterpret_cast<const uint8_t*>(((pval + 3) >> 2) << 2);
+ if (x <= e) {
+ // Process bytes until finished or p is 4-byte aligned
+ while (p != x) {
+ STEP1;
+ }
+ }
+ // Process bytes 16 at a time
+ while ((e-p) >= 16) {
+ STEP4; STEP4; STEP4; STEP4;
+ }
+ // Process bytes 4 at a time
+ while ((e-p) >= 4) {
+ STEP4;
+ }
+ // Process the last few bytes
+ while (p != e) {
+ STEP1;
+ }
+#undef STEP4
+#undef STEP1
+ return l ^ 0xffffffffu;
+}
+
+} // namespace crc32c
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/util/crc32c.h b/clipper/HyperLevelDB/util/crc32c.h
new file mode 100644
index 0000000..1d7e5c0
--- /dev/null
+++ b/clipper/HyperLevelDB/util/crc32c.h
@@ -0,0 +1,45 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#ifndef STORAGE_LEVELDB_UTIL_CRC32C_H_
+#define STORAGE_LEVELDB_UTIL_CRC32C_H_
+
+#include <stddef.h>
+#include <stdint.h>
+
+namespace leveldb {
+namespace crc32c {
+
+// Return the crc32c of concat(A, data[0,n-1]) where init_crc is the
+// crc32c of some string A. Extend() is often used to maintain the
+// crc32c of a stream of data.
+extern uint32_t Extend(uint32_t init_crc, const char* data, size_t n);
+
+// Return the crc32c of data[0,n-1]
+inline uint32_t Value(const char* data, size_t n) {
+ return Extend(0, data, n);
+}
+
+static const uint32_t kMaskDelta = 0xa282ead8ul;
+
+// Return a masked representation of crc.
+//
+// Motivation: it is problematic to compute the CRC of a string that
+// contains embedded CRCs. Therefore we recommend that CRCs stored
+// somewhere (e.g., in files) should be masked before being stored.
+inline uint32_t Mask(uint32_t crc) {
+ // Rotate right by 15 bits and add a constant.
+ return ((crc >> 15) | (crc << 17)) + kMaskDelta;
+}
+
+// Return the crc whose masked representation is masked_crc.
+inline uint32_t Unmask(uint32_t masked_crc) {
+ uint32_t rot = masked_crc - kMaskDelta;
+ return ((rot >> 17) | (rot << 15));
+}
+
+} // namespace crc32c
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_UTIL_CRC32C_H_
diff --git a/clipper/HyperLevelDB/util/crc32c_test.cc b/clipper/HyperLevelDB/util/crc32c_test.cc
new file mode 100644
index 0000000..4b957ee
--- /dev/null
+++ b/clipper/HyperLevelDB/util/crc32c_test.cc
@@ -0,0 +1,72 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "util/crc32c.h"
+#include "util/testharness.h"
+
+namespace leveldb {
+namespace crc32c {
+
+class CRC { };
+
+TEST(CRC, StandardResults) {
+ // From rfc3720 section B.4.
+ char buf[32];
+
+ memset(buf, 0, sizeof(buf));
+ ASSERT_EQ(0x8a9136aa, Value(buf, sizeof(buf)));
+
+ memset(buf, 0xff, sizeof(buf));
+ ASSERT_EQ(0x62a8ab43, Value(buf, sizeof(buf)));
+
+ for (int i = 0; i < 32; i++) {
+ buf[i] = i;
+ }
+ ASSERT_EQ(0x46dd794e, Value(buf, sizeof(buf)));
+
+ for (int i = 0; i < 32; i++) {
+ buf[i] = 31 - i;
+ }
+ ASSERT_EQ(0x113fdb5c, Value(buf, sizeof(buf)));
+
+ unsigned char data[48] = {
+ 0x01, 0xc0, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x14, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x04, 0x00,
+ 0x00, 0x00, 0x00, 0x14,
+ 0x00, 0x00, 0x00, 0x18,
+ 0x28, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ };
+ ASSERT_EQ(0xd9963a56, Value(reinterpret_cast<char*>(data), sizeof(data)));
+}
+
+TEST(CRC, Values) {
+ ASSERT_NE(Value("a", 1), Value("foo", 3));
+}
+
+TEST(CRC, Extend) {
+ ASSERT_EQ(Value("hello world", 11),
+ Extend(Value("hello ", 6), "world", 5));
+}
+
+TEST(CRC, Mask) {
+ uint32_t crc = Value("foo", 3);
+ ASSERT_NE(crc, Mask(crc));
+ ASSERT_NE(crc, Mask(Mask(crc)));
+ ASSERT_EQ(crc, Unmask(Mask(crc)));
+ ASSERT_EQ(crc, Unmask(Unmask(Mask(Mask(crc)))));
+}
+
+} // namespace crc32c
+} // namespace leveldb
+
+int main(int argc, char** argv) {
+ return leveldb::test::RunAllTests();
+}
diff --git a/clipper/HyperLevelDB/util/env.cc b/clipper/HyperLevelDB/util/env.cc
new file mode 100644
index 0000000..33062fb
--- /dev/null
+++ b/clipper/HyperLevelDB/util/env.cc
@@ -0,0 +1,96 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "hyperleveldb/env.h"
+
+namespace leveldb {
+
+Env::~Env() {
+}
+
+SequentialFile::~SequentialFile() {
+}
+
+RandomAccessFile::~RandomAccessFile() {
+}
+
+WritableFile::~WritableFile() {
+}
+
+Logger::~Logger() {
+}
+
+FileLock::~FileLock() {
+}
+
+void Log(Logger* info_log, const char* format, ...) {
+ if (info_log != NULL) {
+ va_list ap;
+ va_start(ap, format);
+ info_log->Logv(format, ap);
+ va_end(ap);
+ }
+}
+
+static Status DoWriteStringToFile(Env* env, const Slice& data,
+ const std::string& fname,
+ bool should_sync) {
+ WritableFile* file;
+ Status s = env->NewWritableFile(fname, &file);
+ if (!s.ok()) {
+ return s;
+ }
+ s = file->Append(data);
+ if (s.ok() && should_sync) {
+ s = file->Sync();
+ }
+ if (s.ok()) {
+ s = file->Close();
+ }
+ delete file; // Will auto-close if we did not close above
+ if (!s.ok()) {
+ env->DeleteFile(fname);
+ }
+ return s;
+}
+
+Status WriteStringToFile(Env* env, const Slice& data,
+ const std::string& fname) {
+ return DoWriteStringToFile(env, data, fname, false);
+}
+
+Status WriteStringToFileSync(Env* env, const Slice& data,
+ const std::string& fname) {
+ return DoWriteStringToFile(env, data, fname, true);
+}
+
+Status ReadFileToString(Env* env, const std::string& fname, std::string* data) {
+ data->clear();
+ SequentialFile* file;
+ Status s = env->NewSequentialFile(fname, &file);
+ if (!s.ok()) {
+ return s;
+ }
+ static const int kBufferSize = 8192;
+ char* space = new char[kBufferSize];
+ while (true) {
+ Slice fragment;
+ s = file->Read(kBufferSize, &fragment, space);
+ if (!s.ok()) {
+ break;
+ }
+ data->append(fragment.data(), fragment.size());
+ if (fragment.empty()) {
+ break;
+ }
+ }
+ delete[] space;
+ delete file;
+ return s;
+}
+
+EnvWrapper::~EnvWrapper() {
+}
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/util/env_posix.cc b/clipper/HyperLevelDB/util/env_posix.cc
new file mode 100644
index 0000000..5266c09
--- /dev/null
+++ b/clipper/HyperLevelDB/util/env_posix.cc
@@ -0,0 +1,778 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include <deque>
+#include <set>
+#include <dirent.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <pthread.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/mman.h>
+#include <sys/stat.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <time.h>
+#include <unistd.h>
+#if defined(LEVELDB_PLATFORM_ANDROID)
+#include <sys/stat.h>
+#endif
+#include "hyperleveldb/env.h"
+#include "hyperleveldb/slice.h"
+#include "port/port.h"
+#include "util/logging.h"
+#include "util/mutexlock.h"
+#include "util/posix_logger.h"
+
+namespace leveldb {
+
+namespace {
+
+static Status IOError(const std::string& context, int err_number) {
+ return Status::IOError(context, strerror(err_number));
+}
+
+class PosixSequentialFile: public SequentialFile {
+ private:
+ std::string filename_;
+ FILE* file_;
+
+ public:
+ PosixSequentialFile(const std::string& fname, FILE* f)
+ : filename_(fname), file_(f) { }
+ virtual ~PosixSequentialFile() { fclose(file_); }
+
+ virtual Status Read(size_t n, Slice* result, char* scratch) {
+ Status s;
+ size_t r = fread_unlocked(scratch, 1, n, file_);
+ *result = Slice(scratch, r);
+ if (r < n) {
+ if (feof(file_)) {
+ // We leave status as ok if we hit the end of the file
+ } else {
+ // A partial read with an error: return a non-ok status
+ s = IOError(filename_, errno);
+ }
+ }
+ return s;
+ }
+
+ virtual Status Skip(uint64_t n) {
+ if (fseek(file_, n, SEEK_CUR)) {
+ return IOError(filename_, errno);
+ }
+ return Status::OK();
+ }
+};
+
+// pread() based random-access
+class PosixRandomAccessFile: public RandomAccessFile {
+ private:
+ std::string filename_;
+ int fd_;
+
+ public:
+ PosixRandomAccessFile(const std::string& fname, int fd)
+ : filename_(fname), fd_(fd) { }
+ virtual ~PosixRandomAccessFile() { close(fd_); }
+
+ virtual Status Read(uint64_t offset, size_t n, Slice* result,
+ char* scratch) const {
+ Status s;
+ ssize_t r = pread(fd_, scratch, n, static_cast<off_t>(offset));
+ *result = Slice(scratch, (r < 0) ? 0 : r);
+ if (r < 0) {
+ // An error: return a non-ok status
+ s = IOError(filename_, errno);
+ }
+ return s;
+ }
+};
+
+// Helper class to limit mmap file usage so that we do not end up
+// running out virtual memory or running into kernel performance
+// problems for very large databases.
+class MmapLimiter {
+ public:
+ // Up to 1000 mmaps for 64-bit binaries; none for smaller pointer sizes.
+ MmapLimiter() {
+ SetAllowed(sizeof(void*) >= 8 ? 1000 : 0);
+ }
+
+ // If another mmap slot is available, acquire it and return true.
+ // Else return false.
+ bool Acquire() {
+ if (GetAllowed() <= 0) {
+ return false;
+ }
+ MutexLock l(&mu_);
+ intptr_t x = GetAllowed();
+ if (x <= 0) {
+ return false;
+ } else {
+ SetAllowed(x - 1);
+ return true;
+ }
+ }
+
+ // Release a slot acquired by a previous call to Acquire() that returned true.
+ void Release() {
+ MutexLock l(&mu_);
+ SetAllowed(GetAllowed() + 1);
+ }
+
+ private:
+ port::Mutex mu_;
+ port::AtomicPointer allowed_;
+
+ intptr_t GetAllowed() const {
+ return reinterpret_cast<intptr_t>(allowed_.Acquire_Load());
+ }
+
+ // REQUIRES: mu_ must be held
+ void SetAllowed(intptr_t v) {
+ allowed_.Release_Store(reinterpret_cast<void*>(v));
+ }
+
+ MmapLimiter(const MmapLimiter&);
+ void operator=(const MmapLimiter&);
+};
+
+// mmap() based random-access
+class PosixMmapReadableFile: public RandomAccessFile {
+ private:
+ std::string filename_;
+ void* mmapped_region_;
+ size_t length_;
+ MmapLimiter* limiter_;
+
+ public:
+ // base[0,length-1] contains the mmapped contents of the file.
+ PosixMmapReadableFile(const std::string& fname, void* base, size_t length,
+ MmapLimiter* limiter)
+ : filename_(fname), mmapped_region_(base), length_(length),
+ limiter_(limiter) {
+ }
+
+ virtual ~PosixMmapReadableFile() {
+ munmap(mmapped_region_, length_);
+ limiter_->Release();
+ }
+
+ virtual Status Read(uint64_t offset, size_t n, Slice* result,
+ char* scratch) const {
+ Status s;
+ if (offset + n > length_) {
+ *result = Slice();
+ s = IOError(filename_, EINVAL);
+ } else {
+ *result = Slice(reinterpret_cast<char*>(mmapped_region_) + offset, n);
+ }
+ return s;
+ }
+};
+
+// We preallocate up to an extra megabyte and use memcpy to append new
+// data to the file. This is safe since we either properly close the
+// file before reading from it, or for log files, the reading code
+// knows enough to skip zero suffixes.
+// TODO: I use GCC intrinsics here. I don't feel bad about this, but it
+// hinders portability.
+class PosixMmapFile : public WritableFile {
+ private:
+ struct MmapSegment {
+ MmapSegment* next_; // the next-lowest Map segment in the file
+ uint64_t file_offset_; // Offset of base_ in file
+ uint64_t written_; // The amount of data written to this segment
+ uint64_t size_; // The size of the mapped region
+ char* base_; // The mapped region
+ };
+
+ std::string filename_; // Path to the file
+ int fd_; // The open file
+ size_t page_size_; // System page size
+ uint64_t sync_offset_; // Offset of the last sync call
+ uint64_t end_offset_; // Where does the file end?
+ MmapSegment* segments_; // mmap'ed regions of memory
+ port::Mutex mtx_; // Synchronize and shit
+
+ // Roundup x to a multiple of y
+ static size_t Roundup(size_t x, size_t y) {
+ return ((x + y - 1) / y) * y;
+ }
+
+ MmapSegment* GetSegment(uint64_t offset) {
+ MutexLock l(&mtx_);
+ while (true) {
+ MmapSegment* seg = segments_;
+ while (seg && seg->file_offset_ > offset) {
+ seg = seg->next_;
+ }
+ if (!seg || seg->file_offset_ + seg->size_ <= offset) {
+ assert(seg == segments_);
+ MmapSegment* new_seg = new MmapSegment();
+ new_seg->next_ = seg;
+ new_seg->file_offset_ = seg ? seg->file_offset_ + seg-> size_ : 0;
+ new_seg->written_ = 0;
+ new_seg->size_ = seg ? seg->size_ : Roundup(1 << 20, page_size_);
+ if (ftruncate(fd_, new_seg->file_offset_ + new_seg->size_) < 0) {
+ delete new_seg;
+ return NULL;
+ }
+ void* ptr = mmap(NULL, new_seg->size_, PROT_READ | PROT_WRITE, MAP_SHARED,
+ fd_, new_seg->file_offset_);
+ if (ptr == MAP_FAILED) {
+ delete new_seg;
+ return NULL;
+ }
+ new_seg->base_ = reinterpret_cast<char*>(ptr);
+ segments_ = new_seg;
+ continue;
+ }
+ assert(seg &&
+ seg->file_offset_ <= offset &&
+ seg->file_offset_ + seg->size_ > offset);
+ return seg;
+ }
+ }
+
+ bool ReleaseSegment(MmapSegment* seg, bool full) {
+ return true;
+ }
+
+ public:
+ PosixMmapFile(const std::string& fname, int fd, size_t page_size)
+ : filename_(fname),
+ fd_(fd),
+ page_size_(page_size),
+ sync_offset_(0),
+ end_offset_(0),
+ segments_(NULL),
+ mtx_() {
+ assert((page_size & (page_size - 1)) == 0);
+ }
+
+ ~PosixMmapFile() {
+ if (fd_ >= 0) {
+ PosixMmapFile::Close();
+ }
+ }
+
+ virtual Status WriteAt(uint64_t offset, const Slice& data) {
+ uint64_t end = offset + data.size();
+ const char* src = data.data();
+ uint64_t left = data.size();
+ while (left > 0) {
+ MmapSegment* seg = GetSegment(offset);
+ if (!seg) {
+ return IOError(filename_, errno);
+ }
+
+ assert(offset >= seg->file_offset_);
+ assert(offset < seg->file_offset_ + seg->size_);
+ uint64_t local_offset = offset - seg->file_offset_;
+ uint64_t avail = seg->size_ - local_offset;
+ uint64_t n = (left <= avail) ? left : avail;
+ memcpy(seg->base_ + local_offset, src, n);
+ src += n;
+ left -= n;
+ offset += n;
+ uint64_t written = __sync_add_and_fetch(&seg->written_, n);
+
+ if (!ReleaseSegment(seg, written == seg->size_)) {
+ return IOError(filename_, errno);
+ }
+ }
+ uint64_t old_end = end;
+ do {
+ old_end = __sync_val_compare_and_swap(&end_offset_, old_end, end);
+ } while (old_end < end);
+ return Status::OK();
+ }
+
+ virtual Status Append(const Slice& data) {
+ uint64_t offset = __sync_val_compare_and_swap(&end_offset_, 0, 0);
+ return WriteAt(offset, data);
+ }
+
+ virtual Status Close() {
+ Status s;
+ while (segments_) {
+ MmapSegment* seg = segments_;
+ segments_ = seg->next_;
+ if (munmap(seg->base_, seg->size_) < 0) {
+ s = IOError(filename_, errno);
+ }
+ seg->base_ = NULL;
+ delete seg;
+ }
+
+ if (ftruncate(fd_, end_offset_) < 0) {
+ s = IOError(filename_, errno);
+ }
+
+ if (close(fd_) < 0) {
+ if (s.ok()) {
+ s = IOError(filename_, errno);
+ }
+ }
+
+ fd_ = -1;
+ return s;
+ }
+
+ Status SyncDirIfManifest() {
+ const char* f = filename_.c_str();
+ const char* sep = strrchr(f, '/');
+ Slice basename;
+ std::string dir;
+ if (sep == NULL) {
+ dir = ".";
+ basename = f;
+ } else {
+ dir = std::string(f, sep - f);
+ basename = sep + 1;
+ }
+ Status s;
+ if (basename.starts_with("MANIFEST")) {
+ int fd = open(dir.c_str(), O_RDONLY);
+ if (fd < 0) {
+ s = IOError(dir, errno);
+ } else {
+ if (fsync(fd) < 0) {
+ s = IOError(dir, errno);
+ }
+ close(fd);
+ }
+ }
+ return s;
+ }
+
+ virtual Status Sync() {
+ // Ensure new files referred to by the manifest are in the filesystem.
+ Status s = SyncDirIfManifest();
+ bool need_sync = false;
+
+ if (!s.ok()) {
+ return s;
+ }
+
+ {
+ MutexLock l(&mtx_);
+ need_sync = sync_offset_ != end_offset_;
+ sync_offset_ = end_offset_;
+ }
+
+ if (need_sync) {
+ // Some unmapped data was not synced
+ if (fdatasync(fd_) < 0) {
+ s = IOError(filename_, errno);
+ }
+ }
+
+ return s;
+ }
+};
+
+static int LockOrUnlock(int fd, bool lock) {
+ errno = 0;
+ struct flock f;
+ memset(&f, 0, sizeof(f));
+ f.l_type = (lock ? F_WRLCK : F_UNLCK);
+ f.l_whence = SEEK_SET;
+ f.l_start = 0;
+ f.l_len = 0; // Lock/unlock entire file
+ return fcntl(fd, F_SETLK, &f);
+}
+
+class PosixFileLock : public FileLock {
+ public:
+ int fd_;
+ std::string name_;
+};
+
+// Set of locked files. We keep a separate set instead of just
+// relying on fcntrl(F_SETLK) since fcntl(F_SETLK) does not provide
+// any protection against multiple uses from the same process.
+class PosixLockTable {
+ private:
+ port::Mutex mu_;
+ std::set<std::string> locked_files_;
+ public:
+ bool Insert(const std::string& fname) {
+ MutexLock l(&mu_);
+ return locked_files_.insert(fname).second;
+ }
+ void Remove(const std::string& fname) {
+ MutexLock l(&mu_);
+ locked_files_.erase(fname);
+ }
+};
+
+class PosixEnv : public Env {
+ public:
+ PosixEnv();
+ virtual ~PosixEnv() {
+ fprintf(stderr, "Destroying Env::Default()\n");
+ abort();
+ }
+
+ virtual Status NewSequentialFile(const std::string& fname,
+ SequentialFile** result) {
+ FILE* f = fopen(fname.c_str(), "r");
+ if (f == NULL) {
+ *result = NULL;
+ return IOError(fname, errno);
+ } else {
+ *result = new PosixSequentialFile(fname, f);
+ return Status::OK();
+ }
+ }
+
+ virtual Status NewRandomAccessFile(const std::string& fname,
+ RandomAccessFile** result) {
+ *result = NULL;
+ Status s;
+ int fd = open(fname.c_str(), O_RDONLY);
+ if (fd < 0) {
+ s = IOError(fname, errno);
+ } else if (mmap_limit_.Acquire()) {
+ uint64_t size;
+ s = GetFileSize(fname, &size);
+ if (s.ok()) {
+ void* base = mmap(NULL, size, PROT_READ, MAP_SHARED, fd, 0);
+ if (base != MAP_FAILED) {
+ *result = new PosixMmapReadableFile(fname, base, size, &mmap_limit_);
+ } else {
+ s = IOError(fname, errno);
+ }
+ }
+ close(fd);
+ if (!s.ok()) {
+ mmap_limit_.Release();
+ }
+ } else {
+ *result = new PosixRandomAccessFile(fname, fd);
+ }
+ return s;
+ }
+
+ virtual Status NewWritableFile(const std::string& fname,
+ WritableFile** result) {
+ Status s;
+ const int fd = open(fname.c_str(), O_CREAT | O_RDWR | O_TRUNC, 0644);
+ if (fd < 0) {
+ *result = NULL;
+ s = IOError(fname, errno);
+ } else {
+ *result = new PosixMmapFile(fname, fd, page_size_);
+ }
+ return s;
+ }
+
+ virtual bool FileExists(const std::string& fname) {
+ return access(fname.c_str(), F_OK) == 0;
+ }
+
+ virtual Status GetChildren(const std::string& dir,
+ std::vector<std::string>* result) {
+ result->clear();
+ DIR* d = opendir(dir.c_str());
+ if (d == NULL) {
+ return IOError(dir, errno);
+ }
+ struct dirent* entry;
+ while ((entry = readdir(d)) != NULL) {
+ result->push_back(entry->d_name);
+ }
+ closedir(d);
+ return Status::OK();
+ }
+
+ virtual Status DeleteFile(const std::string& fname) {
+ Status result;
+ if (unlink(fname.c_str()) != 0) {
+ result = IOError(fname, errno);
+ }
+ return result;
+ }
+
+ virtual Status CreateDir(const std::string& name) {
+ Status result;
+ if (mkdir(name.c_str(), 0755) != 0) {
+ result = IOError(name, errno);
+ }
+ return result;
+ }
+
+ virtual Status DeleteDir(const std::string& name) {
+ Status result;
+ if (rmdir(name.c_str()) != 0) {
+ result = IOError(name, errno);
+ }
+ return result;
+ }
+
+ virtual Status GetFileSize(const std::string& fname, uint64_t* size) {
+ Status s;
+ struct stat sbuf;
+ if (stat(fname.c_str(), &sbuf) != 0) {
+ *size = 0;
+ s = IOError(fname, errno);
+ } else {
+ *size = sbuf.st_size;
+ }
+ return s;
+ }
+
+ virtual Status RenameFile(const std::string& src, const std::string& target) {
+ Status result;
+ if (rename(src.c_str(), target.c_str()) != 0) {
+ result = IOError(src, errno);
+ }
+ return result;
+ }
+
+ virtual Status CopyFile(const std::string& src, const std::string& target) {
+ Status result;
+ int fd1;
+ int fd2;
+
+ if (result.ok() && (fd1 = open(src.c_str(), O_RDONLY)) < 0) {
+ result = IOError(src, errno);
+ }
+ if (result.ok() && (fd2 = open(target.c_str(), O_WRONLY | O_CREAT | O_TRUNC, 0644)) < 0) {
+ result = IOError(target, errno);
+ }
+
+ ssize_t amt = 0;
+ char buf[512];
+
+ while (result.ok() && (amt = read(fd1, buf, 512)) > 0) {
+ if (write(fd2, buf, amt) != amt) {
+ result = IOError(src, errno);
+ }
+ }
+
+ if (result.ok() && amt < 0) {
+ result = IOError(src, errno);
+ }
+
+ if (fd1 >= 0 && close(fd1) < 0) {
+ if (result.ok()) {
+ result = IOError(src, errno);
+ }
+ }
+
+ if (fd2 >= 0 && close(fd2) < 0) {
+ if (result.ok()) {
+ result = IOError(target, errno);
+ }
+ }
+
+ return result;
+ }
+
+ virtual Status LinkFile(const std::string& src, const std::string& target) {
+ Status result;
+ if (link(src.c_str(), target.c_str()) != 0) {
+ result = IOError(src, errno);
+ }
+ return result;
+ }
+
+ virtual Status LockFile(const std::string& fname, FileLock** lock) {
+ *lock = NULL;
+ Status result;
+ int fd = open(fname.c_str(), O_RDWR | O_CREAT, 0644);
+ if (fd < 0) {
+ result = IOError(fname, errno);
+ } else if (!locks_.Insert(fname)) {
+ close(fd);
+ result = Status::IOError("lock " + fname, "already held by process");
+ } else if (LockOrUnlock(fd, true) == -1) {
+ result = IOError("lock " + fname, errno);
+ close(fd);
+ locks_.Remove(fname);
+ } else {
+ PosixFileLock* my_lock = new PosixFileLock;
+ my_lock->fd_ = fd;
+ my_lock->name_ = fname;
+ *lock = my_lock;
+ }
+ return result;
+ }
+
+ virtual Status UnlockFile(FileLock* lock) {
+ PosixFileLock* my_lock = reinterpret_cast<PosixFileLock*>(lock);
+ Status result;
+ if (LockOrUnlock(my_lock->fd_, false) == -1) {
+ result = IOError("unlock", errno);
+ }
+ locks_.Remove(my_lock->name_);
+ close(my_lock->fd_);
+ delete my_lock;
+ return result;
+ }
+
+ virtual void Schedule(void (*function)(void*), void* arg);
+
+ virtual void StartThread(void (*function)(void* arg), void* arg);
+
+ virtual Status GetTestDirectory(std::string* result) {
+ const char* env = getenv("TEST_TMPDIR");
+ if (env && env[0] != '\0') {
+ *result = env;
+ } else {
+ char buf[100];
+ snprintf(buf, sizeof(buf), "/tmp/leveldbtest-%d", int(geteuid()));
+ *result = buf;
+ }
+ // Directory may already exist
+ CreateDir(*result);
+ return Status::OK();
+ }
+
+ static uint64_t gettid() {
+ pthread_t tid = pthread_self();
+ uint64_t thread_id = 0;
+ memcpy(&thread_id, &tid, std::min(sizeof(thread_id), sizeof(tid)));
+ return thread_id;
+ }
+
+ virtual Status NewLogger(const std::string& fname, Logger** result) {
+ FILE* f = fopen(fname.c_str(), "w");
+ if (f == NULL) {
+ *result = NULL;
+ return IOError(fname, errno);
+ } else {
+ *result = new PosixLogger(f, &PosixEnv::gettid);
+ return Status::OK();
+ }
+ }
+
+ virtual uint64_t NowMicros() {
+ struct timeval tv;
+ gettimeofday(&tv, NULL);
+ return static_cast<uint64_t>(tv.tv_sec) * 1000000 + tv.tv_usec;
+ }
+
+ virtual void SleepForMicroseconds(int micros) {
+ usleep(micros);
+ }
+
+ private:
+ void PthreadCall(const char* label, int result) {
+ if (result != 0) {
+ fprintf(stderr, "pthread %s: %s\n", label, strerror(result));
+ abort();
+ }
+ }
+
+ // BGThread() is the body of the background thread
+ void BGThread();
+ static void* BGThreadWrapper(void* arg) {
+ reinterpret_cast<PosixEnv*>(arg)->BGThread();
+ return NULL;
+ }
+
+ size_t page_size_;
+ pthread_mutex_t mu_;
+ pthread_cond_t bgsignal_;
+ pthread_t bgthread_;
+ bool started_bgthread_;
+
+ // Entry per Schedule() call
+ struct BGItem { void* arg; void (*function)(void*); };
+ typedef std::deque<BGItem> BGQueue;
+ BGQueue queue_;
+
+ PosixLockTable locks_;
+ MmapLimiter mmap_limit_;
+};
+
+PosixEnv::PosixEnv() : page_size_(getpagesize()),
+ started_bgthread_(false) {
+ PthreadCall("mutex_init", pthread_mutex_init(&mu_, NULL));
+ PthreadCall("cvar_init", pthread_cond_init(&bgsignal_, NULL));
+}
+
+void PosixEnv::Schedule(void (*function)(void*), void* arg) {
+ PthreadCall("lock", pthread_mutex_lock(&mu_));
+
+ // Start background thread if necessary
+ if (!started_bgthread_) {
+ started_bgthread_ = true;
+ PthreadCall(
+ "create thread",
+ pthread_create(&bgthread_, NULL, &PosixEnv::BGThreadWrapper, this));
+ }
+
+ // If the queue is currently empty, the background thread may currently be
+ // waiting.
+ if (queue_.empty()) {
+ PthreadCall("signal", pthread_cond_signal(&bgsignal_));
+ }
+
+ // Add to priority queue
+ queue_.push_back(BGItem());
+ queue_.back().function = function;
+ queue_.back().arg = arg;
+
+ PthreadCall("unlock", pthread_mutex_unlock(&mu_));
+}
+
+void PosixEnv::BGThread() {
+ while (true) {
+ // Wait until there is an item that is ready to run
+ PthreadCall("lock", pthread_mutex_lock(&mu_));
+ while (queue_.empty()) {
+ PthreadCall("wait", pthread_cond_wait(&bgsignal_, &mu_));
+ }
+
+ void (*function)(void*) = queue_.front().function;
+ void* arg = queue_.front().arg;
+ queue_.pop_front();
+
+ PthreadCall("unlock", pthread_mutex_unlock(&mu_));
+ (*function)(arg);
+ }
+}
+
+namespace {
+struct StartThreadState {
+ void (*user_function)(void*);
+ void* arg;
+};
+}
+static void* StartThreadWrapper(void* arg) {
+ StartThreadState* state = reinterpret_cast<StartThreadState*>(arg);
+ state->user_function(state->arg);
+ delete state;
+ return NULL;
+}
+
+void PosixEnv::StartThread(void (*function)(void* arg), void* arg) {
+ pthread_t t;
+ StartThreadState* state = new StartThreadState;
+ state->user_function = function;
+ state->arg = arg;
+ PthreadCall("start thread",
+ pthread_create(&t, NULL, &StartThreadWrapper, state));
+}
+
+} // namespace
+
+static pthread_once_t once = PTHREAD_ONCE_INIT;
+static Env* default_env;
+static void InitDefaultEnv() { default_env = new PosixEnv; }
+
+Env* Env::Default() {
+ pthread_once(&once, InitDefaultEnv);
+ return default_env;
+}
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/util/env_test.cc b/clipper/HyperLevelDB/util/env_test.cc
new file mode 100644
index 0000000..32ad2b4
--- /dev/null
+++ b/clipper/HyperLevelDB/util/env_test.cc
@@ -0,0 +1,104 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "hyperleveldb/env.h"
+
+#include "port/port.h"
+#include "util/testharness.h"
+
+namespace leveldb {
+
+static const int kDelayMicros = 100000;
+
+class EnvPosixTest {
+ private:
+ port::Mutex mu_;
+ std::string events_;
+
+ public:
+ Env* env_;
+ EnvPosixTest() : env_(Env::Default()) { }
+};
+
+static void SetBool(void* ptr) {
+ reinterpret_cast<port::AtomicPointer*>(ptr)->NoBarrier_Store(ptr);
+}
+
+TEST(EnvPosixTest, RunImmediately) {
+ port::AtomicPointer called (NULL);
+ env_->Schedule(&SetBool, &called);
+ Env::Default()->SleepForMicroseconds(kDelayMicros);
+ ASSERT_TRUE(called.NoBarrier_Load() != NULL);
+}
+
+TEST(EnvPosixTest, RunMany) {
+ port::AtomicPointer last_id (NULL);
+
+ struct CB {
+ port::AtomicPointer* last_id_ptr; // Pointer to shared slot
+ uintptr_t id; // Order# for the execution of this callback
+
+ CB(port::AtomicPointer* p, int i) : last_id_ptr(p), id(i) { }
+
+ static void Run(void* v) {
+ CB* cb = reinterpret_cast<CB*>(v);
+ void* cur = cb->last_id_ptr->NoBarrier_Load();
+ ASSERT_EQ(cb->id-1, reinterpret_cast<uintptr_t>(cur));
+ cb->last_id_ptr->Release_Store(reinterpret_cast<void*>(cb->id));
+ }
+ };
+
+ // Schedule in different order than start time
+ CB cb1(&last_id, 1);
+ CB cb2(&last_id, 2);
+ CB cb3(&last_id, 3);
+ CB cb4(&last_id, 4);
+ env_->Schedule(&CB::Run, &cb1);
+ env_->Schedule(&CB::Run, &cb2);
+ env_->Schedule(&CB::Run, &cb3);
+ env_->Schedule(&CB::Run, &cb4);
+
+ Env::Default()->SleepForMicroseconds(kDelayMicros);
+ void* cur = last_id.Acquire_Load();
+ ASSERT_EQ(4, reinterpret_cast<uintptr_t>(cur));
+}
+
+struct State {
+ port::Mutex mu;
+ int val;
+ int num_running;
+};
+
+static void ThreadBody(void* arg) {
+ State* s = reinterpret_cast<State*>(arg);
+ s->mu.Lock();
+ s->val += 1;
+ s->num_running -= 1;
+ s->mu.Unlock();
+}
+
+TEST(EnvPosixTest, StartThread) {
+ State state;
+ state.val = 0;
+ state.num_running = 3;
+ for (int i = 0; i < 3; i++) {
+ env_->StartThread(&ThreadBody, &state);
+ }
+ while (true) {
+ state.mu.Lock();
+ int num = state.num_running;
+ state.mu.Unlock();
+ if (num == 0) {
+ break;
+ }
+ Env::Default()->SleepForMicroseconds(kDelayMicros);
+ }
+ ASSERT_EQ(state.val, 3);
+}
+
+} // namespace leveldb
+
+int main(int argc, char** argv) {
+ return leveldb::test::RunAllTests();
+}
diff --git a/clipper/HyperLevelDB/util/filter_policy.cc b/clipper/HyperLevelDB/util/filter_policy.cc
new file mode 100644
index 0000000..3a50510
--- /dev/null
+++ b/clipper/HyperLevelDB/util/filter_policy.cc
@@ -0,0 +1,11 @@
+// Copyright (c) 2012 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "hyperleveldb/filter_policy.h"
+
+namespace leveldb {
+
+FilterPolicy::~FilterPolicy() { }
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/util/hash.cc b/clipper/HyperLevelDB/util/hash.cc
new file mode 100644
index 0000000..07cf022
--- /dev/null
+++ b/clipper/HyperLevelDB/util/hash.cc
@@ -0,0 +1,52 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include <string.h>
+#include "util/coding.h"
+#include "util/hash.h"
+
+// The FALLTHROUGH_INTENDED macro can be used to annotate implicit fall-through
+// between switch labels. The real definition should be provided externally.
+// This one is a fallback version for unsupported compilers.
+#ifndef FALLTHROUGH_INTENDED
+#define FALLTHROUGH_INTENDED do { } while (0)
+#endif
+
+namespace leveldb {
+
+uint32_t Hash(const char* data, size_t n, uint32_t seed) {
+ // Similar to murmur hash
+ const uint32_t m = 0xc6a4a793;
+ const uint32_t r = 24;
+ const char* limit = data + n;
+ uint32_t h = seed ^ (n * m);
+
+ // Pick up four bytes at a time
+ while (data + 4 <= limit) {
+ uint32_t w = DecodeFixed32(data);
+ data += 4;
+ h += w;
+ h *= m;
+ h ^= (h >> 16);
+ }
+
+ // Pick up remaining bytes
+ switch (limit - data) {
+ case 3:
+ h += data[2] << 16;
+ FALLTHROUGH_INTENDED;
+ case 2:
+ h += data[1] << 8;
+ FALLTHROUGH_INTENDED;
+ case 1:
+ h += data[0];
+ h *= m;
+ h ^= (h >> r);
+ break;
+ }
+ return h;
+}
+
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/util/hash.h b/clipper/HyperLevelDB/util/hash.h
new file mode 100644
index 0000000..8889d56
--- /dev/null
+++ b/clipper/HyperLevelDB/util/hash.h
@@ -0,0 +1,19 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+//
+// Simple hash function used for internal data structures
+
+#ifndef STORAGE_LEVELDB_UTIL_HASH_H_
+#define STORAGE_LEVELDB_UTIL_HASH_H_
+
+#include <stddef.h>
+#include <stdint.h>
+
+namespace leveldb {
+
+extern uint32_t Hash(const char* data, size_t n, uint32_t seed);
+
+}
+
+#endif // STORAGE_LEVELDB_UTIL_HASH_H_
diff --git a/clipper/HyperLevelDB/util/histogram.cc b/clipper/HyperLevelDB/util/histogram.cc
new file mode 100644
index 0000000..bb95f58
--- /dev/null
+++ b/clipper/HyperLevelDB/util/histogram.cc
@@ -0,0 +1,139 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include <math.h>
+#include <stdio.h>
+#include "port/port.h"
+#include "util/histogram.h"
+
+namespace leveldb {
+
+const double Histogram::kBucketLimit[kNumBuckets] = {
+ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 16, 18, 20, 25, 30, 35, 40, 45,
+ 50, 60, 70, 80, 90, 100, 120, 140, 160, 180, 200, 250, 300, 350, 400, 450,
+ 500, 600, 700, 800, 900, 1000, 1200, 1400, 1600, 1800, 2000, 2500, 3000,
+ 3500, 4000, 4500, 5000, 6000, 7000, 8000, 9000, 10000, 12000, 14000,
+ 16000, 18000, 20000, 25000, 30000, 35000, 40000, 45000, 50000, 60000,
+ 70000, 80000, 90000, 100000, 120000, 140000, 160000, 180000, 200000,
+ 250000, 300000, 350000, 400000, 450000, 500000, 600000, 700000, 800000,
+ 900000, 1000000, 1200000, 1400000, 1600000, 1800000, 2000000, 2500000,
+ 3000000, 3500000, 4000000, 4500000, 5000000, 6000000, 7000000, 8000000,
+ 9000000, 10000000, 12000000, 14000000, 16000000, 18000000, 20000000,
+ 25000000, 30000000, 35000000, 40000000, 45000000, 50000000, 60000000,
+ 70000000, 80000000, 90000000, 100000000, 120000000, 140000000, 160000000,
+ 180000000, 200000000, 250000000, 300000000, 350000000, 400000000,
+ 450000000, 500000000, 600000000, 700000000, 800000000, 900000000,
+ 1000000000, 1200000000, 1400000000, 1600000000, 1800000000, 2000000000,
+ 2500000000.0, 3000000000.0, 3500000000.0, 4000000000.0, 4500000000.0,
+ 5000000000.0, 6000000000.0, 7000000000.0, 8000000000.0, 9000000000.0,
+ 1e200,
+};
+
+void Histogram::Clear() {
+ min_ = kBucketLimit[kNumBuckets-1];
+ max_ = 0;
+ num_ = 0;
+ sum_ = 0;
+ sum_squares_ = 0;
+ for (int i = 0; i < kNumBuckets; i++) {
+ buckets_[i] = 0;
+ }
+}
+
+void Histogram::Add(double value) {
+ // Linear search is fast enough for our usage in db_bench
+ int b = 0;
+ while (b < kNumBuckets - 1 && kBucketLimit[b] <= value) {
+ b++;
+ }
+ buckets_[b] += 1.0;
+ if (min_ > value) min_ = value;
+ if (max_ < value) max_ = value;
+ num_++;
+ sum_ += value;
+ sum_squares_ += (value * value);
+}
+
+void Histogram::Merge(const Histogram& other) {
+ if (other.min_ < min_) min_ = other.min_;
+ if (other.max_ > max_) max_ = other.max_;
+ num_ += other.num_;
+ sum_ += other.sum_;
+ sum_squares_ += other.sum_squares_;
+ for (int b = 0; b < kNumBuckets; b++) {
+ buckets_[b] += other.buckets_[b];
+ }
+}
+
+double Histogram::Median() const {
+ return Percentile(50.0);
+}
+
+double Histogram::Percentile(double p) const {
+ double threshold = num_ * (p / 100.0);
+ double sum = 0;
+ for (int b = 0; b < kNumBuckets; b++) {
+ sum += buckets_[b];
+ if (sum >= threshold) {
+ // Scale linearly within this bucket
+ double left_point = (b == 0) ? 0 : kBucketLimit[b-1];
+ double right_point = kBucketLimit[b];
+ double left_sum = sum - buckets_[b];
+ double right_sum = sum;
+ double pos = (threshold - left_sum) / (right_sum - left_sum);
+ double r = left_point + (right_point - left_point) * pos;
+ if (r < min_) r = min_;
+ if (r > max_) r = max_;
+ return r;
+ }
+ }
+ return max_;
+}
+
+double Histogram::Average() const {
+ if (num_ == 0.0) return 0;
+ return sum_ / num_;
+}
+
+double Histogram::StandardDeviation() const {
+ if (num_ == 0.0) return 0;
+ double variance = (sum_squares_ * num_ - sum_ * sum_) / (num_ * num_);
+ return sqrt(variance);
+}
+
+std::string Histogram::ToString() const {
+ std::string r;
+ char buf[200];
+ snprintf(buf, sizeof(buf),
+ "Count: %.0f Average: %.4f StdDev: %.2f\n",
+ num_, Average(), StandardDeviation());
+ r.append(buf);
+ snprintf(buf, sizeof(buf),
+ "Min: %.4f Median: %.4f Max: %.4f\n",
+ (num_ == 0.0 ? 0.0 : min_), Median(), max_);
+ r.append(buf);
+ r.append("------------------------------------------------------\n");
+ const double mult = 100.0 / num_;
+ double sum = 0;
+ for (int b = 0; b < kNumBuckets; b++) {
+ if (buckets_[b] <= 0.0) continue;
+ sum += buckets_[b];
+ snprintf(buf, sizeof(buf),
+ "[ %7.0f, %7.0f ) %7.0f %7.3f%% %7.3f%% ",
+ ((b == 0) ? 0.0 : kBucketLimit[b-1]), // left
+ kBucketLimit[b], // right
+ buckets_[b], // count
+ mult * buckets_[b], // percentage
+ mult * sum); // cumulative percentage
+ r.append(buf);
+
+ // Add hash marks based on percentage; 20 marks for 100%.
+ int marks = static_cast<int>(20*(buckets_[b] / num_) + 0.5);
+ r.append(marks, '#');
+ r.push_back('\n');
+ }
+ return r;
+}
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/util/histogram.h b/clipper/HyperLevelDB/util/histogram.h
new file mode 100644
index 0000000..1ef9f3c
--- /dev/null
+++ b/clipper/HyperLevelDB/util/histogram.h
@@ -0,0 +1,42 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#ifndef STORAGE_LEVELDB_UTIL_HISTOGRAM_H_
+#define STORAGE_LEVELDB_UTIL_HISTOGRAM_H_
+
+#include <string>
+
+namespace leveldb {
+
+class Histogram {
+ public:
+ Histogram() { }
+ ~Histogram() { }
+
+ void Clear();
+ void Add(double value);
+ void Merge(const Histogram& other);
+
+ std::string ToString() const;
+
+ private:
+ double min_;
+ double max_;
+ double num_;
+ double sum_;
+ double sum_squares_;
+
+ enum { kNumBuckets = 154 };
+ static const double kBucketLimit[kNumBuckets];
+ double buckets_[kNumBuckets];
+
+ double Median() const;
+ double Percentile(double p) const;
+ double Average() const;
+ double StandardDeviation() const;
+};
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_UTIL_HISTOGRAM_H_
diff --git a/clipper/HyperLevelDB/util/logging.cc b/clipper/HyperLevelDB/util/logging.cc
new file mode 100644
index 0000000..66b15a7
--- /dev/null
+++ b/clipper/HyperLevelDB/util/logging.cc
@@ -0,0 +1,81 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "util/logging.h"
+
+#include <errno.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include "hyperleveldb/env.h"
+#include "hyperleveldb/slice.h"
+
+namespace leveldb {
+
+void AppendNumberTo(std::string* str, uint64_t num) {
+ char buf[30];
+ snprintf(buf, sizeof(buf), "%llu", (unsigned long long) num);
+ str->append(buf);
+}
+
+void AppendEscapedStringTo(std::string* str, const Slice& value) {
+ for (size_t i = 0; i < value.size(); i++) {
+ char c = value[i];
+ if (c >= ' ' && c <= '~') {
+ str->push_back(c);
+ } else {
+ char buf[10];
+ snprintf(buf, sizeof(buf), "\\x%02x",
+ static_cast<unsigned int>(c) & 0xff);
+ str->append(buf);
+ }
+ }
+}
+
+std::string NumberToString(uint64_t num) {
+ std::string r;
+ AppendNumberTo(&r, num);
+ return r;
+}
+
+std::string EscapeString(const Slice& value) {
+ std::string r;
+ AppendEscapedStringTo(&r, value);
+ return r;
+}
+
+bool ConsumeChar(Slice* in, char c) {
+ if (!in->empty() && (*in)[0] == c) {
+ in->remove_prefix(1);
+ return true;
+ } else {
+ return false;
+ }
+}
+
+bool ConsumeDecimalNumber(Slice* in, uint64_t* val) {
+ uint64_t v = 0;
+ int digits = 0;
+ while (!in->empty()) {
+ char c = (*in)[0];
+ if (c >= '0' && c <= '9') {
+ ++digits;
+ const int delta = (c - '0');
+ static const uint64_t kMaxUint64 = ~static_cast<uint64_t>(0);
+ if (v > kMaxUint64/10 ||
+ (v == kMaxUint64/10 && delta > kMaxUint64%10)) {
+ // Overflow
+ return false;
+ }
+ v = (v * 10) + delta;
+ in->remove_prefix(1);
+ } else {
+ break;
+ }
+ }
+ *val = v;
+ return (digits > 0);
+}
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/util/logging.h b/clipper/HyperLevelDB/util/logging.h
new file mode 100644
index 0000000..b0c5da8
--- /dev/null
+++ b/clipper/HyperLevelDB/util/logging.h
@@ -0,0 +1,47 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+//
+// Must not be included from any .h files to avoid polluting the namespace
+// with macros.
+
+#ifndef STORAGE_LEVELDB_UTIL_LOGGING_H_
+#define STORAGE_LEVELDB_UTIL_LOGGING_H_
+
+#include <stdio.h>
+#include <stdint.h>
+#include <string>
+#include "port/port.h"
+
+namespace leveldb {
+
+class Slice;
+class WritableFile;
+
+// Append a human-readable printout of "num" to *str
+extern void AppendNumberTo(std::string* str, uint64_t num);
+
+// Append a human-readable printout of "value" to *str.
+// Escapes any non-printable characters found in "value".
+extern void AppendEscapedStringTo(std::string* str, const Slice& value);
+
+// Return a human-readable printout of "num"
+extern std::string NumberToString(uint64_t num);
+
+// Return a human-readable version of "value".
+// Escapes any non-printable characters found in "value".
+extern std::string EscapeString(const Slice& value);
+
+// If *in starts with "c", advances *in past the first character and
+// returns true. Otherwise, returns false.
+extern bool ConsumeChar(Slice* in, char c);
+
+// Parse a human-readable number from "*in" into *value. On success,
+// advances "*in" past the consumed number and sets "*val" to the
+// numeric value. Otherwise, returns false and leaves *in in an
+// unspecified state.
+extern bool ConsumeDecimalNumber(Slice* in, uint64_t* val);
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_UTIL_LOGGING_H_
diff --git a/clipper/HyperLevelDB/util/mutexlock.h b/clipper/HyperLevelDB/util/mutexlock.h
new file mode 100644
index 0000000..1ff5a9e
--- /dev/null
+++ b/clipper/HyperLevelDB/util/mutexlock.h
@@ -0,0 +1,41 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#ifndef STORAGE_LEVELDB_UTIL_MUTEXLOCK_H_
+#define STORAGE_LEVELDB_UTIL_MUTEXLOCK_H_
+
+#include "port/port.h"
+#include "port/thread_annotations.h"
+
+namespace leveldb {
+
+// Helper class that locks a mutex on construction and unlocks the mutex when
+// the destructor of the MutexLock object is invoked.
+//
+// Typical usage:
+//
+// void MyClass::MyMethod() {
+// MutexLock l(&mu_); // mu_ is an instance variable
+// ... some complex code, possibly with multiple return paths ...
+// }
+
+class SCOPED_LOCKABLE MutexLock {
+ public:
+ explicit MutexLock(port::Mutex *mu) EXCLUSIVE_LOCK_FUNCTION(mu)
+ : mu_(mu) {
+ this->mu_->Lock();
+ }
+ ~MutexLock() UNLOCK_FUNCTION() { this->mu_->Unlock(); }
+
+ private:
+ port::Mutex *const mu_;
+ // No copying allowed
+ MutexLock(const MutexLock&);
+ void operator=(const MutexLock&);
+};
+
+} // namespace leveldb
+
+
+#endif // STORAGE_LEVELDB_UTIL_MUTEXLOCK_H_
diff --git a/clipper/HyperLevelDB/util/options.cc b/clipper/HyperLevelDB/util/options.cc
new file mode 100644
index 0000000..62d5009
--- /dev/null
+++ b/clipper/HyperLevelDB/util/options.cc
@@ -0,0 +1,30 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "hyperleveldb/options.h"
+
+#include "hyperleveldb/comparator.h"
+#include "hyperleveldb/env.h"
+
+namespace leveldb {
+
+Options::Options()
+ : comparator(BytewiseComparator()),
+ create_if_missing(false),
+ error_if_exists(false),
+ paranoid_checks(false),
+ env(Env::Default()),
+ info_log(NULL),
+ write_buffer_size(4<<20),
+ max_open_files(1000),
+ block_cache(NULL),
+ block_size(4096),
+ block_restart_interval(16),
+ compression(kSnappyCompression),
+ filter_policy(NULL),
+ manual_garbage_collection(false) {
+}
+
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/util/posix_logger.h b/clipper/HyperLevelDB/util/posix_logger.h
new file mode 100644
index 0000000..ca84f14
--- /dev/null
+++ b/clipper/HyperLevelDB/util/posix_logger.h
@@ -0,0 +1,98 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+//
+// Logger implementation that can be shared by all environments
+// where enough posix functionality is available.
+
+#ifndef STORAGE_LEVELDB_UTIL_POSIX_LOGGER_H_
+#define STORAGE_LEVELDB_UTIL_POSIX_LOGGER_H_
+
+#include <algorithm>
+#include <stdio.h>
+#include <sys/time.h>
+#include <time.h>
+#include "hyperleveldb/env.h"
+
+namespace leveldb {
+
+class PosixLogger : public Logger {
+ private:
+ FILE* file_;
+ uint64_t (*gettid_)(); // Return the thread id for the current thread
+ public:
+ PosixLogger(FILE* f, uint64_t (*gettid)()) : file_(f), gettid_(gettid) { }
+ virtual ~PosixLogger() {
+ fclose(file_);
+ }
+ virtual void Logv(const char* format, va_list ap) {
+ const uint64_t thread_id = (*gettid_)();
+
+ // We try twice: the first time with a fixed-size stack allocated buffer,
+ // and the second time with a much larger dynamically allocated buffer.
+ char buffer[500];
+ for (int iter = 0; iter < 2; iter++) {
+ char* base;
+ int bufsize;
+ if (iter == 0) {
+ bufsize = sizeof(buffer);
+ base = buffer;
+ } else {
+ bufsize = 30000;
+ base = new char[bufsize];
+ }
+ char* p = base;
+ char* limit = base + bufsize;
+
+ struct timeval now_tv;
+ gettimeofday(&now_tv, NULL);
+ const time_t seconds = now_tv.tv_sec;
+ struct tm t;
+ localtime_r(&seconds, &t);
+ p += snprintf(p, limit - p,
+ "%04d/%02d/%02d-%02d:%02d:%02d.%06d %llx ",
+ t.tm_year + 1900,
+ t.tm_mon + 1,
+ t.tm_mday,
+ t.tm_hour,
+ t.tm_min,
+ t.tm_sec,
+ static_cast<int>(now_tv.tv_usec),
+ static_cast<long long unsigned int>(thread_id));
+
+ // Print the message
+ if (p < limit) {
+ va_list backup_ap;
+ va_copy(backup_ap, ap);
+ p += vsnprintf(p, limit - p, format, backup_ap);
+ va_end(backup_ap);
+ }
+
+ // Truncate to available space if necessary
+ if (p >= limit) {
+ if (iter == 0) {
+ continue; // Try again with larger buffer
+ } else {
+ p = limit - 1;
+ }
+ }
+
+ // Add newline if necessary
+ if (p == base || p[-1] != '\n') {
+ *p++ = '\n';
+ }
+
+ assert(p <= limit);
+ fwrite(base, 1, p - base, file_);
+ fflush(file_);
+ if (base != buffer) {
+ delete[] base;
+ }
+ break;
+ }
+ }
+};
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_UTIL_POSIX_LOGGER_H_
diff --git a/clipper/HyperLevelDB/util/random.h b/clipper/HyperLevelDB/util/random.h
new file mode 100644
index 0000000..ddd51b1
--- /dev/null
+++ b/clipper/HyperLevelDB/util/random.h
@@ -0,0 +1,64 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#ifndef STORAGE_LEVELDB_UTIL_RANDOM_H_
+#define STORAGE_LEVELDB_UTIL_RANDOM_H_
+
+#include <stdint.h>
+
+namespace leveldb {
+
+// A very simple random number generator. Not especially good at
+// generating truly random bits, but good enough for our needs in this
+// package.
+class Random {
+ private:
+ uint32_t seed_;
+ public:
+ explicit Random(uint32_t s) : seed_(s & 0x7fffffffu) {
+ // Avoid bad seeds.
+ if (seed_ == 0 || seed_ == 2147483647L) {
+ seed_ = 1;
+ }
+ }
+ uint32_t Next() {
+ static const uint32_t M = 2147483647L; // 2^31-1
+ static const uint64_t A = 16807; // bits 14, 8, 7, 5, 2, 1, 0
+ // We are computing
+ // seed_ = (seed_ * A) % M, where M = 2^31-1
+ //
+ // seed_ must not be zero or M, or else all subsequent computed values
+ // will be zero or M respectively. For all other values, seed_ will end
+ // up cycling through every number in [1,M-1]
+ uint64_t product = seed_ * A;
+
+ // Compute (product % M) using the fact that ((x << 31) % M) == x.
+ seed_ = static_cast<uint32_t>((product >> 31) + (product & M));
+ // The first reduction may overflow by 1 bit, so we may need to
+ // repeat. mod == M is not possible; using > allows the faster
+ // sign-bit-based test.
+ if (seed_ > M) {
+ seed_ -= M;
+ }
+ return seed_;
+ }
+ // Returns a uniformly distributed value in the range [0..n-1]
+ // REQUIRES: n > 0
+ uint32_t Uniform(int n) { return Next() % n; }
+
+ // Randomly returns true ~"1/n" of the time, and false otherwise.
+ // REQUIRES: n > 0
+ bool OneIn(int n) { return (Next() % n) == 0; }
+
+ // Skewed: pick "base" uniformly from range [0,max_log] and then
+ // return "base" random bits. The effect is to pick a number in the
+ // range [0,2^max_log-1] with exponential bias towards smaller numbers.
+ uint32_t Skewed(int max_log) {
+ return Uniform(1 << Uniform(max_log + 1));
+ }
+};
+
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_UTIL_RANDOM_H_
diff --git a/clipper/HyperLevelDB/util/status.cc b/clipper/HyperLevelDB/util/status.cc
new file mode 100644
index 0000000..51bbfdb
--- /dev/null
+++ b/clipper/HyperLevelDB/util/status.cc
@@ -0,0 +1,75 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include <stdio.h>
+#include "port/port.h"
+#include "hyperleveldb/status.h"
+
+namespace leveldb {
+
+const char* Status::CopyState(const char* state) {
+ uint32_t size;
+ memcpy(&size, state, sizeof(size));
+ char* result = new char[size + 5];
+ memcpy(result, state, size + 5);
+ return result;
+}
+
+Status::Status(Code code, const Slice& msg, const Slice& msg2) {
+ assert(code != kOk);
+ const uint32_t len1 = msg.size();
+ const uint32_t len2 = msg2.size();
+ const uint32_t size = len1 + (len2 ? (2 + len2) : 0);
+ char* result = new char[size + 5];
+ memcpy(result, &size, sizeof(size));
+ result[4] = static_cast<char>(code);
+ memcpy(result + 5, msg.data(), len1);
+ if (len2) {
+ result[5 + len1] = ':';
+ result[6 + len1] = ' ';
+ memcpy(result + 7 + len1, msg2.data(), len2);
+ }
+ state_ = result;
+}
+
+std::string Status::ToString() const {
+ if (state_ == NULL) {
+ return "OK";
+ } else {
+ char tmp[30];
+ const char* type;
+ switch (code()) {
+ case kOk:
+ type = "OK";
+ break;
+ case kNotFound:
+ type = "NotFound: ";
+ break;
+ case kCorruption:
+ type = "Corruption: ";
+ break;
+ case kNotSupported:
+ type = "Not implemented: ";
+ break;
+ case kInvalidArgument:
+ type = "Invalid argument: ";
+ break;
+ case kIOError:
+ type = "IO error: ";
+ break;
+ default:
+ snprintf(tmp, sizeof(tmp), "Unknown code(%d): ",
+ static_cast<int>(code()));
+ type = tmp;
+ break;
+ }
+ std::string result(type);
+ uint32_t length;
+ memcpy(&length, state_, sizeof(length));
+ result.append(state_ + 5, length);
+ return result;
+ }
+}
+
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/util/testharness.cc b/clipper/HyperLevelDB/util/testharness.cc
new file mode 100644
index 0000000..402fab3
--- /dev/null
+++ b/clipper/HyperLevelDB/util/testharness.cc
@@ -0,0 +1,77 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "util/testharness.h"
+
+#include <string>
+#include <stdlib.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+
+namespace leveldb {
+namespace test {
+
+namespace {
+struct Test {
+ const char* base;
+ const char* name;
+ void (*func)();
+};
+std::vector<Test>* tests;
+}
+
+bool RegisterTest(const char* base, const char* name, void (*func)()) {
+ if (tests == NULL) {
+ tests = new std::vector<Test>;
+ }
+ Test t;
+ t.base = base;
+ t.name = name;
+ t.func = func;
+ tests->push_back(t);
+ return true;
+}
+
+int RunAllTests() {
+ const char* matcher = getenv("LEVELDB_TESTS");
+
+ int num = 0;
+ if (tests != NULL) {
+ for (size_t i = 0; i < tests->size(); i++) {
+ const Test& t = (*tests)[i];
+ if (matcher != NULL) {
+ std::string name = t.base;
+ name.push_back('.');
+ name.append(t.name);
+ if (strstr(name.c_str(), matcher) == NULL) {
+ continue;
+ }
+ }
+ fprintf(stderr, "==== Test %s.%s\n", t.base, t.name);
+ (*t.func)();
+ ++num;
+ }
+ }
+ fprintf(stderr, "==== PASSED %d tests\n", num);
+ return 0;
+}
+
+std::string TmpDir() {
+ std::string dir;
+ Status s = Env::Default()->GetTestDirectory(&dir);
+ ASSERT_TRUE(s.ok()) << s.ToString();
+ return dir;
+}
+
+int RandomSeed() {
+ const char* env = getenv("TEST_RANDOM_SEED");
+ int result = (env != NULL ? atoi(env) : 301);
+ if (result <= 0) {
+ result = 301;
+ }
+ return result;
+}
+
+} // namespace test
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/util/testharness.h b/clipper/HyperLevelDB/util/testharness.h
new file mode 100644
index 0000000..d9555e3
--- /dev/null
+++ b/clipper/HyperLevelDB/util/testharness.h
@@ -0,0 +1,138 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#ifndef STORAGE_LEVELDB_UTIL_TESTHARNESS_H_
+#define STORAGE_LEVELDB_UTIL_TESTHARNESS_H_
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <sstream>
+#include "hyperleveldb/env.h"
+#include "hyperleveldb/slice.h"
+#include "util/random.h"
+
+namespace leveldb {
+namespace test {
+
+// Run some of the tests registered by the TEST() macro. If the
+// environment variable "LEVELDB_TESTS" is not set, runs all tests.
+// Otherwise, runs only the tests whose name contains the value of
+// "LEVELDB_TESTS" as a substring. E.g., suppose the tests are:
+// TEST(Foo, Hello) { ... }
+// TEST(Foo, World) { ... }
+// LEVELDB_TESTS=Hello will run the first test
+// LEVELDB_TESTS=o will run both tests
+// LEVELDB_TESTS=Junk will run no tests
+//
+// Returns 0 if all tests pass.
+// Dies or returns a non-zero value if some test fails.
+extern int RunAllTests();
+
+// Return the directory to use for temporary storage.
+extern std::string TmpDir();
+
+// Return a randomization seed for this run. Typically returns the
+// same number on repeated invocations of this binary, but automated
+// runs may be able to vary the seed.
+extern int RandomSeed();
+
+// An instance of Tester is allocated to hold temporary state during
+// the execution of an assertion.
+class Tester {
+ private:
+ bool ok_;
+ const char* fname_;
+ int line_;
+ std::stringstream ss_;
+
+ public:
+ Tester(const char* f, int l)
+ : ok_(true), fname_(f), line_(l) {
+ }
+
+ ~Tester() {
+ if (!ok_) {
+ fprintf(stderr, "%s:%d:%s\n", fname_, line_, ss_.str().c_str());
+ exit(1);
+ }
+ }
+
+ Tester& Is(bool b, const char* msg) {
+ if (!b) {
+ ss_ << " Assertion failure " << msg;
+ ok_ = false;
+ }
+ return *this;
+ }
+
+ Tester& IsOk(const Status& s) {
+ if (!s.ok()) {
+ ss_ << " " << s.ToString();
+ ok_ = false;
+ }
+ return *this;
+ }
+
+#define BINARY_OP(name,op) \
+ template <class X, class Y> \
+ Tester& name(const X& x, const Y& y) { \
+ if (! (x op y)) { \
+ ss_ << " failed: " << x << (" " #op " ") << y; \
+ ok_ = false; \
+ } \
+ return *this; \
+ }
+
+ BINARY_OP(IsEq, ==)
+ BINARY_OP(IsNe, !=)
+ BINARY_OP(IsGe, >=)
+ BINARY_OP(IsGt, >)
+ BINARY_OP(IsLe, <=)
+ BINARY_OP(IsLt, <)
+#undef BINARY_OP
+
+ // Attach the specified value to the error message if an error has occurred
+ template <class V>
+ Tester& operator<<(const V& value) {
+ if (!ok_) {
+ ss_ << " " << value;
+ }
+ return *this;
+ }
+};
+
+#define ASSERT_TRUE(c) ::leveldb::test::Tester(__FILE__, __LINE__).Is((c), #c)
+#define ASSERT_OK(s) ::leveldb::test::Tester(__FILE__, __LINE__).IsOk((s))
+#define ASSERT_EQ(a,b) ::leveldb::test::Tester(__FILE__, __LINE__).IsEq((a),(b))
+#define ASSERT_NE(a,b) ::leveldb::test::Tester(__FILE__, __LINE__).IsNe((a),(b))
+#define ASSERT_GE(a,b) ::leveldb::test::Tester(__FILE__, __LINE__).IsGe((a),(b))
+#define ASSERT_GT(a,b) ::leveldb::test::Tester(__FILE__, __LINE__).IsGt((a),(b))
+#define ASSERT_LE(a,b) ::leveldb::test::Tester(__FILE__, __LINE__).IsLe((a),(b))
+#define ASSERT_LT(a,b) ::leveldb::test::Tester(__FILE__, __LINE__).IsLt((a),(b))
+
+#define TCONCAT(a,b) TCONCAT1(a,b)
+#define TCONCAT1(a,b) a##b
+
+#define TEST(base,name) \
+class TCONCAT(_Test_,name) : public base { \
+ public: \
+ void _Run(); \
+ static void _RunIt() { \
+ TCONCAT(_Test_,name) t; \
+ t._Run(); \
+ } \
+}; \
+bool TCONCAT(_Test_ignored_,name) = \
+ ::leveldb::test::RegisterTest(#base, #name, &TCONCAT(_Test_,name)::_RunIt); \
+void TCONCAT(_Test_,name)::_Run()
+
+// Register the specified test. Typically not used directly, but
+// invoked via the macro expansion of TEST.
+extern bool RegisterTest(const char* base, const char* name, void (*func)());
+
+
+} // namespace test
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_UTIL_TESTHARNESS_H_
diff --git a/clipper/HyperLevelDB/util/testutil.cc b/clipper/HyperLevelDB/util/testutil.cc
new file mode 100644
index 0000000..bee56bf
--- /dev/null
+++ b/clipper/HyperLevelDB/util/testutil.cc
@@ -0,0 +1,51 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "util/testutil.h"
+
+#include "util/random.h"
+
+namespace leveldb {
+namespace test {
+
+Slice RandomString(Random* rnd, int len, std::string* dst) {
+ dst->resize(len);
+ for (int i = 0; i < len; i++) {
+ (*dst)[i] = static_cast<char>(' ' + rnd->Uniform(95)); // ' ' .. '~'
+ }
+ return Slice(*dst);
+}
+
+std::string RandomKey(Random* rnd, int len) {
+ // Make sure to generate a wide variety of characters so we
+ // test the boundary conditions for short-key optimizations.
+ static const char kTestChars[] = {
+ '\0', '\1', 'a', 'b', 'c', 'd', 'e', '\xfd', '\xfe', '\xff'
+ };
+ std::string result;
+ for (int i = 0; i < len; i++) {
+ result += kTestChars[rnd->Uniform(sizeof(kTestChars))];
+ }
+ return result;
+}
+
+
+extern Slice CompressibleString(Random* rnd, double compressed_fraction,
+ size_t len, std::string* dst) {
+ int raw = static_cast<int>(len * compressed_fraction);
+ if (raw < 1) raw = 1;
+ std::string raw_data;
+ RandomString(rnd, raw, &raw_data);
+
+ // Duplicate the random data until we have filled "len" bytes
+ dst->clear();
+ while (dst->size() < len) {
+ dst->append(raw_data);
+ }
+ dst->resize(len);
+ return Slice(*dst);
+}
+
+} // namespace test
+} // namespace leveldb
diff --git a/clipper/HyperLevelDB/util/testutil.h b/clipper/HyperLevelDB/util/testutil.h
new file mode 100644
index 0000000..4120b3a
--- /dev/null
+++ b/clipper/HyperLevelDB/util/testutil.h
@@ -0,0 +1,53 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#ifndef STORAGE_LEVELDB_UTIL_TESTUTIL_H_
+#define STORAGE_LEVELDB_UTIL_TESTUTIL_H_
+
+#include "hyperleveldb/env.h"
+#include "hyperleveldb/slice.h"
+#include "util/random.h"
+
+namespace leveldb {
+namespace test {
+
+// Store in *dst a random string of length "len" and return a Slice that
+// references the generated data.
+extern Slice RandomString(Random* rnd, int len, std::string* dst);
+
+// Return a random key with the specified length that may contain interesting
+// characters (e.g. \x00, \xff, etc.).
+extern std::string RandomKey(Random* rnd, int len);
+
+// Store in *dst a string of length "len" that will compress to
+// "N*compressed_fraction" bytes and return a Slice that references
+// the generated data.
+extern Slice CompressibleString(Random* rnd, double compressed_fraction,
+ size_t len, std::string* dst);
+
+// A wrapper that allows injection of errors.
+class ErrorEnv : public EnvWrapper {
+ public:
+ bool writable_file_error_;
+ int num_writable_file_errors_;
+
+ ErrorEnv() : EnvWrapper(Env::Default()),
+ writable_file_error_(false),
+ num_writable_file_errors_(0) { }
+
+ virtual Status NewWritableFile(const std::string& fname,
+ WritableFile** result) {
+ if (writable_file_error_) {
+ ++num_writable_file_errors_;
+ *result = NULL;
+ return Status::IOError(fname, "fake error");
+ }
+ return target()->NewWritableFile(fname, result);
+ }
+};
+
+} // namespace test
+} // namespace leveldb
+
+#endif // STORAGE_LEVELDB_UTIL_TESTUTIL_H_
diff --git a/Makefile b/clipper/Makefile
similarity index 70%
rename from Makefile
rename to clipper/Makefile
index 36b0b5b..2c083f2 100644
--- a/Makefile
+++ b/clipper/Makefile
@@ -1,27 +1,25 @@
#
-# $Id: Makefile 670 2013-12-13 16:47:07Z earonesty $
+# $Id$
CC=g++
PREFIX?=/usr
BINDIR?=$(PREFIX)/bin
CFLAGS?=-O3 -I.
-CPPFLAGS?=-O3 -I.
# for debugging:
# CFLAGS?=-g -I.
-# CPPFLAGS?=-g -I.
PKG=ea-utils
-REL := $(shell svnversion 2>/dev/null | perl -ne 'print $$1 if /:(\d+)/' )
+REL := $(shell svnversion 2>/dev/null | perl -ne 'print $$1 if /(\d+)/' )
VER := $(shell grep '%define ver' ${PKG}.spec | perl -ne 'print $$1 if / (\S+) *$$/')
-SRC=fastq-clipper.c fastq-mcf.c fastq-multx.c fastq-join.c fastq-stats.cpp gcModel.c
+SRC=fastq-clipper.cpp fastq-mcf.cpp fastq-multx.cpp fastq-join.cpp fastq-stats.cpp gcModel.cpp
BIN=fastq-mcf fastq-multx fastq-join fastq-stats fastq-clipper sam-stats varcall
TOOLS=fastx-graph gtf2bed determine-phred randomFQ alc
-all: $(BIN)
+all: $(BIN) check
debug:
- CPPFLAGS=-g ${MAKE} $(MFLAGS) varcall
+ CFLAGS="-g -I." ${MAKE} $(MFLAGS) varcall
install: $(BIN) $(BINDIR)/fastq-clipper $(BINDIR)/fastq-mcf $(BINDIR)/fastq-multx $(BINDIR)/fastq-join $(BINDIR)/fastq-stats $(BINDIR)/sam-stats $(BINDIR)/varcall $(BINDIR)/fastx-graph $(BINDIR)/determine-phred $(BINDIR)/randomFQ $(BINDIR)/alc
@@ -39,12 +37,12 @@ dist: getrel $(PKG).${VER}-${REL}.tar.gz
getrel:
grep "${REL}" $(PKG).spec || touch $(PKG).spex
-.PHONY: getrel debug
+.PHONY: getrel debug $(PKG).spec
-$(PKG).spec: $(PKG).spex
+$(PKG).spec:
perl -pe 's/%RELEASE%/${REL}/' $(PKG).spex > $(PKG).spec
-$(PKG).tar.gz: Makefile $(TOOLS) $(SRC) $(PKG).spec fastq-lib.cpp fastq-lib.h sam-stats.cpp fastq-stats.cpp gcModel.c gcModel.h varcall.cpp utils.h README CHANGES google sparsehash samtools/*.c
+$(PKG).tar.gz: Makefile $(TOOLS) $(SRC) $(PKG).spec fastq-lib.cpp fastq-lib.h sam-stats.cpp fastq-stats.cpp gcModel.cpp gcModel.h varcall.cpp utils.h README CHANGES sparsehash-2.0.2 samtools/*.c t
rm -rf $(PKG).${VER}-${REL}
mkdir $(PKG).${VER}-${REL}
mkdir $(PKG).${VER}-${REL}/tidx
@@ -55,29 +53,28 @@ $(PKG).tar.gz: Makefile $(TOOLS) $(SRC) $(PKG).spec fastq-lib.cpp fastq-lib.h sa
tar --exclude=".svn" -cvzf $(PKG).tar.gz $(PKG).${VER}-${REL}
rm -rf $(PKG).${VER}-${REL}
+check: $(BIN)
+ prove -j 4 t
+
disttest: $(PKG).tar.gz
+ rm -rf $(PKG).${VER}-${REL}
tar -xzvf $(PKG).tar.gz
- cd $(PKG).${VER}-${REL} && make
+ cd $(PKG).${VER}-${REL} && make check
rm -rf $(PKG).${VER}-${REL}
$(PKG).${VER}-${REL}.tar.gz: $(PKG).tar.gz
cp $< $@
-%: %.c fastq-lib.cpp fastq-lib.h
- $(CC) $(CFLAGS) fastq-lib.cpp -o $@ $<
-
-%: %.cpp fastq-lib.cpp fastq-lib.h
- $(CC) $(CFLAGS) fastq-lib.cpp -o $@ $<
+%: %.cpp fastq-lib.cpp fastq-lib.h sparsehash
+ $(CC) $(CFLAGS) $< fastq-lib.cpp -o $@
-
-%: %.c gcModel.c gcModel.h
- $(CC) $(CFLAGS) gcModel.c -o $@ $<
-
-%: %.cpp gcModel.c gcModel.h
- $(CC) $(CFLAGS) gcModel.c -o $@ $<
+sparsehash: sparsehash-2.0.2
+ cd sparsehash-2.0.2; ./configure; make
+ mkdir sparsehash
+ cp -r sparsehash-2.0.2/src/sparsehash/* sparsehash/
# why the libbam.a doesn't work? not sure... *.o works
-sam-stats: sam-stats.cpp samtools/libbam.a samtools/bam.h fastq-lib.h
+sam-stats: sam-stats.cpp samtools/libbam.a samtools/bam.h fastq-lib.h sparsehash
ifeq ($(OS),Windows_NT)
$(CC) $(CFLAGS) samtools/*.o -lz -lpthread -lws2_32 fastq-lib.cpp $< -o $@
else
@@ -87,15 +84,18 @@ endif
samtools/libbam.a: samtools/*.c samtools/*.h
cd samtools && make libbam.a
-varcall: varcall.cpp fastq-lib.cpp tidx/tidx-lib.cpp
+ea-bcl2fastq: ea-bcl2fastq.cpp
+ $(CC) $(CFLAGS) $< -lz -o $@
+
+varcall: varcall.cpp fastq-lib.cpp tidx/tidx-lib.cpp sparsehash
ifeq ($(OS),Windows_NT)
echo varcall: not supported yet
else
$(CC) $(CFLAGS) fastq-lib.cpp tidx/tidx-lib.cpp -o $@ $< -lgsl -lgslcblas
endif
-fastq-stats: fastq-stats.cpp fastq-lib.cpp gcModel.c
- $(CC) $(CFLAGS) fastq-lib.cpp gcModel.c -o $@ $<
+fastq-stats: fastq-stats.cpp fastq-lib.cpp gcModel.cpp sparsehash
+ $(CC) $(CFLAGS) fastq-lib.cpp gcModel.cpp -o $@ $<
bam-filter: bam-filter.cpp
$(CC) $(CFLAGS) fastq-lib.cpp -o $@ $< -lbamtools
diff --git a/README b/clipper/README
similarity index 98%
rename from README
rename to clipper/README
index 8700228..dd49bda 100644
--- a/README
+++ b/clipper/README
@@ -22,6 +22,10 @@ Variant caller, takes bam or pileup output and does variant calling with advance
REQUIRES:
+On Ubuntu:
+
+sudo apt-get install subversion zlib1g-dev libgsl0-dev
+
For building sam-stats, please install this first!
https://github.com/pezmaster31/bamtools/wiki/Building-and-installing
diff --git a/clipper/affy-csv-to-bed.pl b/clipper/affy-csv-to-bed.pl
new file mode 100644
index 0000000..5949911
--- /dev/null
+++ b/clipper/affy-csv-to-bed.pl
@@ -0,0 +1,34 @@
+#!/usr/bin/perl
+
+use strict;
+use Data::Dumper;
+
+while(<>) {
+ next if /^#/;
+ last;
+}
+
+chomp;
+my @h = split /","/;
+
+while(<>) {
+ chomp;
+ my @f = split /","/;
+ my $i = 0;
+ my %d;
+ for (@h) {
+ s/"//g;
+ $d{lc($_)}=$f[$i++];
+ }
+ for (split m{///}, $d{alignments}) {
+ next if /---/;
+ my ($al) = split m{//};
+ $al=~s/^\s+//;
+ $al=~s/\s+$//;
+ $al=~s/\t/ /g;
+ my ($chr, $st, $en, $strand) = $al =~ /([^:]+):(\d+)-(\d+) \((.)\)/;
+ --$st;
+ print "$chr\t$st\t$en\t{$al}\t0\t$strand\n";
+ }
+}
+
diff --git a/clipper/affy-liftover.pl b/clipper/affy-liftover.pl
new file mode 100644
index 0000000..e683920
--- /dev/null
+++ b/clipper/affy-liftover.pl
@@ -0,0 +1,97 @@
+#!/usr/bin/perl
+
+use strict;
+use Getopt::Long;
+
+my %opt;
+die usage() unless GetOptions(\%opt, "csv=s", "chain=s", "output=s");
+die usage() unless $opt{chain} && $opt{csv};
+
+sub usage {
+<<EOF
+
+usage: $0 --csv=affy.csv --chain=lifover.chain.gz
+
+options:
+
+-o PREFIX (defaults to CSVBASENAME-lift)
+
+Output: PREFIX.csv
+
+Also generates temp files with PREFIX.
+
+EOF
+}
+
+my $out = $opt{csv};
+$out =~ s/\.csv$//i;
+$out = "$out-lift";
+$out = $opt{output} if $opt{output};
+$out =~ s/\.csv$//;
+
+system("perl /opt/scripts/affy-csv-to-bed.pl $opt{csv} > $opt{csv}.bed") && die;
+system("./liftOver -minMatch=0.75 $opt{csv}.bed $opt{chain} ${out}.bed ${out}.unchain") && die;
+
+my $unmap = 0+`wc -l $out.unchain`;
+
+print "warning\tlost $unmap annotations during liftover\n";
+
+open (IN, "${out}.bed") || die "${out}.bed:$!";
+
+my %map;
+while (<IN>) {
+# liftover coverts spaces to tabs in an unusual way.... fix this!
+ chomp;
+
+ die unless s/{([^{}]+)}/X/;
+
+ my ($orig) = $1;
+ $orig =~ s/\t/ /g;
+
+ my ($chr, $st, $en, undef, undef, $str) = split /\t/;
+ die unless $str =~ /\+|-/;
+
+ ++$st;
+ my $new = "$chr:$st-$en ($str)";
+ $map{$orig}=$new;
+}
+
+open (IN, $opt{csv}) || die "$opt{csv} : $!";
+
+while(<IN>) {
+ print $_ && next if /^#/;
+ last;
+}
+chomp;
+my @h = split /","/, $_;
+my $i_al=-1;
+for (@h) {
+ ++$i_al;
+ last if /^alignments/i;
+}
+die "invalid CSV file, no alignments header" unless $i_al > 0;
+
+open OUT, ">$out.csv";
+
+while(my $l=<IN>) {
+ print $l && next if /^#/;
+ my @f = split /","/, $l;
+ my @sub;
+ for my $al (split m{///}, $f[$i_al]) {
+ my ($orig) = split m{//}, $al;
+ $orig=~s/^\s+//;
+ $orig=~s/\s+$//;
+ $orig=~s/\t//g;
+ my $new=$map{$orig};
+ if ($new) {
+ my $tmp=$al;
+ die unless $tmp=~ s/\Q$orig\E/$new/;
+ push @sub, [$al, $tmp];
+ }
+ }
+ for (@sub) {
+ die unless $l=~s/\Q$_->[0]\E/$_->[1]/;
+ }
+ print OUT $l;
+}
+
diff --git a/clipper/aggregate-results-by-gene.pl b/clipper/aggregate-results-by-gene.pl
new file mode 100644
index 0000000..3d87381
--- /dev/null
+++ b/clipper/aggregate-results-by-gene.pl
@@ -0,0 +1,294 @@
+#!/usr/bin/perl
+
+#Copyright (c) 2012 Erik Aronesty (erik at q32.com)
+#
+#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.
+#
+#ALSO, IT WOULD BE NICE IF YOU LET ME KNOW YOU USED IT.
+
+use strict;
+use Getopt::Long;
+use IO::File;
+use Data::Dumper;
+use Carp qw(croak);
+
+my %opt;
+GetOptions(\%opt, "gtf=s") || die usage();
+die usage() if !$opt{gtf};
+
+# open gtf
+open(G, $opt{gtf}) || die("$opt{gtf}: $!\n");
+my $f = shift @ARGV;
+
+# open counts
+open(IN, $f) || die "$f: $!\n";
+
+# read gtf into hash
+my %gs;
+my %tids;
+while(<G>) {
+ my @fds = split /\t/, $_;
+ my ($g) = $fds[8]=~/gene_id "([^"]+)"/;
+ my ($t) = $fds[8]=~/transcript_id "([^"]+)"/;
+ $gs{$t}=$g;
+ $tids{$g}{$t}=1;
+}
+
+die "gtf file has no genes\n" unless %gs;
+my $head1 = <IN>; chomp $head1;
+
+my $format = $head1 =~ /est_counts/ ? "express" :
+ $head1 =~ /^\S*:\S+\t\d+\t\d+\t\d/ ? "coverage-matrix" :
+ undef;
+
+die "File is not known express 1.x, or sam-stats coverage-matrix output\n" unless $format;
+
+close IN;
+
+for (keys(%tids)) {
+ $tids{$_}=join ',', keys(%{$tids{$_}});
+}
+
+my @fields = ();
+if ($format eq 'coverage-matrix') {
+ @fields = (fields=>["transcript_id", "length", "count", "coverage", "skew"]);
+}
+
+my %agg;
+my $tot_count;
+xsvparse($f, sub => sub {
+ my ($d) = @_;
+ if ($format eq 'express') {
+ my $g = $gs{$d->{target_id}};
+ return unless $g;
+ $agg{$g}{fpkm}+=$d->{fpkm};
+ $agg{$g}{eff_length}+=$d->{eff_length}*($d->{est_counts}+1);
+ $agg{$g}{length}+=$d->{length}*($d->{est_counts}+1);
+ $agg{$g}{est_counts}+=$d->{est_counts};
+ $agg{$g}{eff_counts}+=$d->{eff_counts};
+ $agg{$g}{junk_counts}+=$d->{est_counts}+1;
+ $agg{$g}{fpkm_conf_high}+=$d->{fpkm_conf_high};
+ $agg{$g}{fpkm_conf_low}+=$d->{fpkm_conf_low};
+ $agg{$g}{transcript_ids}=$tids{$g};
+ } else {
+ $tot_count+=$d->{count};
+ my $g = $gs{$d->{transcript_id}};
+ return unless $g;
+ $agg{$g}{fpkm}+=1000*$d->{count}/$d->{length};
+ $agg{$g}{count}+=$d->{count};
+ $agg{$g}{length}+=$d->{length}*($d->{count}+1);
+ $agg{$g}{transcript_ids}=$tids{$g};
+ $agg{$g}{junk_counts}+=$d->{count}+1;
+ }
+},nocase=>1, @fields);
+
+my @fds = qw(gene_id est_counts eff_counts length eff_length fpkm fpkm_conf_low fpkm_conf_high transcript_ids);
+
+if ($format eq 'coverage-matrix') {
+ @fds = qw(gene_id count length fpkm transcript_ids);
+}
+print join("\t", @fds), "\n";
+
+for my $g (sort {$agg{$b}->{fpkm} <=> $agg{$a}->{fpkm}} keys(%agg) ) {
+ $agg{$g}{gene_id}=$g;
+ $agg{$g}{eff_length}/=$agg{$g}{junk_counts};
+ $agg{$g}{length}/=$agg{$g}{junk_counts};
+ if ($format eq 'coverage-matrix') {
+ $agg{$g}{fpkm}/=($tot_count/1000000);
+ }
+ print join("\t", map {$agg{$g}{$_}} @fds), "\n";
+}
+
+
+sub usage {
+<<EOF
+usage: $0 -g gtf_file IN1 IN2 ...
+
+Aggregates isoform counts by the gene information in a GTF file gene info
+
+Works with express-1.X output, or ea-utils/sam-stats coverage-matrix output.
+
+EOF
+}
+
+
+# this ia a really cool function that turns a csv file into a hash table
+# it's not "complete" but it works well... and at least i understand it
+# usage: xsvparse($file, option1=>val, option1=>val)
+#
+# all options are optional... by defualt it guesses the quote char, and the delimiter, and returns an array of hashes
+# if you specify a key, then it will return a hash of hashes indexed by that key
+# for example xsvparse("Summary.tsv", key=lane);
+
+# OPTIONS:
+# nocase BOOL : lowercases all keys and field names
+# skip INT|REGEX : skips lines of file before reading
+# fields AREF : reference to an array of field names, for files without headers
+# key NAME : if specified, you get a hash of hashes indexed by a key field
+# delim TEXT : if specified, the delimiter to use (otherwise autodetect)
+# quot TEXT : if specified, the quot char to use (otherwise autodetect)
+# multi BOOL : if specified, each keyed entry is an arrayref of all matches
+# sub FUNCREF : if specified, each row is passed to the funcref
+
+
+sub xsvparse {
+ my ($file, %op) = @_;
+
+ my $in = new IO::File;
+ my $fin = $file =~ /\.gz$/ ? "gunzip -c $file|" : $file;
+ open ($in, $fin) || return undef;
+
+ lcasehash(\%op);
+
+ my $l1;
+
+ if (!$op{delim}) {
+ $l1 = <$in>;
+ $l1 =~ s/[\r\n]+$//o;
+ }
+
+ my $skip_me = sub {
+ if ($op{skip}) {
+ if (ref($op{skip}) eq 'Regexp') {
+ do {
+ $l1 = <$in>; $l1 =~ s/[\r\n]+$//o;
+ } while ($l1 =~ $op{skip});
+ } else {
+ my $skip = $op{skip};
+ while ($skip > 0) {
+ $l1 = <$in>; $l1 =~ s/[\r\n]+$//o;
+ --$skip;
+ }
+ }
+ }
+ };
+
+ &$skip_me();
+
+ return undef unless $l1 || $op{delim};
+
+ local $_;
+
+ if (!$op{delim}) {
+ my $n = 0;
+ my $d;
+ for ("\t", ",", "|") {
+ my $c = $_ eq "\t" ? $l1 =~ tr/\t// : $_ eq "," ? $l1 =~ tr/,// : $l1 =~ tr/|//;
+ if ($c > $n) {$d = $_; $n = $c};
+ }
+ $op{delim} = $d if $n > 0;
+ croak "xsvparse can't determine delimiter for $file" if $n == 0;
+ if ($op{fields}) {
+ close($in);
+ open($in, $fin);
+ &$skip_me();
+ }
+ }
+
+ my $rxm = undef;
+ if (!$op{quot}) {
+ my $n = $l1 =~ tr/\"//;
+ if ($n > 1) {
+ $op{quot} = '"';
+ }
+ }
+ if ($op{quot}) {
+ # quoted csv parser... slower, but works fine
+ $rxm = qr{$op{quot}([^$op{quot}\\]*(?:\\.[^$op{quot}\\]*)*)$op{quot}$op{delim}?|([^$op{delim}]+)$op{delim}?|$op{delim}};
+ }
+ if ($op{fields}) {
+ if (!ref($op{fields}) eq 'ARRAY') {
+ die "list of field names should be an array";
+ }
+ } else {
+ if (!$op{fields}) {
+ $l1 = <$in> if ! defined $l1;
+ if ($rxm) {
+ @{$op{fields}} = ();
+ push(@{$op{fields}} ,$+) while $l1 =~ m/$rxm/gx;
+ } else {
+ $op{fields} = [split($op{delim}, $l1)];
+ map {s/\s+$//} @{$op{fields}};
+ }
+ }
+ if ($op{rnames}) {
+ $op{fields} = ['<key>', @{$op{fields}}] unless $op{fields}->[0] eq '';
+ $op{fields}->[0]=$op{key}='<key>';
+ }
+ if ($op{nocase}) {
+ for (@{$op{fields}}) {
+ $_=lc($_);
+ }
+ }
+ }
+ if ($op{nocase} && $op{key}) {
+ $op{key} = lc($op{key});
+ }
+
+ no warnings;
+ my $r;
+ my @d;
+ my @d;
+ while (<$in>) {
+ s/[\r\n]+$//o;
+ if ($rxm) {
+ @d = ();
+ push(@d ,$+) while m/$rxm/gx;
+ push(@d,undef) if substr($_, -1,1) eq $op{delim};
+ } else {
+ @d = split($op{delim}, $_);
+ }
+ my %h;
+ for (my $i = 0; $i < @{$op{fields}}; ++$i) {
+ $h{$op{fields}->[$i]}=$d[$i];
+ }
+ if ($op{sub}) {
+ last if &{$op{sub}}(\%h) eq 'last';
+ } elsif ($op{key}) {
+ if ($op{nocase}) {
+ if ($op{multi}) {
+ push @{$r->{lc($h{$op{key}})}}, \%h;
+ } else {
+ $r->{lc($h{$op{key}})}=\%h;
+ }
+ } else {
+ if ($op{multi}) {
+ push @{$r->{$h{$op{key}}}}, \%h;
+ } else {
+ $r->{$h{$op{key}}}=\%h;
+ }
+ }
+ } else {
+ push @{$r}, \%h;
+ }
+ }
+
+ return $r;
+}
+
+sub lcasehash {
+ my $h = shift;
+ for (keys(%$h)) {
+ if (! $_ eq lc($_) ) {
+ $h->{lc($_)}=$h->{$_};
+ delete $h->{$_};
+ }
+ }
+}
+
diff --git a/alc b/clipper/alc
similarity index 100%
rename from alc
rename to clipper/alc
diff --git a/clipper/align-sw.cpp b/clipper/align-sw.cpp
new file mode 100644
index 0000000..7d434fd
--- /dev/null
+++ b/clipper/align-sw.cpp
@@ -0,0 +1,23 @@
+///A tutorial about local alignments.
+#include <iostream>
+#include <seqan/align.h>
+
+using namespace seqan;
+
+int main(int argc, char **argv)
+{
+///Example 1: This program applies the Smith-Waterman algorithm to compute the best local alignment between two given sequences.
+ if (argc < 3) {
+ fprintf(stderr, "usage: align-sw <seq1> <seq2>\n");
+ exit(1);
+ }
+
+ Align< String<char> > ali;
+ appendValue(rows(ali), argv[1]);
+ appendValue(rows(ali), argv[2]);
+ ::std::cout << "Score = " << localAlignment(ali, Score<int>(3,-3,-2, -2), SmithWaterman()) << ::std::endl;
+ ::std::cout << ali;
+ ::std::cout << "Aligns Seq1[" << clippedBeginPosition(row(ali, 0)) << ":" << (clippedEndPosition(row(ali, 0))-1) << "]";
+ ::std::cout << " and Seq2[" << clippedBeginPosition(row(ali, 1)) << ":" << (clippedEndPosition(row(ali, 1))-1) << "]" << ::std::endl << ::std::endl;
+ return 0;
+}
diff --git a/clipper/bam-filter.cpp b/clipper/bam-filter.cpp
new file mode 100644
index 0000000..3572e51
--- /dev/null
+++ b/clipper/bam-filter.cpp
@@ -0,0 +1,245 @@
+/*
+Copyright (c) 2011 Expression Analysis / Erik Aronesty
+
+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.
+
+ALSO, IT WOULD BE NICE IF YOU LET ME KNOW YOU USED IT.
+
+$Id$
+*/
+const char * VERSION = "2.0";
+
+#include <ctype.h>
+#include <stdio.h>
+
+void usage(FILE *f) {
+ fputs(
+"Usage: bam-filter [-h] [-i IN] [-b BAD-READS] [-s STAT] -f FILTER1 [-f FITLER2...] -o OUT \n"
+"Version: %s\n"
+"\n"
+" -h help\n"
+" -i input (stdin)\n"
+" -s stats (stderr)\n"
+" -t trim char (none)\n"
+" -o output bam prefix\n"
+" -b writes reads that were removed (bad reads) to this file, if specified\n"
+" -e save all equal alignments\n"
+" -m save equal only if edit distance is smaller\n"
+" -f bam file to filter input against\n"
+"\n"
+"For each read in the input bam, searches all the filters. If an analogous read in a filter has\n"
+"a higher mapping quality, then the read from the input bam is discarded.\n"
+"\n"
+ ,f);
+}
+
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <errno.h>
+#include <assert.h>
+#include <math.h>
+#include <sys/stat.h>
+
+#include <string>
+#include <sparsehash/sparse_hash_map> // or sparse_hash_set, dense_hash_map, ...
+
+#include <api/BamReader.h>
+#include <api/BamWriter.h>
+
+using namespace BamTools;
+
+class mapq {
+public:
+ int mq;
+ int nm;
+ mapq() {mq=0;nm=0;};
+};
+
+#define MAX_F 128
+
+void usage(FILE *f);
+
+int debug=0;
+int main(int argc, char **argv) {
+ char c, *in=NULL, *out=NULL, *err=NULL, *bad=NULL, trimchar = '\0';
+ char *filter[MAX_F];
+ int nfilter = 0, saveeq = 0, savenm = 0;
+
+
+ while ( (c = getopt (argc, argv, "demo:i:s:f:b:t:")) != -1) {
+ switch (c) {
+ case 'd': ++debug; break;
+ case 'b': bad=optarg; break;
+ case 'o': out=optarg; break;
+ case 'e': saveeq=1; break;
+ case 'm': savenm=1; break;
+ case 'i': in=optarg; break;
+ case 't': trimchar=*optarg; break;
+ case 's': err=optarg; break;
+ case 'h': usage(stdout); return 0;
+ case 'f': filter[nfilter++]=optarg;
+ if (nfilter >= MAX_F) {
+ fprintf(stderr, "Too many filters: %d\n", nfilter);
+ return 1;
+ }
+ break;
+ case '?':
+ if (optopt == '?') {
+ usage(stdout); return 0;
+ } else if (optopt && strchr("oisft", optopt))
+ fprintf (stderr, "Option -%c requires an argument.\n", optopt);
+ else if (isprint(optopt))
+ fprintf (stderr, "Unknown option `-%c'.\n", optopt);
+ else
+ fprintf (stderr, "Unknown option character `\\x%x'.\n", optopt);
+ usage(stderr);
+ return 1;
+ }
+ }
+ if (!nfilter) {
+ usage(stderr);
+ return 1;
+ }
+
+ if (!out) {
+ usage(stderr);
+ return 1;
+ }
+
+ FILE *ferr=stderr;
+ if (err) {
+ fprintf(stderr,"Opening %s\n",err);
+ ferr=fopen(err,"w");
+ if (!ferr) {
+ fprintf(stderr, "Error writing '%s': %s\n", err, strerror(errno));
+ }
+ }
+
+ // options are done
+ BamReader inbam;
+ if ( !inbam.Open(in) ) {
+ fprintf(stderr, "Error reading '%s': %s\n", in, strerror(errno));
+ return 1;
+ }
+
+
+ google::sparse_hash_map<std::string, mapq> pmap;
+ int i;
+ for (i=0;i<nfilter;++i) {
+ BamReader fbam;
+ if ( !fbam.Open(filter[i]) ) {
+ fprintf(stderr, "Error reading '%s': %s\n", filter[i], strerror(errno));
+ return 1;
+ }
+ if (debug) fprintf(stderr, "Indexing '%s'\n",filter[i]);
+ google::sparse_hash_map<std::string,mapq>::iterator it;
+ BamAlignment al;
+ while ( fbam.GetNextAlignment(al) ) {
+ it = pmap.find(al.Name);
+
+ mapq m;
+ m.mq = al.MapQuality;
+ al.GetTag("NM",m.nm);
+
+ if (it == pmap.end()) {
+ pmap[al.Name]=m;
+ } else {
+ if (al.MapQuality > it->second.mq) {
+ pmap[al.Name]=m;
+ }
+ }
+ }
+ }
+
+ SamHeader header = inbam.GetHeader();
+ RefVector references = inbam.GetReferenceData();
+
+ BamWriter writer;
+ BamWriter badwriter;
+
+ if ( !writer.Open(out, header, references) ) {
+ fprintf(stderr, "Error writing '%s': %s", out, strerror(errno));
+ return 1;
+ }
+
+ if ( !badwriter.Open(bad, header, references) ) {
+ fprintf(stderr, "Error writing '%s': %s", bad, strerror(errno));
+ return 1;
+ }
+
+ google::sparse_hash_map<std::string,mapq>::iterator it;
+ BamAlignment al;
+ if (debug) fprintf(stderr, "Filtering\n");
+ int na=0, gt=0, eq=0, lt=0, to=0, eq_r=0, eq_s=0;
+
+ while ( inbam.GetNextAlignment(al) ) {
+ ++to;
+ try {
+ it = pmap.find(al.Name);
+ if (it == pmap.end()) {
+ // not found?
+ writer.SaveAlignment(al);
+ ++na;
+ } else if (al.MapQuality > it->second.mq) {
+ // gt
+ ++gt;
+ writer.SaveAlignment(al);
+ } else if (al.MapQuality == it->second.mq) {
+ // eq
+ int nm;
+ al.GetTag("NM",nm);
+ if (nm < it->second.nm) {
+ // fewer mismatches
+ if (savenm) {
+ writer.SaveAlignment(al);
+ ++eq_s;
+ } else {
+ badwriter.SaveAlignment(al);
+ ++eq_r;
+ }
+ } else if (nm == it->second.nm) {
+ if (saveeq) {
+ writer.SaveAlignment(al);
+ ++eq_s;
+ } else {
+ badwriter.SaveAlignment(al);
+ ++eq_r;
+ }
+ } else {
+ badwriter.SaveAlignment(al);
+ ++eq_r;
+ }
+ } else {
+ // lt
+ badwriter.SaveAlignment(al);
+ ++lt;
+ }
+ } catch (...) {
+ }
+ }
+ fprintf(ferr,"total\t%d\n",to);
+ fprintf(ferr,"better\t%d\t%2.2f%%\n",gt,100.0*gt/(float)to);
+ if (eq_s > 0) fprintf(ferr,"eq-saved\t%d\t%2.2f%%\n",eq_s,100.0*eq_s/(float)to);
+ if (eq_r > 0) fprintf(ferr,"eq-removed\t%d\t%2.2f%%\n",eq_r,100.0*eq_r/(float)to);
+ fprintf(ferr,"removed\t%d\t%2.2f%%\n",lt,100.0*lt/(float)to);
+ if (na) fprintf(ferr,"missing\t%d\t%2.2f%%\n",na,100.0*na/(float)to);
+ return 0;
+}
+
diff --git a/clipper/bowtie-gzip.patch b/clipper/bowtie-gzip.patch
new file mode 100644
index 0000000..c71da19
--- /dev/null
+++ b/clipper/bowtie-gzip.patch
@@ -0,0 +1,34 @@
+--- pat.h 2010-08-27 13:17:04.000000000 -0400
++++ pat.h.new 2012-01-20 11:23:33.360270710 -0500
+@@ -20,6 +20,12 @@
+ #include "qual.h"
+ #include "hit_set.h"
+ #include "search_globals.h"
++#include <errno.h>
++
++static inline const char *ext(const char *s) {
++ const char *x;
++ return (x = strrchr(s, '.')) ? x : "";
++}
+
+ /**
+ * Classes and routines for reading reads from various input sources.
+@@ -1707,6 +1713,18 @@
+ FILE *in;
+ if(infiles_[filecur_] == "-") {
+ in = stdin;
++ } else if(!strcmp(ext(infiles_[filecur_].c_str()),".gz")) {
++ string tmp;
++ tmp = "gunzip -c '";
++ tmp += infiles_[filecur_];
++ tmp += "'";
++ in = popen(tmp.c_str(), "r");
++ if (!in) {
++ cerr << "Warning: Could not popen read file \"" << tmp << "\" for reading (" << strerror(errno) << "); skipping..." << endl;
++ errs_[filecur_] = true;
++ filecur_++;
++ continue;
++ }
+ } else if((in = fopen(infiles_[filecur_].c_str(), "rb")) == NULL) {
+ if(!errs_[filecur_]) {
+ cerr << "Warning: Could not open read file \"" << infiles_[filecur_] << "\" for reading; skipping..." << endl;
diff --git a/clipper/bwa-to-bowtie b/clipper/bwa-to-bowtie
new file mode 100755
index 0000000..7fec2b1
--- /dev/null
+++ b/clipper/bwa-to-bowtie
@@ -0,0 +1,407 @@
+#!/usr/bin/perl
+
+####
+#Copyright (c) 2012 Erik Aronesty (erik at q32.com)
+#
+#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.
+#
+#ALSO, IT WOULD BE NICE IF YOU LET ME KNOW YOU USED IT.
+#
+
+use strict;
+use POSIX qw(mkfifo);
+use Data::Dumper;
+
+use Getopt::Long qw(:config no_ignore_case);
+
+my %opt;
+GetOptions(\%opt, "sort|s", "fai=s", "noindel", "strand|S=s", "keep", "debug");
+
+my $f = shift @ARGV;
+my $o = shift @ARGV;
+my $keep = $opt{keep};
+
+die "Usage: $0 [options] <input-bam> <output-bam>
+
+Convert a bam file into a file similar to bowtie output
+
+This is suitable for passing to RSEM if (-n, -f) are used,
+or to EXPRESS (without -n or -f).
+
+ -s sort by id, use if the source bam is not sorted by id
+
+ -n no indels ... removes indels and soft-clip information
+ from the cigar string... ruining the validity of the MD tag
+ and any variation results... but good for pipelines (like
+ rna counting) that don't use/want this info
+" unless $f && $o =~ /bam$/;
+
+my %FAI;
+if ($opt{fai}) {
+ warn "Obsolete argument -f, ignoring\n";
+}
+
+open IN, $f =~ /\.bam$/ ? "samtools view -h $f |" : "$f";
+
+if ($opt{sort} && $f !~ /\.bam$/) {
+ die "Specify presorted or use a regular bam file\n";
+}
+
+my ($pe, $cnt, @lens, @IN);
+
+# first 5000 proper aligned reads... make an insert size
+while (<IN>) {
+ # save to stack
+ if (/^\@SQ\s+SN:(\S+)\s+LN:(\d+)/ ) {
+ $FAI{$1}=$2+0;
+ }
+
+ push @IN, $_;
+ my ($id, $bits, $nmo, $pos, $qual, $cig, $f1, $f2, $f3, $seq, $qseq, @fdx) = split /\t/, $_;
+ next unless $pos > 0;
+ ++$cnt;
+ if (abs($f3)>0) {
+ if ($f3 > 0) {
+ push @lens, $f3;
+ }
+ $pe = 1;
+ }
+ last if $cnt > 5000;
+}
+$opt{fai} = "-";
+
+# trimmed mean
+ at lens=sort {$a<=>$b} (@lens);
+$cnt = 0;
+my $insert = 0;
+for(my $i=(@lens*.10);$i<(@lens*.90);++$i) {
+ $insert+=$lens[$i]; $cnt+=1;
+}
+
+if (!$cnt && $pe) {
+ die "No paired alignments in '$f' quitting\n";
+}
+
+if (!$cnt) {
+ $insert="n/a";
+} else {
+ $insert/=$cnt;
+}
+warn "Insert size: $insert\n" if $opt{debug};
+
+if ($opt{sort}) {
+ die "-sort only if input is bam\n" unless $f =~ /\.bam$/;
+
+ my $sb = $f;
+ $sb =~ s/\.bam$//;
+ $sb .= ".ntmp";
+
+ unlink("$sb.bam");
+ warn("+mkfifo $sb.bam\n");
+ if (!mkfifo("$sb.bam", 0664)) {
+ die "Can't create fifo $sb.bam: $!\n";
+ }
+ if (!fork()) {
+ # write to sb.bam fifo in a fork
+ system("samtools sort -n $f $sb");
+ exit(0);
+ }
+ # now read from the id-sorted bam, instead of the chromosome-sorted bam
+ $f = "$sb.bam";
+ close IN;
+ @IN=();
+ open IN, $f =~ /\.bam$/ ? "samtools view $f |" : "$f";
+}
+
+my (@m);
+
+sub saveout {
+ my ($out, $mate, $nmo, $pos, $len, $isrev, $origid, $cig) = @_;
+ if ($pe) {
+ if ($mate == 0) {
+ if ($m[1]) {
+ # first pair is bwa's default
+ my $f1 = shift @{$m[0]};
+ my $f2 = shift @{$m[1]};
+
+ if ($f1->[1] eq $f2->[1] ) {
+ if (!($f1->[1] eq '*') && !($f2->[1] eq '*') && !($f1->[6] eq '*') && !($f2->[6] eq '*')) {
+ if (((($f1->[2]+$f1->[3]) < $FAI{$f1->[1]}) &&
+ (($f2->[2]+$f2->[3]) < $FAI{$f2->[1]}))) {
+ # only output proper pair, with '*' nmo's and cigs, and where both alignments are within the fai
+ print OUT $f1->[0];
+ print OUT $f2->[0];
+ } else {
+ # warn discard?
+ }
+ } else {
+ if ($keep && (($f1->[1] eq '*') && ($f2->[1] eq '*'))) {
+ print OUT $f1->[0];
+ print OUT $f2->[0];
+ } else {
+ # warn discard
+ }
+ }
+ }
+
+ if (@{$m[0]} && @{$m[1]}) {
+
+ # prune proper ... only matching mates
+ my %have;
+ for (@{$m[0]}) {
+ next if $_->[6] eq '*';
+ next if $opt{fai} && (($_->[2]+$_->[3]) > $FAI{$_->[1]});
+ $have{$_->[1]}=1;
+ }
+ for (@{$m[1]}) {
+ next if $_->[6] eq '*';
+ next if $opt{fai} && (($_->[2]+$_->[3]) > $FAI{$_->[1]});
+ $have{$_->[1]}=2 if $have{$_->[1]} == 1;
+ }
+
+ %have = map { $have{$_}==2 ? ($_=>1) : () } keys(%have);
+
+ $have{'*'} = undef;
+
+ my (@m1, @m0);
+
+ # only keep good alignments
+ for (@{$m[0]}) {
+ next if $opt{fai} && (($_->[2]+$_->[3]) > $FAI{$_->[1]});
+ push @m0, $_ if $have{$_->[1]} && !($_->[6] eq '*');
+ }
+ for (@{$m[1]}) {
+ next if $opt{fai} && (($_->[2]+$_->[3]) > $FAI{$_->[1]});
+ push @m1, $_ if $have{$_->[1]} && !($_->[6] eq '*');
+ }
+
+ @{$m[0]}=@m0;
+ @{$m[1]}=@m1;
+
+ my %taken;
+ @m0 = ();
+ @m1 = ();
+ # now pick best mate from the pruned set (first part above not really necessary, but might speed things up)
+ for my $a (@{$m[0]}) {
+ my $min = 1000000;
+ my $best;
+ for my $b (@{$m[1]}) {
+ if ($a->[1] eq $b->[1]) {
+ # distance closest to true insert size
+ my $dist = abs(abs($a->[2]-$b->[2])+$b->[3]-$insert);
+ if ($dist < $min && !$taken{scalar $b} && $dist < $insert) {
+ # if distance no more than double insert size, then it's OK (bwa should filter, but doesn't always)
+ $min=$dist;
+ $best=$b;
+ }
+ }
+ }
+ if ($best) {
+ # found a mate? output it
+ $taken{scalar $best}=1;
+ push @m0, $a;
+ push @m1, $best;
+ }
+ }
+
+ @{$m[0]}=@m0;
+ @{$m[1]}=@m1;
+
+ for (my $i=0;$i<@{$m[0]};++$i) {
+ if ($m[0][$i][5] gt $m[1][$i][5]) {
+ # swap mates so they are in the ORIGINAL-ID (read1, read2) order
+ my @tmp = @{$m[0][$i]};
+ @{$m[0][$i]} = @{$m[1][$i]};
+ @{$m[1][$i]} = @tmp;
+ }
+
+ my ($out1, $nmo1, $pos1, $len1, $isrev1, $origid, $cig) = @{$m[0][$i]};
+ my ($out2, $nmo2, $pos2, $len2, $isrev2, $origid, $cig) = @{$m[1][$i]};
+
+ # replace insert-size and mate-pos (slow!)
+ my $dist1 = $pos2-$pos1-$len2 if $isrev1 && $pos2 && $pos1;
+ $dist1 = $pos2-$pos1+$len2 if !$isrev1 && $pos2 && $pos1;
+ $out1 = replacetab($out1, 8, $dist1);
+ $out1 = replacetab($out1, 7, $pos2);
+
+ print OUT $out1;
+
+ my $dist2 = -$dist1;
+ $out2 = replacetab($out2, 8, $dist2);
+ $out2 = replacetab($out2, 7, $pos1);
+ print OUT $out2;
+ }
+ }
+ @m = ();
+ }
+ }
+ push @{$m[$mate]}, [$out, $nmo, $pos, $len, $isrev, $origid, $cig];
+ } else {
+ # only print clearly good or clearly unaligned
+ print OUT $out if ($keep && $nmo eq '*') || ((!($nmo eq '*')) && (!($cig eq '*')) && (($pos+$len) < $FAI{$nmo}));
+ # warn discard?
+ }
+}
+
+warn "Reading '$f', writing to '$o'\n" if $opt{debug};
+
+#open OUT, "|samtools view -S -b - > $o 2> /dev/null";
+open OUT, "|samtools view -S -b - > $o";
+
+my $mate = 1;
+my $previd;
+
+while (1){
+ if (@IN) {
+ # pop stack
+ $_ = shift @IN;
+ } else {
+ $_ = <IN>;
+ }
+ if (!$_) {
+ warn "Finished reading $f\n" if $opt{debug};
+ last;
+ }
+
+ next if /^\@PG/ && $opt{noindel};
+ print(OUT) && next if /^\@/;
+ chomp;
+
+ $mate = !$mate;
+
+ my ($id, $bits, $nmo, $pos, $qual, $cig, $f1, $f2, $f3, $seq, $qseq, @fdx) = split /\t/, $_;
+
+ my $origid = $id;
+
+ if (!$pe && ($cig eq '*' || $nmo eq '*')) {
+ print OUT $_, "\n" if $keep;
+ next;
+ }
+
+# ensure progression even if errors in code
+eval {
+ if ($pe && $mate && $previd) {
+ # paired-end read id's have to match each other ... IE: bowtie output
+ $_ = replacetab($_, 0, $previd);
+ $id = $previd;
+ }
+
+ # previd set
+ $previd = $id;
+
+ my ($xa, $nm);
+ for (@fdx) {
+ # get rid of XA tag
+ if (s/^XA:Z://) {
+ $xa = $_;
+ $_ = '';
+ }
+ # get rid of NM tag
+ if (s/^NM:i://) {
+ $nm = $_;
+ $_ = '';
+ }
+ }
+
+ if ($opt{noindel}) {
+ # clean cig : todo: maybe remove innacurate MD tag? or keep it because it *was* OK?
+ $cig =~ s/(\d+)I/\1M/g;
+ $cig =~ s/(\d+)D//g;
+ $cig =~ s/(\d+)S/\1M/g;
+ while ($cig =~ s/(\d+)M(\d+)M/($1+$2)."M"/e) {};
+ }
+
+ $_=replacetab($_, 5, $cig);
+
+ saveout($_."\n", $mate, $nmo, $pos, length($seq), $bits & 16, $origid, $cig) && next if !$xa;
+
+ # remove XA tag
+ $_ =~ s/\tXA:Z:[^\t]+//;
+
+ saveout($_."\n", $mate, $nmo, $pos, length($seq), $bits & 16, $origid, $cig);
+
+ my $isrev = $bits & 16;
+
+ for (split /;/, $xa) {
+ # for each x alignment
+ my ($nmo, $pos, $cig, $mm) = m/(.*),([^,]+),([^,]+),([^,]+)/;
+
+ # set reverse bits as appropriate
+ $bits = $bits & ~16;
+ $bits = $bits | 16 if $pos =~ /^-/;
+
+ if ($pos =~ /^-/) {
+ # mate not rev
+ $bits = $bits & ~0x020;
+ } else {
+ # mate rev
+ $bits = $bits | 0x020;
+ }
+
+ if ($pe) {
+ $bits = $bits & ~0x040;
+ $bits = $bits & ~0x080;
+
+ $bits = $bits | 0x040 if !$mate;
+ $bits = $bits | 0x080 if $mate;
+ }
+
+ my $s = $seq;
+ my $q = $qseq;
+ if ( ($bits & 16) != $isrev) {
+ # reverse sequence if reverse alignment
+ $s=revcomp($s);
+ $q=reverse($q);
+ }
+
+ if ($opt{noindel}) {
+ # clean cigar of all indels/soft-clips
+ $cig =~ s/(\d+)I/\1M/g;
+ $cig =~ s/(\d+)D//g;
+ $cig =~ s/(\d+)S/\1M/g;
+ while ($cig =~ s/(\d+)M(\d+)M/($1+$2)."M"/e) {};
+ }
+
+ $pos =~ s/^[+-]//;
+ my @tmp=@fdx;
+ push @tmp, "NM:i:$nm";
+ @tmp = grep /:/, @tmp;
+ my $fdx = join "\t", @tmp;
+
+ # save output
+ saveout("$id\t$bits\t$nmo\t$pos\t$qual\t$cig\t$f1\t$f2\t$f3\t$s\t$q\t$fdx\n", $mate, $nmo, $pos, length($seq), $bits & 16, $origid, $cig);
+ }
+}}
+
+$mate = !$mate;
+saveout("",$mate) if $mate == 0;
+
+sub revcomp {
+ my $r = reverse(shift @_);
+ $r =~ tr/ACGT/TGCA/;
+ return $r;
+}
+
+sub replacetab {
+ my ($str, $p, $rep) = @_;
+ $p;
+ $str=~ s/((?:[^\t]+\t){$p})[^\t]+\t/$1$rep\t/;
+ return $str;
+}
+
diff --git a/clipper/check-clipper.sh b/clipper/check-clipper.sh
new file mode 100755
index 0000000..9e04147
--- /dev/null
+++ b/clipper/check-clipper.sh
@@ -0,0 +1,30 @@
+#!/bin/bash -e
+
+g++ fastq-clipper.c
+
+ok=/opt/bin/fastq-clipper
+new=./a.out
+
+# comparre
+fastx_clipper -i test1.fq -a AGTCCCGTAC -o test1.fx.out
+
+for v in new ok; do
+ eval prog=\$$v
+ ${prog} test1.fq AGTCCCGTAC > test1.$v.out 2> test1.$v.err
+ ${prog} test2.fq AGTCCCGTAC > test2.$v.out 2> test2.$v.err
+ ${prog} test1.fq AGTCCCGTAC -o test3.$v.out > test3.$v.err
+ diff test1.$v.out test1.fx.out > test4.$v.out && true
+done
+
+
+for n in test1 test2 test3 test4; do
+ echo $n
+ diff $n.new.out $n.ok.out
+ [[ -e $n.ok.err ]] && diff $n.new.err $n.ok.err
+done
+
+shopt -s extglob
+
+rm test?.@(new|ok).@(out|err)
+
+echo OK, all tests passed
diff --git a/clipper/contig-stats b/clipper/contig-stats
new file mode 100755
index 0000000..74893f9
--- /dev/null
+++ b/clipper/contig-stats
@@ -0,0 +1,136 @@
+#!/usr/bin/perl
+
+#Copyright (c) 2012 Erik Aronesty
+#
+#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.
+
+# if this was a c program, i'd set this number higher
+$max_mers = 40000000;
+
+if (@ARGV > 1) {
+ for (@ARGV) {
+ if ( (stat($_))[9] > (stat("$_.stats"))[9] ) {
+ if (!fork) {
+ system("grun '$0 $_ > $_.stats'");
+ exit(0);
+ }
+ }
+ }
+ while (wait != -1) {};
+ exit(0);
+}
+
+$in = $ARGV[0];
+
+open(IN, $in) || die "$in:$!\n";
+
+my $seq;
+while (<IN>) {
+ if (/^>/) {
+ summ();
+ $ln=0;
+ $seq='';
+ next;
+ } else {
+ chomp;
+ $seq .= $_;
+ $ln += length($_);
+ }
+}
+
+summ() if $ln;
+
+print "entries\t$gc\n";
+print "len max\t$mx\n";
+print "len min\t$mn\n";
+printf "len mean\t%d\n", $tl/$gc;
+print "total bases\t$tl\n";
+
+ at ln = sort {$a <=> $b} @ln;
+
+printf "len q1\t%d\n", quantile(\@ln, .25);
+printf "len median\t%d\n", quantile(\@ln, .50);
+printf "len q3\t%d\n", quantile(\@ln, .75);
+
+ at gt500 = grep {$_>500} @ln;
+$bgt500 = 0; for (@gt500) { $bgt500 += $_ };
+
+for (@ln) {
+ $sum += $_;
+ if (!$n50 && $sum >= $tl*.5) {
+ $n50=$_;
+ }
+ if (!$n90 && $sum >= $tl*.9) {
+ $n90=$_;
+ }
+}
+
+for (@ln) {
+ if ($_ >= 500) {
+ $xsum += $_;
+ if (!$xn50 && $xsum >= $bgt500*.5) {
+ $xn50=$_;
+ }
+ if (!$xn90 && $xsum >= $bgt500*.9) {
+ $xn90=$_;
+ }
+ }
+}
+
+printf "N50\t%d\n", $n50;
+printf "N90\t%d\n", $n90;
+printf "N50 > 500\t%d\n", $xn50;
+printf "N90 > 500\t%d\n", $xn90;
+
+printf "contigs > 500\t%d\n", scalar @gt500;
+printf "bases in contigs > 500\t%d\n", $bgt500;
+
+my $mer21 = 0;
+my $pct21 = 0;
+
+for (values(%mer)) {$mer21+=1 if $_>1};
+for (values(%mer)) {$pct21+=$_ if $_>1};
+$mer21 = 100*$mer21/scalar(keys(%mer));
+$pct21 = 100*$pct21/$tl;
+printf "dup-mer-21\t%2.2f\n", $mer21;
+printf "dup-mer-cnt\t%d\n", $mers;
+printf "dup-pct-21\t%2.2f\n", $pct21;
+
+
+sub summ {
+ if ($ln > 0) {
+ ++$gc;
+ $tl+=$ln;
+ $mx = $ln if $ln>$mx;
+ $mn = $ln if $ln<$mn || !$mn;
+ for ($i=0;$i<length($seq)-21;++$i) {
+ $tmp = substr($seq,$i,21);
+ if ($mers < $max_mers) {
+ if (!exists $mer{$tmp}) {
+ ++$mers;
+ ++$mer{$tmp};
+ } else {
+ ++$mer{$tmp};
+ }
+ }
+ }
+ }
+ push @ln, $ln;
+}
+
+sub quantile {
+ my ($a,$p) = @_;
+ my $l = scalar(@{$a});
+ my $t = ($l-1)*$p;
+ my $v=$a->[int($t)];
+ if ($t > int($t)) {
+ return $v + $p * ($a->[int($t)+1] - $v);
+ } else {
+ return $v;
+ }
+}
+
diff --git a/clipper/count-ambig.cpp b/clipper/count-ambig.cpp
new file mode 100644
index 0000000..b285498
--- /dev/null
+++ b/clipper/count-ambig.cpp
@@ -0,0 +1,136 @@
+#include <ctype.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <errno.h>
+#include <assert.h>
+#include <math.h>
+#include <sys/stat.h>
+#include <limits.h>
+#include <vector>
+#include <string>
+#include <sparsehash/sparse_hash_map> // or sparse_hash_set, dense_hash_map, ...
+
+#define max(a,b) (a>b?a:b)
+#define min(a,b) (a<b?a:b)
+#define meminit(l) (memset(&l,0,sizeof(l)))
+#define die(...) { fprintf(stderr, __VA_ARGS__); exit(1); }
+
+using namespace std;
+
+typedef struct line {
+ char *s; int n; size_t a;
+} line;
+
+class counts {
+public:
+ counts() {am=un=0;};
+ int am;
+ int un;
+};
+
+int read_line(FILE *in, struct line &l);
+vector<char *> split(char *s, const char *d);
+
+int main(int argc, char **argv) {
+ char *in = argv[1];
+ FILE * fin=fopen(in,"r");
+ if (!fin) {
+ die("%s:%s", in, strerror(errno));
+ }
+ struct line l;
+ vector<char *> v;
+ google::sparse_hash_map<string, counts> cmap;
+ string lastid, lastref;
+ int lastloc;
+ int mated = 0;
+ char *p;
+ while(read_line(fin, l)>0) {
+ if (l.s[0] == '@') continue;
+
+ v = split(l.s,"\t");
+ if (p=strchr(v[0],' ')) {
+ if (isdigit(p[1])) {
+ *p='\0';
+ }
+ }
+ string id=v[0];
+ string ref=v[2];
+
+ if (ref[0] == '*') continue;
+
+ int loc=atoi(v[3]);
+ int mateloc=atoi(v[7]);
+ int isize=atoi(v[8]);
+ if (mateloc > 0) mated = 1;
+ counts *pcnt;
+ if (loc == 0) continue;
+ string firstref;
+ bool newid=0, doitonce=0;
+ if (lastref.size()>0) {
+ if (mated) {
+ if (id == lastid) {
+ // proper pair second read?
+ if (loc==mateloc && ref == lastref) {
+ // new probe id
+ if (newid) {
+ // previous proper-pair read was a 'newid'
+ cmap[ref].un++;
+ firstref=ref;
+ doitonce=1;
+ } else {
+ // current tr is ambig
+ cmap[ref].am++;
+ if (doitonce) {
+ // previous tr was not unambig
+ cmap[firstref].un--;
+ doitonce=0;
+ }
+ }
+ }
+ newid=0;
+ } else {
+ newid=1;
+ }
+ } else {
+ if (id == lastid) {
+ // current tr is ambig
+ cmap[ref].am++;
+ if (doitonce) {
+ // and prev was not unamb
+ cmap[lastref].un--;
+ doitonce=0;
+ }
+ } else {
+ cmap[ref].un++;
+ doitonce= 1;
+ }
+ }
+ }
+
+ lastid = id;
+ lastloc = loc;
+ lastref = ref;
+ }
+ google::sparse_hash_map<string, counts>::iterator it;
+ for (it=cmap.begin();it!=cmap.end();++it) {
+ printf("%s\t%d\t%d\n", it->first.c_str(), it->second.un, it->second.am);
+ }
+}
+
+int read_line(FILE *in, struct line &l) {
+ return (l.n = getline(&l.s, &l.a, in));
+}
+
+vector<char *> split(char *s, const char *d) {
+ char *sp;
+ std::vector<char *> v;
+ char *t=strtok_r(s,d,&sp);
+ while(t) {
+ v.push_back(t);
+ t=strtok_r(NULL,d,&sp);
+ }
+ return v;
+}
+
diff --git a/clipper/debug b/clipper/debug
new file mode 100755
index 0000000..ffbbfb4
--- /dev/null
+++ b/clipper/debug
@@ -0,0 +1,5 @@
+#!/bin/sh
+#g++ -g fastq-mcf.c -o fastq-mcf.ex && ./fastq-mcf.ex $*
+cmd=$1
+shift
+g++ -g fastq-$cmd.c -o fastq-$cmd.ex && gdb --eval-command=run --args ./fastq-$cmd.ex $*
diff --git a/determine-phred b/clipper/determine-phred
similarity index 100%
rename from determine-phred
rename to clipper/determine-phred
diff --git a/clipper/ea-bcl2fastq.cpp b/clipper/ea-bcl2fastq.cpp
new file mode 100644
index 0000000..ece28c0
--- /dev/null
+++ b/clipper/ea-bcl2fastq.cpp
@@ -0,0 +1,646 @@
+/*
+Copyright (c) 2011 Expression Analysis / Erik Aronesty
+
+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.
+*/
+
+/*
+
+See "void usage" below for usage.
+
+*/
+
+#include <stdarg.h> // for va_start, etc
+#include <memory> // for std::unique_ptr
+#include <getopt.h>
+#include <string>
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <errno.h>
+#include <time.h>
+#include <vector>
+
+using namespace std; // bad practice
+
+// #include "fastq-lib.h"
+
+#define CHUNK 32768
+#define MAX_ERR_FILES 10
+#include "zlib.h"
+
+#define VERSION "1.01.816"
+#define warn(...) { fprintf(stderr, __VA_ARGS__); }
+#define die(...) { warn(__VA_ARGS__); exit(1); }
+
+std::string arg2cmdstr(int argc, char** argv);
+std::string string_format(const std::string fmt_str, ...);
+void usage(FILE *f, const char *msg=NULL);
+FILE *openordie(const char *path, const char *mode);
+FILE *popenordie(const char *path, const char *mode);
+char* itoa(int value, char* result, int base, char **endp);
+
+// per file/output file
+typedef struct {
+ bool useit;
+ int cyc_offset;
+ int cyc_len;
+ int rnum;
+ FILE *fout;
+} mask;
+
+// per-cycle info
+typedef struct {
+ bool useit;
+ gzFile fin;
+} cycle;
+
+// tile record
+typedef struct __attribute__ ((packed)) {
+ uint32_t tid; // tile id
+ uint32_t ccnt; // cluster count
+} tile_record;
+
+int main (int argc, char **argv) {
+ static struct option long_options[] = {
+ {"debug", 0, 0, 0},
+ {0, 0, 0, 0}
+ };
+
+
+ string run; // run path
+ int lane=0; // lane
+ string out; // output prefix
+ vector<mask> masks; // Y50N20Y50 format
+
+ unsigned int cluster_start=0; // offset into cluster list, ZERO BASED
+ unsigned int cluster_count=0; // number of reads to process
+ unsigned int output_cluster_count=0; // number of reads to process
+ int tile=0; // tile number
+ int debug=0; // debug flag
+ bool usegz=false;
+ const char *fcid="X";
+
+ int option_index = 0;
+ int c;
+ while ( (c = getopt_long(argc, argv, "zhr:l:t:o:m:s:n:f:",long_options,&option_index)) != -1) {
+ switch (c) {
+ case '\0':
+ {
+ const char *oname=long_options[option_index].name;
+ if(!strcmp(oname, "debug")) {
+ debug=1;
+ }
+ break;
+ }
+ case 'h': usage(stdout); exit(0); break;
+ case 'r': run = optarg; break;
+ case 'l': lane = atoi(optarg); break;
+ case 'o': out = optarg; break;
+ case 't': tile = atoi(optarg); break;
+ case 'f': fcid = optarg; break;
+ case 'z': usegz = 1; break;
+ case 'm':
+ {
+ int typ;
+ char *p = optarg;
+ bool err=0;
+ int cur_offset=0;
+ while (*p) {
+ mask m;
+ if (*p=='Y') {
+ m.useit=1;
+ } else if (*p=='N') {
+ m.useit=0;
+ } else {
+ err=1;
+ }
+ ++p;
+ int len;
+ if (isdigit(*p)) {
+ m.fout=NULL;
+ m.cyc_offset=cur_offset;
+ m.cyc_len=strtol(p, &p, 10);
+ cur_offset+=m.cyc_len;
+ masks.push_back(m);
+ } else {
+ err=1;
+ }
+ if (err) {
+ die("Mask should be something like: Y50Y30Y50");
+ }
+ }
+ }
+ break;
+ case 's': char *endp; cluster_start=strtoul(optarg, &endp, 10); break;
+ case 'n': cluster_count=atoi(optarg); break;
+ case '?':
+ if (strchr("rltomsn", optopt))
+ fprintf(stderr, "Option -%c requires an argument.\n", optopt);
+ else if (isprint(optopt))
+ fprintf(stderr, "Unknown option `-%c'.\n", optopt);
+ else
+ fprintf(stderr,
+ "Unknown option character `\\x%x'.\n",
+ optopt);
+ usage(stderr);
+ return 1;
+ }
+ }
+
+ if (!run.size() || !masks.size() || !lane || !out.length()) {
+ die("Run, mask and lane are required.\n");
+ }
+
+ char lanestr[5];
+ char lanestrnopad[5];
+ sprintf(lanestr, "L%03d", lane);
+ sprintf(lanestrnopad, "%d", lane);
+
+ string locspath = run + "/Data/Intensities/" + lanestr + "/s_" + lanestrnopad + ".locs";
+ string bcipath = run + "/Data/Intensities/BaseCalls/" + lanestr + "/s_" + lanestrnopad + ".bci";
+ string filterpath = run + "/Data/Intensities/BaseCalls/" + lanestr + "/s_" + lanestrnopad + ".filter";
+
+ // no die on flocs ... because it's ok to output no locs
+ FILE *flocs = fopen(locspath.c_str(), "r");
+
+ // die if no log, because presumably this is a write error in the output location
+ FILE *flog = openordie((string(out) + ".log").c_str(), "w");
+
+ // if no filter, then we'll just show all of them, so no die needed
+ FILE *ffilter = fopen(filterpath.c_str(), "r");
+
+ fprintf(flog, "Command Line: %s\n", arg2cmdstr(argc, argv).c_str());
+
+ fprintf(flog,"Tile path: %s\n", bcipath.c_str());
+ fprintf(flog,"Filter path: %s\n", filterpath.c_str());
+ fflush(flog);
+
+ FILE *ftnums = fopen(bcipath.c_str(), "r");
+
+ struct {
+ uint32_t zero;
+ uint32_t version;
+ uint32_t numclusters;
+ } filter_info;
+
+ struct __attribute__ ((packed)) {
+ // MAGIC NUMBER HEADER
+ uint32_t field1;
+ float field2;
+ // real info
+ uint32_t numclusters;
+ } locs_info;
+
+ // READ LOCS header
+ if(!flocs || !fread(&locs_info,sizeof(locs_info),1,flocs)) {
+ warn("Locs file is broken, no locations will be output\n");
+ if (flocs) fclose(flocs);
+ flocs=NULL;
+ } else if (fseek(flocs,cluster_start*sizeof(float)*2,SEEK_CUR) < 0) {
+ warn("Locs is there, but is no good\n");
+ fclose(flocs);
+ flocs=NULL;
+ }
+
+// printf("TELL LOCS: %ld\n", ftell(flocs));
+
+ // READ FILTER header
+ bool ok=true;
+ ok = ok && (fread(&filter_info.zero,4,1,ffilter)==1);
+ ok = ok && (fread(&filter_info.version,4,1,ffilter)==1);
+ ok = ok && (fread(&filter_info.numclusters,4,1,ffilter)==1);
+ if(!ok) {
+ die("Filter file is broken\n");
+ }
+
+ // ERROR/check numclusters
+ if (flocs && filter_info.numclusters != locs_info.numclusters ) {
+ die("Filter and locs numclusters don't match: %u\n", locs_info.numclusters);
+ }
+
+ if (!flocs) {
+ fprintf(flog,"Locations invalid at: %u\n", cluster_start);
+ }
+
+ // READ TILE INFO
+ vector <tile_record> tinfo;
+ if (ftnums) {
+ tile_record tr;
+ while(fread(&tr, sizeof(tr), 1, ftnums)==1) {
+// printf("tile: %d, count: %d\n", tr.tid, tr.ccnt);
+ tinfo.push_back(tr);
+ }
+ } else {
+ warn("Proceeding without tile info: %s\n", strerror(errno));
+ fprintf(flog,"Tile numbers invalid at: %u\n", cluster_start);
+ }
+
+ // general purpose iterators
+ int i,j;
+
+ if (tile) {
+ unsigned int cur=0;
+ bool ok=false;
+ for(i=0;i<tinfo.size();++i) {
+ if (tinfo[i].tid==tile) {
+ cluster_start=cur;
+ cluster_count=tinfo[i].ccnt;
+ ok=1;
+ break;
+ }
+ cur+=tinfo[i].ccnt;
+ }
+ if (!ok) {
+ die("Tile %d not found\n", tile);
+ }
+ }
+
+// warn("%d tiles read\n", (int) tinfo.size());
+
+ // unsigned 8 bit integer
+ if (fseek(ffilter,cluster_start,SEEK_CUR) < 0) {
+ die("Can't seek in filter file\n");
+ }
+// printf("TELL FILTER: %ld\n", ftell(ffilter));
+
+ vector<cycle>cycles;
+ int output_fnum=0;
+ string outtmp;
+ for(i=0;i<masks.size();++i) {
+ FILE *fo=NULL; // null by default
+ if(masks[i].useit) {
+ ++output_fnum; // output file number is sequential
+ masks[i].rnum=output_fnum; // save file number as "read number"
+ if (usegz) {
+ outtmp = string_format("gzip -2 --rsyncable -c > %s.%d.fq.gz",out.c_str(),output_fnum);
+ fo=popenordie(outtmp.c_str(),"w");
+ } else {
+ outtmp = string_format("%s.%d.fq",out.c_str(),output_fnum);
+ fo=openordie(outtmp.c_str(),"w");
+ }
+ }
+ masks[i].fout=fo; // pointer to output fiule for this mask level
+ for (j = 0; j < masks[i].cyc_len; ++j) {
+ cycle c;
+ c.useit = masks[i].useit;
+ cycles.push_back(c);
+ }
+ }
+
+ string bclbase = run + "/Data/Intensities/BaseCalls/" + lanestr + "/";
+ string bclpath;
+ vector<gzFile> fbclv; // vector of open files
+
+ int err_files = 0;
+ for (i=0;i<cycles.size();++i) {
+ bclpath=bclbase + string_format("%04d.bcl.bgzf",i+1);
+ gzFile fil=Z_NULL;
+ if (cycles[i].useit) {
+ fil=gzopen(bclpath.c_str(), "r"); // open the basecall
+ if (fil == Z_NULL) {
+ warn("Cycle %d file open failed, %s: %s\n", i, bclpath.c_str(), strerror(errno));
+ ++err_files;
+ if (err_files >= MAX_ERR_FILES) {
+ die("Too many errors, quitting\n");
+ }
+ cycles[i].useit=false;
+ } else {
+ uint32_t numc;
+ gzread(fil,&numc,4); // read the header
+ if (numc!=filter_info.numclusters) {
+ warn("Cycle %d num clusters mismatch/corrupt", i);
+ gzclose(fil);
+ fil=Z_NULL;
+ cycles[i].useit=false;
+ } else {
+ // warn("Seek bcl %d\n",i);
+ if (gzseek(fil,cluster_start,SEEK_CUR)<0) { // seek to cluster_start (8 bits per record)
+ gzclose(fil);
+ fil=Z_NULL;
+ cycles[i].useit=false;
+ }
+ }
+ }
+
+
+ if (!cycles[i].useit) {
+ fprintf(flog,"Cycle %d invalid at %d\n", i+1, cluster_start);
+ }
+ }
+ cycles[i].fin=fil;
+ }
+
+ struct {
+ unsigned int base : 2;
+ unsigned int qual : 6;
+ } rec;
+
+ char seqs[cycles.size()];
+ char quals[cycles.size()];
+
+ //ID Template:
+ //@<instrument>:<run number>:<flowcell ID>:<lane>:<tile>:<x-pos>:<y-pos> <read>:<is filtered>:<control number>:<index sequence>
+ //@NS500184:5:H0K79AGXX:1:11103:20690:3982 1:N:0:ATTCAGAA+GCCTCTAT
+
+ char read_id[1000];
+ sprintf(read_id,"@NS:1:%s:",fcid);
+
+ // pid is a pointer to the end of the id, after the lane: has been added
+ char *pid_after_lane=read_id+strlen(read_id);
+ itoa(lane, pid_after_lane, 10, &pid_after_lane);
+ *pid_after_lane++ = ':';
+
+ // map from aa to char
+ char aa_map[4] = {'A','C','G','T'};
+
+ // map from qual to score
+ char qc_map[64];
+ for(i=0;i<64;++i)
+ qc_map[i]=33+i;
+
+ struct __attribute__ ((packed)) {
+ float x;
+ float y;
+ } locrec;
+
+ char pf; /// purity filter (PF in illumina-speak)
+
+ int tidx=(tinfo.size()>0)?0:-1;
+ int tileid=(tinfo.size()>0)?tinfo[tidx].tid:0;
+ int trnum=0;
+
+ // for each cluster requested... (we should be all seeked to the correct offsets at this point)
+
+// printf("TINFO: %d, %d\n", tileid, tinfo[tidx].ccnt);
+ fprintf(flog,"Cluster count: %u\n", filter_info.numclusters);
+
+ if (cluster_count == 0) {
+ cluster_count = filter_info.numclusters;
+ }
+
+ fprintf(flog,"Cluster start: %u\n", cluster_start);
+ fprintf(flog,"Cluster subset: %u\n", cluster_count);
+
+ for(j=0;j<cluster_count;++j) {
+ if (tidx > 0 && trnum > tinfo[tidx].ccnt) {
+ ++tidx;
+ trnum=0;
+ if (tidx > tinfo.size()) {
+ // tile numbers are invalid at this point... !
+ fprintf(flog,"Tile numbers invalid at: %u\n", cluster_start+j);
+ tidx=-1;
+ tileid=0;
+ }
+ tileid=tinfo[tidx].tid;
+// printf("TINFO: %d, %d\n", tileid, tinfo[tidx].ccnt);
+ }
+ ++trnum;
+
+ // read filter flag from filter file
+ if(ffilter && (fread(&pf,1,1,ffilter)==1)) {
+ pf = pf ? 'N' : 'Y';
+ } else {
+ pf = 'U';
+ }
+
+ // read x/y location from locs file
+ int x, y;
+ if (flocs && fread(&locrec,sizeof(locrec), 1, flocs)==1) {
+ x=int(locrec.x * 10 + 1000 + 0.5);
+ y=int(locrec.y * 10 + 1000 + 0.5);
+ } else {
+ x=0;
+ y=0;
+ if (flocs) {
+ fprintf(flog,"Locations invalid at: %u\n", cluster_start+j);
+ flocs = NULL;
+ }
+ }
+
+
+ // read cycles
+ for (i=0;i<cycles.size();++i) {
+ if (cycles[i].useit) {
+ // 1 byte read
+ if(gzread(cycles[i].fin,&rec,1)==1) {
+// warn("Record n:%d, cy:%d: b:%d, q:%d\n", j, i, rec.base, rec.qual);
+ if (rec.base==0 && rec.qual == 0) {
+ seqs[i]='N';
+ quals[i]='#';
+ } else {
+ char aa = aa_map[rec.base];
+ char qc = qc_map[rec.qual];
+ seqs[i]=aa;
+ quals[i]=qc;
+ }
+ } else {
+ // zero out the cycle from now on...
+ fprintf(flog,"Cycle %d invalid at %d\n", i+1, cluster_start);
+ cycles[i].useit = 0;
+ seqs[i]='N';
+ quals[i]='#';
+ }
+ } else {
+ seqs[i]='N';
+ quals[i]='#';
+ }
+ }
+
+ // output read(s)
+ if (pf != 'Y') {
+ // convert tileid, x y to read header
+ output_cluster_count++;
+ char *tmpid = pid_after_lane;
+ itoa(tileid, tmpid, 10, &tmpid);
+ *tmpid++=':';
+ itoa(x, tmpid, 10, &tmpid);
+ *tmpid++=':';
+ itoa(y, tmpid, 10, &tmpid);
+ *tmpid++=' ';
+
+ // id after the space
+ char *pid_after_space = tmpid;
+ for (i=0;i<masks.size();++i) {
+ if (masks[i].useit) {
+ // output file number, pf flag and control flag
+ tmpid=pid_after_space;
+ itoa(masks[i].rnum, tmpid, 10, &tmpid);
+ *tmpid++=':';
+ *tmpid++=pf;
+ *tmpid++=':';
+ *tmpid++='0';
+ *tmpid='\0';
+
+ // output the id, sequence, and quals for the current file output
+ fputs(read_id,masks[i].fout);
+ fputc('\n',masks[i].fout);
+ fwrite(seqs+masks[i].cyc_offset,1,masks[i].cyc_len, masks[i].fout);
+ fputc('\n',masks[i].fout);
+ fputc('+',masks[i].fout);
+ fputc('\n',masks[i].fout);
+ fwrite(quals+masks[i].cyc_offset,1,masks[i].cyc_len, masks[i].fout),
+ fputc('\n',masks[i].fout);
+ }
+ }
+ }
+ }
+
+
+ for(i=0;i<masks.size();++i) {
+ if(masks[i].fout && usegz) {
+ if (!pclose(masks[i].fout)) {
+ fprintf(flog, "Error : gzip file may be corrupt\n");
+ die("Error : gzip file may be corrupt\n");
+ }
+ }
+ }
+
+ // all ok?
+ fprintf(flog,"Cluster output: %u\n", output_cluster_count);
+ exit(0);
+}
+
+void usage(FILE *f, const char *msg) {
+ if(msg)
+ fprintf(f, "%s\n", msg);
+
+ fprintf(f,
+"Usage: ea-bcl2fastq -r PATH -l NUM -m MASK -o PREFIX [options] \n"
+"Version: %s\n"
+"\n"
+"Converts Illumina bcl files to fastq\n"
+"\n"
+"Required:\n"
+" -r PATH Path to run folder\n"
+" -m MASK Y50Y6Y50\n"
+" -o PREFIX Output file prefix\n"
+"\n"
+"Optional:\n"
+" -s START Cluster offset (ZERO BASED OFFSET)\n"
+" -n COUNT Cluster count\n"
+"\n"
+ ,VERSION);
+}
+
+char *arg2cmd(int argc, char** argv) {
+ char *buf=NULL;
+ int n = 0;
+ int k, i;
+ for (i=1; i <argc;++i) {
+ int k=strlen(argv[i]);
+ buf=( char *)realloc(buf,n+k+4);
+ char *p=buf+n;
+ char endq=0;
+ // this is a poor mans quoting, which is good enough for anything that's not rediculous
+ if (strchr(argv[i], ' ')) {
+ if (!strchr(argv[i], '\'')) {
+ *p++='\'';
+ endq='\'';
+ } else {
+ *p++='\"';
+ endq='\"';
+ }
+ }
+ memcpy(p, argv[i], k);
+ p+=k;
+ if (i < (argc-1)) *p++=' ';
+ if (endq) *p++=endq;
+ *p='\0';
+ n = p-buf;
+ }
+ return buf;
+}
+
+std::string arg2cmdstr(int argc, char **argv) {
+ char *tmp=arg2cmd(argc, argv);
+ std::string ret=tmp;
+ free(tmp);
+ return ret;
+}
+
+FILE *openordie(const char *path, const char *mode) {
+ FILE *f=fopen(path, mode);
+ if (!f) {
+ warn("Can't open-%s %s: %s\n", mode, path, strerror(errno));
+ exit(1);
+ }
+ return f;
+}
+
+FILE *popenordie(const char *path, const char *mode) {
+ FILE *f=popen(path, mode);
+ if (!f) {
+ warn("Can't popen-%s %s: %s\n", mode, path, strerror(errno));
+ exit(1);
+ }
+ return f;
+}
+
+
+std::string string_format(const std::string fmt, ...) {
+ int size = 100;
+ std::string str;
+ va_list ap;
+ while (1) {
+ str.resize(size);
+ va_start(ap, fmt);
+ int n = vsnprintf((char *)str.c_str(), size, fmt.c_str(), ap);
+ va_end(ap);
+ if (n > -1 && n < size) {
+ str.resize(n);
+ return str;
+ }
+ if (n > -1)
+ size = n + 1;
+ else
+ size *= 2;
+ }
+ return str;
+}
+
+ // fast int to string code: from http://www.jb.man.ac.uk/~slowe/cpp/itoa.html
+
+char* itoa(int value, char* result, int base, char **endp) {
+ // check that the base if valid
+ if (base < 2 || base > 36) { *result = '\0'; return result; }
+
+ char* ptr = result, *ptr1 = result, tmp_char;
+ int tmp_value;
+
+ do {
+ tmp_value = value;
+ value /= base;
+ *ptr++ = "zyxwvutsrqponmlkjihgfedcba9876543210123456789abcdefghijklmnopqrstuvwxyz" [35 + (tmp_value - value * base)];
+ } while ( value );
+
+ // Apply negative sign
+ if (tmp_value < 0) *ptr++ = '-';
+ *endp=ptr;
+ *ptr-- = '\0';
+ while(ptr1 < ptr) {
+ tmp_char = *ptr;
+ *ptr--= *ptr1;
+ *ptr1++ = tmp_char;
+ }
+ return result;
+}
+
+/* vim: set noai ts=4 sw=4: */
diff --git a/ea-utils.spec b/clipper/ea-utils.spec
similarity index 98%
copy from ea-utils.spec
copy to clipper/ea-utils.spec
index 633c489..c2e0730 100644
--- a/ea-utils.spec
+++ b/clipper/ea-utils.spec
@@ -1,6 +1,6 @@
%define name ea-utils
%define ver 1.1.2
-%define rel 686
+%define rel 779
Summary: fastq-processing utilities
Name: %{name}
diff --git a/ea-utils.spec b/clipper/ea-utils.spex
similarity index 97%
rename from ea-utils.spec
rename to clipper/ea-utils.spex
index 633c489..44edc03 100644
--- a/ea-utils.spec
+++ b/clipper/ea-utils.spex
@@ -1,6 +1,6 @@
%define name ea-utils
%define ver 1.1.2
-%define rel 686
+%define rel %RELEASE%
Summary: fastq-processing utilities
Name: %{name}
diff --git a/clipper/fasta-qual-to-fastq b/clipper/fasta-qual-to-fastq
new file mode 100755
index 0000000..80de049
--- /dev/null
+++ b/clipper/fasta-qual-to-fastq
@@ -0,0 +1,54 @@
+#!/usr/bin/perl
+
+use EA;
+
+die "usage: $0 <fasta> <qual>\n" unless @ARGV == 2;
+
+my ($fa, $ql) = @ARGV;
+
+# gz compat open fasta and qual files
+zopen(FA, $fa) || die;
+zopen(QL, $ql) || die;
+
+$fid = <FA>;
+$qid = <QL>;
+
+$fid =~ s/\s+$//; # win32 compat chomp
+$qid =~ s/\s+$//;
+
+while (1) {
+ $seq = '';
+
+ if (!$fid) {
+ exit 0;
+ }
+
+ while($fline = <FA>) { # read fasta rec
+ $fline =~ s/\s+$//;
+ if ($fline =~ /^>/) {
+ last;
+ }
+ $seq .= $fline;
+ }
+
+ $qual = '';
+ if (!($qid eq $fid)) {
+ die "Line $. : $qid not equal to $fid\n";
+ }
+
+ while($qline = <QL>) { # read qual rec
+ $qline =~ s/\s+$//;
+ if ($qline =~ /^>/) {
+ last;
+ }
+ for (split / /, $qline) {
+ $qual .= chr($_+33); # convert to fq qual
+ }
+ }
+
+ $fid =~ s/^>/@/;
+ print "$fid\n$seq\n+\n$qual\n";
+
+ $fid = $fline; # line that stopped rec is id
+ $qid = $qline;
+}
diff --git a/fastq-clipper.c b/clipper/fastq-clipper.cpp
similarity index 100%
rename from fastq-clipper.c
rename to clipper/fastq-clipper.cpp
diff --git a/fastq-join.c b/clipper/fastq-join.cpp
similarity index 90%
rename from fastq-join.c
rename to clipper/fastq-join.cpp
index 30b54a3..d8d0169 100644
--- a/fastq-join.c
+++ b/clipper/fastq-join.cpp
@@ -28,8 +28,7 @@ See "void usage" below for usage.
*/
-#define VERSION "1.01"
-#define SVNREV atoi(strchr("$LastChangedRevision: 679 $", ':')+1)
+#define VERSION "1.01.759"
void usage(FILE *f);
int debug=0;
@@ -74,12 +73,12 @@ int main (int argc, char **argv) {
break;
case 'r': orep = optarg; break;
case 't': threads = atoi(optarg); break;
- case 'V': printf("Version: %s.%d\n", VERSION, SVNREV); return 0; break;
+ case 'V': printf("Version: %s\n", VERSION); return 0; break;
case 'm': mino = atoi(optarg); break;
case 'x': allow_ex = true; break;
case 'p': pctdiff = atoi(optarg); break;
case 'R': norevcomp = true; break;
- case 'd': debug = 1; break;
+ case 'd': ++debug; break;
case 'v':
if (strlen(optarg)>1) {
fprintf(stderr, "Option -v requires a single character argument");
@@ -284,9 +283,6 @@ int main (int argc, char **argv) {
if (besto > 0) {
++joincnt;
- int l=besto/2; // discard from left
- int r=besto-(besto/2); // discard from right
-
tlen+=olen;
tlensq+=olen*olen;
@@ -328,25 +324,32 @@ int main (int argc, char **argv) {
for (i = 0; i < besto; ++i ) {
int li = fq[0].seq.n-besto+i;
int ri = i;
+ if (debug>=2) printf("%c %c / %c %c / ", fq[0].seq.s[li], rc.seq.s[ri], fq[0].qual.s[li], rc.qual.s[ri]);
if (fq[0].seq.s[li] == rc.seq.s[ri]) {
fq[0].qual.s[li] = max(fq[0].qual.s[li], rc.qual.s[ri]);
- rc.qual.s[ri] = max(fq[0].qual.s[li], rc.qual.s[ri]);
+ // bounded improvement in quality, since there's no independence
+ // fq[0].qual.s[ri] = max(fq[0].qual.s[li], rc.qual.s[ri])+min(3,min(fq[0].qual.s[li],rc.qual.s[ri])-33);
} else {
- // use the better-quality read, although the qual should be downgraded due to the difference!
+ // use the better-quality read
+ // this approximates the formula: E = min(0.5,[(1-e2/2) * e1] / [(1-e1) * e2/2 + (1-e2/2) * e1])
if (fq[0].qual.s[li] > rc.qual.s[ri]) {
- rc.seq.s[ri] = fq[0].seq.s[li];
+ // reduction in quality, based on phred-difference
+ fq[0].qual.s[li] = 33+min(fq[0].qual.s[li],max(fq[0].qual.s[li]-rc.qual.s[ri],3));
} else {
fq[0].seq.s[li] = rc.seq.s[ri];
+ // reduction in quality, based on phred-difference
+ fq[0].qual.s[li] = 33+min(rc.qual.s[ri],max(rc.qual.s[ri]-fq[0].qual.s[li],3));
}
}
+ if (debug>=2) printf("%c %c\n", fq[0].seq.s[li], fq[0].qual.s[li]);
}
- fwrite(fq[0].seq.s,1,fq[0].seq.n-l,f);
- fputs(rc.seq.s+r,f);
+ fwrite(fq[0].seq.s,1,fq[0].seq.n,f);
+ fputs(rc.seq.s+besto,f);
fputc('\n',f);
fputs(fq[0].com.s,f);
- fwrite(fq[0].qual.s,1,fq[0].qual.n-l,f);
- fputs(rc.qual.s+r,f);
+ fwrite(fq[0].qual.s,1,fq[0].qual.n,f);
+ fputs(rc.qual.s+besto,f);
fputc('\n',f);
fmate=fout[4];
@@ -389,7 +392,7 @@ int main (int argc, char **argv) {
printf("Total joined: %d\n", joincnt);
printf("Average join len: %.2f\n", (double) tlen / (double) joincnt);
printf("Stdev join len: %.2f\n", dev);
- printf("Version: %s.%d\n", VERSION, SVNREV);
+ printf("Version: %s\n", VERSION);
return 0;
}
diff --git a/clipper/fastq-join.t b/clipper/fastq-join.t
new file mode 100644
index 0000000..385c9c4
--- /dev/null
+++ b/clipper/fastq-join.t
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+./fastq-join -p 20 -m 5 test-overlap/test_1x test-overlap/test_2x -o test-overlap/a.testx.
+
+./fastq-join -p 20 -m 5 test-overlap/test_1 test-overlap/test_2 -o test-overlap/a.test.
+
+./fastq-join -p 20 -m 5 test-overlap/test_1x test-overlap/test_2x -o test-overlap/b.testx. -x
+
+./fastq-join -p 20 -m 5 test-overlap/test_1 test-overlap/test_2 -o test-overlap/b.test. -x
+
diff --git a/fastq-lib.cpp b/clipper/fastq-lib.cpp
similarity index 74%
rename from fastq-lib.cpp
rename to clipper/fastq-lib.cpp
index 17f90ec..e4e4321 100644
--- a/fastq-lib.cpp
+++ b/clipper/fastq-lib.cpp
@@ -29,60 +29,117 @@ int main(int argc, char **argv) {
#endif
int read_line(FILE *in, struct line &l) {
- return (l.n = getline(&l.s, &l.a, in));
+ l.n = getline(&l.s, &l.a, in);
+ // win32 support
+ if (l.n>1 && (l.s[l.n-2]=='\r')) {
+ l.s[l.n-2]='\n';
+ --l.n;
+ l.s[l.n]='\0';
+ }
+ return l.n;
+}
+
+char sempty[1]={'\0'};
+int read_fq_sam(FILE *in, int rno, struct fq *fq, const char *name) {
+ read_line(in, fq->id);
+
+ while (fq->id.s[0] == '@') {
+ // ignore header
+ read_line(in, fq->id);
+ }
+
+ // id in first field
+ char *p=strchr(fq->id.s, '\t');
+ if (!p) return 0;
+ *p='\0';
+
+
+ // skip next 8 tabs
+ int i;
+ for (i=0;p && *++p && (i<8); ++i) {
+ p=strchr(p,'\t');
+ }
+ if (!p) return 0;
+ // seq in next fieldi
+
+ fq->seq.s=p;
+ p=strchr(p,'\t');
+ if (!p) return 0;
+ *p='\0';
+ fq->seq.n=p-fq->seq.s;
+
+ // qual next
+ fq->qual.s=p+1;
+ p=strchr(fq->qual.s,'\t');
+ if (!p)
+ p=strchr(fq->qual.s,'\n');
+ if (!p) return 0;
+ *p='\0';
+ fq->qual.n=p-fq->qual.s;
+
+ // fake comment
+ fq->com.s=sempty;
+ fq->com.n=0;
+
+ // mark allocation as pointer
+ fq->seq.a=0;
+ fq->qual.a=0;
+ fq->com.a=0;
+
+ return 1;
}
int read_fq(FILE *in, int rno, struct fq *fq, const char *name) {
read_line(in, fq->id);
- if (fq->id.s && (*fq->id.s == '>')) {
- fq->id.s[0] = '@';
- // read fasta instead
- char c = fgetc(in);
- while (c != '>' && c != EOF) {
- if (fq->seq.a <= (fq->seq.n+1)) {
- fq->seq.s=(char *)realloc(fq->seq.s, fq->seq.a=(fq->seq.a+16)*2);
- }
- if (!isspace(c))
- fq->seq.s[fq->seq.n++]=c;
- c = fgetc(in);
- }
- if (c != EOF) {
- ungetc(c, in);
- }
- // make it look like a fastq
- fq->qual.s=(char *)realloc(fq->qual.s, fq->qual.a=(fq->seq.n+1));
- memset(fq->qual.s, 'h', fq->seq.n);
- fq->qual.s[fq->qual.n=fq->seq.n]=fq->seq.s[fq->seq.n]='\0';
- fq->com.s=(char *)malloc(fq->com.a=2);
- fq->com.n=1;
- strcpy(fq->com.s,"+");
- } else {
- read_line(in, fq->seq);
- read_line(in, fq->com);
- read_line(in, fq->qual);
- }
+ if (fq->id.s && (*fq->id.s == '>')) {
+ fq->id.s[0] = '@';
+ // read fasta instead
+ char c = fgetc(in);
+ while (c != '>' && c != EOF) {
+ if (fq->seq.a <= (fq->seq.n+1)) {
+ fq->seq.s=(char *)realloc(fq->seq.s, fq->seq.a=(fq->seq.a+16)*2);
+ }
+ if (!isspace(c))
+ fq->seq.s[fq->seq.n++]=c;
+ c = fgetc(in);
+ }
+ if (c != EOF) {
+ ungetc(c, in);
+ }
+ // make it look like a fastq
+ fq->qual.s=(char *)realloc(fq->qual.s, fq->qual.a=(fq->seq.n+1));
+ memset(fq->qual.s, 'h', fq->seq.n);
+ fq->qual.s[fq->qual.n=fq->seq.n]=fq->seq.s[fq->seq.n]='\0';
+ fq->com.s=(char *)malloc(fq->com.a=2);
+ fq->com.n=1;
+ strcpy(fq->com.s,"+");
+ } else {
+ read_line(in, fq->seq);
+ read_line(in, fq->com);
+ read_line(in, fq->qual);
+ }
- if (fq->qual.n <= 0)
- return 0;
- if (fq->id.s[0] != '@' || fq->com.s[0] != '+' || fq->seq.n != fq->qual.n) {
- const char *errtyp = (fq->seq.n != fq->qual.n) ? "length mismatch" : fq->id.s[0] != '@' ? "no '@' for id" : "no '+' for comment";
- if (name) {
- fprintf(stderr, "Malformed fastq record (%s) in file '%s', line %d\n", errtyp, name, rno*2+1);
- } else {
- fprintf(stderr, "Malformed fastq record (%s) at line %d\n", errtyp, rno*2+1);
- }
- return -1;
+ if (fq->qual.n <= 0)
+ return 0;
+ if (fq->id.s[0] != '@' || fq->com.s[0] != '+' || fq->seq.n != fq->qual.n) {
+ const char *errtyp = (fq->seq.n != fq->qual.n) ? "length mismatch" : fq->id.s[0] != '@' ? "no '@' for id" : "no '+' for comment";
+ if (name) {
+ fprintf(stderr, "Malformed fastq record (%s) in file '%s', line %d\n", errtyp, name, rno*2+1);
+ } else {
+ fprintf(stderr, "Malformed fastq record (%s) at line %d\n", errtyp, rno*2+1);
}
- // win32-safe chomp
+ return -1;
+ }
+ // win32-safe chomp
+ fq->seq.s[--fq->seq.n] = '\0';
+ if (fq->seq.s[fq->seq.n-1] == '\r') {
fq->seq.s[--fq->seq.n] = '\0';
- if (fq->seq.s[fq->seq.n-1] == '\r') {
- fq->seq.s[--fq->seq.n] = '\0';
- }
+ }
+ fq->qual.s[--fq->qual.n] = '\0';
+ if (fq->qual.s[fq->qual.n-1] == '\r') {
fq->qual.s[--fq->qual.n] = '\0';
- if (fq->qual.s[fq->qual.n-1] == '\r') {
- fq->qual.s[--fq->qual.n] = '\0';
- }
- return 1;
+ }
+ return 1;
}
struct qual_str {
@@ -103,7 +160,7 @@ FILE *gzopen(const char *f, const char *m, bool*isgz) {
if (!strcmp(ext,".gz")) {
char *tmp=(char *)malloc(strlen(f)+100);
if (strchr(m,'w')) {
- strcpy(tmp, "gzip --rsyncable > '");
+ strcpy(tmp, "gzip -3 --rsyncable > '");
strcat(tmp, f);
strcat(tmp, "'");
} else {
@@ -128,6 +185,22 @@ FILE *gzopen(const char *f, const char *m, bool*isgz) {
h = popen(tmp, m);
*isgz=1;
free(tmp);
+ } else if (!strcmp(ext,".dsrc")||!strcmp(ext,".dz")) {
+ char *tmp=(char *)malloc(strlen(f)+100);
+ if (strchr(m,'w')) {
+ // default 2x better compression and 3x better speed
+ strcpy(tmp, "dsrc c -m0 -t2 -s '");
+ strcat(tmp, f);
+ strcat(tmp, "'");
+ } else {
+ // slower than gunzip in some cases!
+ strcpy(tmp, "dsrc d -t2 -s '");
+ strcat(tmp, f);
+ strcat(tmp, "'");
+ }
+ h = popen(tmp, m);
+ *isgz=1;
+ free(tmp);
} else {
h = fopen(f, m);
*isgz=0;
diff --git a/fastq-lib.h b/clipper/fastq-lib.h
similarity index 96%
rename from fastq-lib.h
rename to clipper/fastq-lib.h
index d602ccd..feda28b 100644
--- a/fastq-lib.h
+++ b/clipper/fastq-lib.h
@@ -84,6 +84,7 @@ const char *fext(const char *f);
// read fq
int read_line(FILE *in, struct line &l); // 0=done, 1=ok, -1=err+continue
int read_fq(FILE *in, int rno, struct fq *fq, const char *name=NULL); // 0=done, 1=ok, -1=err+continue
+int read_fq_sam(FILE *in, int rno, struct fq *fq, const char *name=NULL); // 0=done, 1=ok, -1=err+continue
void free_fq(struct fq *fq);
// open a file, possibly gzipped, exit on failure
diff --git a/fastq-mcf.c b/clipper/fastq-mcf.cpp
similarity index 94%
rename from fastq-mcf.c
rename to clipper/fastq-mcf.cpp
index ee25914..af59e57 100644
--- a/fastq-mcf.c
+++ b/clipper/fastq-mcf.cpp
@@ -26,13 +26,12 @@ See "void usage" below for usage.
*/
-#include <google/sparse_hash_map> // or sparse_hash_set, dense_hash_map, ...
+#include <sparsehash/sparse_hash_map> // or sparse_hash_set, dense_hash_map, ...
#include <string>
#include "fastq-lib.h"
-#define VERSION "1.04"
-#define SVNREV atoi(strchr("$LastChangedRevision: 676 $", ':')+1)
+#define VERSION "1.04.807"
#define MAX_ADAPTER_NUM 1000
#define SCANLEN 15
@@ -82,7 +81,7 @@ const char *cmd_align_pe = "bowtie -S %i -1 %1 -2 %2";
// quality filter args
int qf_mean=0, qf_max_ns=-1, qf_xgt_num=0, qf_xgt_min=0, qf_max_n_pct=-1;
-int qf2_mean=0, qf2_max_ns=-1, qf2_xgt_num=0, qf2_xgt_min=0, qf2_max_n_pct=0;
+int qf2_mean=0, qf2_max_ns=-1, qf2_xgt_num=0, qf2_xgt_min=0, qf2_max_n_pct=-1;
// qual adjust
class adjustment {
@@ -211,6 +210,7 @@ int main (int argc, char **argv) {
int xmax = -1;
float scale = 2.2;
int noclip=0;
+ int nreadsout=0; // max # of reads to output, all by default
char end[MAX_FILES]; meminit(end);
float skewpct = 2; // any base at any position is less than skewpct of reads
float pctns = 20; // any base that is more than 20% n's
@@ -225,6 +225,7 @@ int main (int argc, char **argv) {
bool lowcom_filter = 0;
float hompol_pct = .92;
float lowcom_pct = .90;
+ bool keeponlyclip=0;
dupset.set_deleted_key("<>");
@@ -242,8 +243,10 @@ int main (int argc, char **argv) {
char *qspec = NULL;
static struct option long_options[] = {
+ {"keep-clipped", 0, 0, 0},
{"qual-mean", 1, 0, 0},
{"max-ns", 1, 0, 0},
+ {"max-output-reads", 1, 0, 'O'},
{"qual-gt", 1, 0, 0},
{"min-len", 1, 0, 'l'},
{"cycle-adjust", 1, 0, 0},
@@ -261,13 +264,15 @@ int main (int argc, char **argv) {
meminit(phred_adjust);
int option_index = 0;
- while ( (c = getopt_long(argc, argv, "-nf0uXUVHSRdbehp:o:l:s:m:t:k:x:P:q:L:C:w:F:D:",long_options,&option_index)) != -1) {
+ while ( (c = getopt_long(argc, argv, "-nf0uXUVHKSRdbehp:o:O:l:s:m:t:k:x:P:q:L:C:w:F:D:",long_options,&option_index)) != -1) {
switch (c) {
case '\0':
{
const char *oname=long_options[option_index].name;
if(!strcmp(oname, "qual-mean")) {
qf_mean=qf2_mean=atoi(optarg);
+ } else if(!strcmp(oname, "keep-clipped")) {
+ keeponlyclip=1;
} else if(!strcmp(oname, "mate-qual-mean")) {
qf2_mean=atoi(optarg);
} else if(!strcmp(oname, "homopolymer-pct")) {
@@ -345,6 +350,7 @@ int main (int argc, char **argv) {
case 'm': nmin = atoi(optarg); break;
case 'l': nkeep = atoi(optarg); break;
case 'L': nmax = atoi(optarg); break;
+ case 'K': keeponlyclip=1; break;
case '0': nmax=0; skewpct=0; pctns=0; rmns=0; qthr=0; nkeep=0; ilv3=-1; break;
case 'u': ilv3=1; break;
case 'U': ilv3=0; break;
@@ -358,7 +364,7 @@ int main (int argc, char **argv) {
case 'F': fref[fref_n++] = optarg; break;
case 'x': pctns = atof(optarg); break;
case 'R': rmns = false; break;
- case 'V': printf("Version: %s.%d\n", VERSION, SVNREV); return 0; break;
+ case 'V': printf("Version: %s\n", VERSION); return 0; break;
case 'p': pctdiff = atoi(optarg); break;
case 'P': phred = (char) atoi(optarg); break;
case 'D': duplen = atoi(optarg); break;
@@ -366,6 +372,7 @@ int main (int argc, char **argv) {
case 'o': if (!o_n < MAX_FILES)
ofil[o_n++] = optarg;
break;
+ case 'O': nreadsout = atoi(optarg); break;
case 's': scale = atof(optarg); break;
case 'S': skipb = 1; break;
case 'i': if (i_n<MAX_FILES)
@@ -601,6 +608,7 @@ int main (int argc, char **argv) {
int nsampcnt = 0;
double stat_lowcom_total=0, stat_lowcom_ssq=0, stat_lowcom_b4_total=0, stat_lowcom_b4_ssq=0;
long stat_lowcom_cnt=0, stat_lowcom_b4_cnt=0;
+ int skipunclip=0;
for (i=0;i<i_n;++i) {
@@ -630,7 +638,7 @@ int main (int argc, char **argv) {
if (nq != ns) {
if (warncount < MAXWARN) {
- fprintf(stderr, "Warning, corrupt quality for sequence: %s", s, q);
+ fprintf(stderr, "Warning, corrupt quality for sequence: %s", s);
++warncount;
}
continue;
@@ -668,9 +676,11 @@ int main (int argc, char **argv) {
qcnt[i][1]+=((q[ns-1]-phred)<qthr);
//fprintf(stderr,"qcnt i%d e0=%d, e1=%d\n", i, qcnt[i][0], qcnt[i][1]);
+ // BUF conains only the first 15 characters of the sequence
int a;
char buf[SCANLEN+1];
strncpy(buf, s, SCANLEN);
+ buf[SCANLEN]='\0';
for(a=0;a<acnt;++a) {
char *p;
// search whole seq for 15 char "end" of adap string
@@ -683,10 +693,14 @@ int main (int argc, char **argv) {
}
// search 15 char begin of seq in longer adap string
int slen;
+ if (debug > 1) fprintf(stderr, "COMPARE: %d <= %d, adseq: %s, buf: %s\n", SCANLEN, ad[a].nseq, ad[a].seq, buf);
+ // if the 15bp sequence is smaller than the adapter size
if (SCANLEN <= ad[a].nseq) {
slen = SCANLEN;
+ // search for the truncated buffer in the ADAPTER
p = strstr(ad[a].seq, buf);
} else {
+ // search for the adapter at the beginning of the buffer only... if it's short
slen = ad[a].nseq;
if (!strncmp(ad[a].seq,buf,ad[a].nseq))
p=ad[a].seq;
@@ -846,7 +860,7 @@ int main (int argc, char **argv) {
fprintf(fstat, "Adapter %s (%s): counted %d at the '%s' of '%s', clip set to %d", ad[a].id, ad[a].seq, cnt, ad[a].end[i] == 'e' ? "end" : "start", ifil[i], ad[a].thr[i]);
if (abs((ad[a].bcnt[i]-ad[a].ecnt[i])) < athr/4) {
- fprintf(fstat, ", warning end was not reliable\n", ad[a].id, ad[a].seq);
+ fprintf(fstat, ", warning end was not reliable: %s/%s\n", ad[a].id, ad[a].seq);
} else {
fputc('\n', fstat);
}
@@ -917,6 +931,7 @@ int main (int argc, char **argv) {
memset(&fq, 0, sizeof(fq));
int nrec=0;
+ int wrec=0;
int nerr=0;
int nok=0;
int ntooshort=0;
@@ -945,8 +960,8 @@ int main (int argc, char **argv) {
google::sparse_hash_map <std::string, int>::const_iterator lookup_it;
bool io_ok = true;
-
- while (read_ok=fin[0].read_fq(nrec, &fq[0])) {
+ while (read_ok=fin[0].read_fq(nrec, &fq[0])) {
+ if (nreadsout && (wrec == nreadsout)) break;
for (i=1;i<i_n;++i) {
int mok=fin[1].read_fq(nrec, &fq[i]);
if (mok != read_ok) {
@@ -984,6 +999,7 @@ int main (int argc, char **argv) {
int lowcom_seq=0;
int lowcom_cnt=0;
int f;
+ bool didclip=0;
for (f=0;f<i_n;++f) {
dotrim[f][0] = sktrim[f][0]; // default, trim to detected skew levels
dotrim[f][1] = sktrim[f][1];
@@ -1054,14 +1070,12 @@ int main (int argc, char **argv) {
// N's always match everything
if (fq[f].seq.s[i] == 'N' || (fq[f].seq.s[i] == fq[f].seq.s[i-1])) {
++lowcom_seq;
- } else if (i >= dotrim[f][0]+3) {
- if (fq[f].seq.s[i] == fq[f].seq.s[i-2] && fq[f].seq.s[i-1] == fq[f].seq.s[i-3]) {
- ++lowcom_seq;
- }
- } else if (i >= dotrim[f][0]+3) {
- if (fq[f].seq.s[i] == fq[f].seq.s[i-3] && fq[f].seq.s[i-1] == fq[f].seq.s[i-4] && fq[f].seq.s[i-3] == fq[f].seq.s[i-5]) {
- ++lowcom_seq;
- }
+ } else if (i >= dotrim[f][0]+3 && (fq[f].seq.s[i] == fq[f].seq.s[i-2] && fq[f].seq.s[i-1] == fq[f].seq.s[i-3])) {
+ ++lowcom_seq;
+ } else if (i >= dotrim[f][0]+5 && (fq[f].seq.s[i] == fq[f].seq.s[i-3] && fq[f].seq.s[i-1] == fq[f].seq.s[i-4] && fq[f].seq.s[i-2] == fq[f].seq.s[i-5])) {
+ ++lowcom_seq;
+ } else if (i >= dotrim[f][0]+7 && (fq[f].seq.s[i] == fq[f].seq.s[i-4] && fq[f].seq.s[i-1] == fq[f].seq.s[i-5] && fq[f].seq.s[i-2] == fq[f].seq.s[i-6] && fq[f].seq.s[i-3] == fq[f].seq.s[i-7])) {
+ ++lowcom_seq;
}
++lowcom_cnt;
}
@@ -1084,7 +1098,9 @@ int main (int argc, char **argv) {
break;
}
- for (i=dotrim[f][1];i<(fq[f].seq.n);++i) {
+
+ // trim qual from the end ... stop at what you trimmed from the front!
+ for (i=dotrim[f][1];i<(fq[f].seq.n-dotrim[f][0]);++i) {
if (qwin > 1 && (meanqwin(fq[f].qual.s,fq[f].seq.n,fq[f].seq.n-i-1,qwin)-phred) < qthr) {
++trimqb[f];
istrimq = true;
@@ -1096,7 +1112,9 @@ int main (int argc, char **argv) {
} else
break;
}
- if (istrimq) ++trimql[f];
+
+ // denominator
+ if (istrimq) trimql[f]+=1;
}
int bestscore_e = INT_MAX, bestoff_e = 0, bestlen_e = 0;
@@ -1168,7 +1186,10 @@ int main (int argc, char **argv) {
}
}
}
- }
+ }
+
+ int adapcliplen = bestoff_b ? bestoff_b : bestoff_e;
+
// lengthen trim based on best level
if (bestoff_b > dotrim[f][0])
dotrim[f][0]=bestoff_b;
@@ -1180,7 +1201,7 @@ int main (int argc, char **argv) {
// if (debug > 1) fprintf(stderr,"totclip %d\n", totclip);
- if (totclip > 0) {
+ if (totclip > 0) {
// keep length > X, X based on mate
int tkeep = f == 0 ? nkeep : qf2_min_len > 0 ? qf2_min_len : nkeep;
@@ -1192,16 +1213,17 @@ int main (int argc, char **argv) {
}
// count number of adapters clipped, not the number of rows trimmed
- if (bestoff_b > 0 || bestoff_e > 0)
+ if ( adapcliplen > 0 ) {
++ntrim[f];
+ didclip=1;
+ }
// save some stats
if (bestoff_b > 0) {
cnttrim[f][0]++;
tottrim[f][0]+=bestoff_b;
ssqtrim[f][0]+=bestoff_b*bestoff_b;
- }
- if (bestoff_e > 0) {
+ } else if (bestoff_e > 0) {
cnttrim[f][1]++;
tottrim[f][1]+=bestoff_e;
ssqtrim[f][1]+=bestoff_e*bestoff_e;
@@ -1214,6 +1236,11 @@ int main (int argc, char **argv) {
}
}
+ if (keeponlyclip && !didclip) {
+ ++skipunclip;
+ skip=1;
+ }
+
int hompol_skip=0;
if (hompol_filter) {
int hompol_max = hompol_pct * hompol_cnt;
@@ -1308,6 +1335,7 @@ int main (int argc, char **argv) {
io_ok=io_ok&&(fputs(fq[f].qual.s,fout[f])>=0);
io_ok=io_ok&&(fputc('\n',fout[f])>=0);
}
+ wrec++;
} else {
if (skipb) saveskip(fskip, i_n, fq);
if (skip==2) ++nfiltered;
@@ -1377,6 +1405,9 @@ int main (int argc, char **argv) {
if (nilv3pf > 0) {
fprintf(fstat, "Filtered %d reads on purity flag\n", nilv3pf);
}
+ if (skipunclip > 0) {
+ fprintf(fstat, "Skipped %d unclipped reads\n", skipunclip);
+ }
if (nerr > 0) {
fprintf(fstat, "Errors (%s): %d\n", ifil[f], nerr);
return 2;
@@ -1421,7 +1452,7 @@ void usage(FILE *f, const char *msg) {
fprintf(f,
"Usage: fastq-mcf [options] <adapters.fa> <reads.fq> [mates1.fq ...] \n"
-"Version: %s.%d\n"
+"Version: %s\n"
"\n"
"Detects levels of adapter presence, computes likelihoods and\n"
"locations (start, end) of the adapters. Removes the adapter\n"
@@ -1437,6 +1468,7 @@ void usage(FILE *f, const char *msg) {
"Options:\n"
" -h This help\n"
" -o FIL Output file (stats to stdout)\n"
+" -O N Only output the first N records (all)\n"
" -s N.N Log scale for adapter minimum-length-match (2.2)\n"
" -t N %% occurance threshold before adapter clipping (0.25)\n"
" -m N Minimum clip length, overrides scaled auto (1)\n"
@@ -1456,8 +1488,9 @@ void usage(FILE *f, const char *msg) {
" -P N Phred-scale (auto)\n"
" -R Don't remove N's from the fronts/ends of reads\n"
" -n Don't clip, just output what would be done\n"
-" -C N Number of reads to use for subsampling (300k)\n"
+" -K Only keep clipped reads\n"
" -S Save all discarded reads to '.skip' files\n"
+" -C N Number of reads to use for subsampling (300k)\n"
" -d Output lots of random debugging stuff\n"
"\n"
"Quality adjustment options:\n"
@@ -1472,6 +1505,8 @@ void usage(FILE *f, const char *msg) {
" --[mate-]min-len NUM Minimum remaining length (same as -l)\n"
" --homopolymer-pct PCT Homopolymer filter percent (95)\n"
" --lowcomplex-pct PCT Complexity filter percent (95)\n"
+" --keep-clipped Only keep clipped (same as -K)\n"
+" --max-output-reads N Only output first N records (same as -O)\n"
"\n"
"If mate- prefix is used, then applies to second non-barcode read only\n"
/*
@@ -1526,7 +1561,7 @@ void usage(FILE *f, const char *msg) {
"\n"
"Homopolymer filtering is a subset of low-complexity, but will not\n"
"be separately tracked unless both are turned on.\n"
- ,VERSION, SVNREV);
+ ,VERSION);
}
inline int char2bp(char c) {
diff --git a/fastq-multx.c b/clipper/fastq-multx.cpp
similarity index 84%
rename from fastq-multx.c
rename to clipper/fastq-multx.cpp
index ddb3f72..0772579 100644
--- a/fastq-multx.c
+++ b/clipper/fastq-multx.cpp
@@ -34,8 +34,7 @@ See "void usage" below for usage.
#define THFIXFACTOR 20
#define endstr(e) (e=='e'?"end":e=='b'?"start":"n/a")
-const char * VERSION = "1.02";
-#define SVNREV atoi(strchr("$LastChangedRevision: 684 $", ':')+1)
+const char * VERSION = "1.02.772";
// barcode
struct bc {
@@ -87,10 +86,17 @@ struct bc bc[MAX_BARCODE_NUM+1];
static int bcnt=0;
static int pickmax=0;
+static int pickmax2=0;
static void *picktab=NULL;
void pickbest(const void *nodep, const VISIT which, const int depth);
int bnodecomp(const void *a, const void *b) {return strcmp(((bnode*)a)->seq,((bnode*)b)->seq);};
static float pickmaxpct=0.10;
+void getbcfromheader(struct fq *fqin, struct fq *bc, char **s2=NULL, int *ns2=NULL);
+void getbcfromheader(char *s, int *ns, char **q=NULL, char **s2=NULL, int *ns2=NULL);
+
+int ignore;
+size_t ignore_st;
+
int main (int argc, char **argv) {
char c;
@@ -114,11 +120,12 @@ int main (int argc, char **argv) {
bool usefile1 = false;
int phred = 33;
double threshfactor = 1;
+ int bcinheader = 0;
int i;
bool omode = false;
char *bfil = NULL;
- while ( (c = getopt (argc, argv, "-Dzxnbeov:m:B:g:L:l:G:q:d:t:")) != -1) {
+ while ( (c = getopt (argc, argv, "-DzxnHhbeov:m:B:g:L:l:G:q:d:t:")) != -1) {
switch (c) t:{
case '\1':
if (omode) {
@@ -143,6 +150,8 @@ int main (int argc, char **argv) {
}
verify = *optarg; break;
case 'b': end = 'b'; break;
+ case 'h': usage(stdout); exit(0); break;
+ case 'H': bcinheader = 1; usefile1=1; break;
case 'e': end = 'e'; break;
case 'G': group = optarg; break;
case 'g':
@@ -277,22 +286,34 @@ int main (int argc, char **argv) {
char *s = NULL; size_t na = 0; int nr = 0, ns = 0;
char *q = NULL; size_t nq = 0;
double tots=0, totsq=0;
-
+ char *s2 = NULL; int ns2=0;
+ char *ignore_s=NULL;
+
stat(in[i], &st);
- while (getline(&s, &na, fin[i]) > 0) {
+ while ((ns=getline(&s, &na, fin[i])) > 0) {
if (*s != '@') {
fprintf(stderr,"Invalid fastq file: %s.\n", in[i]);
exit(1);
}
- if ((ns=getline(&s, &na, fin[i])) <=0)
- break;
-
- getline(&q, &nq, fin[i]);
- getline(&q, &nq, fin[i]);
-
- s[--ns]='\0'; q[ns]='\0';
+ if (bcinheader) {
+ // read in 3 more lines (seq, comment, qual) and ignore them
+ ignore=getline(&ignore_s, &ignore_st, fin[i]);
+ ignore=getline(&ignore_s, &ignore_st, fin[i]);
+ ignore=getline(&ignore_s, &ignore_st, fin[i]);
+ getbcfromheader(s, &ns, &q, &s2, &ns2);
+ nq=ns;
+ } else {
+ // read in 3 more lines (seq, comment, qual)
+ if ((ns=getline(&s, &na, fin[i])) <=0)
+ break;
+
+ ignore=getline(&q, &ignore_st, fin[i]);
+ nq=getline(&q, &ignore_st, fin[i]);
+
+ s[--ns]='\0'; q[--nq]='\0';
+ }
// skip if quality is below average
if (st.st_size > (sampcnt * 500) && poorqual(i, ns, s, q))
@@ -314,11 +335,16 @@ int main (int argc, char **argv) {
}
if (bcg[b].b.dual) {
- if (!strncasecmp(s, bcg[b].b.dual, bcg[b].b.dual_n)) {
+ const char * t=s;
+ int nt=ns;
+ if (bcinheader) { // barcode in header? use stuff after '+' sign
+ t=s2;
+ nt=ns2;
+ }
+ if (!strncasecmp(t, bcg[b].b.dual, bcg[b].b.dual_n)) {
++bcg[b].dbcnt[i];
}
-
- if (ns >= bcg[b].b.dual_n && !strcasecmp(s+ns-bcg[b].b.dual_n, bcg[b].b.dual)) {
+ if (ns >= bcg[b].b.dual_n && !strcasecmp(t+nt-bcg[b].b.dual_n, bcg[b].b.dual)) {
++bcg[b].decnt[i];
}
}
@@ -506,15 +532,26 @@ int main (int argc, char **argv) {
// small sample to get lengths
double tots=0, totsq=0;
- while (getline(&s, &na, gin) > 0) {
+ while ((ns=getline(&s, &na, gin)) > 0) {
if (*s != '@') {
fprintf(stderr,"Invalid fastq file: %s.\n", in[0]);
exit(1);
}
- if ((ns=getline(&s, &na, gin)) <=0)
- break;
- getline(&q, &nq, gin);
- getline(&q, &nq, gin);
+
+ if (bcinheader) {
+ ignore=getline(&q, &ignore_st, fin[i]);
+ ignore=getline(&q, &ignore_st, fin[i]);
+ ignore=getline(&q, &ignore_st, fin[i]);
+ /// no dual barcode detection allowed
+ getbcfromheader(s, &ns);
+ printf("bc is %s\n", s);
+ } else {
+ if ((ns=getline(&s, &na, gin)) <=0)
+ break;
+ ignore=getline(&q, &ignore_st, gin);
+ ignore=getline(&q, &ignore_st, gin);
+ }
+
--ns;
tots+=ns;
totsq+=ns*ns;
@@ -542,20 +579,27 @@ int main (int argc, char **argv) {
pickmax=0;
picktab=NULL;
bnode * ent = NULL;
- while (getline(&s, &na, gin) > 0) {
+ while ((ns=getline(&s, &na, gin)) > 0) {
if (*s != '@') {
fprintf(stderr,"Invalid fastq file: %s.\n", in[i]);
exit(1);
}
- if ((ns=getline(&s, &na, gin)) <=0)
- break;
-
- getline(&q, &nq, gin);
- if (getline(&q, &nq, gin) != ns)
- break;
+ if (bcinheader) {
+ ignore=getline(&q, &ignore_st, fin[i]);
+ ignore=getline(&q, &ignore_st, fin[i]);
+ ignore=getline(&q, &ignore_st, fin[i]);
+ getbcfromheader(s, &ns, &q);
+ printf("bc is %s\n", s);
+ } else {
+ if ((ns=getline(&s, &na, gin)) <=0)
+ break;
- s[--ns]='\0'; q[ns]='\0';
+ ignore=getline(&q, &ignore_st, gin);
+ if (getline(&q, &ignore_st, gin) != ns)
+ break;
+ s[--ns]='\0'; q[ns]='\0';
+ }
if (st.st_size > (sampcnt * 500) && poorqual(i, ns, s, q))
continue;
@@ -569,14 +613,16 @@ int main (int argc, char **argv) {
p=s+nr-blen;
}
p[blen]='\0';
- if (!ent) // make a new ent
+ if (!ent) { // make a new ent
ent = (bnode *) malloc(sizeof(*ent));
+ ent->seq=(char*)malloc(blen+1);;
+ }
if (strchr(p, 'N')||strchr(p, 'n'))
continue;
ent->cnt=0;
- strcpy(ent->seq=(char*)malloc(strlen(p)+1), p);
+ strcpy(ent->seq, p);
bnode *fent = * (bnode**) tsearch(ent, &picktab, bnodecomp);
@@ -585,12 +631,15 @@ int main (int argc, char **argv) {
++fent->cnt;
- if (fent->cnt > pickmax) pickmax=fent->cnt;
+ if (fent->cnt > pickmax)
+ pickmax=fent->cnt;
+ else if (fent->cnt > pickmax2)
+ pickmax2=fent->cnt;
if (nr > sampcnt)
break;
}
- pickmax=max(1,(int)(pickmaxpct*pickmax));
+ pickmax=max(1,(int)(pickmaxpct*pickmax2));
fprintf(stderr, "Threshold used: %d\n", pickmax);
twalk(picktab, pickbest);
} else {
@@ -637,6 +686,10 @@ int main (int argc, char **argv) {
// for whatever reason, the end is not supplied... easy enough to determine accurately
// or it's dual... which means we need to resample stuff
+ if (bcinheader && !end) {
+ end = 'b';
+ }
+
if (end == '\0' || dual) {
for (i=0;i<f_n;++i) {
if (!gzin[i])
@@ -780,8 +833,9 @@ int main (int argc, char **argv) {
// don't trim if you're not outputting the read
- struct fq fq[6];
- meminit(fq);
+ struct fq fq[8];
+
+ meminit(fq);
int nrec=0;
int nerr=0;
@@ -821,19 +875,29 @@ int main (int argc, char **argv) {
int i, best=-1, bestmm=mismatch+distance+1, bestd=mismatch+distance+1, next_best=mismatch+distance*2+1;
+ if (bcinheader) {
+ for (i=f_n-1;i>=0;--i) {
+ fq[i+(dual?2:1)]=fq[i];
+ }
+ meminit(fq[0]);
+ if (dual) {
+ meminit(fq[1]);
+ getbcfromheader(&fq[2], &fq[0], &fq[1].seq.s, &fq[1].seq.n);
+ } else {
+ getbcfromheader(&fq[2], &fq[0]);
+ }
+ }
+
if (debug) {
- fq[0].id.s[fq[0].id.n-1] = '\0';
+ if (!bcinheader) fq[0].id.s[fq[0].id.n-1] = '\0';
fprintf(stderr, "id: %s, seq: %s %d", fq[0].id.s, fq[0].seq.s, fq[0].seq.n);
if (dual) fprintf(stderr, ", sdual: %s %d", fq[1].seq.s, fq[1].seq.n);
- fq[0].id.s[fq[0].id.n] = '\n';
+ if (!bcinheader) fq[0].id.s[fq[0].id.n] = '\n';
if (debug > 1) printf("\n");
- if (!memcmp(fq[0].id.s, "HWI-ST1000:199:C0KG2ACXX:6:1101:1497:1878",41)) {
- printf("HERE %d\n", debug);
- exit(0);
- }
}
if (quality > 0) {
+ // low quality base = 'N'
for (i=0;i<fq[0].seq.n;++i) {
if (fq[0].qual.s[i]<quality) {
fq[0].seq.s[i]='N';
@@ -935,8 +999,15 @@ int main (int argc, char **argv) {
++bc[best].cnt;
- for (i=0;i<f_n;++i) {
- FILE *f=bc[best].fout[i];
+ int shift_index=0;
+ if (bcinheader) {
+ shift_index = 1;
+ if (dual)
+ shift_index = 2;
+ }
+
+ for (i=shift_index;i<f_n+shift_index;++i) {
+ FILE *f=bc[best].fout[i-shift_index];
if (!f) continue;
if (!trimmed) {
// todo: capture always, not just when trim is off
@@ -1023,7 +1094,7 @@ void pickbest(const void *nodep, const VISIT which, const int depth)
{
if (which==endorder || which==leaf) {
bnode *ent = *(bnode **) nodep;
- // printf("HERE!! %s, %d, %d\n", ent->seq, ent->cnt, pickmax);
+// printf("HERE!! %s, %d, %d\n", ent->seq, ent->cnt, pickmax);
// allow one sample to be as much as 1/10 another, possibly too conservative
if (ent->cnt > pickmax && bcnt < MAX_BARCODE_NUM) {
bc[bcnt].seq.s=ent->seq;
@@ -1042,7 +1113,7 @@ void pickbest(const void *nodep, const VISIT which, const int depth)
void usage(FILE *f) {
fprintf(f,
"Usage: fastq-multx [-g|-l|-B] <barcodes.fil> <read1.fq> -o r1.%%.fq [mate.fq -o r2.%%.fq] ...\n"
-"Version: %s.%d\n"
+"Version: %s\n"
"\n"
"Output files must contain a '%%' sign which is replaced with the barcode id in the barcodes file.\n"
"Output file can be n/a to discard the corresponding data (use this for the barcode read)\n"
@@ -1069,10 +1140,11 @@ void usage(FILE *f) {
"Options:\n"
"\n"
"-o FIL1 Output files (one per input, required)\n"
-"-g SEQFIL Determine barcodes from indexed read SEQFIL\n"
+"-g SEQFIL Determine barcodes from the indexed read SEQFIL\n"
"-l BCFIL Determine barcodes from any read, using BCFIL as a master list\n"
"-L BCFIL Determine barcodes from <read1.fq>, using BCFIL as a master list\n"
-"-B BCFIL Use barcodes from the specified file, don't run a determination step\n"
+"-B BCFIL Use barcodes from BCFIL, no determination step, codes in <read1.fq>\n"
+"-H Use barcodes from illumina's header, instead of a read\n"
"-b Force beginning of line (5') for barcode matching\n"
"-e Force end of line (3') for batcode matching\n"
"-t NUM Divide threshold for auto-determine by factor NUM (1), > 1 = more sensitive\n"
@@ -1083,5 +1155,70 @@ void usage(FILE *f) {
"-m N Allow up to N mismatches, as long as they are unique (1)\n"
"-d N Require a minimum distance of N between the best and next best (2)\n"
"-q N Require a minimum phred quality of N to accept a barcode base (0)\n"
- ,VERSION,SVNREV);
+ ,VERSION);
+}
+
+void getbcfromheader(struct fq *fq, struct fq *bc, char **s2, int *ns2) {
+ // reallocate bc to match fq
+ // warning... result has no newline!
+
+ // copy id to sequence
+ bc->seq.s=(char *)realloc(bc->seq.s,fq->id.n+1);
+ strncpy(bc->seq.s,fq->id.s,fq->id.n+1);
+ bc->seq.n=fq->id.n;
+ bc->seq.a=fq->id.n+1;
+
+
+ // this extracts the new sequence
+ getbcfromheader(bc->seq.s, &(bc->seq.n), &(bc->qual.s), s2, ns2);
+ bc->qual.n=bc->seq.n;
+
+//printf("DEBUG: seq is %s, length is %d\n", bc->seq.s, bc->seq.n);
+}
+
+// looks for barcode in s, totally replaces s with barcode only, sets ns to length
+void getbcfromheader(char *s, int *ns, char **q, char **s2, int *ns2) {
+ char *p=strchr(s, ' ');
+ if (!p) {
+ fprintf(stderr,"Barcode not in header: %s.\n", s);
+ exit(1);
+ }
+
+ char *t;
+ while(t=strchr(p,':')) {
+ p=t+1;
+ }
+
+ // remove newline
+ if (s[*ns-1] == '\n') {
+ if (s[*ns-1] == '\r') {
+ --*ns;
+ }
+ --*ns;
+ s[*ns]='\0';
+ }
+
+ // result has no newline
+ *ns-=(p-s);
+ memmove(s,p,*ns);
+ s[*ns]='\0';
+
+ if (q) {
+ *q=(char*)realloc(*q,(*ns)+1);
+ memset(*q,'h',*ns);
+ (*q)[*ns]='\0';
+ }
+
+ if (p=strchr(s,'+')) {
+ *p='\0';
+ *ns = p-s;
+
+ if (ns2) {
+ *ns2=(*ns-((int)(p-s))-1);
+ *s2=p+1;
+ } else {
+ // ERROR: maybe die here? Or assume the user knows what's up?
+ }
+ }
}
+
diff --git a/fastq-stats.cpp b/clipper/fastq-stats.cpp
similarity index 99%
rename from fastq-stats.cpp
rename to clipper/fastq-stats.cpp
index 0a2d092..5710bbd 100644
--- a/fastq-stats.cpp
+++ b/clipper/fastq-stats.cpp
@@ -19,9 +19,9 @@ 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.
-$Id: fastq-stats.cpp 652 2013-09-17 17:40:32Z earonesty $
+$Id$
*/
-const char * VERSION = "1.01 $Id: fastq-stats.cpp 652 2013-09-17 17:40:32Z earonesty $";
+const char * VERSION = "1.01 $Id$";
#include <ctype.h>
#include <stdio.h>
diff --git a/clipper/fastq-to-fasta b/clipper/fastq-to-fasta
new file mode 100755
index 0000000..c656f36
--- /dev/null
+++ b/clipper/fastq-to-fasta
@@ -0,0 +1,36 @@
+#!/usr/bin/perl
+
+use Getopt::Long;
+
+GetOptions(\%opt, "i=s", "o=s", "h");
+
+$ARGV[0]=$opt{i} if $opt{i};
+$ARGV[0]="gunzip -c $ARGV[0]|" if $ARGV[0] =~ /\.gz$/;
+
+if ($opt{o}) {
+ open (STDOUT, ($opt{o} =~ /\.gz$/ ? "|gzip -c >$opt{o}" : ">$opt{o}")) || die "$opt{o}:$!\n";
+}
+
+print(usage()) && exit if $opt{h};
+
+while($i=<>) {
+ $s=<>;
+ $c=<>;
+ $q=<>;
+ die "Bad fastq at like $." unless $i =~ s/^@/>/;
+ print $i, $s;
+}
+
+sub usage {
+<<EOF
+usage: fastq_to_fasta [-h] [[-i] INFILE] [-o OUTFILE]
+
+ [-h] = This helpful help screen.
+ [-i INFILE] = FASTA/Q input file. default is STDIN.
+ [-o OUTFILE] = FASTA output file. default is STDOUT.
+
+If input, or output, ends in '.gz' then the file is
+gunzipped/gzipped.
+EOF
+}
+
diff --git a/fastx-graph b/clipper/fastx-graph
similarity index 100%
rename from fastx-graph
rename to clipper/fastx-graph
diff --git a/gcModel.c b/clipper/gcModel.cpp
similarity index 98%
rename from gcModel.c
rename to clipper/gcModel.cpp
index 9627dc2..a535f6f 100644
--- a/gcModel.c
+++ b/clipper/gcModel.cpp
@@ -1,5 +1,5 @@
/*
-$Id: gcModel.c 564 2013-03-08 17:16:42Z earonesty $
+$Id$
*/
#include <ctype.h>
#include <stdio.h>
diff --git a/gcModel.h b/clipper/gcModel.h
similarity index 74%
rename from gcModel.h
rename to clipper/gcModel.h
index e75fcf5..393d8a8 100644
--- a/gcModel.h
+++ b/clipper/gcModel.h
@@ -1,5 +1,5 @@
/*
-$Id: gcModel.h 556 2013-03-01 15:32:36Z earonesty $
+$Id$
*/
extern void gcInit(int maxReadLength);
extern void gcProcessSequence(int l,int c);
diff --git a/clipper/getgenbankannot b/clipper/getgenbankannot
new file mode 100755
index 0000000..83ffa2a
--- /dev/null
+++ b/clipper/getgenbankannot
@@ -0,0 +1,67 @@
+#!/usr/bin/perl
+
+use strict;
+use Getopt::Long;
+
+my %opt;
+$opt{tmp} = "/mnt/scratch/tmp/genbank";
+GetOptions(\%opt, "field=s@", "xml", "tmp", "gene");
+
+die "usage: getgenbankannot <genbankid>\n" unless @ARGV;
+
+my $id = shift @ARGV;
+
+mkdir($opt{tmp}); chmod(0777, $opt{tmp});
+
+my $p;
+if ($id =~ /^\d+$/) {
+ $p="$opt{tmp}/$id.gene";
+ if ( ! -s $p ) {
+ system("wget -q -O - 'http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=gene&id=$id&rettype=gb' > $p");
+ }
+} else {
+ $p="$opt{tmp}/$id.gb";
+ if ( ! -s $p ) {
+ system("wget -q -O - 'http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nucleotide&id=$id&rettype=gb' > $p");
+ }
+}
+
+if ($id =~ /^\d+$/) {
+ my @d=slurp($p)=~m/<p class="([^"]+)"[^<>]*>(.*?)<\/p>/g;
+ for (my $i=0;$i<@d;$i+=2) {
+ $d[$i+1] =~ s/<[^<>]*?>//g;
+ $d[$i+1] =~ s/\s+$//;
+ next unless $d[$i];
+ next unless $d[$i+1];
+ print "$d[$i]\t$d[$i+1]\n";
+ }
+ for (xmltag(slurp($p),'dl')) {
+ my $n=xmltag($_, "dt");
+ $n =~ s/\s*:\s*//;
+ $n = lc($n);
+ my $v=xmltag($_, "dd");
+ print "$n\t$v\n";
+ }
+} else {
+ for (xmltag(slurp($p),'GBQualifier')) {
+ my $n=xmltag($_, "GBQualifier_name");
+ my $v=xmltag($_, "GBQualifier_value");
+ print "$n\t$v\n";
+ }
+}
+
+
+sub slurp {
+ local $/=undef;
+ open SL, $p;
+ return <SL>;
+}
+
+sub xmltag {
+ my ($x, $t) = @_;
+ my @x = $x =~ m{<$t[^<>]*>(.+?)</$t>}gs;
+ map s/^\s+//s, @x;
+ map s/\s+$//s, @x;
+ return wantarray ? @x : $x[0];
+}
+
diff --git a/clipper/getline.c b/clipper/getline.c
new file mode 100644
index 0000000..17d2c69
--- /dev/null
+++ b/clipper/getline.c
@@ -0,0 +1,103 @@
+/* getline.c -- Replacement for GNU C library function getline
+
+Copyright (C) 1993 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 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., 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+/* Written by Jan Brittenson, bson at gnu.ai.mit.edu. */
+
+#include <sys/types.h>
+#include <stdio.h>
+#include <assert.h>
+#include <stdlib.h>
+
+/* Read up to (and including) a TERMINATOR from STREAM into *LINEPTR
+ + OFFSET (and null-terminate it). *LINEPTR is a pointer returned from
+ malloc (or NULL), pointing to *N characters of space. It is realloc'd
+ as necessary. Return the number of characters read (not including the
+ null terminator), or -1 on error or EOF. */
+
+int getstr (char ** lineptr, size_t *n, FILE * stream, char terminator, int offset)
+{
+ int nchars_avail; /* Allocated but unused chars in *LINEPTR. */
+ char *read_pos; /* Where we're reading into *LINEPTR. */
+ int ret;
+
+ if (!lineptr || !n || !stream)
+ return -1;
+
+ if (!*lineptr)
+ {
+ *n = 64;
+ *lineptr = (char *) malloc (*n);
+ if (!*lineptr)
+ return -1;
+ }
+
+ nchars_avail = *n - offset;
+ read_pos = *lineptr + offset;
+
+ for (;;)
+ {
+ register int c = getc (stream);
+
+ /* We always want at least one char left in the buffer, since we
+ always (unless we get an error while reading the first char)
+ NUL-terminate the line buffer. */
+
+ assert(*n - nchars_avail == read_pos - *lineptr);
+ if (nchars_avail < 1)
+ {
+ if (*n > 64)
+ *n *= 2;
+ else
+ *n += 64;
+
+ nchars_avail = *n + *lineptr - read_pos;
+ *lineptr = (char *) realloc (*lineptr, *n);
+ if (!*lineptr)
+ return -1;
+ read_pos = *n - nchars_avail + *lineptr;
+ assert(*n - nchars_avail == read_pos - *lineptr);
+ }
+
+ if (c == EOF || ferror (stream))
+ {
+ /* Return partial line, if any. */
+ if (read_pos == *lineptr)
+ return -1;
+ else
+ break;
+ }
+
+ *read_pos++ = c;
+ nchars_avail--;
+
+ if (c == terminator)
+ /* Return the line. */
+ break;
+ }
+
+ /* Done - NUL terminate and return the number of chars read. */
+ *read_pos = '\0';
+
+ ret = read_pos - (*lineptr + offset);
+ return ret;
+}
+
+ssize_t getline(char **lineptr, size_t *n, FILE *stream)
+{
+ return getstr (lineptr, n, stream, '\n', 0);
+}
diff --git a/clipper/gff2gtf b/clipper/gff2gtf
new file mode 100755
index 0000000..e6cdeae
--- /dev/null
+++ b/clipper/gff2gtf
@@ -0,0 +1,103 @@
+#!/usr/bin/perl
+
+# Copyright (c) 2011 Erik Aronesty (erik at q32.com)
+#
+# 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.
+#
+# ALSO, IT WOULD BE NICE IF YOU LET ME KNOW YOU USED IT.
+
+use strict;
+
+use Data::Dumper;
+
+my $in = shift @ARGV;
+
+open (IN, ($in =~ /\.gz$/ ? "gunzip -c $in|" : $in =~ /\.zip$/ ? "unzip -p $in|" : "$in")) || die "$!";
+my (%mrnas, %gids, %tids, $haveexon, $gff);
+while (<IN>) {
+ $gff = 2 if /^##gff-version 2/;
+ $gff = 3 if /^##gff-version 3/;
+ next if /^#/;
+
+ s/\s+$//;
+ # 0-chr 1-src 2-feat 3-beg 4-end 5-scor 6-dir 7-fram 8-attr
+ my @f = split /\t/;
+
+ my ($chr, $fil, $typ, $beg, $end, undef, $dir, $frame, $attr) = @f;
+
+ # most ver 2's stick gene names in the id field
+ my ($tid) = $attr =~ /\bParent="?([^";]+)"?/;
+ my ($id) = $attr =~ /\bID="?([^";]+)"?/;
+ my ($name) = $attr =~ /\bName="?([^";]+)"?/;
+
+ next unless $tid;
+
+ if ($typ eq 'exon' || $typ eq 'CDS') {
+ die "no position at $typ on line $." if ! $beg;
+ for (split(/,/,$tid)) {
+ push @{$tids{$_}}, \@f;
+ }
+ $haveexon = 1 if $typ eq 'exon';
+ }
+ if ($typ eq 'mRNA') {
+ $mrnas{$id} = $tid;
+ }
+ if ($typ eq 'gene' && $name) {
+ $gids{$id} = $name;
+ }
+}
+
+for my $tid (keys(%tids)) {
+ for (sort {$a->[3] <=> $b->[3]} (@{$tids{$tid}})) {
+ my ($chr, $fil, $typ, $beg, $end, undef, $dir, $frame, $attr) = @$_;
+ my ($pid) = $attr =~ /\bParent="?([^";]+)"?/;
+ my ($gid) = $attr =~ /\bID="?([^";]+)"?/;
+ my ($id) = $attr =~ /\bName="?([^";]+)"?/;
+ my ($exn) = $gid =~ /exon:(\d+)/;
+ my ($gnm) = "";
+
+ if (!$id) {
+ if ($mrnas{$pid}) {
+ $id = $mrnas{$pid};
+ if ($gids{$gid}) {
+ $gnm=$gids{$id};
+ }
+ }
+ }
+
+ # gff3 puts :\d in exons sometimes
+
+ $id =~ s/:\w+$//;
+ $tid =~ s/:\w+$//;
+ $id =~ s/-cds$//;
+ $tid =~ s/^CDS_//;
+
+ $tid = "$tid:$id" if $tid !~ /^$id/;
+
+ my $ex = "";
+ $ex = " exon_number \"$exn\";" if $exn > 0;
+
+# for some this is needed... not for others?
+# --$beg; --$end;
+ print "$chr\t$fil\t$typ\t$beg\t$end\t0\t$dir\t$frame\tgene_id \"$id\"; transcript_id \"$tid\";$ex\n";
+ print "$chr\t$fil\texon\t$beg\t$end\t0\t$dir\t$frame\tgene_id \"$id\"; transcript_id \"$tid\";$ex\n" if !$haveexon;
+ }
+}
+
+close IN;
diff --git a/clipper/grun b/clipper/grun
new file mode 100755
index 0000000..60a51cc
--- /dev/null
+++ b/clipper/grun
@@ -0,0 +1,3930 @@
+#!/usr/bin/perl
+
+# grun - lightweight jobs queueing system
+# Copyright (C) 2011 Erik Aronesty
+#
+# 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 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, see <http://www.gnu.org/licenses/>.
+
+use strict;
+
+use Carp qw(carp croak confess cluck);
+use Getopt::Long qw(GetOptions);
+use Data::UUID;
+
+use ZMQ::LibZMQ3;
+use ZMQ::Constants ':all';
+use JSON::XS;
+use Time::HiRes;
+use BSD::Resource;
+
+use IO::File;
+use POSIX qw(:sys_wait_h strftime);
+use Socket qw(IPPROTO_TCP TCP_NODELAY TCP_KEEPIDLE TCP_KEEPINTVL TCP_KEEPCNT);
+use Fcntl qw(F_GETFL F_SETFL O_NONBLOCK);
+use Safe;
+use Cwd qw(abs_path cwd);
+use List::Util qw(min max);
+use File::Basename qw(dirname);
+
+sub pretty_encode;
+
+our ($REVISION) = (q$LastChangedRevision$ =~ /(\d+)/);
+
+our $VERSION = "0.9.$REVISION"; # 0.10 wil be feature lock, after sql impl. 0.9.X is zmq & json::xs
+
+my $STATUS_NEVERRUN=199;
+my $STATUS_ORPHAN=-8;
+my $STATUS_UNKNOWN=-9;
+my $STATUS_EXECERR=-10;
+my $PPID=$$;
+my $WIN32 = ($^O =~ /Win32/);
+my $TIMEFMT = 'command:%C\ncpu-real:%E\ncpu-user:%U\ncpu-sys:%S\nmem-max:%M\nmem-avg:%t\nctx-wait:%w\nfs-in:%I\nfs-out:%O';
+
+my ($daemon, $killjob, $editjob);
+my (%conf, %def, @metrics, @labels);
+
+# defaults just run things locally, no master
+$def{config} = "/etc/grun.conf"; # config file
+$def{spool} = "/var/spool/grun"; # dir to place jobs
+$def{port} = 5184; # listen/connect port
+$def{bind} = '0.0.0.0'; # listen addr
+$def{env} = ['PATH']; # list of environment vars to copy from submit through to exec
+$def{default_memory} = 1000 * 1000; # default job memory
+$def{default_priority} = 20; # default job priority (20 = always run)
+$def{ping_secs} = 30; # how often to tell about load/mem/stats
+$def{remove_secs} = '$ping_secs * 1000'; # don't even try kickstarting if the node is this old
+$def{idle_load} = .3; # how often to tell about load/mem/stats
+$def{retry_secs} = 10; # how often to retry notifications
+$def{bench_secs} = 86400; # how often to re-benchmark
+$def{max_buf} = 1000000; # how often to retry notifications
+$def{expire_secs} = 14400; # remove jobs whose execution nodes haven't reported back in this amount of time
+$def{io_keep} = 3600; # keep io for this long after a job with i/o is finished in a detached session
+#$def{hard_factor} = 1.5; # hard limit factor
+$def{max_sched} = 50; # how many different jobs to try and match before giving up on the rest (queue busy)
+$def{spread_pct} = 5; # how often to "distribute jobs", versus "clump" them
+$def{master} = 'localhost:5184'; # central scheduler
+$def{services} = "queue exec"; # all can run
+$def{pid_file} = "/var/run/grun.pid"; # pid file
+$def{log_file} = "/var/log/grun.log"; # pid file
+$def{hostname} = $ENV{HOSTNAME} ? $ENV{HOSTNAME} : $ENV{COMPUTERNAME} ? $ENV{COMPUTERNAME} : `hostname`;
+$def{log_types} = "note error warn"; # log all
+$def{nfs_sync} = 1; # enable nfs sync support
+
+chomp $def{hostname};
+
+sub debugging;
+
+my $GRUN_PATH=abs_path($0);
+
+my ($qinfo, $help, $config, $ver);
+
+Getopt::Long::Configure qw(require_order no_ignore_case passthrough);
+
+my $context = zmq_init();
+
+my @ORIG_ARGV= @ARGV;
+
+GetOptions("daemon"=>\$daemon, "CONF:s"=>\$config, "trace"=>\$def{trace}, "query"=>\$qinfo, "V"=>\$ver, "help"=>\$help) ||
+ die usage();
+
+(print "grun $VERSION\n") && exit(0) if $ver;
+
+my @send_files; # files to send
+
+my $safe = new Safe;
+
+$def{config} = $config if $config;
+
+init();
+
+my $stream_quit = 0;
+
+if ($ARGV[0] eq '-X') {
+ do_stream();
+ exit(0);
+}
+
+if ($ARGV[0] eq '-Y') {
+ do_execute();
+ exit(0);
+}
+
+
+if ($ARGV[0] eq '-?') {
+ shift @ARGV;
+ $help = 1;
+}
+
+$help = 1 if defined $config && !$config;
+
+if ($help) {
+ print usage();
+ exit 0;
+}
+
+if (!$daemon) {
+ # -k <id> works as long as -d wasn't specified
+ GetOptions("kill"=>\$killjob, "trace"=>\$def{trace}, "edit|e"=>\$editjob) ||
+ die usage();
+}
+
+if ($conf{debug_memory}) {
+ eval {require Devel::Gladiator;};
+ die $@ if $@;
+}
+
+my $gjobid = slurp("$conf{spool}/nextid");
+my $log_to_stderr = 0;
+
+if ($qinfo) {
+# this is the code for grun -q
+
+ Getopt::Long::Configure qw(no_require_order no_ignore_case passthrough);
+ my %opt;
+ GetOptions(\%opt, "silent", "inplace", "hosts=s", "debug") || die usage();
+ my $cmd = shift @ARGV;
+ die usage() if !$cmd;
+ $log_to_stderr = 1 if $opt{debug};
+
+ my @arg = @ARGV;
+ $cmd =~ s/^-//;
+ my $tmp = substr bestunique($cmd, qw(config status jobs file history wait memory)), 0, 4;
+ if (!$tmp) {
+ die "Command $cmd is not available, for help type grun -query -?\n";
+ }
+ $cmd = $tmp;
+
+# some commands default to localhost, others default to queue host... this is confusing... fix?
+
+ my @dest = $opt{hosts} ? expandnodes($opt{hosts}) :
+ $cmd eq 'conf' ? [$conf{bind}, $conf{port}] :
+ [$conf{master},$conf{master_port}];
+
+ if ($cmd eq 'file' && @dest > 1) {
+ die "Command $cmd cannot be run on multiple hosts";
+ }
+
+ my $ok=0;
+ for my $d (@dest) {
+ my ($host, $port) = @$d;
+
+ if ($cmd eq 'wait') {
+ my $st = 0;
+ for (@arg) {
+ my ($res) = waitmsg($host, $port, "jwait", $_);
+ if ($res && defined $res->{status}) {
+ print "Job $_ status $res->{status}\n";
+ $st = $res->{status} if $res->{status};
+ } else {
+ print "Job $_ status $STATUS_UNKNOWN\n";
+ $st = $STATUS_UNKNOWN;
+ }
+ }
+ exit $st;
+ } elsif ($cmd eq 'file') {
+ my $cwd = cwd;
+ my @need;
+ for (@arg) {
+ next if -e $_;
+ if ($_ !~ /^\//) {
+ $_ = "$cwd/$_";
+ }
+ push @need, $_;
+ }
+ die "not supported yet\n";
+ # if (@need) {
+ # my ($res, $error) = waitio({inplace=>$opt{inplace}}, $host, $port, "xcmd", 'file', @need);
+ # die $error, "\n" if $error && !$opt{silent};
+ # exit 1 if $error;
+ # }
+ } elsif ((!samehost($host,$conf{hostname}) || (!$ENV{_GRUN} && (!$conf{services}->{queue} || $cmd !~ /^stat|jobs|hist$/)))) {
+ # this could get ugly, if called a lot, may want to make more efficient
+ warn ("waitmsg($host, $port, 'xcmd', $cmd, @arg, @{[%opt]})\n") if $opt{debug};
+ my ($ret) = waitmsg($host, $port, "xcmd", $cmd, @arg, %opt);
+ print $ret;
+ $ok=1 if $ret;
+ } else {
+ warn ("Using local queue status, host $host is $conf{bind}/$conf{hostip}, name is $conf{hostname} \n") if $opt{debug};
+ my $ret;
+ if ($cmd eq 'stat') {
+ $ret = shownodes(@arg);
+ } elsif ($cmd eq 'jobs') {
+ $ret = showjobs(@arg);
+ } elsif ($cmd eq 'hist') {
+ $ret = showhist(@arg);
+ }
+ print $ret;
+ $ok=1 if $ret;
+ }
+ }
+ exit($ok ? 0 : 1);
+}
+
+my $gpid; # daemon pid
+if (open(IN, $conf{pid_file})) {
+ $gpid = <IN>;
+ close IN;
+}
+
+if ($killjob) {
+# grun -k code
+ my $sig = 15;
+ my $kforce = 0;
+ Getopt::Long::Configure qw(no_require_order no_ignore_case);
+ GetOptions("signal|n=i"=>\$sig, "force"=>\$kforce) || die usage();
+
+ my $exit = 0;
+ for my $job (@ARGV) {
+ my @id;
+ if ($job !~ /^\d/) {
+ @id=(guid=>"$job");
+ } else {
+ @id=(jid=>$job);
+ }
+ my $err = kill_job(@id, sig=>$sig, force=>$kforce);
+ if (!defined($err) && $@) {
+ warn $@,"\n";
+ $exit=-1;
+ } else {
+ my $ok = ($err =~ /^Job.*(aborted|kill requested)/);
+ $err =~ s/\n$//;
+ warn "$err\n" if $ok;
+ $err = 'No remote response to jkill' if !$ok && !$err;
+ warn "Error: $err\n" if !$ok;
+ $exit=-1 if !$ok;
+ }
+ }
+ exit 0;
+}
+
+if ($editjob) {
+ my %ed;
+ while (@ARGV) {
+ $_=$ARGV[0];
+ for (split /,/, $_) {
+ my ($key, $val) = $_ =~ /^([^=]+)(?:=(.*))?$/;
+ my $nk = bestunique($key, qw(hold resume memory cpus state hosts), @metrics, @labels);
+ $key = $nk if $nk;
+ $key = 'state', $val = 'hold' if ($key eq 'hold');
+ $key = 'state', $val = 'resume' if ($key eq 'resume');
+ if ($key eq 'state') {
+ $val = substr bestunique($val, qw(hold resume)), 0, 4;
+ die "' must be one of: h(old) r(esume)\n" unless $val;
+ }
+ $ed{$key}=$val;
+ }
+ shift;
+ last unless $ARGV[0] =~ /=/;
+ }
+ my @jids = @ARGV;
+
+ die usage() if !%ed || !@jids;
+
+ my $ex = 0;
+ for my $jid (@jids) {
+ warn "Edit " . packdump(\%ed) . "\n";
+ my ($err) = waitmsg($conf{master}, $conf{master_port}, 'jedit', $jid, %ed);
+ my $ok = ($err =~ /^Job.*edited/);
+ $err=~ s/\n$//;
+ warn "$err\n" if $ok;
+ $err = 'No remote response to jedit' if !$ok && !$err;
+ warn "Error: $err\n" if !$ok;
+ $ex = 1 if !$ok;
+ }
+ exit $ex;
+}
+
+
+
+
+my ($router, $read_set, $write_set, $quit, %pid_jobs, %j_wait, %io_wait, %start_wait); # daemon globals
+my %ZMQS; # hash of open sockets
+my %nodes; # hash of registered nodes
+
+if ($daemon) {
+ startdaemon();
+} else {
+ grun_client();
+}
+
+####################
+# client mode
+
+my $make;
+my %sync_after;
+my %sync_before;
+my %sync_already;
+
+sub grun_client {
+ my %jobs;
+ my %opt;
+
+ $opt{wait} = 1; # keep socket open until job is finished
+ $opt{io} = 1; # copy io back on the socket, implies wait
+
+ Getopt::Long::Configure qw(require_order no_ignore_case passthrough);
+
+ GetOptions(\%opt, "file=s", "int|I", "memory|m=i", "hosts|h=s", "cpus|c=f", "io!", "wait!", "err_a|err-append|ea=s", "err|e=s", "out|o=s", "out_a|out-append|oa=s", "ouer|out-err|oe=s", "ouer_a|out-err-append|oea=s", "jobx|jobid|j=s", "verbose", "make|M", "debug|D", "env|E=s", "alert=s", "param|p=s@", "wait-exists|W", "priority|r=i");
+
+ if ((!!$opt{out} + !!$opt{out_a} + !!$opt{ouer} + !!$opt{ouer_a})>1) {
+ $config=undef;
+ die "ERROR: Specify only one of --out, --out-append, --out-err or --out-err-append\n\n" . usage()
+ }
+
+ if ((!!$opt{err} + !!$opt{err_a} + !!$opt{ouer} + !!$opt{ouer_a})>1) {
+ $config=undef;
+ die "ERROR: Specify only one of --err, --err-append, --out-err or --out-err-append\n\n" . usage()
+ }
+
+ if (my $t=$opt{out_a}?$opt{out_a}:$opt{ouer_a}) {
+ $opt{out}=$t;
+ $opt{out_a}=1;
+ delete $opt{ouer_a};
+ }
+ if (my $t=$opt{err_a}?$opt{err_a}:$opt{ouer_a}) {
+ $opt{err}=$t;
+ $opt{err_a}=1;
+ delete $opt{ouer_a};
+ }
+ if ($opt{ouer}) {
+ $opt{out}=$opt{err}=$opt{ouer}; delete $opt{ouer};
+ }
+
+ my $verbose = $opt{verbose}; delete $opt{verbose};
+ my $env = $opt{env}; delete $opt{env};
+ $make = $opt{make}; delete $opt{make};
+ $log_to_stderr = 1 if $opt{debug};
+
+ if ($< == 0) {
+ die "Won't run a job as root\n";
+ }
+
+ if ($opt{err} && $opt{out}) {
+ $opt{io} = 0;
+ }
+
+ while ($ARGV[0] =~ /^--([\w-]+)=([\w=]+)/) {
+ # allow arbitrary job options, that jan later be referred to in match expressions
+ # or in execution wrappers, etc
+ $opt{$1} = $2;
+ shift @ARGV;
+ }
+
+ if ($make || $verbose) {
+ GetOptions(\%opt, "noexec");
+ }
+
+ my @cmd = @ARGV;
+
+ if ($opt{file}) {
+ # read options from a file
+ funpack($opt{file}, \%opt);
+ if ($opt{cmd}) {
+ if (@ARGV) {
+ die "Can't supply cmd: in the file and '@cmd' on the command line\n";
+ }
+ if ($opt{cmd} !~ /^[\w0-9:\/\t -]+$/) {
+ # not simple: let bash handle it
+ @cmd = ('bash', '-c', $opt{cmd});
+ } else {
+ # simple: split, pass as is to exec
+ $opt{cmd} =~ s/^\s+//;
+ $opt{cmd} =~ s/\s+$//;
+ @cmd = split /\s+/, $opt{cmd};
+ }
+ }
+ }
+
+ # force exec in "same as current dir"
+ $opt{cwd} = cwd;
+ if (!$opt{cwd}) {
+ die "Can't get current working directory, not executing unanchored remote command.\n";
+ }
+
+ if ($make) {
+ # %i:input %o:output
+ my (@i, @o);
+ for (@cmd) {
+ my @t = m/[#%]([io]):(\S+)/g;
+ if (@t) {
+ for (my $i=0;$i<@t;++$i) {
+ push @o, $t[$i+1] if $t[$i] eq 'o';
+ push @i, $t[$i+1] if $t[$i] eq 'i';
+ }
+ s/%[io]:(\S+)/$1/g;
+ s/#[io]:\S+//g;
+ }
+ my @t = m/([<>])\s*(\S+)/g;
+ if (@t) {
+ for (my $i=0;$i<@t;$i+=2) {
+ push @i, $t[$i+1] if $t[$i] eq '<' && $t[$i+1]=~/^\s*\w/;
+ push @o, $t[$i+1] if $t[$i] eq '>' && $t[$i+1]=~/^\s*\w/;
+ }
+ }
+ s/\%\!\>(>?\s*\S+)/>$1/g;
+ }
+ die "Unable to determine i/o for -M (make) semantics\n\n" . usage()
+ if !@i || !@o;
+
+ my $need=0;
+ for my $i (@i) {
+ syncfile($i);
+ add_syncfile_before($i);
+ for my $o (@o) {
+ syncfile($o);
+ if (! (-s $o) || (fmodtime($i) > fmodtime($o))) {
+ warn "# need $o\n" if $opt{noexec} || $verbose;
+ $need=1;
+ }
+ }
+ }
+ if (!$need) {
+ warn "Skipping: @cmd\n";
+ exit 0;
+ }
+ for (@o) {
+ add_syncfile_after($_);
+ }
+ warn "+ at cmd\n" if $opt{noexec} || $verbose;
+ } else {
+ for (@cmd) {
+ if (m{([^\s,:]+)/([^\s,:]+)}) {
+ add_syncfile_after($_);
+ add_syncfile_before($_);
+ }
+ }
+ add_syncdir_after($opt{cwd});
+ add_syncdir_before($opt{cwd});
+ }
+
+ if ($ARGV[0] =~ /^-/) {
+ die "Unknown option $ARGV[0]\n";
+ }
+
+
+ #die pretty_encode \@cmd if $opt{debug};
+
+ if (!@cmd) {
+ die usage();
+ }
+
+ if ($cmd[$#cmd] =~ /\&$/) {
+ # TODO: grun should wait for all kids, and disallow detaching, not just get rude here
+ die "Not running background-only job. You might mean: grun \"command\" &.\n";
+ }
+
+ if ($conf{auto_profile}) {
+ if (-e ($conf{auto_profile})) {
+ my $cmd = join ' ', @cmd;
+ # safe'ish eval, just so there aren't weird side effects
+ my ($cpu, $mem, $prof) = evalctx(slurp($conf{auto_profile}) . ";\nreturn (\$cpu, \$mem, \%prof);", cmd=>$cmd, cmd=>\@cmd);
+
+ $prof = $cpu if ref($cpu) eq 'HASH';
+
+ # alias names
+ $prof->{cpus}=$prof->{cpu} if !$prof->{cpus} && $prof->{cpu};
+ $prof->{memory}=$prof->{mem} if !$prof->{memory} && $prof->{mem};
+
+ if ($prof && ref($prof) eq 'HASH') {
+ $prof->{memory} = $mem if defined($mem) && !ref($mem) && !$prof->{memory};
+ $prof->{cpus} = $cpu if defined($cpu) && !ref($cpu) && !$prof->{cpus};
+
+ $opt{memory}=$prof->{memory} if $prof->{memory} && !$opt{memory};
+ $opt{cpus}=$prof->{cpus} if $prof->{cpus} && !$opt{cpus};
+ $opt{hosts}=$prof->{hosts} if $prof->{hosts} && !$opt{hosts};
+ $opt{priority}=$prof->{priority} if $prof->{priority} && !$opt{priority};
+
+ for ((@metrics, at labels)) {
+ # as if the user entered it
+ next if !$_;
+ push @{$opt{"param"}}, "$_=" . $prof->{$_} if defined($prof->{$_});
+ }
+ } else {
+ $opt{memory}=$mem if ($mem > $opt{memory});
+ $opt{cpus}=$cpu if ($cpu > $opt{cpus});
+ }
+
+ if ($@) {
+ die "Can't run $conf{auto_profile}: $@\n";
+ }
+ } else {
+ die "Can't find $conf{auto_profile}: $!\n";
+ }
+ }
+
+ my %param;
+ if ($opt{param}) {
+ for (@{$opt{param}}) {
+ if (/^([^=]+)=(.*)/) {
+ $param{$1} = $2;
+ } else {
+ die "Parameter $_: should be name=value\n";
+ }
+ }
+ }
+ $opt{param} = \%param;
+
+ $opt{priority} = $ENV{GRUN_PRIORITY}+0 if !$opt{priority} && $ENV{GRUN_PRIORITY} >= 1;
+ $opt{priority} = $conf{default_priority} if !$opt{priority};
+
+ # convert memory to kB
+ if ($opt{memory}) {
+ if ($opt{memory} =~ /kb?$/i) {
+ # internal memory unit is kB
+ } elsif ($opt{memory} =~ /gb?$/i) {
+ # convert gB to kB
+ $opt{memory} *= 1000000;
+ } else {
+ # convert mB to kB
+ $opt{memory} *= 1000;
+ }
+ } else {
+ $opt{memory} = $conf{default_memory};
+ }
+
+ # no socket io unless waiting
+ if (!$opt{wait}) {
+ delete $opt{io};
+ }
+
+
+ # copy env
+ if ($env eq '*' || ($conf{env} && ($conf{env}->[0] eq '*')) ) {
+ for (keys %ENV) {
+ if (! /^_|LS_COLORS/) {
+ $opt{env}->{$_} = $ENV{$_};
+ }
+ }
+ } else {
+ for (@{$conf{env}}) {
+ $opt{env}->{$_} = $ENV{$_} if defined $ENV{$_};
+ }
+ for (split /\s+/, $env) {
+ $opt{env}->{$_} = $ENV{$_} if defined $ENV{$_};
+ }
+ }
+
+ $opt{user} = getpwuid($>);
+ $opt{group}=$);
+ $opt{umask} = umask();
+ $opt{env}->{USER} = $opt{user};
+
+ if (!$opt{wait}) {
+ open STDERR, ">&STDOUT";
+ }
+
+ $opt{memory} = $opt{memory} ? $opt{memory} : $conf{default_memory};
+ $opt{cpus} = $opt{cpus} ? $opt{cpus} : 1;
+
+ for (@metrics) {
+ if ($conf{"default_$_"}) {
+ $opt{$_} = $opt{$_} ? $opt{$_} : $conf{"default_$_"};
+ }
+ }
+
+ if ($verbose) {
+ printf STDERR "Memory: %d\n", $opt{memory};
+ printf STDERR "CPUs: %d\n", $opt{cpus};
+ printf STDERR "Hosts: %s\n", $opt{hosts} if $opt{hosts};
+ for ((@metrics, at labels)) {
+ printf STDERR proper($_) . ": %s\n", $opt{param}->{$_} ? $opt{param}->{$_} : 1;
+ }
+ }
+
+ if ($opt{jobx}) {
+ if ($opt{jobx} =~ /^\d/) {
+ die "External job id's should start with a non-numeric\n";
+ }
+ }
+
+ my %info;
+
+ sub client_sigh {
+ my $signame = shift;
+ $SIG{INT} = undef;
+ $SIG{TERM} = undef;
+ $SIG{PIPE} = undef;
+ if ($info{jid}||$info{guid}) {
+ if (!($signame eq 'PIPE')) {
+ print STDERR "Aborting command, sending jkill for $info{jid}\n";
+ }
+ my $code = $signame eq 'INT' ? 2 : $signame eq 'PIPE' ? 13 : 15;
+ my $err = kill_job(jid=>$info{jid}, guid=>$opt{guid}, sig=>$code, termio=>1);
+ if (!($signame eq 'PIPE')) {
+ if (!defined($err) && $@) {
+ warn $@,"\n";
+ }
+ }
+ exit 128+$code;
+ } else {
+ die "Interrupted before job sent\n";
+ }
+ };
+
+ # for testing -M make
+ exit 0 if $opt{noexec};
+
+ $SIG{INT} = \&client_sigh;
+ $SIG{TERM} = \&client_sigh;
+ $SIG{PIPE} = \&client_sigh;
+
+ $opt{cmd} = \@cmd;
+ $opt{hard_factor} = $conf{hard_factor};
+ $opt{frompid} = $$;
+ $opt{guid} = $opt{jobx} ? $opt{jobx} : create_guid();
+ $opt{syncdirs} = [keys(%sync_before)];
+ %info = waitmsg($conf{master}, $conf{master_port}, 'run', \%opt);
+
+ if (!%info) {
+ die ($@ ? $@ : "No response to 'run'") . "\n";
+ }
+
+ if ($info{error}) {
+ print STDERR $info{error}, "\n";
+ exit -1;
+ }
+
+ if (!$info{jid}) {
+ print STDERR "Failed to submit job", "\n";
+ exit -1;
+ }
+ my $save_jid = $info{jid};
+
+ $0 = "GRUN:$save_jid";
+
+ if ($verbose) {
+ printf STDERR "Job_ID: $info{jid}\n";
+ }
+
+ if ($info{already}) {
+ if ($opt{"wait-exists"}) {
+ my ($res) = waitmsg($conf{master},$conf{master_port}, "jwait", $info{jid});
+ my $st;
+ if ($res && defined $res->{status}) {
+ print "Job $_ status $res->{status}\n";
+ $st = $res->{status} if $res->{status};
+ } else {
+ print "Job $_ status $STATUS_UNKNOWN\n";
+ $st = $STATUS_UNKNOWN;
+ }
+ exit $st;
+ } else {
+ print STDOUT "Job_ID: $info{jid} \n" if !$verbose;
+ printf STDERR "Already running job named $opt{jobx}, try grun -q wait JOB\n";
+ exit -1;
+ }
+ }
+
+ if ($opt{wait}) {
+ # wait for a job ip
+ while (!defined($info{ip})) {
+ my %tmp = waitmsg_retry($conf{retry_secs}*1000, $conf{master}, $conf{master_port}, 'jinfo', $info{jid});
+
+ if ($tmp{error}) {
+ print STDERR $tmp{error}, "\n";
+ exit $tmp{status} != 0 ? $tmp{status} : -1;
+ }
+
+ if (!defined($tmp{ip})) {
+ xlog("error","Had to retry after a retry... BUG in job $save_jid\n");
+ sleep(5);
+ } else {
+ %info=%tmp;
+ }
+ }
+
+ my $host = $info{hostname} ? $info{hostname} : $info{ip}; # support old ver which didn't have hostname
+
+ if ($verbose) {
+ printf STDERR "Host: %s\n", $host;
+ }
+
+ # look at all the work you can avoid if you don't wait
+ my ($stat, $err, $diderr);
+ # connect to executing node directly and ask for stderr, stdout, and status based on job id
+ if (defined $info{status}) {
+ $stat=$info{status};
+ $err=$info{error};
+ }
+ while (!defined $stat && !defined $err) {
+ # shadow watcher....
+ if ($info{ip}=~/^\d/) {
+ if ($opt{io} && !($opt{err} && $opt{out}) ) {
+ ($stat, $err, $diderr) = waitio($info{ip}, $info{port}, $info{jid}, \%opt);
+ } else {
+ my ($key, $dat) = waitmsg_retry($conf{retry_secs}*1000, $info{ip}, $info{port}, 'xstat', $info{jid});
+ $stat=$dat->{status};
+ $err=$dat->{error};
+ }
+ if ($stat == 65280 && !$err) {
+ print STDERR "Error: [$host] Command returned -1\n";
+ }
+ } else {
+ $stat=$STATUS_UNKNOWN;
+ $err="Error in grun protocol (ip=$info{ip}), unknown status!\n";
+ }
+ sleep 5 if (!defined $stat && !defined $err);
+ }
+
+ # send this command into the ether...if exec doesn't get it, clean up after timeout
+ if ($opt{io}||$opt{wait}) {
+ if ($info{ip}=~/^\d/) {
+ sendcmd($info{ip}, $info{port}, 'xclean', $info{jid});
+ }
+ }
+ if ($stat == 11) {
+ $err = 'Segmentation fault';
+ }
+ if ($stat > 127) {
+ # shift... but if that doesn't get you anything, set to -1 (unknown error)
+ $stat = $stat>>8;
+ $stat = -1 if !$stat;
+ }
+ syncafter();
+ if ($err) {
+ print STDERR "[$host] $err", "\n";
+ $stat = -1 if !$stat; # unknown error if undefined
+ } else {
+ if ($stat != 0 && ! $diderr) {
+ print STDERR "Error: [$host] Command returned $stat\n";
+ }
+ }
+ unlink("$ENV{HOME}/.grun/jobx/$opt{jobx}") if $opt{jobx};
+
+ exit($stat);
+ } else {
+ # aah... nicer
+ print STDOUT "Job_ID: $info{jid} \n" if !$verbose;
+ }
+}
+
+### nfs sync support
+
+sub syncdirs {
+ for (@_) {
+ syncdir($_);
+ }
+}
+
+sub syncafter {
+ %sync_already = ();
+ return unless $conf{nfs_sync};
+ syncdirs(keys(%sync_after));
+}
+
+sub add_syncdir_after {
+ my ($d) = @_;
+ return unless $conf{nfs_sync};
+ $sync_after{abs_path($d)}=1;
+}
+
+sub add_syncdir_before {
+ my ($d) = @_;
+ return unless $conf{nfs_sync};
+ $sync_before{abs_path($d)}=1;
+}
+
+sub add_syncfile_before {
+ my ($f) = @_;
+ return unless $conf{nfs_sync};
+ add_syncdir_before(-d $f ? $f : dirname($f));
+}
+
+sub add_syncfile_after {
+ my ($f) = @_;
+ return unless $conf{nfs_sync};
+ add_syncdir_after(-d $f ? $f : dirname($f));
+}
+
+sub syncfile {
+ my ($f) = @_;
+ return unless $conf{nfs_sync};
+ syncdir(-d $f ? $f : dirname($f));
+}
+
+# this refreshes the lookupcasche, which is an issue when running scripts back to back on multiple nodes using NFS
+sub syncdir {
+ my ($d) = @_;
+ my $tmp;
+ return if $sync_already{$d};
+ opendir($tmp,$d);
+ closedir($tmp);
+}
+
+sub readsocks {
+ my $did;
+ # identity & data received
+ my $cnt;
+
+ if (!$router) {
+ xlog("debug", "Readsocks called with no router: " . Carp::longmess() );
+ return;
+ }
+
+ while (my $id= zmq_recvmsg($router,ZMQ_NOBLOCK)) {
+ ++$cnt;
+ $did=1;
+ $id = zmq_msg_data($id);
+
+ if (zmq_getsockopt($router,ZMQ_RCVMORE)) {
+# print "getting sep\n";
+ my $sep = zmq_recvmsg($router);
+ }
+ if (zmq_getsockopt($router,ZMQ_RCVMORE)) {
+# print "getting data\n";
+ my $msg = zmq_recvmsg($router);
+ my $data = zmq_msg_data($msg);
+ my @resp = process_message($data, $id);
+ if (@resp) {
+ print("Got resp: @resp\n");
+ replymsg($id, @resp);
+ } else {
+# warn("No resp for $data\n");
+ }
+ }
+ while (zmq_getsockopt($router,ZMQ_RCVMORE)) {
+ print("Discarding excess multipart data!\n");
+ }
+ if ($cnt > 100000) {
+ xlog("error", "Getting flooded with messages");
+ last;
+ }
+ }
+ return $did;
+}
+
+sub jhiststat {
+ my ($jid) = @_;
+ my $jhistfile=jhistpath($jid);
+ if (-e $jhistfile) {
+ # job is toast... but maybe some streams are waiting
+ my $job=unpack_file($jhistfile);
+ delete $job->{env};
+ $job->{host}="n/a" if !$job->{host} && !defined $job->{status};
+ $job->{ip}=host2ip($job->{host}) if !$job->{ip} && ! defined $job->{status};
+ # needs ip!
+ $job->{ip}="n/a" if defined $job->{status} && ! $job->{ip};
+ $job->{hostname}=$job->{host};
+ return $job;
+ }
+ return undef;
+}
+
+sub replymsg {
+ my ($id, @resp) = @_;
+ if (debugging) {
+ my $hid=unpack("h*",$id);
+ xlog("debug", "Reply ($hid) " . packdump(\@resp) . "\n") if $conf{trace};
+ }
+ zmq_send($router, $id, length($id), ZMQ_SNDMORE);
+ zmq_send($router, "", 0, ZMQ_SNDMORE);
+ zmq_send($router, packref(\@resp));
+}
+
+sub selfcmd {
+ my $cmd = packcmd(@_);
+ process_message($cmd, undef);
+}
+
+my $debugzid;
+sub process_message {
+ my ($src_data, $zid) = @_;
+
+ my ($ip, $trace, $cmd, @args) = unpackcmd($src_data);
+
+ $trace=$conf{trace} if !$trace;
+
+ if (debugging|$trace) {
+ my $hid=defined($zid) ? unpack("h*",$zid) : "";
+ xlog($trace ? "trace" : "debug", "Received command ($hid) '$cmd' : $src_data\n") if $trace;
+ }
+
+ return ('error'=>$@) if ($@);
+
+ if ($cmd eq 'xcmd') {
+# these commands 'query or interfere' with normal running of the server
+# they are initiated by a user
+# they are limped together like this for basically no reason
+
+ if ($args[0] eq 'relo') {
+# reread config... maybe rebind stuff too
+ xlog("note", "Reload from remote command (ARGS: @ORIG_ARGV)");
+ eval{init();};
+ if ($@) {
+ return "Error: $conf{config}, $@";
+ } else {
+ return "Ok, reloaded from $conf{config}";
+ }
+ } elsif ($args[0] eq 'term') {
+ xlog("note", "Shutdown from remote command");
+ $quit = 1;
+ return 'Ok, shutdown initiated';
+ } elsif ($args[0] eq 'rest') {
+ xlog("note", "Restarting from remote command ($GRUN_PATH @ORIG_ARGV)");
+ $quit = 1;
+ zmq_unbind($router, "tcp://$conf{bind}:$conf{port}");
+ if (!fork) {
+ zmq_fork_undef();
+ exec($GRUN_PATH, @ORIG_ARGV);
+ }
+ return "Ok, restart initiated";
+ } elsif ($args[0] eq 'stat') {
+ shift @args;
+ return shownodes(@args);
+ } elsif ($args[0] eq 'hist') {
+ shift @args;
+# if (@args && (@args > 1 || $args[0] !~ /^\d+$/)) {
+ # fork... do it in parallel
+# forkandgo($zid, \&showhist, @args);
+# return();
+# } else {
+ # inline... do it now, less expensive than fork!
+ return showhist(@args);
+# }
+ } elsif ($args[0] eq 'conf') {
+ return showconf();
+ } elsif ($args[0] eq 'memo') {
+ return showmem();
+ } elsif ($args[0] eq 'jobs') {
+ shift @args;
+ return showjobs(@args);
+# } elsif ($args[0] eq 'file') {
+# shift @args;
+# xlog("note", "Sending file [@args] to remote");
+# return ($SOCK_FILE, @args);
+ } else {
+ return "Error: unknown xcmd '$args[0]'";
+ }
+ } elsif ($cmd eq 'frep') {
+# warn("router is $router, zid is $debugzid\n");
+ my ($dat) = @args;
+ if ($dat->{zid}) {
+ xlog("debug", "Sending response to $dat->{zid}");
+ replymsg(pack("h*",$dat->{zid}),$dat->{out},$dat->{more});
+ #replymsg($debugzid,$dat->{out});
+ }
+ } elsif ($cmd eq 'node') {
+# this is the 'node ping'
+ if (ref($args[0]) eq 'HASH') { # bit of validation
+ my $node = $args[0];
+
+ $node->{ip}=$ip unless $node->{ip};
+ $ip=$node->{ip};
+
+ if ($ip) {
+ my $file = "$conf{spool}/nodes/$ip.reg";
+ open(F, ">$file") || return("Error: can't create $file : $!");
+ print F packfile($node);
+ close F;
+ # also stick in memory
+
+ if (!$nodes{$ip}) {
+ xlog("note", "Registering node $ip:$node->{port} $node->{hostname}");
+ }
+
+ $node->{ping} = time();
+ $node->{ex_ping} = $nodes{$ip}->{ping};
+ $node->{zid} = $zid;
+
+ $nodes{$ip} = $node;
+ } else {
+ xlog("note", "Can't register node with no ip");
+ }
+# save execution node ping time for diagnostic (times out of sync or very slow transmission, etc)
+ } else {
+ return "Error: invalid node registration info";
+ }
+ return ();
+ } elsif ($cmd eq 'xedit') {
+ my ($jid, $ed) = @args;
+ if ($ed->{state} =~ /hold|resu/) {
+ my $job = unpack_file("$conf{spool}/jpids/$jid");
+
+ if ($job && $job->{pid}) {
+ my ($sig, $stat);
+ if ($ed->{state} eq 'hold') {
+ $sig=-19; $stat="susp";
+ } else {
+ $sig=-18; $stat="";
+ }
+ kill($sig, $job->{pid});
+ sendcmd($conf{master},$conf{master_port}, 'jedit', $job->{id}, state=>$stat);
+ }
+ }
+ } elsif ($cmd eq 'jedit') {
+ my ($jid, %ed) = @args;
+ my $fname;
+ if (!$jid || !%ed) {
+ xlog("error", "Invalid edit request (@args)");
+ return "Invalid edit request (@args)\n";
+ } elsif (! -e "$conf{spool}/jobs/$jid") {
+ if (! -e "$conf{spool}/jobs/$jid.ip") {
+ xlog("error", "Job $jid not found during jedit");
+ return "Job $jid not found during jedit";
+ } else {
+ my $job_ip = slurp("$conf{spool}/jobs/$jid.ip");
+ # send an 'xedit' to the running node
+ # needed only for certain edits....think about this!
+ $fname = "$conf{spool}/jobs/$jid:$job_ip.run";
+ if ($ed{state} =~ /hold|resu/) {
+ if ($nodes{$job_ip}) {
+ sendcmd_nowait($job_ip, $nodes{$job_ip}->{port}, 'xedit', $jid, \%ed);
+ }
+ }
+ # for now we allow edit-in-place.... for no effect in some cases, but not others
+ }
+ } else {
+ $fname = "$conf{spool}/jobs/$jid";
+ }
+
+ # assert($fname)
+ my $ref = unpack_file($fname);
+ for my $key (keys(%ed)) {
+ $ref->{$key} = $ed{$key};
+ }
+ burp("$conf{spool}/jobs/$jid.jedit", packfile($ref));
+ rename("$conf{spool}/jobs/$jid.jedit", $fname);
+ return "Job $jid edited\n";
+ } elsif ($cmd eq 'jwait') {
+ my ($job) = @args;
+
+ # user can specify guid or jid
+ my $jid = jid_from_opts($job=~/^\d/?{jid=>$job}:{guid=>$job});
+ if (!$jid) {
+ return {error=>"Job $job not found"};
+ }
+ if ( -e "$conf{spool}/jobs/$jid" || -e "$conf{spool}/jobs/$jid.ip" ) {
+ $j_wait{$jid}->{$zid}=time();
+ return ();
+ } else {
+ my $jhistfile=jhistpath($jid);
+ if (-e $jhistfile) {
+ # repeated acks are ok
+ my $job=unpack_file($jhistfile);
+ if ($job) {
+ return $job;
+ } else {
+ return {error=>"Invalid job history $jhistfile"};
+ }
+ } else {
+ return {error=>"Job not running, and has no history"};
+ }
+ }
+ } elsif ($cmd eq 'jkill') {
+# this is the 'job kill command'
+ my ($job) = @args;
+
+ # user can specify guid or jid
+ my $jid = jid_from_opts($job);
+ if (!$jid) {
+ if ($job->{guid}) {
+ return "Job $job->{guid} not found\n";
+ } else {
+ return "No job specified for jkill\n";
+ }
+ }
+ if (! -e "$conf{spool}/jobs/$jid") {
+ if (! -e "$conf{spool}/jobs/$jid.ip") {
+ xlog("error", "Job $jid not running or queued, but kill requested");
+ return "Job $jid not running or queued";
+ } else {
+# send xabort to correct node
+ my $job_ip = slurp("$conf{spool}/jobs/$jid.ip");
+ if (!$job_ip) {
+ xlog("error", "Job $jid empty ip!");
+ my $job = unpack_file("$conf{spool}/jobs/$jid");
+ $job->{error}="Unknown state";
+ archive_job($jid, $job, $STATUS_UNKNOWN, undef, undef);
+ return "Job $jid, unknown state";
+ } else {
+ if ($job->{force}) {
+ xlog("error", "Job $jid forced kill");
+ my $job = unpack_file("$conf{spool}/jobs/$jid:$job_ip.run");
+ if ($nodes{$job_ip}) {
+ sendcmd_nowait($job_ip, $nodes{$job_ip}->{port}, 'xabort', $jid, 9);
+ }
+ $job->{error}="Forced kill";
+ archive_job($jid, $job, $STATUS_UNKNOWN, undef, undef);
+ return "Job $jid forced kill\n";
+ } else {
+ if ($nodes{$job_ip}) {
+ return "Forward $jid $job_ip:" . $nodes{$job_ip}->{port};
+ } else {
+ return "Job $jid, node $job_ip not online, can't kill\n";
+ }
+ }
+ }
+ }
+ } else {
+ my $job = unpack_file("$conf{spool}/jobs/$jid");
+ $job->{error}="Killed";
+ archive_job($jid, $job, $STATUS_NEVERRUN, undef, undef);
+ return "Job $jid aborted";
+ }
+ } elsif ($cmd eq 'jstat') {
+# sent by the execution node to say what the status of a job is
+ my %opts = %{$args[0]};
+ if (my $jid = $opts{id}) {
+ my $should = slurp("$conf{spool}/jobs/$opts{id}.ip");
+
+ if (! -e "$conf{spool}/jobs/$opts{id}:$ip.run") {
+ if (!$should) {
+ # this could be a repeat, and that's ok
+ xlog("debug", "Probably already got 'jstat' for $jid");
+ } else {
+ if ($opts{pid}<0) {
+ xlog("error", "Orphaned job report $jid, from $ip for $should, status: $opts{status}");
+ $ip=$should if $opts{status} == $STATUS_ORPHAN;
+ } else {
+ if (!($ip eq $should)) {
+ xlog("error", "Got a report ($opts{status},$opts{jrun}) for job $jid from $ip, should be $should");
+ } else {
+ xlog("error", "Got a report ($opts{status},$opts{jrun}) for job $jid, but there's no $jid:$ip.run file");
+ }
+ }
+ }
+ }
+ if ($opts{jrun}) {
+# just a ping
+ xlog("trace", "Still alive $jid from $ip") if $trace;
+ touch("$conf{spool}/jobs/$jid:$ip.run")
+ if -e "$conf{spool}/jobs/$jid:$ip.run";
+ if ( ! -e "$conf{spool}/jobs/$jid.ok" ) {
+ # jexok didn't come through, but should have
+ xlog("error", "Writing $jid.ok, from jrun signal, may need to restart exec node");
+ burp("$conf{spool}/jobs/$jid.ok","jrun");
+ }
+ return(); # no dacks for jrun
+ } elsif (defined $opts{status}) {
+# job is done
+ if ( -e "$conf{spool}/jobs/$jid:$ip.run" ) {
+ my $job = unpack_file("$conf{spool}/jobs/$jid:$ip.run");
+ if ($job) {
+ if (my $n=$nodes{$ip}) {
+ xlog("debug", "Clearing cpu: $job->{cpus}, memory: $job->{memory} from $ip");
+ $n->{a_cpus} -= $job->{cpus}; # deallocate
+ $n->{a_memory} -= $job->{memory}; # deallocate
+ for (@metrics) {
+ $n->{"a_$_"} -= $job->{param}->{$_};
+ }
+ # TODO: probably would be nice, in a jstat, to include metrics so all these aren't guessing
+
+ $n->{avail} += $job->{cpus}; # return to avail, until %node is updated
+ $n->{mem} += $job->{memory}; # return mem
+ $n->{avail} = max($n->{avail},min($n->{cpus},$n->{orig_cpus}-$n->{load})); # better guess
+ } else {
+ xlog("error", "Got a report for $jid, from $ip, but there's no node like that");
+ }
+ archive_job($jid, $job, $opts{status}, $ip, \%opts);
+ } else {
+ xlog("debug", "Bad job file $conf{spool}/jobs/$jid:$ip.run");
+ }
+ } else {
+ my $jhistfile=jhistpath($jid);
+ if (-e $jhistfile) {
+ # repeated acks are ok
+ xlog("debug", "Got a duplicate report from $conf{master} for job $jid ($jhistfile)");
+ } else {
+ xlog("error", "Got a report for an unknown job $jid, from $ip, status: $opts{status}");
+ }
+ }
+ sendcmd_nowait($ip, $opts{replyport}?$opts{replyport}:$conf{port}, 'dack', jid=>$jid);
+ } else {
+ xlog("error", "Got a report for a job $jid with no status info ($src_data)");
+ }
+# return ack even if not exists
+ }
+ } elsif ($cmd eq 'dack') {
+# ackknowledge receipt of status signal, so you don't have to do it again
+ my %dack = @args;
+ xlog("debug", "Got dack for $dack{jid}") if $trace;
+ if ($dack{jid}) {
+ if (!$dack{jrun}) {
+ if (!$io_wait{$dack{jid}} || !$io_wait{$dack{jid}}->{streams}) {
+ exec_clean($dack{jid});
+ } else {
+ xlog("debug", "Still waiting on i/o: " . packdump($io_wait{$dack{jid}}) . ", will clean later") if $trace;
+ # ready to clean up
+ burp("$conf{spool}/jstat/$dack{jid}.dack",1);
+ }
+ }
+ }
+ } elsif ($cmd eq 'jexok') {
+ my ($jex) = @args;
+ my $jid = $jex->{id};
+ xlog("debug", "Writing $jid.ok") if $trace;
+ touch("$conf{spool}/jobs/$jid:$ip.run");
+ burp("$conf{spool}/jobs/$jid.ok",packfile($jex));
+ } elsif ($cmd eq 'xexec') {
+ my ($opts) = @args;
+ execute_job($opts);
+ } elsif ($cmd eq 'xclean') {
+# cleanup iowait stuff.. i got everything
+ my ($jid) = @args;
+ xlog("debug", "Client is finished with $jid\n");
+ delete $io_wait{$jid};
+ delete $start_wait{$jid};
+ if (-e "$conf{spool}/jstat/$jid.dack") {
+ exec_clean($jid);
+ }
+ } elsif ($cmd eq 'xabort') {
+# kill job
+ my ($jid, $sig, $termio) = @args;
+
+ if ($io_wait{$jid} && $io_wait{$jid}->{streams}) {
+ xlog("debug", "Alerting streams that $jid is dead\n");;
+ for(values %{$io_wait{$jid}->{streams}}) {
+ replymsg($_, "quit");
+ }
+ delete $io_wait{$jid}->{streams};
+ touch("$conf{spool}/jstat/$jid.dumped");
+ }
+
+ my $job = unpack_file("$conf{spool}/jpids/$jid");
+ xlog("debug", "Found job $jid with pid $job->{pid}\n");;
+ if ((my $pid = $job->{pid}) > 1) {
+ $sig = 2 if $sig !~ /^\d+$/; # force sig to 2 if not a number
+# kill the whole shebang
+ my $ok = kill(-$sig, $pid);
+ xlog("note", "Kill ($sig) job $jid (pgrp:$pid), return: $ok");
+
+ if ($ok) {
+ # report status as "killed"
+ selfcmd("sstat", {id=>$jid,status=>127+$sig,error=>"Job $jid aborted",dumped=>1});
+ return "Job $jid aborted";
+ } else {
+ return "Job $jid kill $sig failed : $!";
+ }
+ if ($io_wait{$jid} && $io_wait{$jid}->{zid}) {
+ # tell waiters it's dead, and streams are dumped
+ replymsg($io_wait{$jid}->{zid},"$jid:stat",{status=>127+$sig, error=>"Job $jid aborted", dumped=>1});
+ }
+ } else {
+ return "Job $jid not found for xabort";
+ }
+ } elsif ($cmd eq 'xio') {
+ my ($jid) = @args;
+ my $ready = 0;
+ my $known = 0;
+ if ($io_wait{$jid} && $io_wait{$jid}->{streams}) {
+ # definitely not dumped
+ $ready = 1;
+ for(values %{$io_wait{$jid}->{streams}}) {
+ replymsg($_, "ready");
+ }
+ delete $io_wait{$jid}->{streams};
+ $known = 1;
+ }
+
+ # set wait flag, if i/o wasn't dumped
+ my $stat=getjobstathash($jid);
+
+ # streams are ready, or job isn't done, or io wasn't dumped
+ if ($ready||!$stat||!$stat->{dumped}) {
+ my $end_time;
+ # job is done
+ if ($stat && $stat->{rtime}) {
+ $end_time = (stat("$conf{spool}/jstat/$jid.stat"))[9]+$stat->{rtime};
+ }
+ # finished a while ago
+ if ($stat && ($end_time < (time()-(5*$conf{ping_secs}))) ) {
+ xlog("error", "Dumping i/o for completed job $jid because streamer hasn't responded in $def{ping_secs} secs, end-time: $end_time");
+ touch("$conf{spool}/jstat/$jid.dumped");
+ $stat->{dumped}=1;
+ } else {
+ xlog("debug", "Creating io_wait hash entry for $jid, (E:$end_time, $stat)") unless $io_wait{$jid}->{zid} eq $zid;
+ $io_wait{$jid}->{type} = 'io';
+ $io_wait{$jid}->{zid} = $zid;
+ $io_wait{$jid}->{time} = time(); # toss this entry if it gets oldi
+ $known = 1;
+ }
+ }
+
+ if ($stat) {
+ if ($stat->{dumped} && $ready ) {
+ xlog("error", "Dumped stream $jid before ready received");
+ }
+ xlog("debug", "Returning $jid:stat for $jid");
+ return("$jid:stat", $stat);
+ }
+ if (!$known) {
+ # unknown... no iowait, no stat
+ xlog("debug", "Returning $jid:unk for $jid, no io_wait set");
+ return("$jid:unk");
+ } else {
+ # iowait ready
+ return()
+ }
+ } elsif ($cmd eq 'xstat') {
+ my ($jid) = @args;
+
+ if ($io_wait{$jid} && $io_wait{$jid}->{streams}) {
+ for(values %{$io_wait{$jid}->{streams}}) {
+ replymsg($_, "quit");
+ }
+ delete $io_wait{$jid}->{streams};
+ }
+
+ my $stat=getjobstathash($jid);
+ return("$jid:stat", $stat) if $stat;
+
+ # only set wait flag if not found
+ xlog("debug", "Creating io_wait hash 'xstat' entry for $jid");
+
+ $io_wait{$jid}->{type} = 'stat';
+ $io_wait{$jid}->{zid} = $zid;
+ $io_wait{$jid}->{time} = time(); # toss this entry if it gets old
+
+ return (); # wait for response
+ } elsif ($cmd eq 'jinfo') { # tell me what host a job is on
+ my ($jid) = @args;
+ if (!$jid) {
+ xlog("error", "Job '$jid' does not exist from $ip");
+ return(error=>"Job '$jid' does not exist from $ip");
+ }
+ if (! -e "$conf{spool}/jobs/$jid") {
+ if (! -e "$conf{spool}/jobs/$jid.ip") {
+ my $jhist=jhiststat($jid);
+ if (! $jhist) {
+ xlog("error", "Job '$jid' does not exist from $ip") if $jid;
+ return (error=>"Job '$jid' does not exist during jinfo.");
+ } else {
+ return(%$jhist);
+ }
+ } else {
+ my $job_ip = slurp("$conf{spool}/jobs/$jid.ip");
+ if (!$job_ip) {
+ xlog("error", "No ip for job $jid");
+ return ();
+ } else {
+# route to correct node
+ if (!$nodes{$job_ip}) {
+ my $jhist=jhiststat($jid);
+ if (!$jhist) {
+ xlog("error", "Job $jid is linked to $job_ip which is not responding");
+ return (warn=>"Job $jid is linked to $job_ip which is not responding");
+ } else {
+ return(%$jhist);
+ }
+ } else {
+ return (jid=>$jid, ip=>$job_ip, port=>$nodes{$job_ip}->{port}, hostname=>$nodes{$job_ip}->{hostname});
+ }
+ }
+ }
+ } else {
+ # wait for job start
+ $start_wait{$jid}->{zid} = $zid; # set router id
+ $start_wait{$jid}->{time} = time(); # refresh timestamp
+ return (); # wait for response
+ }
+ } elsif ($cmd eq 'run') {
+# user command, returns jid=>jobid [, error=>string]
+ if (!$conf{services}->{queue}) {
+ return (error=>"No queue service running on this host");
+ } else {
+ my $time = time();
+ ++$gjobid;
+ burp("$conf{spool}/nextid", $gjobid);
+
+# the job file
+ my $jid = $gjobid;
+ my $file = "$conf{spool}/jobs/$jid";
+ my $job = $args[0];
+ my $gfile = "$conf{spool}/guids/$job->{guid}";
+
+# stick the ip the job came from in the options
+ $job->{time}=time();
+ $job->{fromip}=$ip;
+ $job->{trace}=$trace;
+
+ if ( -e $gfile) {
+ return (jid=>slurp($gfile), already=>1);
+ }
+ xlog("debug", "Created $file\n") if $trace;
+ open(G, ">$gfile") || return('error'=>"Can't create $gfile : $!");
+ open(F, ">$file") || return('error'=>"Can't create $file : $!");
+ print F packfile($job);
+ close F;
+
+ print G $jid;
+ close G;
+ return (jid=>$jid);
+ }
+ } elsif ($cmd eq 'sstat') {
+ my ($stat) = @args;
+ notifystat($stat);
+ } elsif ($cmd eq 'sready') {
+ my ($key) = @args;
+ my ($jid) = $key =~ /^(\d+)/;
+ if ($io_wait{$jid} && $io_wait{$jid}->{zid}) {
+ if (!($io_wait{$jid}->{type} eq 'io')) {
+ return('quit');
+ } else {
+ return('ready');
+ }
+ }
+ if (! -e "$conf{spool}/jpids/$jid" ) {
+ xlog("debug", "Dumping stream, $jid is dead\n");
+ delete $io_wait{$jid};
+ return('quit');
+ }
+ if ( -s "$conf{spool}/jstat/$jid.stat" ) {
+ if ( $conf{loop_num} > 4 ) {
+ # any time you check mod times or abandon things, remember to ensure your loop num is more than some small number
+ if (fmodtime("$conf{spool}/jstat/$jid.stat")<time()-$conf{ping_secs}*3) {
+ xlog("error", "Abandoning $jid streams, because no one wants them\n") if $trace;
+ delete $io_wait{$jid};
+ return('quit');
+ }
+ }
+ }
+ xlog("debug", "Not ready for $jid, deferring (creating io_hash entry)\n") if $trace;
+ $io_wait{$jid}->{streams}->{$key}=$zid;
+ $io_wait{$jid}->{time}=time();
+ return ();
+ } elsif ($cmd eq 'stream') {
+ my ($key, $data) = @args;
+ my ($jid) = ($key =~ /^(\d+)/);
+ if ($io_wait{$jid} && $io_wait{$jid}->{type} eq 'io' && $io_wait{$jid}->{zid}) {
+ replymsg($io_wait{$jid}->{zid},$key, $data);
+ } else {
+ xlog("debug", "Dumping stream $key, no wait $jid\n") if $trace;
+ if ($data !~ /:end/) {
+ burp("$conf{spool}/jstat/$jid.dumped",1) if length($data)>0;
+ } else {
+ touch("$conf{spool}/jstat/$jid.dumped");
+ }
+ }
+ return ();
+ } else {
+ return ('error'=>"Unknown command $cmd ($src_data)");
+ }
+
+ return ();
+}
+
+sub jhistpath {
+ my ($id) = @_;
+ my $left = int($id/10000);
+ my $right = $id;
+ my $dir = "$conf{spool}/jhist/$left";
+ mkdir($dir) if ! -d $dir;
+ return "$dir/$right";
+}
+
+sub child_exit {
+ my ($kid, $status) = @_;
+ if ($pid_jobs{$kid}) {
+ my $jid=$pid_jobs{$kid}->{jid};
+ if ($jid) {
+ if (-s "$conf{spool}/jstat/$jid.stat") {
+ notifystat(unpack_file("$conf{spool}/jstat/$jid.stat"), 1);
+ touch("$conf{spool}/jpids/$jid") if -e "$conf{spool}/jpids/$jid";
+ }
+ }
+ delete $pid_jobs{$kid};
+ }
+}
+
+sub schedule {
+ my $did=0;
+
+ return unless %nodes;
+
+ while ((my $kid = waitpid(-1, WNOHANG))>1) {
+ $did=1;
+ if ($conf{services}->{exec}) {
+ child_exit($kid, $?);
+ }
+ }
+
+ my $tcpu;
+ for my $n (values %nodes) {
+ if (defined $n->{a_cpus}) {
+ $n->{a_cpus} = $n->{a_memory} = 0;
+ }
+ $tcpu+=$n->{cpus};
+ }
+
+ # pass 1 : deduct resources for running jobs
+ opendir(D,"$conf{spool}/jobs");
+ my @D = sort {(.5-rand()) cmp (.5-rand())} readdir(D);
+ closedir(D);
+
+ if (($conf{loop_num}%100)==5) {
+ # ocassionally check for expiration of start_waits, though it should never happen
+ for my $jid (keys(%start_wait)) {
+ if ($conf{expire_secs} && (time() > $start_wait{$jid}->{time}+$conf{expire_secs})) {
+ my $jhistfile=jhistpath($jid);
+ if ( -e $jhistfile ) {
+ $did=1;
+ my $job=unpack_file($jhistfile);
+ # possibly killed during messaging? in general this shouldn't happen anymore, so it's an error
+ xlog("error", "Job $jid, reply to jinfo after archive");
+ replymsg($start_wait{$jid}->{zid},jid=>$jid,status=>$job->{status}, error=>$job->{error}, hostname=>$job->{host}, ip=>"n/a");
+ }
+ }
+ }
+ }
+
+ my $jcnt=0;
+ my $jcpu=0;
+ my $jnee=0;
+ for my $jrun (@D) {
+ ++$jnee unless ($jrun =~ /\.ip$/);
+ next unless ($jrun =~ /\.run$/);
+ --$jnee;
+
+ my $job=read_job($jrun);
+ my $job_ip=$1 if $jrun=~/\:(\S+)\.run$/;
+
+ # this should be config, min requirements
+ $job->{cpus} = 1 if $job->{cpus} == 0;
+ $job->{memory} = ($conf{default_memory}*1000) if $job->{memory} == 0;
+ for ((@metrics, @labels)) {
+ $job->{$_} = $conf{"default-$_"} if !$job->{$_} && $conf{"default-$_"};
+ }
+
+ # job is running, make sure it's resources are somewhat locked
+ my ($jid) = $jrun =~ m/^(\d+)/;
+
+ # check to see whether job was ever started
+ if ($conf{loop_num}>5 && (fmodtime($job->{file}) < (time()-$conf{ping_secs})) && ! -e "$conf{spool}/jobs/$jid.ok") {
+ rename("$conf{spool}/jobs/$jrun","$conf{spool}/jobs/$jid");
+ delete $nodes{$job_ip};
+ xlog("error", "No execution confirm. Deregister $job_ip as bad, put job $jid back in the queue");
+ }
+ # check to see whether job has expired
+ if ($conf{loop_num}>5 && $conf{expire_secs} && (fmodtime($job->{file}) < (time()-$conf{expire_secs}))) {
+ $did=1;
+ selfcmd('jstat', {pid=>-1, id=>$jid, status => $STATUS_ORPHAN, error=>"Orphaned job (" . (time()-fmodtime($job->{file})) . "s)"});
+ } else {
+ $job_ip = slurp("$conf{spool}/jobs/$jid.ip") unless $job_ip;
+ if ($job_ip =~ /\d/ && $nodes{$job_ip} && $nodes{$job_ip}->{ip}) {
+ ++$jcnt;
+ $jcpu+=$job->{cpus};
+ $nodes{$job_ip}->{a_cpus} += $job->{cpus};
+ $nodes{$job_ip}->{a_memory} += $job->{memory};
+ for (@metrics) {
+ $nodes{$job_ip}->{"a_$_"} += $job->{param}->{$_};
+ }
+ }
+ }
+ }
+
+
+ my @nlist = values %nodes;
+ # no attempt here to prioritize jobs, just match and go
+ my $cnt=0;
+ my $full = ($jcpu/$tcpu);
+
+ for my $jid (@D) {
+ next unless ($jid =~ /^\d+$/o);
+
+ my $job = read_job($jid);
+
+ next if $job->{state} eq 'hold';
+
+ $job->{priority} = $conf{default_priority} if !$job->{priority};
+ next if ($job->{priority} < 20) && ($job->{priority}/5 < (sqrt(rand())*$full));
+
+ $full+=($job->{priority}*$job->{cpus})/($tcpu*5);
+
+ # this should be config, min requirements
+ $job->{cpus} = 1 if $job->{cpus} == 0;
+ $job->{memory} = ($conf{default_memory}*1000) if $job->{memory} == 0;
+
+ my @dereg;
+ my @n;
+ my ($max_av, $max_n);
+
+ if ($cnt >= $conf{max_sched}) {
+ last;
+ }
+ if (!@nlist) {
+ xlog("debug", "No available nodes, not scheduling");
+ last;
+ }
+
+ ++$cnt;
+ my $spread = rand() > $conf{spread_pct}/100;
+
+ for (my $i = 0; $i < @nlist; ++$i) {
+ my $n = $nlist[$i];
+
+ # jobs need enough memory, cpu availability and disk space... that's it
+ if (!$n->{ip}) {
+ xlog("error", "Node has no ip! " . packdump($n));
+ next;
+ }
+ my $cpus = $n->{cpus} - $n->{a_cpus};
+ $cpus = $n->{avail} if $n->{avail} < $cpus;
+
+ my $mem = $n->{tmem} - $n->{a_memory};
+ $mem = $n->{mem} if ($n->{tmem} == 0) || ($n->{mem} < $mem);
+
+# See below, only log reason
+# if (debugging()) {
+# xlog("debug", "Sched $jid: $n->{ip}: jcpu:$job->{cpus}, norig: $n->{orig_cpus}, ncpu:$n->{cpus}, nall:$n->{a_cpus}, nav:$n->{avail}, cpus:$cpus , jmem:$job->{memory}, nmem:$n->{mem}, avmem:$mem");
+# }
+
+ if ($cpus <= 0) {
+ # pull the node out of the list
+ xlog("debug", "Removing $n->{hostname} from node list, cpus are $cpus");
+ splice(@nlist, $i, 1);
+ --$i;
+ }
+ # did it ping recently?
+ if ($n->{ping} > (time()-$conf{ping_secs}*6)) {
+ my $ok = 1;
+ for (@metrics) {
+ if (($n->{"param-$_"} - $n->{"a_$_"}) < $job->{param}->{$_}) {
+ $ok =0;
+ }
+ }
+ for (@labels) {
+ if (!($n->{"param-$_"} eq $job->{param}->{$_})) {
+ $ok =0;
+ }
+ }
+
+ if ( ($mem >= $job->{memory}) &&
+ (($cpus+$conf{idle_load}) >= $job->{cpus}) &&
+ ($n->{disk} >= $job->{disk}) &&
+ ($ok)
+ ) {
+ next if $job->{hosts} && $job->{hosts} !~ /$n->{hostname}/;
+
+ my $match = 1;
+ if ($conf{match}) {
+ $match = evalctx($conf{match}, node=>$n, job=>$job); # eval perl expression
+ if ($@) {
+ $match = 1; # permit all on error?
+ }
+ }
+ next unless $match;
+
+ if ($spread) {
+ # use *least* busy node
+ if ($n->{load} < $conf{idle_load}) {
+ # don't bother checking further, this node is bored
+ $max_n = $n;
+ last;
+ } else {
+ if ($n->{avail} > $max_av) {
+ $max_n = $n;
+ $max_av = $n->{avail};
+ }
+ }
+ } else {
+ # use *first* node
+ $max_n = $n;
+ $max_av = $n->{avail};
+ last;
+ }
+ } else {
+ my $reason = "";
+ if (!($mem >= $job->{memory})) {
+ $reason = "memory ($mem)";
+ } elsif (!(($cpus+$conf{idle_load}) >= $job->{cpus})) {
+ $reason = "cpus ($cpus)";
+ } elsif (!(($n->{disk} >= $job->{disk}))) {
+ $reason = "disk ($n->{disk})";
+ } else {
+ for (@metrics) {
+ if (($n->{"param-$_"} - $n->{"a_$_"}) < $job->{param}->{$_}) {
+ $reason = "$_ (" . $n->{"a_$_"} . ")";
+ }
+ }
+ }
+ xlog("debug", "Sched $jid: $n->{ip}: $reason");
+ }
+ } else {
+ push @dereg, $n->{ip} if $n->{ip};
+ }
+ }
+ for my $ip (@dereg) {
+ xlog("note", "Deregister node '$ip', last ping was " . (time()-$nodes{$ip}->{ping}) . " seconds ago");
+ delete $nodes{$ip};
+ $did=1;
+ }
+ if ($max_n) {
+ $did=1;
+ xlog("debug", "Matched '$max_n->{ip}' to job $job->{file}") if $job->{trace};
+
+ # todo... change this... it's an ugly way of owning jobs
+ my $jmine = "$job->{file}:" . $max_n->{ip} . ".run";
+ touch($job->{file}) if -e $job->{file};
+ rename($job->{file}, $jmine);
+ if ( -e $jmine ) {
+ my $jptr = "$job->{file}" . ".ip";
+ burp($jptr, $max_n->{ip});
+ noderun($max_n, $jid, $job);
+
+ # TODO: handle metrics universally, allocated, total, and current
+
+ $max_n->{a_cpus} += $job->{cpus}; # allocate
+ $max_n->{a_memory} += $job->{memory};
+ for (@metrics) {
+ $max_n->{"a_$_"} += $job->{param}->{$_};
+ }
+ $max_n->{avail} -= $job->{cpus}; # assume being used
+ $max_n->{mem} -= $job->{memory}; # assume being used
+ ++$jcnt;
+ } else {
+ xlog("error", "Rename failed for $jmine\n");
+ }
+ } else {
+ if ($conf{backup_grid}) {
+ # TODO: fork exec to backup grid, and add to list of pids to track... as if you're an exec node
+ }
+ xlog("debug", "Can't find node for $jid, $jcnt jobs running did=$did\n") if $conf{trace};
+ }
+ }
+
+ # kickstart nodes, if needed
+ $did|=kicknodes();
+
+ return $did;
+}
+
+sub read_job {
+ my ($jid)=@_;
+ my $jfil = "$conf{spool}/jobs/$jid";
+ next unless -f $jfil;
+ my $ref = unpack_file($jfil);
+ if (!(ref($ref) eq 'HASH')) {
+ xlog("error", "Invalid job file format ($ref): $jfil -> $conf{spool}/trash/$jid\n");
+ rename($jfil, "$conf{spool}/trash/$jid");
+ }
+ $ref->{file}=$jfil;
+ return $ref;
+}
+
+sub noderun {
+ my ($n, $jid, $job) = @_;
+ # send 'exec'
+ $job->{port} = $conf{port}; # reply to me on this port
+ $job->{id} = $jid;
+ if ($start_wait{$jid}) {
+ # info needed for status/stdio collection from execution node
+ replymsg($start_wait{$jid}->{zid},jid=>$jid, ip=>$n->{ip}, port=>$n->{port}, hostname=>$n->{hostname});
+ delete $start_wait{$jid};
+ }
+ sendcmd($n->{ip},$n->{port},'xexec', $job);
+}
+
+# called at start, and kill -HUP
+sub init {
+ $ENV{HOSTNAME} = `hostname`;
+ chomp $ENV{HOSTNAME};
+ readconf();
+ $conf{version}=$VERSION;
+ if ($daemon) {
+ mkdir $conf{spool};
+ mkdir "$conf{spool}/jobs";
+ mkdir "$conf{spool}/jstat";
+ mkdir "$conf{spool}/jhist";
+ mkdir "$conf{spool}/nodes";
+ mkdir "$conf{spool}/pids";
+ mkdir "$conf{spool}/jpids";
+ mkdir "$conf{spool}/trash";
+ mkdir "$conf{spool}/guids";
+ # reregister on reread
+ delete $conf{node};
+ }
+
+ $conf{hostip} = host2ip($conf{hostname}) unless $conf{hostip};
+
+ if (!$conf{hostip}) {
+ die "Can't start server without knowing ip. $conf{hostname} does not resolve to ip, and no hostip defined\n";
+ }
+}
+
+sub getmem {
+ my ($cache, $free, $tot);
+ open F, "/proc/meminfo";
+ while (<F>) {
+ $tot = $1 if /MemTotal:\s*(\d+)/i;
+ $free = $1 if /MemFree:\s*(\d+)/i;
+ $cache = $1 if /Cached:\s*(\d+)/i;
+ last if $cache & $free;
+ }
+ close F;
+ return ($tot, $cache + $free);
+}
+
+sub getcpus {
+ my $cores;
+ open F, "/proc/cpuinfo";
+ my %cores;
+ while (<F>) {
+ $cores{$1}=1 if /processor\s*:\s*(\d+)/i;
+ }
+ close F;
+ $cores = scalar keys %cores if %cores;
+ return $cores;
+}
+
+sub getbench {
+ my ($force)=@_;
+ my $bench = slurp("$conf{spool}/bench");
+ if (!$bench||$force||(fmodtime("$conf{spool}/bench")<(time()-$conf{bench_secs}))) {
+ my $s = Time::HiRes::time();
+ my $i=0;
+ while (Time::HiRes::time() < $s+3) {
+ my %d = (1..10000);
+ map {$d{$_}*=3.333} keys(%d);
+ map {$d{$_}/=2.222} keys(%d);
+ ++$i;
+ }
+ my $e = Time::HiRes::time();
+ $bench=$i/($e-$s);
+ burp("$conf{spool}/bench",$bench);
+ }
+ return $bench;
+}
+
+sub slurp
+{
+ my $dat;
+ my $in = new IO::File;
+ return undef unless open($in, $_[0]);
+ local $/ = undef;
+ $dat = $in->getline;
+ $in->close;
+ close($in);
+ return $dat;
+}
+
+sub srvexec {
+ my $did=0;
+
+ # assure we can't flood on misconfig
+ $conf{ping_secs} = 5 if $conf{ping_secs} == 0;
+
+ if ($conf{services}->{exec} && (!$conf{node} || (time() > ($conf{node}->{ping}+$conf{ping_secs}-1)))) {
+ # ping master with stats
+ $conf{node}->{arch} = `arch`; chomp $conf{node}->{arch};
+ ($conf{node}->{tmem},$conf{node}->{mem}) = getmem(); # free mem
+ $conf{node}->{load} = slurp("/proc/loadavg"); # load
+ $conf{node}->{orig_cpus} = getcpus();
+ $conf{node}->{cpus} = $conf{cpus} ? $conf{cpus} : $conf{node}->{orig_cpus}; # num cores
+ $conf{node}->{bench} = $conf{bench} ? $conf{bench} : getbench(); # num cores
+ $conf{node}->{avail} = min($conf{node}->{cpus}, $conf{node}->{orig_cpus} - $conf{node}->{load});
+ $conf{node}->{ping} = time();
+ $conf{node}->{port} = $conf{port};
+ $conf{node}->{ip} = $conf{hostip};
+ $conf{node}->{hostname} = $conf{hostname};
+ $conf{node}->{kernel} = `uname -rv`; chomp $conf{node}->{kernel};
+ $conf{node}->{arch} = `uname -m`; chomp $conf{node}->{arch};
+
+ for ((@labels, at metrics)) {
+ $conf{node}->{"param-$_"} = $conf{"param-$_"};
+ }
+
+ $did=1;
+ $conf{registered} = 1;
+ if (!sendcmd($conf{master}, $conf{master_port}, 'node', $conf{node})) {
+ $conf{registered} = 0;
+ }
+ }
+
+ while ((my $kid = waitpid(-1, WNOHANG))>1) {
+ $did=1;
+ child_exit($kid, $?);
+ }
+
+ if (time() > ($conf{lastpidtime}+$conf{ping_secs})) {
+ # check for expiration of io_wait
+ if ($conf{loop_num}>5) {
+ for (keys(%io_wait)) {
+ if ($conf{expire_secs} && (time() > $io_wait{$_}->{time}+$conf{expire_secs})) {
+ delete $io_wait{$_};
+ }
+ }
+ }
+
+ $did=1;
+ opendir(D,"$conf{spool}/jpids") or die "Can't open jpids\n";
+
+ my $mjob;
+ my $oksusp;
+ while(my $jid = readdir(D)) {
+ next unless $jid =~ /^\d/;
+ next unless fmodtime("$conf{spool}/jpids/$jid") < time()-$conf{ping_secs};
+ if (-s "$conf{spool}/jstat/$jid.stat") {
+ notifystat(unpack_file("$conf{spool}/jstat/$jid.stat"), 1);
+ next;
+ }
+ # been a while... check to see if it's alive
+ my $job = unpack_file("$conf{spool}/jpids/$jid");
+ my $pid = $job->{pid};
+
+ # there could be a fake pid for a jobs that "ran" but for whatever reason, never started
+
+ next unless $pid =~ /^\d+$/;
+
+ if ($conf{node}->{avail} < -($conf{node}->{cpus}/2)) {
+ if (!$mjob && ($job->{priority} < $mjob->{priority})) {
+ $mjob = $job;
+ }
+ ++$oksusp;
+ }
+
+ if ($conf{node}->{avail} > 0) {
+ if ( -e "$conf{spool}/jstat/$job->{id}.held" ) {
+ kill(-18, $pid);
+ xlog("note", "Resuming $job->{id}, because node is available");
+ sendcmd($conf{master},$conf{master_port}, 'jedit', $mjob->{id}, state=>'');
+ unlink("$conf{spool}/jstat/$job->{id}.held");
+ }
+ }
+
+ # wait for pids
+ my $alive = kill(0, $pid);
+ if ($alive) {
+ $io_wait{$jid}->{time}=time() if ($io_wait{$jid});
+ notifystat({id=>$jid, jrun=>1});
+ touch("$conf{spool}/jpids/$jid") if -e "$conf{spool}/jpids/$jid";
+ } else {
+ notifystat({id=>$jid, status=>$STATUS_ORPHAN, error=>"Unknown $jid exit code, really bad!", dumped=>1});
+ }
+ }
+ closedir D;
+
+ if ($mjob && $oksusp > 1) {
+ kill(-19, $mjob->{pid});
+ touch("$conf{spool}/jstat/$mjob->{id}.held");
+ xlog("note", "Suspending $mjob->{id}, because node is busy");
+ sendcmd($conf{master},$conf{master_port}, 'jedit', $mjob->{id}, state=>'susp');
+ }
+
+ $conf{lastpidtime} = time();
+ }
+}
+
+sub touch {
+ my $nowisthe=time();
+ return utime($nowisthe, $nowisthe, @_);
+}
+
+sub fmodtime {
+ return (stat($_[0]))[9];
+}
+
+sub notifystat {
+ my ($stat, $from_jstat, $nowait) = @_;
+
+ confess("stat is required\n") if (!$stat);
+
+ if (!$stat->{jrun}) {
+ if ($io_wait{$stat->{id}} && $io_wait{$stat->{id}}->{zid}) {
+ # tell the client that the job is done
+ replymsg($io_wait{$stat->{id}}->{zid},"$stat->{id}:stat",$stat);
+ } else {
+ # it's not a request to notify that came from the file
+ # and yet, the file is there, with, presumably, valid status info
+ # so which do we report?
+
+ # I assume, report what's in the file....ie: it was there first
+ # this can (rarely) happen if you kill a job after it completes successfully, for example
+
+ # TODO: the safer thing is to report the "worst case" ... ie: if either is an error, report error
+ # and if both agree ... then don't log anything here... not a problem
+
+ if ( ! $from_jstat && -s "$conf{spool}/jstat/$stat->{id}.stat") {
+ # log the problem for inspection
+ xlog("error", "Got alternative status for $stat->{id}, this may not be correct!");
+ # save the new status as an error file to inspect later
+ burp("$conf{spool}/jstat/$stat->{id}.stat-err", packfile($stat));
+ }
+ }
+ }
+
+ # already dack'ed
+ if ( -e "$conf{spool}/jstat/$stat->{id}.dack" ) {
+ xlog("debug", "Not notifying status for $stat->{id}, dack already set");
+ exec_clean($stat->{id});
+ return;
+ }
+
+ xlog("debug", "Notifying status " . packdump($stat) . ".\n") if ($conf{trace} || $stat->{trace});
+
+ # tell main queue about the status change
+ $stat->{replyport}=$conf{port};
+ if ($nowait) {
+ sendcmd_nowait($conf{master},$conf{master_port}, 'jstat', $stat);
+ } else {
+ sendcmd($conf{master},$conf{master_port}, 'jstat', $stat);
+ }
+}
+
+# unpack a very simple configuration-style file
+sub funpack {
+ my ($fil, $dat) = @_;
+ return gunpack(slurp($fil), $dat);
+}
+
+sub gunpack {
+ my ($msg, $dat) = @_;
+ $dat = {} if !$dat;
+ for (split(/\n/, $msg)) {
+ my ($k, $v) = m/^\s*([^:=]+)?\s*[:=]\s*(.*?)\s*$/;
+ $k = lc($k);
+ $dat->{$k}=$v;
+ }
+ return $dat;
+}
+
+# more complex config file support
+# contains logic for turning delimited lists into array configs, etc.
+sub readconf {
+ %conf = %def;
+
+ _readconf("$conf{config}");
+
+ # defines happen at the end so defaults can get unpacked
+ for (keys %conf) {
+ next if ref $conf{$_};
+ if ($_ eq 'match' || $_ =~ /^label/) {
+ # match rules are evaluated during matching, but reval now just to test
+ my $test = $conf{$_};
+ # see http://www.perlmonks.org/?node_id=685699 for why this is OK
+ $test =~ s/`[^`]+`/1/g; # turn off backtics
+ $test =~ s/system\([^\)]\)/1/g; # turn off system calls
+ $safe->reval($test); # check syntax
+ if ($@) {
+ # report a problem with the rule
+ xlog("error", "Error testing match rule : $@");
+ }
+ $@='';
+ } elsif ( ! ($conf{$_} =~ s/^\{(.*)\}$/eval($1)/gei) ) {
+ # evaluate simple inline vars at configure-time
+ if ( $conf{$_} =~ m/\$([\w-]+)\{/) {
+ xlog("error", "Error, rule has a hash variable, which requires braces\n");
+ } else {
+ $conf{$_} =~ s/\$([\w-]+)/$conf{lc($1)}?$conf{lc($1)}:$1/gei;
+ }
+ }
+ if ($_=~ /^param-(.*)/) {
+ my $nm=$1;
+ # evaluates to the value for that param... if numeric is a "metric" otherwise is a "label"
+ if ($conf{$_} =~ /^[\d.]+$/) {
+ push @metrics, $nm;
+ } else {
+ push @labels, $nm;
+ }
+ }
+ }
+
+ # reorganize some conf vars into a hash
+ for my $k (qw(services log_types)) {
+ my $v;
+ $v = $conf{$k};
+ $conf{$k} = {};
+ for (split(/[\s,]+/,$v)) {
+ $conf{$k}->{$_} = 1;
+ }
+ }
+
+ # these low-level entries are controlled by trace bits in packets... not by user preference
+ $conf{log_types}->{trace}=1;
+
+ # stored as an array reference
+ $conf{env} = [split(/[\s,]+/,$conf{env})] unless ref($conf{env}) eq 'ARRAY';
+
+ # split up host/port
+ $conf{port} = $1 if $conf{bind} =~ s/:(\d+)$//;
+ # same for master (if different - has to be if there's a queue/exec on the same box)
+ $conf{master_port} = $1 if $conf{master} =~ s/:(\d+)$//;
+ $conf{master_port} = $conf{port} if !$conf{master_port};
+}
+
+# basic config reader, like funpack, but uses the %conf and %def hashes
+sub _readconf {
+ my ($f) = @_;
+ %conf = %def;
+ if (!open(CONF, $f)) {
+ xlog("error", "Can't open '$f'");
+ die("Can't open config '$f'\n");
+ }
+ while(<CONF>) {
+ next if /^\s*#/;
+ my ($k, $v) = m/^\s*([^:]+)?\s*:\s*(.*?)\s*$/;
+ $k = lc($k);
+ if ($k eq 'include') {
+ _readconf($v);
+ } else {
+ $conf{$k} = $v;
+ }
+ }
+ close CONF;
+}
+
+# log stuff. TODO: cache opened handles and test for operation... that way you won't have to reopen so many!
+sub xlog {
+ my $m = join("\t", @_);
+ my $class = $_[0];
+ return unless ref($conf{log_types}) && $conf{log_types}->{$class};
+ $m =~ s/\n/ /g;
+ my $line = scalar(localtime) . "\t" . $m . "\n";
+ my $log = $conf{"log_file"};
+ if ($log && ! ($log eq '-')) {
+ open LOG, ">>" . $log;
+ print LOG $line;
+ close LOG;
+ print STDERR $line if $log_to_stderr;
+ } else {
+ print $line;
+ }
+ return $line;
+}
+
+# wait for STDERR and STDOUT from a command
+sub waitio {
+ my ($host, $port, $jobid, $opt) = @_;
+ my @resp;
+ my $stat;
+ my $err;
+ my $diderr;
+
+ my $sock = _sendcmd($host, $port, 'xio', $jobid);
+
+ my $stat_time;
+ $|=1;
+ my $needio = !$opt->{err}+!$opt->{out};
+ my $start_wait=time();
+ my $unk;
+ while ((!defined $stat) || $needio) {
+ my $got = 0;
+ # wait up to 5 seconds for output
+ zmq_poll([{
+ socket=>$sock, events=>ZMQ_POLLIN, callback=> sub {
+ my ($ip, $trace, $key, $dat) = recvmsg($sock);
+ if ($ip) {
+ $got = 1;
+ my ($jid, $type, $cmd) = split /:/, $key;
+ if ($type eq 'err') {
+ $diderr = 1 if $dat;
+ print STDERR $dat if $dat;
+ --$needio if $cmd eq 'end';
+ } elsif($type eq 'out') {
+ print STDOUT $dat if $dat;
+ --$needio if $cmd eq 'end';
+ } elsif($type eq 'stat') {
+ $stat = $dat->{status};
+ $err = $dat->{error};
+ $stat_time=time() if !$stat_time;
+
+ if (time()>($stat_time+$conf{expire_secs})) {
+ # i'm taking charge of dumping it
+ xlog("error", "Job $jobid, dumping i/o, and reporting failure... took too long");
+ $dat->{dumped}=1;
+ }
+
+ if ($dat->{dumped}) {
+ # don't wait longer for i/o if the i/o was lost
+ # todo... fail here if stat is 0?
+ if (!$stat) {
+ $stat=37;
+ $err="Failing because i/o was dumped";
+ }
+ $needio = 0;
+ }
+ # what does the client do with the times?
+ } elsif($type eq 'unk') {
+ ++$unk;
+ sleep(1);
+ } else {
+ xlog("error", "Job $jobid, got message ($jid, $type, $cmd) in response to xio");
+ }
+ } else {
+ xlog("error", "Job $jobid, got message ($key) in response to xio");
+ }
+ }}],$conf{retry_secs}*2*1000);
+
+ if (!$got) {
+ # if you didn't get anything, ask again
+ $sock = _sendcmd($host, $port, 'xio', $jobid);
+ if (time()>$start_wait+$conf{retry_secs}*7) {
+ # been a while...ask head node if this job is dead?
+ my %info = waitmsg($conf{master}, $conf{master_port}, 'jinfo', $jobid);
+ if ($info{status} =~ /\d/) {
+ $stat=$info{status};
+ $err=$info{error};
+ $needio = 0;
+ }
+ if ($unk > 200) {
+ $stat=$STATUS_UNKNOWN;
+ $err="Error, job submission failed";
+ $needio = 0;
+ }
+ # restart wait time
+ $start_wait=time();
+ }
+ }
+ }
+ return ($stat, $err, $diderr);
+}
+
+sub waitmsg {
+ my $sock = _sendcmd(@_);
+ my ($ip, $trace, @msg) = recvmsg($sock);
+ return @msg;
+}
+
+# this tries over and over to get a response....
+# usually this is not needed, but if the outer disappears, the zqm-id will be lost, so
+# this is just for recovery in the event of the router shutting down
+sub waitmsg_retry {
+ my $retry = shift @_;
+
+ my $got=0;
+ my ($ip, $trace, @msg);
+ my $sock=_sendcmd(@_);
+ while (!$got) {
+ zmq_poll([
+ {
+ socket=>$sock, events=>ZMQ_POLLIN, callback=> sub {
+ $got=1;
+ ($ip, $trace, @msg) = recvmsg($sock);
+ }},
+ ],$retry);
+
+ if (!$got){
+ $sock=_sendcmd(@_);
+ }
+ }
+ return @msg;
+}
+
+sub sendcmd_nowait {
+ my ($host, $port, @cmd) = @_;
+ return 0 unless my $sock = getsock($host, $port);
+ my $xcmd = packcmd(@cmd);
+
+ # 1 millisecond wait
+# zmq_poll([
+# {
+# socket=>$sock, events=>ZMQ_POLLOUT, callback=> sub {}
+# },
+# ],1000);
+
+ if (zmq_send($sock, "", 0, ZMQ_SNDMORE|ZMQ_NOBLOCK)==0) {
+ if (zmq_send($sock, $xcmd)==-1) {
+ xlog("error","Can't send [@cmd] to $host:$port : $!", Carp::longmess());
+ return 0;
+ }
+ } else {
+ return 0;
+ }
+ return 1;
+}
+
+sub recvmsg {
+ my ($sock) = @_;
+ my @ret;
+ my ($buf, $dat);
+ if (my $msg = zmq_recvmsg($sock)) {
+ $msg = zmq_recvmsg($sock);
+ if ($msg) {
+ my $buf = zmq_msg_data($msg);
+ xlog("debug", "Client $$ got response: $buf") if $conf{trace};
+ if ($buf) {
+ return unpackcmd($buf);
+ }
+ }
+ }
+ return @ret;
+}
+
+
+sub sendcmd {
+ my $sock = _sendcmd(@_);
+ return $sock ? 1 : undef;
+}
+
+sub packcmd {
+ if (!$conf{hostip}) {
+ confess("Need a defined hostip");
+ }
+ return encode_json([$conf{hostip},$conf{trace}, at _]);
+}
+
+sub packref {
+ if (!(ref($_[0]) eq 'ARRAY')) {
+ croak "All packrefs are arrays";
+ } else {
+ return encode_json([$conf{hostip},$conf{trace},@{$_[0]}]);
+ }
+}
+
+sub unpackcmd {
+ my $ref = eval{decode_json($_[0])};
+ if (!$@ && (ref($ref) eq 'ARRAY')) {
+ return @$ref;
+ } else {
+ return undef;
+ }
+}
+
+sub packfile {
+ croak unless ref $_[0];
+ if (ref $_[0] eq 'HASH') {
+ $_[0]->{version}=$VERSION;
+ }
+ return encode_json($_[0]);
+}
+
+sub unpack_file {
+ my $ref;
+ eval {
+ $ref=decode_json(slurp($_[0]));
+ };
+ carp "$@" if $@;
+ return $ref;
+}
+
+### sends a command to a server/router, returns the socket to wait on
+sub getsock {
+ my ($host, $port) = @_;
+ my $sock;
+ if (!$ZMQS{"tcp://$host:$port"}) {
+ $sock = zmq_socket($context, ZMQ_DEALER);
+ if (!$daemon) {
+ # clients should block if messages are queued, not bang on nonexistant servers
+ zmq_setsockopt($sock, ZMQ_HWM, 50);
+ xlog("debug", "Set HWM to 50 for $host in pid $$\n");
+ }
+ if (!zmq_connect($sock,"tcp://$host:$port")) {
+ $ZMQS{"tcp://$host:$port"} = $sock;
+ } else {
+ croak "Can't connect to tcp://$host:$port: $@\n";
+ }
+ } else {
+ $sock = $ZMQS{"tcp://$host:$port"};
+ }
+
+ if (!$sock) {
+ xlog("error",$@="Can't connect to $host:$port", Carp::longmess());
+ return undef;
+ }
+ return $sock;
+}
+
+sub _sendcmd {
+ my ($host, $port, @cmd) = @_;
+ return undef unless my $sock = getsock($host, $port);
+ my $xcmd = packcmd(@cmd);
+ zmq_send($sock, "", 0, ZMQ_SNDMORE);
+ if (zmq_send($sock, $xcmd)==-1) {
+ xlog("error","Can't send [@cmd] to $host:$port : $!", Carp::longmess());
+ }
+ return $sock;
+}
+
+sub burp
+{
+ my ($f, $dat) = @_;
+ my $h = new IO::File;
+ do {
+ eval {
+ open ($h, ">$f.tmp") || die "$f: $!";
+ print $h $dat;
+ close $h;
+ rename("$f.tmp", $f) || die "$f: $!";
+ };
+ if ($@) {
+ xlog("error",$!);
+ }
+ } while ($@);
+}
+
+sub usage {
+ my $u;
+ $u .= <<'EOF' unless $make;
+Usage: grun <exec-options> command...
+ or: grun -d [<local-daemon-options>]
+ or: grun -k <jobid> [<jobid2...>]
+ or: grun -e key=val[,key2=val2...] <jobid> [<jobid2...>]
+ or: grun -q [<query-options>] <query-command>
+
+Lightweight job queueing system
+
+For more help, run grun -?, grun -d -?, grun -C -? or grun -q -?.
+EOF
+
+ $u .= <<'EOF' unless $daemon || $qinfo || $editjob || $make;
+
+Execution Options:
+ -f|ile FILE Read FILE for job options (mem, cpu, cmd, etc)
+ -m|em INT memory minimum in MB
+ -c|pu CPUS minimum number of cpus
+ -host N1,N2 specify certain hosts
+ -j|obid TEXT user-supplied job ID
+ -v|erbose print job id, execution node and stats to STDERR
+ -M|make only run job if inputs are newer than outputs
+ -r|priority INT run job with only run job if inputs are newer than outputs
+
+ -noio disable io-processing, but wait for completion
+ -nowait no io and don't wait, just start the command
+ -e|rr FILE write stderr directly to FILE, no spool *
+ -o|ut FILE write stdout directly to FILE, no spool *
+
+All options can be abbreviated to uniqueness.
+
+* You can append error & output with -oa, -ea or -out-append -err-append,
+or both with -oea, or --out-err-append.
+
+If the command contains shell metacharacters, it's wrapped in a bash script
+EOF
+
+ $u .= <<'EOF' if $make;
+Make Semantics:
+
+ %i:file Input file, left in the command line
+ #i:file Input file, removed the command line before executing
+ %o:file Output file, left in the command line
+ #o:file Output file, removed the command line before executing
+ < file Input file, left in the command line
+ > file Output file, left in the command line
+ %!>file Output, but don't set as a dependency
+
+For Example:
+ grun "gzip %i:x.foo #o>x.foo.gz"
+
+If a command fails under Make Semantics, the output file(s) will be
+set to FILE.failed.
+
+NFS sync works better with make semantics.
+
+EOF
+
+ $u .= <<'EOF' if $qinfo;
+
+Query Options:
+ -a|ll Query all nodes
+ -n|odes ($master) List of nodes to query
+
+Query Commands:
+ [-]status List nodes (q)
+ [-]jobs List jobs (q)
+ [-]history List prior jobs (q)
+ [-]conf Dump config from memory (q,e)
+EOF
+
+ $u .= <<'EOF' if $daemon;
+
+Daemon Options:
+ -h|osts (local) One or more hosts
+ -r|eload Reload config
+ -k|ill Kill running server
+ -R|ESTART Kill and restart a running server
+
+Without an option, -d just starts the daemon on the local machine.
+EOF
+ $u .= <<'EOF' if $editjob;
+
+Edit Keys:
+ hold Hold job (no value needed)
+ resume Resume job
+ memory=N Memory in MB
+ cpus=N # of Cpus needed
+EOF
+
+ $u .= <<'EOF' if !$make;
+
+Common Options:
+ -C FILE (/etc/grun.conf) Config file location
+ -t|race Turn on debugging in the log file
+ -V Print version and exit
+ -? Show this help page
+EOF
+
+ $u .= <<'EOF' if defined($config) && $config eq '';
+
+Configuration File:
+
+All config variables written as {value} are interpreted as perl code, and get evaluated at startup.
+
+The "include" varialbe actually just includes the file specified, as if it were part of the original file.
+
+All non-code configuration variables can include '$varname', which gets expanded to the value of another config var.
+
+Be careful with match code. It it's slow, it will kill the performance of your main node.
+
+Common variables:
+
+ master (localhost) Hostname[:port] of master node
+ spool (/var/spool/grun) Location for queue & io temp storage
+ log_file Location of the log
+ services Must be 'queue' and/or 'exec'
+ port Port to listen on (5184)
+ bind[:port] Address to bind to (0.0.0.0)
+ trace Turn tracing on for the whole server
+
+Queue config vars:
+
+ env (PATH) List of environment varialbes to copy to the processes. An asterisk (*) means 'ALL'
+ expire_secs (0) If set, jobs that aren't pinged in time get (failed or retried)
+ expire_action (retry) Can be 'retry', 'fail'
+ idle_load (.3) If load is less than this amount, then considered idle
+ io_keep (3600) Time to keep unretrieved stdio files (0=forever)
+ log_file Where to send "xlog" output
+ pid_file (/var/run/grun.pid)
+ ping_secs (30) Nodes ping the master this often.
+ ping_expire (2*$ping_secs) Drop a node if it doesn't ping in time
+
+Cli vars & defaults:
+
+ nfs_sync (1) Whether to force-sync the directory cache after a job is run
+ default_cpu (1) Default cpu reservation
+ default_memory (1m) Default memory for jobs
+ default_priority (20) Default priority for jobs
+
+Execution node config vars:
+
+ match Perl code that must eval to TRUE for a node match
+ full_match (1) If jobs queue is full, this is evaluated
+ full_exec If full match returns true, then this command is run
+ wrap Job command wrapper
+
+EOF
+ return $u;
+}
+
+sub showconf {
+ return pretty_encode(\%conf);
+}
+
+sub showhist {
+ my %opt;
+
+ $opt{fmt} = '%jid\t%user\t%stat\t%cwd\t%cmd\t%host\t%mtime\n';
+
+ {
+ local @ARGV = @_;
+ GetOptions(\%opt, "count|c=i", "user=s","job=i@","resubmit","fmt|F=s","long","grep|g=s","dump");
+ @_=@ARGV;
+ }
+
+ if ($_[0] =~ /[a-z]/ && !$opt{user}) {
+ $opt{user} = $_[0]
+ } else {
+ while ($_[0] =~ /^\d+$/) {
+ push @{$opt{job}}, $_[0];
+ shift;
+ }
+ }
+
+ my $r; # the result
+
+ my $count = $opt{count};
+ $count = 10 if !$count;
+ my @J;
+ if ($opt{job}) {
+ for (@{$opt{job}}) {
+ my $f = (jhistpath($_));
+ if ( -e $f ) {
+ my $t=unpack_file($f);
+ my ($jid) = $f =~ /\/(.+)$/;
+ $t->{jid}=$jid;
+ my $mtime = (stat($f))[9];
+ $t->{mtime}=$mtime;
+ push @J, $t;
+ } else {
+ xlog("error", "History for job $_ requested, but file not found\n");
+ }
+ }
+ } else {
+ my $k = 5;
+ my @mx = ((-1) x $k);
+ opendir(D,"$conf{spool}/jhist");
+ while(defined ($_=readdir(D))) {
+ next unless /^\d+$/;
+ for (my $i = 0; $i < $k; ++$i) {
+ if ($_ > $mx[$i]) {
+ # shift everything up
+ my $top=$i++;
+ for (; $i < $k; ++$i) {
+ $mx[$i]=$mx[$i-1];
+ }
+ $mx[$top]=$_;
+ last;
+ }
+ }
+ }
+ closedir(D);
+
+ for (my $i = 0; $i < $k; ++$i) {
+ if (@J < $count) {
+ opendir(D,"$conf{spool}/jhist/$mx[$i]");
+ my @T = readdir(D);
+ @T = sort {$b <=> $a} @T;
+ closedir(D);
+ # prepend dir
+ for my $jid (@T) {
+ next unless $jid=~/^\d/;
+ my $f = "$conf{spool}/jhist/$mx[$i]/$jid";
+ my $job=eval{unpack_file($f)};
+ next unless ref($job);
+
+ # support array/text formats
+ my @cmd=ref $job->{cmd} ? @{$job->{cmd}} : ($job->{cmd});
+
+ # user supplied filter
+ next if $opt{user} && ! ($job->{user} eq $opt{user});
+ next if $opt{grep} && "$job->{user}\t at cmd\t$job->{cwd}" !~ $opt{grep};
+
+ my $mtime = (stat($f))[9];
+
+ next unless $mtime;
+
+ $job->{jid}=$jid;
+ $job->{mtime}=$mtime;
+
+ push @J, $job;
+ last if @J >= $count;
+ }
+ }
+ }
+ }
+
+ for my $job (@J) {
+ my $jid=$job->{jid};
+ my $mtime = $job->{mtime};
+
+ my @cmd=ref $job->{cmd} ? @{$job->{cmd}} : ($job->{cmd});
+ next if $opt{user} && ! ($job->{user} eq $opt{user});
+ next if $opt{grep} && "$job->{user}\t at cmd\t$job->{cwd}" !~ $opt{grep};
+ --$count;
+ my %job=%{$job};
+
+ $job{status} = $job->{usage}->{status} if $job->{usage} && ! $job->{status};
+ $job{status} = ($job{status} >> 8) if 0 == ($job{status} & 0xFF);
+ # standard
+ $job{status} = 'OK' if $job{status} eq 0;
+ $job{status} = 'KILLED' if $job{status} eq 199;
+ $job{status} = 'INT' if $job{status} eq 2;
+ $job{status} = 'ORPHAN' if $job{status} eq $STATUS_ORPHAN;
+ $job{status} = 'SIGSEGV' if $job{status} eq 11;
+ $job{status} = 'SIGPIPE' if $job{status} eq 13;
+ $job{status} = 'SIGFPE' if $job{status} eq 8;
+
+ # linux specific
+ $job{status} = 'NOTFOUND' if $job{status} eq 127;
+ $job{status} = 'ASSERT' if $job{status} eq 134;
+ $job{status} = 'OUTOFMEM' if $job{status} eq 137;
+ $job{status} = 'ALTSEGV' if $job{status} eq 139;
+ $job{stat} = $job{status};
+
+ $job{wait} = $job{usage}->{start_time}-$job{time};
+
+ my $cmd = join(' ', @cmd);
+ $cmd =~ s/\n\s+/\n/g;
+ $cmd =~ s/^\s+//;
+ $cmd =~ s/\s+$//;
+ $cmd =~ s/\n/;/g;
+ if ($nodes{$job{host}} && $nodes{$job{host}}->{hostname}) {
+ $job{host}=$nodes{$job{host}}->{hostname}
+ } elsif (-e (my $n="$conf{spool}/nodes/$job{host}.reg")) {
+ my $node=unpack_file($n);
+ $job{host}=$node->{hostname};
+ }
+ $job{jid}=$jid;
+ $job{cmd}=$cmd;
+# $job{env}=join ':' . map { $_.'='.$job{env}{$_} } keys %{$job{env}};
+ $job{mtime}=fmtime($mtime);
+ if (ref($job{usage})) {
+ for (keys(%{$job{usage}})) {
+ $job{"usage_".$_}=$job{usage}{$_};
+ }
+ delete $job{usage};
+ }
+ if ($opt{long}) {
+ $r .= "----------\n";
+ for(sort(keys(%job))) {
+ $r .= "$_=" . (ref($job{$_})?packdump($job{$_}):$job{$_}) . "\n";
+ }
+ } elsif ($opt{dump}) {
+ $r .= packdump($job) . "\n";
+ } else {
+ $r .= fmtstr($opt{fmt}, \%job);
+ }
+
+ last if $count == 0;
+ }
+ return $r;
+}
+
+sub fmtime {
+ my ($t) = @_;
+ return strftime("%m/%d %H:%M",localtime($t));
+}
+
+# grun -q status
+sub shownodes {
+ my $r;
+ $r .= sprintf "%-15s %-14s %-8s Bench\n", 'Hostname','Memory', 'Cpu';
+ my @nodes = getnodes();
+ for my $node (sort {$a->{hostname} cmp $b->{hostname}} @nodes) {
+ if ($node->{ping} > time() - ($conf{ping_secs} * 2) ) {
+ chomp($node->{hostname});
+ $node->{hostname} = substr($node->{hostname},0,15);
+
+ my $cpus = $node->{cpus} - $node->{a_cpus};
+ $cpus = $node->{avail} if $node->{avail} < $cpus;
+
+ my $mem = $node->{tmem} - $node->{a_memory};
+ $mem = $node->{mem} if $node->{tmem} > 0 && $node->{mem} < $mem;
+
+ $r .= sprintf "%-15s %6dm/%-6d %4.1f/%-2d %3d\n", $node->{hostname}, $node->{mem}/1000, $node->{tmem}/1000,$node->{avail},$node->{cpus},$node->{bench};
+ }
+ }
+ return $r;
+}
+
+# grun -q jobs
+sub showjobs {
+ my %opt;
+
+ $opt{fmt} = '%s:jid\t%s:user\t%s:stat\t%s:cwd\t%s:cmd\n';
+ {
+ local @ARGV = @_;
+ GetOptions(\%opt, "dump|d", "user=s","job=i","fmt|F=s","long","debug");
+ @_=@ARGV;
+ }
+
+ if ($_[0]) {
+ my $user = shift @_;
+ if ($user =~ /^\d+$/) {
+ $opt{job}=$user;
+ } else {
+ $opt{user}=$user if !($user eq '');
+ }
+ }
+
+ xlog("debug", "Show job for user:$opt{user}, job:$opt{job}\n");
+
+ my $r;
+# $r .= sprintf "%s\t%s\t%s\t%s\t%s\n", 'JobID','User','Host','Cwd','Command';
+
+ my $now = time();
+ opendir(D,"$conf{spool}/jobs");
+ while(my $jid=readdir(D)) {
+ next if $jid =~ /\.ip$/;
+ next if $jid =~ /\.ok$/;
+ my $f = "$conf{spool}/jobs/$jid";
+ next unless -f $f;
+ my $job = unpack_file($f);
+ if (ref($job)) {
+ my %job=%{$job};
+ next if $opt{user} && ! ($opt{user} eq $job{user});
+ next if $opt{job} && ! ($jid =~ /^$opt{job}\b/);
+ my $stat = '(I)';
+ $stat = '(H)' if $job->{state} eq 'hold';
+ if ($jid =~ s/:([.\d]+?)\.run$//) {
+ my $ip = $1;
+ my $node = unpack_file("$conf{spool}/nodes/$ip.reg");
+ $stat = $node->{hostname}; chomp $stat;
+ $job->{host} = $stat;
+ # ip file is created at start
+ # run file is updated regularly to prevent orphans
+ if ( -e "$conf{spool}/jobs/$jid.ip" ) {
+ $job->{start} = (stat("$conf{spool}/jobs/$jid.ip"))[9];
+ }
+ $stat .= ' (S)' if $job->{state} eq 'susp';
+ } else {
+ $stat = '(S)' if $job->{state} eq 'susp';
+ }
+ # trim for display
+ my @cmd = @{$job->{cmd}};
+ for (@cmd) {
+ s/^\s+//g;
+ s/\n\s*/;/g;
+ }
+ $job->{wait} = ($job->{start}?$job->{start}:$now)-$job->{time};
+ $job->{jid} = $jid;
+ $job->{stat} = $stat;
+ $job->{cpus} = 1 if ! $job->{cpus};
+ $job->{memory} = $conf{default_memory} if ! $job->{memory};
+ $job->{priority} = $conf{default_priority} if ! $job->{priority};
+ $job->{cmd} = join(' ', @cmd);
+ if ($opt{long}) {
+ $r .= "----------\n";
+ for(sort(keys(%$job))) {
+ $r .= "$_=" . (ref($job->{$_})?packdump($job->{$_}):$job->{$_}) . "\n";
+ }
+ } elsif ($opt{dump}) {
+ $r .= packdump($job) . "\n";
+ } else {
+ $r .= fmtstr($opt{fmt}, $job);
+ }
+ }
+ }
+ closedir(D);
+ return $r;
+}
+
+sub fmtstr {
+ my ($fmt, $hash) = @_;
+
+# get list of fields
+ my @fds = $fmt =~ m/%(?:[#0 +,I:-]*(?:\d+)?(?:\.\d+)?\w{1,2}:)?([\w-]+|(?:{[^{}]+}))/g;
+
+ %{$safe->varglob("i")}=%{$hash};
+ my @vals;
+ for (@fds) {
+ if ($_ =~ /^\{(.+)\}/) {
+ push @vals, $safe->reval($1);
+ } else {
+ if (ref($hash->{$_}) eq 'HASH') {
+ push @vals, packdump($hash->{$_});
+ } else {
+ push @vals, $hash->{$_};
+ }
+ }
+ }
+ undef %{$safe->varglob("i")};
+
+ # replace formatted - with format-only
+ $fmt =~ s/(%[#0 +,I:-]*(?:\d+)?(?:\.\d+)?\w{1,2}):([\w-]+|({[^{}]+}))/$1/g;
+
+ my $fds=join '|', map quotemeta($_), @fds;
+ # replace pure-fields with field-only
+ $fmt =~ s/%($fds)/%s/g;
+ # expand vars
+
+ $fmt =~ s/\\n/\n/g;
+ $fmt =~ s/\\t/\t/g;
+ $fmt =~ s/\\r/\r/g;
+
+ # format the rest
+ return sprintf($fmt, @vals);
+}
+
+sub bestunique {
+ my ($c, @c) = @_;
+ my $b;
+ for (@c) {
+ if ($_ =~ /^$c/) {
+ return undef if ($b);
+ $b = $_;
+ }
+ }
+ return $b;
+}
+
+# returns an array of [host,port], given a list of host[:port] names
+sub expandnodes {
+ my @r;
+ my @n;
+ for (split(/[\s,]/, join ' ', @_)) {
+ my ($h, $p) = m/^(.*)(:\d+)?$/;
+ $p = $conf{port} if !$p;
+ if ($h =~ s/\*/\.\*/g) {
+ if (!@n) {
+ @n=getnodes();
+ }
+ for (@n) {
+ push @r, [$_->{hostname}, $p] if $_->{hostname} =~ /$h/;
+ }
+ } else {
+ push @r, [$h, $p];
+ }
+ }
+ return @r;
+}
+
+sub evalctx {
+ my ($expr, @ctx) = @_;
+ my $msafe = new Safe;
+ $msafe->permit(qw(:subprocess :filesys_read)); # allow backticks
+ for(my $i = 0; $i < @ctx; $i+=2) {
+ my ($name, $var) = ($ctx[$i], $ctx[$i+1]);
+ # references to hashes/arrays become dereferenced hashes/arrays
+ if (ref($var) eq 'HASH') {
+ %{$msafe->varglob($name)}=%{$var};
+ } elsif (ref($var) eq 'ARRAY') {
+ @{$msafe->varglob($name)}=@{$var};
+ } else {
+ ${$msafe->varglob($name)}=$var;
+ }
+ }
+ $msafe->share(qw(%conf %ENV));
+# if ($conf{trace}) {
+# xlog("debug", "Evaluating {$expr}\n");
+# }
+ my ($res, @res);
+ if (wantarray) {
+ @res = $msafe->reval($expr);
+ } else {
+ $res = $msafe->reval($expr);
+ }
+ my $save = $@;
+ if ($@) {
+ xlog("error", "Error evaluating {$expr} : $@\n");
+ return undef;
+ }
+ $@=$save;
+ if (wantarray) {
+ return @res;
+ } else {
+ return $res;
+ }
+}
+
+sub kicknodes {
+ my $did=0;
+ my @nodes = getnodes(cached=>1);
+ return if !$conf{kickstart};
+ return if (time() < ($conf{lastkicktime} + $conf{ping_secs} * 4));
+ $conf{lastkicktime} = time();
+ for my $node (@nodes) {
+ # not just started
+ if ($conf{loop_num} > 5) {
+ # sometime in the last 24 hours?
+ if ($node->{ping} > (time() - ($conf{remove_secs}))) {
+ # but not in the last couple minutes
+ if ($node->{ping} < (time() - ($conf{ping_secs} * 4)) ) {
+ # kick it
+ $did=1;
+ xlog("note", "Kicking node $node->{hostname}\n");
+ if (!fork) {
+ eval {
+ zmq_fork_undef();
+ # be sure this is gone
+ my $cmd = $conf{kickstart};
+ if ($cmd =~ /^\{(.*)\}$/) {
+ $cmd = evalctx($1, node=>$node);
+ }
+ if ($cmd && $cmd !~ /\$/) {
+ exec("$cmd");
+ }
+ };
+ exit(0);
+ }
+ }
+ }
+ }
+ }
+ return $did;
+}
+
+sub getnodes {
+ my (%opt) = @_;
+ my @r;
+ if (!$opt{cached} && %nodes) {
+ # return memcached values
+ return values %nodes;
+ }
+ # read all from disk, including old ones
+ opendir(D,"$conf{spool}/nodes");
+ while($_=readdir(D)) {
+ $_ = "$conf{spool}/nodes/$_";
+ next unless -f $_;
+ my $node=eval{unpack_file($_)};
+ if ($node) {
+ if (! defined $node->{avail}) {
+ $node->{avail} = $node->{cpus}-$node->{load};
+ }
+ push @r, $node;
+ }
+ }
+ closedir D;
+ return @r;
+}
+
+sub startdaemon {
+ my ($dkill, $restart, $reload, $node, $all, $dobench, $nofork);
+
+ GetOptions("kill"=>\$dkill, "restart|R"=>\$restart, "benchmark|B"=>\$dobench, "reload|r"=>\$reload, "host=s"=>\$node, "all"=>\$all, "nofork|F"=>\$nofork) ||
+ die usage();
+
+ $node = '*' if $all;
+
+ if ($reload || $node) {
+ my @n = $node ? expandnodes($node) : ([$conf{master},$conf{master_port}]);
+
+ my $stat = 0;
+ my $xcmd = $reload ? 'relo' : $restart ? 'rest' : $dkill ? 'term' : '';
+ if (!$xcmd) {
+ die usage();
+ }
+ for (@n) {
+ my ($res) = waitmsg($_->[0], $_->[1], "xcmd", $xcmd);
+ if (! defined $res) {
+ print "$@\n";
+ $stat = 1;
+ } else {
+ print "$res\n";
+ }
+ }
+ exit $stat;
+ }
+
+ if ($dobench) {
+ print STDERR "Bench\t" . int(getbench(1)) . "\n";
+ exit 0;
+ }
+
+ if ($restart) {
+ $daemon = 1;
+ }
+
+ killgpid() if $dkill || $restart;
+ exit 0 if $dkill;
+ sleep 1 if $restart;
+
+ # start daemon
+ if ($gpid) { # already running?
+ if (kill(0, $gpid)) {
+ die "Already running ($gpid), not starting twice\n";
+ }
+ }
+ xlog("note", "Starting daemon as " . getpwuid($<));
+
+ my $limit = `bash -c "ulimit -v -f -t -m -s"`;
+
+ if (@{[($limit =~ m/unlimited$/mg)]}!=5) {
+ my @n=qw(virt file time mem stack);
+ my @v=$limit =~ m/(\w+)$/mg;
+ my %d;
+ map {$d{$n[$_]}=$v[$_] if ! ($v[$_] eq 'unlimited')} (0..4);
+ warn "Note: ulimit is not unlimited for daemon (" . join(' ',%d) . ")\n";
+ }
+
+ if ($conf{ulimit}) {
+ if (eval {require BSD::Resource;}) {
+ local @ARGV = split / /, $conf{ulimit};
+ Getopt::Long::Configure qw(no_require_order no_ignore_case);
+ my %opt;
+ GetOptions(\%opt,"f=i","v=i","m=i","t=i");
+ if (@ARGV) {
+ die "Options @ARGV not supported by grun, use a regular ulimit wrapper";
+ }
+ no strict "subs";
+ BSD::Resource::setrlimit(BSD::Resource::RLIMIT_FSIZE(),$opt{f},$opt{f}) if ($opt{f});
+ BSD::Resource::setrlimit(BSD::Resource::RLIMIT_VMEM(),$opt{v},$opt{v}) if ($opt{v});
+ BSD::Resource::setrlimit(BSD::Resource::RLIMIT_RSS(),$opt{m},$opt{m}) if ($opt{m});
+ BSD::Resource::setrlimit(BSD::Resource::RLIMIT_CPU(),$opt{t},$opt{t}) if ($opt{t});
+ } else {
+ die "Please install BSD::Resource to use the 'ulimit' option in $def{config}\n";
+ }
+ }
+
+ zmq_safe_term();
+
+ if ($nofork || (!($gpid=fork))) {
+ zmq_fork_undef() if !$nofork;
+
+ $log_to_stderr = 1 if $nofork;
+ $gpid = $$ if $nofork;
+ die "Can't fork child process\n" if (! defined $gpid);
+
+ $context=zmq_init();
+ open (P, ">$conf{pid_file}") || die "Can't open pidfile '$conf{pid_file}' : $!\n";
+ print P $$;
+ close P; # save pid
+
+ if (!$nofork) {
+ open STDIN, '</dev/null';
+ if (! -t STDOUT || ( $conf{log_file} && ! ($conf{log_file} eq '-'))) {
+ open STDOUT, '>/dev/null';
+ open STDERR, '>&STDOUT';
+ }
+ }
+
+ POSIX::setsid();
+
+ $SIG{INT} = sub { $quit = 1; };
+ $SIG{TERM} = $SIG{INT};
+ $SIG{HUP} = \&init;
+
+ $router = zmq_socket($context, ZMQ_ROUTER);
+
+ zmq_bind($router, "tcp://$conf{bind}:$conf{port}")
+ and die "Can't make ZMQ router on port $conf{port}: $!";
+
+ $quit = 0;
+ $conf{loop_num} = 0;
+ while (!$quit) {
+ my $did=0;
+ my $start = Time::HiRes::time();
+ ++$conf{loop_num};
+ eval {$did|=readsocks()};
+ last if $quit;
+ xlog("error", "Daemon $$ readsocks exception: $@") if $@;
+
+ # theoretically these could be in separate threads, or forked off
+ if ( $conf{services}->{queue} ) {
+ eval {$did|=schedule()};
+ xlog("error", "Daemon $$ schedule exception: $@") if $@;
+ }
+
+ if ( $conf{services}->{exec} ) {
+ eval {$did|=srvexec()};
+ xlog("error", "Daemon $$ srvexec exception: $@") if $@;
+ };
+
+ if (!$did) {
+ my $elapsed = Time::HiRes::time()-$start;
+ if ($elapsed < .25) {
+ # fractional sleep
+# xlog("debug", "Did nothing, fractional sleep for " . (.25-$elapsed));
+ select(undef, undef, undef, .25-$elapsed);
+ }
+ }
+# print "HERE\n";
+ }
+ xlog("note", "Shutdown");
+ zmq_unbind($router, "tcp://$conf{bind}:$conf{port}");
+ sleep(1);
+ eval {readsocks()};
+ zmq_safe_term();
+ unlink $conf{pid_file};
+ }
+ exit 0;
+}
+
+sub END {
+ zmq_safe_term();
+}
+
+sub zmq_safe_term() {
+ # if i'm the parent pid
+ if ($router) {
+ zmq_setsockopt($router, ZMQ_LINGER, 1);
+ zmq_unbind($router,"tcp://$conf{bind}:$conf{port}");
+ zmq_close($router);
+ $router=undef;
+ }
+ # these are all the execution nodes... if any
+ for (values(%ZMQS)) {
+ zmq_setsockopt($_, ZMQ_LINGER, 1);
+ zmq_close($_);
+ }
+ %ZMQS=();
+ if ($context) {
+ zmq_term($context);
+ $context=undef;
+ }
+}
+
+sub zmq_fork_undef() {
+ # close all duped file descriptors
+ opendir(D,"/proc/$$/fd");
+ while(my $fd = readdir(D)) {
+ if ($fd > 2 && (POSIX::lseek($fd, 0, POSIX::SEEK_CUR) == -1)) {
+ if (POSIX::ESPIPE == POSIX::errno()) {
+ POSIX::close($fd) if $fd > 2;
+ }
+ }
+ }
+ closedir(D);
+ # kill access to any forked sockets
+ $router=undef;
+ %ZMQS=();
+ $context=undef;
+}
+
+
+sub killgpid {
+ die "Can't find pid $conf{pid_file} for daemon\n" if !$gpid;
+ if (!kill(2, $gpid)) {
+ die "Can't kill -INT $gpid: $!\n";
+ }
+ sleep 1;
+ $gpid = 0;
+}
+
+sub samehost {
+ my($h1, $h2) = @_;
+ $h1 =~ s/\s+$//;
+ $h2 =~ s/\s+$//;
+ $h1=host2ip($h1);
+ $h2=host2ip($h2);
+ # localhost = dig `hostname`
+ $h1 =~ s/^(0\.0\.0\.0|127\.0\.0\.1)$/$conf{hostip}/;
+ $h2 =~ s/^(0\.0\.0\.0|127\.0\.0\.1)$/$conf{hostip}/;
+ return $h1 eq $h2;
+}
+
+sub host2ip {
+ my (@octets, $raw_addr, $ip);
+ return $_[0] if $_[0] =~ /^(\d+\.){3}\d+$/;
+ $raw_addr = (gethostbyname($_[0]))[4];
+ @octets = unpack("C4", $raw_addr);
+ $ip = join(".", @octets);
+ return($ip);
+}
+
+sub packdump {
+ return encode_json($_[0]);
+}
+
+sub kill_job {
+ my %op = @_;
+ my ($err) = waitmsg($conf{master}, $conf{master_port}, 'jkill', \%op);
+ if ($err =~ /Forward (\d+):?\s*([\d.]+):?(\d*)/i) {
+ my ($jid, $ip, $port) = ($1, $2, $3);
+ $port = $conf{port} if !$port;
+ ($err) = waitmsg($ip, $port, 'xabort', $jid, $op{sig}, $op{termio});
+ }
+ return $err;
+}
+
+sub proper {
+ my $x = shift;
+ $x=~ s/\b(\S)/uc($1)/eg;
+ return $x;
+}
+
+sub execute_job {
+ my ($opts) = @_;
+ my @cmd = @{$opts->{cmd}};
+
+ my ($uid, $gid, $err, $ret);
+ if ($opts->{user}) {
+ (undef, undef, $uid, $gid) = getpwnam($opts->{user});
+ }
+ if (defined($uid) && !$conf{run_asroot} && !$uid) {
+ $err="Won't run as root";
+ }
+ if (!defined($uid)) {
+ $err="User $opts->{user} is unknown on this machine, not executing";
+ }
+ if ($opts->{group}) {
+ $gid=$opts->{group};
+ }
+# expecting someone to come pick up output?
+ xlog("Creating io_wait for $opts->{id}") if $opts->{wait} || $opts->{io};
+ $io_wait{$opts->{id}}->{type} = 'stat' if $opts->{wait}; # status wait
+ $io_wait{$opts->{id}}->{type} = 'io' if $opts->{io}; # io wait
+ $io_wait{$opts->{id}}->{time} = time() if $opts->{wait} || $opts->{io}; # io wait
+
+ my $pid;
+
+ if ($conf{wrap}) {
+ @cmd = ($conf{wrap}, @cmd);
+ }
+
+ my $pfile = "$conf{spool}/jpids/$opts->{id}";
+
+ if (-e $pfile) {
+ xlog($err="Job file $pfile already exists, not executing.");
+ } else {
+ if (!open(PF, ">$pfile")) {
+ xlog($err="Can't create $pfile: $!");
+ }
+ }
+
+ my $bfile = "$conf{spool}/jstat/$opts->{id}";
+ my $tfile = "$bfile.stat";
+ my $ifile = "$bfile.job";
+
+ $opts->{uid}=$uid;
+ $opts->{gid}=$gid;
+
+ # job info, saved
+ burp($ifile, packfile($opts));
+ chown($uid,0,$ifile);
+
+ if (!open(XOUT, ">", "$tfile")) {
+ $err=$!;
+ $ret=$?;
+ }
+ chown($uid,0,$tfile);
+ # leave the file open for fork
+
+ if (!$err && !($pid=fork)) {
+ if (! defined $pid) {
+ $err = "Can't fork";
+ } else {
+ $0="GRUN:$opts->{id}";
+ zmq_fork_undef();
+
+ # restore signal to default ... regular kill
+ $SIG{INT} = undef;
+ $SIG{TERM} = undef;
+ $ENV{USER} = $opts->{user};
+
+ # kill me with a negative number, all kids die too
+ # kill my parent.... i stay alive, and my IO is still ready to go
+ my $pgid=POSIX::setsid();
+ xlog("debug", "PGID set to $pgid\n");
+
+ # copy in the umask & the environment
+ umask $opts->{umask};
+ for (keys(%{$opts->{env}})) {
+ $ENV{$_}=$opts->{env}->{$_};
+ }
+
+ for (keys(%{$opts})) {
+ next if ref($opts->{$_});
+ $ENV{"_GRUN_OPT_$_"} = $opts->{$_};
+ }
+ $ENV{"_GRUN"} = $opts->{id};
+ $ENV{"SGE_TASK_ID"} = $opts->{id} if (!$ENV{SGE_TASK_ID});
+
+ my ($err, $ret);
+
+ my $shfile = "$bfile.sh";
+ if (!open(SHFILE, ">", $shfile)) {
+ $err=$!;
+ $ret=$?;
+ }
+ chown($uid,0,$shfile);
+
+ my $hard_factor = defined($opts->{hard_factor}) ? $opts->{hard_factor} : $conf{hard_factor};
+ if ($hard_factor && $opts->{memory}) {eval{
+ # add 4mb for o/s stuff to load
+ print SHFILE "ulimit -v " . (4000+int(($opts->{memory} * $conf{hard_factor}))) . "\n"
+ if $opts->{memory};
+ }}
+
+ if ($cmd[0] !~ / /) {
+ for (@cmd) {
+ if ($_ =~ / /) {
+ $_ =~ s/"/\\"/g;
+ $_ = '"' . $_ . '"';
+ }
+ }
+ }
+
+ print SHFILE join(" ", @cmd), "\n";
+ close SHFILE;
+
+ xlog("debug", "Wrote $shfile\n") if $opts->{trace};
+
+ if (!$err) {
+ xlog("debug", "Setting uid to $uid, gid to $gid.\n") if $opts->{trace};
+ eval {
+ if ($gid) {
+ $) = $gid;
+ $( = $gid;
+ }
+ $> = $uid;
+ $< = $uid;
+ if ($opts->{cwd}) {
+ if (!chdir($opts->{cwd})) {
+ $err = "Can't cd to $opts->{cwd} : $!";
+ $ret = 103;
+ }
+ }
+ };
+ }
+
+ if (!$err && $@) {
+ $ret = 102;
+ $err = "Error setting uid to $uid: $@\n";
+ }
+
+ xlog("debug", "About to launch (@cmd)\n") if $opts->{trace};
+
+ if (!$err) {
+ my $confarg = "-C $conf{config}"; # same config!
+ # this frees all ram... yay, finally
+ exec("$GRUN_PATH $confarg -Y $bfile");
+ $err = "Can't exec: $!";
+ $pid=-1;
+ } else {
+ eval {
+ # save output
+
+ # immediate reply if possible
+ xlog("debug", "Error before launch: $ret \"$err\" (@cmd)\n") if $opts->{trace};
+ my $out = {
+ id=>$opts->{id},
+ status=>$ret,
+ error=>$err,
+ dumped=>1,
+ };
+ print XOUT packfile($out);
+ close XOUT;
+ $context=zmq_init();
+ send_status_for_job($out);
+ printf STDERR "$err\n";
+ };
+ if ($@) {
+ xlog("error", "Error reporting error : $@\n");
+ }
+ exit $ret;
+ }
+ }
+ }
+
+# fake pid
+ if ($err) {
+ $ret = $STATUS_EXECERR if !$ret;
+ $pid = 'e' . $opts->{id};
+ xlog("note", "Error '$err' with job $opts->{id}, pid '$pid'");
+ my $out = {
+ id=>$opts->{id},
+ status=>$ret,
+ error=>$err,
+ dumped=>1,
+ };
+ print XOUT packfile($out);
+ close XOUT;
+
+ xlog("debug", "FILE: $tfile");
+
+ notifystat($out, 1, 1);
+ # special case... exec failed
+ exit 1 if $pid == -1;
+ } else {
+ xlog("note", "Started job $opts->{id}, pid $pid, '@cmd'") if !$err;
+ close XOUT;
+ # record pid for wait
+ $pid_jobs{$pid}->{jid}=$opts->{id};
+ $pid_jobs{$pid}->{time}=time();
+ }
+
+ $opts->{pid} = $pid;
+ $opts->{err} = $err;
+ print PF packfile($opts);
+ close PF;
+
+ # ok we've officially either a) started this job or b) notified of failure at this point....
+ sendcmd_nowait($conf{master}, $conf{port}, 'jexok', { map { $_ => $opts->{$_} } qw/id pid uid gid err/ });
+}
+
+sub send_status_for_job {
+ my ($stat, %op) = @_;
+# this could be in a fork... be safe
+ my $sock = zmq_socket($context, ZMQ_DEALER);
+ xlog("note", "Sending status for $stat->{id} as $stat->{status}\n") if $conf{trace};
+ zmq_connect($sock,"tcp://$conf{bind}:$conf{port}");
+ zmq_send($sock, "", 0, ZMQ_SNDMORE);
+ zmq_send($sock, packcmd("sstat", $stat));
+ zmq_close($sock);
+ zmq_term($context);
+}
+
+sub jid_from_opts {
+ my ($job) =@_;
+ return $job->{jid} ? $job->{jid} : jid_from_guid($job->{guid});
+}
+
+sub jid_from_guid {
+ my ($guid) = @_;
+ if (-s "$conf{spool}/guids/$guid") {
+ return slurp("$conf{spool}/guids/$guid");
+ }
+}
+
+sub create_guid {
+ substr(Data::UUID->new()->create_hex(),2)
+}
+
+sub exec_clean {
+ my ($jid) = @_;
+ if (!-e "$conf{spool}/jpids/$jid") {
+ xlog("debug", "Clean $jid which is already gone");
+ } else {
+ xlog("debug", "Cleaning $jid") if $conf{trace};
+ # stop tracking this pid, head node got all the info
+ my $job = unpack_file("$conf{spool}/jpids/$jid");
+ # nobody asked for the job info, so don't keep it around after exec node knows about it
+ unlink("$conf{spool}/jpids/$jid");
+ unlink("$conf{spool}/jstat/$jid.stat");
+ unlink("$conf{spool}/jstat/$jid.held");
+ unlink("$conf{spool}/jstat/$jid.stat-err");
+ unlink("$conf{spool}/jstat/$jid.sh");
+ unlink("$conf{spool}/jstat/$jid.job");
+ unlink("$conf{spool}/jstat/$jid.dack");
+ unlink("$conf{spool}/jstat/$jid.dumped");
+ }
+}
+
+sub stream_sigh {
+ xlog("debug", "stream $$ SIG $_[0]");
+
+ # set the quit flag
+ $stream_quit = 1;
+ close STDIN;
+ close STDOUT;
+ close STDERR;
+ # don't exit... you still need to send the "quit" signal
+# exit(-1);
+}
+
+sub do_stream {
+ # stream results back to execution top
+
+ $SIG{INT} = \&stream_sigh;
+ $SIG{TERM} = \&stream_sigh;
+ $SIG{PIPE} = \&stream_sigh;
+
+ # shift off the -X
+ shift @ARGV;
+
+ my $termio;
+
+ # line by line?
+ if ($ARGV[0] eq '-I') {
+ $termio=1;
+ shift @ARGV;
+ }
+
+ my $connect = shift @ARGV;
+ my $key = shift @ARGV;
+ my $data = shift @ARGV;
+ my $sock = zmq_socket($context, ZMQ_DEALER);
+
+ zmq_setsockopt($sock, ZMQ_LINGER, 1000);
+ zmq_setsockopt($sock, ZMQ_HWM, 100);
+# zmq_setsockopt($sock, ZMQ_RCVTIMEO, 1000);
+
+ xlog("debug", "stream $$ $connect $key");
+
+ zmq_connect($sock,"tcp://$connect");
+
+ xlog("debug", "stream sready $$ $connect $key");
+
+ zmq_send($sock, "", 0, ZMQ_SNDMORE);
+ zmq_send($sock, packcmd('sready', $key));
+
+ my $ready=0;
+ my $time=time();
+ my $wait = 5;
+ while (!$stream_quit && !$ready) {
+ my $got = 0;
+ zmq_poll([{
+ socket=>$sock, events=>ZMQ_POLLIN, callback=> sub {
+ my $ignore = zmq_recvmsg($sock);
+ my $msg = zmq_recvmsg($sock);
+ my $data = zmq_msg_data($msg);
+ $ready = $data=~/ready|quit/;
+ $stream_quit = $data=~/quit/;
+ $got = 1;
+ }}],1000);
+ if (!$stream_quit && !$got && (time() > ($time+$wait))) {
+ # ask again ... are you ready for the stream
+ zmq_send($sock, "", 0, ZMQ_SNDMORE);
+ zmq_send($sock, packcmd('sready', $key));
+ $time=time();
+ $wait += 5;
+ if ($wait > 3600) {
+ xlog("debug", "stream abandon $$ $key\n");
+ exit(0);
+ }
+ }
+ }
+
+ xlog("debug", "stream response $$ $key $data\n");
+
+ my $sent = 1;
+ while(!$stream_quit) {
+ if ($sent) {
+ if ($termio) {
+ # line by line
+ $_=<>;
+ } else {
+ # block by block
+ read STDIN, $_, 4096;
+ }
+ if ($_ eq "") {
+ $stream_quit = 1 ;
+ last;
+ }
+ $sent=0;
+ }
+ zmq_poll([{
+ socket=>$sock, events=>ZMQ_POLLOUT, callback=> sub {
+ my $ret;
+ if ($ret=zmq_send($sock, "", 0, ZMQ_SNDMORE)) {
+ xlog("debug", "stream error $ret $$ $key : $?/$!\n");
+ } else {
+ if (($ret=zmq_send($sock, packcmd('stream', $key, $_))) && $? ) {
+ xlog("debug", "stream error $ret $$ $key : $?/$!\n");
+ } else {
+ # ok, that chunk of data went out
+ $sent=1;
+ }
+ }
+ }}]);
+ }
+
+ # let daddy know we're done
+
+ zmq_send($sock, "", 0, ZMQ_SNDMORE);
+ zmq_send($sock, packcmd("stream", "$key:end"));
+ zmq_close($sock);
+ zmq_term($context);
+
+ xlog("debug", "stream exit $$ $key\n");
+
+ exit(0);
+}
+
+sub debugging {
+ return $conf{log_types}->{"debug"}
+}
+
+sub getjobstathash {
+ my ($jid)=@_;
+ if ( -s "$conf{spool}/jstat/$jid.stat" ) {
+ my $stat = unpack_file("$conf{spool}/jstat/$jid.stat");
+ if ( $stat && -e "$conf{spool}/jstat/$jid.dumped" ) {
+ $stat->{dumped}=slurp("$conf{spool}/jstat/$jid.dumped");
+ }
+ return $stat;
+ }
+ if ( -s "$conf{spool}/jstat/$jid.stat-err" ) {
+ my $stat = unpack_file("$conf{spool}/jstat/$jid.stat-err");
+ if ( $stat && -e "$conf{spool}/jstat/$jid.dumped" ) {
+ $stat->{dumped}=slurp("$conf{spool}/jstat/$jid.dumped");
+ }
+ return $stat;
+ }
+ return undef;
+}
+
+sub forkandgo {
+ my ($zid, $sub, @args) = @_;
+
+print("FORKING\n");
+
+ if (!(my $pid=fork)) {
+ my $out="";
+ my $err="";
+ if (! defined $pid) {
+ $err = "Error: Can't fork";
+ sendcmd($conf{bind}, $conf{port}, 'frep', {zid=>unpack("h*",$zid), out=>$err});
+ } else {
+ eval {
+ zmq_fork_undef();
+ $daemon=0;
+ $context=zmq_init();
+ $0="GRUN:fork-handler";
+ # no accidental messages go out on this context
+ $out=eval{&$sub(@args)};
+ $err=$@;
+ $out = $err if $err && !$out;
+ while(length($out)>100000) {
+ sendcmd($conf{bind}, $conf{port}, 'frep', {zid=>unpack("h*",$zid), out=>substr($out,0,100000,""), more=>1});
+ }
+ sendcmd($conf{bind}, $conf{port}, 'frep', {zid=>unpack("h*",$zid), out=>$out});
+ };
+ exit(0);
+ }
+ }
+}
+
+sub archive_job {
+ my ($jid, $job, $status, $ip, $usage) = @_;
+
+ # double-check
+ carp "Need a job ref" unless ref($job);
+ carp "Need a usage ref" unless !defined($usage) || ref($usage);
+
+ $status+=0;
+ if ($usage) {
+ delete $usage->{ip};
+ delete $usage->{id};
+ $usage->{status} = $status if defined $status;
+ $job->{usage} = $usage;
+ } else {
+ $job->{usage}->{status} = $status if defined($status);
+ }
+
+ $job->{status} = $status;
+ if ($ip) {
+ $job->{host} = $nodes{$ip} && $nodes{$ip}->{hostname} ? $nodes{$ip}->{hostname} : $ip;
+ $job->{hostip} = $ip;
+ }
+
+ for (keys(%{$j_wait{$jid}})) {
+ replymsg($_, $job);
+ }
+ delete $j_wait{$jid};
+
+ my $jhistfile=jhistpath($jid);
+ xlog("debug", "Writing history for $jid to $jhistfile");
+ open(ST, ">$jhistfile");
+ print ST packfile($job);
+ close ST;
+
+ xlog("debug", "Unlinking $conf{spool}/jobs/$jid:$ip.run, $conf{spool}/jobs/$jid.ip, $conf{spool}/jobs/$jid");
+
+ if (!$ip) {
+ $ip = slurp("$conf{spool}/jobs/$jid.ip");
+ }
+ unlink("$conf{spool}/jobs/$jid:$ip.run");
+ unlink("$conf{spool}/jobs/$jid.ip");
+ unlink("$conf{spool}/jobs/$jid.ok");
+ unlink("$conf{spool}/jobs/$jid");
+ if ($job->{guid}) {
+# can't query by guid anymore, except maybe in a history database
+ unlink("$conf{spool}/guids/$job->{guid}");
+ }
+
+ if ($start_wait{$jid}) {
+ # info needed for status/stdio collection from execution node
+ replymsg($start_wait{$jid}->{zid},jid=>$jid, status=>$status, error=>$job->{error}, hostname=>$job->{host}, ip=>$job->{host}?$job->{host}:"n/a");
+ delete $start_wait{$jid};
+ }
+}
+
+my $coder;
+sub pretty_encode {
+ $coder = JSON::XS->new->ascii->pretty->canonical->allow_blessed unless defined $coder;
+ if (@_ > 1 || !ref(@_[0])) {
+ $coder->encode([@_]);
+ } else {
+ $coder->encode(@_[0]);
+ }
+}
+
+sub showmem {
+ require PadWalker;
+ my $o = PadWalker::peek_our(0);
+ my $h = PadWalker::peek_my(1);
+ for (keys(%$o)) {
+ $h->{$_}=$o->{$_};
+ }
+ for (keys(%$h)) {
+ $h->{$_}=${$h->{$_}} if ref($h->{$_}) eq 'SCALAR';
+ $h->{$_}=${$h->{$_}} if ref($h->{$_}) eq 'REF';
+ }
+ return pretty_encode($h);
+}
+
+sub do_execute {
+ # shift off the -Y
+ shift @ARGV;
+ my ($bfile) = @ARGV;
+
+ my $opts = unpack_file("$bfile.job");
+ my $uid = $opts->{uid};
+
+ my $code = -1;
+ my $start = Time::HiRes::time();
+
+ my $shfile = "$bfile.sh";
+
+ my @cmd = ("bash", $shfile);
+
+ open(OLDERR, ">&STDERR");
+ open(OLDOUT, ">&STDOUT");
+
+ close(STDERR);
+ close(STDOUT);
+
+ my ($out_pid, $err_pid);
+
+ $SIG{INT} = $SIG{TERM} = sub {
+ kill 2, $out_pid;
+ kill 2, $err_pid;
+ };
+
+ my ($err, $ret);
+
+ my $ok=1;
+ eval {
+ if ($opts->{out}) {
+ if ($opts->{out_a}) {
+ $ok&&=open(STDOUT, ">>$opts->{out}");
+ } else {
+ $ok&&=open(STDOUT, ">$opts->{out}");
+ }
+ if ($opts->{out} eq $opts->{err}) {
+ $ok&&=open(STDERR, ">&STDOUT");
+ }
+ }
+ if ($opts->{err} && !(($opts->{out} eq $opts->{err}))) {
+ if ($opts->{err_a}) {
+ $ok&&=open(STDERR, ">>$opts->{err}");
+ } else {
+ $ok&&=open(STDERR, ">$opts->{err}");
+ }
+ }
+ if ($opts->{io}) {
+ my $confarg = "-C $conf{config}"; # same config!
+ my $streamarg = "-X"; # grun streamer
+ $streamarg .= " -I" if $opts->{int}; # interactive mode
+ if (!$opts->{out}) {
+ my $cmd="/usr/bin/perl $GRUN_PATH $confarg $streamarg $conf{bind}:$conf{port} $opts->{id}:out";
+ $out_pid=open(STDOUT, "|$cmd");
+ $ok&&=$out_pid;
+ }
+ if (!$opts->{err}) {
+ my $cmd="/usr/bin/perl $GRUN_PATH $confarg $streamarg $conf{bind}:$conf{port} $opts->{id}:err";
+ $err_pid=open(STDERR, "|$cmd");
+ $ok&&=$err_pid;
+ }
+ } else {
+# save disk and time, i never want i/o
+ if (!$opts->{err}) {
+ $ok&&=open(STDERR, ">/dev/null");
+ }
+ if (!$opts->{out}) {
+ $ok&&=open(STDOUT, ">/dev/null");
+ }
+ }
+ };
+
+ if ($@ || !$ok) {
+ close(STDERR);
+ close(STDOUT);
+ open(STDERR, ">&OLDERR");
+ open(STDOUT, ">&OLDOUT");
+ if ($@) {
+ $err=$@;
+ $ret=109;
+ } else {
+ $err="Error opening i/o files: $!";
+ $ret=109;
+ }
+ xlog("error", "$ret: $err\n");
+ }
+
+ my $elapsed=0;
+
+ # deal with nfs sync, if needed
+ syncdirs(@{$opts->{syncdirs}}) if $opts->{syncdirs};
+
+ if (!$err) {
+ eval {
+ $code = system(@cmd);
+ $0="GRUN:$opts->{id}:$code";
+ };
+ $elapsed = Time::HiRes::time() - $start;
+ } else {
+ $code = $ret ? $ret : -1;
+ }
+
+ open(SAVERR, ">&STDERR");
+ open(SAVOUT, ">&STDOUT");
+
+ open(STDERR, ">&OLDERR");
+ open(STDOUT, ">&OLDOUT");
+
+ xlog("debug", "Job $opts->{id} original exit code is $code");
+
+ $code = ($code == -1) ? $code : ($code & 127) ? $code & 127 : ($code >> 8);
+
+ xlog("debug", "Done running job $opts->{id}, code $code as user $uid") if $opts->{trace};
+
+ my ($utime, $stime,
+ $maxrss, $ixrss, $idrss, $isrss, $minflt, $majflt, $nswap,
+ $inblock, $oublock, $msgsnd, $msgrcv,
+ $nsignals, $nvcsw, $nivcsw);
+
+ eval {
+ ($utime, $stime,
+ $maxrss, $ixrss, $idrss, $isrss, $minflt, $majflt, $nswap,
+ $inblock, $oublock, $msgsnd, $msgrcv,
+ $nsignals, $nvcsw, $nivcsw) = getrusage(RUSAGE_CHILDREN);
+ };
+
+ xlog("debug", "Really done with job $opts->{id} (@cmd = $@)\n") if $opts->{trace};
+
+ # $msgsnd, $msgrcv, $nsignals not used in Linux....
+
+ my $out = {
+ id=>$opts->{id},
+ status=>$code,
+ start_time=>$start,
+ utime=>$utime,
+ stime=>$stime,
+ rtime=>$elapsed,
+ pid=>$$,
+ maxrss=>$maxrss,
+ minflt=>$minflt,
+ majflt=>$majflt,
+ nswap=>$nswap,
+ inblock=>$inblock,
+ oublock=>$oublock,
+ nvcsw=>$nvcsw,
+ nivcsw=>$nivcsw
+ };
+
+ $out->{error} = $err if $code && $err;
+
+ xlog("debug", "Writing output job $opts->{id}\n") if $opts->{trace};
+ print XOUT packfile($out);
+ close XOUT;
+ xlog("debug", "Job $opts->{id} exit code $code\n") if $opts->{trace};
+ send_status_for_job($out);
+ exit $code;
+# special exit code 101 means couldn't run the command
+ close STDOUT;
+ close STDERR;
+ exit(0);
+}
+
diff --git a/gtf2bed b/clipper/gtf2bed
similarity index 87%
rename from gtf2bed
rename to clipper/gtf2bed
index c624e81..2a06e1f 100755
--- a/gtf2bed
+++ b/clipper/gtf2bed
@@ -23,10 +23,16 @@
# ALSO, IT WOULD BE NICE IF YOU LET ME KNOW YOU USED IT.
use Data::Dumper;
+use Getopt::Long;
+
+my $extended;
+GetOptions("x"=>\$extended);
$in = shift @ARGV;
-open IN, ($in =~ /\.gz$/ ? "gunzip -c $in" : $in =~ /\.zip$/ ? "unzip -p $in" : "$in");
+my $in_cmd =($in =~ /\.gz$/ ? "gunzip -c $in|" : $in =~ /\.zip$/ ? "unzip -p $in|" : "$in") || die "Can't open $in: $!\n";
+open IN, $in_cmd;
+
while (<IN>) {
$gff = 2 if /^##gff-version 2/;
$gff = 3 if /^##gff-version 3/;
@@ -56,11 +62,6 @@ while (<IN>) {
} elsif ($f[2] eq 'start_codon') {
#optional, output codon start/stop as "thick" region in bed
$sc{$id}->[0] = $f[3];
- } elsif ($f[2] eq 'CDS') {
- #optional, output codon start/stop as "thick" region in bed
- push @{$cds{$id}}, \@f;
- # save lowest start
- $cdx{$id} = \@f if !$cdx{$id};
} elsif ($f[2] eq 'stop_codon') {
$sc{$id}->[1] = $f[4];
} elsif ($f[2] eq 'miRNA' ) {
@@ -108,8 +109,15 @@ for $id (
my $exst = join ",", map {$_->[3]-$beg-1} @ex; # exon start
my $exsz = join ",", map {$_->[4]-$_->[3]+1} @ex; # exon size
+ my $gene_id;
+ my $extend = "";
+ if ($extended) {
+ ($gene_id) = $attr =~ /gene_name "([^"]+)"/;
+ ($gene_id) = $attr =~ /gene_id "([^"]+)"/ unless $gene_id;
+ $extend="\t$gene_id";
+ }
# added an extra comma to make it look exactly like ucsc's beds
- print "$chr\t$beg\t$end\t$id\t0\t$dir\t$cds\t$cde\t0\t$exn\t$exsz,\t$exst,\n";
+ print "$chr\t$beg\t$end\t$id\t0\t$dir\t$cds\t$cde\t0\t$exn\t$exsz,\t$exst,$extend\n";
}
diff --git a/clipper/install-bamtools.sh b/clipper/install-bamtools.sh
new file mode 100644
index 0000000..70bf11a
--- /dev/null
+++ b/clipper/install-bamtools.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+git clone git at github.com:pezmaster31/bamtools.git
+mkdir build
+cd build
+cmake ..
+make -j 6
+sudo make install
+sudo mv /usr/local/include/bamtools/* /usr/local/include/
+sudo mv /usr/local/lib/bamtools/libbamtools.* /usr/local/lib
+sudo ldconfig
diff --git a/clipper/master-barcodes.txt b/clipper/master-barcodes.txt
new file mode 100755
index 0000000..9b70aef
--- /dev/null
+++ b/clipper/master-barcodes.txt
@@ -0,0 +1,862 @@
+id seq style
+D701 ATTACTCG Nextera1
+D702 TCCGGAGA Nextera1
+D703 CGCTCATT Nextera1
+D704 GAGATTCC Nextera1
+D705 ATTCAGAA Nextera1
+D706 GAATTCGT Nextera1
+D707 CTGAAGCT Nextera1
+D708 TAATGCGC Nextera1
+D709 CGGCTATG Nextera1
+D710 TCCGCGAA Nextera1
+D711 TCTCGCGC Nextera1
+D712 AGCGATAG Nextera1
+LB1 ATCACG TruSeq
+LB2 CGATGT TruSeq
+LB3 TTAGGC TruSeq
+LB4 TGACCA TruSeq
+LB5 ACAGTG TruSeq
+LB6 GCCAAT TruSeq
+LB7 CAGATC TruSeq
+LB8 ACTTGA TruSeq
+LB9 GATCAG TruSeq
+LB10 TAGCTT TruSeq
+LB11 GGCTAC TruSeq
+LB12 CTTGTA TruSeq
+LB13 AGTCAA TruSeq
+LB14 AGTTCC TruSeq
+LB15 ATGTCA TruSeq
+LB16 CCGTCC TruSeq
+LB17 GTAGAG TruSeq
+LB18 GTCCGC TruSeq
+LB19 GTGAAA TruSeq
+LB20 GTGGCC TruSeq
+LB21 GTTTCG TruSeq
+LB22 CGTACG TruSeq
+LB23 GAGTGG TruSeq
+LB24 GGTAGC TruSeq
+LB25 ACTGAT TruSeq
+LB26 ATGAGC TruSeq
+LB27 ATTCCT TruSeq
+LB28 CAAAAG TruSeq
+LB29 CAACTA TruSeq
+LB30 CACCGG TruSeq
+LB31 CACGAT TruSeq
+LB32 CACTCA TruSeq
+LB33 CAGGCG TruSeq
+LB34 CATGGC TruSeq
+LB35 CATTTT TruSeq
+LB36 CCAACA TruSeq
+LB37 CGGAAT TruSeq
+LB38 CTAGCT TruSeq
+LB39 CTATAC TruSeq
+LB40 CTCAGA TruSeq
+LB41 GACGAC TruSeq
+LB42 TAATCG TruSeq
+LB43 TACAGC TruSeq
+LB44 TATAAT TruSeq
+LB45 TCATTC TruSeq
+LB46 TCCCGA TruSeq
+LB47 TCGAAG TruSeq
+LB48 TCGGCA TruSeq
+SSXT1 ATCACG SureSelect_XT
+SSXT2 CGATGT SureSelect_XT
+SSXT3 TTAGGC SureSelect_XT
+SSXT4 TGACCA SureSelect_XT
+SSXT5 ACAGTG SureSelect_XT
+SSXT6 GCCAAT SureSelect_XT
+SSXT7 CAGATC SureSelect_XT
+SSXT8 ACTTGA SureSelect_XT
+SSXT9 GATCAG SureSelect_XT
+SSXT10 TAGCTT SureSelect_XT
+SSXT11 GGCTAC SureSelect_XT
+SSXT12 CTTGTA SureSelect_XT
+SSXT13 AAACAT SureSelect_XT
+SSXT14 CAAAAG SureSelect_XT
+SSXT15 GAAACC SureSelect_XT
+SSXT16 AAAGCA SureSelect_XT
+LI2 CCTTCT Craig
+LI3 GATCGT Craig
+LI4 GCATGT Craig
+LI5 AACCAT Craig
+LI6 CCCCCT Craig
+LI8 TCGATT Craig
+LI9 TGCATT Craig
+LI10 CAACCT Craig
+LI11 GGTTGT Craig
+LI13 AGCTAT Craig
+LI15 ACACAT Craig
+LI16 AATTAT Craig
+LI20 ATCACG Craig
+LI21 CGATGT Craig
+LI22 TTAGGC Craig
+LI23 TGACCA Craig
+LI24 ACAGTG Craig
+LI25 GCCAAT Craig
+LI26 CAGATC Craig
+LI27 ACTTGA Craig
+LI28 GATCAG Craig
+LI29 TAGCTT Craig
+LI30 GGCTAC Craig
+LI31 CTTGTA Craig
+LI61 ATCACG Illumina
+LI62 CGATGT Illumina
+LI63 TTAGGC Illumina
+LI64 TGACCA Illumina
+LI65 ACAGTG Illumina
+LI66 GCCAAT Illumina
+LI67 CAGATC Illumina
+LI68 ACTTGA Illumina
+LI69 GATCAG Illumina
+LI70 TAGCTT Illumina
+LI71 GGCTAC Illumina
+LI72 CTTGTA Illumina
+LI41 ATCACG Illumina-IDT
+LI42 CGATGT Illumina-IDT
+LI43 TTAGGC Illumina-IDT
+LI44 TGACCA Illumina-IDT
+LI45 ACAGTG Illumina-IDT
+LI46 GCCAAT Illumina-IDT
+LI47 CAGATC Illumina-IDT
+LI48 ACTTGA Illumina-IDT
+LI49 GATCAG Illumina-IDT
+LI50 TAGCTT Illumina-IDT
+LI51 GGCTAC Illumina-IDT
+LI52 CTTGTA Illumina-IDT
+A01_01 TAGCTTGT Fluidigm
+B01_02 CGATGTTT Fluidigm
+C01_03 GCCAATGT Fluidigm
+D01_04 ACAGTGGT Fluidigm
+E01_05 ATCACGTT Fluidigm
+F01_06 GATCAGCG Fluidigm
+G01_07 CAGATCTG Fluidigm
+H01_08 TTAGGCAT Fluidigm
+A02_09 GGCTACAG Fluidigm
+B02_10 CTTGTACT Fluidigm
+C02_11 ACTTGATG Fluidigm
+D02_12 TGACCACT Fluidigm
+E02_13 TGGTTGTT Fluidigm
+F02_14 TCTCGGTT Fluidigm
+G02_15 TAAGCGTT Fluidigm
+H02_16 TCCGTCTT Fluidigm
+A03_17 TGTACCTT Fluidigm
+B03_18 TTCTGTGT Fluidigm
+C03_19 TCTGCTGT Fluidigm
+D03_20 TTGGAGGT Fluidigm
+E03_21 TCGAGCGT Fluidigm
+F03_22 TGATACGT Fluidigm
+G03_23 TGCATAGT Fluidigm
+H03_24 TTGACTCT Fluidigm
+A04_25 TGCGATCT Fluidigm
+B04_26 TTCCTGCT Fluidigm
+C04_27 TAGTGACT Fluidigm
+D04_28 TACAGGAT Fluidigm
+E04_29 TCCTCAAT Fluidigm
+F04_30 TGTGGTTG Fluidigm
+G04_31 TAGTCTTG Fluidigm
+H04_32 TTCCATTG Fluidigm
+A05_33 TCGAAGTG Fluidigm
+B05_34 TAACGCTG Fluidigm
+C05_35 TTGGTATG Fluidigm
+D05_36 TGAACTGG Fluidigm
+E05_37 TACTTCGG Fluidigm
+F05_38 TCTCACGG Fluidigm
+G05_39 TCAGGAGG Fluidigm
+H05_40 TAAGTTCG Fluidigm
+A06_41 TCCAGTCG Fluidigm
+B06_42 TGTATGCG Fluidigm
+C06_43 TCATTGAG Fluidigm
+D06_44 TGGCTCAG Fluidigm
+E06_45 TATGCCAG Fluidigm
+F06_46 TCAGATTC Fluidigm
+G06_47 TACTAGTC Fluidigm
+H06_48 TTCAGCTC Fluidigm
+A07_49 TGTCTATC Fluidigm
+B07_50 TATGTGGC Fluidigm
+C07_51 TTACTCGC Fluidigm
+D07_52 TCGTTAGC Fluidigm
+E07_53 TACCGAGC Fluidigm
+F07_54 TGTTCTCC Fluidigm
+G07_55 TTCGCACC Fluidigm
+H07_56 TTGCGTAC Fluidigm
+A08_57 TCTACGAC Fluidigm
+B08_58 TGACAGAC Fluidigm
+C08_59 TAGAACAC Fluidigm
+D08_60 TCATCCTA Fluidigm
+E08_61 TGCTGATA Fluidigm
+F08_62 TAGACGGA Fluidigm
+G08_63 TGTGAAGA Fluidigm
+H08_64 TCTCTTCA Fluidigm
+A09_65 TTGTTCCA Fluidigm
+B09_66 TGAAGCCA Fluidigm
+C09_67 TACCACCA Fluidigm
+D09_68 TGCGTGAA Fluidigm
+E09_69 GGTGAGTT Fluidigm
+F09_70 GATCTCTT Fluidigm
+G09_71 GTGTCCTT Fluidigm
+H09_72 GACGGATT Fluidigm
+A10_73 GCAACATT Fluidigm
+B10_74 GGTCGTGT Fluidigm
+C10_75 GAATCTGT Fluidigm
+D10_76 GTACATCT Fluidigm
+E10_77 GAGGTGCT Fluidigm
+F10_78 GCATGGCT Fluidigm
+G10_79 GTTAGCCT Fluidigm
+H10_80 GTCGCTAT Fluidigm
+A11_81 GGAATGAT Fluidigm
+B11_82 GAGCCAAT Fluidigm
+C11_83 GCTCCTTG Fluidigm
+D11_84 GTAAGGTG Fluidigm
+E11_85 GAGGATGG Fluidigm
+F11_86 GTTGTCGG Fluidigm
+G11_87 GGATTAGG Fluidigm
+H11_88 GATAGAGG Fluidigm
+A12_89 GTGTGTCG Fluidigm
+B12_90 GCAATCCG Fluidigm
+C12_91 GACCTTAG Fluidigm
+D12_92 GCCTGTTC Fluidigm
+E12_93 GCACTGTC Fluidigm
+F12_94 GCTAACTC Fluidigm
+G12_95 GATTCATC Fluidigm
+H12_96 GTCTTGGC Fluidigm
+FLD0001 GTATCGTCGT FLD_BiDirectional
+FLD0002 GTGTATGCGT FLD_BiDirectional
+FLD0003 TGCTCGTAGT FLD_BiDirectional
+FLD0004 GTCGTCGTCT FLD_BiDirectional
+FLD0005 GTGCGTGTGT FLD_BiDirectional
+FLD0006 GCGTCGTGTA FLD_BiDirectional
+FLD0007 GTCGTGTACT FLD_BiDirectional
+FLD0008 GATGTAGCGT FLD_BiDirectional
+FLD0009 GAGTGATCGT FLD_BiDirectional
+FLD0010 CGCTATCAGT FLD_BiDirectional
+FLD0011 CGCTGTAGTC FLD_BiDirectional
+FLD0012 GCTAGTGAGT FLD_BiDirectional
+FLD0013 GAGCTAGTGA FLD_BiDirectional
+FLD0014 CGTGCTGTCA FLD_BiDirectional
+FLD0015 GATCGTCTCT FLD_BiDirectional
+FLD0016 GTGCTGTCGT FLD_BiDirectional
+FLD0017 TGAGCGTGCT FLD_BiDirectional
+FLD0018 CATGTCGTCA FLD_BiDirectional
+FLD0019 TCAGTGTCTC FLD_BiDirectional
+FLD0020 GTGCTCATGT FLD_BiDirectional
+FLD0021 CGTATCTCGA FLD_BiDirectional
+FLD0022 GTCATGCGTC FLD_BiDirectional
+FLD0023 CTATGCGATC FLD_BiDirectional
+FLD0024 TGCTATGCTG FLD_BiDirectional
+FLD0025 TGTGTGCATG FLD_BiDirectional
+FLD0026 GAGTGTCACT FLD_BiDirectional
+FLD0027 CTAGTCTCGT FLD_BiDirectional
+FLD0028 GAGTGCATCT FLD_BiDirectional
+FLD0029 TGCGTAGTCG FLD_BiDirectional
+FLD0030 CTGTGTCGTC FLD_BiDirectional
+FLD0031 CTGTAGTGCG FLD_BiDirectional
+FLD0032 GTGCGCTAGT FLD_BiDirectional
+FLD0033 TGTGCTCGCA FLD_BiDirectional
+FLD0034 GATGCGAGCT FLD_BiDirectional
+FLD0035 CTGTACGTGA FLD_BiDirectional
+FLD0036 GCGATGATGA FLD_BiDirectional
+FLD0037 TGTCGAGTCA FLD_BiDirectional
+FLD0038 GTCTACTGTC FLD_BiDirectional
+FLD0039 CAGTCAGAGT FLD_BiDirectional
+FLD0040 CGCAGTCTAT FLD_BiDirectional
+FLD0041 GTATGAGCAC FLD_BiDirectional
+FLD0042 CGAGTGCTGT FLD_BiDirectional
+FLD0043 TATAGCACGC FLD_BiDirectional
+FLD0044 TCATGCGCGA FLD_BiDirectional
+FLD0045 TATGCGCTGC FLD_BiDirectional
+FLD0046 TCTCTGTGCA FLD_BiDirectional
+FLD0047 CTATCGCGTG FLD_BiDirectional
+FLD0048 TACGCTGCTG FLD_BiDirectional
+FLD0049 CTGCATGATC FLD_BiDirectional
+FLD0050 CGCGTATCAT FLD_BiDirectional
+FLD0051 GTATCTCTCG FLD_BiDirectional
+FLD0052 GCTCATATGC FLD_BiDirectional
+FLD0053 CACTATGTCG FLD_BiDirectional
+FLD0054 TAGCGCGTAG FLD_BiDirectional
+FLD0055 CGTCACAGTA FLD_BiDirectional
+FLD0056 TCGCGTGAGA FLD_BiDirectional
+FLD0057 TACATCGCTG FLD_BiDirectional
+FLD0058 GTGAGAGACA FLD_BiDirectional
+FLD0059 GACTGTACGT FLD_BiDirectional
+FLD0060 GCACGTAGCT FLD_BiDirectional
+FLD0061 TCACGCTATG FLD_BiDirectional
+FLD0062 CGTACTACGT FLD_BiDirectional
+FLD0063 CAGCTGAGTA FLD_BiDirectional
+FLD0064 GAGATCAGTC FLD_BiDirectional
+FLD0065 TACTGAGCTG FLD_BiDirectional
+FLD0066 TAGTAGCGCG FLD_BiDirectional
+FLD0067 GACGTCTGCT FLD_BiDirectional
+FLD0068 GTACTCGCGA FLD_BiDirectional
+FLD0069 TCTGAGCGCA FLD_BiDirectional
+FLD0070 TAGACGTGCT FLD_BiDirectional
+FLD0071 GTGACTCGTC FLD_BiDirectional
+FLD0072 TCGAGTAGCG FLD_BiDirectional
+FLD0073 CGTATGATGT FLD_BiDirectional
+FLD0074 TAGTCTGTCA FLD_BiDirectional
+FLD0075 TGTCTCTATC FLD_BiDirectional
+FLD0076 CTAGAGTATC FLD_BiDirectional
+FLD0077 TATCATGTGC FLD_BiDirectional
+FLD0078 CATGAGTGTA FLD_BiDirectional
+FLD0079 TGTCGTCATA FLD_BiDirectional
+FLD0080 TATCTCATGC FLD_BiDirectional
+FLD0081 TGTGTCACTA FLD_BiDirectional
+FLD0082 TATCGATGCT FLD_BiDirectional
+FLD0083 TAGAGTCTGT FLD_BiDirectional
+FLD0084 CATGCATCAT FLD_BiDirectional
+FLD0085 TGATCAGTCA FLD_BiDirectional
+FLD0086 CGTCTATGAT FLD_BiDirectional
+FLD0087 GTGATACTGA FLD_BiDirectional
+FLD0088 CTAGATCTGA FLD_BiDirectional
+FLD0089 TATCAGTCTG FLD_BiDirectional
+FLD0090 TCAGATGCTA FLD_BiDirectional
+FLD0091 TATGTACGTG FLD_BiDirectional
+FLD0092 CTATACAGTG FLD_BiDirectional
+FLD0093 TGATACTCTG FLD_BiDirectional
+FLD0094 TCAGCGATAT FLD_BiDirectional
+FLD0095 CTACTGATGA FLD_BiDirectional
+FLD0096 GTAGTACACA FLD_BiDirectional
+FLD0097 TGCTACATCA FLD_BiDirectional
+FLD0098 AGTGTGTCTA FLD_BiDirectional
+FLD0099 TCATATCGCG FLD_BiDirectional
+FLD0100 TACGTATAGC FLD_BiDirectional
+FLD0101 CAGCTATAGC FLD_BiDirectional
+FLD0102 TCGATGCGCT FLD_BiDirectional
+FLD0103 GCACGCGTAT FLD_BiDirectional
+FLD0104 GCAGTATGCG FLD_BiDirectional
+FLD0105 TGATAGAGAG FLD_BiDirectional
+FLD0106 GCTACTAGCG FLD_BiDirectional
+FLD0107 TGCGAGACGT FLD_BiDirectional
+FLD0108 CGATGACAGA FLD_BiDirectional
+FLD0109 GACTCATGCT FLD_BiDirectional
+FLD0110 GTCTGATACG FLD_BiDirectional
+FLD0111 ACTAGCTGTC FLD_BiDirectional
+FLD0112 GCGTAGACGA FLD_BiDirectional
+FLD0113 CTCAGCAGTG FLD_BiDirectional
+FLD0114 CAGTCTACAT FLD_BiDirectional
+FLD0115 TACTGCAGCG FLD_BiDirectional
+FLD0116 TACACAGTAG FLD_BiDirectional
+FLD0117 CACATACAGT FLD_BiDirectional
+FLD0118 CACAGTGATG FLD_BiDirectional
+FLD0119 CGAGCTAGCA FLD_BiDirectional
+FLD0120 GAGACTATGC FLD_BiDirectional
+FLD0121 CAGAGCTAGT FLD_BiDirectional
+FLD0122 CGCAGAGCAT FLD_BiDirectional
+FLD0123 TGTACAGCGA FLD_BiDirectional
+FLD0124 ACGTCAGTAT FLD_BiDirectional
+FLD0125 TCACAGCATA FLD_BiDirectional
+FLD0126 ACTGCGTGTC FLD_BiDirectional
+FLD0127 CGATCGACTG FLD_BiDirectional
+FLD0128 GCGAGATGTA FLD_BiDirectional
+FLD0129 CTGATGCAGA FLD_BiDirectional
+FLD0130 GTGACGTACG FLD_BiDirectional
+FLD0131 CGACGCTGAT FLD_BiDirectional
+FLD0132 CTACGATCAG FLD_BiDirectional
+FLD0133 GCACTAGACA FLD_BiDirectional
+FLD0134 CTAGCAGATG FLD_BiDirectional
+FLD0135 CATGATACGC FLD_BiDirectional
+FLD0136 GCAGCTGTCA FLD_BiDirectional
+FLD0137 ACGTATCATC FLD_BiDirectional
+FLD0138 AGTATCGTAC FLD_BiDirectional
+FLD0139 GATACACTGA FLD_BiDirectional
+FLD0140 GACTAGTCAG FLD_BiDirectional
+FLD0141 GATGACTACG FLD_BiDirectional
+FLD0142 CAGAGAGTCA FLD_BiDirectional
+FLD0143 TCGATCGACA FLD_BiDirectional
+FLD0144 ACTGATGTAG FLD_BiDirectional
+FLD0145 ACTCGATAGT FLD_BiDirectional
+FLD0146 GACGATCGCA FLD_BiDirectional
+FLD0147 TCATCATGCG FLD_BiDirectional
+FLD0148 ACATGTCTGA FLD_BiDirectional
+FLD0149 AGTCATCGCA FLD_BiDirectional
+FLD0150 TAGCATACAG FLD_BiDirectional
+FLD0151 AGAGTCGCGT FLD_BiDirectional
+FLD0152 TCTACGACAT FLD_BiDirectional
+FLD0153 CACGAGATGA FLD_BiDirectional
+FLD0154 ACGCACATAT FLD_BiDirectional
+FLD0155 ACGTGCTCTG FLD_BiDirectional
+FLD0156 ACGATCACAT FLD_BiDirectional
+FLD0157 AGTGTACTCA FLD_BiDirectional
+FLD0158 TGATGTATGT FLD_BiDirectional
+FLD0159 GATATATGTC FLD_BiDirectional
+FLD0160 TAGTACTAGA FLD_BiDirectional
+FLD0161 TATAGAGATC FLD_BiDirectional
+FLD0162 TCGATATCTA FLD_BiDirectional
+FLD0163 TACATGATAG FLD_BiDirectional
+FLD0164 TGAGATCATA FLD_BiDirectional
+FLD0165 CTACATACTA FLD_BiDirectional
+FLD0166 ATCAGTGTAT FLD_BiDirectional
+FLD0167 ATCATATCTC FLD_BiDirectional
+FLD0168 AGTAGATCAT FLD_BiDirectional
+FLD0169 ACATAGTATC FLD_BiDirectional
+FLD0170 ATGTATAGTC FLD_BiDirectional
+FLD0171 ACAGTCATAT FLD_BiDirectional
+FLD0172 ACATATACGT FLD_BiDirectional
+FLD0173 AGCATCTATA FLD_BiDirectional
+FLD0174 AGACTATATC FLD_BiDirectional
+FLD0175 CAGCATCTAG FLD_BiDirectional
+FLD0176 CGAGACGACA FLD_BiDirectional
+FLD0177 ATCACTCATA FLD_BiDirectional
+FLD0178 AGCTCTGTGA FLD_BiDirectional
+FLD0179 ATGTCATGCT FLD_BiDirectional
+FLD0180 GCTGACAGAG FLD_BiDirectional
+FLD0181 ATACAGTCTC FLD_BiDirectional
+FLD0182 CATAGACGTG FLD_BiDirectional
+FLD0183 AGAGATATCA FLD_BiDirectional
+FLD0184 ATGCTGCGCT FLD_BiDirectional
+FLD0185 AGTCAGACGC FLD_BiDirectional
+FLD0186 ACGATACACT FLD_BiDirectional
+FLD0187 AGCGAGTATG FLD_BiDirectional
+FLD0188 ATCGCTACAT FLD_BiDirectional
+FLD0189 ATGCTAGAGA FLD_BiDirectional
+FLD0190 AGCAGTACTC FLD_BiDirectional
+FLD0191 ATCTAGATCA FLD_BiDirectional
+FLD0192 ATCGCATAGA FLD_BiDirectional
+FLD0193 TTGTTGCTGT FLD_BiDirectional
+FLD0194 GTGTGGTTGT FLD_BiDirectional
+FLD0195 TAGGTGGAAT FLD_BiDirectional
+FLD0196 TGTAGGTGGA FLD_BiDirectional
+FLD0197 TTAGTGGTGA FLD_BiDirectional
+FLD0198 GTGAAGGTAA FLD_BiDirectional
+FLD0199 TGTTGTGGTA FLD_BiDirectional
+FLD0200 GTTGATGAGT FLD_BiDirectional
+FLD0201 GGTCAGTGTA FLD_BiDirectional
+FLD0202 GTAATGGAGT FLD_BiDirectional
+FLD0203 CTCGTTATTC FLD_BiDirectional
+FLD0204 GGAAGTAAGG FLD_BiDirectional
+FLD0205 CGGTGTGTGT FLD_BiDirectional
+FLD0206 CGTCTTCTTA FLD_BiDirectional
+FLD0207 TGTGAATCTC FLD_BiDirectional
+FLD0208 CTAATCGTGT FLD_BiDirectional
+FLD0209 CTCTTAGTTC FLD_BiDirectional
+FLD0210 GGATAGGATC FLD_BiDirectional
+FLD0211 GGTGTCTTGT FLD_BiDirectional
+FLD0212 GATGGTTGTA FLD_BiDirectional
+FLD0213 CCTCGTTGTT FLD_BiDirectional
+FLD0214 GGTTGGAGTT FLD_BiDirectional
+FLD0215 TGGTGTCCGT FLD_BiDirectional
+FLD0216 CGTTAGCGTA FLD_BiDirectional
+FLD0217 TACTAGGATC FLD_BiDirectional
+FLD0218 GTCTCAATGT FLD_BiDirectional
+FLD0219 GATGAGGTAT FLD_BiDirectional
+FLD0220 GGTGTTAGTG FLD_BiDirectional
+FLD0221 CATTCTCTGA FLD_BiDirectional
+FLD0222 CATCTGGAGT FLD_BiDirectional
+FLD0223 GAATGGAAGA FLD_BiDirectional
+FLD0224 GGCTGTGATC FLD_BiDirectional
+FLD0225 TGGTGCTGGA FLD_BiDirectional
+FLD0226 TATGGTAAGG FLD_BiDirectional
+FLD0227 GTTCGATTGT FLD_BiDirectional
+FLD0228 GGTAGAATGA FLD_BiDirectional
+FLD0229 TTCTCATCGT FLD_BiDirectional
+FLD0230 CTCAATCGTA FLD_BiDirectional
+FLD0231 CGCTAATGTA FLD_BiDirectional
+FLD0232 GCGTCTGAAT FLD_BiDirectional
+FLD0233 TTCTGTTGCC FLD_BiDirectional
+FLD0234 TTGTCCTTGC FLD_BiDirectional
+FLD0235 CCTGTGTAGA FLD_BiDirectional
+FLD0236 GATAAGAAGG FLD_BiDirectional
+FLD0237 CAGGTCACAT FLD_BiDirectional
+FLD0238 GCCATGTCAT FLD_BiDirectional
+FLD0239 TCTGCCTATA FLD_BiDirectional
+FLD0240 CTTAGTTCGC FLD_BiDirectional
+FLD0241 CGTAATGAGC FLD_BiDirectional
+FLD0242 TTGCTTAGTC FLD_BiDirectional
+FLD0243 TCTTGTTCAC FLD_BiDirectional
+FLD0244 GTGGCTTCGT FLD_BiDirectional
+FLD0245 TGTTCGATAG FLD_BiDirectional
+FLD0246 TCATTCAGTG FLD_BiDirectional
+FLD0247 GTGGAGAGCT FLD_BiDirectional
+FLD0248 GTAGAAGTGG FLD_BiDirectional
+FLD0249 TGGAGCATGT FLD_BiDirectional
+FLD0250 GAAGGAGATA FLD_BiDirectional
+FLD0251 CGAATGTATG FLD_BiDirectional
+FLD0252 TCGTGAATGA FLD_BiDirectional
+FLD0253 GAATAGCTGA FLD_BiDirectional
+FLD0254 TTGTCACATC FLD_BiDirectional
+FLD0255 CTGGAGGCTA FLD_BiDirectional
+FLD0256 TGTCAGCTTA FLD_BiDirectional
+FLD0257 GTTCTTCGTA FLD_BiDirectional
+FLD0258 TTACACGTTC FLD_BiDirectional
+FLD0259 GTAGCCAGTA FLD_BiDirectional
+FLD0260 TGAGAAGGTA FLD_BiDirectional
+FLD0261 CCATATGATC FLD_BiDirectional
+FLD0262 CGATCCTATA FLD_BiDirectional
+FLD0263 TGACTAGCTT FLD_BiDirectional
+FLD0264 TAACTCTGCT FLD_BiDirectional
+FLD0265 TCGAATGTGC FLD_BiDirectional
+FLD0266 TCGCTGAACA FLD_BiDirectional
+FLD0267 GCGTTATTGC FLD_BiDirectional
+FLD0268 GAACTATCAC FLD_BiDirectional
+FLD0269 TCGAGGTACT FLD_BiDirectional
+FLD0270 TGCGGATGGT FLD_BiDirectional
+FLD0271 TTCGAGCTAT FLD_BiDirectional
+FLD0272 GGTCTGGTGT FLD_BiDirectional
+FLD0273 CTAAGTCATG FLD_BiDirectional
+FLD0274 TTGCAGATCA FLD_BiDirectional
+FLD0275 CTGCGAATGT FLD_BiDirectional
+FLD0276 CTGTTCTAGC FLD_BiDirectional
+FLD0277 CACTTGTGTG FLD_BiDirectional
+FLD0278 TGGATGACAT FLD_BiDirectional
+FLD0279 GATCCTGAGC FLD_BiDirectional
+FLD0280 GTCGGTCTGA FLD_BiDirectional
+FLD0281 TGTTACGATC FLD_BiDirectional
+FLD0282 GTCTTGGCTC FLD_BiDirectional
+FLD0283 GGTCGTGCAT FLD_BiDirectional
+FLD0284 CAGGCTCAGT FLD_BiDirectional
+FLD0285 TAGCTTCACT FLD_BiDirectional
+FLD0286 CAGATGTCCT FLD_BiDirectional
+FLD0287 TTACGCAGTG FLD_BiDirectional
+FLD0288 TTCGTTCCTG FLD_BiDirectional
+FLD0289 CACTGCTTGA FLD_BiDirectional
+FLD0290 TCTAGCGTGG FLD_BiDirectional
+FLD0291 GCATAATCGC FLD_BiDirectional
+FLD0292 GTCGTAACAC FLD_BiDirectional
+FLD0293 GAGATTGCTA FLD_BiDirectional
+FLD0294 GGACAGATGG FLD_BiDirectional
+FLD0295 CTTACGTTGC FLD_BiDirectional
+FLD0296 GTGTTCGGTC FLD_BiDirectional
+FLD0297 CTCAAGAAGC FLD_BiDirectional
+FLD0298 TCTCGGATAG FLD_BiDirectional
+FLD0299 CTCTGGACGA FLD_BiDirectional
+FLD0300 CGAGCATTGT FLD_BiDirectional
+FLD0301 CCAAGAAGAA FLD_BiDirectional
+FLD0302 TCCTTGTTCT FLD_BiDirectional
+FLD0303 GTAACGATGT FLD_BiDirectional
+FLD0304 TGGACTCAGA FLD_BiDirectional
+FLD0305 GGCATCATGC FLD_BiDirectional
+FLD0306 GTATAACGCT FLD_BiDirectional
+FLD0307 GCAGATAAGT FLD_BiDirectional
+FLD0308 GTCGGCTCTA FLD_BiDirectional
+FLD0309 TTCGATAGCA FLD_BiDirectional
+FLD0310 GTCTAGCAGG FLD_BiDirectional
+FLD0311 GGAACACAGG FLD_BiDirectional
+FLD0312 TGGTTCGCTG FLD_BiDirectional
+FLD0313 CACATTAGCG FLD_BiDirectional
+FLD0314 GAAGCGCACT FLD_BiDirectional
+FLD0315 GCATGCCAGT FLD_BiDirectional
+FLD0316 GGAGACTGTA FLD_BiDirectional
+FLD0317 TCGAACTGCA FLD_BiDirectional
+FLD0318 GAGAGGACAT FLD_BiDirectional
+FLD0319 GAGCACGGAA FLD_BiDirectional
+FLD0320 GCTCTAACAT FLD_BiDirectional
+FLD0321 TGCTGGCTTG FLD_BiDirectional
+FLD0322 TGCATGGAGC FLD_BiDirectional
+FLD0323 GTACTAAGAG FLD_BiDirectional
+FLD0324 GAAGTCAAGC FLD_BiDirectional
+FLD0325 GCGCATTATG FLD_BiDirectional
+FLD0326 GTCCAGACAT FLD_BiDirectional
+FLD0327 GAGACCTCTA FLD_BiDirectional
+FLD0328 TTGCACTCAG FLD_BiDirectional
+FLD0329 TGCGGCGATA FLD_BiDirectional
+FLD0330 AGTTGCTAGT FLD_BiDirectional
+FLD0331 AGGATTGAGG FLD_BiDirectional
+FLD0332 CCAGAACAGA FLD_BiDirectional
+FLD0333 CGTCAAGCAT FLD_BiDirectional
+FLD0334 TTGTCGAGAC FLD_BiDirectional
+FLD0335 GACAGGTGAC FLD_BiDirectional
+FLD0336 CTGACAAGTG FLD_BiDirectional
+FLD0337 CACGAAGAGC FLD_BiDirectional
+FLD0338 CATACCTGAT FLD_BiDirectional
+FLD0339 GACGTGCTTC FLD_BiDirectional
+FLD0340 ATTGTGGAGT FLD_BiDirectional
+FLD0341 TCTGGTCTCA FLD_BiDirectional
+FLD0342 AGGTAAGAGG FLD_BiDirectional
+FLD0343 TCCTGACAGA FLD_BiDirectional
+FLD0344 GCACTGTTGC FLD_BiDirectional
+FLD0345 ACCATGAGTC FLD_BiDirectional
+FLD0346 AATGCAGTGT FLD_BiDirectional
+FLD0347 ATATGGTGGA FLD_BiDirectional
+FLD0348 ACTCAGTTAC FLD_BiDirectional
+FLD0349 AAGTGCGATG FLD_BiDirectional
+FLD0350 CCACAGAGTG FLD_BiDirectional
+FLD0351 AGTGGTGATC FLD_BiDirectional
+FLD0352 ACTTCTTAGC FLD_BiDirectional
+FLD0353 GCCACATATA FLD_BiDirectional
+FLD0354 ACGCAGGAGT FLD_BiDirectional
+FLD0355 AATATGCTGC FLD_BiDirectional
+FLD0356 AAGCGTAGAA FLD_BiDirectional
+FLD0357 GACAGCAAGC FLD_BiDirectional
+FLD0358 CTGACCGAGA FLD_BiDirectional
+FLD0359 CGCGACTTGT FLD_BiDirectional
+FLD0360 CATCAACATG FLD_BiDirectional
+FLD0361 TGGCTACGCT FLD_BiDirectional
+FLD0362 ACGCGGACTA FLD_BiDirectional
+FLD0363 AGAGGTCGGA FLD_BiDirectional
+FLD0364 AATCGAGCGT FLD_BiDirectional
+FLD0365 AAGTACACTC FLD_BiDirectional
+FLD0366 AGCTGAATGA FLD_BiDirectional
+FLD0367 ATGCCTATCA FLD_BiDirectional
+FLD0368 ACTGTAGGAC FLD_BiDirectional
+FLD0369 ATAGCCGTGT FLD_BiDirectional
+FLD0370 TCACGACGAA FLD_BiDirectional
+FLD0371 ATCTGTCCAT FLD_BiDirectional
+FLD0372 ACTTAGAGAG FLD_BiDirectional
+FLD0373 AGTGGCAGGT FLD_BiDirectional
+FLD0374 ATGAGGTCGT FLD_BiDirectional
+FLD0375 AGGAGAAGGA FLD_BiDirectional
+FLD0376 ACAACTGCAA FLD_BiDirectional
+FLD0377 ATTAGCGAGT FLD_BiDirectional
+FLD0378 ACAACGAACA FLD_BiDirectional
+FLD0379 AGAGCGCCAA FLD_BiDirectional
+FLD0380 AGGTAGCTCA FLD_BiDirectional
+FLD0381 AACGCCAAGA FLD_BiDirectional
+FLD0382 AAGGTATGAG FLD_BiDirectional
+FLD0383 ATGGAGCACT FLD_BiDirectional
+FLD0384 ACGGTGCTAG FLD_BiDirectional
+NGOBC1 AAGGGA NuGen_Ovation
+NGOBC2 CCTTCA NuGen_Ovation
+NGOBC3 GGACCC NuGen_Ovation
+NGOBC4 TTCAGC NuGen_Ovation
+NGOBC5 AAGACG NuGen_Ovation
+NGOBC6 CCTCGG NuGen_Ovation
+NGOBC7 GGATGT NuGen_Ovation
+NGOBC8 TTCGCT NuGen_Ovation
+NGOBC9 ACACGA NuGen_Ovation
+NGOBC10 CACACA NuGen_Ovation
+NGOBC11 GTGTTA NuGen_Ovation
+NGOBC12 TGTGAA NuGen_Ovation
+NGOBC13 ACAAAC NuGen_Ovation
+NGOBC14 CACCTC NuGen_Ovation
+NGOBC15 GTGGCC NuGen_Ovation
+NGOBC16 TGTTGC NuGen_Ovation
+ION1 CTAAGGTAAC IonXpress
+ION2 TAAGGAGAAC IonXpress
+ION3 AAGAGGATTC IonXpress
+ION4 TACCAAGATC IonXpress
+ION5 CAGAAGGAAC IonXpress
+ION6 CTGCAAGTTC IonXpress
+ION7 TTCGTGATTC IonXpress
+ION8 TTCCGATAAC IonXpress
+ION9 TGAGCGGAAC IonXpress
+ION10 CTGACCGAAC IonXpress
+ION11 TCCTCGAATC IonXpress
+ION12 TAGGTGGTTC IonXpress
+ION13 TCTAACGGAC IonXpress
+ION14 TTGGAGTGTC IonXpress
+ION15 TCTAGAGGTC IonXpress
+ION16 TCTGGATGAC IonXpress
+ION17 TCTATTCGTC IonXpress
+ION18 AGGCAATTGC IonXpress
+ION19 TTAGTCGGAC IonXpress
+ION20 CAGATCCATC IonXpress
+ION21 TCGCAATTAC IonXpress
+ION22 TTCGAGACGC IonXpress
+ION23 TGCCACGAAC IonXpress
+ION24 AACCTCATTC IonXpress
+ION25 CCTGAGATAC IonXpress
+ION26 TTACAACCTC IonXpress
+ION27 AACCATCCGC IonXpress
+ION28 ATCCGGAATC IonXpress
+ION29 TCGACCACTC IonXpress
+ION30 CGAGGTTATC IonXpress
+ION31 TCCAAGCTGC IonXpress
+ION32 TCTTACACAC IonXpress
+ION33 TTCTCATTGAAC IonXpress
+ION34 TCGCATCGTTC IonXpress
+ION35 TAAGCCATTGTC IonXpress
+ION36 AAGGAATCGTC IonXpress
+ION37 CTTGAGAATGTC IonXpress
+ION38 TGGAGGACGGAC IonXpress
+ION39 TAACAATCGGC IonXpress
+ION40 CTGACATAATC IonXpress
+ION41 TTCCACTTCGC IonXpress
+ION42 AGCACGAATC IonXpress
+ION43 CTTGACACCGC IonXpress
+ION44 TTGGAGGCCAGC IonXpress
+ION45 TGGAGCTTCCTC IonXpress
+ION46 TCAGTCCGAAC IonXpress
+ION47 TAAGGCAACCAC IonXpress
+ION48 TTCTAAGAGAC IonXpress
+ION49 TCCTAACATAAC IonXpress
+ION50 CGGACAATGGC IonXpress
+ION51 TTGAGCCTATTC IonXpress
+ION52 CCGCATGGAAC IonXpress
+ION53 CTGGCAATCCTC IonXpress
+ION54 CCGGAGAATCGC IonXpress
+ION55 TCCACCTCCTC IonXpress
+ION56 CAGCATTAATTC IonXpress
+ION57 TCTGGCAACGGC IonXpress
+ION58 TCCTAGAACAC IonXpress
+ION59 TCCTTGATGTTC IonXpress
+ION60 TCTAGCTCTTC IonXpress
+ION61 TCACTCGGATC IonXpress
+ION62 TTCCTGCTTCAC IonXpress
+ION63 CCTTAGAGTTC IonXpress
+ION64 CTGAGTTCCGAC IonXpress
+ION65 TCCTGGCACATC IonXpress
+ION66 CCGCAATCATC IonXpress
+ION67 TTCCTACCAGTC IonXpress
+ION68 TCAAGAAGTTC IonXpress
+ION69 TTCAATTGGC IonXpress
+ION70 CCTACTGGTC IonXpress
+ION71 TGAGGCTCCGAC IonXpress
+ION72 CGAAGGCCACAC IonXpress
+ION73 TCTGCCTGTC IonXpress
+ION74 CGATCGGTTC IonXpress
+ION75 TCAGGAATAC IonXpress
+ION76 CGGAAGAACCTC IonXpress
+ION77 CGAAGCGATTC IonXpress
+ION78 CAGCCAATTCTC IonXpress
+ION79 CCTGGTTGTC IonXpress
+ION80 TCGAAGGCAGGC IonXpress
+ION81 CCTGCCATTCGC IonXpress
+ION82 TTGGCATCTC IonXpress
+ION83 CTAGGACATTC IonXpress
+ION84 CTTCCATAAC IonXpress
+ION85 CCAGCCTCAAC IonXpress
+ION86 CTTGGTTATTC IonXpress
+ION87 TTGGCTGGAC IonXpress
+ION88 CCGAACACTTC IonXpress
+ION89 TCCTGAATCTC IonXpress
+ION90 CTAACCACGGC IonXpress
+ION91 CGGAAGGATGC IonXpress
+ION92 CTAGGAACCGC IonXpress
+ION93 CTTGTCCAATC IonXpress
+ION94 TCCGACAAGC IonXpress
+ION95 CGGACAGATC IonXpress
+ION96 TTAAGCGGTC IonXpress
+NGEBC1 AACCAG NuGen_Encore
+NGEBC2 TGGTGA NuGen_Encore
+NGEBC3 AGTGAG NuGen_Encore
+NGEBC4 GCACTA NuGen_Encore
+NGEBC5 ACCTCA NuGen_Encore
+NGEBC6 GTGCTT NuGen_Encore
+NGEBC7 AAGCCT NuGen_Encore
+NGEBC8 GTCGTA NuGen_Encore
+NGEBC9 AAGAGG NuGen_Encore
+NGEBC10 GGAGAA NuGen_Encore
+NGEBC11 AGCATG NuGen_Encore
+NGEBC12 GAGTCA NuGen_Encore
+NGEBC13 CGTAGA NuGen_Encore
+NGEBC14 TCAGAG NuGen_Encore
+NGEBC15 CACAGT NuGen_Encore
+NGEBC16 TTGGCA NuGen_Encore
+N701 TAAGGCGA Nextera_XT1
+N702 CGTACTAG Nextera_XT1
+N703 AGGCAGAA Nextera_XT1
+N704 TCCTGAGC Nextera_XT1
+N705 GGACTCCT Nextera_XT1
+N706 TAGGCATG Nextera_XT1
+N707 CTCTCTAC Nextera_XT1
+N708 CAGAGAGG Nextera_XT1
+N709 GCTACGCT Nextera_XT1
+N710 CGAGGCTG Nextera_XT1
+N711 AAGAGGCA Nextera_XT1
+N712 GTAGAGGA Nextera_XT1
+A701 ATCACGAC Nextera_TSACP1
+A702 ACAGTGGT Nextera_TSACP1
+A703 CAGATCCA Nextera_TSACP1
+A704 ACAAACGG Nextera_TSACP1
+A705 ACCCAGCA Nextera_TSACP1
+A706 AACCCCTC Nextera_TSACP1
+A707 CCCAACCT Nextera_TSACP1
+A708 CACCACAC Nextera_TSACP1
+A709 GAAACCCA Nextera_TSACP1
+A710 TGTGACCA Nextera_TSACP1
+A711 AGGGTCAA Nextera_TSACP1
+A712 AGGAGTGG Nextera_TSACP1
+SSXT96-1 AACGTGAT SureSelect_XT_96_barcodes
+SSXT96-2 AAACATCG SureSelect_XT_96_barcodes
+SSXT96-3 ATGCCTAA SureSelect_XT_96_barcodes
+SSXT96-4 AGTGGTCA SureSelect_XT_96_barcodes
+SSXT96-5 ACCACTGT SureSelect_XT_96_barcodes
+SSXT96-6 ACATTGGC SureSelect_XT_96_barcodes
+SSXT96-7 CAGATCTG SureSelect_XT_96_barcodes
+SSXT96-8 CATCAAGT SureSelect_XT_96_barcodes
+SSXT96-9 CGCTGATC SureSelect_XT_96_barcodes
+SSXT96-10 ACAAGCTA SureSelect_XT_96_barcodes
+SSXT96-11 CTGTAGCC SureSelect_XT_96_barcodes
+SSXT96-12 AGTACAAG SureSelect_XT_96_barcodes
+SSXT96-13 AACAACCA SureSelect_XT_96_barcodes
+SSXT96-14 AACCGAGA SureSelect_XT_96_barcodes
+SSXT96-15 AACGCTTA SureSelect_XT_96_barcodes
+SSXT96-16 AAGACGGA SureSelect_XT_96_barcodes
+SSXT96-17 AAGGTACA SureSelect_XT_96_barcodes
+SSXT96-18 ACACAGAA SureSelect_XT_96_barcodes
+SSXT96-19 ACAGCAGA SureSelect_XT_96_barcodes
+SSXT96-20 ACCTCCAA SureSelect_XT_96_barcodes
+SSXT96-21 ACGCTCGA SureSelect_XT_96_barcodes
+SSXT96-22 ACGTATCA SureSelect_XT_96_barcodes
+SSXT96-23 ACTATGCA SureSelect_XT_96_barcodes
+SSXT96-24 AGAGTCAA SureSelect_XT_96_barcodes
+SSXT96-25 AGATCGCA SureSelect_XT_96_barcodes
+SSXT96-26 AGCAGGAA SureSelect_XT_96_barcodes
+SSXT96-27 AGTCACTA SureSelect_XT_96_barcodes
+SSXT96-28 ATCCTGTA SureSelect_XT_96_barcodes
+SSXT96-29 ATTGAGGA SureSelect_XT_96_barcodes
+SSXT96-30 CAACCACA SureSelect_XT_96_barcodes
+SSXT96-31 CAAGACTA SureSelect_XT_96_barcodes
+SSXT96-32 CAATGGAA SureSelect_XT_96_barcodes
+SSXT96-33 CACTTCGA SureSelect_XT_96_barcodes
+SSXT96-34 CAGCGTTA SureSelect_XT_96_barcodes
+SSXT96-35 CATACCAA SureSelect_XT_96_barcodes
+SSXT96-36 CCAGTTCA SureSelect_XT_96_barcodes
+SSXT96-37 CCGAAGTA SureSelect_XT_96_barcodes
+SSXT96-38 CCGTGAGA SureSelect_XT_96_barcodes
+SSXT96-39 CCTCCTGA SureSelect_XT_96_barcodes
+SSXT96-40 CGAACTTA SureSelect_XT_96_barcodes
+SSXT96-41 CGACTGGA SureSelect_XT_96_barcodes
+SSXT96-42 CGCATACA SureSelect_XT_96_barcodes
+SSXT96-43 CTCAATGA SureSelect_XT_96_barcodes
+SSXT96-44 CTGAGCCA SureSelect_XT_96_barcodes
+SSXT96-45 CTGGCATA SureSelect_XT_96_barcodes
+SSXT96-46 GAATCTGA SureSelect_XT_96_barcodes
+SSXT96-47 GACTAGTA SureSelect_XT_96_barcodes
+SSXT96-48 GAGCTGAA SureSelect_XT_96_barcodes
+SSXT96-49 GATAGACA SureSelect_XT_96_barcodes
+SSXT96-50 GCCACATA SureSelect_XT_96_barcodes
+SSXT96-51 GCGAGTAA SureSelect_XT_96_barcodes
+SSXT96-52 GCTAACGA SureSelect_XT_96_barcodes
+SSXT96-53 GCTCGGTA SureSelect_XT_96_barcodes
+SSXT96-54 GGAGAACA SureSelect_XT_96_barcodes
+SSXT96-55 GGTGCGAA SureSelect_XT_96_barcodes
+SSXT96-56 GTACGCAA SureSelect_XT_96_barcodes
+SSXT96-57 GTCGTAGA SureSelect_XT_96_barcodes
+SSXT96-58 GTCTGTCA SureSelect_XT_96_barcodes
+SSXT96-59 GTGTTCTA SureSelect_XT_96_barcodes
+SSXT96-60 TAGGATGA SureSelect_XT_96_barcodes
+SSXT96-61 TATCAGCA SureSelect_XT_96_barcodes
+SSXT96-62 TCCGTCTA SureSelect_XT_96_barcodes
+SSXT96-63 TCTTCACA SureSelect_XT_96_barcodes
+SSXT96-64 TGAAGAGA SureSelect_XT_96_barcodes
+SSXT96-65 TGGAACAA SureSelect_XT_96_barcodes
+SSXT96-66 TGGCTTCA SureSelect_XT_96_barcodes
+SSXT96-67 TGGTGGTA SureSelect_XT_96_barcodes
+SSXT96-68 TTCACGCA SureSelect_XT_96_barcodes
+SSXT96-69 AACTCACC SureSelect_XT_96_barcodes
+SSXT96-70 AAGAGATC SureSelect_XT_96_barcodes
+SSXT96-71 AAGGACAC SureSelect_XT_96_barcodes
+SSXT96-72 AATCCGTC SureSelect_XT_96_barcodes
+SSXT96-73 AATGTTGC SureSelect_XT_96_barcodes
+SSXT96-74 ACACGACC SureSelect_XT_96_barcodes
+SSXT96-75 ACAGATTC SureSelect_XT_96_barcodes
+SSXT96-76 AGATGTAC SureSelect_XT_96_barcodes
+SSXT96-77 AGCACCTC SureSelect_XT_96_barcodes
+SSXT96-78 AGCCATGC SureSelect_XT_96_barcodes
+SSXT96-79 AGGCTAAC SureSelect_XT_96_barcodes
+SSXT96-80 ATAGCGAC SureSelect_XT_96_barcodes
+SSXT96-81 ATCATTCC SureSelect_XT_96_barcodes
+SSXT96-82 ATTGGCTC SureSelect_XT_96_barcodes
+SSXT96-83 CAAGGAGC SureSelect_XT_96_barcodes
+SSXT96-84 CACCTTAC SureSelect_XT_96_barcodes
+SSXT96-85 CCATCCTC SureSelect_XT_96_barcodes
+SSXT96-86 CCGACAAC SureSelect_XT_96_barcodes
+SSXT96-87 CCTAATCC SureSelect_XT_96_barcodes
+SSXT96-88 CCTCTATC SureSelect_XT_96_barcodes
+SSXT96-89 CGACACAC SureSelect_XT_96_barcodes
+SSXT96-90 CGGATTGC SureSelect_XT_96_barcodes
+SSXT96-91 CTAAGGTC SureSelect_XT_96_barcodes
+SSXT96-92 GAACAGGC SureSelect_XT_96_barcodes
+SSXT96-93 GACAGTGC SureSelect_XT_96_barcodes
+SSXT96-94 GAGTTAGC SureSelect_XT_96_barcodes
+SSXT96-95 GATGAATC SureSelect_XT_96_barcodes
+SSXT96-96 GCCAAGAC SureSelect_XT_96_barcodes
+NGOTEBC1 CACGTCTANNNNNN Nugen_Ovation_Target_Enrichment
+NGOTEBC2 AGCTAGTGNNNNNN Nugen_Ovation_Target_Enrichment
+NGOTEBC3 ACTATCGCNNNNNN Nugen_Ovation_Target_Enrichment
+NGOTEBC4 GCGTATCANNNNNN Nugen_Ovation_Target_Enrichment
+NGOTEBC5 ACTCTCCANNNNNN Nugen_Ovation_Target_Enrichment
+NGOTEBC6 CGTCCATTNNNNNN Nugen_Ovation_Target_Enrichment
+NGOTEBC7 AGCCGTAANNNNNN Nugen_Ovation_Target_Enrichment
+NGOTEBC8 GAGTAGAGNNNNNN Nugen_Ovation_Target_Enrichment
+
diff --git a/clipper/merge-fifo b/clipper/merge-fifo
new file mode 100755
index 0000000..dd42261
--- /dev/null
+++ b/clipper/merge-fifo
@@ -0,0 +1,54 @@
+#!/usr/bin/perl
+
+use Getopt::Long;
+use IO::Select;
+use IO::File;
+
+die "usage: $0 FIFO-LIST
+
+This allows you to merge multiple fifo outputs without causing a read
+block on one to prevent reading from the other (deadlock!)
+
+Reads from ANY of the fifos in the list that are
+available. If one blocks in the middle of a line, for
+example, this program will not block.
+" unless @ARGV;
+
+my $i = 0;
+my @findex;
+my @fbuf;
+my $sel= IO::Select->new();
+for my $file (@ARGV) {
+ open($fin[$i],$file) || die "$file: $!\n";;
+ $fin[$i]->blocking(0);
+ $findex[fileno($fin[$i])]=$i;
+ $sel->add($fin[$i]);
+ ++$i;
+}
+
+my $closed = 0;
+while ( @ready = $sel->can_read() ) {
+ for my $h (@ready) {
+ my $ret=sysread($h, $char, 1);
+
+ if ($ret) {
+ my $fn;
+ $fbuf[$fn=fileno($h)] .= $char;
+ if ($char eq "\n") {
+ print $fbuf[$fn];
+ $fbuf[$fn]="";
+ }
+ } else {
+ $sel->remove($h);
+ if (!$h->close()) {
+ die "ERROR during close: $!\n";
+ } else {
+ ++$closed;
+ }
+ }
+ }
+}
+
+if ($closed != @ARGV) {
+ die "ERROR during merge\n";
+}
diff --git a/clipper/mirna-quant.cpp b/clipper/mirna-quant.cpp
new file mode 100644
index 0000000..d609dbc
--- /dev/null
+++ b/clipper/mirna-quant.cpp
@@ -0,0 +1,710 @@
+#include <ctype.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <errno.h>
+#include <assert.h>
+#include <math.h>
+#include <stdarg.h>
+#include <sys/stat.h>
+#include <search.h>
+#include <limits.h>
+#include <sparsehash/sparse_hash_map> // or sparse_hash_set, dense_hash_map, ...
+#include <string>
+
+typedef struct line {
+ char *s; int n; size_t a;
+} line;
+
+struct fq {
+ line id;
+ line seq;
+ line com;
+ line qual;
+};
+
+class to_merge {
+public:
+ std::string sseq;
+ int cnt;
+ to_merge(std::string s, int c) {sseq=s; cnt=c;};
+ to_merge() {};
+};
+
+class ent {
+public:
+ std::string seq;
+ int cnt;
+
+ ent(const std::string &s, const int &c) { seq=s; cnt=c; };
+
+ static bool comp_cnt (const ent &a, const ent &b) {
+ return a.cnt < b.cnt;
+ };
+};
+class idseq {
+public:
+ std::string id;
+ std::string seq;
+
+ idseq(const std::string &s, const std::string &i) { seq=s; id=i; };
+};
+
+// get file extension
+const char *fext(const char *f);
+FILE *gzopen(const char *f, const char *m, bool*isgz);
+
+int read_line(FILE *in, struct line &l); // 0=done, 1=ok, -1=err+continue
+int read_fq(FILE *in, int &lno, struct fq *fq); // 0=done, 1=ok, -1=err+continue
+int read_fa(FILE *in, int &lno, struct fq *fq); // 0=done, 1=ok, -1=err+continue
+#ifdef _WIN32
+ ssize_t getline(char **lineptr, size_t *n, FILE *stream);
+#endif
+void usage(FILE *f);
+double quantile(std::vector<int> vec, double p);
+#define meminit(l) (memset(&l,0,sizeof(l)))
+FILE *openordie(const char *nam, const char * mode, FILE *def, const char *errstr, bool *isgz=NULL);
+
+std::string string_format(const std::string &fmt, ...);
+bool file_newer(const char *f1, const char *f2);
+std::vector<std::string> split(char* str,const char* delim);
+
+#define MAX_EX 4
+
+int main (int argc, char **argv) {
+ char *in = NULL;
+ char *out = NULL;
+ char *stat = NULL;
+ char *ref = NULL;
+ char *pat = NULL;
+ char *vexcl[MAX_EX] = {NULL};
+
+ int excl_n = 0;
+ int targ = 1000;
+ int thr = -1;
+ int mergs = 1;
+ int mergc = 0;
+ int mergn = 0;
+ bool debug = false;
+
+ char c;
+ while ( (c = getopt (argc, argv, "-hdi:o:s:p:r:n:t:x:m:")) != -1) {
+ switch (c) {
+ case '\1':
+ if (!in)
+ in=optarg;
+ else {
+ fprintf(stderr, "Unknown parameter '%s'.\n", optarg);
+ exit(1);
+ }
+ case 'i':
+ in = optarg; break;
+ case 'o':
+ out = optarg; break;
+ case 's':
+ stat = optarg; break;
+ case 'm':
+ mergs = atoi(optarg); break;
+ case 'r':
+ ref = optarg; break;
+ case 'p':
+ pat = optarg; break;
+ case 'x':
+ vexcl[excl_n++] = optarg; break;
+ case 'n':
+ targ = atoi(optarg); break;
+ case 't':
+ thr = atoi(optarg); break;
+ case 'd':
+ debug=true; break;
+ case 'h':
+ usage(stdout);
+ exit(0);
+ case '?':
+ if (strchr("iosrn", optopt))
+ fprintf (stderr, "Option -%c requires an argument.\n", optopt);
+ else if (isprint(optopt))
+ fprintf (stderr, "Unknown option `-%c'.\n", optopt);
+ else
+ fprintf (stderr,
+ "Unknown option character `\\x%x'.\n",
+ optopt);
+ usage(stderr);
+ return 1;
+ }
+ }
+
+ FILE *fin, *fout, *fstat, *fref = NULL, *fpat=NULL, *ftmp=NULL;
+ bool fingz;
+ fin = openordie(in, "r", stdin, "Error opening file '%s': %s\n", &fingz);
+ fout = openordie(out, "w", stdout, "Error writing to file '%s': %s\n");
+ fstat = openordie(stat, "w", stderr, "Error writing to file '%s': %s\n");
+
+ if (ref)
+ fref = openordie(ref, "r", NULL, "Error opening file '%s': %s\n");
+
+ if (pat)
+ fpat = openordie(pat, "r", NULL, "Error opening file '%s': %s\n");
+
+ google::sparse_hash_map<std::string, std::string> mmap;
+
+
+ int read_ok, nref=0, nrec = 0, lno = 0, npat=0; struct fq fq; meminit(fq);
+
+ if (fref) {
+ // read fasta referernce
+ lno = 0;
+ while (read_ok=read_fa(fref, lno, &fq)) {
+ ++nref;
+ char * p=strchr(fq.id.s, ' ');
+ if (p) *p='\0';
+ mmap[fq.seq.s] = fq.id.s+1;
+ }
+ fprintf(fstat,"nrefseq\t%d\n", nref);
+ }
+
+ std::vector<idseq> pvec;
+ if (fpat) {
+ // patterns to search and exclude
+ lno = 0;
+ while (read_ok=read_fa(fpat, lno, &fq)) {
+ ++npat;
+ char * p=strchr(fq.id.s, ' ');
+ if (p) *p='\0';
+ idseq np(fq.seq.s,fq.id.s+1);
+ pvec.push_back(np);
+ }
+ fprintf(fstat,"npatseq\t%d\n", npat);
+ }
+
+
+ // map all sequences to the hash
+ google::sparse_hash_map<std::string, int> pmap;
+ lno = 0;
+ while (read_ok=read_fq(fin, lno, &fq)) {
+ ++nrec;
+// fprintf(stderr, "read %d '%s'\n", nrec, fq.seq.s);
+ if (fq.seq.n > 1) {
+ ++pmap[fq.seq.s];
+ }
+ }
+ if (thr<0) thr = (int)(log(1+nrec)/log(10));
+
+ std::vector<int> vec;
+ std::vector<int> lvec;
+ std::vector<ent> lis;
+
+ std::string tmp;
+ if (excl_n) {
+ // make a temp file
+ if (in) {
+ tmp=string_format("%s.tmp.fq", in);
+ } else {
+ tmp=string_format("/tmp/mirna-quant-%d.tmp.fq", getpid());
+ }
+ ftmp = openordie(tmp.c_str(), "w", NULL, "Error opening file '%s': %s\n");
+ }
+
+ if (npat > 0 || excl_n) {
+ // fill mmap with pattern matches, and fill tmp fastq with sequences
+ std::vector<idseq>::iterator pit;
+ google::sparse_hash_map<std::string,int>::iterator it = pmap.begin();
+ while (it != pmap.end()) {
+ if (excl_n) {
+ fputs("@\n", ftmp);
+ fputs(it->first.c_str(),ftmp);
+ fputs("\n+\n", ftmp);
+ int i;
+ for(i=0;i<it->first.size();++i) {
+ fputc('h',ftmp);
+ }
+ fputc('\n', ftmp);
+ }
+ if (npat > 0) {
+ for (pit=pvec.begin(); pit != pvec.end(); ++pit) {
+ if (it->first.find(pit->seq) != std::string::npos) {
+ mmap[it->first]=pit->id;
+ break;
+ }
+ }
+ }
+ ++it;
+ }
+ }
+
+ if (excl_n) {
+ int i;
+ for (i=0;i<excl_n;++i) {
+ char *excl=vexcl[i];
+ std::string ebwt = string_format("%s.1.ebwt", excl);
+ std::string cmd;
+ int ret;
+ if (file_newer(excl,ebwt.c_str())) {
+ cmd=string_format("bowtie-build %s %s > /dev/null", excl, excl).c_str();
+ fprintf(stderr,"+%s\n",cmd.c_str());
+ if (ret=system(cmd.c_str())) {
+ exit(ret >> 8);
+ }
+ }
+ cmd = string_format("bowtie --sam-nohead -S %s %s 2> /dev/null", excl, tmp.c_str());
+ fprintf(stderr,"+%s\n",cmd.c_str());
+ FILE *aln;
+ if (!(aln=popen(cmd.c_str(),"r"))) {
+ fprintf(stderr, "Can't run bowtie: $!\n", strerror(errno));
+ exit(1);
+ }
+ struct line l; meminit(l);
+ while (read_line(aln, l)>0) {
+ std::vector<std::string> v = split(l.s,"\t");
+ if (v[9].size() > 17) {
+ if (atoi(v[3].c_str()) > 0) {
+ // add to mmap
+ mmap[v[9]]=v[2];
+ }
+ }
+ }
+ unlink(tmp.c_str());
+ }
+ }
+
+ if (mergs > 0) {
+ if (debug) fprintf(stderr, "merge\n");
+ google::sparse_hash_map<std::string,int>::iterator it = pmap.begin();
+ google::sparse_hash_map<std::string,std::string>::iterator mit;
+ std::string sseq;
+ std::string oseq;
+ std::vector<to_merge> merge_list;
+ while (it != pmap.end()) {
+ int i;
+ for (i=1;i<=mergs;++i) {
+ sseq = it->first;
+ if (sseq.length() > i) {
+ oseq=sseq;
+ sseq.erase(sseq.length()-i);
+ if (debug) fprintf(stderr, "merge %s %s\n", oseq.c_str(), sseq.c_str());
+
+ // search for "close enough" ref seq
+ mit = mmap.find(sseq);
+ // merge named sequences
+ if (mit != mmap.end()) {
+ // not safe to search map while iterating!
+ if (debug) fprintf(stderr, "found: %d+%d\n", it->second, (int)pmap[oseq]);
+ ++mergn;
+ mergc+=it->second;
+ merge_list.push_back(to_merge(sseq, it->second));
+ break;
+ }
+ }
+ }
+ ++it;
+ }
+ int i;
+ for (i=0;i<merge_list.size();++i) {
+ pmap[merge_list[i].sseq]+=merge_list[i].cnt;
+ }
+ }
+
+ int tot = 0;
+ // build lists
+ google::sparse_hash_map<std::string,int>::iterator it = pmap.begin();
+ while (it != pmap.end()) {
+ ent e(it->first,it->second);
+ lvec.push_back(it->first.size());
+ if (it->second >= thr) {
+ vec.push_back(it->second);
+ tot+=it->second;
+ }
+ lis.push_back(e);
+ ++it;
+ }
+
+ std::sort(vec.begin(), vec.end());
+ std::sort(lvec.begin(), lvec.end());
+ std::sort(lis.begin(), lis.end(), ent::comp_cnt);
+
+ fprintf(fstat, "reads\t%d\n", nrec);
+ fprintf(fstat, "threshold\t%d\n", thr);
+ fprintf(fstat, "pass num\t%d\n", (int)vec.size());
+ fprintf(fstat, "pass tot\t%d\n", tot);
+
+ if (mergc>0) fprintf(fstat, "merge tot\t%d\n", mergc);
+ if (mergn>0) fprintf(fstat, "merge num\t%d\n", mergn);
+
+ if (vec.size() == 0) {
+ exit(0);
+ }
+
+ int q1=(int)quantile(vec,.25);
+ int q2=(int)quantile(vec,.50);
+ double q3=quantile(vec,.75);
+ int q4=(int)quantile(vec,1);
+
+ int lq0=(int)quantile(lvec,0);
+ int lq1=(int)quantile(lvec,.25);
+ int lq2=(int)quantile(lvec,.50);
+ int lq3=(int)quantile(lvec,.75);
+ int lq4=(int)quantile(lvec,1);
+
+ double norm = ((double)targ)/q3;
+ if (targ)
+ fprintf(fstat, "q3 target\t%d\n", targ);
+
+ if (mergs)
+ fprintf(fstat, "allow mismatch\t%d\n", mergs);
+
+ fprintf(fstat, "cnt q1\t%d\n", q1);
+ fprintf(fstat, "cnt med\t%d\n", q2);
+ fprintf(fstat, "cnt q3\t%d\n", (int) q3);
+ fprintf(fstat, "cnt max\t%d\n", q4);
+
+ fprintf(fstat, "len min\t%d\n", lq0);
+ fprintf(fstat, "len q1\t%d\n", lq1);
+ fprintf(fstat, "len med\t%d\n", lq2);
+ fprintf(fstat, "len q3\t%d\n", lq3);
+ fprintf(fstat, "len max\t%d\n", lq4);
+
+ int i = 0;
+ std::vector<ent>::iterator vit;
+ for (vit=(lis.end()-1); vit>=lis.begin();--vit) {
+ ++i;
+ std::string anno;
+ google::sparse_hash_map<std::string,std::string>::iterator mit = mmap.find(vit->seq);
+ if (mit != mmap.end()) {
+ anno=mit->second;
+ }
+ fprintf(fstat, "top %d\t%d\t%s\t%s\n", i, vit->cnt, vit->seq.c_str(), anno.c_str());
+ if (i >= 10) break;
+ }
+
+ google::sparse_hash_map<std::string,std::string>::iterator fn;
+ std::string seq;
+ int ncnt, idf;
+ for (vit=(lis.end()-1); vit>=lis.begin();--vit) {
+ if (vit->cnt <= thr) {
+ break;
+ }
+ seq=vit->seq;
+
+ std::string anno;
+ // merge map
+ google::sparse_hash_map<std::string,std::string>::iterator mit = mmap.find(seq);
+ if (mit != mmap.end()) {
+ anno=mit->second;
+ }
+ ncnt = (int) (norm * (double) vit->cnt);
+ fprintf(fout, "%s\t%d\t%d\t%s\n", seq.c_str(), vit->cnt, ncnt, anno.c_str());
+ }
+
+}
+
+////////////// pasted library stuff ////////////////
+
+double quantile(std::vector<int> vec, double p) {
+ int l = vec.size();
+ double t = ((double)l-1)*p;
+ int it = (int) t;
+ int v=vec[it];
+ if (t > (double)it) {
+ return (v + (t-it) * (vec[it+1] - v));
+ } else {
+ return v;
+ }
+}
+
+FILE *openordie(const char *nam, const char * mode, FILE *def, const char *errstr, bool *isgz) {
+ FILE *r;
+ if (!nam && def) r = def;
+ else {
+ if (isgz) {
+ r = gzopen(nam, mode, isgz);
+ } else {
+ r = fopen(nam, mode);
+ }
+ if (!r) {
+ fprintf(stderr, errstr,nam, strerror(errno));
+ exit(1);
+ }
+ }
+ return r;
+}
+
+
+#define comp(c) ((c)=='A'?'T':(c)=='a'?'t':(c)=='C'?'G':(c)=='c'?'g':(c)=='G'?'C':(c)=='g'?'c':(c)=='T'?'A':(c)=='t'?'a':(c))
+void revcomp(struct fq *d, struct fq *s) {
+ if (!d->seq.s) {
+ d->seq.s=(char *) malloc(d->seq.a=s->seq.n);
+ d->qual.s=(char *) malloc(d->qual.a=s->qual.n);
+ } else if (d->seq.a < s->seq.n) {
+ d->seq.s=(char *) realloc(s->seq.s, d->seq.a=s->seq.n);
+ d->qual.s=(char *) realloc(s->qual.s, d->qual.a=s->qual.n);
+ }
+ int i;
+ for (i=0;i<s->seq.n/2;++i) {
+ char b=s->seq.s[i];
+ char q=s->qual.s[i];
+ //printf("%d: %c, %c\n", i, comp(s->seq.s[s->seq.n-i-1]), s->qual.s[s->qual.n-i-1]);
+ d->seq.s[i]=comp(s->seq.s[s->seq.n-i-1]);
+ d->qual.s[i]=s->qual.s[s->qual.n-i-1];
+ //printf("%d: %c, %c\n", s->seq.n-i-1, comp(b), q);
+ d->seq.s[s->seq.n-i-1]=comp(b);
+ d->qual.s[s->seq.n-i-1]=q;
+ }
+ if (s->seq.n % 2) {
+ //printf("%d: %c, %c\n", 1+s->seq.n/2, comp(s->seq.s[s->seq.n/2]));
+ d->seq.s[s->seq.n/2] = comp(s->seq.s[s->seq.n/2]);
+ d->qual.s[s->seq.n/2] = s->qual.s[s->seq.n/2];
+ }
+ d->seq.n=s->seq.n;
+ d->qual.n=s->qual.n;
+}
+
+int read_line(FILE *in, struct line &l) {
+ l.n = getline(&l.s, &l.a, in);
+ if (l.n > 1 && l.s[l.n-1] == '\n' && l.s[l.n-2] == '\r') {
+ --l.n;
+ l.s[l.n-1] = '\n';
+ l.s[l.n] = '\0';
+ }
+ return l.n;
+}
+
+int read_fa(FILE *in, int &lno, struct fq *fa) {
+// note: this only reads one line of sequence!
+ read_line(in, fa->id);
+ read_line(in, fa->seq);
+ lno+=2;
+ if (fa->seq.n <= 0)
+ return 0;
+ if (fa->id.s[0] != '>') {
+ fprintf(stderr, "Malformed fasta record at line %d\n", lno+1);
+ return -1;
+ }
+ fa->seq.s[--fa->seq.n] = '\0';
+ fa->id.s[--fa->id.n] = '\0';
+}
+
+int read_fq(FILE *in, int &lno, struct fq *fq) {
+ read_line(in, fq->id);
+ read_line(in, fq->seq);
+ read_line(in, fq->com);
+ read_line(in, fq->qual);
+ lno+=4;
+ if (fq->qual.n <= 0)
+ return 0;
+ if (fq->id.s[0] != '@' || fq->com.s[0] != '+' || fq->seq.n != fq->qual.n) {
+ if (fq->seq.n) fq->seq.s[--fq->seq.n] = '\0';
+ if (fq->id.n) fq->id.s[--fq->id.n] = '\0';
+ if (fq->com.n) fq->com.s[--fq->com.n] = '\0';
+ if (fq->qual.n) fq->qual.s[--fq->qual.n] = '\0';
+ fprintf(stderr, "Malformed fastq record at line %d\n", lno+1);
+ return -1;
+ }
+ // chomp
+ fq->seq.s[--fq->seq.n] = '\0';
+ fq->qual.s[--fq->qual.n] = '\0';
+ return 1;
+}
+
+void usage(FILE *f) {
+ fputs(
+"Usage: mirna-quant [options] [reads.fq]\n"
+"\n"
+"Computes counts of miRNA species.\n"
+"\n"
+"Options and (defaults):\n"
+"\n"
+"-o FIL Output file (stdout)\n"
+"-i FIL Input file (stdin)\n"
+"-s FIL Stats file (stderr)\n"
+"-r FIL miRNA reference fasta (none)\n"
+"-x FIL Annot via alignment, ie: rRNA (none)\n"
+"-n INT Upper quartile normalize with target (1000)\n"
+"-t INT Threshold (log10(record count))\n"
+"-m INT Combine known (-r) seqs with up to INT mismatches\n"
+"\n"
+ ,f);
+}
+
+/* getline.c -- Replacement for GNU C library function getline
+
+Copyright (C) 1993 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 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., 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+/* Written by Jan Brittenson, bson at gnu.ai.mit.edu. */
+
+#include <sys/types.h>
+#include <stdio.h>
+#include <assert.h>
+#include <stdlib.h>
+
+/* Read up to (and including) a TERMINATOR from STREAM into *LINEPTR
+ + OFFSET (and null-terminate it). *LINEPTR is a pointer returned from
+ malloc (or NULL), pointing to *N characters of space. It is realloc'd
+ as necessary. Return the number of characters read (not including the
+ null terminator), or -1 on error or EOF. */
+
+int getstr (char ** lineptr, size_t *n, FILE * stream, char terminator, int offset)
+{
+ int nchars_avail; /* Allocated but unused chars in *LINEPTR. */
+ char *read_pos; /* Where we're reading into *LINEPTR. */
+ int ret;
+
+ if (!lineptr || !n || !stream)
+ return -1;
+
+ if (!*lineptr)
+ {
+ *n = 64;
+ *lineptr = (char *) malloc (*n);
+ if (!*lineptr)
+ return -1;
+ }
+
+ nchars_avail = *n - offset;
+ read_pos = *lineptr + offset;
+
+ for (;;)
+ {
+ register int c = getc (stream);
+
+ /* We always want at least one char left in the buffer, since we
+ always (unless we get an error while reading the first char)
+ NUL-terminate the line buffer. */
+
+ assert(*n - nchars_avail == read_pos - *lineptr);
+ if (nchars_avail < 1)
+ {
+ if (*n > 64)
+ *n *= 2;
+ else
+ *n += 64;
+
+ nchars_avail = *n + *lineptr - read_pos;
+ *lineptr = (char *) realloc (*lineptr, *n);
+ if (!*lineptr)
+ return -1;
+ read_pos = *n - nchars_avail + *lineptr;
+ assert(*n - nchars_avail == read_pos - *lineptr);
+ }
+
+ if (c == EOF || ferror (stream))
+ {
+ /* Return partial line, if any. */
+ if (read_pos == *lineptr)
+ return -1;
+ else
+ break;
+ }
+
+ *read_pos++ = c;
+ nchars_avail--;
+
+ if (c == terminator)
+ /* Return the line. */
+ break;
+ }
+
+ /* Done - NUL terminate and return the number of chars read. */
+ *read_pos = '\0';
+
+ ret = read_pos - (*lineptr + offset);
+ return ret;
+}
+
+#ifdef _WIN32
+ssize_t getline(char **lineptr, size_t *n, FILE *stream)
+{
+ return getstr(lineptr, n, stream, '\n', 0);
+}
+#endif
+
+std::string string_format(const std::string &fmt, ...) {
+ int n, size=100;
+ std::string str;
+ va_list ap;
+ while (1) {
+ str.resize(size);
+ va_start(ap, fmt);
+ int n = vsnprintf((char *)str.c_str(), size, fmt.c_str(), ap);
+ va_end(ap);
+ if (n > -1 && n < size)
+ return str;
+ if (n > -1)
+ size=n+1;
+ else
+ size*=2;
+ }
+}
+
+bool file_newer(const char *f1, const char *f2) {
+ struct stat st1, st2;
+ st1.st_mtime = st2.st_mtime = 0;
+ stat(f1, &st1);
+ stat(f2, &st2);
+ return (st1.st_mtime > st2.st_mtime);
+}
+
+
+std::vector<std::string> split(char* str,const char* delim)
+{
+ char* token = strtok(str,delim);
+ std::vector<std::string> result;
+ while(token != NULL)
+ {
+ result.push_back(token);
+ token = strtok(NULL,delim);
+ }
+ return result;
+}
+
+int gzclose(FILE *f, bool isgz) {
+ return isgz ? pclose(f) : fclose(f);
+}
+
+FILE *gzopen(const char *f, const char *m, bool*isgz) {
+ // maybe use zlib some day?
+ FILE *h;
+ if (!strcmp(fext(f),".gz")) {
+ char *tmp=(char *)malloc(strlen(f)+100);
+ if (strchr(m,'w')) {
+ strcpy(tmp, "gzip --rsyncable > '");
+ strcat(tmp, f);
+ strcat(tmp, "'");
+ } else {
+ strcpy(tmp, "gunzip -c '");
+ strcat(tmp, f);
+ strcat(tmp, "'");
+ }
+ h = popen(tmp, m);
+ *isgz=1;
+ free(tmp);
+ } else {
+ h = fopen(f, m);
+ *isgz=0;
+ }
+ if (!h) {
+ fprintf(stderr, "Error opening file '%s': %s\n",f, strerror(errno));
+ exit(1);
+ }
+ return h;
+}
+
+const char *fext(const char *f) {
+ const char *x=strrchr(f,'.');
+ return x ? x : "";
+}
+
diff --git a/clipper/mixfastqs.pl b/clipper/mixfastqs.pl
new file mode 100644
index 0000000..28eb0e7
--- /dev/null
+++ b/clipper/mixfastqs.pl
@@ -0,0 +1,18 @@
+use Getopt::Long;
+GetOptions("count=i");
+my ($f1, $f2) = @ARGV;
+open IN1, $f1;
+open IN2, $f2;
+while($i1=<IN1>) {
+ $s1=<IN1>;
+ $c1=<IN1>;
+ $q1=<IN1>;
+ $i2=<IN2>;
+ $s2=<IN2>;
+ $c2=<IN2>;
+ $q2=<IN2>;
+ print $i1, $s1, $c1, $q1, $i2, $s2, $c2, $q2;
+ $c+=2;
+ last if $c >= $opt_count;
+}
+
diff --git a/clipper/multx.sh b/clipper/multx.sh
new file mode 100755
index 0000000..238ea02
--- /dev/null
+++ b/clipper/multx.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+#g++ -g fastq-mcf.c -o fastq-mcf.ex && ./fastq-mcf.ex $*
+g++ -g fastq-multx.c -o fastq-multx.ex && gdb --eval-command=run --args ./fastq-multx.ex $*
diff --git a/clipper/pbi-clean.cpp b/clipper/pbi-clean.cpp
new file mode 100644
index 0000000..31f8b60
--- /dev/null
+++ b/clipper/pbi-clean.cpp
@@ -0,0 +1,279 @@
+///A tutorial about local alignments.
+#include <iostream>
+#include <seqan/align.h>
+//#include <seqan/graph_msa.h>
+//#include <seqan/consensus/consensus_calling.h>
+#include <ctype.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <errno.h>
+#include <assert.h>
+#include <math.h>
+#include <limits.h>
+#include <sys/stat.h>
+
+using namespace seqan;
+
+void revcomp(struct fq *dest, struct fq* src);
+
+struct fq {
+ char *id; int nid; size_t naid;
+ char *seq; int nseq; size_t naseq;
+ char *com; int ncom; size_t nacom;
+ char *qual; int nqual; size_t naqual;
+};
+int read_fq(FILE *in, int rno, struct fq *fq); // 0=done, 1=ok, -1=err+continue
+
+const char *adapter = "TCTCTCTCAACAACAACAACGGAGGAGGAGGAAAAGAGAGAGA";
+
+#define stdev(cnt, sum, ssq) sqrt((((double)cnt)*ssq-pow((double)sum,2)) / ((double)cnt*((double)cnt-1)))
+int quantile(std::vector<int> vec, double p);
+#define strendcmp(hay, nee) strcmp(hay+strlen(hay)-strlen(nee), nee)
+
+int main(int argc, char **argv)
+{
+ if (argc < 2) {
+ fprintf(stderr, "usage: pbi-clean FASTQ > CLEANED\n");
+ exit(1);
+ }
+
+ int al = strlen(adapter);
+ const char *in = argv[1];
+ FILE *fin;
+
+ if (!strendcmp(in,".gz")) {
+ std::string gunz = "gunzip -c '";
+ gunz += in;
+ gunz += "'";
+ fin=popen(gunz.c_str(), "r");
+ } else {
+ fin = !strcmp(in,"-")?stdin:fopen(in,"r");
+ }
+
+ if (!fin) {
+ fprintf(stderr, "%s : %s\n",argv[1],strerror(errno));
+ exit(1);
+ }
+
+ struct fq fq, rc;
+ memset(&fq, 0, sizeof(fq));
+
+ bool read_ok; int nrec=0;
+ Score<int> score(3,-3,-2, -2);
+ std::vector<int> cnt_vec;
+ std::vector<int> len_vec;
+ int cnt_sum=0, cnt_ssq=0, len_sum=0, len_ssq=0;
+ while (read_ok=read_fq(fin, nrec, &fq)) {
+ ++nrec;
+ Align< String<char> > ali;
+ appendValue(rows(ali), adapter);
+ appendValue(rows(ali), fq.seq);
+ LocalAlignmentFinder<> finder(ali);
+ if (fq.nseq > al*1.5) {
+ try {
+ int s;
+ int cnt = 0;
+ while ((s=localAlignment(ali, finder, score, (int)(al*1.8), WatermanEggert()))>0) {
+ int b=clippedBeginPosition(row(ali, 1));
+ int e=clippedEndPosition(row(ali, 1));
+// printf("%d<-->%d\n", b,e);
+ fq.seq[b]='\1';
+ fq.seq[e]='\2';
+ ++cnt;
+ }
+ if (cnt > 0) {
+ cnt = 0;
+ char *b = fq.seq;
+ char *p = fq.seq;
+ char *e = fq.seq+fq.nseq;
+ char *t;
+ // Align< String<DnaQ> > sub;
+ while (p <= e) {
+ if (*p == '\1' || *p =='\0') {
+ char *m = (char *) ((unsigned long)p/2+(unsigned long)b/2);
+ for (t = b; t < p; ++t) {
+ if (*t=='\1' || *t=='\2') {
+ if (t < m) {
+ b=t+1;
+ } else {
+ p=t-1;
+ break;
+ }
+ }
+ }
+ *p = '\0';
+ fq.qual[(p-fq.seq)]='\0';
+ if ((p-b) > al && *b) {
+ // String<DnaQ> dq = b;
+ // assignQualities(dq,fq.qual+(b-fq.seq));
+ // if (cnt % 2 == 1)
+ // dq=DnaStringReverseComplement(dq);
+ // appendValue(rows(sub),dq);
+
+ printf("%s:%d-%d\n", fq.id, (int)(b-fq.seq), (int)(p-fq.seq-1));
+ printf("%s\n", b);
+ printf("+\n");
+ printf("%s\n", fq.qual+(b-fq.seq));
+ len_vec.push_back(p-b);
+ len_ssq+=(p-b)*(p-b);
+ len_sum+=p-b;
+ ++cnt;
+ }
+ ++p;
+ while (p < e && *p != '\2')
+ ++p;
+ p=b=p+1;
+ } else {
+ ++p;
+ }
+ }
+ if (cnt > 1) {
+ /*
+ typedef String<DnaQ> TSequence; // sequence type
+ typedef Align<TSequence,ArrayGaps> TAlign; // align type
+ typedef Row<TAlign>::Type TRow;
+ typedef Iterator<TRow>::Type TIterator;
+ for (unsigned i = 1; i < length(rows(sub)); ++i) {
+ TAlign pw;
+ appendValue(rows(pw),row(sub,i-1));
+ appendValue(rows(pw),row(sub,i));
+ int sc = localAlignment(pw, score);
+ printf("Score: %d\n", sc);
+ ::std::cout << pw << ::std::endl;
+
+ TIterator it = iter(row(pw,0),0);
+ int alEnd = _max(length(row(pw, 0)), length(row(pw, 1)));
+ TIterator itEnd = iter(row(pw,0),alEnd);
+ }*/
+ // globalMsaAlignment(sub, score);
+
+ //computeProfiles(prof, pinfo, sub);
+ }
+ } else {
+ cnt = 1;
+ printf("%s:%d-%d\n", fq.id, 0, fq.nseq-1);
+ printf("%s\n", fq.seq);
+ printf("+\n");
+ printf("%s\n", fq.qual);
+ len_vec.push_back(fq.nseq);
+ len_ssq+=fq.nseq*fq.nseq;
+ len_sum+=fq.nseq;
+ }
+ cnt_vec.push_back(cnt);
+ cnt_ssq+=cnt*cnt;
+ cnt_sum+=cnt;
+// if (cnt_vec.size() > 50) {
+// goto JUMP;
+// }
+ } catch (...) {
+ fprintf(stderr,"Alignment error, line %d\n", nrec*4);
+ }
+ }
+ }
+//JUMP:
+ fprintf(stderr,"reads\t%d\n",nrec);
+ if (len_vec.size() > 0) {
+ std::sort(cnt_vec.begin(), cnt_vec.end());
+ std::sort(len_vec.begin(), len_vec.end());
+ double sd;
+ float mn = cnt_sum/(float)cnt_vec.size();
+ int q1=quantile(len_vec,.25);
+ int q2=quantile(len_vec,.50);
+ int q3=quantile(len_vec,.75);
+ fprintf(stderr,"subreads\t%d\n",cnt_sum);
+ fprintf(stderr,"len max\t%d\n",len_vec[len_vec.size()-1]);
+ if (cnt_vec.size() > 1) {
+ fprintf(stderr,"len mean\t%2.2f\n",(double)len_sum/len_vec.size());
+ sd = stdev(len_vec.size(), len_sum, len_ssq);
+ fprintf(stderr,"len stdev\t%2.2f\n",sd);
+ fprintf(stderr,"len q1\t%d\n",q1);
+ fprintf(stderr,"len q2\t%d\n",q2);
+ fprintf(stderr,"len q3\t%d\n",q3);
+ }
+ fprintf(stderr,"cyc max\t%d\n",cnt_vec[cnt_vec.size()-1]);
+ if (cnt_vec.size() > 1) {
+ int q1=quantile(cnt_vec,.25);
+ int q2=quantile(cnt_vec,.50);
+ int q3=quantile(cnt_vec,.75);
+ fprintf(stderr,"cyc mean\t%2.2f\n",(double)cnt_sum/cnt_vec.size());
+ sd = stdev(cnt_vec.size(), cnt_sum, cnt_ssq);
+ fprintf(stderr,"cyc stdev\t%2.2f\n",sd);
+ fprintf(stderr,"cyc q1\t%d\n",q1);
+ fprintf(stderr,"cyc q2\t%d\n",q2);
+ fprintf(stderr,"cyc q3\t%d\n",q3);
+ }
+ } else {
+ fprintf(stderr,"subreads\t%d\n",0);
+ }
+
+ return 0;
+}
+
+#define MAXWARN 10
+int read_fq(FILE *in, int rno, struct fq *fq) {
+ static int fq_warncount=0;
+ fq->nid = getline(&fq->id, &fq->naid, in);
+ fq->nseq = getline(&fq->seq, &fq->naseq, in);
+ fq->ncom = getline(&fq->com, &fq->nacom, in);
+ fq->nqual = getline(&fq->qual, &fq->naqual, in);
+ if (fq->nqual <= 0)
+ return 0;
+ if (fq->id[0] != '@' || fq->com[0] != '+' || fq->nseq != fq->nqual) {
+ if (fq_warncount < MAXWARN) {
+ fprintf(stderr, "Malformed fastq record at line %d\n", rno*2+1);
+ ++fq_warncount;
+ }
+ return -1;
+ }
+
+ // chomp
+ fq->id[--fq->nid] = '\0';
+ fq->seq[--fq->nseq] = '\0';
+ fq->qual[--fq->nqual] = '\0';
+ return 1;
+}
+
+#define comp(c) ((c)=='A'?'T':(c)=='a'?'t':(c)=='C'?'G':(c)=='c'?'g':(c)=='G'?'C':(c)=='g'?'c':(c)=='T'?'A':(c)=='t'?'a':(c))
+void revcomp(struct fq *d, struct fq *s) {
+ if (!d->seq) {
+ d->seq=(char *) malloc(d->naseq=s->nseq);
+ d->qual=(char *) malloc(d->naqual=s->nqual);
+ } else if (d->naseq < s->nseq) {
+ d->seq=(char *) realloc(s->seq, d->naseq=s->nseq);
+ d->qual=(char *) realloc(s->qual, d->naqual=s->nqual);
+ }
+ int i;
+ for (i=0;i<s->nseq/2;++i) {
+ char b=s->seq[i];
+ char q=s->qual[i];
+ //printf("%d: %c, %c\n", i, comp(s->seq.s[s->seq.n-i-1]), s->qual.s[s->qual.n-i-1]);
+ d->seq[i]=comp(s->seq[s->nseq-i-1]);
+ d->qual[i]=s->qual[s->nqual-i-1];
+ //printf("%d: %c, %c\n", s->seq.n-i-1, comp(b), q);
+ d->seq[s->nseq-i-1]=comp(b);
+ d->qual[s->nseq-i-1]=q;
+ }
+ if (s->nseq % 2) {
+ //printf("%d: %c, %c\n", 1+s->seq.n/2, comp(s->seq.s[s->seq.n/2]));
+ d->seq[s->nseq/2] = comp(s->seq[s->nseq/2]);
+ d->qual[s->nseq/2] = s->qual[s->nseq/2];
+ }
+ d->nseq=s->nseq;
+ d->nqual=s->nqual;
+}
+
+
+int quantile(std::vector<int> vec, double p) {
+ int l = vec.size();
+ double t = ((double)l-1)*p;
+ int it = (int) t;
+ int v=vec[it];
+ if (t > (double)it) {
+ return v + (t-it) * (vec[it+1] - v);
+ } else {
+ return v;
+ }
+}
+
diff --git a/clipper/qsh b/clipper/qsh
new file mode 100755
index 0000000..f4df932
--- /dev/null
+++ b/clipper/qsh
@@ -0,0 +1,455 @@
+#!/usr/bin/perl
+
+use strict;
+use Getopt::Long;
+use Data::Dumper;
+
+Getopt::Long::Configure(qw(passthrough require_order no_ignore_case));
+
+# TODO: put these in a config file, it can still be perl...for now it's simple enough to edit here
+
+my %nologic = map {($_, 1)} qw(if [ calc echo . alc for export);
+
+# always send to grid engine, no matter how big
+my %wrap = map {($_, 1)} qw(bowtie-build tophat juncsdb bwa cufflinks countannot calc-numaligned fastx_quality_stats);
+
+# never send to grid engine, no matter how big
+my %nowrap = map {($_, 1)} qw(condor_run run-analysis mv grun qpipe ea);
+
+# always run these, regardless of dependencies - still send to grid if needed
+my %nodep = map {($_, 1)} qw();
+
+# this can be condor_run, qsub... whatever you want
+my $grid_engine = 'grun';
+
+# alter default 'big' size and parameter parsing
+my %info = (
+ cp => {big=>'20g'},
+ # input doesn't need to exist, output is calculated from the input
+ gunzip => {big=>'10g', in=>{_noex=>1}, out=>{_eval=>sub{$_[0]=~m/(.*)\.gz$/; return $1}}},
+ gzip => {big=>'20g', in=>{_noex=>1}, out=>{_eval=>sub{$_[0].".gz"}}},
+
+ 'auto-clip.sh' => {out=>{_eval=>sub{$_[0]=~ s/\.(fastq|fq)//; return ($_[0].".qcStats", $_[0].".adapters")}}},
+ bowtie => {big=>'20m'},
+ bwa => {big=>'20m'},
+ tophat => {big=>'10m'},
+ cufflinks => {big=>'10m', in=>{b=>1, r=>1, G=>1}},
+ 'cufflinks0.9.3' => {big=>'10m', in=>{b=>1, r=>1, G=>1}},
+ fastx_quality_stats => {in=>{i=>1}, out=>{o=>1}},
+ samtools => { match => [
+ { pat=>qr/sort\s*(?:-n)?\s+(\S+bam)\s*(\S+)/, post=>'$out[0] .= ".bam"' } ,
+ { pat=>qr/pileup.*\s(\S+[bs]am)/ } ,
+ ] },
+ bwasam => { match => [
+ { pat=>qr/(?:-o \S+\s+)?(?:\S+)\s+(\S+)/, post=>'$out[1] = "$out[0].sam"; $out[0] = "$out[0].bam"'} ,
+ ] },
+ # change to asterisk for dependency globbing
+ 'fastq-multx' => {out=>{o=>sub {s/%/\*/}}, in=>{l=>1, g=>1, B=>1}},
+
+ 'fastq-mcf' => {out=>{o=>1}},
+);
+
+our $VERSION = '0.9.46';
+
+my ($debug, $check, $inline, $verbose, $help, $rules_file, $list, $noexec, $passopts, $waitout, $force);
+
+$| = 1;
+
+$waitout=1; # by default we wait for grid jobs output
+
+GetOptions("DEBUG"=>\$debug, "K"=>\$check, "force"=>\$force, "grid"=>\$grid_engine, "waitout"=>\$waitout, "cmd=s"=>\$inline, "noexec"=>\$noexec, "l"=>\$list, "verbose|v"=>\$verbose, "help"=>\$help, "rules=s"=>\$rules_file) || die usage();
+
+$verbose = 1 if $debug;
+$noexec = 1 if $debug;
+
+$passopts = '-v' if $verbose;
+$passopts .= ' -l' if $list;
+$passopts .= ' -D' if $debug;
+$passopts .= ' -n' if $noexec;
+$passopts .= ' -f' if $force;
+
+if ($help || $ARGV[0] =~ /^-\?/) {
+ print usage();
+ exit 0
+}
+
+sub reptail {
+ my ($f, $r) = @_;
+ $f =~ s/\Q$r\E$//;
+ return $f;
+}
+
+sub repwith {
+ my ($f, $r, $t) = @_;
+ $f =~ s/\Q$r\E/$t/;
+ return $f;
+}
+
+if ($check) {
+ # base executable name
+ my $orig_cmd = shift @ARGV;
+ my $cmd = $orig_cmd;
+ $cmd =~ s/.*\///;
+
+ my $cmd_nv = $cmd;
+ $cmd_nv =~ s/\-[0-9.-]+//;
+ $cmd_nv = $cmd if $cmd_nv !~ /^[\w-]+$/;
+
+
+ my @argv = @ARGV;
+ print STDERR "QSH preex '$orig_cmd @argv'\n" if $debug;
+ for (@argv) {
+ # bash vars come in unexpanded... expand them
+ s/\$(\w+)/$ENV{$1}/g;
+ s/\${(\w+)}/$ENV{$1}/g;
+ s/\${(\w+)\%([^{}]+)}/reptail($ENV{$1},$2)/ge;
+ s/\${(\w+)\/([^\/]+)\/([^{}]+)}/repwith($ENV{$1},$2,$3)/ge;
+ }
+ print STDERR "QSH top '$cmd @argv'\n" if $debug;
+ # don't try to alter non executable lines
+ exit 0 if $cmd !~ /^[\w.-]+$/;
+
+ # don't ever check dependencies, or wrap these commands
+ if ($nologic{$cmd}) {
+ print STDERR "QSH ignore command '$cmd'\n" if $verbose;
+ if ($debug) {
+ print STDERR "QSH debug: '$cmd @ARGV'";
+ }
+ exit 0;
+ }
+
+ print STDERR "QSH check command $cmd\n" if $verbose;
+
+ # walk through arguments, determining inputs, outputs and total sizes
+ my ($opt, %opt, $first, $firstnox, $last, @in, @out, $sz);
+ my $info = $info{$cmd} ? $info{$cmd} : $info{$cmd_nv};
+ for (@argv) {
+ if (s/^--?//) {
+ $opt = $_;
+ next;
+ }
+ if ($opt) {
+ if ($opt eq '<' || $info->{in}->{$opt}) {
+ push @in, $_;
+ }
+ if ($opt eq '>>' || $opt eq '>' || $info->{out}->{$opt}) {
+ push @out, $_;
+ }
+ $opt = '';
+ next;
+ }
+ $opt = '>' if ($_ eq '>');
+ $opt = '<' if ($_ eq '<');
+ $_ =~ s/^~/$ENV{HOME}/;
+ if (!$firstnox) {
+ $firstnox = $_
+ }
+ if (!$first) {
+ if ( $info->{in}->{_noex} || -e $_ ) {
+ $first = $_
+ }
+ } else {
+ $last = $_;
+ }
+ $sz += -s $_;
+ }
+
+ push @in, $first if $first && (!@in); # no input ? assume first file that exists
+ push @in, $firstnox if $firstnox && (!@in); # no input ? assume first file
+
+ if ( $info->{match} ) {
+ my $args = "@ARGV";
+ for my $m (@{$info->{match}}) {
+ my @m = $args =~ /$m->{pat}/;
+ if (@m) {
+ @in = shift @m;
+ if (@m) {
+ @out = @m;
+ if ($m->{post}) {
+ eval($m->{post});
+ }
+ }
+ }
+ }
+ }
+ if ($info->{post}) {
+ eval($info->{post});
+ }
+
+ if ( $info->{in}->{_noin} ) {
+ @in = ();
+ $last = $first;
+ }
+
+ if ($info->{out}->{_eval}) {
+ my ($i, $o) = ($in[0], $out[0]);
+ @out = &{$info->{out}->{_eval}}($i, $o);
+ print STDERR "QSH eval $cmd: @out\n" if $verbose;
+ if ($@) {
+ print STDERR "QSH error: $@\n";
+ }
+ }
+
+ push @out, $last if $last && (!@out); # no output ? assume last argument
+ pop @out if $out[0] eq $in[0]; # no in's = outs
+
+ print STDERR "QSH check: $cmd : sz: $sz, in: @in, out: @out\n" if $verbose;
+
+ my $mx;
+ for (@in) {
+ print STDERR "$_\n" if $list;
+ my $m = fmodtime($_);
+ $mx = $m if ($m > $mx);
+ }
+ my ($nox, $need);
+ for (@out) {
+ if ($_ =~ /\*/) {
+ # TODO: fileglob all outputs, pick oldest, use that.
+ }
+ if ($mx < fmodtime($_)) {
+ $nox=1;
+ } else {
+ $need=1;
+ }
+ }
+
+ if (!$need && $nox && !$force) {
+ print STDERR "QSH suppress: @out, already done\n" if $verbose || $noexec || $debug;
+ print "true";
+ } else {
+ my $wrap = $wrap{$cmd} || $wrap{$cmd_nv};
+
+ my $big = $info->{big};
+ if (!$big) {
+ $big = '50m';
+ }
+
+ if (!$wrap) {
+ my $t = $big;
+ $t *= 1000000 if ($t =~ /m$/i);
+ $t *= 1000000000 if ($t =~ /g$/i);
+ $wrap = $sz >= $t;
+ }
+
+ # never submit a job to the condor, if we're already in condor
+ $wrap = 0 if $ENV{"_CONDOR_SLOT"};
+ $wrap = 0 if $nowrap{$cmd};
+ $wrap = 0 if $cmd eq $grid_engine;
+ # || $ENV{"_GRUN"}; # grun's more friendly about sub-submits... not sure whether to allow?
+
+ if ($list) {
+ print STDERR `which $orig_cmd 2>/dev/null`;
+ }
+ my $suff = "#>\"" . join('" "', at out) . "\"";
+
+ $suff .= "#wait" if !$debug && ($wrap || ($cmd eq $grid_engine));
+
+ print STDERR "QSH debug: wait '$out[0]' " . ($wrap || ($cmd eq $grid_engine)) . "\n" if $debug;
+ if ($wrap) {
+ print STDERR "QSH wrap $orig_cmd, input size:$sz big:$big\n" if $verbose;
+ quoteargv();
+ if ($list) {
+ print "false";
+ } else {
+ print "$grid_engine \"$orig_cmd @ARGV\" $suff";
+ }
+ } else {
+ print STDERR "QSH no wrap $orig_cmd @ARGV, input size $sz big: $big\n" if $verbose;
+ if ($list) {
+ print "false";
+ } elsif ($suff) {
+ print "$orig_cmd @ARGV $suff";
+ }
+ }
+ }
+
+ exit 0;
+}
+
+sub bash_prefix;
+
+#TODO ... would be nice if this could be interactive...
+# but there's a whole TTY attach/reattach thing I can't figure out
+
+open STDERR, "|sort|uniq\n" if $list;
+
+my $in;
+
+if (!$inline) {
+ $in = shift @ARGV;
+ if (!$in) {
+ die "qsh: missing input file operand\n"
+ }
+ open(IN, $in) || die "qsh: can't open $in: $!\n";
+}
+
+no strict 'refs';
+if (pipe_to_fork('FOO')) {
+ print STDERR "QSH start\n" if $verbose;
+ use strict;
+ # parent
+ print FOO bash_prefix();
+ if ($inline) {
+ print FOO "\n$inline\n";
+ } else {
+ while ( <IN> ) {
+ print FOO $_
+ }
+ }
+ close FOO;
+ while (wait > 1) {};
+} else {
+ quoteargv();
+ exec("bash -s @ARGV");
+ while (wait > 1) {};
+}
+
+sub quoteargv {
+ for (@ARGV) {
+ s/(['"()])/\\$1/g;
+ }
+}
+
+sub fmodtime {
+ return (stat($_[0]))[9];
+}
+
+
+sub bash_prefix {
+ my $r;
+ my $wx;
+ my ($won, $woff);
+
+ $wx = '[ -n "$wait" ] && qsh_waitforoutput $out' if ($waitout);
+
+ $won = 'wait=1' if $waitout;
+ $woff = 'wait=' if $waitout;
+
+ my $dx;
+ $dx = 'echo QSH debug: Cmd=$cmd Out=$out Wait=$wait 1>&2' if $debug;
+ $dx = 'echo "$cmd"' if $noexec && !$debug;
+
+ $r = "POPTS=\"$passopts\"\n" if $passopts;
+ $r .= <<EOF;
+
+function qsh_on_debug {
+ if [ -n "\$BASH_COMMAND" ]; then
+ cmd=`$0 -K \$POPTS \$BASH_COMMAND`
+
+ if [[ \$cmd =~ "(.*)#>(.*)" ]]; then
+ cmd=\${BASH_REMATCH[1]}
+ out=\${BASH_REMATCH[2]}
+ fi
+
+ $woff
+ if [[ \$out =~ "(.*)#wait" ]]; then
+ out=\${BASH_REMATCH[1]}
+ $won
+ fi
+ $dx
+
+ if [ -n "\$cmd" ]; then
+ if [ -n "\$out" ]; then
+ if [ -z "$noexec" ]; then
+ echo "+ \$cmd" 1>&2
+ bash -c "\$cmd" || qsh_rmdie \$out
+ $wx
+ fi
+ else
+ if [ -z "$noexec" ]; then
+ echo "+ \$cmd" 1>&2
+ \$cmd
+ fi
+ fi
+ false
+ fi
+ fi
+}
+
+function qsh_rmdie {
+ if [ ! "" == "\$*" ]; then
+ for xout in \$*; do
+ if [ -n \$xout ]; then
+ echo QSH removing \$xout 1>&2
+ fi
+ rm -rf \$xout
+ done
+ fi
+ exit 1
+}
+
+function qsh_waitforoutput {
+ i=0
+ while [ \$i -lt 80 ]
+ do
+ (( i++ ))
+ if [ -z "\$1" ]; then
+ break;
+ fi
+ if [ -e "\$1" ]; then
+ break;
+ fi
+ sleep .25
+ done
+}
+
+shopt -s extdebug
+set -o functrace
+set -a
+
+trap qsh_on_debug DEBUG
+EOF
+return $r;
+die $r;
+}
+
+sub pipe_to_fork ($) {
+ my $parent = shift;
+ pipe my $child, $parent or die;
+ my $pid = fork();
+ die "fork() failed: $!" unless defined $pid;
+ if ($pid) {
+ close $child;
+ }
+ else {
+ close $parent;
+ open(STDIN, "<&=" . fileno($child)) or die;
+ }
+ $pid;
+}
+
+sub usage {
+<<EOF
+qsh version $VERSION
+
+Usage: qsh [options] <bash-script>
+ or: qsh [options] -c "commands to be run"
+
+Options:
+ -d|ebug debug
+ -l|ist guess list of dependencies
+ -v|erbose verbose output to STDERR
+ -h|elp show this help
+ -r|ules FILE use FILE instead of /etc/qsh.conf
+
+Description:
+
+This is a wrapper around 'bash' that passes each command executed
+to an evaluator that determines whether the command should run
+based on it's parsed inputs and outputs.
+
+In addition, the wrapper determines if the command should be
+sent to a "grid engine" based on the size of the inputs and
+the type of command.
+
+The purpose is to enable "fluid" development of simple pipeline
+scripts without having to recode them into Makefiles or other
+even more cumbersome DAG scripts, etc.
+
+Problems:
+ - It's inevitable that qsh might get some things wrong,
+ and prevent maximum efficiency.
+ - It's often better to carefully plan workflows
+EOF
+}
+
diff --git a/clipper/qsub b/clipper/qsub
new file mode 100755
index 0000000..e96d98c
--- /dev/null
+++ b/clipper/qsub
@@ -0,0 +1,182 @@
+#!/usr/bin/perl
+
+# qsub -pe smp ${NPROC} -S /bin/bash -V -q secondary -N ${JOB_ID} -o ${STDOUT_FILE} -e ${STDERR_FILE} ${EXTRAS} ${CMD}
+
+use strict;
+use Getopt::Long qw(:config no_ignore_case);
+use Data::Dumper;
+use Cwd qw(cwd);
+
+open LOG, ">>/opt/log/qsub.log";
+print LOG scalar(localtime), "\t", cwd(), "\t", join " ", @ARGV, "\n";
+close LOG;
+
+my $wd = cwd();
+
+$ENV{SGE_ROOT} = "$wd";
+mkdir("qtmp");
+$ENV{SGE_CELL} = "qtmp";
+mkdir("qtmp/common");
+open Z, ">qtmp/common/settings.sh";
+close Z;
+chmod 0755, "qtmp/common/settings.sh";
+
+my %opt;
+
+my $nproc;
+# get rid of weird 2-argument -pe option
+for (my $i=0;$i<@ARGV;++$i) {
+ $_=$ARGV[$i];
+ if (/-pe/) {
+ $opt{pe} = $ARGV[$i+1];
+ $nproc = $ARGV[$i+2];
+ splice @ARGV, $i, 3;
+ last;
+ }
+}
+
+GetOptions(\%opt, "A=s", "S=s", "V", "p=s", "q=s", "N=s", "hold_jid=s", "o=s", "e=s", "I", "j=s", "l=s@", "memory|m=s", "M=s", "v=s@", "sync=s", "cwd", "t=s") || die;
+$nproc = 1 if !$nproc;
+
+die "qsub: some weird option not supported: $ARGV[0]\n" if $ARGV[0] =~ /^-/;
+die "qsub: bad args for -pe\n" unless $nproc > 0;
+die "qsub: no command specified\n" unless @ARGV;
+
+for (@ARGV) {
+ if (/\'/) {
+ s/'/"'"/g;
+ } else {
+ if (/\"/) {
+ if (/\'/) {
+ s/'/"'"/g;
+ }
+ $_="'".$_."'";
+ }
+ }
+}
+
+my $cmd = join " ", @ARGV;
+
+if ($opt{o}) {
+ $cmd = "$cmd > $opt{o}"
+} else {
+ die "qsub: need output file (-o)\n";
+}
+
+
+my @opj;
+
+if ($opt{N}) {
+ @opj = ("-j", "qsub$opt{N}");
+ $opt{e} = "STDIN.e$opt{N}" if !$opt{e};
+ $ENV{SGE_TASK_ID} = $opt{N};
+} else {
+ $ENV{SGE_TASK_ID} = time();
+}
+
+# what does qsub do when no jobid is specified?
+$opt{e} = "STDIN.e" if !$opt{e};
+$cmd = "$cmd 2> $opt{e}";
+
+
+$opt{memory} = 1000 * $nproc;
+
+if ($opt{hold_jid}) {
+ my $running = `/opt/bin/grun -q jo -f '%jid\t%jobx' | grep '$opt{hold_jid}\$'`;
+ print "/opt/bin/grun -q jo -f '%jid\t%jobx' | grep '$opt{hold_jid}\$'\n";
+ $running =~ s/\s+//g;
+ while ($running) {
+ sleep(30);
+ }
+}
+
+if ($ENV{GRUN_HOSTS}) {
+ push @opj, ("-h", $ENV{GRUN_HOSTS});
+}
+
+my $taskid = -1;
+if ($opt{t}) {
+ my ($l, $h) = $opt{t} =~ /(\d+)-(\d+)/;
+ if (!$l) {
+ $l = 0;
+ $h = $opt{t}-1;
+ }
+ $ENV{SGE_TASK_FIRST} = $l;
+ $ENV{SGE_TASK_LAST} = $h;
+ my @jobl;
+ push @opj, "-nowait";
+ for (my $i = $l; $i<= $h; ++$i) {
+ $ENV{SGE_TASK_ID} = $i;
+ push @jobl, dojob();
+ }
+ print "DEBUG START $opt{N}: jobs @jobl\n";
+ if($opt{sync}) {
+ my $running = 1;
+ while ($running) {
+ sleep(15);
+ my $runl = `/opt/bin/grun -q jo -f '%jid\\n'`;
+ #my $runl = `/opt/bin/grun -q jo`;
+ if (!$runl) {
+ print "DEBUG NO JOBS???? [$?] $opt{N}: ((($runl)))\n";
+ next;
+ }
+ my %runl = map {chomp; $_=>1} $runl;
+ my @runl = %runl;
+ $running = 0;
+ for (@jobl) {
+ #if ($runl{$_}) {
+ if ($runl =~ /$_/) {
+ $running = 1;
+ }
+ }
+ if (!$running) {
+ print "DEBUG DONE $opt{N}: ((( $runl )))\n";
+ } else {
+ print "DEBUG WAITING $opt{N}: ( $runl )\n";
+ }
+ }
+ sleep(15);
+ } else {
+ print "DEBUG NOSYNC $opt{N}\n";
+ }
+} else {
+ if(!$opt{sync}) {
+ push @opj, "-nowait";
+ } else {
+ print "DEBUG SYNC 1 JOB $opt{N}\n";
+ }
+ dojob();
+}
+
+sub dojob {
+ my $grun_out;
+ my $tmpf = "/opt/tmp/qsub.$$.out";
+ my $ext = "";
+ if ($taskid >=0 ) {
+ $tmpf = "/opt/tmp/qsub.$$.$taskid.out";
+ $ext = " [$taskid]";
+ }
+ open OLDOUT, ">&STDOUT";
+ open OLDERR, ">&STDERR";
+ open STDOUT, ">$tmpf" or die "Can't open STDOUT: $!";
+ open STDERR, ">&STDOUT";
+ my $ret = system("grun", "-v", "-c", $nproc, "-m", $opt{memory}, @opj, $cmd);
+ open STDOUT, ">&OLDOUT";
+ open STDERR, ">&OLDERR";
+ my %grun;
+ open IN, $tmpf;
+ while(<IN>) {
+ my ($k, $v) = m/([^:]+):?\s*(.*)/;
+ $k =~ s/ /_/g;
+ $grun{lc($k)}=$v;;
+ }
+ close IN;
+ unlink $tmpf;
+ if ($ret == 0) {
+ print "Your job $grun{job_id}$ext \(\"$cmd\"\) has been submitted\n";
+ }
+ if ($opt{sync} && ! -s $opt{e}) {
+ unlink($opt{e});
+ }
+ return $grun{job_id};
+}
diff --git a/randomFQ b/clipper/randomFQ
similarity index 100%
rename from randomFQ
rename to clipper/randomFQ
diff --git a/sam-stats.cpp b/clipper/sam-stats.cpp
similarity index 95%
rename from sam-stats.cpp
rename to clipper/sam-stats.cpp
index 9f0cd7d..54eecae 100644
--- a/sam-stats.cpp
+++ b/clipper/sam-stats.cpp
@@ -34,16 +34,15 @@
#include <sys/stat.h>
#include <string>
-#include <google/sparse_hash_map> // or sparse_hash_set, dense_hash_map, ...
-#include <google/dense_hash_map> // or sparse_hash_set, dense_hash_map, ...
+#include <sparsehash/sparse_hash_map> // or sparse_hash_set, dense_hash_map, ...
+#include <sparsehash/dense_hash_map> // or sparse_hash_set, dense_hash_map, ...
#include <samtools/sam.h> // samtools api
#include "fastq-lib.h"
-const char * VERSION = "1.38";
+const char * VERSION = "1.38.763";
-#define SVNREV atoi(strchr("$LastChangedRevision: 681 $", ':')+1)
using namespace std;
@@ -165,7 +164,7 @@ public:
covr.clear();
}
struct {
- int n, mapn, mapzero; // # of entries, # of mapped entries,
+ int n, mapn, secondary, mapzero; // # of entries, # of mapped entries,
int lenmin, lenmax; double lensum, lenssq; // read length stats
double mapsum, mapssq; // map quality sum/ssq
double nmnz, nmsum; // # of mismatched reads, sum of mismatch lengths
@@ -426,7 +425,10 @@ int main(int argc, char **argv) {
continue;
}
fprintf(o, "reads\t%d\n", s.dat.n);
- fprintf(o, "version\t%s.%d\n", VERSION, SVNREV);
+ if (s.dat.secondary > 0) {
+ fprintf(o, "secondary\t%d\n", s.dat.secondary);
+ }
+ fprintf(o, "version\t%s\n", VERSION);
// mapped reads is the number of reads that mapped at least once (either mated or not)
if (s.dat.mapn > 0) {
@@ -708,6 +710,9 @@ void sstats::dostats(string name, int rlen, int bits, const string &ref, int pos
else
++dat.nrev;
+ if (bits & 256)
+ ++dat.secondary; // secondary alignment
+
// mapping quality mean/stdev
dat.mapsum += mapq;
dat.mapssq += mapq*mapq;
@@ -804,8 +809,34 @@ void sstats::dostats(string name, int rlen, int bits, const string &ref, int pos
if (trackdup) {
size_t p;
// illumina mode... check for a space in the name, and ignore stuff after it
- if ((p = name.find_first_of(' '))!=string::npos)
+ // @HWI-ST1131:111228:C0B0NACXX:2:1101:1230:2118 1:N:0
+
+ /// most aligners remove the space... but not all
+ if (((p = name.find_first_of(' '))!=string::npos) ) {
name.resize(p);
+ }
+
+ /// remove up to flowcell serial number... in case this is a mixture
+ if (((p = name.find_first_of(':'))!=string::npos) ) {
+ if (((p = name.find_first_of(':', p+1))!=string::npos) ) {
+ name=name.substr(p+1);
+ // D0H4MACXX:3:2307:8426:193536
+ if (((p = name.find_first_of(':'))!=string::npos) ) {
+ if (((p = name.find_first_of(':', p+1))!=string::npos) ) {
+ if (isdigit(name[p+1])) {
+ struct id_t { uint16_t i1, i2; uint32_t i3; };
+ if (((name.length()-p-1)-1) > (sizeof(struct id_t)+1)) {
+ struct id_t id;
+ if (sscanf(name.data()+p+1,"%hu:%hu:%u", &id.i1, &id.i2, &id.i3) == 3) {
+ * (struct id_t *) (void *) (name.data()+p+1) = id;
+ name.resize(p+1+sizeof(id_t));
+ }
+ }
+ }
+ }
+ }
+ }
+ }
// count dups for that id
int x=++dups[name];
@@ -988,7 +1019,7 @@ bool sstats::parse_bam(const char *in) {
void usage(FILE *f) {
fprintf(f,
"Usage: sam-stats [options] [file1] [file2...filen]\n"
-"Version: %s.%d\n"
+"Version: %s\n"
"\n"
"Produces lots of easily digested statistics for the files listed\n"
"\n"
@@ -1048,7 +1079,7 @@ void usage(FILE *f) {
" .ldist : length distribution (if applicable)\n"
" .mqdist : mapping quality distribution\n"
"\n"
- ,VERSION, SVNREV);
+ ,VERSION);
}
std::string string_format(const std::string &fmt, ...) {
diff --git a/clipper/sam-stats.pl b/clipper/sam-stats.pl
new file mode 100755
index 0000000..bbd8bef
--- /dev/null
+++ b/clipper/sam-stats.pl
@@ -0,0 +1,343 @@
+#!/usr/bin/perl
+
+# Copyright (c) 2011 Expression Analysis / Erik Aronesty
+#
+# 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.
+
+use strict;
+use Getopt::Long;
+use Data::Dumper;
+
+
+my ($cq);
+
+# summary stats
+my $n = 0; # numreads
+my (%mapb, $mapb); # mapped bases
+my ($lenmin, $lenmax, $lensum, $lenssq, $mapsum, $mapssq, $nmlen, $nmc, $insum, $dlsum, $nmsum, $nmnz);
+my ($nbase, $qualmax, $qualmin, $qualsum, $qualssq, @basecnt);
+my ($rev, $for);
+my ($mapc, @mapq, @mat);
+
+# per-read
+my ($id, $bits, $nmo, $mapq, $cig, $l, $q, $r, $mat, $nm, @fdx);
+
+my %opt;
+GetOptions(\%opt, "help", "bases=i", "make|M", "count=i", "ext|x=s") || die usage();
+if ($opt{help}) { print usage(); exit 1;}
+
+my $multi = 1 if @ARGV > 1;
+$opt{ext}='stats' if $multi && ! $opt{ext};
+$multi = 1 if $opt{ext};
+
+$qualmin = 100000;
+$lenmin = 100000;
+
+my $QSAMP=$opt{bases} ? $opt{bases} : 5000; # number of reads to track per-base quality stats (all other stats are for all reads)
+my $MAXN=$opt{count} ? $opt{count} : 2000000000; # number of reads to track per-base quality stats (all other stats are for all reads)
+
+if (!@ARGV) {
+ $ARGV[0] = '-';
+}
+while (@ARGV) {
+my $in = shift @ARGV;
+if ($in && !($in eq '-')) {
+ open(IN, ($in =~ /\.gz$/ ? "/bin/gunzip -c $in|" : $in)) || die "Can't open $in: $!\n";
+} else {
+ die "Can't read from stdin in multiple mode\n" if ($multi);
+ *IN=*STDIN;
+}
+
+*OUT=*STDOUT;
+my $out;
+if ($multi) {
+ $out = $in;
+ $out =~ s/\.gz$//;
+ $out .= ".$opt{ext}";
+
+ if ($opt{make}) {
+ next if -s $out && (stat($out))[9] > (stat($in))[9];
+ warn "+$in>$out\n";
+ }
+
+ open(OUT, ">$out.tmp") || die "Can't open $out\n";
+}
+
+ (%mapb, $mapb, @basecnt, $lenmin, $lenmax, $lensum, $lenssq, $mapsum, $mapssq, $nmlen, $nmc, $insum, $dlsum, $nmsum, $nmnz, $nbase, $qualmax, $qualmin, $qualsum, $qualssq, $rev, $for, $mapc, @mapq, @mat, $n) = (undef) x 100;
+
+ %mapb=();
+if ($in =~ /\.bam$/) {
+ close IN;
+
+ require Bio::DB::Sam;
+ my $bam = Bio::DB::Bam->open($in);
+ my $header = $bam->header;
+ # reset stats
+ while (my $a = $bam->read1()) {
+ ++$n;
+ $cig = $a->cigar_str;
+ next if ($cig eq '');
+ $nmo=$a->tid;
+ $mapq = $a->qual;
+ $bits = $a->flag;
+ $l = $a->query->length;
+ $mat = $a->isize;
+ ($nm) = $a->get_tag_values("NM");
+ if ($mapc < $QSAMP) {
+ $r = $a->query->dna;
+ $q = join '', map {chr($_+33)} unpack('C*',$a->_qscore);
+ }
+ stats();
+ last if $n > $MAXN;
+ }
+} else {
+ while (my $i = <IN>) {
+ next if $i =~ /^\@/;
+ ++$n;
+ ($id, $bits, $nmo, undef, $mapq, $cig, undef, undef, $mat, $r, $q, @fdx) = split /\t/, $i;
+ next if ($cig eq '*');
+ $nm = '';
+ for (@fdx) {
+ if (s/^NM:i://) {
+ $nm = $_;
+ last;
+ }
+ }
+ $l = length($r);
+ next unless $nmo;
+ stats();
+ last if $n > $MAXN;
+ }
+}
+
+$QSAMP=$mapc if $mapc < $QSAMP;
+
+ at mapq = sort {$a <=> $b} @mapq;
+ at mat = sort {$a <=> $b} @mat;
+
+# autodetect phred
+my $phred = 64;
+$phred = 33 if ($qualmin < 64);
+
+printf OUT "reads\t%d\n", $n;
+printf OUT "phred\t%d\n", $phred if $nbase > 0;
+printf OUT "mapped reads\t%d\n", $mapc;
+printf OUT "mapped bases\t%d\n", $mapb;
+
+if ($mapc > 0) {
+ printf OUT "foward\t%d\n", $for;
+ printf OUT "reverse\t%d\n", $rev;
+
+ if ($lenmax != $lenmin) {
+ printf OUT "len max\t%.4f\n", $lenmax;
+ if ($n > 0 ) {
+ printf OUT "len mean\t%.4f\n", $lensum/$mapc;
+ if ($n > 1 ) {
+ printf OUT "len stdev\t%.4f\n", stdev($mapc, $lensum, $lenssq);
+ }
+ }
+ } else {
+ printf OUT "len max\t%d\n", $lenmax;
+ }
+
+ printf OUT "mapq mean\t%.4f\n", ($mapsum/$mapc);
+ printf OUT "mapq stdev\t%.4f\n", stdev($mapc, $mapsum, $mapssq);
+ printf OUT "mapq Q1\t%.4f\n", quantile(\@mapq, .25);
+ printf OUT "mapq median\t%.4f\n", quantile(\@mapq, .50);
+ printf OUT "mapq Q3\t%.4f\n", quantile(\@mapq, .75);
+
+ if ($nmlen > 0) {
+ printf OUT "snp rate\t%.6f\n", ($nmsum/$nmlen);
+ if ($insum > 0) {
+ printf OUT "ins rate\t%.6f\n", ($insum/$nmlen);
+ }
+
+ if ($dlsum > 0) {
+ printf OUT "del rate\t%.6f\n", ($dlsum/$nmlen);
+ }
+ printf OUT "pct mismatch\t%.4f\n", 100*($nmnz/$nmc);
+ }
+
+ if (@mat > 0) {
+ my $p10=quantile(\@mat,.10);
+ my $p90=quantile(\@mat,.90);
+ my ($matc, $matsum, $matssq);
+ for (@mat) {
+ if ($_ >= $p10 && $_ <= $p90) {
+ ++$matc;
+ $matsum+=$_;
+ $matssq+=$_*$_;
+ }
+ }
+ printf OUT "insert mean\t%.4f\n", ($matsum/$matc);
+ printf OUT "insert stdev\t%.4f\n", stdev($matc, $matsum, $matssq);
+ printf OUT "insert Q1\t%.4f\n", quantile(\@mat, .25);
+ printf OUT "insert median\t%.4f\n", quantile(\@mat, .50);
+ printf OUT "insert Q3\t%.4f\n", quantile(\@mat, .75);
+ }
+
+ if ($nbase > 0) {
+ printf OUT "base qual mean\t%.4f\n", ($qualsum/$nbase)-$phred;
+ printf OUT "base qual stdev\t%.4f\n", stdev($nbase, $qualsum, $qualssq);
+ }
+}
+
+if ($nbase) {
+ printf OUT "%%A\t%.4f\n", 100*$basecnt[0]/$nbase;
+ printf OUT "%%C\t%.4f\n", 100*$basecnt[1]/$nbase;
+ printf OUT "%%G\t%.4f\n", 100*$basecnt[2]/$nbase;
+ printf OUT "%%T\t%.4f\n", 100*$basecnt[3]/$nbase;
+ if ($basecnt[4] > 0) {
+ printf OUT "%%N\t%.4f\n", 100*$basecnt[4]/$nbase
+ }
+}
+
+if (%mapb > 1 && %mapb <= 1000) {
+ for my $k (sort(keys(%mapb))) {
+ my $v = $mapb{$k};
+ my ($n) = $k =~ m/([\w.-]+)/;
+ printf OUT "%%$n\t%.2f\n", 100*$v/$mapb;
+ }
+}
+
+close OUT;
+rename("$out.tmp", $out);
+}
+
+sub stats
+{
+ my $strand = 1 - 2 * ($bits & 16);
+
+ ++$mapc;
+
+ $lenmax = $l if $l > $lenmax;
+ $lenmin = $l if $l < $lenmax;
+
+ $lensum += $l;
+ $lenssq += $l*$l;
+
+ if ($bits & 16) {
+ $rev += 1;
+ } else {
+ $for += 1;
+ }
+
+ $mapsum += $mapq;
+ $mapssq += $mapq*$mapq;
+
+ push @mapq, $mapq+0;
+ if (!($nm eq '')) {
+ $nmsum += $nm;
+ $nmnz += 1 if $nm > 0;
+ ++$nmc;
+ $nmlen += $l;
+ for ($cig =~ /D(\d+)/g) {
+ $dlsum+=$_;
+ }
+ for ($cig =~ /I(\d+)/g) {
+ $insum+=$_;
+ }
+ }
+
+ if (%mapb <= 1000) {
+ $mapb{$nmo}+=$l;
+ }
+
+ $mapb+=$l;
+
+ if ($mat > 0) {
+ push @mat, $mat+0;
+ }
+
+ if ($mapc < $QSAMP) {
+ # shorter length
+ for (my $i = 0; $i < $l; ++$i) {
+ $cq = ord(substr($q, $i, 1));
+ ++$nbase;
+ $qualmax=$cq if $cq > $qualmax;
+ $qualmin=$cq if $cq < $qualmin;
+ $qualsum+=$cq;
+ $qualssq+=$cq*$cq;
+ my $cb = substr($r, $i, 1);
+ $cb =~ tr/ACGTN/01234/;
+ ++$basecnt[$cb];
+ }
+ }
+}
+
+# copied from EA.pm
+
+sub stdev($ $ $) {
+ my ($cnt, $sum, $ssq) = @_;
+ sqrt(($cnt*$ssq-($sum*$sum)) / ($cnt*($cnt-1)));
+}
+
+sub quantile {
+ my ($a,$p) = @_;
+ my $l = scalar(@{$a});
+ my $t = ($l-1)*$p;
+ my $v=$a->[int($t)];
+ if ($t > int($t)) {
+ return $v + $p * ($a->[int($t)+1] - $v);
+ } else {
+ return $v;
+ }
+}
+
+sub usage {
+return <<EOF
+sam-stats [options] <sam or bam file> [<multiple files]
+
+Options:
+ -h : this help
+ -b : base sample size (5000)
+ -c : read sample count (0)
+ -x : extension (stats)
+ -M : make newer only
+
+OUTPUT:
+
+If one file is specified, then the output is to standard out. If
+multiple files are specified, or if the -x option is supplied,
+the output file is <filename>.<ext>. Default extension is 'stats'.
+
+Complete Stats:
+
+ <STATS> : mean, max, stdev, median, Q1 (25 percentile), Q3
+ reads : # of entries in the file
+ phred : phred scale used
+ mapped reads : number of aligned reads
+ mapped bases : total of the lengths of the aligned reads
+ forward : number of forward-aligned reads
+ reverse : number of reverse-aligned reads
+ snp rate : mismatched bases / total bases
+ ins rate : insert bases / total bases
+ del rate : deleted bases / total bases
+ pct mismatch : percent of reads that have mismatches
+ len <STATS> : read length stats, ignored if fixed-length
+ mapq <STATS> : stats for mapping qualities
+ insert <STATS> : stats for insert sizes
+ %<CHR> : percentage of mapped bases per chromosome (use to compute coverage)
+
+Subsampled stats:
+ base qual <STATS> : stats for base qualities
+ %A,%T,%C,%G : base percentages
+EOF
+}
+
diff --git a/clipper/seqsig.cpp b/clipper/seqsig.cpp
new file mode 100644
index 0000000..ffd4877
--- /dev/null
+++ b/clipper/seqsig.cpp
@@ -0,0 +1,587 @@
+
+#include <iostream>
+#include <sparsehash/sparse_hash_map>
+#include "fastq-lib.h"
+
+#include <time.h>
+
+#include <string>
+#include <vector>
+
+#include <stdio.h>
+#include <getopt.h>
+#include <stdarg.h>
+
+#define meminit(l) (memset(&l,0,sizeof(l)))
+#define VERSION "0.5"
+
+FILE *zopenordie(const char *path, const char *mode);
+FILE *openordie(const char *path, const char *mode);
+FILE *popenordie(const char *path, const char *mode);
+std::string string_format(const std::string &fmt, ...);
+
+using namespace std;
+void seq2char(uint32_t s, int k, char *p);
+// true if different
+void compare_files(const char *f1, const char *f2);
+template <class vtype> double quantile(const vtype &vec, double p);
+
+#define AS_UINT(x) ((int *)(void *)(x))
+
+// main
+
+unsigned long long basemap[256];
+unsigned long long basemaprc[256];
+bool lowcomplex(char *s, int n, int max);
+void usage(FILE *f);
+
+// coefficients used to produce the blended similarity score (range 0 to 1, where 1 is identical)
+
+double scoef=.75;
+double qcoef=350;
+int main(int argc, char **argv) {
+ int i;
+ clock_t clock1;
+
+ clock1=clock();
+
+ meminit(basemap);
+ for (i=0;i<4;++i) {
+ basemap[("acgt")[i]]=i;
+ basemap[("ACGT")[i]]=i;
+ basemaprc[("tgca")[i]]=i;
+ basemaprc[("TGCA")[i]]=i;
+ }
+
+ // max 16... lower values result in better sensitivity, lower specificity expecially with blended/mixed samples
+
+ int k=12;
+ int x=200;
+ int sampsize=500000;
+ float lowcom_pct=0.40;
+ double ftop=.99;
+ double fdel=.015;
+ double fmin=.50;
+
+ // run comparison on args?
+ bool docompare=0;
+
+
+ char c;
+ char *endp;
+ char **inf;
+ int inc=0;
+
+ char *contampath=NULL;
+
+ while ( (c = getopt_long(argc, argv, "chk:x:n:l:t:d:m:r:S:Q:",NULL,NULL)) != -1) {
+ switch (c) {
+ case 'h': usage(stdout); return 0;
+ case 'c': docompare=1; break;
+ case 'x': x=atoi(optarg); break;
+ case 'k': k=atoi(optarg); if(k>16) fail("Max k is 16\n"); break;
+ case 'n': sampsize=atoi(optarg); break;
+ case 'l': lowcom_pct=strtod(optarg,&endp); break;
+ case 't': ftop=strtod(optarg,&endp); break;
+ case 'S': scoef=strtod(optarg,&endp); break;
+ case 'Q': qcoef=strtod(optarg,&endp); break;
+ case 'r': contampath=optarg; break;
+ case 'd': fdel=strtod(optarg,&endp); break;
+ case 'm': fmin=strtod(optarg,&endp); break;
+ case '\1': inf[++inc]=optarg; break;
+ case '?':
+ if (!optopt) {
+ usage(stdout); return 0;
+ } else if (optopt && strchr("kxnltdmrSQ", optopt))
+ fprintf (stderr, "Option -%c requires an argument.\n", optopt);
+ else if (isprint(optopt))
+ fprintf (stderr, "Unknown option `-%c'.\n", optopt);
+ else
+ fprintf (stderr, "Unknown option character `\\x%x'.\n", optopt);
+ usage(stderr);
+ return 1;
+ }
+ }
+
+ inf=&(argv[optind]);
+ inc=argc-optind;
+
+ if (!inc) {
+ usage(stderr);
+ return 1;
+ }
+
+ if (!x || !k || !sampsize || ftop<.8 || ftop > 1 || fdel > ftop || fmin > ftop || inc < 1) {
+ fail("Bad params, quitting\n");
+ }
+
+ if (docompare) {
+ compare_files(inf[0],inf[1]);
+ exit(0);
+ }
+
+ char*in=inf[0];
+
+ FILE *fin;
+ if (contampath) {
+ if (!strcmp(fext(in),".dz")||!strcmp(fext(in),".dsrc")) {
+ fin=popenordie(string_format("dsrc d -s %s | bowtie -p 3 -S %s -q - | samtools view -S -f 4 - 2> /dev/null", in, contampath).c_str(), "r");
+ } else {
+ fin=popenordie(string_format("bowtie -p 3 -S %s -q %s | samtools view -S -f 4 - 2> /dev/null", contampath, in).c_str(), "r");
+ }
+ } else {
+ fin=zopenordie(in,"r");
+ }
+
+ struct fq fq;
+
+ meminit(fq);
+ int n=0;
+
+ google::sparse_hash_map<uint32_t, int> kh;
+
+ std::string mer, scnt;
+ mer.resize(k);
+ int *pdat;
+ int kcnt=0;
+ unsigned long long lm; //, lmrc;
+ unsigned long long kmask=~(((unsigned long long) ~0) << (k*2));
+// printf("kmask:%llx\n",kmask);
+
+
+// minimum # of low-complexity positions in 32 bases to be called "low complexity"
+ int lowcom_count = 32 * lowcom_pct;
+ int skiplow=0;
+ while (contampath?read_fq_sam(fin,n,&fq):read_fq(fin, n, &fq)) {
+
+ if (fq.seq.n > 32) // only first 32 bases considered
+ fq.seq.n = 32;
+
+ // sequence as 64-bit value
+ lm=0;
+// lmrc=0;
+
+ if (lowcomplex(fq.seq.s, fq.seq.n, lowcom_count)) {
+ ++skiplow;
+ continue;
+ }
+
+// printf("s:%s\n", fq.seq.s);
+
+// skip too short
+ if (fq.seq.n < k) {
+ ++skiplow;
+ continue;
+ }
+
+ ++n;
+
+ for(i=0;i<fq.seq.n;++i) { // map to 64 bit sequence
+ lm=lm|(basemap[fq.seq.s[i]]<<(i*2));
+ // lmrc=(lmrc<<2)|basemaprc[fq.seq.s[i]];
+ }
+// printf("orig: %s\n", string(fq.seq.s,32).c_str());
+// printf("s:%s,lm:%llx\n",fq.seq.s,lm);
+ for (i=0;i<fq.seq.n-k+1;++i) { // create unint_16_t kmers
+ uint32_t v=lm&kmask;
+ if (!kh[v]) ++kcnt;
+ kh[v]++;
+// printf("i:%d,v:%hx\n",i,v);
+ lm=lm>>2; // remove first base
+
+ // reverse
+
+// char t[33];
+// seq2char(v, k, t);
+
+// printf("orig: %s, lm: %llx, asv: %hx, mapped: %s\n", string(fq.seq.s+i,k).c_str(), lm, v, t);
+ }
+ if (n>=sampsize) break;
+ }
+ if (n==0) {
+ fail("Insufficient sequence content\n");
+ }
+
+// printf("entries: %d\n", kcnt);
+
+
+ struct {uint32_t s; int v;} topx[x]; meminit(topx);
+
+ google::sparse_hash_map<uint32_t,int>::iterator it = kh.begin();
+ vector<int> dist;
+ while(it!=kh.end()) {
+ // *not* making the distinction between 2 singleton mappings and 1 paired here
+ int val = it->second;
+ dist.push_back(val);
+ if (val > topx[x-1].v) {
+ for (i=0;i<x;++i) {
+ if (val > topx[i].v) {
+ break;
+ }
+ }
+ int found=i;
+ // shift remaining down (max 8 shifts)
+ for (i=x-1;i>found;--i) {
+ topx[i]=topx[i-1];
+ }
+ topx[found].v=val;
+ topx[found].s=it->first;
+ }
+ ++it;
+ }
+ sort(dist.begin(),dist.end());
+
+ double qtop=quantile(dist,ftop);
+
+
+ printf("k\t%d\n", k);
+ printf("top-x\t%d\n", x);
+ printf("q-start\t%.3f\n", ftop);
+ printf("q-delta\t%.3f\n", fdel);
+ printf("q-min\t%.3f\n", fmin);
+ printf("reads-used\t%d\n", n);
+ printf("lowcom-pct\t%.3f\n", lowcom_pct*100);
+ printf("quantile-top\t%f\n", qtop);
+ printf("skip-low\t%d\n", skiplow);
+ printf("run-time\t%f\n", (clock()-clock1)/(double)CLOCKS_PER_SEC);
+
+ printf("--------\n");
+
+ int j;
+ char buf[k+1];
+ for (i=0;i<x;++i) {
+ seq2char(topx[i].s, k, buf);
+ printf("%s %.3f\n", buf, topx[i].v/qtop);
+ }
+
+ printf("--------\n");
+
+ double f;
+ vector<double>dsig;
+ for (f=ftop-fdel;f>=fmin;f-=fdel) {
+ double r=quantile(dist, f)/qtop;
+ dsig.push_back(r);
+ printf("%.6f\n",r);
+ }
+
+}
+
+FILE *zopenordie(const char *path, const char *mode) {
+ bool isgz;
+ FILE *f=gzopen(path, mode, &isgz);
+ if (!f) {
+ warn("Can't open-%s '%s': %s\n", mode, path, strerror(errno));
+ exit(1);
+ }
+ return f;
+}
+
+FILE *openordie(const char *path, const char *mode) {
+ bool isgz;
+ FILE *f=fopen(path, mode);
+ if (!f) {
+ warn("Can't open-%s '%s': %s\n", mode, path, strerror(errno));
+ exit(1);
+ }
+ return f;
+}
+
+FILE *popenordie(const char *cmd, const char *mode) {
+ FILE *f=popen(cmd, mode);
+ if (!f) {
+ warn("Can't open-%s '%s': %s\n", mode, cmd, strerror(errno));
+ exit(1);
+ }
+ return f;
+}
+
+
+
+void seq2char(uint32_t s, int k, char *p) {
+ int i;
+ for(i=0;i<k;++i) {
+ *p++=("ACGT")[(s>>(i<<1))&0x3];
+ }
+ *p='\0';
+}
+
+bool lowcomplex(char *s, int n, int lowcom_thresh) {
+ int lc=0;
+ int i;
+
+ for (i=1; i<n; ++i) {
+ // N's always match everything
+ if (s[i] == 'N' || (s[i] == s[i-1])) {
+ lc+=1;
+ } else if (i >= 3 && (s[i] == s[i-2] && s[i-1] == s[i-3])) {
+ lc+=1;
+ } else if (i >= 5 && (s[i] == s[i-3] && s[i-1] == s[i-4] && s[i-2] == s[i-5])) {
+ lc+=1;
+ } else if (i >= 7 && (s[i] == s[i-4] && s[i-1] == s[i-5] && s[i-2] == s[i-6] && s[i-3] == s[i-7])) {
+ lc+=1;
+ }
+ }
+
+// enough lc to pass?
+ return lc > lowcom_thresh;
+}
+
+uint32_t char2seq(char *p, int k) {
+ int i;
+ uint32_t r=0;
+ for(i=0;i<k;++i) { // map to 64 bit sequence
+ r=r|(basemap[p[i]]<<(i*2));
+ }
+ return r;
+}
+
+uint32_t char2seqrc(char *p, int k) {
+ int i;
+ uint32_t r=0;
+ for(i=0;i<k;++i) { // map to 64 bit sequence
+ r=r<<2|(basemaprc[p[i]]);
+ }
+ return r;
+}
+
+
+
+class sig {
+public:
+ int k; // kmer size
+ int svx; // number of entries in sequence vector
+ int n; // sample size
+ double ftop; // top quantile
+ double fdel; // delta
+ double fmin; // min quality
+ double lowcom_pct; // complexity filter used
+ string fn; // file read from (if any)
+ int qvx; // number of entries in quantile vector
+
+ void read(const char *file);
+
+ typedef struct {
+ uint32_t seq; // sequence
+ uint32_t rcseq; // reverse complement of same
+ int lev;
+ } ent;
+
+ typedef struct {
+ float sdist; // s distance
+ float qdist; // q distance
+ float score; // blended score
+ } comp;
+
+ ent *svec;
+ double *qvec;
+
+ sig() {init();};
+ ~sig() {clear();};
+
+ void init() {svec=NULL;svx=qvx=n=k=0;qvec=NULL;};
+ void clear() {if(svec) free(svec); if (qvec) free(qvec); init();}
+
+ sig::comp compare(sig &other);
+};
+
+void sig::read(const char *file) {
+ clear();
+
+ FILE *f;
+ bool isop=0;
+ if (!strcmp(file,"-")) {
+ f=stdin;
+ } else {
+ f=openordie(file,"r");
+ isop=1;
+ }
+
+ fn=file;
+
+ char *s=NULL; size_t a; int l;
+ char *p, *e;
+ double v;
+ while((l=getline(&s, &a, f))>1) {
+ if(p=strchr(s,'\t')) {
+ *p++='\0';
+ v=strtod(p, &e);
+ } else {
+ break;
+ }
+
+ if(p=strchr(s,':')) // colon ignored
+ *p='\0';
+
+ if (!strcmp(s, "k")) {
+ k=v;
+ } else if (!strcmp(s, "top-x")) {
+ svx=v;
+ } else if (!strcmp(s, "q-start")) {
+ ftop=v;
+ } else if (!strcmp(s, "q-delta")) {
+ fdel=v;
+ } else if (!strcmp(s, "q-min")) {
+ fmin=v;
+ } else if (!strcmp(s, "lowcom-pct")) {
+ lowcom_pct=v/100;
+ } else if (!strcmp(s, "reads-used")) {
+ n=v;
+ }
+ }
+
+ if (!k || !svx || ftop==0 || fdel==0 || fmin == 0 || n ==0) {
+ fail("File '%s': Invalid header.\n", file);
+ }
+
+ svec = (sig::ent *)malloc(sizeof(*svec)*svx);
+ int i = 0;
+ while(i<svx && ( (l=getline(&s, &a, f)) > 1 )) {
+ s[k]='\0';
+ svec[i].seq=char2seq(s,k);
+ svec[i].rcseq=char2seqrc(s,k);
+ svec[i].lev=atoi(s+k+1);
+ ++i;
+ }
+
+ // number of quantile vector entries
+ qvx = (ftop-fmin-fdel)/fdel;
+
+ // discard separator
+ l=getline(&s, &a, f);
+
+ qvec = (double *)malloc(sizeof(*qvec)*qvx);
+ i = 0;
+ while(i<qvx && ( (l=getline(&s, &a, f)) > 1 )) {
+ qvec[i]=strtod(s,&e);
+ ++i;
+ }
+ if (isop) fclose(f);
+}
+
+sig::comp sig::compare(sig &o) {
+ if (svx!=o.svx || k!=o.k || fmin != o.fmin || fdel != o.fdel || ftop != o.ftop || lowcom_pct != o.lowcom_pct) {
+ fail("Can't compare sigs with different parameters\n");
+ }
+ // influences certainty
+
+ double diff=(double)abs(n-o.n)/(double(n+o.n)/2);
+
+ // top x sequence vector comparison
+ int i, j;
+ int matches=0;
+ double sdistance=0;
+ for (i=0;i<svx;++i) {
+ bool found=0;
+ for (j=0;j<svx;++j) {
+ // cap distance at 1000
+ if (svec[i].seq==o.svec[j].seq || svec[i].seq==o.svec[j].rcseq) {
+ found=1;
+ matches+=1;
+ // the max range on these is about 1000
+ sdistance+=min(1000,fabs(svec[i].lev-o.svec[j].lev));
+ break;
+ }
+ }
+ if (!found) {
+ // 10x worse than finding it at all...
+ sdistance+=10000;
+ }
+ }
+ sdistance=(sdistance/(double)svx)/10000;
+
+ // top x quantile vector comparison
+ double qdistance=0;
+ for (i=1;i<qvx;++i) {
+ // the biggest this can be is 1, but realistically, it will be very, very small
+ qdistance+=fabs(fabs(qvec[i]-qvec[i-1])-fabs(o.qvec[i]-o.qvec[i-1]));
+ }
+ qdistance = qdistance/qvx;
+
+ sig::comp c;
+ c.sdist=sdistance;
+ c.qdist=qdistance;
+
+ // blended score - based on a fit to a model of expected outputs which included some mixtures
+ c.score=max(0,min(1,1-scoef*sdistance-qcoef*qdistance));
+
+ return c;
+}
+
+
+void compare_files(const char *i1, const char *i2) {
+ sig s1;
+ sig s2;
+
+ s1.read(i1);
+ s2.read(i2);
+
+ sig::comp c = s1.compare(s2);
+
+ printf("sequence distance\t%f\n", c.sdist);
+ printf("quantile distance\t%f\n", c.qdist);
+ printf("similarity\t%f\n", c.score);
+}
+
+template <class vtype>
+double quantile(const vtype &vec, double p) {
+ int l = vec.size();
+ if (!l) return 0;
+ double t = ((double)l-1)*p;
+ int it = (int) t;
+ int v=vec[it];
+ if (t > (double)it) {
+ return (v + (t-it) * (vec[it+1] - v));
+ } else {
+ return v;
+ }
+}
+
+
+void usage(FILE *f) {
+ fprintf(f,
+
+"Usage: seqsig [options] file1\n"
+" or: seqsig -c file1 file2\n"
+"Version: %s\n"
+"\n"
+"Generate qsig files for fastqs, or compare them\n"
+"\n"
+"Sig generation options:\n"
+" -k INT kmer size (12)\n"
+" -x INT number of top kmers to output (200)\n"
+" -n INT number of reads to use (500000)\n"
+" -l REAL low complexity filter (0.40), where 1 is no filter\n"
+" -t REAL top quantile to use (0.90)\n"
+" -d REAL quantile delta to iterate (0.15)\n"
+" -m REAL minimum quantile to output/test (0.50)\n"
+" -r FASTA bowtie indexed file of contamination/spike-ins to ignore\n"
+"\n"
+"Comparison options:\n"
+" -Q REAL quantile coefficient for score output (350)\n"
+" -S REAL sequence coefficient for score output (0.75)\n"
+"\n"
+"Misc options:\n"
+" -h this help\n"
+"\n"
+ ,VERSION);
+}
+
+std::string string_format(const std::string &fmt, ...) {
+ int n, size=100;
+ std::string str;
+ va_list ap;
+ while (1) {
+ str.resize(size);
+ va_start(ap, fmt);
+ int n = vsnprintf((char *)str.c_str(), size, fmt.c_str(), ap);
+ va_end(ap);
+ if (n > -1 && n < size)
+ return str;
+ if (n > -1)
+ size=n+1;
+ else
+ size*=2;
+ }
+}
+
+
diff --git a/clipper/t/in/join/phred.1.fq b/clipper/t/in/join/phred.1.fq
new file mode 100755
index 0000000..fca4744
--- /dev/null
+++ b/clipper/t/in/join/phred.1.fq
@@ -0,0 +1,4 @@
+ at M00517:196:000000000-A7GT8:1:1101:15158:1438 1:N:0:0
+TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAGTGCAAGAGGGGAGAGTGGAATTCCATGTG
++
+BBBBBFFBFFFFGGGGGGGGGGHGGGGGHHHHGHHHGGGGHHBFCEGGGGGGGGGGGGHHFGGHHGHGBFDGFFHHHHHHHHHHFBGGHHHHHHBHBFD?/?FDFCDGC2F>2DDHH2F22@><F1FFFFHGGDC..11F1FGH0G0DG00
diff --git a/clipper/t/in/join/phred.2.fq b/clipper/t/in/join/phred.2.fq
new file mode 100755
index 0000000..e63abb9
--- /dev/null
+++ b/clipper/t/in/join/phred.2.fq
@@ -0,0 +1,4 @@
+ at M00517:196:000000000-A7GT8:1:1101:15158:1438 2:N:0:0
+CCTGTTTGCTCCCCACGCTTTCGAGCCTCAGCGTCAGTTACAACCCAGAGAGCCGCTTTCGCCACCGGTGTTCCTCCATATATCTACGCATTTCACCGCTACACATGGAATTCCACTCTCCCCTCCTGCACTCAAGTTAGACAGTTTCCAA
++
+>ABAAF5BDFFFGGGACEEFGFBAAAEGHHBGEGEGGHHHHH53BEFGHHF1AAEE0BFFEEGGEHEEFEGEHHHGH14BFGHHHFHFEGGG4FHHHGGGGGFG33BGHHHHHHH1GHHHHHGH//FGFHHHH0GDFGG1<F1?F11 at GH1
diff --git a/clipper/t/in/join/test-m1.fq b/clipper/t/in/join/test-m1.fq
new file mode 100644
index 0000000..b1b48fd
--- /dev/null
+++ b/clipper/t/in/join/test-m1.fq
@@ -0,0 +1,12 @@
+ at MISEQ06:5:000000000-A2FRR:1:1102:14347:18774 1:N:0:TCCACAGGAGT
+TACAGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCGCGTAGGTGGTTCGTTAAGTTGGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATTCAAAACTGTCGAGCTAGAGTATGGTAGAGGGTGGCGGAATTTCCTGTGTAGCGGTGAAATGCGTAGATATAGGAAGGAACACCAGTGGCGAAGGCGACCACCTGGACTGATACTGACACTGAGGTGCGAAAGCGTGGGGAGCAAACA
++
+?<???<B?DDDDDDDDEEECFFHHHBFFHHHHHHHHHEHHHGHHHHHHHDHHHHHHHHHHHHHHHHHFHHHHHHHFHHHHHHFFFEFEEFFFFFFFFFFFFFFFFFFFFFEECEEEEEDFE:ACEFFEFFEEEEEEFDFDDD?AEEFFFCEFFFFFDDEDFFC?CEEEEDAEAEEFFFFFECEFFEEFFFFEFD>4488;>?'4??EFFFFFFFFCCEE??AEEE?0):??.?;>EEE8?'.4?DECC:C#
+ at MISEQ06:5:000000000-A2FRR:1:1102:10887:18775 1:N:0:TCCACAGGAGT
+TACAGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCGCGTAGGTGGTTTGTTAAGTTGGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATTCAAAACTGACAAGCTAGAGTATGGTAGAGGGTGGTGGAATTTCCTGTGTAGCGGTGAAATGCGTAGATATAGGAAGGAACACCAGTGGCGAAGGCGACCACCTGGACTGATACTGACACTGAGGTGCGAAAGCGTGGGGAGCAAACA
++
+?????BB?DDDDDDDDGGGGGGHIHFFFHHIIHIIIHHHHHHHHHHHHHHHHFGHHIIHIHIIHHHHHHHHHFFHHHHHHHHHGGGGEEGGGGGGGGGEGGGGGGGEAAEEGGGGGGGGGG?CEGGGGGGGGEEGGGGGGGGGEGGGGGEGGGGGGGGGDE:??CEGGGGGGEGGGGEGGEGGGGGGGG?EGGG<8<ACDGGGGGEGGGGCECEGEEEGCEC:?C*:CEE?8C'4CEE)?.48CDEG*1C#
+ at MISEQ06:5:000000000-A2FRR:1:1102:7201:18800 1:N:0:TCCACAGGAGT
+TACAGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCGCGTAGGTGGTTCGTTAAGTTGGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATTCAAAACTGTCGAGCTAGAGTATGGTAGAGGGTGGTGGAATTTCCTGTGTAGCGGTGAAATGCGTAGATATAGGAAGGAACACCAGTGGCGAAGGCGACCACCTGGACTGATACTGACACTGAGGTGCGAAAGCGTGGGTAGCAAACA
++
+??????B?DDDDDDDDGGGEFFHIHEFCFCGHHIIHHHHHFGHEHHHHHHHHEGHHIIHHIFFGHHHHHHHHHFFFFHFHHHGGGEGDDDEGGEGGGGGGGEGEGG4->ACECGGGGGGGGCEEGEGGEGECCGCEEGGG??:?CEGGGEEEEEGGGGGGGEGEGGGG?>GGC?C?E:CGG*:9CEEEEGGG8>8D>DC><AGGGECCCEGGEEGGGGE*:?:CEECC:CCDCD'0?C#############
diff --git a/clipper/t/in/join/test-m2.fq b/clipper/t/in/join/test-m2.fq
new file mode 100644
index 0000000..c7200de
--- /dev/null
+++ b/clipper/t/in/join/test-m2.fq
@@ -0,0 +1,12 @@
+ at MISEQ06:5:000000000-A2FRR:1:1102:14347:18774 2:N:0:TCCACAGGAGT
+ACGGACTACAGGGGTTTCTAATCCTGTTTGCTCCCCACGCTTTCGCACCTCAGTGTCAGTATCAGTCCAGGTGGTCGCCTTCGCCACTGGTGTTCCTTCCTATATCTACGCATTTCACCGCTACACAGGAAATTCCGCCACCCTCTACCATACTCTAGCTCGACAGTTTTGAATGCAGTTCCCAGGTTGAGCCCGGGGATTTCACATCCAACTTAACGAACCACCTACGCGCGCTTTACGCCCAGTAATTC
++
+???A?@BBDDDDDDBBFGGFFFHIIIFHHIIIIIIHIHHHEHIHHHHHHIIIIIIIIIIHHHHIIIIHIIIHHIHIHGHHHIHHHHHHHGHHHEHHHHHHHFGFFFGGGFGGEGGGEGGGGGBBEEGGGGAEGEGGCECAGGGCEGGGGGGGGEEGGGEGGGGDGGCE:CEGGGGGGG:*::CEC??CCGCEECA.888C:?CEEGECCEEGCC:*:8C).'9?8CEC8>8<>828?CECG'8C8:::::1
+ at MISEQ06:5:000000000-A2FRR:1:1102:10887:18775 2:N:0:TCCACAGGAGT
+ACGGACTACAAGGGTATCTAATCCTGTTTGCTCCCCACGCTTTCGCACCTCAGTGTCAGTATCAGTCCAGGTGGTCGCCTTCGCCACTGGTGTTCCTTCCTATATCTACGCATTTCACCGCTACACAGGAAATTCCACCACCCTCTACCATACTCTAGCTTGTCAGTTTTGAATGCAGTTCCCAGGTTGAGCCCGGGGATTTCACATCCAACTTAACAAACCACCTACGCGCGCTTTACGCCCAGTAATTC
++
+?????@@BDDDDDDBBFFFFFFHIIHHHIHHGHIIHIHHHHIIHHHHHHIIIIIIIIIIHHIIIIIIIIIFHHIHIHHHHHIIHHHHHHHHHHEHHHHHHFFHHHHHHHFFEEEFEEFEEEEBEEFFFEFFFFFFFFFFFFEACFFFFFEFEE?EFECEEEEFFFFEEEFFEFFFFF?CCFCEEE8*::CEFFFDDDDDECC?CEEEECA:AACCEA?EC*?8AACCCA;;?D2888?CEA8;AACCE###
+ at MISEQ06:5:000000000-A2FRR:1:1102:7201:18800 2:N:0:TCCACAGGAGT
+ACGGACTACTGGGGTATCTAATCCTGTTTGCTCCCCACGCTTTCGCACCTCAGTGTCAGTATCAGTCCAGGTGGTCGCCTTCGCCACTGGTGTTCCTTCCTATATCTACGCATTTCACCGCTACACAGGAAATTCCACCACCCTCTACCATACTCTAGCTCGACAGTTTTGAATGCAGTTCCCAGGTTGAGCCCGGGGATTTCACATCCAACTTAACGAACCACCTACGCGCGCTTTACGCCCAGTAATTC
++
+?????@@BDDDBDD5+CFFFFFHHHIIIHHFGFGHHIHHHHHIIHEHHHIIIIIIIIIIHIHHIIIHIIIHIHFHHHHHHHIIHHDEHHHFHHHHHHHHHHHHFFFFFFDFEDEFFDEFEBEE at EFFEF,,=AEEAEEEAAEE?EEEEEEFAECEEFECEFEDDED:C??AA?EEFFFECE*:CC?:?AEFE?8>822'81*??EE:?ACEEA?E*0.8.'4A88ACE)4822>8AE:AA?##########
diff --git a/clipper/t/in/join/test-ov-a.1.fq b/clipper/t/in/join/test-ov-a.1.fq
new file mode 100644
index 0000000..7afeec4
--- /dev/null
+++ b/clipper/t/in/join/test-ov-a.1.fq
@@ -0,0 +1,400 @@
+ at HWI-M01378:140129:000000000-A7785:1:1112:20058:10262 3:N:0: TATAGCACGC
+GGAAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGTTAGCGTTGGTCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCGTGGCGCACCCAATGCATAG
++
+GF8EGGGCE8=:6FFGGGD83=DDGFGGCDDCD:?:EEC+<@*,9CDACFF7;++,@?ECDCDGCCB+*4988AF?FG:699>A75:@8B<C5EDF)47EB3C(C5761(:GA<9?
+ at HWI-M01378:140129:000000000-A7785:1:1112:27324:10852 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTT
++
+GGGGGGGEGGFGGGGFGGGGFFFGGGGGCGGFGG at EGGGGFGFGGFGG?FG77AGFGFGG>FDDGGFFFGGFGFGGFGFFFFFFGEFFFF55EGD;51;>;AEBGGFF:?>FA)<7?<BF>FDB@>A7C>?BBCA<AFGC7<F34?G
+ at HWI-M01378:140129:000000000-A7785:1:1112:13807:10870 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCGCCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTT
++
+GGGGGFGFGGGGGGGGGGGGGGGGGGGGGGAFGFGGFGGGGGFGGFGFGGGFGFGGGFGG>CFGGG68AG>CGFCFFG=FAGFFGEFFFCDCEGC9FF?3=EGBDE38???G<<F?FBFA2<9<F25:C<6>:GA<AFFC<:C??FD
+ at HWI-M01378:140129:000000000-A7785:1:1112:12421:11010 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCA
++
+GGGGGGGGGGGGGGGFGGGGGFGGGGGGGGGGGGFGGGGGGGFGGFGGGGGFGFGGGFGGFGGGGGFFFGGFGFGGFGFFFGFFGFFFFFGGDDGBFFFFFFGFGGFFB?FGFFG??<BBBGFFFFA>CAGF?CB96 at C*.(<7:798E?
+ at HWI-M01378:140129:000000000-A7785:1:1112:7453:12346 3:N:0: TATAGCACGC
+GTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCA
++
+GGGGGGGGFFF;DCDBFGGGGGGGGGGGGGGGGGFGGEGGGFFFGFFGGG:CGFGGGFGD>FFCFGFFFG>FGFGCFC=4AGFFGC>6B5DCEED0:664()*7D>5,24?F
+ at HWI-M01378:140129:000000000-A7785:1:1112:24376:13941 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCAT
++
+GGGGGFG9=8DFFFGGDEGGFFGGFDFGFGDGCADAFGGCD at FGDCCFFGGFGFGCGFGCEC>CFG6B>FGFD9FFFG2*3A9FE3BFFADDDCDB5;?3=)A1>:B?F18?2<+=?AF
+ at HWI-M01378:140129:000000000-A7785:1:1112:10620:14798 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCTCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCA
++
+CEGGGFGA@=E:@9DFF,=@,=EFEGGGDFGGC,9CE8CDAEFGFCFGGGGFF8+4@>:>5@@D>GFAAF51=A469*)*3CFFFBFFFFGC5CC at E02F6;EFGCEF
+ at HWI-M01378:140129:000000000-A7785:1:1112:26422:14876 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAAT
++
+GGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGFGGGFGGGGGGFGGFGFCGGFGFGGGFGGFFDFDFFFCCCFGFG?FGD6AFFFG at FFCFGGGGGF>?15;);1C>3:??
+ at HWI-M01378:140129:000000000-A7785:1:1112:17229:16419 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCA
++
+GGGGGGFFGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGFGGGFGGFGGCCGFGFGGGFGGDGGGGGFFFGGFGFFGFGFFFGFFGFFFFFCDEEGF:;@F6BGFGGFF<?FGBAFFF<F>266AFDFCFA?40D<AF7C4>7CFFFG:EF
+ at HWI-M01378:140129:000000000-A7785:1:1112:9440:21170 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCA
++
+GFFGGGGGGGGGGGGFFGGGGGGGGGGGGGGGGGFFGGGGGGFGG9@:FGGFGFG?C>GDEGFGGGFFCGFFGFGGFGFFFGFFFEAFFFCGD57>A?F3(.A9GDB?F?:F>BC??BFF2FBAFDDG>A?2(C3))9:*4,C?FFF3C?
+ at HWI-M01378:140129:000000000-A7785:1:1112:13154:23703 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCTACTCAAGCCTTTGTCCGGGGGC
++
+GGGGF;,3EDE:,AEACE=DFCFGGFCE8DADFGGCFEFF,@*@7C:ADFEFGAGGGB at DFFG>F?FFFF>@C+5DAG=FFFFFF*+===*?=EDF
+ at HWI-M01378:140129:000000000-A7785:1:1113:9219:5995 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAGGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCAAGAAGCCTTGCA
++
+GGGF9=DADADAFFFFF,ADCGFCGGGGGC:E8 at EGGFC9CFFGFFGGCCEFGGFGGFGG5C?FCG6=A59FGFGFA>BFFG>FGFFFACC45CDB;11=0)=9 at C8??:5?24D6:96<<FB>?72*:)43:FA4A*9*44:B13 at 7C?
+ at HWI-M01378:140129:000000000-A7785:1:1113:13463:7044 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCA
++
+GGGGGGGGGGGGGGGGGGGGGG=DFCGGGGGGGGGGGGGGGGFGGFGGCGGFGGFFGEGGBFGGGGFF5CFFF at FFFG4AFGFFGFA:CFDD5ECEEFFFFDG>FGFF
+ at HWI-M01378:140129:000000000-A7785:1:1113:9754:8982 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGGATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCAT
++
+GCFGGDF9FGGGGGGFGGGGGDGGGGFFAFFD,EF8FGGFFDFGGFGGGGGFGGFGGFGGFFFDF5>AFC7BFBGC>D4AAGFFGF>FFFGG5E:B>;1;0;56 at E??FF0<<F
+ at HWI-M01378:140129:000000000-A7785:1:1113:7145:11813 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGCCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCA
++
+GGGGCGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGFGGFGGDGGFGGFGGFGGBGGGGGFFFGGFGFGGA>BFFGFFGFF6BFGGGGGFEFF at D>EFFGFFF?:GFFFFF<6:<FAFFBFGG44:?GAAA=FC<2BF2:C:F?
+ at HWI-M01378:140129:000000000-A7785:1:1113:14234:15031 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCA
++
+GGGGGGGGGGGGGGFFGGFFFGDGGGGGFFGGGGGGGFGGGGFGGFGG?FGFGGFFGAGGE7EFGFCBFFGFC at FGFGFFFGFFGFFFF8CDGGGFFF=6?DD0>=?FBF:F45C?4>FA)>>AFBAGG27?0:8).762403:(4C7F<
+ at HWI-M01378:140129:000000000-A7785:1:1113:18729:16203 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCACTGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCA
++
+GGGGGGGGGGGFFDGFCFGGGGG?FGGGGGGGGGFFGGGGGGFGGFGGGFF?CFFGGEGGFFGGGDAAFFGFEBFGFG at FFF>4:A:FFFGDEGGDBF0,=8E1>C?F(,3<8<FFF90..*<44<<F7<6??FB4<F at 95((417F?C?
+ at HWI-M01378:140129:000000000-A7785:1:1113:3306:19532 3:N:0: TATAGTACGC
+GGTAATGGTGACTCTGCCCTCGAACCTCTGTGACTATTTTGTGTTACCATT
++
+=7A>EE3=@FEFGCD;,688,6+ at 336A8D3@C,5,2@,?C;;C;9,,=CF
+ at HWI-M01378:140129:000000000-A7785:1:1113:14732:20813 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGGGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCCCCCAATGCATAGCATAGCTAGTGACGGTGTATCCAGAAGCCTT
++
+GGFFGGGGFGGFGFGGGCGGFGGGFGGGGGGGGGFGGGGGGDFGGFGGGGGFGGFGGEGEAGCD:CFF6C*:=:7F>C at FAFFFG4688BCDCG:>5;18;5A,7E;9<F0<<ACB?AFFBGBBF<):*47,(9AA<FB05(5:?7E
+ at HWI-M01378:140129:000000000-A7785:1:1114:18985:5310 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGGCTGCTGCCACCAAAAAGAGGATCCTCCAGGTCCAGTCCATGGTG
++
+FGGGGGGGGFGGEGGFGGGGGGGGGGGGGGG7EGFGGGGGGGFGGFGGFGFFGF at FGFGGFGGGGGFFFGGFGFGGE
+ at HWI-M01378:140129:000000000-A7785:1:1114:23540:7106 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGGATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAG
++
+GFGGGGGGGGGGFGGGGGGGGGGFGGGGGGGGGGGGCGGGGGFGGFGGGG@*CC=FG>EG=F95BDFFFDGFGFGGFGBFFGFFGF=@8A?DGE3(67:<D6>6EGFFFF>E44<4 at AF2.6<<=)6:DAG?,*)4<6DC<<E
+ at HWI-M01378:140129:000000000-A7785:1:1114:23450:10317 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAAGATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGTCGCACCCAATGC
++
+GFGAB9DFGGGGGGGGGCGGFC,=A8FFGG,23=9FGGCGGGFGC?;:==E at F<C, at AEE=7C at 8;9@*;9CG=DFFF2AFGFFCEF8B=C)*::(32C))/81CGDF188C
+ at HWI-M01378:140129:000000000-A7785:1:1114:14583:14170 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTCGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTA
++
+GGFFGGGGCCGFGDFE?FGGGGFGGG9=EGGFGD at D:DCC;FFGGACF8EFCDFE:8?EC>CC=7?9@*C>164;D640*3CAFG*/AB/5DE5<90?G(23*,:?)82(,3)6A4 at A?AAFAB
+ at HWI-M01378:140129:000000000-A7785:1:1114:7126:18810 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCACTGCATAGCATAGCTAGTGAAGGTGT
++
+DFGGDGFGFAFGGGGGGGG8DFCDFDBFFGGFGGGGFGGFGGFGFFCFGGA<F:9DFD9EBDC+=>BFA**8D=9CEFBFFG4?7@=+:BCCC*94;DE<?6E0>EFF0(8?)-A<F)16AFB)*-6>04C24D
+ at HWI-M01378:140129:000000000-A7785:1:1114:12409:19488 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGGCTGCTGCCACCAAAAAGAGGATCCTCCAGGTCCAGTCCAAGGTG
++
+GGDFFGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGFGGGGGFGFEGGFGGFGGGGGFFFGGF9>FF2
+ at HWI-M01378:140129:000000000-A7785:1:1114:9907:23323 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGTCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATATCTAGTGAAGGTGTATCAAGA
++
+GGGGGGGGGCFGGGCC?GGFGGFGGCDGCED7A:DFGGGGGFFCFFGGGGGFGGFGCDGGFGFGFGF6A*9FFFGF4*0>AGFFGBEFFFG4CEC>B@:;0(*4EEBBF?F6:23-/5B<)*:>FA<F:<6407424*:CA
+ at HWI-M01378:140129:000000000-A7785:1:1115:20594:2152 3:N:0: TATAGCACGC
+GGTAATCGTGACTCTGCCCTGGCACTCCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATC
++
+GEE,6E,6=D,8 at ACC>3,38D,,=@,DE?==:++3 at DAFA+;FDFDACGGFA,8,@*13**5+=;+B67;@?
+ at HWI-M01378:140129:000000000-A7785:1:1115:22303:4248 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCA
++
+FGGGFAEC>FGGGGGGFDFDFFECDGGFGG at DFGDFGGGGFFFGGFGGFGGFFGFGGFGGDGGGGGAFFGGFGBFGEG:>AGFFFFC?A+:CDE<>;0CDFFDBCE<?
+ at HWI-M01378:140129:000000000-A7785:1:1115:21004:5310 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCAACTCAAGCCTTTGTCCGGGGGCCTGGCGAACCCAATGAATAGCATA
++
+GFEEGDCADFFGE9EDGGGGGFGCEG,EDFF?ADDGGGGGGGFG9FG,=F7*=F at GF5EG9?FGF7BAA53=9*4CE>EF4E5>FFAE98CGDGC6(7F0(((,):7?B?:7)6C<F<FA
+ at HWI-M01378:140129:000000000-A7785:1:1115:3643:7099 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCCTCCACTCAAGCCTTTGTCC
++
+GFGFGGGGEFFGGGGFGGGGFC, at DGGGG8E?F+5 at CGGGEGFGGFGGFGCAFF=6E>E>9CGGGF9BFC*AE=*CED();CFFFBECFC
+ at HWI-M01378:140129:000000000-A7785:1:1115:19291:10393 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGTCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTT
++
+GGGGGGGFGGG?FGGGGGGGGFGFG?FF8AGGFFGGC=FFGGFGGFFGFGDEC,0EFEEDFGGG>FF>AFGAGFFGEG=FFGFFGF=EFFDDGE3;06C;;1?(9C>?0?3FAA?<FBF>2FFAFFFGFBG0.:34494*48??7>?
+ at HWI-M01378:140129:000000000-A7785:1:1115:26788:11790 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGATGATCGATCCCATCCACTCAAGCCTCTGTC
++
+EF=>;>=8=E9 at 8;BDB9DD@?FFFGCDFG,?E9DF:D8=:=*@CAC:<+2*=5:EE>*9*=<=*39>0;F+CB496 at 5AAGFF,;=7@
+ at HWI-M01378:140129:000000000-A7785:1:1115:22293:14738 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAG
++
+GGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGF7D=FEGGGGFFGFGFFGGEFFBGGEGGEGGGGGFFFGGFGFFF4>D>6CFFGFFFFFGGGGGFFF=276<9GGFF(407>DGAFBFFAGAB?AA::<<>:DB<AFFG
+ at HWI-M01378:140129:000000000-A7785:1:1115:3156:15238 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTTAAGGTTTATCCAGAAGCCTTGCA
++
+GGGGGGGGGGFGGGGGGGGDFGFGGGGFGGGGGGGGDFGFFDFFGAFGFGGFFF6@@>CDDG7CC?+=FCGFEDFD?F at FFGFFGFCECFGGDGGFF?56=3;;<CDFF73?<)<)74*.-744=))*::C4)04)4 at 405<?470CCDF
+ at HWI-M01378:140129:000000000-A7785:1:1115:27886:16559 3:N:0: TATAGCACGC
+GGTACTGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCA
++
+GGEA9B=EGGCGEFGGG?DG888?F?FGC96CF at FGGGGDFDACFFFFFGGFF7CGGFDG>GDCFGFFFGGFFBFGFFBFFGFFG**1=F<):5)(,:=4(1((1*;11:?DAAG)0)9<27>2=4:::26>7FF>A?F
+ at HWI-M01378:140129:000000000-A7785:1:1115:22345:18846 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAA
++
+FGGGGGGGGGGGGFBFGGFGGGCFDDFGGGGGGGGGGGGGGGFGGFGGFFF7CGCFF*CGDGGGGGFFFGGFGFFGEGFFAFFFGF6EFFG:5CC>>DA03((-CEEFF
+ at HWI-M01378:140129:000000000-A7785:1:1115:13309:19306 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGG
++
+GGGGGGGGGFGGGGGGGGGGGGFEGFGGGGGFDFGCCFGGAFFCFFC:CGGFFGFGGFGGEFDC7?FA*C*=C at 4CA9);@C5*=AEF+B?DGDD
+ at HWI-M01378:140129:000000000-A7785:1:1115:24515:20126 3:N:0: TATAGCACGC
+GTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCA
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGFGGGGGGGGGGFGGFFGFFCEFC at GGFGGAFFGGGFFFGGFF@ACBGFFFGAFFFE<A?D5CGDFF<G at 6?(6DE>0?BFFA<F>44 at A30-4?6>FG?G04>>24@
+ at HWI-M01378:140129:000000000-A7785:1:1115:15717:20410 3:N:0: TATAGCACGC
+GCTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGCATCCAGAAGCCTT
++
+G8EFGGFGGCGGGGGGGGGGGGGGGGCFFGGGGGG8DFGGGGFGGAFGFGGCFGFGGAG>AGGGGGFFFGGFGFFG6FFFFGFFGFF<FFGGGGDBFFC,66;2CG>:<??E)6C<F>*-)2.<F22:>>C?(2)-66?*57>F73F
+ at HWI-M01378:140129:000000000-A7785:1:1115:20074:21744 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGCACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCTCATCCACTCACGCCTTTGTCCGGGGGCCTGGCTCACCCAATGCATAGCATAGC
++
+G?EDC9,9 at 6E88;>D9F=E at F,=E8DFGD:9:9F82E,=EGFCC;C9B9:*=96,D*@DEG>F+*+=+<73<.;>AD:*9:?6>9*9F8DGCEG at 1;*,8(6)2:A<(8>F4>9)74BA2D
+ at HWI-M01378:140129:000000000-A7785:1:1115:10327:25119 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGGACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTT
++
+GGFFGFCFGFGGGG,=DFDGGGGGGFGGECDEFFGGFGGFGGFGG?EE<7E5BAACDEGGD>B823B+;**=15A7/0-?AEFFF
+ at HWI-M01378:140129:000000000-A7785:1:1116:21394:3317 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCACCCCCTCAAGCCTTTGTCCGGGGCCCTG
++
+GFFA>9ECF89BEE9AFFGGGGG,,DBFGFGGFGCFD====FFC7FDG?CF7+AF6C5 at C*<<C:7BEAGC*=5*=*;)>FGF),84:@:DDG5)6A??
+ at HWI-M01378:140129:000000000-A7785:1:1116:21781:3983 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCGCCCAATGCAT
++
+GGGGGGGFFGGGGGFGGGGGGGEFGGGGCE@=CGGGGGFEFFFGGFGGGGGFGGAGGEGGFGGGCDACFGGFGFGGACBBAGFFGECFFF<CDC:9)6?)86*)0>086::F<B
+ at HWI-M01378:140129:000000000-A7785:1:1116:19367:5061 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCCCACCCAATGCATAGCATAGCTAGTGAAGGTGTA
++
+GGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGFGGGFGG?FFGGGFGGFGGFGGFGGGFFFFFGGFGFGF9CBEFFFFGFFGFFGCCGFFFFFFF(;>DE?F?02644C7:49<)*64?24>FA:FFGF
+ at HWI-M01378:140129:000000000-A7785:1:1116:22704:5419 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGC
++
+GGGFGGGCFGGG;EEGGGG?EC?FGFGF,=FFGGGFEBFFC=FFGFFDFGF7@:+CFDGGFGGGGFF at 6;CB,=ACF4BF4??>?6;FFFGDD:>@EFD316E58CFF(34F
+ at HWI-M01378:140129:000000000-A7785:1:1116:3314:6852 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGTCAGCGTTGATCCATCCCATCCCATCAAGCTTTTGTCCGGGGGTCTGGCGCACCCA
++
+GGCFGDFFGC>8=EGGCFFD at F?=FCCFEDD9=C7 at DF1CCFFFDFGCFEGFGG?FC?EC5*+?2;BC0*7:5>7,1;7>69*;C6;6>F*2)/)(:53)61EB>C<?
+ at HWI-M01378:140129:000000000-A7785:1:1116:12883:11398 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGFGGGFGGFGGGGGFGGFGGFGGFFGGDGFFAFFFGDGGFGFBFGFFEF4=8FGGDCDFBDFFF0CBEGFFFFFGADGFFAF<7CAAF7AGF2:*(;ABFFF+8(04:?G
+ at HWI-M01378:140129:000000000-A7785:1:1116:4257:14374 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTTGCGACCCCAATGCATA
++
+GGG9DFGGFFGGGGGFFFGGGGF, at FGGAFGF:EEFGGFGCFAG?+ at A8FC9DGFFGEGG>@CDFCFFFGFCFDCGFGF4*AFFGF4CCFG))4=6BF)2;6*)0:<<BF0C>AC
+ at HWI-M01378:140129:000000000-A7785:1:1116:21249:16016 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGTCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGC
++
+GGGGGGGGGGGGGGGGFFFFF?DFGGFF8EFGGGGGGGD at 7FFGGFGGGGGFFFFGGEGGEGGD>FFEFGFFGFFGFGFFFGFAFE=CEFGGGGD>>?;58(C5:E2<<:0C
+ at HWI-M01378:140129:000000000-A7785:1:1116:26580:20568 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGG
++
+GGFGGGDFGGDCFFFGFFGFGGDGGGGFFFGG8EFDFAFGG?6CCFC:<CGFCF5<FAGG>C78DFF=FFCBDDFFFGBFFGFFC@;FEFCGDG
+ at HWI-M01378:140129:000000000-A7785:1:1117:15050:1908 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCTGGGGGCCTGGCGC
++
+GGGFCGGGGGGGGGFFGGGGGGFEGGGGFF:=DGGGGGGFGGBF?FGGFGGEFCFFC>E***2?CGF at CDCFD4*7AGF=*=AFG>*2*=:CFE;@>;1>@9E
+ at HWI-M01378:140129:000000000-A7785:1:1117:15528:1981 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTAGTGTTACCATTGCCAGCGTTCATCCATCCCATCCACTCACGCCTTTGTCCGGGGGC
++
+8FFG,@,ED39F,,,73 at F8D68,6,@,6@:D,6=DGGG+,++2=<A:=?F77;AF?*@>55BFFCAE5F>8@<;9;D52*=FF***+*128DCEF
+ at HWI-M01378:140129:000000000-A7785:1:1117:10756:3719 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTG
++
+GGGGGGGGGGGGGGFGGGGGGGGGGGGGFGGGGG7FGGGFGGFFGFGGFGGFGGFGGFGDDDFFFGFEBFGFGDFG?GFFAFFFGFFG?FGDDGEBFF?>D>EBGGB?<B:<.):46<F2.>AA?2::C<C2,><FF6C48?GFFFGF
+ at HWI-M01378:140129:000000000-A7785:1:1117:24534:4247 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCCCTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGC
++
+GGGGC;DGG=EG:D99FGGGDFCGGFGGFGGGG=EGGGGFGGF:7<CFAGGEGCCFG*@50*5=BCA;BG>BD)*35D==*CFFD8>@EFCDGE>9(,6569GF87521((3.4?-<A?2<G
+ at HWI-M01378:140129:000000000-A7785:1:1117:13251:7519 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCG
++
+D<FGFCF8EFEGDBFGGFDFDFF?EFEDGA at C,29=9CEFGFFG?FG<9;EC7:<@E?E59F at BA5+AC?CFF=F7*;):?GF>:A*28 at C
+ at HWI-M01378:140129:000000000-A7785:1:1117:14612:8918 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCA
++
+GGGGGCFGGGGGGGFCGGGGGGGGGDGFFGFFGDFFCGCFC?D at FFGGAGF@FFACGFGE5>FFFFFA8FFFG>FC*?5 at FGAF7>;@CFG7CG:6 at DF>?@EBGG>?
+ at HWI-M01378:140129:000000000-A7785:1:1117:2770:10016 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGTCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCCTAGCT
++
+FGGGGGFFGGDGGEFGGGGGGG,DGGFGEGFFGGGGGGGFGFFGGFGGFD7=FGFCCBED>GGFF598=DFFD>FCCGBFFGFFGFEGEFC<DD30(62FD(83:D3:6:>GFA736)*42CA
+ at HWI-M01378:140129:000000000-A7785:1:1117:7058:13477 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTGCCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGC
++
+GGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGAFGGFGGFGGFGGFGGEGGFGGBGE>CCFFFFCCGGFFB4;69):AFFFGF=GEFD<CE:>F;;FF6E0CDD<?BFG<<736)06<<).8<:2>AF?2><4<6>433C:3?G?F
+ at HWI-M01378:140129:000000000-A7785:1:1117:20535:14960 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCA
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGFGGFGGFGGFGGFGGFGFFGGFFGFFFGFFGCFGFGDFFGFFGFFGFFGCCE3 at B<=>?98:EGF?07?GFBFBFFFFBGAFFB9DF>4?>FFFFFG6<2*4(4E2:?
+ at HWI-M01378:140129:000000000-A7785:1:1117:12925:16162 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGTTAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATA
++
+GGGGGGGGGGF8DDBFGGGGGGFF?8EGGFFFAEEFGGGF:?FGGFFGF?BA7+=C759AA9CCFGFFC*;9D>F?*3:69FFAFFFCE=C7?E5>;61)(,*6ED>1(4:GFAF
+ at HWI-M01378:140129:000000000-A7785:1:1117:16205:24882 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGGCTGCTGCCACCAAAAAGAGGATCCTCCAGGTCCAGTC
++
+FCFFGGFFGGFGCGGGGG6DEF8FFGGGGGE==?6=DD851+;4?F,AFDGFFD*@DCGFFGGFA>A56?
+ at HWI-M01378:140129:000000000-A7785:1:1118:9968:1647 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCATCGTTGATCCATCCCCTCCACTCACTCCTTTGTCC
++
+8F>D=EFADAFDA=A,9D+8DCD=@8,73D,6,,2=+8==CDFGG<,<BFF<CBF795CF)<9CFCFA*3**17*;6;:)+5<>DEFG?A
+ at HWI-M01378:140129:000000000-A7785:1:1118:9715:1754 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGG
++
+GGGCCEFGGCFG=8DFGFDGGG?DFGGFGGD=ECFFGFGFGGFDCFGGAGG at FFB79*CA85BFC7+:AA*31<A969B=4C=AF=*=E6CGD
+ at HWI-M01378:140129:000000000-A7785:1:1118:9533:1899 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAA
++
+FGGGFGGGGGFGGFACGFDGFF?CCEE8 at ED+:EFEFG8D?8DGGEGFFFC7FF?9C*ADBC6B7*?8CFGFGDAF6*):9<BFG3:7>8C745>)6;?3:9E5):?0?
+ at HWI-M01378:140129:000000000-A7785:1:1118:8691:1931 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAA
++
+FGGGCGGFGDFFDGGFFGGGF8=DFGGFAAEGGAD8=2 at 7==FDGFFC9FGCGF?,;5CB5?B+:9<AFA71C59DEG=B>C2?GE*BCF4<C=AB>D(2(,=BBE:?B
+ at HWI-M01378:140129:000000000-A7785:1:1118:23298:2242 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCC
++
+ECF;>CCDEGGFDGCD,C?FD6,=DD,=, at FDDEFDFGDFGGF=?*@<9CEEG?89A**0)*3?8D67>A
+ at HWI-M01378:140129:000000000-A7785:1:1118:23073:6508 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCACAGCTAGTGAAGGTGTATCCAAAAGCCTTGC
++
+GGGFGGGGGGGGGGEFGGGGGFFGGGGGGGGGGGFGGGGFGGFFGFGGFGGAFFFGGFGFFGFFGGFFFFGFGFFGFGFFFGFFGFEGEFCDGED>@F;AFBGEFGFFFB?GDA at 2@2?::FB4?FFFF>+(,?AFF<>*6:2(7?F0@
+ at HWI-M01378:140129:000000000-A7785:1:1118:21171:9133 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATACTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCA
++
+GGGGGGGGGGGGGGGGGFCFFGGGGGGGGGGGGGFGGGGFGGFGGFGGFGGFGFFGGFGFFGFFGGFFFAGFFFFGFGFFFGFFGFFGFFGGGDFD6?FFFB5)78?BFF?GAAFFFFFAAF9>?72 at FAFFFFFFFFGGA:BBB?G:?>
+ at HWI-M01378:140129:000000000-A7785:1:1118:18189:10068 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTT
++
+GGGGGGGGGFGGGGGGGGGGFFGGGGDFGGGGGGFGFFGFGGFGGFGGFGGFGFFFGFGFAFFFCGFFFFGFGFFGFGFFFGFFGFFCCFGDGDDE>F?FF6EEFG?FFFBFAA4)<<6<34.:?--9;>G4(92:ABF7<7:?<7C
+ at HWI-M01378:140129:000000000-A7785:1:1118:9717:10455 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTACCCAGAAGCCTTGCA
++
+GGGCEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGFGGFGFEGFFGGFGFFGGFGD=FFFGGFFFFGFGFFGFGFFFGFFGBFGFFG:?CD>@<7F<0=>DGFF?F>GFF?7FDFA>69A?>ABGAEBBF))-465(4??BFG:C?
+ at HWI-M01378:140129:000000000-A7785:1:1118:6493:13149 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGAGGGCCTGGCGCACCCAATGCATAGCATAGCTAGCGAAGGTGTATCCAGAAGCCTTG
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGDFGGGGFGGFGGFGGFGGFGFFGGFGFFGBFGGFEF5CFGFFGFGFFFGFFG=EGFFGGDG4B=;@F;6EDFGF@<@EC<CFFAEFF at F<AFB,;)3:8?FF244CFAFFFBBG?
+ at HWI-M01378:140129:000000000-A7785:1:1118:9182:16529 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGACTATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCT
++
+GGDF9EGGGGCFAB98=>DFFDFGGF, at 6E=+=,==ECF9F?FC9*7 at BFGA88<275 at 9)C9 at F5+9F5511)3;*;))*4-?F@*2/=CCC53;>F
+ at HWI-M01378:140129:000000000-A7785:1:1118:21261:19014 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCA
++
+FFGGGGGGGDGGGGGGGGGGGGGGFGGGGGGGFGBFGDCFGGFGGFGFFGG<FFFGFFGFACF>DFFFFFGCG>FGEGB=F9>FDEFGF6CDGG33:DD>@FGDFGBBF7:CABF>F<B<BFF24ADFGAGF77244)74417:??GFG?
+ at HWI-M01378:140129:000000000-A7785:1:1118:17204:20285 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAA
++
+GFGGFFFGGDCFFGFD>DDFGF?DFGFGGGGGEFFCGGDFGGFGDEFCCFGFGFFGG>C>95BFGGF;AAFFG=FGFGDE4EFFF=EGCADDCE5=:615?BGFDGFF??(04)/.<AFFB?<<2ADFG
+ at HWI-M01378:140129:000000000-A7785:1:1118:19019:20700 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCA
++
+GGGGGGFFGGGGGGGGGGDGGGGGGGGGGGGGGGFGGGGFGGFGGFGGFGGFGFFGGEGEF>BFGGFFFFGFGFFFEFFB4C at FGE=D<FGGGGBE at FFFF9=37E??FFBGB29)6:*).9A24AAFFAC?0774:>F
+ at HWI-M01378:140129:000000000-A7785:1:1118:24760:20968 3:N:0: AATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTTC
++
+GFGGGGGGGGGGGGGGGGGGG?DDFFFG:AFCGCF:DFGF7=6FGFGGFGFCFFFFGFG>@GFFGGFFFAFFFBFG*0<@AGFFGE4BCCC54CABFFDFF0=;<E:B01,+).83?<F<74)-.))106C?(1)<2<C7A:::4:?<?
+ at HWI-M01378:140129:000000000-A7785:1:1118:12797:21177 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGCTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGC
++
+GGGGGGAFGGGDFGDFFFGGDD at GGCGFGFGGGCFFFGGFGGFCEEGFCFGFGFFGG5C>BGFFGGFFFFGFGFFGFGFFFGFFGFFGFFD44CAABF?FF0E at DE?:??>GFF=)9<?22 at 9A744B7<E7(9<4>AGF>0487(::C
+ at HWI-M01378:140129:000000000-A7785:1:1119:12200:9232 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCACGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATCGCTAGTGAAGGTGTATCCA
++
+GGGGGGGGGGGGGGGGGFGGGGCEGGGGGFC+ at FFCFGGG8FFEG?FFFGG+:@96EDGG5 at CFFGFFFDCFGF4?EGFA9DFFGFCFFF57?C5;A01.=:GFFGFFFF:FAFD)8:9)(/.3;<4BC2C?:CAAFAF
+ at HWI-M01378:140129:000000000-A7785:1:1119:25522:9543 3:N:0: TATAGCACGC
+GATAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCTGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGG
++
+D,FCE;,=DF8@:5E99E1, at 68DDF9EFDFFFDGCACCFCGFGFCEAF@EFGF7CCDCD5*;FFGFBFD>AFDFGED2*.>@FGFFFF85CC5C;)(/:?0C1 at E.(48?G2):2>>4).*463AA6F<G
+ at HWI-M01378:140129:000000000-A7785:1:1119:19946:11946 3:N:0: TATAGCACGC
+TGTTGGGCATTGGACCCCAGAGGCCTAGGGTGGCCCTGGCCCCAGAGAGACCC
++
+CEGGC:C?:,<,<C?E*==?8==E=>:*:FC7=FGGC5F4C30:D:;:D5A3C
+ at HWI-M01378:140129:000000000-A7785:1:1119:26527:12673 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGGCTGCTGCCACCAAAAAGAGGATCCTCCAGGTCCAGTCCATGGAG
++
+FGGGGGGFGGGFGGGEDE8FGG8DGFFCCGGGGGDEGG7C76*@=AEGGGFFGA>CG6EF5CD66C>AC;FA@*/*)
+ at HWI-M01378:140129:000000000-A7785:1:1119:25841:13619 3:N:0: TATAGCACGC
+GTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGG
++
+6FCFGGG=BDFGA,, at F8?8D8DGGFGGFGGG8:DGGFEGGGFGGFGGFGFFGFFGC9C7FCFFFCCF*;C9EBA==FEFFGF48:9:=59CD
+ at HWI-M01378:140129:000000000-A7785:1:1119:20076:14454 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGFGGGFGFGFFGGFGGFGGFFGFFFGGAFDFGFFDFFGFFGFFFFFGGGGGFEFFFFFEBEGFFBF?CAFGBFF>>BGF<BFFFC64::FFFFADFB?G:::F:?
+ at HWI-M01378:140129:000000000-A7785:1:1119:26820:14628 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGGCTACTGCCACCAAAAAGAGGATCCTCCAGGTCCAGTCCATGGTG
++
+FGGGGGGGGGGFCFFGGGGGGGGDFGFFGGGGGGGGGGGGGGFGGFGGGGGFGFFGGFGFFGGFFGFFFGGFGFFDE
+ at HWI-M01378:140129:000000000-A7785:1:1119:5209:16156 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTCGTGAAGGTGTATCCAGAAGCCTTGCA
++
+GGGGGGGGGGGGGGGGGCGGGGFGGGGGGGGGGGGGGGGGGGFGGFGGGGFADFFGGFGGFGGFFGFFFGGFGFFGFGFFFGFFGFAFFFGDGGDF>D7)69EBD5 at FFFBCBAC772<B7FA)-7:45492:GA<A-698(+(.:FFGF
+ at HWI-M01378:140129:000000000-A7785:1:1119:21229:17686 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATCTTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACC
++
+GCF,ECECE, at DGFEEEG,=@E,AGBFFGCFFCCD,@::@FG?;FAC,=CFFFC<7E*C*9CCFFGFFF?9+10;>4*<A3;>FCE6C*=CDGCC9>??FD6?17C
+ at HWI-M01378:140129:000000000-A7785:1:1119:6516:18986 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCA
++
+GGGGGGGGGGGGGFGGGGGGGGGDFGGGGGGGGGGGGGGGGGFGGFGGGGGFGFFGGBGGFGGFFGFFFGGFGFFGFGBFEGFFGFCFFFDGGGGF>DFFF at G9FEEFF<7FFF>AFFBF7G>A<A)7::4??GA<A<A=32<(:3C)<?
+ at HWI-M01378:140129:000000000-A7785:1:1119:11518:19811 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAAAATTTTGTGTTACCATTGCCAGCGTTGATCCACCCCATCCACT
++
+4DFGGDFD=@3=EDFGGFF8D+,6 at FGFG==?D,+6,=9F83;@@C:,<ECFG*<@FEE**CGFFF**:9DF9>>CE
+ at HWI-M01378:140129:000000000-A7785:1:2101:10492:6392 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATCTTTCGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAACCCTTTGTCCGGGGGCCTGGCG
++
+FBEFGGFGGFGFGG9AFF8DFGFGGGGDFFGF,2=,6E=+ at D?77EGAFDD9DCFCFDE7AF7CC*++0;9BF4CC+*)**6:CC)0=B+:/:ED33;03AC
+ at HWI-M01378:140129:000000000-A7785:1:2101:21110:9989 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTCTCCGGGGGCCTGGCGCACCC
++
+GFGFDGGGGGFE8;FFGGGF8DDFGF=ECD,+CFGFGGGGGFAGGFGGFGF+BD?DC*:DB@<=:7188C*=B at 4>3ABA4D?C<>*2=:CDECD5:0(95)212CB
+ at HWI-M01378:140129:000000000-A7785:1:2101:25521:14328 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGC
++
+GGG,EFGGGD;DDFFGGGGGGGFGGGGGGGGGGGGGGEGCEGFGGFGGGGGFFF5DF5CD>GF>FD at 9CF5BG*7>ADFF>FFFFF=GGC7DGEDF>70<A
+ at HWI-M01378:140129:000000000-A7785:1:2101:6147:17939 3:N:0: TATAGTACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCAATCCCATCCACTCAAGCCTTTTTCCGGGGGCCTGGCCCACCC
++
+E+@>CDG8;DEGCFF899=B86,1==;FEA at 9A=2 at EGDGGGBFG?9CC+71=;?6D>4 at AFF>+3?=5**1>A7DCGB49F4*5**3;C77CC3>;8=5)*2:;FF
+ at HWI-M01378:140129:000000000-A7785:1:2101:7510:19246 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCACGCCTTTGTCCGGGGG
++
+G<8 at D9D8ECEFEF=AD>DCFDF88,,,,63+ at 2DA:FADGCAGG7@<=?CB:=<D+*@CBG+;:>AC=*3BFF>8BF:3*>:DEF=FF8?75EC
+ at HWI-M01378:140129:000000000-A7785:1:2101:13482:19637 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCCTAGC
++
+GGGG=DEFEEGGGDGGGGGGGDEGG8EFFF=DFGGGGGGGGGFGGFGECFF+<DFGGFGGBGDAGGFF)9;=CFFG>>BF6CFGGB4 at 8:D4C55:5<?7A7<(3EB3:20:7 at F<8):?:?
+ at HWI-M01378:140129:000000000-A7785:1:2101:9133:23948 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCAATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACC
++
+FGGF;E,9B8>DFGFA9,1=DD, at FCGGGFGGD+9EFGGDFFFGFAF9FCFFC?CDDAEG5*2B+4B6=278D@?C+CDF4EFG,**5=1*)4B)0)3(8AGG96?
+ at HWI-M01378:140129:000000000-A7785:1:2102:23669:4942 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCA
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGFGFGGGGGGGGGGGFGGFGGGGGFGGGGGFGGFGFDCDFFAFFFGFFGFG=AFGFGGFFFFFDDEGGFFE at C?:EBGGGFFF7FFA9>?FG4)>46?7<FGFG?FGF2=FC9*.?<)<F:F?
+ at HWI-M01378:140129:000000000-A7785:1:2102:18023:6868 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCCTCCCATCCACTCACGCCTTTGTCCGGAGGCCTGGCGCACCCA
++
+GGGGEBDGEAEGGFGCFF8D at EDFGFGGFGFF8,=C8ECFA=?EFFGGGGF8CGF86*ADD>7C+**3:0*4:>F,+ at 7**49CE3+=@8=5;:)(86;5;>E6DEGA
+ at HWI-M01378:140129:000000000-A7785:1:2102:20537:10795 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTT
++
+GGGGGGGGGGGGFGDDGGGGGGGGGGGGGGGGGGGGDFCFGGFGGFGGCFGFGGGGGFGGFGGGGGFFFGGFGFFGFGFFFGFGGEFFFFGGGGGFDE at F@3=9GGC5?B?F=AGGFFFBAFAAF72C:AEF:GD<?DF34<665?E
+ at HWI-M01378:140129:000000000-A7785:1:2102:11278:14783 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGTCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCA
++
+GGGGGGGGGGGGGGGGGGGGFGGGGGGGGGFGGGGGGGGGGGFGGFGG7EGFGGGGGBEDEGGGGGFFFFGFGFFFFFDFAGFGGFFFFFGGGGD9DFFCF)=0DGD;?<:EF<<:FFG)5FAA=>AGG<C?2@>>F>DEFFFG at 7C2<?
+ at HWI-M01378:140129:000000000-A7785:1:2102:15247:16145 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGGGAATATTTTGTGTTACCCTTGCCAGCGTTGATCCATCCTATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACC
++
+DGGGACFGG,,63;AE=@EGD?FGG,;DDG,@=?FG:D=DCGF?EFFA+ at DA69C,D?GG5 at F>8CA8F*=9D?EC+;);AF>9<788=FC*:5)68B7F0)14>E
diff --git a/clipper/t/in/join/test-ov-a.2.fq b/clipper/t/in/join/test-ov-a.2.fq
new file mode 100644
index 0000000..f7d7513
--- /dev/null
+++ b/clipper/t/in/join/test-ov-a.2.fq
@@ -0,0 +1,400 @@
+ at HWI-M01378:140129:000000000-A7785:1:1112:20058:10262 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGACCAACGCTGACAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACACTTTCCAGGGACACATCC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGGGGGGGGGGGGDFGGGGGGGGGGGGGGFGGFGGGGGGGGFGFFGGGGGCFFGGGGGGGGGGGE9DFG5?:FEGG7FG:DFGGG at FCFGGGGGGGGCF6FGA7CGCE@E8FF6>FGGC1:5/4:?,><CAEF9?FG at CCFF9;CFGEFGGEC<EF7CCEBF5>G?++=*)(22C>94C<(>3(9:?F
+ at HWI-M01378:140129:000000000-A7785:1:1112:27324:10852 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGEGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG5EGGGGFGFFGFFBFFGGGGGBF3AFFFGFFF7FGGGFFG??F36F?:C:F
+ at HWI-M01378:140129:000000000-A7785:1:1112:13807:10870 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGCGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGCFGGGGGGGGDFGGGGGGF??FGGFGFGGFCGDEFFFGFGGFFFFGGGFFFGBBFF:<27F<F00;G>::7?F?
+ at HWI-M01378:140129:000000000-A7785:1:1112:12421:11010 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDCFFFGGFGGGGGGGGFFFFGFGGFF67GGGCFFGFFFFFGFFGFFFBBGBB<BFFF
+ at HWI-M01378:140129:000000000-A7785:1:1112:7453:12346 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEFGEGGEGGGGGGGGGGGGGGGGEGGGGGGGFGGGGGGGGGGGGGGGGGGFGG6,BFGGGGGCGGDGFGFGEFGGFGGGGGGGEBFFFGFGGF?FAGDFGFF>B6FFFGBFGFFFBBGFFF?FF:
+ at HWI-M01378:140129:000000000-A7785:1:1112:24376:13941 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCCACCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGG6FGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGFGGGGGGGGGDGGGGGGGGGFGGGGDGGGGGGGGGGGFGGGGGGGGGG?FGGGGGGGGGGCFFFFFDGGGGG6FEDEFFGGGGGGGGG=CEDGFC?CFEFFFFGGGGGGGGGGFF?4?FEGGGFGGCCDFFFGFGEFFFDFFGG=:G6:>514>?C6>(((1(4:BFF?
+ at HWI-M01378:140129:000000000-A7785:1:1112:10620:14798 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCAAGCACAGCCT
++
+GGGFFCFFFFEEE at FFFGGGFGCFAFFGGGGGCEFE=FA?FGF<F at FDFEGCFF?F9C?F<EGFFAFGGG8EA<DAFFG<9?EBEDD at CFF<9EFGGGFGGFFEFFFEGGAFGGEGEEGGGGFEGGGGG at FGGCGFGDCGCF,:DCGC7 at DF@FGCFGEC1=5:C=:0>EFCEGGDGG*2C<F7<C6C36C+/?:+:AE6*5:D33)52@?F<7CC7F?54?F3177?G17((->::816FB
+ at HWI-M01378:140129:000000000-A7785:1:1112:26422:14876 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGC
++
+D at FGFCFFFGGGC<FCFGFAFG at CCFFGGGCFGF@EFGFEGGGGECGGGGGGDGEFAEGFGGGGGGGGFGGGGGGGG=EGGCF<,FGGGGGGGGGGFFFFFFEE<=FBFFCGFGEFEGCFFFGGGGFGDGEEGGGF<D?CEF;F8CCGGGF8FFEBCGEFECGGGCGGGGG,?@9?CFGGGF7CFCC96AFGFGG7?CFGE:>DF89>CFFFF::+:/>EFFF5:D:>E:@
+ at HWI-M01378:140129:000000000-A7785:1:1112:17229:16419 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAGGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFFGGGGGGGGGGGCGGGCFGGGGGGGGGGGGGGGGGFGGGGGGFGGGGGGCGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFEFFGFFGGFGGGGGGGGFFFFD>ECF at F>GGGGFFGFBFFFGBBGFFFFBCB?:?BF:
+ at HWI-M01378:140129:000000000-A7785:1:1112:9440:21170 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTAGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGDEGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGFGFFGGFFGGGGGGDEFFFGFFGFF?<GFGGFFG?BFFFG?DG?FBF><><:7?FF
+ at HWI-M01378:140129:000000000-A7785:1:1112:13154:23703 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGG
++
+GGGGGGGGGGGGGGGGGGGGGGFGGGFGGGGGGGGFGGGGGGGGGGGGGGGGGGFGGGGGGGFGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGCCGGGG9FGGEGGGGGGGGEGGGGGGGGGCFGGGGGGGGGGGGGGGGFGFFFFGCEEDGGGG8<FFEBFGG9<CFFGGGG?DFG?FG6=FF79 at 79>5=55A;<0*9=7>CG7*2??
+ at HWI-M01378:140129:000000000-A7785:1:1113:9219:5995 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCCTGAGGGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGFFFGGGGGGGGGGGGGGGFFGGGGGGGGGGGGEGGGGGGGGGGGGGGGCEGGGGGGGGGGGFGGGGGGGGGGGGGG at FGDFAFGGGGG9FGG:FGGGGEGGGGGGGGCEGGGGGGGGGGG*:FGGDGFFFEFFGGGDFGGGGGGGF9CFEFGGGGGGGGGGGGG:7CBGC6CFGFFGDC55(386F>C<7<FFFCFFG?:7F6F7:FBFB911(4126F0
+ at HWI-M01378:140129:000000000-A7785:1:1113:13463:7044 1:N:0: TATAGCACGC
+CTTCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGTTCGCCAAGCCCCCGGGCCAAAGGCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGG9FG44=++ at 8+A+@DGGBF+++ at F3@,3@
+ at HWI-M01378:140129:000000000-A7785:1:1113:9754:8982 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATCCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGFGGGGGGGGFGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGCFGGGGGGGGGGGGGGGGFGGGGGGFGGGGGGGFFGFGGGEGFFFGGGGGGGGGFFGGGFFGGGGGGGGGGF+;CGAFGGFGGGFGGGGFFFFFEGGG??<GGG**3=:?FFFG0:C05(435,:01:FB
+ at HWI-M01378:140129:000000000-A7785:1:1113:7145:11813 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGGCAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGFCCGGGGGGGGGGGCFFGGFGGGCGGGGFFFFCCFGGFFAGFGFFFGFFFFBGDFFBFF;299???<@:
+ at HWI-M01378:140129:000000000-A7785:1:1113:14234:15031 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGFGGGGGGGGGGGGGGGGGGFGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGFGGFGGGGGGGGDGGGGCEEGGFFGGGGFFGGFFGFGGGGGGGA=FGFG>BA@@<EDFF;;EGFGFFAFGGGFFEBFFF?F?FF:>BFFGF?::BF<
+ at HWI-M01378:140129:000000000-A7785:1:1113:18729:16203 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGFDFFFGGEGGEGGGCGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGFFGGGGGEGGGFFGCFGGGGGGGGGGGGFFGFFGGFGGFFGGFGFFD0=;FGFFFDGFGGFFGFFFF?F:>GF>BFFGFFF7<@B
+ at HWI-M01378:140129:000000000-A7785:1:1113:3306:19532 1:N:0: TATAGTACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGACCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACAATCACCAGGGACACATCCGCGAGAACAGCCT
++
+:FGGGGGGG at FGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG?EFGGCFFG<FFGGGGGGGGG,EFAFFGC?FGGGGGGG9FGCFGFGGGGGG9?FBGGGGGGGGGGG+DCEEE:FFGGGGFGGFGGGGGGGGGG6FF?CEGGD8DFE8EGDCE=>CFGGGGGEFFFG5FG;?+ at EFFFFFFGGFGG?CEF;DGEFGF)58*<CGF?GF?F32CDFF?FFF9),:BBFFF
+ at HWI-M01378:140129:000000000-A7785:1:1113:14732:20813 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCCCAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGC
++
+GGGFGGGGGGGFGGGGGGGGGGEGCFGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEGGGGGGGGEEFFGEEGGGFGGFFGGFFFFGGFFGG6CGGGGGGGGGGEGGGGGGGGFGGGGGGGGGGGGG7DFFFGGFGGGFGGGGFFFFGCEGGFB>><DGFFE?0;FFG73C1>019D
+ at HWI-M01378:140129:000000000-A7785:1:1114:18985:5310 1:N:0: TATAGCACGC
+AGGGCAGAGTCACCATTACCAGGGACCCATCCGCGAGCACAGCCTACATGGAGCTGAGCAGCCTGAGATCTGAAGACACGGCTGTGTATTACTGTGCGAGAGAGCAGTGGCTGGTACTTTTAACCTTTGACTACTGGGGCCAGGGAACCCTGGTCACCGTCTCCTCAGGTAGACCAAGTCTCTGCTACCGTATATAGCACGC
++
+FGGGGGGGGGGGGGGGGGGGGGGGGG,BFGGGGGGFFGGGGGGGGEFCFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEFGGGGGGGGGFFEEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGFFGFFFGFGGGFFF+:A
+ at HWI-M01378:140129:000000000-A7785:1:1114:23540:7106 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATCCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGGEGGGCDFGGFGGG9?FGGGGCCCFFCADFGFGCFAFFGG:F at F>CFGFFFBGGGGFFGF:FF:DFFGFF@(952<::BFF
+ at HWI-M01378:140129:000000000-A7785:1:1114:23450:10317 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCCGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATCTTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGCGCACAGCCT
++
+EGGGGGGGFFFCFGGGGGGGFEFFGGGGG at FC=FFFDCFEGCDFEGGGGGCGEF=F at FG9FEFAF<@FGFGC<=B<FEGGGFGGGGG=BEEECDFGGFGGGCFFFFGEGGCGFBEF77BF=8EGGCEEEGGGGG8C at FEFDG>FG9C?DG:EFG6,<<CFGC55C=FGDFG+?EFGGGGFG+=1>;EF8/206CF at 7CFFEEF0>C<F986?AFFFD?7EEF at F<C52 at BF5((79F9?077
+ at HWI-M01378:140129:000000000-A7785:1:1114:14583:14170 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGCFGFGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGGGGFEGGGGGGGGGGGGGGGGGGGGGGGEGGGGGEFFGGGGGGFGGGGGGGGGDFECEGGCGGGGDEGECEDCCFGGGGGGFF at CGDGGFF<CA<FFFGFAFCFGGFF at FEE?GFFFB?FCDBFGD<@517B?D?FEFFF>FF:0 at F
+ at HWI-M01378:140129:000000000-A7785:1:1114:7126:18810 1:N:0: TATAGCACGC
+TCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGGTACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCTA
++
+GFGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGCFGGGGGFGGGGGGGGGGGGFGGGGGGGGGGGFGGGGGEEGGFCEGGGGGGGGGGGGGGGGGGGGGGGFGFGGGGGGGGGGGGGEGGF?FFGFGGFCFFGGGGGGGFGGFEFFF@:?FGG8=8B at FF@GGFF=BDGEFF:57?FF:CB1*15<>FB0:?F(0:
+ at HWI-M01378:140129:000000000-A7785:1:1114:12409:19488 1:N:0: TATAGCACGC
+AGGGCAGAGTCACCATTACCAGGGACGCATCCGCGAGCACAGCCTACATGGAGCTGAGCAGCCTGAGATCTGAAGACACGGCTGTGTATTACTGTGCGAGAGAGCAGTGGCTGGTACTTTTAACCTTTGACTACTGGGGCCAGGGAACCCTGGTCACCGTCTCCTCAGGTAGACCAAGTCTCTGCTACCGTATATAGCACGC
++
+GGGGGGGGGGGGGGGGGGGGGGGGG at CCFGGGGGG+>FCGGGGGGEF?A9FGGGGGGGGGGGGGG8FGFGGFGGGGGGGGGGGG,BFFFGGGGDFFGEGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGCFFGGGGDFGEGGEGGGGGGGGGGGGGGGGGGGGGGGGFGGGGFCGGCE8FG?CGGGFFGFFCFFFGF7ECF=:
+ at HWI-M01378:140129:000000000-A7785:1:1114:9907:23323 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGACAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGFFGGGGGGGGGGGGGFGFGGGGGGGGGGGGGGGGGGGGGGGGGGGFGFGGGGGGGGGGGGGGGGGGGDCEGGGFGFCFFGGGGGGGGGGGFCFFEFGFGFFFFG?E>>DFGCCC69?AGF?FFFG>0)0:F7:C
+ at HWI-M01378:140129:000000000-A7785:1:1115:20594:2152 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATACTCACAGAAGTTCCAGGGCAGAGTCAC
++
+:FFGGG8<FEFFGGGGF,EFG9FEFGGGGD77FGGGGCFFGGGGFGGGGGCCFGCEGFFEFGF?FFFGFFFFGDGCFF,?EEFGGGGGCGFGEFG<EEFGGGGGGEEFF9A, at FEGGGGC7DGEGGDB7C<:,3,>F, at FGCFEFGG*<,6>B:,>,1D at EDE=5==,12*BE?B9CC:C=G>+<*:C;FG4(5++++5CC>52.31<CF
+ at HWI-M01378:140129:000000000-A7785:1:1115:22303:4248 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGECGFFFGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGFFGGF?FFGGGGGGGG?+CFFGFFCD at FG9CECFEFF<FC6EGBFF<FGGGF?GF?FFFG07C1>71;D>BB:?>?
+ at HWI-M01378:140129:000000000-A7785:1:1115:21004:5310 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCA
++
+GFGGGGGGGGGGGGGGFGGGGGFGGGGGDGGGGGFGGGGGGGGGGGFGGGGGGFGGGGGEGCE?FGGGCFGGGGGGGGGFCE9FGDFGGGCEGGGGGG9EBFAFGAAFGGCEFE8CFEGGG6?@FEC:FGFEGFGGGG,:ECC9FCCCGFGGEGGGGGGGBC5?EDGF<CCFF,<CEEGFGGGGGF797 at BC@GGC==78=>FFF5)2*9?B
+ at HWI-M01378:140129:000000000-A7785:1:1115:3643:7099 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGACGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+FEFFGEFDGGGGGGGDGGGGGGGGGGA, at CFGGGGGGGGGGGGGGGGGGGGGGGGGGG<<FGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDFCGGGGGGGGGGCFGEGDGGGEGEEDGGGEDFFFGFDE6FGGGGG4DEEECGGGGGCFEGGC=EG9EGGGGGFGGGFGGG+AFF7@))5*6CGCFFFGDE:DFCA7FFF>AGFF:)7E:0>?BG:7E:<)7>BBBFFFFB
+ at HWI-M01378:140129:000000000-A7785:1:1115:19291:10393 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTTCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGACAATGGTAACACAAAATATTCACAGTAGTTCCAGGGCAGAGTCCCCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGFFFGD<FFFGGGFGGGG9FFGGGFFGGGGGFGGFGGFGFGGGGFGGGGGGEGFGFF<FGGGGGGGGDF8>ECFDDDFFGAFEFEGGFEGFDFEGFFFGGEE;A9FAEE,EFF+F:B=CGGGGGGGGG at FGGGGFG@FG:@>@D?77:D6?EGGFCEC8BCGE=EFF92;,4=<>EF<8F:E+2::9<.+3/31?7A at 95)83)3)5+/;8:C7CD>BC?FF0:C:?F<:579 at 071(.77
+ at HWI-M01378:140129:000000000-A7785:1:1115:26788:11790 1:N:0: TATAGCACGC
+CTCCCTGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTCTGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAAGACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGC
++
+ at FGGGCGGG<FFGGG at FGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGCGGGG@FGGG,EFFEFGGGGGGGGGG<FF9FFG9,BEGGGGGGDGG,AF,FFFFGGC,C<FFGGGEFG+CB+DF+ at FBFFGGGGFFF7F?FGGGGGGFGGGF7CCCFGFFGCD7CGC=9CFD2>C,>CFGGGGG?++:<<@F7=FGGFF at EEDF7:@6+ at F?>F7CFFBFG14>13C>?G?F
+ at HWI-M01378:140129:000000000-A7785:1:1115:22293:14738 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEGGGGGGGGGGGGGGGGGGGGGGGFGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGCFGFGGGGGGGGGGGGGGGFEGGGGGGGGGGGGGGGFEFFGGGGGGGGGGGGGFFGGGGGGGGGFGGFGGFFEFFGGGFGGGEFFFFGFGG??>AGFGGFFGF:FFFGFFG?FB9FD>FBFFFF
+ at HWI-M01378:140129:000000000-A7785:1:1115:3156:15238 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGG9FFGGGGGGGGGGGGGGGGG at DGGGGGGGGCFGGGGGGGGGGGGGGGGGG9FGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGFGG?FGGFFEGGGGGGGGGGGFEGGFGFGGGGGGGGGGFEFCFCBFFGGGGGGFCAGGEEFGFGGCFGGGGFFFFF22CB@>AGGGGBFG?4>:?GFBGFF>(4.9?7:?FB
+ at HWI-M01378:140129:000000000-A7785:1:1115:27886:16559 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGG
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGAFFGGGGGGGGGGGGGCFGGGGGGGGGGGGGGGGGCBCGGGGGGGGGG57C>CFGGFCFGGG*?EEGGFFFGFGDFGGFGCFGD?;CC>FEAGF at CGGFCCGEFFFFFEGGFF7<DCGG<7EB
+ at HWI-M01378:140129:000000000-A7785:1:1115:22345:18846 1:N:0: TATAGCACGC
+TCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCCGGGCAGAGTCACCATTACCAGGGAC
++
+GGGGGGGGGG<FGGGGGGGGCGGGGGGGGGGGGGGG,CFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGGGGGGGFGGGGGGFGGGGFGGGCGGGGGGGGGGGGGGBG>GFGGGGGG:37 at DECFGGGGGG7;ECFDECCEDEGEFGG>;;02>CGGGDD??7+;94;F;C;:<*2=:58.4>24<FFF867CGG?FE??
+ at HWI-M01378:140129:000000000-A7785:1:1115:13309:19306 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCGCTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGFGGGGGGGGGGGFGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGG7FGGGGGGGGGGGGGGGGGGGGGFGGGGFGDFFF at FCEGGGGD=GGGGGGGDGGEFGFGGGGGGGGGGGGGF+49;<6 at F@BACFGGFFFFGFGC?FBACFFFDFE0(71?FB:E?FD93BBFF:?F1
+ at HWI-M01378:140129:000000000-A7785:1:1115:24515:20126 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCC
++
+GGGGGGGGGGGGGGGGGGGGGGCGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGCFGGEGGGGGGFGGGGGGGGGGGGGGGGGGGGFFFGGGEFFDEFCGFDGFGGDGGGGGGFD2BEEGGGGGGGGGGF>C?@C4;FGGCGGFGFF6:56;CFFFFGGFGFFGFFFBFC82C
+ at HWI-M01378:140129:000000000-A7785:1:1115:15717:20410 1:N:0: TATAGCACGC
+TCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATGCACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCTA
++
+GGGGGGGFFGGGGGGGGGGGGGGGGGGGGGGGGGGF9FFGGGGGGGGGG?@CGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGDGGGGGGGGGGGGFGGGDGGGGGGGGEEEGGGGEGGGGGFEGGFGGGGGGGFGGFGGCFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGFFGGFGGGFGGGG>D at FFAFFFFFFG*>F?BG:?>BFC8750<@9>D<?B?B at D
+ at HWI-M01378:140129:000000000-A7785:1:1115:20074:21744 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGAGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGG
++
+D<FGFDGFGGCA, at 6CEFCE@E6:CFGGEC at CEF@CFGDFGGFGGGGGG:F+B=ADFDGFGG<FFGEFEFGFGGGG at EGGGCFAEGGFGE?FGDFEB=AFC:==AEE?FGGGCF7>CEGCF+AEGEGGFCFGGFGGGGGDFCFGGGGGFBAEDF6241DF55??*::08CGC;FEFFGGC=D+@:8+=54B8(A:E=@GGEFF2AC6<DFF7AF7CC<?G
+ at HWI-M01378:140129:000000000-A7785:1:1115:10327:25119 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCCTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAA
++
+GFGGGGGGGGGGGGGFGGGGGG,CFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEFGFGFGGGFGGGGGGGGGGGGGGGGFDGGFFGFFGFGGGGGGGGFFGGCCEEGGGGG+66@@FC<+:FEGCF,DFG7DFGGGFF4F5,?>FDFCC,=CD*:CEDGFFG;;FGE6CGF
+ at HWI-M01378:140129:000000000-A7785:1:1116:21394:3317 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCCCAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACA
++
+GGGGGGGGGFFGGGGGGGGGGGGGGGGGGGGGEGGFGGGGFFEFFFGGGGGGEGGGGGGGGGGGGGGGGGGGGGGGGGGFFFGGGGGGFFFFFGGGGGDEGGGGGGGGGGFGGGGGECF7B8DCFCEFGDFGFCFGGG?CCFDFF<>FEGGGGGCCEGDFEDC?CEGFGGGEFFGFFGCGGD?FGF+==;DF65CFGGFCCB>;0C?CCFFBAFGFDA?E0(;6?G
+ at HWI-M01378:140129:000000000-A7785:1:1116:21781:3983 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGCGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEGGGGGGGGGGGGGGGGGCEGGGGGGGGGGGGGGGGGGGGFGGEGFGDFFFGGGGGGGGCGGGGGGGGGGGGFFGGGFGGGGGGGGGGGGFFGFFGGFGGGGGFCGEFFFGDGGFFFAFFGGBFGFFF??F?>F?FBFFFFFFFFF?
+ at HWI-M01378:140129:000000000-A7785:1:1116:19367:5061 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEEFGGGGGG at FGGGGGGGGGGGGGGGGGGGGGGGGGFGGFEGGGGG5DEGGEDGGGGGFGFGGGGGGGGGGFFGE<DCFGGFGGFGGB:(3FFFGFFB2FFFC<BGF?FF?FFFG?>>;>D
+ at HWI-M01378:140129:000000000-A7785:1:1116:22704:5419 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGAAACATCC
++
+GGGGGGFGGGGFGGFFGGGGGGFFFFGGGGGGFGGCGGGGGGGGGGGGGGGGGGGFFGGGFGFGGFGGGGDGAGGGGGGGFFG<DGGGGFFFEGGFGGGGGGGGGGFGGGAEEFCEEGGEGFFECEGGGEG>FGGGGGGGGFGGGGGGFC6DEFFDGGGEGGGGGGGGGGGGGGGCFGG5FGGGGFAGC37<AG>GGGGFGFFF<FFGGFF>27?>F<2=08.(:F<:C
+ at HWI-M01378:140129:000000000-A7785:1:1116:3314:6852 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTACGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGACAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGC
++
+GGF8F8CDFD9<E at CFGEEFGGFG9@FGGGEG at FGFGGGEFDF<CEFGGEGCFFFDEFEGFFFGGGGGGGFFC?FGGGGGG9B<FGGGGGGGFGCEGEEGG9ECFGGGGE<FFFC at CGGGCDD6@CFGGGG7 at FGFFGGGGGGFFGGF:C,:CFCEGFGF=DEEDCCE:F043AFGFGBC*CCDGFAFE<*9AFGGGG?FE>F;1860>8?>A?GGF2):22:?6DB?G<@
+ at HWI-M01378:140129:000000000-A7785:1:1116:12883:11398 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGEFEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGCFGFGGDGCGGGGGGGGGGGGGGGGGGGGFFGEFGGFGGGGGGGGFFFFGFGGFF?DFGGGFFGF1F:?G?BG?FFFFFFBFFFGF
+ at HWI-M01378:140129:000000000-A7785:1:1116:4257:14374 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGCCACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGFFGGFGGGGGGGGGGGGGGGGGGGG<FGGGGGFFGGFEFGGGFGGGG9FGGGGGGFCGGGGGGFGGGGGGCCGGGGGGGCC7 at FFGCCF4CEFGGG6EFFGGGDD57CFGGCGEFEGGGGGGF::FGFFGFE*;;FGGGGG8EA><?5?CF?@?FFCFGA?E:(),(25?C?@2,9D9BFBBD?
+ at HWI-M01378:140129:000000000-A7785:1:1116:21249:16016 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGACAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCACGGACACATCC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG8F8C at EEEGFGGGGDG:>CFG7E8 at GGE>FFGCGGGGGGGGGGF?F at FGCE=EGGCCGFFGCAGGGGG=DCFCCFDEFGGFGGGFFECE>546C79 at C*)5 at DGG9?G03BFFF>DF
+ at HWI-M01378:140129:000000000-A7785:1:1116:26580:20568 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATGCACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCT
++
+F at FFGGGGGGGGGGGGGGGGGGGGGGGGGGFFEFGGGFGGGFGFGGGGGGGEGGFGGGGGGG<FFFGGGGGGFGGGFGGGFFGGGGGGGGGGFGGGGFEFDG,9AECEGCFGGGEGGGGEEFFAFG+@<+3>F,@,3@
+ at HWI-M01378:140129:000000000-A7785:1:1117:15050:1908 1:N:0: TATAGCACGC
+TCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCAGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCAC
++
+GGGGGGGGGGGGGGGGGFGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDFFGGGGGGGGGGGGGGGGGGGGGFGGGDGGGGFGGGGGGGGGGFGGGGGGGCGDGE at FGGGGGGGGGGGGGGGGGGGFCFCFGFC8F?FGGFGGFGCEGEDGGGGFGGGFGGFFEFGGGGGG<FFGEFGCE<+=E96?CFBDFEEFD
+ at HWI-M01378:140129:000000000-A7785:1:1117:15528:1981 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCA
++
+GGGGGGFGGFFFGGFCFGGGDF at CEGGGG@FGGGDCFGGGFDDDAFGGGCEGGG8FFFC,EFFFFAF9FGGFGGGGD<5CDFA4FF at FGGGGC9ADFGDGGDGGGGE9ACEFCG+8CGG7+@DCEGDEGCE at F?CCEGDC8>ECF9EFGGCEEGD?FFEFCEC?CE69@@;F9C97ACCFD>+=1;A
+ at HWI-M01378:140129:000000000-A7785:1:1117:10756:3719 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGCGDGGEGGEFCGGGGCFFGGFGFGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGFFFFEFGG at CF9FFDGGEF?FGCCDFF?FFGFGF?GB?FFFGBFE?FFBFFBB?FF>1
+ at HWI-M01378:140129:000000000-A7785:1:1117:24534:4247 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCTAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACCAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTCCCAGGGACGCATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEFGGGGGGGGGGGGFGGGGGGGGGGGGDFGGGGDGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGDGEGGGGGGGGGGDGGGGFCFGGGGGGGGGGCE8FCEGGGGFFCGGEGGGDGCGFGGC9CGFC*CFCF:FGCAFE<69=GCGG?:*7::;FFEGD<=33F:@G=?GFF3((/41C?>491>9?FF?3:
+ at HWI-M01378:140129:000000000-A7785:1:1117:13251:7519 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCCCCATTACCAGG
++
+ at EFCGCFGGDFFFEEGGFEGCCFFDFGGGE@C8FGGG?EAEDFGFDFGGGGGGGGGFGGECFGFGFFGGGGFGGFFGGGFGFGGGFGCEDGFEBEFFGGFFGGGA?EAFFGGFFGGFEBCFFEGG at BFCC7@C>>:BEFEFF=DF,@<586?B at 8?@:<@:5//7==C,>8>CCCFGGFGGGFFGFFGF9GFEGCD+245/:=FFE99*)8:?BGF???E
+ at HWI-M01378:140129:000000000-A7785:1:1117:14612:8918 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGCGGGGGGGGGGGGGGGGGGGGGGGGGGG9EGGGGGGGGGGG at FGFGGGGGGGGGGGGGFGDGGGGGGGGGGGGGGGGGGGGGGGGGFFFGGGGGGGGGGGGGGCFGGGGDCEEGGGGGG=,ACFGG7DFGGFAF?>DC=FFGGGFGGFFFFGFFGFFFFFGFGBFGF?F:2CBDG0.32(8;F?BBGF
+ at HWI-M01378:140129:000000000-A7785:1:1117:2770:10016 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGACAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEGGGGGGDGGGGGGGFGGGGGGGGGGGGGGGGFGGGGGGGGF9DFGGCFGGFGGGGGGGFGGGFGFGGGGGGF9FGGGGGGGGGDGDGGGGGGGGGGGGDGDGFCGGEGGGG>FGGGFGGGGGGEGGGG?ECCGDGGGCFG7;BEGCFGFEDFGGFFGFEGDE at DFFGGFGB><A/1+;<64<=?FFF7E(,02(082C?>032>BBBFFC
+ at HWI-M01378:140129:000000000-A7785:1:1117:7058:13477 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGCAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGFGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDFGFGGGCEEGG:CFFFEGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFEDGGGDC9FGFFGFFGDEFGGGGGGGFF?FF>EGF@<BFFFGFFDB?F:?<2>FFF>BF at 9?07?FF
+ at HWI-M01378:140129:000000000-A7785:1:1117:20535:14960 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGDGGGGGGGFGGGGGGGGGGGGGGCFGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGCFGFGGGGGGGGGGFFGFFGGFGFGGGGFGFFFFGC at FFFFBFGFGFBGFFFB?F>:FBFBFFF>:::BGF
+ at HWI-M01378:140129:000000000-A7785:1:1117:12925:16162 1:N:0: TATAGCACGC
+TCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGACAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCC
++
+FGGGGGGFGGFGGFGGGGGGGGGGGGGGGGGFGGGGGGGFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGFGGGGFGGGCGGFGGGGGGGGGGGGGGGFGGFGGEGGGGFGFGGG6DEGFFGCFGGGG<CFGGGGGGGGGGGGGGGGGGGFAAC<;CG6FGGGGGGGFEFFGAGCEFD<FFFGFFG?<F?BGBB
+ at HWI-M01378:140129:000000000-A7785:1:1117:16205:24882 1:N:0: TATAGCACGC
+AGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCTACATGGAGCTGAGCAGCCTGAGATCTGAAGACACGGCTGTGTATTACTGTGCGAGAGAGCAGTGGCTGGTACTTTTAACCTTTGACTACTGGGGCCAGGGAACCCTGGTCACCGTCTCCTCAGGT
++
+GGGGGGGGGGGGGGFFGFGGGGGG at CGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDFGGGGGGGGGGF?C>=B7F=FBFDFGGGFEFFCDFG9F=CCFGFGA at CF<FG,DFGE5CFGGF:FFEFFF<,5<AE,;:;FFGFCFF
+ at HWI-M01378:140129:000000000-A7785:1:1118:9968:1647 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGGGGATGGGACGGATCACCGCTGGCAATGGTAACACAAAAT
++
+G at FDFF@FFGGFGGGFGGGGGG at FEFGDFFFGGGDCFFGFFEFEGGGCCGGGED@<F@?5?FGGGGGGGGFGG?@8=FGGG9EE at EGGGGGGCBF9F,AFFGEE;ACAFFEEGE@=:@B at 7DE3>FGDGDE7>CFGGGGG6,,6>C1*1D8,4<587@,,/7=C7*AFDFFC<F++=8:C=?
+ at HWI-M01378:140129:000000000-A7785:1:1118:9715:1754 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCG
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGFGGEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGG<EFGGGGGFGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGGEGGGGGGGGFGGGGDEGGGGGGGGGFGGGGFGGGGGGGGGGGG6CEGFFCFFDFGGF77 at FFACEFGDEEGGGCCCC5)(8599*:4357:D7-4E0,.:?448C?
+ at HWI-M01378:140129:000000000-A7785:1:1118:9533:1899 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTTCCAGAAGTTCCAGGGCAGAGTCAACATTACCAGGGACACATCC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGGGGGGGGGFGGGGGGGGFGGGGGFGGFGGGGGGGGGGGGGGGGGGGGGGD,AFGFGGFGFGFGGGGGGG6 at CEGGCGGFGGFGGFFDGFFFGGFGFGFFGFGGGGGGGGCDGGGDGEGGGD=EGFFEEGGGG5FCFFGGG++=<+00/<:4 at EFFGEF?;17+:):32?F>DA:E?0FF:FF>G
+ at HWI-M01378:140129:000000000-A7785:1:1118:8691:1931 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGFCFGFFGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGFGGFFGDFFGGGGGGGECCGCEFCFFE6?FGGGGGGGDFCCGG<FGGG;FGGCFFG?FEF8FC:C:::EEDEFGFFG9@:,1<8F/=C>FD at CF587C@GFC+1+?5DFF at GE
+ at HWI-M01378:140129:000000000-A7785:1:1118:23298:2242 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAAAACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGG
++
+DFGGGGGGGFFGGGG9FGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEGGGGCGGGGGGGGFGGGGGGGGGGGGGGGGGG9 at FGGGGGGGGGGGFGGGGGGGGGCC<FGGGGGGGGGGGGGEGGGGGGGGGGGGGGGGGGGGGFGGGGGDEGCFFG?EEGGG=C89EGGFG,,5ACGDF?CFGC+298FFE?:7 at CFFDFFDDG.2+-9<>=7C><3C
+ at HWI-M01378:140129:000000000-A7785:1:1118:23073:6508 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTGTGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDFGDFFFGGFGGGGGGGGGGGGGGGGGGGGFGGGGGGFGFFGGGGGGGGFGFFGGFGGGGGGGGFFFDFFGGF=<A?CFGAFG?FFFFG>?C?F>F051<BBFF?
+ at HWI-M01378:140129:000000000-A7785:1:1118:21171:9133 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAGTATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGEFGGFGGGGGGGGBFFFGFFFBC?BBFGGFFGFFFFFGFFGFF9;FFFFFFBGF
+ at HWI-M01378:140129:000000000-A7785:1:1118:18189:10068 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGTGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGFGEFGGFGGFGGGGGFFF at F6+:<C<AFGGFB?G<1F??G??G<F9BFB:A4:?F0
+ at HWI-M01378:140129:000000000-A7785:1:1118:9717:10455 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGGTACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGDGGGGGGGGGGGGGDEGCGGGGGFGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGC=EGGGGGGGFFGGFGFGFFCF at GFFGGGGGFFFFGFGGFG?FFFGGFFGB6FFFGBFFB:9;0:>FFF:GF
+ at HWI-M01378:140129:000000000-A7785:1:1118:6493:13149 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCCGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCGCTAGCTATGCTATGCATTGGGTGCGCCAGGCCCTCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGAACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGFGGGGGGGGGGGGGGGGFGGGGGGGG?FCFDFGCFGC3>DGGGGDGEF:?FAGGAC?A at FFFAFEBFF1?GF?;:FBF()(.(8?FF
+ at HWI-M01378:140129:000000000-A7785:1:1118:9182:16529 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GFGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFEGEFGGGFGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGEGGGGGGGGGGGGGGGGGCFFF?FGGGFGGGGGGGGGGGGGGGFGFGGGGGGGGGGGGFF?FC?@GGF>CF?<AFDDF?CGFG?<FDGGF?=<6FF<437FFFBBFFFFFB<G?
+ at HWI-M01378:140129:000000000-A7785:1:1118:21261:19014 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGC
++
+GFGGGGGGGGGGGGGGGGGGGGFGGGGFGGFEFGGGGGGGGGGGGGGFGGGGGGGGGGGGGGDFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFCGGGGGFDFEGGGGGGGGGGGGGG7<FGGGGGFGGGGFFDFFEGGGGGGGGGGGGGGDEGGGGGGF>@CCFGCGGGGGGGGFFEAGFFGGGGGGGGEFFDGC?GFGBAFGGGFFEB?@<BG27E:@
+ at HWI-M01378:140129:000000000-A7785:1:1118:17204:20285 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCC
++
+GGGGGFFGGGGGGGGGGGGGGGGGEFGGGGGGGGGGGFGFGGGGGEGGGDGEGCFFGGGGGGGGGFGGGGGGFGGFGGGFGGGGGGGGGGGGGGFFGGFGGGFGGFFGGGGGGGGGGGGGGCFGGGGGGGGGGGGGGGGGGGCFGFGGGGGGEFFFECGFEGGEGEFDGGGGGGFGGGGGGCF?FGFGEFGD3;DFF9CF3;><D5.+*.9>FFGGGFFGFBF?0>>?G
+ at HWI-M01378:140129:000000000-A7785:1:1118:19019:20700 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGC
++
+GFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEFFGCGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGFDGGGGGGGGGGGGGGGGGGGGGEGFGFGGGGGGGGCFAFEFGGFFFGGGGGGDFFDFEFC9C?FFGGGAFGF27?FGF?GFF(4;B
+ at HWI-M01378:140129:000000000-A7785:1:1118:24760:20968 1:N:0: AATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GFGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGGGGGGGGFGGGGGGEFFCC?,EFFGGFGDCFGGGCGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGEGGGGCGGGGGGGGFFFC at FFGCFGGC7CECFGGGGGDGGCFDFDFCGGDFECGGGGGFCEFFG@GDCFGFGGFF7?FC>FDD<7BFGGA?EF:FF<<::C6 at 06273(438CB
+ at HWI-M01378:140129:000000000-A7785:1:1118:12797:21177 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAGCACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFAFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEEGGGGGGGGGGGGGGGGGGGGGGFFGGGGGFGGGGGGGGGGGGGGGGDE=CEFGGGGGFCFGGFGGFGGFGFFGE3CFFGGGGGF3,=E?ECAGF)97?GAFGFFF??F?:F?FBFFD>B??FC
+ at HWI-M01378:140129:000000000-A7785:1:1119:12200:9232 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGFGFGGGGGGGGGGGGGGGGGFGGGGDGGGGFFFFGG7DFFGFFGGGGGGGGGGFDGGGGG:CGGGGECEFFFGFGGGGGG?FECFFGF3<<@FGGCGGFD)6?F84CF4<F<9?7>A?C?B@<?F?::2 at 66;B9B??F at B
+ at HWI-M01378:140129:000000000-A7785:1:1119:25522:9543 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGGGGGGGGGGGGGGCGGGGGEGGGGGGGGGGGGGGGGGGGGGGGCFCFGGGGGGGG>FGGGGGGGFFGGGGGFGGGGGEGGGGGGGGFFFFEFGGGGGGEG*=CEC?CBCFGGFFGGGGGGG?FFFGFFGFEGGFG9>FDADFFGCGGF>FA7:*:::??FF62CF?G<>600>>?FFBF?
+ at HWI-M01378:140129:000000000-A7785:1:1119:19946:11946 1:N:0: TATAGCACGC
+GTGGCCAGGGCCACCCTAGGCCTCTGGGGTCCAATGCCCAACAACCCCCGGGCCCTCCCCGGGCTCCGTCTGAGAGGGTCCCAGGGACGTAGGGGGGCGCCAGTTCTTCCCTGGGGTCCTGGCATTGTTGTCACAATGTGACAACTGGTTCGACCCCTTGGGCCA
++
+FG<FGG<FDGGE:FC at FDG<<6FGGGGGE@:=F?E<66E=F at DEF:??FF:@:F>F=:F:EGGGGG:=AFDBAFF@:73,><=F<3=FCE<3+3+511***/2:CFFF+,;7:CG52;A<+CF7C::<A82+<79C:+CFG9+0;62C3<:C//:8E*:@+*:CE
+ at HWI-M01378:140129:000000000-A7785:1:1119:26527:12673 1:N:0: TATAGCACGC
+AGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCTACATGGAGCTGAGCAGCCTGAGATCTGAAGACACGGCTGTGTATTACTGTGCGAGAGAGCAGTGGCTGGTACTTTTAACCTTTGACTACTGGTGCCAGGGAACCCTGGTCACCGTCTCCTCAGGTAGACCCAGTCTCTGCCACCGTA
++
+GGGFEC@@DGGGGGFEFDEFGGECC,C,C,6,B<@@F:FFFGGF8F<FFF88FCCF9EGGGG8?=F,,,,,4EFGF=AA at CFEFF8A<FFE@@,C<B::B+@=@7,@,,3C<CCDAFC=3FF6CDGCCE;=<@D,3@,@,5>, at CE8@FGFCFFCFGG7EDCGGFGG?6>FFC?F,4/2>,<:+9*;C?F;F
+ at HWI-M01378:140129:000000000-A7785:1:1119:25841:13619 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCG
++
+EGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGCGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGFCG:EGGGFGGGGGGGDFGGGGGGGGGGGGGGGGDGGGFCG?7DFGGGGGGGGGGGFF?FFGCFGFGCFCEEFFGFEDF at GCCD++5<B at 0>C;9*/4?<FC>F<BG:1:B?F:>F?
+ at HWI-M01378:140129:000000000-A7785:1:1119:20076:14454 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGFEFGFGFGGGGGGEFDFFEEGFFFAFGGGB?GB?FFBFFFG<FF>BF>FFFFFB
+ at HWI-M01378:140129:000000000-A7785:1:1119:26820:14628 1:N:0: TATAGCACGC
+AGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCTACATGGAGCTGAGCAGCCTGAGATCTGAAGACACGGCTGTGTATTACTGTGCGAGAGAGCAGTGGCTGGTACTTTTAACCTTTGACTACTGGGGCCAGGGAACCCTGGTCACCGTCTCCTCAGGTAGACCAAGTCTCTGCTACCGTATATAGCACGC
++
+GGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGGEGGGGGGGGGGGGEGGGFGGGGGGFFGGGFGFG<<E9EGGGGGGGGGFFGGGGGGC?8EEGGFCCFFGGGGFFFFGFGGGGGGGGGFF?@FFGDGGGGGG?D:
+ at HWI-M01378:140129:000000000-A7785:1:1119:5209:16156 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGG<EFGGGGGGGFGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGFGGGGGGGGGGFGGGGGGGGGGGGFGGGGGFF?CCFGGGGFCCAFCCEGGEBFGDFGGDFFFFGCFGFFFBFGGGFFGFFFF?GFFGFFF>1B>B?:?FF
+ at HWI-M01378:140129:000000000-A7785:1:1119:21229:17686 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAAAACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCC
++
+DFGGGGGGG8FFGGG<FGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGDGGGGGGGGFFGGGGGGGGGGGGGGGGG<@FGGGGGGGC9FGGGGGGGGGG95A?FGGGGGGGGGGGGGGGGDGGGGGG>EGGGGGGGGGGGGGGGG,BFGFGGFGEGGCEGG?GGGGGC,+3CGF=?CC at AFFE@GGFGGGGGGGGFF?FGFGGF2?AFGGG9,C?:>1(24>FFF>>>E;FFFFF
+ at HWI-M01378:140129:000000000-A7785:1:1119:6516:18986 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGCGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGDGGGGGGGGDEGGGGGGGGGGGGGGGGGGGBFGGGGGFFGFAGF at FGGGGGGDEFFFGCCDFDFBFGGFFFG04:BFGFDGFF>09BBBB?BF?
+ at HWI-M01378:140129:000000000-A7785:1:1119:11518:19811 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAAAGGTAACACAA
++
+GGGGGD<FEF at 9<@EFGGGGFFCC<E8FC7FGFFGEFFGEFGCFG8,FCCCCGFGGEFGGE,9?C?F9FFFGGGCEEFG,>AFFFCGFDD,<=CF@,8??F,,CEFFGFB8ADGGEGGEEC?=+6++ at C+5*3DD6@@@FG7 at B>?26:>D@><8=?F?,B)*78?F,,5;92:<EF=F
+ at HWI-M01378:140129:000000000-A7785:1:2101:10492:6392 1:N:0: TATAGCACGC
+TCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACGAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAG
++
+GFGGGGGGGG9FFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGFFGGGGGGFGFFGGGEFGGGGCEGGGGGGGFGGFFGGDEFGGGGGFFGGG7BEFE at EGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGD??:EE7C/9CE,<ECFB9BFGGGGGGG=@FGFFGE at GGCGEG=7AC5(/2.C>F7<?FAFFDBD
+ at HWI-M01378:140129:000000000-A7785:1:2101:21110:9989 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGFGGGGGGGGCGGGGGGGGGGGGGGGGGGEGGGGGGGGGGGGFGGFD>EFFGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGF=?CFFGFFGGECGGFCGGGF??FFEG*6,88/:E4:45>?FB?G7?A?>1175((48>5?
+ at HWI-M01378:140129:000000000-A7785:1:2101:25521:14328 1:N:0: TATAGCACGC
+CTCCCAGGTCCAACTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCCCAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEFFGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFF9FCGCGGGGGDGGGGGGGGGGGGGGGGCG7>FFGGG9D at FFGGGGDGGFGC?CDGDDGGGGFFGGGGGCFGGGGGFFGEFGFFGFGGCCCC6@()5)+2-5<DBFCFBFG5(02?F?FGFFF>93(32(78?
+ at HWI-M01378:140129:000000000-A7785:1:2101:6147:17939 1:N:0: TATAGTACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATC
++
+GGGGGCGFFGGGGGGGGGGFGGFFFGGGGGGGCFGFGFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFFGGFGGGGGEGGGGGGGGG7CEFFFCC, at FFF;@8 at 5;FF6,>EGGGGGG>55<8*,01>;>E7412@:FGFCF at 6@F6 at C<@GGGCGFFD121:*.BDA)4A=:CB28;5(<3:DFF
+ at HWI-M01378:140129:000000000-A7785:1:2101:7510:19246 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGG
++
+GGGGGGGGGCGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGFGGGGGGC<FEEFGGGGGGG9,75CFFGGGGGDGGGGGGGG at CFGGGGFGFGGGGGGDFGGGFGGG6CFFGGGCF*CD55EF9EGGGG7<7>CCF4FCC7AFF?@F4;CFGGGGGG;?<AGEGGF>2<FGGF<);C
+ at HWI-M01378:140129:000000000-A7785:1:2101:13482:19637 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCGGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGGAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCC
++
+EFGGGGGGGGGGGGGGGGGGGGGGGGGGGEGGGGGGGGFGGGGGGG,FFFEFGGGGGGGGGGGGGFCFAFGGFGGGGGGGGGGFGGGGGGGGGGGFGGGGGGGGGGGGGG9FFE7EGGGGGGGGFGGFE7FFGGC>F78CGGGGD<DCGGGGGG6?CFGFGDC4:?EC6?**=CCF4ECFFDFGFFAF3)<;@>C+;@EF=:?FF74CGFB?)9CFFA?G3,70?FFFC
+ at HWI-M01378:140129:000000000-A7785:1:2101:9133:23948 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGCTCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTACAGGGCAGAGTCACCATTACCAGG
++
+GGGFG<EGGFGGGGGGGGGGGGGGFGGGGGGGGGGEGGGEEFCEF=FGGGGEGDF<FAFGGF<FGDFGG at 8>FGFGGGGGAFBF=FFGFCGGGGF at EFAABFGGGGFGGGFGCFCECEGGGFGG@FGGCEGGGFF>E,DF;<FFG?***>F61>6:,,57*591=CC?EFG;7=EC<@C8F7CCFF8+)/2*6C at +CCECCF04>*)?*).8>?FC at 27C
+ at HWI-M01378:140129:000000000-A7785:1:2102:23669:4942 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGGGGGGGGGGDGGGGGGFG?FGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGG?CFFFFGGGGGGGGGGGFFGGFGGGGGGFCBFFFGFGGFFFFGGGFFFGD4D?FGFFC::;99E0?B?FGF
+ at HWI-M01378:140129:000000000-A7785:1:2102:18023:6868 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCTCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGFGGGGGGGGGGGGGGGGGGGG,FGGGGGGGGGGGGGGGGGG at FGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGFFGFGCGGGGFGGGGGGGGGGGGGGGGGGGGGGGGFFGGFFGFGGGGGGGGGGGGGGFGFFGGGGDGGGGGGGCBFGGGGGGGGGGGGGC.88CFGGGGGGGGEAFFG4B?FFEFFGGGF:C5<G(:*,5847>;6)4:11>F?
+ at HWI-M01378:140129:000000000-A7785:1:2102:20537:10795 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGCCFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGDFGGFGGGGGGGGGFFGGFGGGGGGGGFFFFGFGGFFFFGGGGBBGGFGFFC,4;1>>;BFFBBFFGF
+ at HWI-M01378:140129:000000000-A7785:1:2102:11278:14783 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGACAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGFGGGGGGGGFFFFFEGGFFFFGGGGFFGGFG?FG>?C?FFFFFFF?:FFB
+ at HWI-M01378:140129:000000000-A7785:1:2102:15247:16145 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCC
++
+DGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGFGGGGGGGGGGGGC?FGFGFFCGEGGGGGGFGGGGFGGGGGGFGGGGGGGGGF5?EGDGGFGFFFCFGGFGFE=FF99 at FGFFGGFGFFCCGGGEFFF5)?EF?BFF>EGFFGD096<624F:>B>BE9?<<>C
diff --git a/clipper/t/in/join/test-ov-b.1.fq b/clipper/t/in/join/test-ov-b.1.fq
new file mode 100644
index 0000000..f7d7513
--- /dev/null
+++ b/clipper/t/in/join/test-ov-b.1.fq
@@ -0,0 +1,400 @@
+ at HWI-M01378:140129:000000000-A7785:1:1112:20058:10262 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGACCAACGCTGACAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACACTTTCCAGGGACACATCC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGGGGGGGGGGGGDFGGGGGGGGGGGGGGFGGFGGGGGGGGFGFFGGGGGCFFGGGGGGGGGGGE9DFG5?:FEGG7FG:DFGGG at FCFGGGGGGGGCF6FGA7CGCE@E8FF6>FGGC1:5/4:?,><CAEF9?FG at CCFF9;CFGEFGGEC<EF7CCEBF5>G?++=*)(22C>94C<(>3(9:?F
+ at HWI-M01378:140129:000000000-A7785:1:1112:27324:10852 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGEGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG5EGGGGFGFFGFFBFFGGGGGBF3AFFFGFFF7FGGGFFG??F36F?:C:F
+ at HWI-M01378:140129:000000000-A7785:1:1112:13807:10870 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGCGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGCFGGGGGGGGDFGGGGGGF??FGGFGFGGFCGDEFFFGFGGFFFFGGGFFFGBBFF:<27F<F00;G>::7?F?
+ at HWI-M01378:140129:000000000-A7785:1:1112:12421:11010 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDCFFFGGFGGGGGGGGFFFFGFGGFF67GGGCFFGFFFFFGFFGFFFBBGBB<BFFF
+ at HWI-M01378:140129:000000000-A7785:1:1112:7453:12346 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEFGEGGEGGGGGGGGGGGGGGGGEGGGGGGGFGGGGGGGGGGGGGGGGGGFGG6,BFGGGGGCGGDGFGFGEFGGFGGGGGGGEBFFFGFGGF?FAGDFGFF>B6FFFGBFGFFFBBGFFF?FF:
+ at HWI-M01378:140129:000000000-A7785:1:1112:24376:13941 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCCACCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGG6FGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGFGGGGGGGGGDGGGGGGGGGFGGGGDGGGGGGGGGGGFGGGGGGGGGG?FGGGGGGGGGGCFFFFFDGGGGG6FEDEFFGGGGGGGGG=CEDGFC?CFEFFFFGGGGGGGGGGFF?4?FEGGGFGGCCDFFFGFGEFFFDFFGG=:G6:>514>?C6>(((1(4:BFF?
+ at HWI-M01378:140129:000000000-A7785:1:1112:10620:14798 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCAAGCACAGCCT
++
+GGGFFCFFFFEEE at FFFGGGFGCFAFFGGGGGCEFE=FA?FGF<F at FDFEGCFF?F9C?F<EGFFAFGGG8EA<DAFFG<9?EBEDD at CFF<9EFGGGFGGFFEFFFEGGAFGGEGEEGGGGFEGGGGG at FGGCGFGDCGCF,:DCGC7 at DF@FGCFGEC1=5:C=:0>EFCEGGDGG*2C<F7<C6C36C+/?:+:AE6*5:D33)52@?F<7CC7F?54?F3177?G17((->::816FB
+ at HWI-M01378:140129:000000000-A7785:1:1112:26422:14876 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGC
++
+D at FGFCFFFGGGC<FCFGFAFG at CCFFGGGCFGF@EFGFEGGGGECGGGGGGDGEFAEGFGGGGGGGGFGGGGGGGG=EGGCF<,FGGGGGGGGGGFFFFFFEE<=FBFFCGFGEFEGCFFFGGGGFGDGEEGGGF<D?CEF;F8CCGGGF8FFEBCGEFECGGGCGGGGG,?@9?CFGGGF7CFCC96AFGFGG7?CFGE:>DF89>CFFFF::+:/>EFFF5:D:>E:@
+ at HWI-M01378:140129:000000000-A7785:1:1112:17229:16419 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAGGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFFGGGGGGGGGGGCGGGCFGGGGGGGGGGGGGGGGGFGGGGGGFGGGGGGCGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFEFFGFFGGFGGGGGGGGFFFFD>ECF at F>GGGGFFGFBFFFGBBGFFFFBCB?:?BF:
+ at HWI-M01378:140129:000000000-A7785:1:1112:9440:21170 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTAGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGDEGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGFGFFGGFFGGGGGGDEFFFGFFGFF?<GFGGFFG?BFFFG?DG?FBF><><:7?FF
+ at HWI-M01378:140129:000000000-A7785:1:1112:13154:23703 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGG
++
+GGGGGGGGGGGGGGGGGGGGGGFGGGFGGGGGGGGFGGGGGGGGGGGGGGGGGGFGGGGGGGFGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGCCGGGG9FGGEGGGGGGGGEGGGGGGGGGCFGGGGGGGGGGGGGGGGFGFFFFGCEEDGGGG8<FFEBFGG9<CFFGGGG?DFG?FG6=FF79 at 79>5=55A;<0*9=7>CG7*2??
+ at HWI-M01378:140129:000000000-A7785:1:1113:9219:5995 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCCTGAGGGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGFFFGGGGGGGGGGGGGGGFFGGGGGGGGGGGGEGGGGGGGGGGGGGGGCEGGGGGGGGGGGFGGGGGGGGGGGGGG at FGDFAFGGGGG9FGG:FGGGGEGGGGGGGGCEGGGGGGGGGGG*:FGGDGFFFEFFGGGDFGGGGGGGF9CFEFGGGGGGGGGGGGG:7CBGC6CFGFFGDC55(386F>C<7<FFFCFFG?:7F6F7:FBFB911(4126F0
+ at HWI-M01378:140129:000000000-A7785:1:1113:13463:7044 1:N:0: TATAGCACGC
+CTTCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGTTCGCCAAGCCCCCGGGCCAAAGGCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGG9FG44=++ at 8+A+@DGGBF+++ at F3@,3@
+ at HWI-M01378:140129:000000000-A7785:1:1113:9754:8982 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATCCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGFGGGGGGGGFGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGCFGGGGGGGGGGGGGGGGFGGGGGGFGGGGGGGFFGFGGGEGFFFGGGGGGGGGFFGGGFFGGGGGGGGGGF+;CGAFGGFGGGFGGGGFFFFFEGGG??<GGG**3=:?FFFG0:C05(435,:01:FB
+ at HWI-M01378:140129:000000000-A7785:1:1113:7145:11813 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGGCAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGFCCGGGGGGGGGGGCFFGGFGGGCGGGGFFFFCCFGGFFAGFGFFFGFFFFBGDFFBFF;299???<@:
+ at HWI-M01378:140129:000000000-A7785:1:1113:14234:15031 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGFGGGGGGGGGGGGGGGGGGFGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGFGGFGGGGGGGGDGGGGCEEGGFFGGGGFFGGFFGFGGGGGGGA=FGFG>BA@@<EDFF;;EGFGFFAFGGGFFEBFFF?F?FF:>BFFGF?::BF<
+ at HWI-M01378:140129:000000000-A7785:1:1113:18729:16203 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGFDFFFGGEGGEGGGCGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGFFGGGGGEGGGFFGCFGGGGGGGGGGGGFFGFFGGFGGFFGGFGFFD0=;FGFFFDGFGGFFGFFFF?F:>GF>BFFGFFF7<@B
+ at HWI-M01378:140129:000000000-A7785:1:1113:3306:19532 1:N:0: TATAGTACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGACCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACAATCACCAGGGACACATCCGCGAGAACAGCCT
++
+:FGGGGGGG at FGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG?EFGGCFFG<FFGGGGGGGGG,EFAFFGC?FGGGGGGG9FGCFGFGGGGGG9?FBGGGGGGGGGGG+DCEEE:FFGGGGFGGFGGGGGGGGGG6FF?CEGGD8DFE8EGDCE=>CFGGGGGEFFFG5FG;?+ at EFFFFFFGGFGG?CEF;DGEFGF)58*<CGF?GF?F32CDFF?FFF9),:BBFFF
+ at HWI-M01378:140129:000000000-A7785:1:1113:14732:20813 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCCCAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGC
++
+GGGFGGGGGGGFGGGGGGGGGGEGCFGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEGGGGGGGGEEFFGEEGGGFGGFFGGFFFFGGFFGG6CGGGGGGGGGGEGGGGGGGGFGGGGGGGGGGGGG7DFFFGGFGGGFGGGGFFFFGCEGGFB>><DGFFE?0;FFG73C1>019D
+ at HWI-M01378:140129:000000000-A7785:1:1114:18985:5310 1:N:0: TATAGCACGC
+AGGGCAGAGTCACCATTACCAGGGACCCATCCGCGAGCACAGCCTACATGGAGCTGAGCAGCCTGAGATCTGAAGACACGGCTGTGTATTACTGTGCGAGAGAGCAGTGGCTGGTACTTTTAACCTTTGACTACTGGGGCCAGGGAACCCTGGTCACCGTCTCCTCAGGTAGACCAAGTCTCTGCTACCGTATATAGCACGC
++
+FGGGGGGGGGGGGGGGGGGGGGGGGG,BFGGGGGGFFGGGGGGGGEFCFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEFGGGGGGGGGFFEEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGFFGFFFGFGGGFFF+:A
+ at HWI-M01378:140129:000000000-A7785:1:1114:23540:7106 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATCCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGGEGGGCDFGGFGGG9?FGGGGCCCFFCADFGFGCFAFFGG:F at F>CFGFFFBGGGGFFGF:FF:DFFGFF@(952<::BFF
+ at HWI-M01378:140129:000000000-A7785:1:1114:23450:10317 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCCGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATCTTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGCGCACAGCCT
++
+EGGGGGGGFFFCFGGGGGGGFEFFGGGGG at FC=FFFDCFEGCDFEGGGGGCGEF=F at FG9FEFAF<@FGFGC<=B<FEGGGFGGGGG=BEEECDFGGFGGGCFFFFGEGGCGFBEF77BF=8EGGCEEEGGGGG8C at FEFDG>FG9C?DG:EFG6,<<CFGC55C=FGDFG+?EFGGGGFG+=1>;EF8/206CF at 7CFFEEF0>C<F986?AFFFD?7EEF at F<C52 at BF5((79F9?077
+ at HWI-M01378:140129:000000000-A7785:1:1114:14583:14170 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGCFGFGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGGGGFEGGGGGGGGGGGGGGGGGGGGGGGEGGGGGEFFGGGGGGFGGGGGGGGGDFECEGGCGGGGDEGECEDCCFGGGGGGFF at CGDGGFF<CA<FFFGFAFCFGGFF at FEE?GFFFB?FCDBFGD<@517B?D?FEFFF>FF:0 at F
+ at HWI-M01378:140129:000000000-A7785:1:1114:7126:18810 1:N:0: TATAGCACGC
+TCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGGTACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCTA
++
+GFGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGCFGGGGGFGGGGGGGGGGGGFGGGGGGGGGGGFGGGGGEEGGFCEGGGGGGGGGGGGGGGGGGGGGGGFGFGGGGGGGGGGGGGEGGF?FFGFGGFCFFGGGGGGGFGGFEFFF@:?FGG8=8B at FF@GGFF=BDGEFF:57?FF:CB1*15<>FB0:?F(0:
+ at HWI-M01378:140129:000000000-A7785:1:1114:12409:19488 1:N:0: TATAGCACGC
+AGGGCAGAGTCACCATTACCAGGGACGCATCCGCGAGCACAGCCTACATGGAGCTGAGCAGCCTGAGATCTGAAGACACGGCTGTGTATTACTGTGCGAGAGAGCAGTGGCTGGTACTTTTAACCTTTGACTACTGGGGCCAGGGAACCCTGGTCACCGTCTCCTCAGGTAGACCAAGTCTCTGCTACCGTATATAGCACGC
++
+GGGGGGGGGGGGGGGGGGGGGGGGG at CCFGGGGGG+>FCGGGGGGEF?A9FGGGGGGGGGGGGGG8FGFGGFGGGGGGGGGGGG,BFFFGGGGDFFGEGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGCFFGGGGDFGEGGEGGGGGGGGGGGGGGGGGGGGGGGGFGGGGFCGGCE8FG?CGGGFFGFFCFFFGF7ECF=:
+ at HWI-M01378:140129:000000000-A7785:1:1114:9907:23323 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGACAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGFFGGGGGGGGGGGGGFGFGGGGGGGGGGGGGGGGGGGGGGGGGGGFGFGGGGGGGGGGGGGGGGGGGDCEGGGFGFCFFGGGGGGGGGGGFCFFEFGFGFFFFG?E>>DFGCCC69?AGF?FFFG>0)0:F7:C
+ at HWI-M01378:140129:000000000-A7785:1:1115:20594:2152 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATACTCACAGAAGTTCCAGGGCAGAGTCAC
++
+:FFGGG8<FEFFGGGGF,EFG9FEFGGGGD77FGGGGCFFGGGGFGGGGGCCFGCEGFFEFGF?FFFGFFFFGDGCFF,?EEFGGGGGCGFGEFG<EEFGGGGGGEEFF9A, at FEGGGGC7DGEGGDB7C<:,3,>F, at FGCFEFGG*<,6>B:,>,1D at EDE=5==,12*BE?B9CC:C=G>+<*:C;FG4(5++++5CC>52.31<CF
+ at HWI-M01378:140129:000000000-A7785:1:1115:22303:4248 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGECGFFFGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGFFGGF?FFGGGGGGGG?+CFFGFFCD at FG9CECFEFF<FC6EGBFF<FGGGF?GF?FFFG07C1>71;D>BB:?>?
+ at HWI-M01378:140129:000000000-A7785:1:1115:21004:5310 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCA
++
+GFGGGGGGGGGGGGGGFGGGGGFGGGGGDGGGGGFGGGGGGGGGGGFGGGGGGFGGGGGEGCE?FGGGCFGGGGGGGGGFCE9FGDFGGGCEGGGGGG9EBFAFGAAFGGCEFE8CFEGGG6?@FEC:FGFEGFGGGG,:ECC9FCCCGFGGEGGGGGGGBC5?EDGF<CCFF,<CEEGFGGGGGF797 at BC@GGC==78=>FFF5)2*9?B
+ at HWI-M01378:140129:000000000-A7785:1:1115:3643:7099 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGACGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+FEFFGEFDGGGGGGGDGGGGGGGGGGA, at CFGGGGGGGGGGGGGGGGGGGGGGGGGGG<<FGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDFCGGGGGGGGGGCFGEGDGGGEGEEDGGGEDFFFGFDE6FGGGGG4DEEECGGGGGCFEGGC=EG9EGGGGGFGGGFGGG+AFF7@))5*6CGCFFFGDE:DFCA7FFF>AGFF:)7E:0>?BG:7E:<)7>BBBFFFFB
+ at HWI-M01378:140129:000000000-A7785:1:1115:19291:10393 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTTCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGACAATGGTAACACAAAATATTCACAGTAGTTCCAGGGCAGAGTCCCCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGFFFGD<FFFGGGFGGGG9FFGGGFFGGGGGFGGFGGFGFGGGGFGGGGGGEGFGFF<FGGGGGGGGDF8>ECFDDDFFGAFEFEGGFEGFDFEGFFFGGEE;A9FAEE,EFF+F:B=CGGGGGGGGG at FGGGGFG@FG:@>@D?77:D6?EGGFCEC8BCGE=EFF92;,4=<>EF<8F:E+2::9<.+3/31?7A at 95)83)3)5+/;8:C7CD>BC?FF0:C:?F<:579 at 071(.77
+ at HWI-M01378:140129:000000000-A7785:1:1115:26788:11790 1:N:0: TATAGCACGC
+CTCCCTGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTCTGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAAGACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGC
++
+ at FGGGCGGG<FFGGG at FGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGCGGGG@FGGG,EFFEFGGGGGGGGGG<FF9FFG9,BEGGGGGGDGG,AF,FFFFGGC,C<FFGGGEFG+CB+DF+ at FBFFGGGGFFF7F?FGGGGGGFGGGF7CCCFGFFGCD7CGC=9CFD2>C,>CFGGGGG?++:<<@F7=FGGFF at EEDF7:@6+ at F?>F7CFFBFG14>13C>?G?F
+ at HWI-M01378:140129:000000000-A7785:1:1115:22293:14738 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEGGGGGGGGGGGGGGGGGGGGGGGFGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGCFGFGGGGGGGGGGGGGGGFEGGGGGGGGGGGGGGGFEFFGGGGGGGGGGGGGFFGGGGGGGGGFGGFGGFFEFFGGGFGGGEFFFFGFGG??>AGFGGFFGF:FFFGFFG?FB9FD>FBFFFF
+ at HWI-M01378:140129:000000000-A7785:1:1115:3156:15238 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGG9FFGGGGGGGGGGGGGGGGG at DGGGGGGGGCFGGGGGGGGGGGGGGGGGG9FGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGFGG?FGGFFEGGGGGGGGGGGFEGGFGFGGGGGGGGGGFEFCFCBFFGGGGGGFCAGGEEFGFGGCFGGGGFFFFF22CB@>AGGGGBFG?4>:?GFBGFF>(4.9?7:?FB
+ at HWI-M01378:140129:000000000-A7785:1:1115:27886:16559 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGG
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGAFFGGGGGGGGGGGGGCFGGGGGGGGGGGGGGGGGCBCGGGGGGGGGG57C>CFGGFCFGGG*?EEGGFFFGFGDFGGFGCFGD?;CC>FEAGF at CGGFCCGEFFFFFEGGFF7<DCGG<7EB
+ at HWI-M01378:140129:000000000-A7785:1:1115:22345:18846 1:N:0: TATAGCACGC
+TCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCCGGGCAGAGTCACCATTACCAGGGAC
++
+GGGGGGGGGG<FGGGGGGGGCGGGGGGGGGGGGGGG,CFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGGGGGGGFGGGGGGFGGGGFGGGCGGGGGGGGGGGGGGBG>GFGGGGGG:37 at DECFGGGGGG7;ECFDECCEDEGEFGG>;;02>CGGGDD??7+;94;F;C;:<*2=:58.4>24<FFF867CGG?FE??
+ at HWI-M01378:140129:000000000-A7785:1:1115:13309:19306 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCGCTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGFGGGGGGGGGGGFGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGG7FGGGGGGGGGGGGGGGGGGGGGFGGGGFGDFFF at FCEGGGGD=GGGGGGGDGGEFGFGGGGGGGGGGGGGF+49;<6 at F@BACFGGFFFFGFGC?FBACFFFDFE0(71?FB:E?FD93BBFF:?F1
+ at HWI-M01378:140129:000000000-A7785:1:1115:24515:20126 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCC
++
+GGGGGGGGGGGGGGGGGGGGGGCGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGCFGGEGGGGGGFGGGGGGGGGGGGGGGGGGGGFFFGGGEFFDEFCGFDGFGGDGGGGGGFD2BEEGGGGGGGGGGF>C?@C4;FGGCGGFGFF6:56;CFFFFGGFGFFGFFFBFC82C
+ at HWI-M01378:140129:000000000-A7785:1:1115:15717:20410 1:N:0: TATAGCACGC
+TCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATGCACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCTA
++
+GGGGGGGFFGGGGGGGGGGGGGGGGGGGGGGGGGGF9FFGGGGGGGGGG?@CGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGDGGGGGGGGGGGGFGGGDGGGGGGGGEEEGGGGEGGGGGFEGGFGGGGGGGFGGFGGCFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGFFGGFGGGFGGGG>D at FFAFFFFFFG*>F?BG:?>BFC8750<@9>D<?B?B at D
+ at HWI-M01378:140129:000000000-A7785:1:1115:20074:21744 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGAGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGG
++
+D<FGFDGFGGCA, at 6CEFCE@E6:CFGGEC at CEF@CFGDFGGFGGGGGG:F+B=ADFDGFGG<FFGEFEFGFGGGG at EGGGCFAEGGFGE?FGDFEB=AFC:==AEE?FGGGCF7>CEGCF+AEGEGGFCFGGFGGGGGDFCFGGGGGFBAEDF6241DF55??*::08CGC;FEFFGGC=D+@:8+=54B8(A:E=@GGEFF2AC6<DFF7AF7CC<?G
+ at HWI-M01378:140129:000000000-A7785:1:1115:10327:25119 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCCTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAA
++
+GFGGGGGGGGGGGGGFGGGGGG,CFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEFGFGFGGGFGGGGGGGGGGGGGGGGFDGGFFGFFGFGGGGGGGGFFGGCCEEGGGGG+66@@FC<+:FEGCF,DFG7DFGGGFF4F5,?>FDFCC,=CD*:CEDGFFG;;FGE6CGF
+ at HWI-M01378:140129:000000000-A7785:1:1116:21394:3317 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCCCAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACA
++
+GGGGGGGGGFFGGGGGGGGGGGGGGGGGGGGGEGGFGGGGFFEFFFGGGGGGEGGGGGGGGGGGGGGGGGGGGGGGGGGFFFGGGGGGFFFFFGGGGGDEGGGGGGGGGGFGGGGGECF7B8DCFCEFGDFGFCFGGG?CCFDFF<>FEGGGGGCCEGDFEDC?CEGFGGGEFFGFFGCGGD?FGF+==;DF65CFGGFCCB>;0C?CCFFBAFGFDA?E0(;6?G
+ at HWI-M01378:140129:000000000-A7785:1:1116:21781:3983 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGCGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEGGGGGGGGGGGGGGGGGCEGGGGGGGGGGGGGGGGGGGGFGGEGFGDFFFGGGGGGGGCGGGGGGGGGGGGFFGGGFGGGGGGGGGGGGFFGFFGGFGGGGGFCGEFFFGDGGFFFAFFGGBFGFFF??F?>F?FBFFFFFFFFF?
+ at HWI-M01378:140129:000000000-A7785:1:1116:19367:5061 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEEFGGGGGG at FGGGGGGGGGGGGGGGGGGGGGGGGGFGGFEGGGGG5DEGGEDGGGGGFGFGGGGGGGGGGFFGE<DCFGGFGGFGGB:(3FFFGFFB2FFFC<BGF?FF?FFFG?>>;>D
+ at HWI-M01378:140129:000000000-A7785:1:1116:22704:5419 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGAAACATCC
++
+GGGGGGFGGGGFGGFFGGGGGGFFFFGGGGGGFGGCGGGGGGGGGGGGGGGGGGGFFGGGFGFGGFGGGGDGAGGGGGGGFFG<DGGGGFFFEGGFGGGGGGGGGGFGGGAEEFCEEGGEGFFECEGGGEG>FGGGGGGGGFGGGGGGFC6DEFFDGGGEGGGGGGGGGGGGGGGCFGG5FGGGGFAGC37<AG>GGGGFGFFF<FFGGFF>27?>F<2=08.(:F<:C
+ at HWI-M01378:140129:000000000-A7785:1:1116:3314:6852 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTACGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGACAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGC
++
+GGF8F8CDFD9<E at CFGEEFGGFG9@FGGGEG at FGFGGGEFDF<CEFGGEGCFFFDEFEGFFFGGGGGGGFFC?FGGGGGG9B<FGGGGGGGFGCEGEEGG9ECFGGGGE<FFFC at CGGGCDD6@CFGGGG7 at FGFFGGGGGGFFGGF:C,:CFCEGFGF=DEEDCCE:F043AFGFGBC*CCDGFAFE<*9AFGGGG?FE>F;1860>8?>A?GGF2):22:?6DB?G<@
+ at HWI-M01378:140129:000000000-A7785:1:1116:12883:11398 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGEFEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGCFGFGGDGCGGGGGGGGGGGGGGGGGGGGFFGEFGGFGGGGGGGGFFFFGFGGFF?DFGGGFFGF1F:?G?BG?FFFFFFBFFFGF
+ at HWI-M01378:140129:000000000-A7785:1:1116:4257:14374 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGCCACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGFFGGFGGGGGGGGGGGGGGGGGGGG<FGGGGGFFGGFEFGGGFGGGG9FGGGGGGFCGGGGGGFGGGGGGCCGGGGGGGCC7 at FFGCCF4CEFGGG6EFFGGGDD57CFGGCGEFEGGGGGGF::FGFFGFE*;;FGGGGG8EA><?5?CF?@?FFCFGA?E:(),(25?C?@2,9D9BFBBD?
+ at HWI-M01378:140129:000000000-A7785:1:1116:21249:16016 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGACAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCACGGACACATCC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG8F8C at EEEGFGGGGDG:>CFG7E8 at GGE>FFGCGGGGGGGGGGF?F at FGCE=EGGCCGFFGCAGGGGG=DCFCCFDEFGGFGGGFFECE>546C79 at C*)5 at DGG9?G03BFFF>DF
+ at HWI-M01378:140129:000000000-A7785:1:1116:26580:20568 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATGCACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCT
++
+F at FFGGGGGGGGGGGGGGGGGGGGGGGGGGFFEFGGGFGGGFGFGGGGGGGEGGFGGGGGGG<FFFGGGGGGFGGGFGGGFFGGGGGGGGGGFGGGGFEFDG,9AECEGCFGGGEGGGGEEFFAFG+@<+3>F,@,3@
+ at HWI-M01378:140129:000000000-A7785:1:1117:15050:1908 1:N:0: TATAGCACGC
+TCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCAGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCAC
++
+GGGGGGGGGGGGGGGGGFGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDFFGGGGGGGGGGGGGGGGGGGGGFGGGDGGGGFGGGGGGGGGGFGGGGGGGCGDGE at FGGGGGGGGGGGGGGGGGGGFCFCFGFC8F?FGGFGGFGCEGEDGGGGFGGGFGGFFEFGGGGGG<FFGEFGCE<+=E96?CFBDFEEFD
+ at HWI-M01378:140129:000000000-A7785:1:1117:15528:1981 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCA
++
+GGGGGGFGGFFFGGFCFGGGDF at CEGGGG@FGGGDCFGGGFDDDAFGGGCEGGG8FFFC,EFFFFAF9FGGFGGGGD<5CDFA4FF at FGGGGC9ADFGDGGDGGGGE9ACEFCG+8CGG7+@DCEGDEGCE at F?CCEGDC8>ECF9EFGGCEEGD?FFEFCEC?CE69@@;F9C97ACCFD>+=1;A
+ at HWI-M01378:140129:000000000-A7785:1:1117:10756:3719 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGCGDGGEGGEFCGGGGCFFGGFGFGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGFFFFEFGG at CF9FFDGGEF?FGCCDFF?FFGFGF?GB?FFFGBFE?FFBFFBB?FF>1
+ at HWI-M01378:140129:000000000-A7785:1:1117:24534:4247 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCTAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACCAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTCCCAGGGACGCATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEFGGGGGGGGGGGGFGGGGGGGGGGGGDFGGGGDGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGDGEGGGGGGGGGGDGGGGFCFGGGGGGGGGGCE8FCEGGGGFFCGGEGGGDGCGFGGC9CGFC*CFCF:FGCAFE<69=GCGG?:*7::;FFEGD<=33F:@G=?GFF3((/41C?>491>9?FF?3:
+ at HWI-M01378:140129:000000000-A7785:1:1117:13251:7519 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCCCCATTACCAGG
++
+ at EFCGCFGGDFFFEEGGFEGCCFFDFGGGE@C8FGGG?EAEDFGFDFGGGGGGGGGFGGECFGFGFFGGGGFGGFFGGGFGFGGGFGCEDGFEBEFFGGFFGGGA?EAFFGGFFGGFEBCFFEGG at BFCC7@C>>:BEFEFF=DF,@<586?B at 8?@:<@:5//7==C,>8>CCCFGGFGGGFFGFFGF9GFEGCD+245/:=FFE99*)8:?BGF???E
+ at HWI-M01378:140129:000000000-A7785:1:1117:14612:8918 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGCGGGGGGGGGGGGGGGGGGGGGGGGGGG9EGGGGGGGGGGG at FGFGGGGGGGGGGGGGFGDGGGGGGGGGGGGGGGGGGGGGGGGGFFFGGGGGGGGGGGGGGCFGGGGDCEEGGGGGG=,ACFGG7DFGGFAF?>DC=FFGGGFGGFFFFGFFGFFFFFGFGBFGF?F:2CBDG0.32(8;F?BBGF
+ at HWI-M01378:140129:000000000-A7785:1:1117:2770:10016 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGACAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEGGGGGGDGGGGGGGFGGGGGGGGGGGGGGGGFGGGGGGGGF9DFGGCFGGFGGGGGGGFGGGFGFGGGGGGF9FGGGGGGGGGDGDGGGGGGGGGGGGDGDGFCGGEGGGG>FGGGFGGGGGGEGGGG?ECCGDGGGCFG7;BEGCFGFEDFGGFFGFEGDE at DFFGGFGB><A/1+;<64<=?FFF7E(,02(082C?>032>BBBFFC
+ at HWI-M01378:140129:000000000-A7785:1:1117:7058:13477 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGCAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGFGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDFGFGGGCEEGG:CFFFEGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFEDGGGDC9FGFFGFFGDEFGGGGGGGFF?FF>EGF@<BFFFGFFDB?F:?<2>FFF>BF at 9?07?FF
+ at HWI-M01378:140129:000000000-A7785:1:1117:20535:14960 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGDGGGGGGGFGGGGGGGGGGGGGGCFGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGCFGFGGGGGGGGGGFFGFFGGFGFGGGGFGFFFFGC at FFFFBFGFGFBGFFFB?F>:FBFBFFF>:::BGF
+ at HWI-M01378:140129:000000000-A7785:1:1117:12925:16162 1:N:0: TATAGCACGC
+TCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGACAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCC
++
+FGGGGGGFGGFGGFGGGGGGGGGGGGGGGGGFGGGGGGGFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGFGGGGFGGGCGGFGGGGGGGGGGGGGGGFGGFGGEGGGGFGFGGG6DEGFFGCFGGGG<CFGGGGGGGGGGGGGGGGGGGFAAC<;CG6FGGGGGGGFEFFGAGCEFD<FFFGFFG?<F?BGBB
+ at HWI-M01378:140129:000000000-A7785:1:1117:16205:24882 1:N:0: TATAGCACGC
+AGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCTACATGGAGCTGAGCAGCCTGAGATCTGAAGACACGGCTGTGTATTACTGTGCGAGAGAGCAGTGGCTGGTACTTTTAACCTTTGACTACTGGGGCCAGGGAACCCTGGTCACCGTCTCCTCAGGT
++
+GGGGGGGGGGGGGGFFGFGGGGGG at CGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDFGGGGGGGGGGF?C>=B7F=FBFDFGGGFEFFCDFG9F=CCFGFGA at CF<FG,DFGE5CFGGF:FFEFFF<,5<AE,;:;FFGFCFF
+ at HWI-M01378:140129:000000000-A7785:1:1118:9968:1647 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGGGGATGGGACGGATCACCGCTGGCAATGGTAACACAAAAT
++
+G at FDFF@FFGGFGGGFGGGGGG at FEFGDFFFGGGDCFFGFFEFEGGGCCGGGED@<F@?5?FGGGGGGGGFGG?@8=FGGG9EE at EGGGGGGCBF9F,AFFGEE;ACAFFEEGE@=:@B at 7DE3>FGDGDE7>CFGGGGG6,,6>C1*1D8,4<587@,,/7=C7*AFDFFC<F++=8:C=?
+ at HWI-M01378:140129:000000000-A7785:1:1118:9715:1754 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCG
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGFGGEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGG<EFGGGGGFGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGGEGGGGGGGGFGGGGDEGGGGGGGGGFGGGGFGGGGGGGGGGGG6CEGFFCFFDFGGF77 at FFACEFGDEEGGGCCCC5)(8599*:4357:D7-4E0,.:?448C?
+ at HWI-M01378:140129:000000000-A7785:1:1118:9533:1899 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTTCCAGAAGTTCCAGGGCAGAGTCAACATTACCAGGGACACATCC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGGGGGGGGGFGGGGGGGGFGGGGGFGGFGGGGGGGGGGGGGGGGGGGGGGD,AFGFGGFGFGFGGGGGGG6 at CEGGCGGFGGFGGFFDGFFFGGFGFGFFGFGGGGGGGGCDGGGDGEGGGD=EGFFEEGGGG5FCFFGGG++=<+00/<:4 at EFFGEF?;17+:):32?F>DA:E?0FF:FF>G
+ at HWI-M01378:140129:000000000-A7785:1:1118:8691:1931 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGFCFGFFGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGFGGFFGDFFGGGGGGGECCGCEFCFFE6?FGGGGGGGDFCCGG<FGGG;FGGCFFG?FEF8FC:C:::EEDEFGFFG9@:,1<8F/=C>FD at CF587C@GFC+1+?5DFF at GE
+ at HWI-M01378:140129:000000000-A7785:1:1118:23298:2242 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAAAACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGG
++
+DFGGGGGGGFFGGGG9FGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEGGGGCGGGGGGGGFGGGGGGGGGGGGGGGGGG9 at FGGGGGGGGGGGFGGGGGGGGGCC<FGGGGGGGGGGGGGEGGGGGGGGGGGGGGGGGGGGGFGGGGGDEGCFFG?EEGGG=C89EGGFG,,5ACGDF?CFGC+298FFE?:7 at CFFDFFDDG.2+-9<>=7C><3C
+ at HWI-M01378:140129:000000000-A7785:1:1118:23073:6508 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTGTGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDFGDFFFGGFGGGGGGGGGGGGGGGGGGGGFGGGGGGFGFFGGGGGGGGFGFFGGFGGGGGGGGFFFDFFGGF=<A?CFGAFG?FFFFG>?C?F>F051<BBFF?
+ at HWI-M01378:140129:000000000-A7785:1:1118:21171:9133 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAGTATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGEFGGFGGGGGGGGBFFFGFFFBC?BBFGGFFGFFFFFGFFGFF9;FFFFFFBGF
+ at HWI-M01378:140129:000000000-A7785:1:1118:18189:10068 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGTGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGFGEFGGFGGFGGGGGFFF at F6+:<C<AFGGFB?G<1F??G??G<F9BFB:A4:?F0
+ at HWI-M01378:140129:000000000-A7785:1:1118:9717:10455 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGGTACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGDGGGGGGGGGGGGGDEGCGGGGGFGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGC=EGGGGGGGFFGGFGFGFFCF at GFFGGGGGFFFFGFGGFG?FFFGGFFGB6FFFGBFFB:9;0:>FFF:GF
+ at HWI-M01378:140129:000000000-A7785:1:1118:6493:13149 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCCGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCGCTAGCTATGCTATGCATTGGGTGCGCCAGGCCCTCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGAACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGFGGGGGGGGGGGGGGGGFGGGGGGGG?FCFDFGCFGC3>DGGGGDGEF:?FAGGAC?A at FFFAFEBFF1?GF?;:FBF()(.(8?FF
+ at HWI-M01378:140129:000000000-A7785:1:1118:9182:16529 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GFGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFEGEFGGGFGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGEGGGGGGGGGGGGGGGGGCFFF?FGGGFGGGGGGGGGGGGGGGFGFGGGGGGGGGGGGFF?FC?@GGF>CF?<AFDDF?CGFG?<FDGGF?=<6FF<437FFFBBFFFFFB<G?
+ at HWI-M01378:140129:000000000-A7785:1:1118:21261:19014 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGC
++
+GFGGGGGGGGGGGGGGGGGGGGFGGGGFGGFEFGGGGGGGGGGGGGGFGGGGGGGGGGGGGGDFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFCGGGGGFDFEGGGGGGGGGGGGGG7<FGGGGGFGGGGFFDFFEGGGGGGGGGGGGGGDEGGGGGGF>@CCFGCGGGGGGGGFFEAGFFGGGGGGGGEFFDGC?GFGBAFGGGFFEB?@<BG27E:@
+ at HWI-M01378:140129:000000000-A7785:1:1118:17204:20285 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCC
++
+GGGGGFFGGGGGGGGGGGGGGGGGEFGGGGGGGGGGGFGFGGGGGEGGGDGEGCFFGGGGGGGGGFGGGGGGFGGFGGGFGGGGGGGGGGGGGGFFGGFGGGFGGFFGGGGGGGGGGGGGGCFGGGGGGGGGGGGGGGGGGGCFGFGGGGGGEFFFECGFEGGEGEFDGGGGGGFGGGGGGCF?FGFGEFGD3;DFF9CF3;><D5.+*.9>FFGGGFFGFBF?0>>?G
+ at HWI-M01378:140129:000000000-A7785:1:1118:19019:20700 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGC
++
+GFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEFFGCGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGFDGGGGGGGGGGGGGGGGGGGGGEGFGFGGGGGGGGCFAFEFGGFFFGGGGGGDFFDFEFC9C?FFGGGAFGF27?FGF?GFF(4;B
+ at HWI-M01378:140129:000000000-A7785:1:1118:24760:20968 1:N:0: AATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GFGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGGGGGGGGFGGGGGGEFFCC?,EFFGGFGDCFGGGCGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGEGGGGCGGGGGGGGFFFC at FFGCFGGC7CECFGGGGGDGGCFDFDFCGGDFECGGGGGFCEFFG@GDCFGFGGFF7?FC>FDD<7BFGGA?EF:FF<<::C6 at 06273(438CB
+ at HWI-M01378:140129:000000000-A7785:1:1118:12797:21177 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAGCACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFAFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEEGGGGGGGGGGGGGGGGGGGGGGFFGGGGGFGGGGGGGGGGGGGGGGDE=CEFGGGGGFCFGGFGGFGGFGFFGE3CFFGGGGGF3,=E?ECAGF)97?GAFGFFF??F?:F?FBFFD>B??FC
+ at HWI-M01378:140129:000000000-A7785:1:1119:12200:9232 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGFGFGGGGGGGGGGGGGGGGGFGGGGDGGGGFFFFGG7DFFGFFGGGGGGGGGGFDGGGGG:CGGGGECEFFFGFGGGGGG?FECFFGF3<<@FGGCGGFD)6?F84CF4<F<9?7>A?C?B@<?F?::2 at 66;B9B??F at B
+ at HWI-M01378:140129:000000000-A7785:1:1119:25522:9543 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGGGGGGGGGGGGGGCGGGGGEGGGGGGGGGGGGGGGGGGGGGGGCFCFGGGGGGGG>FGGGGGGGFFGGGGGFGGGGGEGGGGGGGGFFFFEFGGGGGGEG*=CEC?CBCFGGFFGGGGGGG?FFFGFFGFEGGFG9>FDADFFGCGGF>FA7:*:::??FF62CF?G<>600>>?FFBF?
+ at HWI-M01378:140129:000000000-A7785:1:1119:19946:11946 1:N:0: TATAGCACGC
+GTGGCCAGGGCCACCCTAGGCCTCTGGGGTCCAATGCCCAACAACCCCCGGGCCCTCCCCGGGCTCCGTCTGAGAGGGTCCCAGGGACGTAGGGGGGCGCCAGTTCTTCCCTGGGGTCCTGGCATTGTTGTCACAATGTGACAACTGGTTCGACCCCTTGGGCCA
++
+FG<FGG<FDGGE:FC at FDG<<6FGGGGGE@:=F?E<66E=F at DEF:??FF:@:F>F=:F:EGGGGG:=AFDBAFF@:73,><=F<3=FCE<3+3+511***/2:CFFF+,;7:CG52;A<+CF7C::<A82+<79C:+CFG9+0;62C3<:C//:8E*:@+*:CE
+ at HWI-M01378:140129:000000000-A7785:1:1119:26527:12673 1:N:0: TATAGCACGC
+AGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCTACATGGAGCTGAGCAGCCTGAGATCTGAAGACACGGCTGTGTATTACTGTGCGAGAGAGCAGTGGCTGGTACTTTTAACCTTTGACTACTGGTGCCAGGGAACCCTGGTCACCGTCTCCTCAGGTAGACCCAGTCTCTGCCACCGTA
++
+GGGFEC@@DGGGGGFEFDEFGGECC,C,C,6,B<@@F:FFFGGF8F<FFF88FCCF9EGGGG8?=F,,,,,4EFGF=AA at CFEFF8A<FFE@@,C<B::B+@=@7,@,,3C<CCDAFC=3FF6CDGCCE;=<@D,3@,@,5>, at CE8@FGFCFFCFGG7EDCGGFGG?6>FFC?F,4/2>,<:+9*;C?F;F
+ at HWI-M01378:140129:000000000-A7785:1:1119:25841:13619 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCG
++
+EGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGCGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGFCG:EGGGFGGGGGGGDFGGGGGGGGGGGGGGGGDGGGFCG?7DFGGGGGGGGGGGFF?FFGCFGFGCFCEEFFGFEDF at GCCD++5<B at 0>C;9*/4?<FC>F<BG:1:B?F:>F?
+ at HWI-M01378:140129:000000000-A7785:1:1119:20076:14454 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGFEFGFGFGGGGGGEFDFFEEGFFFAFGGGB?GB?FFBFFFG<FF>BF>FFFFFB
+ at HWI-M01378:140129:000000000-A7785:1:1119:26820:14628 1:N:0: TATAGCACGC
+AGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCTACATGGAGCTGAGCAGCCTGAGATCTGAAGACACGGCTGTGTATTACTGTGCGAGAGAGCAGTGGCTGGTACTTTTAACCTTTGACTACTGGGGCCAGGGAACCCTGGTCACCGTCTCCTCAGGTAGACCAAGTCTCTGCTACCGTATATAGCACGC
++
+GGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGGEGGGGGGGGGGGGEGGGFGGGGGGFFGGGFGFG<<E9EGGGGGGGGGFFGGGGGGC?8EEGGFCCFFGGGGFFFFGFGGGGGGGGGFF?@FFGDGGGGGG?D:
+ at HWI-M01378:140129:000000000-A7785:1:1119:5209:16156 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGG<EFGGGGGGGFGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGFGGGGGGGGGGFGGGGGGGGGGGGFGGGGGFF?CCFGGGGFCCAFCCEGGEBFGDFGGDFFFFGCFGFFFBFGGGFFGFFFF?GFFGFFF>1B>B?:?FF
+ at HWI-M01378:140129:000000000-A7785:1:1119:21229:17686 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAAAACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCC
++
+DFGGGGGGG8FFGGG<FGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGDGGGGGGGGFFGGGGGGGGGGGGGGGGG<@FGGGGGGGC9FGGGGGGGGGG95A?FGGGGGGGGGGGGGGGGDGGGGGG>EGGGGGGGGGGGGGGGG,BFGFGGFGEGGCEGG?GGGGGC,+3CGF=?CC at AFFE@GGFGGGGGGGGFF?FGFGGF2?AFGGG9,C?:>1(24>FFF>>>E;FFFFF
+ at HWI-M01378:140129:000000000-A7785:1:1119:6516:18986 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGCGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGDGGGGGGGGDEGGGGGGGGGGGGGGGGGGGBFGGGGGFFGFAGF at FGGGGGGDEFFFGCCDFDFBFGGFFFG04:BFGFDGFF>09BBBB?BF?
+ at HWI-M01378:140129:000000000-A7785:1:1119:11518:19811 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAAAGGTAACACAA
++
+GGGGGD<FEF at 9<@EFGGGGFFCC<E8FC7FGFFGEFFGEFGCFG8,FCCCCGFGGEFGGE,9?C?F9FFFGGGCEEFG,>AFFFCGFDD,<=CF@,8??F,,CEFFGFB8ADGGEGGEEC?=+6++ at C+5*3DD6@@@FG7 at B>?26:>D@><8=?F?,B)*78?F,,5;92:<EF=F
+ at HWI-M01378:140129:000000000-A7785:1:2101:10492:6392 1:N:0: TATAGCACGC
+TCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACGAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAG
++
+GFGGGGGGGG9FFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGFFGGGGGGFGFFGGGEFGGGGCEGGGGGGGFGGFFGGDEFGGGGGFFGGG7BEFE at EGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGD??:EE7C/9CE,<ECFB9BFGGGGGGG=@FGFFGE at GGCGEG=7AC5(/2.C>F7<?FAFFDBD
+ at HWI-M01378:140129:000000000-A7785:1:2101:21110:9989 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGFGGGGGGGGCGGGGGGGGGGGGGGGGGGEGGGGGGGGGGGGFGGFD>EFFGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGF=?CFFGFFGGECGGFCGGGF??FFEG*6,88/:E4:45>?FB?G7?A?>1175((48>5?
+ at HWI-M01378:140129:000000000-A7785:1:2101:25521:14328 1:N:0: TATAGCACGC
+CTCCCAGGTCCAACTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCCCAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEFFGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFF9FCGCGGGGGDGGGGGGGGGGGGGGGGCG7>FFGGG9D at FFGGGGDGGFGC?CDGDDGGGGFFGGGGGCFGGGGGFFGEFGFFGFGGCCCC6@()5)+2-5<DBFCFBFG5(02?F?FGFFF>93(32(78?
+ at HWI-M01378:140129:000000000-A7785:1:2101:6147:17939 1:N:0: TATAGTACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATC
++
+GGGGGCGFFGGGGGGGGGGFGGFFFGGGGGGGCFGFGFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFFGGFGGGGGEGGGGGGGGG7CEFFFCC, at FFF;@8 at 5;FF6,>EGGGGGG>55<8*,01>;>E7412@:FGFCF at 6@F6 at C<@GGGCGFFD121:*.BDA)4A=:CB28;5(<3:DFF
+ at HWI-M01378:140129:000000000-A7785:1:2101:7510:19246 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGG
++
+GGGGGGGGGCGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGFGGGGGGC<FEEFGGGGGGG9,75CFFGGGGGDGGGGGGGG at CFGGGGFGFGGGGGGDFGGGFGGG6CFFGGGCF*CD55EF9EGGGG7<7>CCF4FCC7AFF?@F4;CFGGGGGG;?<AGEGGF>2<FGGF<);C
+ at HWI-M01378:140129:000000000-A7785:1:2101:13482:19637 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCGGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGGAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCC
++
+EFGGGGGGGGGGGGGGGGGGGGGGGGGGGEGGGGGGGGFGGGGGGG,FFFEFGGGGGGGGGGGGGFCFAFGGFGGGGGGGGGGFGGGGGGGGGGGFGGGGGGGGGGGGGG9FFE7EGGGGGGGGFGGFE7FFGGC>F78CGGGGD<DCGGGGGG6?CFGFGDC4:?EC6?**=CCF4ECFFDFGFFAF3)<;@>C+;@EF=:?FF74CGFB?)9CFFA?G3,70?FFFC
+ at HWI-M01378:140129:000000000-A7785:1:2101:9133:23948 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGCTCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTACAGGGCAGAGTCACCATTACCAGG
++
+GGGFG<EGGFGGGGGGGGGGGGGGFGGGGGGGGGGEGGGEEFCEF=FGGGGEGDF<FAFGGF<FGDFGG at 8>FGFGGGGGAFBF=FFGFCGGGGF at EFAABFGGGGFGGGFGCFCECEGGGFGG@FGGCEGGGFF>E,DF;<FFG?***>F61>6:,,57*591=CC?EFG;7=EC<@C8F7CCFF8+)/2*6C at +CCECCF04>*)?*).8>?FC at 27C
+ at HWI-M01378:140129:000000000-A7785:1:2102:23669:4942 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGGGGGGGGGGDGGGGGGFG?FGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGG?CFFFFGGGGGGGGGGGFFGGFGGGGGGFCBFFFGFGGFFFFGGGFFFGD4D?FGFFC::;99E0?B?FGF
+ at HWI-M01378:140129:000000000-A7785:1:2102:18023:6868 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCTCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGFGGGGGGGGGGGGGGGGGGGG,FGGGGGGGGGGGGGGGGGG at FGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGFFGFGCGGGGFGGGGGGGGGGGGGGGGGGGGGGGGFFGGFFGFGGGGGGGGGGGGGGFGFFGGGGDGGGGGGGCBFGGGGGGGGGGGGGC.88CFGGGGGGGGEAFFG4B?FFEFFGGGF:C5<G(:*,5847>;6)4:11>F?
+ at HWI-M01378:140129:000000000-A7785:1:2102:20537:10795 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGCCFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGDFGGFGGGGGGGGGFFGGFGGGGGGGGFFFFGFGGFFFFGGGGBBGGFGFFC,4;1>>;BFFBBFFGF
+ at HWI-M01378:140129:000000000-A7785:1:2102:11278:14783 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGACAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCCT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGFGGGGGGGGFFFFFEGGFFFFGGGGFFGGFG?FG>?C?FFFFFFF?:FFB
+ at HWI-M01378:140129:000000000-A7785:1:2102:15247:16145 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACCAGGGACACATCCGCGAGCACAGCC
++
+DGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGFGGGGGGGGGGGGC?FGFGFFCGEGGGGGGFGGGGFGGGGGGFGGGGGGGGGF5?EGDGGFGFFFCFGGFGFE=FF99 at FGFFGGFGFFCCGGGEFFF5)?EF?BFF>EGFFGD096<624F:>B>BE9?<<>C
diff --git a/clipper/t/in/join/test-ov-b.2.fq b/clipper/t/in/join/test-ov-b.2.fq
new file mode 100644
index 0000000..7afeec4
--- /dev/null
+++ b/clipper/t/in/join/test-ov-b.2.fq
@@ -0,0 +1,400 @@
+ at HWI-M01378:140129:000000000-A7785:1:1112:20058:10262 3:N:0: TATAGCACGC
+GGAAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGTTAGCGTTGGTCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCGTGGCGCACCCAATGCATAG
++
+GF8EGGGCE8=:6FFGGGD83=DDGFGGCDDCD:?:EEC+<@*,9CDACFF7;++,@?ECDCDGCCB+*4988AF?FG:699>A75:@8B<C5EDF)47EB3C(C5761(:GA<9?
+ at HWI-M01378:140129:000000000-A7785:1:1112:27324:10852 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTT
++
+GGGGGGGEGGFGGGGFGGGGFFFGGGGGCGGFGG at EGGGGFGFGGFGG?FG77AGFGFGG>FDDGGFFFGGFGFGGFGFFFFFFGEFFFF55EGD;51;>;AEBGGFF:?>FA)<7?<BF>FDB@>A7C>?BBCA<AFGC7<F34?G
+ at HWI-M01378:140129:000000000-A7785:1:1112:13807:10870 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCGCCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTT
++
+GGGGGFGFGGGGGGGGGGGGGGGGGGGGGGAFGFGGFGGGGGFGGFGFGGGFGFGGGFGG>CFGGG68AG>CGFCFFG=FAGFFGEFFFCDCEGC9FF?3=EGBDE38???G<<F?FBFA2<9<F25:C<6>:GA<AFFC<:C??FD
+ at HWI-M01378:140129:000000000-A7785:1:1112:12421:11010 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCA
++
+GGGGGGGGGGGGGGGFGGGGGFGGGGGGGGGGGGFGGGGGGGFGGFGGGGGFGFGGGFGGFGGGGGFFFGGFGFGGFGFFFGFFGFFFFFGGDDGBFFFFFFGFGGFFB?FGFFG??<BBBGFFFFA>CAGF?CB96 at C*.(<7:798E?
+ at HWI-M01378:140129:000000000-A7785:1:1112:7453:12346 3:N:0: TATAGCACGC
+GTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCA
++
+GGGGGGGGFFF;DCDBFGGGGGGGGGGGGGGGGGFGGEGGGFFFGFFGGG:CGFGGGFGD>FFCFGFFFG>FGFGCFC=4AGFFGC>6B5DCEED0:664()*7D>5,24?F
+ at HWI-M01378:140129:000000000-A7785:1:1112:24376:13941 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCAT
++
+GGGGGFG9=8DFFFGGDEGGFFGGFDFGFGDGCADAFGGCD at FGDCCFFGGFGFGCGFGCEC>CFG6B>FGFD9FFFG2*3A9FE3BFFADDDCDB5;?3=)A1>:B?F18?2<+=?AF
+ at HWI-M01378:140129:000000000-A7785:1:1112:10620:14798 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCTCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCA
++
+CEGGGFGA@=E:@9DFF,=@,=EFEGGGDFGGC,9CE8CDAEFGFCFGGGGFF8+4@>:>5@@D>GFAAF51=A469*)*3CFFFBFFFFGC5CC at E02F6;EFGCEF
+ at HWI-M01378:140129:000000000-A7785:1:1112:26422:14876 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAAT
++
+GGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGFGGGFGGGGGGFGGFGFCGGFGFGGGFGGFFDFDFFFCCCFGFG?FGD6AFFFG at FFCFGGGGGF>?15;);1C>3:??
+ at HWI-M01378:140129:000000000-A7785:1:1112:17229:16419 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCA
++
+GGGGGGFFGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGFGGGFGGFGGCCGFGFGGGFGGDGGGGGFFFGGFGFFGFGFFFGFFGFFFFFCDEEGF:;@F6BGFGGFF<?FGBAFFF<F>266AFDFCFA?40D<AF7C4>7CFFFG:EF
+ at HWI-M01378:140129:000000000-A7785:1:1112:9440:21170 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCA
++
+GFFGGGGGGGGGGGGFFGGGGGGGGGGGGGGGGGFFGGGGGGFGG9@:FGGFGFG?C>GDEGFGGGFFCGFFGFGGFGFFFGFFFEAFFFCGD57>A?F3(.A9GDB?F?:F>BC??BFF2FBAFDDG>A?2(C3))9:*4,C?FFF3C?
+ at HWI-M01378:140129:000000000-A7785:1:1112:13154:23703 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCTACTCAAGCCTTTGTCCGGGGGC
++
+GGGGF;,3EDE:,AEACE=DFCFGGFCE8DADFGGCFEFF,@*@7C:ADFEFGAGGGB at DFFG>F?FFFF>@C+5DAG=FFFFFF*+===*?=EDF
+ at HWI-M01378:140129:000000000-A7785:1:1113:9219:5995 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAGGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCAAGAAGCCTTGCA
++
+GGGF9=DADADAFFFFF,ADCGFCGGGGGC:E8 at EGGFC9CFFGFFGGCCEFGGFGGFGG5C?FCG6=A59FGFGFA>BFFG>FGFFFACC45CDB;11=0)=9 at C8??:5?24D6:96<<FB>?72*:)43:FA4A*9*44:B13 at 7C?
+ at HWI-M01378:140129:000000000-A7785:1:1113:13463:7044 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCA
++
+GGGGGGGGGGGGGGGGGGGGGG=DFCGGGGGGGGGGGGGGGGFGGFGGCGGFGGFFGEGGBFGGGGFF5CFFF at FFFG4AFGFFGFA:CFDD5ECEEFFFFDG>FGFF
+ at HWI-M01378:140129:000000000-A7785:1:1113:9754:8982 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGGATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCAT
++
+GCFGGDF9FGGGGGGFGGGGGDGGGGFFAFFD,EF8FGGFFDFGGFGGGGGFGGFGGFGGFFFDF5>AFC7BFBGC>D4AAGFFGF>FFFGG5E:B>;1;0;56 at E??FF0<<F
+ at HWI-M01378:140129:000000000-A7785:1:1113:7145:11813 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGCCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCA
++
+GGGGCGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGFGGFGGDGGFGGFGGFGGBGGGGGFFFGGFGFGGA>BFFGFFGFF6BFGGGGGFEFF at D>EFFGFFF?:GFFFFF<6:<FAFFBFGG44:?GAAA=FC<2BF2:C:F?
+ at HWI-M01378:140129:000000000-A7785:1:1113:14234:15031 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCA
++
+GGGGGGGGGGGGGGFFGGFFFGDGGGGGFFGGGGGGGFGGGGFGGFGG?FGFGGFFGAGGE7EFGFCBFFGFC at FGFGFFFGFFGFFFF8CDGGGFFF=6?DD0>=?FBF:F45C?4>FA)>>AFBAGG27?0:8).762403:(4C7F<
+ at HWI-M01378:140129:000000000-A7785:1:1113:18729:16203 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCACTGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCA
++
+GGGGGGGGGGGFFDGFCFGGGGG?FGGGGGGGGGFFGGGGGGFGGFGGGFF?CFFGGEGGFFGGGDAAFFGFEBFGFG at FFF>4:A:FFFGDEGGDBF0,=8E1>C?F(,3<8<FFF90..*<44<<F7<6??FB4<F at 95((417F?C?
+ at HWI-M01378:140129:000000000-A7785:1:1113:3306:19532 3:N:0: TATAGTACGC
+GGTAATGGTGACTCTGCCCTCGAACCTCTGTGACTATTTTGTGTTACCATT
++
+=7A>EE3=@FEFGCD;,688,6+ at 336A8D3@C,5,2@,?C;;C;9,,=CF
+ at HWI-M01378:140129:000000000-A7785:1:1113:14732:20813 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGGGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCCCCCAATGCATAGCATAGCTAGTGACGGTGTATCCAGAAGCCTT
++
+GGFFGGGGFGGFGFGGGCGGFGGGFGGGGGGGGGFGGGGGGDFGGFGGGGGFGGFGGEGEAGCD:CFF6C*:=:7F>C at FAFFFG4688BCDCG:>5;18;5A,7E;9<F0<<ACB?AFFBGBBF<):*47,(9AA<FB05(5:?7E
+ at HWI-M01378:140129:000000000-A7785:1:1114:18985:5310 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGGCTGCTGCCACCAAAAAGAGGATCCTCCAGGTCCAGTCCATGGTG
++
+FGGGGGGGGFGGEGGFGGGGGGGGGGGGGGG7EGFGGGGGGGFGGFGGFGFFGF at FGFGGFGGGGGFFFGGFGFGGE
+ at HWI-M01378:140129:000000000-A7785:1:1114:23540:7106 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGGATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAG
++
+GFGGGGGGGGGGFGGGGGGGGGGFGGGGGGGGGGGGCGGGGGFGGFGGGG@*CC=FG>EG=F95BDFFFDGFGFGGFGBFFGFFGF=@8A?DGE3(67:<D6>6EGFFFF>E44<4 at AF2.6<<=)6:DAG?,*)4<6DC<<E
+ at HWI-M01378:140129:000000000-A7785:1:1114:23450:10317 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAAGATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGTCGCACCCAATGC
++
+GFGAB9DFGGGGGGGGGCGGFC,=A8FFGG,23=9FGGCGGGFGC?;:==E at F<C, at AEE=7C at 8;9@*;9CG=DFFF2AFGFFCEF8B=C)*::(32C))/81CGDF188C
+ at HWI-M01378:140129:000000000-A7785:1:1114:14583:14170 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTCGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTA
++
+GGFFGGGGCCGFGDFE?FGGGGFGGG9=EGGFGD at D:DCC;FFGGACF8EFCDFE:8?EC>CC=7?9@*C>164;D640*3CAFG*/AB/5DE5<90?G(23*,:?)82(,3)6A4 at A?AAFAB
+ at HWI-M01378:140129:000000000-A7785:1:1114:7126:18810 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCACTGCATAGCATAGCTAGTGAAGGTGT
++
+DFGGDGFGFAFGGGGGGGG8DFCDFDBFFGGFGGGGFGGFGGFGFFCFGGA<F:9DFD9EBDC+=>BFA**8D=9CEFBFFG4?7@=+:BCCC*94;DE<?6E0>EFF0(8?)-A<F)16AFB)*-6>04C24D
+ at HWI-M01378:140129:000000000-A7785:1:1114:12409:19488 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGGCTGCTGCCACCAAAAAGAGGATCCTCCAGGTCCAGTCCAAGGTG
++
+GGDFFGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGFGGGGGFGFEGGFGGFGGGGGFFFGGF9>FF2
+ at HWI-M01378:140129:000000000-A7785:1:1114:9907:23323 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGTCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATATCTAGTGAAGGTGTATCAAGA
++
+GGGGGGGGGCFGGGCC?GGFGGFGGCDGCED7A:DFGGGGGFFCFFGGGGGFGGFGCDGGFGFGFGF6A*9FFFGF4*0>AGFFGBEFFFG4CEC>B@:;0(*4EEBBF?F6:23-/5B<)*:>FA<F:<6407424*:CA
+ at HWI-M01378:140129:000000000-A7785:1:1115:20594:2152 3:N:0: TATAGCACGC
+GGTAATCGTGACTCTGCCCTGGCACTCCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATC
++
+GEE,6E,6=D,8 at ACC>3,38D,,=@,DE?==:++3 at DAFA+;FDFDACGGFA,8,@*13**5+=;+B67;@?
+ at HWI-M01378:140129:000000000-A7785:1:1115:22303:4248 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCA
++
+FGGGFAEC>FGGGGGGFDFDFFECDGGFGG at DFGDFGGGGFFFGGFGGFGGFFGFGGFGGDGGGGGAFFGGFGBFGEG:>AGFFFFC?A+:CDE<>;0CDFFDBCE<?
+ at HWI-M01378:140129:000000000-A7785:1:1115:21004:5310 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCAACTCAAGCCTTTGTCCGGGGGCCTGGCGAACCCAATGAATAGCATA
++
+GFEEGDCADFFGE9EDGGGGGFGCEG,EDFF?ADDGGGGGGGFG9FG,=F7*=F at GF5EG9?FGF7BAA53=9*4CE>EF4E5>FFAE98CGDGC6(7F0(((,):7?B?:7)6C<F<FA
+ at HWI-M01378:140129:000000000-A7785:1:1115:3643:7099 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCCTCCACTCAAGCCTTTGTCC
++
+GFGFGGGGEFFGGGGFGGGGFC, at DGGGG8E?F+5 at CGGGEGFGGFGGFGCAFF=6E>E>9CGGGF9BFC*AE=*CED();CFFFBECFC
+ at HWI-M01378:140129:000000000-A7785:1:1115:19291:10393 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGTCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTT
++
+GGGGGGGFGGG?FGGGGGGGGFGFG?FF8AGGFFGGC=FFGGFGGFFGFGDEC,0EFEEDFGGG>FF>AFGAGFFGEG=FFGFFGF=EFFDDGE3;06C;;1?(9C>?0?3FAA?<FBF>2FFAFFFGFBG0.:34494*48??7>?
+ at HWI-M01378:140129:000000000-A7785:1:1115:26788:11790 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGATGATCGATCCCATCCACTCAAGCCTCTGTC
++
+EF=>;>=8=E9 at 8;BDB9DD@?FFFGCDFG,?E9DF:D8=:=*@CAC:<+2*=5:EE>*9*=<=*39>0;F+CB496 at 5AAGFF,;=7@
+ at HWI-M01378:140129:000000000-A7785:1:1115:22293:14738 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAG
++
+GGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGF7D=FEGGGGFFGFGFFGGEFFBGGEGGEGGGGGFFFGGFGFFF4>D>6CFFGFFFFFGGGGGFFF=276<9GGFF(407>DGAFBFFAGAB?AA::<<>:DB<AFFG
+ at HWI-M01378:140129:000000000-A7785:1:1115:3156:15238 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTTAAGGTTTATCCAGAAGCCTTGCA
++
+GGGGGGGGGGFGGGGGGGGDFGFGGGGFGGGGGGGGDFGFFDFFGAFGFGGFFF6@@>CDDG7CC?+=FCGFEDFD?F at FFGFFGFCECFGGDGGFF?56=3;;<CDFF73?<)<)74*.-744=))*::C4)04)4 at 405<?470CCDF
+ at HWI-M01378:140129:000000000-A7785:1:1115:27886:16559 3:N:0: TATAGCACGC
+GGTACTGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCA
++
+GGEA9B=EGGCGEFGGG?DG888?F?FGC96CF at FGGGGDFDACFFFFFGGFF7CGGFDG>GDCFGFFFGGFFBFGFFBFFGFFG**1=F<):5)(,:=4(1((1*;11:?DAAG)0)9<27>2=4:::26>7FF>A?F
+ at HWI-M01378:140129:000000000-A7785:1:1115:22345:18846 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAA
++
+FGGGGGGGGGGGGFBFGGFGGGCFDDFGGGGGGGGGGGGGGGFGGFGGFFF7CGCFF*CGDGGGGGFFFGGFGFFGEGFFAFFFGF6EFFG:5CC>>DA03((-CEEFF
+ at HWI-M01378:140129:000000000-A7785:1:1115:13309:19306 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGG
++
+GGGGGGGGGFGGGGGGGGGGGGFEGFGGGGGFDFGCCFGGAFFCFFC:CGGFFGFGGFGGEFDC7?FA*C*=C at 4CA9);@C5*=AEF+B?DGDD
+ at HWI-M01378:140129:000000000-A7785:1:1115:24515:20126 3:N:0: TATAGCACGC
+GTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCA
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGFGGGGGGGGGGFGGFFGFFCEFC at GGFGGAFFGGGFFFGGFF@ACBGFFFGAFFFE<A?D5CGDFF<G at 6?(6DE>0?BFFA<F>44 at A30-4?6>FG?G04>>24@
+ at HWI-M01378:140129:000000000-A7785:1:1115:15717:20410 3:N:0: TATAGCACGC
+GCTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGCATCCAGAAGCCTT
++
+G8EFGGFGGCGGGGGGGGGGGGGGGGCFFGGGGGG8DFGGGGFGGAFGFGGCFGFGGAG>AGGGGGFFFGGFGFFG6FFFFGFFGFF<FFGGGGDBFFC,66;2CG>:<??E)6C<F>*-)2.<F22:>>C?(2)-66?*57>F73F
+ at HWI-M01378:140129:000000000-A7785:1:1115:20074:21744 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGCACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCTCATCCACTCACGCCTTTGTCCGGGGGCCTGGCTCACCCAATGCATAGCATAGC
++
+G?EDC9,9 at 6E88;>D9F=E at F,=E8DFGD:9:9F82E,=EGFCC;C9B9:*=96,D*@DEG>F+*+=+<73<.;>AD:*9:?6>9*9F8DGCEG at 1;*,8(6)2:A<(8>F4>9)74BA2D
+ at HWI-M01378:140129:000000000-A7785:1:1115:10327:25119 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGGACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTT
++
+GGFFGFCFGFGGGG,=DFDGGGGGGFGGECDEFFGGFGGFGGFGG?EE<7E5BAACDEGGD>B823B+;**=15A7/0-?AEFFF
+ at HWI-M01378:140129:000000000-A7785:1:1116:21394:3317 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCACCCCCTCAAGCCTTTGTCCGGGGCCCTG
++
+GFFA>9ECF89BEE9AFFGGGGG,,DBFGFGGFGCFD====FFC7FDG?CF7+AF6C5 at C*<<C:7BEAGC*=5*=*;)>FGF),84:@:DDG5)6A??
+ at HWI-M01378:140129:000000000-A7785:1:1116:21781:3983 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCGCCCAATGCAT
++
+GGGGGGGFFGGGGGFGGGGGGGEFGGGGCE@=CGGGGGFEFFFGGFGGGGGFGGAGGEGGFGGGCDACFGGFGFGGACBBAGFFGECFFF<CDC:9)6?)86*)0>086::F<B
+ at HWI-M01378:140129:000000000-A7785:1:1116:19367:5061 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCCCACCCAATGCATAGCATAGCTAGTGAAGGTGTA
++
+GGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGFGGGFGG?FFGGGFGGFGGFGGFGGGFFFFFGGFGFGF9CBEFFFFGFFGFFGCCGFFFFFFF(;>DE?F?02644C7:49<)*64?24>FA:FFGF
+ at HWI-M01378:140129:000000000-A7785:1:1116:22704:5419 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGC
++
+GGGFGGGCFGGG;EEGGGG?EC?FGFGF,=FFGGGFEBFFC=FFGFFDFGF7@:+CFDGGFGGGGFF at 6;CB,=ACF4BF4??>?6;FFFGDD:>@EFD316E58CFF(34F
+ at HWI-M01378:140129:000000000-A7785:1:1116:3314:6852 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGTCAGCGTTGATCCATCCCATCCCATCAAGCTTTTGTCCGGGGGTCTGGCGCACCCA
++
+GGCFGDFFGC>8=EGGCFFD at F?=FCCFEDD9=C7 at DF1CCFFFDFGCFEGFGG?FC?EC5*+?2;BC0*7:5>7,1;7>69*;C6;6>F*2)/)(:53)61EB>C<?
+ at HWI-M01378:140129:000000000-A7785:1:1116:12883:11398 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTT
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGFGGGFGGFGGGGGFGGFGGFGGFFGGDGFFAFFFGDGGFGFBFGFFEF4=8FGGDCDFBDFFF0CBEGFFFFFGADGFFAF<7CAAF7AGF2:*(;ABFFF+8(04:?G
+ at HWI-M01378:140129:000000000-A7785:1:1116:4257:14374 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTTGCGACCCCAATGCATA
++
+GGG9DFGGFFGGGGGFFFGGGGF, at FGGAFGF:EEFGGFGCFAG?+ at A8FC9DGFFGEGG>@CDFCFFFGFCFDCGFGF4*AFFGF4CCFG))4=6BF)2;6*)0:<<BF0C>AC
+ at HWI-M01378:140129:000000000-A7785:1:1116:21249:16016 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGTCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGC
++
+GGGGGGGGGGGGGGGGFFFFF?DFGGFF8EFGGGGGGGD at 7FFGGFGGGGGFFFFGGEGGEGGD>FFEFGFFGFFGFGFFFGFAFE=CEFGGGGD>>?;58(C5:E2<<:0C
+ at HWI-M01378:140129:000000000-A7785:1:1116:26580:20568 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGG
++
+GGFGGGDFGGDCFFFGFFGFGGDGGGGFFFGG8EFDFAFGG?6CCFC:<CGFCF5<FAGG>C78DFF=FFCBDDFFFGBFFGFFC@;FEFCGDG
+ at HWI-M01378:140129:000000000-A7785:1:1117:15050:1908 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCTGGGGGCCTGGCGC
++
+GGGFCGGGGGGGGGFFGGGGGGFEGGGGFF:=DGGGGGGFGGBF?FGGFGGEFCFFC>E***2?CGF at CDCFD4*7AGF=*=AFG>*2*=:CFE;@>;1>@9E
+ at HWI-M01378:140129:000000000-A7785:1:1117:15528:1981 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTAGTGTTACCATTGCCAGCGTTCATCCATCCCATCCACTCACGCCTTTGTCCGGGGGC
++
+8FFG,@,ED39F,,,73 at F8D68,6,@,6@:D,6=DGGG+,++2=<A:=?F77;AF?*@>55BFFCAE5F>8@<;9;D52*=FF***+*128DCEF
+ at HWI-M01378:140129:000000000-A7785:1:1117:10756:3719 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTG
++
+GGGGGGGGGGGGGGFGGGGGGGGGGGGGFGGGGG7FGGGFGGFFGFGGFGGFGGFGGFGDDDFFFGFEBFGFGDFG?GFFAFFFGFFG?FGDDGEBFF?>D>EBGGB?<B:<.):46<F2.>AA?2::C<C2,><FF6C48?GFFFGF
+ at HWI-M01378:140129:000000000-A7785:1:1117:24534:4247 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCCCTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGC
++
+GGGGC;DGG=EG:D99FGGGDFCGGFGGFGGGG=EGGGGFGGF:7<CFAGGEGCCFG*@50*5=BCA;BG>BD)*35D==*CFFD8>@EFCDGE>9(,6569GF87521((3.4?-<A?2<G
+ at HWI-M01378:140129:000000000-A7785:1:1117:13251:7519 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCG
++
+D<FGFCF8EFEGDBFGGFDFDFF?EFEDGA at C,29=9CEFGFFG?FG<9;EC7:<@E?E59F at BA5+AC?CFF=F7*;):?GF>:A*28 at C
+ at HWI-M01378:140129:000000000-A7785:1:1117:14612:8918 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCA
++
+GGGGGCFGGGGGGGFCGGGGGGGGGDGFFGFFGDFFCGCFC?D at FFGGAGF@FFACGFGE5>FFFFFA8FFFG>FC*?5 at FGAF7>;@CFG7CG:6 at DF>?@EBGG>?
+ at HWI-M01378:140129:000000000-A7785:1:1117:2770:10016 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGTCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCCTAGCT
++
+FGGGGGFFGGDGGEFGGGGGGG,DGGFGEGFFGGGGGGGFGFFGGFGGFD7=FGFCCBED>GGFF598=DFFD>FCCGBFFGFFGFEGEFC<DD30(62FD(83:D3:6:>GFA736)*42CA
+ at HWI-M01378:140129:000000000-A7785:1:1117:7058:13477 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTGCCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGC
++
+GGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGAFGGFGGFGGFGGFGGEGGFGGBGE>CCFFFFCCGGFFB4;69):AFFFGF=GEFD<CE:>F;;FF6E0CDD<?BFG<<736)06<<).8<:2>AF?2><4<6>433C:3?G?F
+ at HWI-M01378:140129:000000000-A7785:1:1117:20535:14960 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCA
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGFGGFGGFGGFGGFGGFGFFGGFFGFFFGFFGCFGFGDFFGFFGFFGFFGCCE3 at B<=>?98:EGF?07?GFBFBFFFFBGAFFB9DF>4?>FFFFFG6<2*4(4E2:?
+ at HWI-M01378:140129:000000000-A7785:1:1117:12925:16162 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGTTAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATA
++
+GGGGGGGGGGF8DDBFGGGGGGFF?8EGGFFFAEEFGGGF:?FGGFFGF?BA7+=C759AA9CCFGFFC*;9D>F?*3:69FFAFFFCE=C7?E5>;61)(,*6ED>1(4:GFAF
+ at HWI-M01378:140129:000000000-A7785:1:1117:16205:24882 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGGCTGCTGCCACCAAAAAGAGGATCCTCCAGGTCCAGTC
++
+FCFFGGFFGGFGCGGGGG6DEF8FFGGGGGE==?6=DD851+;4?F,AFDGFFD*@DCGFFGGFA>A56?
+ at HWI-M01378:140129:000000000-A7785:1:1118:9968:1647 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCATCGTTGATCCATCCCCTCCACTCACTCCTTTGTCC
++
+8F>D=EFADAFDA=A,9D+8DCD=@8,73D,6,,2=+8==CDFGG<,<BFF<CBF795CF)<9CFCFA*3**17*;6;:)+5<>DEFG?A
+ at HWI-M01378:140129:000000000-A7785:1:1118:9715:1754 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGG
++
+GGGCCEFGGCFG=8DFGFDGGG?DFGGFGGD=ECFFGFGFGGFDCFGGAGG at FFB79*CA85BFC7+:AA*31<A969B=4C=AF=*=E6CGD
+ at HWI-M01378:140129:000000000-A7785:1:1118:9533:1899 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAA
++
+FGGGFGGGGGFGGFACGFDGFF?CCEE8 at ED+:EFEFG8D?8DGGEGFFFC7FF?9C*ADBC6B7*?8CFGFGDAF6*):9<BFG3:7>8C745>)6;?3:9E5):?0?
+ at HWI-M01378:140129:000000000-A7785:1:1118:8691:1931 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAA
++
+FGGGCGGFGDFFDGGFFGGGF8=DFGGFAAEGGAD8=2 at 7==FDGFFC9FGCGF?,;5CB5?B+:9<AFA71C59DEG=B>C2?GE*BCF4<C=AB>D(2(,=BBE:?B
+ at HWI-M01378:140129:000000000-A7785:1:1118:23298:2242 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCC
++
+ECF;>CCDEGGFDGCD,C?FD6,=DD,=, at FDDEFDFGDFGGF=?*@<9CEEG?89A**0)*3?8D67>A
+ at HWI-M01378:140129:000000000-A7785:1:1118:23073:6508 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCACAGCTAGTGAAGGTGTATCCAAAAGCCTTGC
++
+GGGFGGGGGGGGGGEFGGGGGFFGGGGGGGGGGGFGGGGFGGFFGFGGFGGAFFFGGFGFFGFFGGFFFFGFGFFGFGFFFGFFGFEGEFCDGED>@F;AFBGEFGFFFB?GDA at 2@2?::FB4?FFFF>+(,?AFF<>*6:2(7?F0@
+ at HWI-M01378:140129:000000000-A7785:1:1118:21171:9133 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATACTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCA
++
+GGGGGGGGGGGGGGGGGFCFFGGGGGGGGGGGGGFGGGGFGGFGGFGGFGGFGFFGGFGFFGFFGGFFFAGFFFFGFGFFFGFFGFFGFFGGGDFD6?FFFB5)78?BFF?GAAFFFFFAAF9>?72 at FAFFFFFFFFGGA:BBB?G:?>
+ at HWI-M01378:140129:000000000-A7785:1:1118:18189:10068 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTT
++
+GGGGGGGGGFGGGGGGGGGGFFGGGGDFGGGGGGFGFFGFGGFGGFGGFGGFGFFFGFGFAFFFCGFFFFGFGFFGFGFFFGFFGFFCCFGDGDDE>F?FF6EEFG?FFFBFAA4)<<6<34.:?--9;>G4(92:ABF7<7:?<7C
+ at HWI-M01378:140129:000000000-A7785:1:1118:9717:10455 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTACCCAGAAGCCTTGCA
++
+GGGCEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGFGGFGFEGFFGGFGFFGGFGD=FFFGGFFFFGFGFFGFGFFFGFFGBFGFFG:?CD>@<7F<0=>DGFF?F>GFF?7FDFA>69A?>ABGAEBBF))-465(4??BFG:C?
+ at HWI-M01378:140129:000000000-A7785:1:1118:6493:13149 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGAGGGCCTGGCGCACCCAATGCATAGCATAGCTAGCGAAGGTGTATCCAGAAGCCTTG
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGDFGGGGFGGFGGFGGFGGFGFFGGFGFFGBFGGFEF5CFGFFGFGFFFGFFG=EGFFGGDG4B=;@F;6EDFGF@<@EC<CFFAEFF at F<AFB,;)3:8?FF244CFAFFFBBG?
+ at HWI-M01378:140129:000000000-A7785:1:1118:9182:16529 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGACTATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCT
++
+GGDF9EGGGGCFAB98=>DFFDFGGF, at 6E=+=,==ECF9F?FC9*7 at BFGA88<275 at 9)C9 at F5+9F5511)3;*;))*4-?F@*2/=CCC53;>F
+ at HWI-M01378:140129:000000000-A7785:1:1118:21261:19014 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCA
++
+FFGGGGGGGDGGGGGGGGGGGGGGFGGGGGGGFGBFGDCFGGFGGFGFFGG<FFFGFFGFACF>DFFFFFGCG>FGEGB=F9>FDEFGF6CDGG33:DD>@FGDFGBBF7:CABF>F<B<BFF24ADFGAGF77244)74417:??GFG?
+ at HWI-M01378:140129:000000000-A7785:1:1118:17204:20285 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAA
++
+GFGGFFFGGDCFFGFD>DDFGF?DFGFGGGGGEFFCGGDFGGFGDEFCCFGFGFFGG>C>95BFGGF;AAFFG=FGFGDE4EFFF=EGCADDCE5=:615?BGFDGFF??(04)/.<AFFB?<<2ADFG
+ at HWI-M01378:140129:000000000-A7785:1:1118:19019:20700 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCA
++
+GGGGGGFFGGGGGGGGGGDGGGGGGGGGGGGGGGFGGGGFGGFGGFGGFGGFGFFGGEGEF>BFGGFFFFGFGFFFEFFB4C at FGE=D<FGGGGBE at FFFF9=37E??FFBGB29)6:*).9A24AAFFAC?0774:>F
+ at HWI-M01378:140129:000000000-A7785:1:1118:24760:20968 3:N:0: AATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTTC
++
+GFGGGGGGGGGGGGGGGGGGG?DDFFFG:AFCGCF:DFGF7=6FGFGGFGFCFFFFGFG>@GFFGGFFFAFFFBFG*0<@AGFFGE4BCCC54CABFFDFF0=;<E:B01,+).83?<F<74)-.))106C?(1)<2<C7A:::4:?<?
+ at HWI-M01378:140129:000000000-A7785:1:1118:12797:21177 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGCTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGC
++
+GGGGGGAFGGGDFGDFFFGGDD at GGCGFGFGGGCFFFGGFGGFCEEGFCFGFGFFGG5C>BGFFGGFFFFGFGFFGFGFFFGFFGFFGFFD44CAABF?FF0E at DE?:??>GFF=)9<?22 at 9A744B7<E7(9<4>AGF>0487(::C
+ at HWI-M01378:140129:000000000-A7785:1:1119:12200:9232 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCACGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATCGCTAGTGAAGGTGTATCCA
++
+GGGGGGGGGGGGGGGGGFGGGGCEGGGGGFC+ at FFCFGGG8FFEG?FFFGG+:@96EDGG5 at CFFGFFFDCFGF4?EGFA9DFFGFCFFF57?C5;A01.=:GFFGFFFF:FAFD)8:9)(/.3;<4BC2C?:CAAFAF
+ at HWI-M01378:140129:000000000-A7785:1:1119:25522:9543 3:N:0: TATAGCACGC
+GATAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCTGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGG
++
+D,FCE;,=DF8@:5E99E1, at 68DDF9EFDFFFDGCACCFCGFGFCEAF@EFGF7CCDCD5*;FFGFBFD>AFDFGED2*.>@FGFFFF85CC5C;)(/:?0C1 at E.(48?G2):2>>4).*463AA6F<G
+ at HWI-M01378:140129:000000000-A7785:1:1119:19946:11946 3:N:0: TATAGCACGC
+TGTTGGGCATTGGACCCCAGAGGCCTAGGGTGGCCCTGGCCCCAGAGAGACCC
++
+CEGGC:C?:,<,<C?E*==?8==E=>:*:FC7=FGGC5F4C30:D:;:D5A3C
+ at HWI-M01378:140129:000000000-A7785:1:1119:26527:12673 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGGCTGCTGCCACCAAAAAGAGGATCCTCCAGGTCCAGTCCATGGAG
++
+FGGGGGGFGGGFGGGEDE8FGG8DGFFCCGGGGGDEGG7C76*@=AEGGGFFGA>CG6EF5CD66C>AC;FA@*/*)
+ at HWI-M01378:140129:000000000-A7785:1:1119:25841:13619 3:N:0: TATAGCACGC
+GTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGG
++
+6FCFGGG=BDFGA,, at F8?8D8DGGFGGFGGG8:DGGFEGGGFGGFGGFGFFGFFGC9C7FCFFFCCF*;C9EBA==FEFFGF48:9:=59CD
+ at HWI-M01378:140129:000000000-A7785:1:1119:20076:14454 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGFGGGFGFGFFGGFGGFGGFFGFFFGGAFDFGFFDFFGFFGFFFFFGGGGGFEFFFFFEBEGFFBF?CAFGBFF>>BGF<BFFFC64::FFFFADFB?G:::F:?
+ at HWI-M01378:140129:000000000-A7785:1:1119:26820:14628 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGGCTACTGCCACCAAAAAGAGGATCCTCCAGGTCCAGTCCATGGTG
++
+FGGGGGGGGGGFCFFGGGGGGGGDFGFFGGGGGGGGGGGGGGFGGFGGGGGFGFFGGFGFFGGFFGFFFGGFGFFDE
+ at HWI-M01378:140129:000000000-A7785:1:1119:5209:16156 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTCGTGAAGGTGTATCCAGAAGCCTTGCA
++
+GGGGGGGGGGGGGGGGGCGGGGFGGGGGGGGGGGGGGGGGGGFGGFGGGGFADFFGGFGGFGGFFGFFFGGFGFFGFGFFFGFFGFAFFFGDGGDF>D7)69EBD5 at FFFBCBAC772<B7FA)-7:45492:GA<A-698(+(.:FFGF
+ at HWI-M01378:140129:000000000-A7785:1:1119:21229:17686 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATCTTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACC
++
+GCF,ECECE, at DGFEEEG,=@E,AGBFFGCFFCCD,@::@FG?;FAC,=CFFFC<7E*C*9CCFFGFFF?9+10;>4*<A3;>FCE6C*=CDGCC9>??FD6?17C
+ at HWI-M01378:140129:000000000-A7785:1:1119:6516:18986 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCA
++
+GGGGGGGGGGGGGFGGGGGGGGGDFGGGGGGGGGGGGGGGGGFGGFGGGGGFGFFGGBGGFGGFFGFFFGGFGFFGFGBFEGFFGFCFFFDGGGGF>DFFF at G9FEEFF<7FFF>AFFBF7G>A<A)7::4??GA<A<A=32<(:3C)<?
+ at HWI-M01378:140129:000000000-A7785:1:1119:11518:19811 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAAAATTTTGTGTTACCATTGCCAGCGTTGATCCACCCCATCCACT
++
+4DFGGDFD=@3=EDFGGFF8D+,6 at FGFG==?D,+6,=9F83;@@C:,<ECFG*<@FEE**CGFFF**:9DF9>>CE
+ at HWI-M01378:140129:000000000-A7785:1:2101:10492:6392 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATCTTTCGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAACCCTTTGTCCGGGGGCCTGGCG
++
+FBEFGGFGGFGFGG9AFF8DFGFGGGGDFFGF,2=,6E=+ at D?77EGAFDD9DCFCFDE7AF7CC*++0;9BF4CC+*)**6:CC)0=B+:/:ED33;03AC
+ at HWI-M01378:140129:000000000-A7785:1:2101:21110:9989 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTCTCCGGGGGCCTGGCGCACCC
++
+GFGFDGGGGGFE8;FFGGGF8DDFGF=ECD,+CFGFGGGGGFAGGFGGFGF+BD?DC*:DB@<=:7188C*=B at 4>3ABA4D?C<>*2=:CDECD5:0(95)212CB
+ at HWI-M01378:140129:000000000-A7785:1:2101:25521:14328 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGC
++
+GGG,EFGGGD;DDFFGGGGGGGFGGGGGGGGGGGGGGEGCEGFGGFGGGGGFFF5DF5CD>GF>FD at 9CF5BG*7>ADFF>FFFFF=GGC7DGEDF>70<A
+ at HWI-M01378:140129:000000000-A7785:1:2101:6147:17939 3:N:0: TATAGTACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCAATCCCATCCACTCAAGCCTTTTTCCGGGGGCCTGGCCCACCC
++
+E+@>CDG8;DEGCFF899=B86,1==;FEA at 9A=2 at EGDGGGBFG?9CC+71=;?6D>4 at AFF>+3?=5**1>A7DCGB49F4*5**3;C77CC3>;8=5)*2:;FF
+ at HWI-M01378:140129:000000000-A7785:1:2101:7510:19246 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCACGCCTTTGTCCGGGGG
++
+G<8 at D9D8ECEFEF=AD>DCFDF88,,,,63+ at 2DA:FADGCAGG7@<=?CB:=<D+*@CBG+;:>AC=*3BFF>8BF:3*>:DEF=FF8?75EC
+ at HWI-M01378:140129:000000000-A7785:1:2101:13482:19637 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCCTAGC
++
+GGGG=DEFEEGGGDGGGGGGGDEGG8EFFF=DFGGGGGGGGGFGGFGECFF+<DFGGFGGBGDAGGFF)9;=CFFG>>BF6CFGGB4 at 8:D4C55:5<?7A7<(3EB3:20:7 at F<8):?:?
+ at HWI-M01378:140129:000000000-A7785:1:2101:9133:23948 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCAATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACC
++
+FGGF;E,9B8>DFGFA9,1=DD, at FCGGGFGGD+9EFGGDFFFGFAF9FCFFC?CDDAEG5*2B+4B6=278D@?C+CDF4EFG,**5=1*)4B)0)3(8AGG96?
+ at HWI-M01378:140129:000000000-A7785:1:2102:23669:4942 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCA
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGFGFGGGGGGGGGGGFGGFGGGGGFGGGGGFGGFGFDCDFFAFFFGFFGFG=AFGFGGFFFFFDDEGGFFE at C?:EBGGGFFF7FFA9>?FG4)>46?7<FGFG?FGF2=FC9*.?<)<F:F?
+ at HWI-M01378:140129:000000000-A7785:1:2102:18023:6868 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCCTCCCATCCACTCACGCCTTTGTCCGGAGGCCTGGCGCACCCA
++
+GGGGEBDGEAEGGFGCFF8D at EDFGFGGFGFF8,=C8ECFA=?EFFGGGGF8CGF86*ADD>7C+**3:0*4:>F,+ at 7**49CE3+=@8=5;:)(86;5;>E6DEGA
+ at HWI-M01378:140129:000000000-A7785:1:2102:20537:10795 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTT
++
+GGGGGGGGGGGGFGDDGGGGGGGGGGGGGGGGGGGGDFCFGGFGGFGGCFGFGGGGGFGGFGGGGGFFFGGFGFFGFGFFFGFGGEFFFFGGGGGFDE at F@3=9GGC5?B?F=AGGFFFBAFAAF72C:AEF:GD<?DF34<665?E
+ at HWI-M01378:140129:000000000-A7785:1:2102:11278:14783 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGTCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCA
++
+GGGGGGGGGGGGGGGGGGGGFGGGGGGGGGFGGGGGGGGGGGFGGFGG7EGFGGGGGBEDEGGGGGFFFFGFGFFFFFDFAGFGGFFFFFGGGGD9DFFCF)=0DGD;?<:EF<<:FFG)5FAA=>AGG<C?2@>>F>DEFFFG at 7C2<?
+ at HWI-M01378:140129:000000000-A7785:1:2102:15247:16145 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGGGAATATTTTGTGTTACCCTTGCCAGCGTTGATCCATCCTATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACC
++
+DGGGACFGG,,63;AE=@EGD?FGG,;DDG,@=?FG:D=DCGF?EFFA+ at DA69C,D?GG5 at F>8CA8F*=9D?EC+;);AF>9<788=FC*:5)68B7F0)14>E
diff --git a/clipper/t/in/mcf/adap.fa b/clipper/t/in/mcf/adap.fa
new file mode 100644
index 0000000..234d404
--- /dev/null
+++ b/clipper/t/in/mcf/adap.fa
@@ -0,0 +1,2 @@
+>3p_for_test
+CATGATTGATGGTGCCTACAG
diff --git a/clipper/t/in/mcf/count.fq b/clipper/t/in/mcf/count.fq
new file mode 100644
index 0000000..09c927d
--- /dev/null
+++ b/clipper/t/in/mcf/count.fq
@@ -0,0 +1,4 @@
+ at readname
+ATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCG
++
+############################################################
diff --git a/clipper/t/in/mcf/test-mcf-dup.fq b/clipper/t/in/mcf/test-mcf-dup.fq
new file mode 100644
index 0000000..baffc42
--- /dev/null
+++ b/clipper/t/in/mcf/test-mcf-dup.fq
@@ -0,0 +1,24 @@
+ at 1 READ A
+ATATGCTACGTTTGTGACCTAGTCCCGTAC
++
+hhhhh]]hhhhhhhhhhhhhhhhhhhhhhh
+ at 2 DUPREADA
+ATATGCTACGTTTGTGACCTAGTCCCGTAC
++
+hhhhh]]hhhhhhhhhhhhhhhhhhhhhhh
+ at 3 READB
+TATAGCCTCTAGCTTGACTCTAGCTAGTCC
++
+hhhhh]]hhhhhhhhhhhhhhhhhhhhhhh
+ at 4 NOTDUPREADB = OFFBY1
+TATAGACTCTAGCTTGACTCTAGCTAGTCC
++
+hhhhh]]hhhhhhhhhhhhhhhhhhhhhhh
+ at 3 READB-DUP
+TATAGCCTCTAGCTTGACTCTAGCTAGTCC
++
+hhhhh]]hhhhhhhhhhhhhhhhhhhhhhh
+ at 4 NOTDUPREADC = OFFBY3
+TACAGCCTCTAGCGTGACTCTAGCCAGTCC
++
+hhhhh]]hhhhhhhhhhhhhhhhhhhhhhh
diff --git a/clipper/t/in/mcf/test.fa b/clipper/t/in/mcf/test.fa
new file mode 100644
index 0000000..96aaef9
--- /dev/null
+++ b/clipper/t/in/mcf/test.fa
@@ -0,0 +1,2 @@
+>clip me
+AGTCCCGTAC
diff --git a/clipper/t/in/mcf/test1.fq b/clipper/t/in/mcf/test1.fq
new file mode 100644
index 0000000..aac6b1f
--- /dev/null
+++ b/clipper/t/in/mcf/test1.fq
@@ -0,0 +1,32 @@
+ at 1 CLIP IS AGTCCCGTAC AT END
+ATATGCTACGTTTGTGACCTAGTCCCGTAC
++
+hhhhh]]hhhhhhhhhhhhh]hhffgffaa
+ at 2 CLIP AGTCCCGTAC + AAAA's
+ATGTTCGTATATGAGCAGTCCCGTACAAAA
++
+hhbhh^^hhhhhhhhhhhhh]hhfffffaa
+ at 3 CLIP JUST AGTCC if nmin >= 5
+TATAGCCTCTAGCTTGACTCTAGCTAGTCC
++
+hhhh]]hhhhhhhhhhhhh]hhfffffaaa
+ at 4 CLIP AG at end if nmin >= 2
+ATCTATCTTAGTCATCTTATCTACTATCAG
++
+hhhhhdchhhhhhhhhhh]hhfggfaabbA
+ at 5 CLIP AGT at END if nmin >= 3
+ATATACTTATCTACTTATCTATCTTAAAGT
++
+hhhhh]bhddhhhhhhhhhh]hhffffgaA
+ at 6 CLIP NOTHING, even though some at front, because mismatch pct too high
+AGTCCTTGGTCTTATCTACTTATCTATCTT
++
+hhhhh]bhddhhhhhhhhhh]hhffffgaA
+ at 7 CLIP WHOLE SEQENCE
+AGTCCATTACCTTATCTACTTATCTATCTT
++
+hhhhh]bhddhhhhhhhhhh]hhffffgaA
+ at 8 CLIP HOMOPOLYMER
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAT
++
+hhhhh]bhddhhhhhhhhhh]hhffffgaA
diff --git a/clipper/t/in/mcf/test2.fq b/clipper/t/in/mcf/test2.fq
new file mode 100644
index 0000000..c325699
--- /dev/null
+++ b/clipper/t/in/mcf/test2.fq
@@ -0,0 +1,200 @@
+ at SQ SN:chr1 LN:197195432
+ at SQ SN:chr2 LN:181748087
+ at SQ SN:chr3 LN:159599783
+ at SQ SN:chr4 LN:155630120
+ at SQ SN:chr5 LN:152537259
+ at SQ SN:chr6 LN:149517037
+ at SQ SN:chr7 LN:152524553
+ at SQ SN:chr8 LN:131738871
+ at SQ SN:chr9 LN:124076172
+ at SQ SN:chr10 LN:129993255
+ at SQ SN:chr11 LN:121843856
+ at SQ SN:chr12 LN:121257530
+ at SQ SN:chr13 LN:120284312
+ at SQ SN:chr14 LN:125194864
+ at SQ SN:chr15 LN:103494974
+ at SQ SN:chr16 LN:98319150
+ at SQ SN:chr17 LN:95272651
+ at SQ SN:chr18 LN:90772031
+ at SQ SN:chr19 LN:61342430
+ at SQ SN:chrX LN:166650296
+ at SQ SN:chrY LN:15902555
+ at SQ SN:chrM LN:16299
+S09811_20110217:7:76:4056:16318#0 0 chr11 96202407 37 20M * 0 0 CTGGGGCTCGATGTGAATAT gggeggfggd_ffffgggdf XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:20
+S09811_20110217:7:76:4057:17177#0 16 chr10 52137256 37 21M * 0 0 CGCACGCTCTCTTTAGCAGTG gggggggeggfgdfgggfgfg XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4058:2349#0 16 chr13 47249557 23 20M * 0 0 CTCGTGGGACAGAAGGGCCA gc]gggggg^gfgggggggg XT:A:U NM:i:0 X0:i:1 X1:i:1 XM:i:0 XO:i:0 XG:i:0 MD:Z:20
+S09811_20110217:7:76:4059:13223#0 16 chr5 143059900 37 21M * 0 0 CCTCCCCTGTGCCTTTAACAC gg]gggggggffffffedebe XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4060:9150#0 16 chr3 151828548 37 20M * 0 0 CTGAAGCTCGGGAACTGCTG hhhhhhhfhhhhhhhhhhfh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:20
+S09811_20110217:7:76:4061:8709#0 16 chr13 19650485 23 20M * 0 0 TGACACTGCTCTAGAGACTC _d_fbffcaaaacca`Y`^b XT:A:U NM:i:0 X0:i:1 X1:i:1 XM:i:0 XO:i:0 XG:i:0 MD:Z:20
+S09811_20110217:7:76:4061:19889#0 16 chr10 70700480 23 21M * 0 0 GTGGGGTCGGGTACCAAAAGG hcccddeKedehhhhhhhhhh XT:A:U NM:i:0 X0:i:1 X1:i:1 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4061:9770#0 16 chr14 6011936 0 21M * 0 0 CCCTGTGCCACCCGCTGACTG fdffffcff]fgggggggggg XT:A:R NM:i:0 X0:i:2 X1:i:3 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4062:2563#0 0 chr18 23469183 37 20M * 0 0 CCGCAGCCCACCCGAAATCG gggggggggfgggcfgfgff XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:20
+S09811_20110217:7:76:4062:5377#0 0 chr10 80599401 37 21M * 0 0 CGAGGTAAGCTGCCCGGGCTG cRRRR``V`V]XcaWYRYYYV XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4062:9100#0 16 chr12 73437039 23 21M * 0 0 AGTCTCCCTCCTCCCAGTAAC fffcccfd]ff[gdfgg_gcg XT:A:U NM:i:0 X0:i:1 X1:i:1 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4063:2936#0 0 chr11 97651237 0 20M * 0 0 GACAGTAGTGGCGCACGCCT f\cfffff]fafdffaa]fd XT:A:R NM:i:0 X0:i:5 X1:i:227 XM:i:0 XO:i:0 XG:i:0 MD:Z:20
+S09811_20110217:7:76:4063:1613#0 16 chr9 121206381 37 21M * 0 0 GTTGATACCCCAAGACCACAG hhhhhhghhhhhhhhhhhhhh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4064:16927#0 16 chr11 94871188 37 21M * 0 0 TCCCTAGCGCTGAGACTCCCG ggggggggggfgggggggggg XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4064:6040#0 0 chr5 127723648 37 21M * 0 0 GCTGTTATTGCGGTGGCCGTT ggggggggfggegggfdfddf XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4065:11333#0 16 chr9 50538551 16 21M * 0 0 AGAAGAGGATGTTGAGTACCC hhhhhhhhhhhhhhhhhhhhh XT:A:U NM:i:0 X0:i:1 X1:i:5 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4065:16759#0 16 chr5 114280587 20 21M * 0 0 GCTGGGTGGGCAGTGTGATGG hhhhhhhhhhhhhhhhhhhhh XT:A:U NM:i:0 X0:i:1 X1:i:2 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4066:8863#0 16 chr8 94360875 37 20M * 0 0 AGCTGCCTTCCTTCTGGCTC ggggg_fggggegggfffff XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:20
+S09811_20110217:7:76:4068:6400#0 16 chr5 99681540 37 20M * 0 0 CTGTTGGGAGCGCGGCAGCC hfhhhhhfhhhhhhhhhchh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:20
+S09811_20110217:7:76:4069:9059#0 0 chr15 99330435 23 20M * 0 0 TGAGGGCTGGCTGCAGGAGG fdfeffffffdfffffdcff XT:A:U NM:i:0 X0:i:1 X1:i:1 XM:i:0 XO:i:0 XG:i:0 MD:Z:20
+S09811_20110217:7:76:4069:13594#0 16 chr3 35477535 23 21M * 0 0 AAAAGACACTTCAACTGTGAA [aab]^^ddddffffdcdfff XT:A:U NM:i:0 X0:i:1 X1:i:1 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4071:18297#0 0 chr7 148274281 37 21M * 0 0 TTGGCAAGTGTGAGGACAAGG b^\^`_\^X`Z\V`\bdcbdc XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4072:13754#0 0 chr11 54699731 37 22M * 0 0 GTTGATGATCCAACAATGAGTG hhhhhhhehhhhhghhhhhheh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:22
+S09811_20110217:7:76:4073:2169#0 0 chr16 20724703 37 21M * 0 0 CCTGACCTCCACAGGAGGGAA dddY^fffffdcWdYUaa[M\ XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4074:19233#0 0 chr13 100873621 37 21M * 0 0 GAATCCACTGCAGGCACATCT d_dddWc[_c``b]bH]PPZ\ XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4074:12653#0 16 chr8 81263572 37 21M * 0 0 GCCCCACTGCTTTTGGGGCTG hhghhhhhhhhhhghhhhghf XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4076:18440#0 16 chr9 108410677 18 20M * 0 0 GGAATGGATCTTTTTTCCCC gggfffffcccfdfffafea XT:A:U NM:i:0 X0:i:1 X1:i:3 XM:i:0 XO:i:0 XG:i:0 MD:Z:20
+S09811_20110217:7:76:4076:18510#0 16 chr4 42748605 0 21M * 0 0 TCACTCCTCCTCCACTTCCAG ffffffffffffffffggggg XT:A:R NM:i:0 X0:i:2 X1:i:8 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4077:10812#0 16 chr19 42279347 37 21M * 0 0 GCAGCTGGGTTGAACACCTGG hghhfhffffdfffac_ddff XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4078:13686#0 16 chr15 74349658 37 21M * 0 0 CTTGAGCCATGGAGGGGCTGC hhhgghhhhhhhhhhhhhhhh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4078:13193#0 16 chr14 62653609 23 21M * 0 0 TGTGTGCAGCATCAGACACCA cgghhhhhghghhhhhggghh XT:A:U NM:i:0 X0:i:1 X1:i:1 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4078:1453#0 16 chr2 91485967 37 21M * 0 0 CATTGCTCACACACAAAGGGC hhhhhhhhhhhhghhhhhhhg XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4079:17592#0 0 chr15 62932853 37 21M * 0 0 CAGCTGGTCCTTACCCTAAAG ffff_edaedfffffafdffg XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4079:9300#0 0 chr9 37192232 37 21M * 0 0 CGCTCCCCAGCACGTTCCCCT Yfdfafdfffff[ffggggge XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4079:3959#0 0 chr4 15809164 37 21M * 0 0 CGAAAGAAGGCTGGATTGGTA ffdafadfcfcffffggeggg XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4079:6367#0 16 chr1 184838147 20 21M * 0 0 GCCCCACCCCCTCTCCTTGCC _]ffcb__edea^Wee^[eee XT:A:U NM:i:0 X0:i:1 X1:i:2 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4079:12296#0 16 chr19 15864165 20 21M * 0 0 TAGGGAAGAGACAGCAAAGCC fhhhhhhhhhhhhhhhhhhgh XT:A:U NM:i:0 X0:i:1 X1:i:2 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4080:7354#0 0 chr5 113277527 37 32M * 0 0 GGAGTGGGGAGGGGGCAGGAGGGTCCTGGGAA ffcfcffffchhhhhhhgheffcUfcfffdgf XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:32
+S09811_20110217:7:76:4080:2736#0 16 chr5 53263621 37 21M * 0 0 AGAGAGGTTTGGTTTGACTTG df_^aa`cVfcbbdd]e`Ycd XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4081:1306#0 0 chr11 96316788 37 21M * 0 0 CCATTTCTCTACCTGGACCTT ff[ddfca[afcccf[_adaf XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4081:3011#0 0 chr10 50645615 37 24M * 0 0 TTGTGGGGGTAGAATTTGGGGACC f_dafff]ffcfffff_ddfdcfa XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:24
+S09811_20110217:7:76:4081:18745#0 16 chr1 121733365 37 21M * 0 0 AAGTCGATCGGGTAGTCTGGC edcaafgggggggfgfgfggg XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4082:7015#0 0 chr4 128404794 0 21M * 0 0 GCCCCGCCCTCGCCCCGCCCC _YYYY[QQQQ`a[[[QQQQXX XT:A:R NM:i:0 X0:i:3 X1:i:50 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4082:13951#0 16 chr15 41885060 0 23M * 0 0 ACACACACACACACACTCTCTCC BBBBBBBBBBBBBBBBBBBBBBB XT:A:R NM:i:0 X0:i:15 X1:i:1278 XM:i:0 XO:i:0 XG:i:0 MD:Z:23
+S09811_20110217:7:76:4082:14898#0 16 chr1 127402049 37 21M * 0 0 CCATCAGTCAAAAAAGCCCAG cadf]cg\c`g^fffdfff`a XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4083:8630#0 0 chr13 40415640 23 20M * 0 0 TGTGCTCACAGAGAAGTCAG cWdY[bbZdb`c_a`dfYdf XT:A:U NM:i:0 X0:i:1 X1:i:1 XM:i:0 XO:i:0 XG:i:0 MD:Z:20
+S09811_20110217:7:76:4083:15648#0 16 chr18 67275748 37 21M * 0 0 CTTGAAGCAGCCACTAGGTGG \]Z\\OWdffffeffffffff XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4084:10416#0 0 chr1 184884945 16 20M * 0 0 GCAGCTTTGGTGCCTGGAGC fhhghhhhcehhhhhdhfah XT:A:U NM:i:0 X0:i:1 X1:i:5 XM:i:0 XO:i:0 XG:i:0 MD:Z:20
+S09811_20110217:7:76:4084:6000#0 0 chr10 110182200 37 21M * 0 0 GCGTGGGTCGGTCCCCCACAA gggggggfgggggggggggfc XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4086:8764#0 16 chr8 73986870 37 21M * 0 0 TGGGGGCTCTGGGCCTCCATC hhhhhhh_fhfhhhhhgchhh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4086:10128#0 0 chr17 23863431 37 21M * 0 0 CGTTCACGGGCGGTTCCCCTT gggggggegc^fcffggdgff XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4087:14148#0 4 * 0 0 * * 0 0 GTTGCCTAGCATCCTGGTGGGAGTCAACAAGTCA ffffffdfffeggfgfcfffgcggeggggdfffa
+S09811_20110217:7:76:4087:14669#0 0 chr11 74584160 23 21M * 0 0 GGCTCCATCACATAGCTGCAT ggagggfggfgffgafcgfgg XT:A:U NM:i:0 X0:i:1 X1:i:1 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4087:14796#0 0 chr12 95660162 37 21M * 0 0 CAGGAGATTTGCAGTCACACT hhhhfgghhhhhhhhhhfhhh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4087:20791#0 16 chr17 39982533 37 20M * 0 0 GTCTTCTCTCGCCGGCTTCG gggggfdff\gggggggggg XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:20
+S09811_20110217:7:76:4087:20204#0 16 chr9 106558585 37 21M * 0 0 TCCCCAGGGTTCCCAGCCCAG adfffffffff__geggcggg XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4088:10338#0 16 chr16 4559176 37 21M * 0 0 TTACAAACGTCGCGACTCGCC fcdchhhghghhghahhhhhh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4089:15021#0 0 chr12 29385575 37 21M * 0 0 TGGAGGGCTGCCAGTCGCTCT ggggggfggfggggggfgggg XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4090:15839#0 16 chr8 34762935 37 22M * 0 0 TGGTTATTGCCTCACAACGGCA hhhhhghhghhghhhhhghhhh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:22
+S09811_20110217:7:76:4090:18938#0 0 chr4 135121514 37 21M * 0 0 TGCCAATCAAGGCTCTTCTAG hhea_ffhcghhfhhhghdgh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4090:5545#0 16 chr15 75873696 0 21M * 0 0 TACACTCGCAGGCAAAACGCC \bd]cddddcdaaaaaZZ\\_ XT:A:R NM:i:2 X0:i:5 X1:i:0 XM:i:2 XO:i:0 XG:i:0 MD:Z:5A12A2
+S09811_20110217:7:76:4091:4690#0 0 chr6 119422362 37 22M * 0 0 GAAAGGGAATGAGCTCCACTCA gegggfffffggaagfffffgg XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:22
+S09811_20110217:7:76:4091:9879#0 16 chr7 56501996 23 21M * 0 0 GAGAAGAATTGCCAGAGGCAG fcdfggffffafc^fcffffd XT:A:U NM:i:0 X0:i:1 X1:i:1 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4093:7858#0 0 chr16 29564428 23 21M * 0 0 GTGGAAGCTGTTACTTAGCAC hhhhhghhhhghghhhdhehh XT:A:U NM:i:0 X0:i:1 X1:i:1 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4094:14415#0 16 chr5 15691151 37 33M * 0 0 TACAAGGATGACTGAACCCAAGCAGAAACATGG Rffhhhhhhhhhhhhhhhhhhghhhhhhhhhhh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:33
+S09811_20110217:7:76:4094:1186#0 4 * 0 0 * * 0 0 CGCGGCGCCTCGCCTCGGCCGGCGC fffcaaffffgf_gcgaagdgggaf
+S09811_20110217:7:76:4095:20263#0 0 chr2 26997948 37 20M * 0 0 GCACGCGCGACTCCAGCCTA d[daS]dd[WaY^XWccdW[ XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:20
+S09811_20110217:7:76:4095:11848#0 16 chr3 9629464 37 22M * 0 0 TTCTTGCTTCCTGCTCAAAAAC hhhhhhhhhhhhhhhhhhhheh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:22
+S09811_20110217:7:76:4095:2650#0 0 chr4 48059466 37 21M * 0 0 GCGGAGACTGGCTTTCAAAGG ffffdfafaffffffffffdd XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4095:13254#0 16 chr5 54077924 37 21M * 0 0 GGTGAGAAAGATGCATGGCCT hhhhghhhh\hfchhafffff XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4096:11180#0 0 chr7 48153625 37 21M * 0 0 GCGCTGGACGCTCAGTTCTTG ggggggggggggggggggggf XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4097:10146#0 16 chr11 45665489 37 21M * 0 0 TGGCGGCGCCGTGGCTGTGGC ffgggegfggcdfgggggggg XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4097:1516#0 16 chr16 8830767 37 21M * 0 0 AGCTCTACAAAGGTGAGGCCG gggfgggfggfgggggggcgg XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4097:19865#0 16 chr11 67779143 15 21M * 0 0 CCTGGTCTTCATGGTAACTGG hhhhhhh^hhhhhhhhhhhhh XT:A:U NM:i:1 X0:i:1 X1:i:7 XM:i:1 XO:i:0 XG:i:0 MD:Z:7G13
+S09811_20110217:7:76:4099:2447#0 16 chr14 4231675 0 21M * 0 0 CTTGGTTCACACTGAGAGAGC hhhhghhhhhhhghhhhhhhh XT:A:R NM:i:0 X0:i:51 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4100:6156#0 16 chr10 45055550 37 21M * 0 0 CTCCGCGAACGGGGAGCGGGC \W\Y]WZYc\\aa]Y`^]\ca XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4103:11599#0 16 chr7 3198700 37 20M * 0 0 ACCCGGATTAGCTCACACAG egfggggggggggggggfgg XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:20
+S09811_20110217:7:76:4104:18002#0 0 chr18 21465381 37 22M * 0 0 TGTAGAAGAATGGTTGAGTGTG gggggggggggggggfffdfcf XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:22
+S09811_20110217:7:76:4104:10821#0 16 chr7 134852378 37 21M * 0 0 GCAGCTGTGCGGCTGGACGCG hhhhgghhhhhhhhhhhhhhh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4106:11008#0 0 chr15 10015934 23 21M * 0 0 TAACACCAATTGGTGTGCCCT gfggggggggfffaf`fcffg XT:A:U NM:i:0 X0:i:1 X1:i:1 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4106:5526#0 16 chr6 83425897 15 20M * 0 0 TCTTCTTTCTCAGCTCTCAG hcghhhhhhhhhhhfgghhh XT:A:U NM:i:0 X0:i:1 X1:i:6 XM:i:0 XO:i:0 XG:i:0 MD:Z:20
+S09811_20110217:7:76:4107:13329#0 16 chr19 23210290 25 21M * 0 0 GGTCAGGAACCCTCCCTCGTG ggggfgggeegggffdfcggg XT:A:U NM:i:2 X0:i:1 X1:i:0 XM:i:2 XO:i:0 XG:i:0 MD:Z:2C3C14
+S09811_20110217:7:76:4107:13663#0 0 chr1 59440146 37 21M * 0 0 GCTGAACATGAGGAACAGATT hhfhfghehhghhgghcgagh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4108:15831#0 16 chr1 96186789 0 36M * 0 0 CTCTTTCTCCACATCATTGCCAGCATCTGCTGTCAC gdhhhghfhhfhhehhh_ghhehhghghhhhfffdf XT:A:R NM:i:0 X0:i:23 X1:i:2890 XM:i:0 XO:i:0 XG:i:0 MD:Z:36
+S09811_20110217:7:76:4108:2574#0 0 chr1 74145227 37 22M * 0 0 CTAGAGCCCGGTAACTTCTGAA hhhhhhhhhhhhhhghhghghh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:22
+S09811_20110217:7:76:4108:11646#0 4 * 0 0 * * 0 0 GTCGCCCTTGATGACGCCCGA gagggggggggggggggggcg
+S09811_20110217:7:76:4110:4823#0 16 chr6 36447214 0 21M * 0 0 CCTGTGTGGGCCGGGGACAGC \_cfffaa_^^\__\_^aa^a XT:A:R NM:i:0 X0:i:3726 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4111:1865#0 16 chr2 156688798 37 21M * 0 0 TGGCCGCCGATTGGCTGCGTG fgfggccggggggggggggeg XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4112:11354#0 16 chr16 6015357 37 21M * 0 0 TCTTTCCTGTGGCGTGTTGCA hhggfhfgffgcgggdhdggh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4112:20769#0 16 chr1 13416601 37 21M * 0 0 GCTTTGCTAACTGGCTGTTGG ggggfggcggggcfgggfgcg XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4112:17621#0 0 chr14 37923248 37 22M * 0 0 GAGTCTCACGCCTAGGGAGGAA gceggff_ffffafafaffcgg XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:22
+S09811_20110217:7:76:4113:9951#0 0 chr19 3686548 37 20M * 0 0 CCGCGGCCCAAGACGACGCG ggggfggggggcgfaggadg XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:20
+S09811_20110217:7:76:4113:8009#0 0 chr5 54389167 37 21M * 0 0 CTTGGGTTTCGTCACATGTAA ghhhhghhhhhehhhhhhhgh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4113:9273#0 0 chr11 100139512 23 20M * 0 0 GAAGCTGGGTCAGCATCCTG hehghfhhfhhghhhhhhhh XT:A:U NM:i:0 X0:i:1 X1:i:1 XM:i:0 XO:i:0 XG:i:0 MD:Z:20
+S09811_20110217:7:76:4113:12405#0 16 chr2 131335665 37 22M * 0 0 TTGGCGGTGGCTGGCAGACTTC hhhhdhhhhhhhfhhhhhhhhh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:22
+S09811_20110217:7:76:4114:2280#0 0 chr2 25096592 37 22M * 0 0 GGAAGGGTGGGCTGGTTCACTC hhhhhhhdhghhhhgghhhhhh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:22
+S09811_20110217:7:76:4114:5399#0 0 chr6 89210719 37 21M * 0 0 GCACTGCTGAGCTCCCGCTGA c_a_c]ac^S____[^^ca^Q XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4116:19690#0 0 chr17 89491525 0 20M * 0 0 GCCACAGCCCCCTCCCTTTA hhhhhhfhhhTT[ETTV][[ XT:A:R NM:i:0 X0:i:2 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:20
+S09811_20110217:7:76:4117:5032#0 16 chr2 26997882 37 21M * 0 0 AGAGACTCTCTGCCAGCTGCG gcggggdgggggggggggggg XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4117:15452#0 0 chr13 103709381 37 22M * 0 0 GAACTGCAGATGACGTGAGCCA ggggaggcdgd]fddbbcfffg XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:22
+S09811_20110217:7:76:4118:20937#0 16 chr12 81620331 37 21M * 0 0 TTGTGAGTACGCTCTGCGCAC cWa[XYfb`abf_`ff]ddbe XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4119:14274#0 0 chr8 98220568 17 20M * 0 0 TGTGCGCGCACAAGAGAGAG hhhhhghdhhhfhhhhghhh XT:A:U NM:i:0 X0:i:1 X1:i:4 XM:i:0 XO:i:0 XG:i:0 MD:Z:20
+S09811_20110217:7:76:4119:17557#0 16 chr5 118964628 37 21M * 0 0 GCGAGAACACTTGAGTCAACC gggfggffffcfffffdffff XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4119:15719#0 0 chr17 23754228 37 21M * 0 0 GCACCAGGTGCCACTCCATCA ffcd]cc]ccddaaacacaYa XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4120:1095#0 16 chr10 49303053 37 21M * 0 0 TAAGCAGAGCCTCTGAGGCAG ghhhhhhhhhhhhhhhhhhhh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4120:14798#0 0 chr18 21288213 37 21M * 0 0 TGCTGGGTGGGCTGCCCAGGA hhhhhhfhhhhhhhhhhhhhg XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4121:16994#0 16 chr11 86557627 0 22M * 0 0 AAAGACTGGTGAGGCAGCGGTC hhhhhhhhhhhhhhhhhfhhhh XT:A:R NM:i:2 X0:i:2 X1:i:0 XM:i:2 XO:i:0 XG:i:0 MD:Z:4G12A4
+S09811_20110217:7:76:4122:9797#0 0 chr7 134119280 16 20M * 0 0 GGAAAGAAGGTTGGGAAGAG hhhhhfhfhhhhhgghhhgh XT:A:U NM:i:0 X0:i:1 X1:i:5 XM:i:0 XO:i:0 XG:i:0 MD:Z:20
+S09811_20110217:7:76:4122:18958#0 16 chr5 98722031 37 28M * 0 0 TCGGAGACCCGAAGCCTATGAGCGCATC cdfgggegffgggggggggggggggggf XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:28
+S09811_20110217:7:76:4123:15653#0 0 chr8 127473531 37 20M * 0 0 GAGGCCGCGGAGGGCACAAC gggcefggd_fffcfgfagg XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:20
+S09811_20110217:7:76:4124:18816#0 16 chr2 115678318 23 21M * 0 0 AGTCTTTACCCTGAGGCTTTG hhhghhhghhhhhhhhhhhgh XT:A:U NM:i:0 X0:i:1 X1:i:1 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4124:9551#0 16 chr7 132706867 37 23M * 0 0 GCTGCTCTGAGGAGCTGGAGGTA hhhhfhhhhhhhhhhhhfhhhhh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:23
+S09811_20110217:7:76:4125:9911#0 16 chr5 57509284 37 21M * 0 0 GAACAAATTGGTGGATGCATT hhhhhhhhhdhfhhhdgghhh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4126:13627#0 16 chr4 138529013 37 21M * 0 0 TTGGTGGCTTAGGTGGCGGTG fgfhhhhghfhhhhhhghhhg XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4127:2385#0 0 chr2 31007793 23 21M * 0 0 CGCCCCCTTCCAGAGCACCTC hhhhhhhhhhhhhchhhhhhh XT:A:U NM:i:0 X0:i:1 X1:i:1 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4127:14086#0 0 chr6 8366141 37 22M * 0 0 GGGCCATGTCACACCTGATTTT gcgfggggggcffffgfagggg XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:22
+S09811_20110217:7:76:4127:1202#0 16 chr10 79017962 37 21M * 0 0 CGGAGATCTATAGCCTGGGTC cggefggfgfdgggfgeggcg XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4128:8130#0 16 chr14 115439600 37 29M * 0 0 TCCGAGCCCAGCACGCGCCCCGTCGCACG BBBBBBBBBBaSac[[aPYLcccc_SRcc XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:29
+S09811_20110217:7:76:4128:6585#0 16 chr7 20063181 23 21M * 0 0 CATTTCTGAGTAGGCAGATCC hhhhhhhhhhhhhhhhhhhhh XT:A:U NM:i:0 X0:i:1 X1:i:1 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4128:18193#0 0 chr5 99465685 17 20M * 0 0 CCCCTGAGCCCCCAGCCCCA hhhhhffghhhhhhhhhhhf XT:A:U NM:i:0 X0:i:1 X1:i:4 XM:i:0 XO:i:0 XG:i:0 MD:Z:20
+S09811_20110217:7:76:4129:3296#0 0 chr2 91097000 37 20M * 0 0 GTGGCCCGGACCCGGGAGTG hhhhhhhfhfhhhghhhhhh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:20
+S09811_20110217:7:76:4130:6365#0 16 chr10 104675545 0 21M * 0 0 GAACCGAACGCCGGGTTAAGG hhfhhhhghhhhhhehfhhhh XT:A:R NM:i:0 X0:i:4 X1:i:5 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4131:15879#0 16 chr5 6564178 0 21M * 0 0 GGACTCTCACTCTTTGCTCTA hhghghhhghghhhhhhhhhh XT:A:R NM:i:0 X0:i:1191 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4132:8884#0 16 chr1 142142367 37 21M * 0 0 GGAAAGTGCCTAGCCATCACG fcddfdY[_ffegefgggggg XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4132:19126#0 0 chr15 41254561 37 21M * 0 0 TGTGATGTGATGCATACACCA gehhhhhhhhhhhhhhhhhhh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4132:2322#0 0 chr4 144694292 37 21M * 0 0 TTTACACAGGACACAGGGGGA ggfgggccggffa]aadaad_ XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4134:5895#0 0 chr15 78502922 37 21M * 0 0 CTGCAGCGGGTGGTGGGAGCT ggggggggggcffcfffcfdf XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4135:16662#0 0 chr5 28154876 23 21M * 0 0 GGAAGGGGGTGCAGTTAATGG hhhhhhhhhghhhhhhhhhfh XT:A:U NM:i:0 X0:i:1 X1:i:1 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4135:12173#0 0 chr6 121252668 37 22M * 0 0 CCCTGTGGGCTTCCCACCAGTG hhhhhhhhhhhhhhhhhhhhhh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:22
+S09811_20110217:7:76:4137:11392#0 0 chr5 130323446 37 20M * 0 0 GAGGTCAGGTTGGATCCCTA hhhhhhhhhghhghhhhhhh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:20
+S09811_20110217:7:76:4138:1397#0 16 chr8 73011208 18 20M * 0 0 CGCAGCCATGGCTGAAGATG f_f]dfffdfcd``cdaacc XT:A:U NM:i:0 X0:i:1 X1:i:3 XM:i:0 XO:i:0 XG:i:0 MD:Z:20
+S09811_20110217:7:76:4138:19656#0 16 chr19 48565060 37 22M * 0 0 GCAGGGATAACTGAACCTACAG cfTWYTTZJU^Zdffffcfcdf XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:22
+S09811_20110217:7:76:4140:8157#0 16 chr6 131162611 0 21M * 0 0 CTGTCTCTTGTGAGGCTATTC hhhhhhhhhhhhhhhhhhhhh XT:A:R NM:i:0 X0:i:316 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4143:14172#0 0 chr9 68577324 23 21M * 0 0 CCTGGGTGACATAGAGATCCA hhhhhhhhhhhhhhhhghhhh XT:A:U NM:i:0 X0:i:1 X1:i:1 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4143:2611#0 0 chr10 13581724 37 21M * 0 0 CAAGTAGTGATGCACCAGTGG ffffffffffgggfgffcfff XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4145:13512#0 16 chr17 34974392 23 21M * 0 0 AAGCCTTTGCACAAACTCCCC ggggggffdfccffcfcffff XT:A:U NM:i:0 X0:i:1 X1:i:1 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4145:1804#0 16 chr5 108153882 37 21M * 0 0 AAACCTGAGCCCTGCAGGAGG hhhhhhhghhghhhhhhhhhh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4145:18667#0 0 chr16 91899872 37 21M * 0 0 GCTGGAGTGGATCCAAGCCCA daca^cdadda^a^afcfffc XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4147:14396#0 0 chr11 6428660 37 21M * 0 0 CCTGTGCCCTGATGACGGAAG hhhhhhhhhhhhhhhhhhhgh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4147:10729#0 0 chr7 121986142 37 21M * 0 0 CCTCTACCCCTCTCCCAGAGG hhdh`ghhhhfhghfghhhgh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4148:18299#0 0 chr1 120277085 37 21M * 0 0 GCGCTTGCTAGGTAAGTAAAG hhhhhhhhhhhghghgfhhhh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4148:3976#0 0 chr14 26306322 37 20M * 0 0 CAAAGCAATCCATGCAGTGG gdggceggagggggggeggg XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:20
+S09811_20110217:7:76:4149:19347#0 0 chr9 20807321 37 21M * 0 0 TCATCAGCCACCGCCGCGAGC hhhhhhhhghchghhgggfhg XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4150:14212#0 16 chr12 83486402 37 21M * 0 0 ATGTCAGATTGAACCTGAGAA hghhhhhhhhhhhhhhhhhhh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4150:14295#0 0 chr8 110526042 37 21M * 0 0 GGGAATGTTAATGGGCACCCT hhhhhhhhhghhfhghhhhhf XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4150:15287#0 0 chr6 125330344 37 21M * 0 0 GCACTCGCCCTCCCAAGTGCT b^\^]`Xb^^cccccccQ_a\ XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4150:1371#0 16 chr2 90235298 0 21M * 0 0 CTCCCCACCTGGCACTGTCCC hghhhhdhhhhhhgfghghhh XT:A:R NM:i:0 X0:i:5 X1:i:4 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4151:8075#0 16 chr8 87655472 0 20M * 0 0 AGAGACAGACACGAAACGAC ffdfafffdfcfffffcfaf XT:A:R NM:i:0 X0:i:61 XM:i:0 XO:i:0 XG:i:0 MD:Z:20
+S09811_20110217:7:76:4151:14450#0 0 chr5 104072953 0 21M * 0 0 AGTTGACAAGGGGTCAACTGT hhhhhhhhhhhhhhhhhhhhh XT:A:R NM:i:0 X0:i:23 X1:i:1865 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4152:17800#0 0 chr17 79755009 37 21M * 0 0 TGCAGCCGGCTCCCCTTGCAA hghhhhghhhgheggehfhgg XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4153:20509#0 16 chrX 48108344 0 20M * 0 0 CAGAGGCAAGCAGATCTCTG ggggggcgggggggagggcg XT:A:R NM:i:0 X0:i:629 XM:i:0 XO:i:0 XG:i:0 MD:Z:20
+S09811_20110217:7:76:4154:2902#0 0 chr17 39982224 37 21M * 0 0 GAGTGCCGAGGTGGGTACCCT dffffdffcd]`ee]_ce]ef XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4155:16166#0 16 chr3 10939533 23 21M * 0 0 ATTACAGCACCGGGCACCTTG hffffffffffffffcfffff XT:A:U NM:i:1 X0:i:1 X1:i:1 XM:i:1 XO:i:0 XG:i:0 MD:Z:2G18
+S09811_20110217:7:76:4156:5280#0 16 chr11 5737647 37 21M * 0 0 CGCAAGGTAGATGGCCACATC ]ddddadRWccZabR]Z_\X` XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4158:17318#0 16 chr16 37539830 37 20M * 0 0 GAACGCCTAATTCCTGCGAC hhhhhhhhhhhhgghhhhhh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:20
+S09811_20110217:7:76:4159:15220#0 16 chr7 3933251 37 21M * 0 0 ACTGTGACATCTGTAGGCTCC hhffhhhhgehhhhhhgfhhh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4159:14652#0 16 chr11 82704111 37 21M * 0 0 GCGCCCTAGGCCCGCCCCCTC aecfgacffccccXccfdfdf XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4159:8297#0 16 chr11 76659954 23 21M * 0 0 GTGTTGAGCAGGCGGACCAGG hhhhhgghhhhhhfhhfhhgh XT:A:U NM:i:0 X0:i:1 X1:i:1 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4161:6427#0 0 chr3 60304918 20 21M * 0 0 CTGCTTCTGCTGCTGCAGGCC ffdfffffffffffffafffd XT:A:U NM:i:0 X0:i:1 X1:i:2 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4161:1685#0 0 chr1 159482966 37 22M * 0 0 CTCTGACCCTGGGGTCCACTAT ggggggggggggggfggggedg XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:22
+S09811_20110217:7:76:4161:10296#0 16 chrX 131543262 37 21M * 0 0 GTGGGACAGGTCCAAGCTCAG f`aaa\Kdb_Uffffdggggg XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4161:10632#0 0 chr9 45820653 37 21M * 0 0 TTTTCAATGCCTGTTCCCCAG gggggdgggggggggggggcc XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4162:16607#0 16 chr11 74749998 0 21M * 0 0 GGAATTGAACTCAGGACCTCT hghghhhhhghhhhhedhhhd XT:A:R NM:i:0 X0:i:15092 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4162:6913#0 16 chr1 92684508 23 20M * 0 0 CCAGAGGACCAGTTCTGCCA hhhhhhhhhhhfhgfhhhhh XT:A:U NM:i:0 X0:i:1 X1:i:1 XM:i:0 XO:i:0 XG:i:0 MD:Z:20
+S09811_20110217:7:76:4162:14683#0 16 chr9 88333349 37 21M * 0 0 ACCACGAAGGCTGCGTGGTCC hhhhhhhhhhhhhhhhhhhhh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4162:7728#0 0 chr2 80479175 23 21M * 0 0 CTGTGGCCGGTGACATCTGGG cc^ccc_cccLVWQPLUVYZc XT:A:U NM:i:0 X0:i:1 X1:i:1 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4163:18078#0 16 chr17 46290451 37 21M * 0 0 ACTGCCAGCCTAGTCGTCCTG agaagggggggfggggggggg XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4164:4911#0 16 chr18 24499200 37 21M * 0 0 AGAAAGCCCCCAGGAGCCAGC gghhhghhhhhhhhhhhhhhh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4165:13217#0 0 chr11 17158026 37 21M * 0 0 GTGGCAGTGTTAGCCCTTTTG ]Z\YYTZ_NUca_\cfcfcff XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4165:4616#0 0 chr17 88655538 37 21M * 0 0 CAGCGACATTCCCAGGATTCC _^d^bffffffcfffg^gggg XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4166:12650#0 16 chr13 8870251 37 20M * 0 0 CCCGGCGACCCGAACTGGCG ffdfffff\fffcdadgggg XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:20
+S09811_20110217:7:76:4166:2623#0 0 chr19 57906825 0 21M * 0 0 TGTCACTCCTTGATTGGCTGC gfggggggggggdggadfaff XT:A:R NM:i:0 X0:i:384 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4167:13070#0 0 chr6 13788876 37 22M * 0 0 GCCCCAAATCAGGCTTTTGTTC hhhhhhhghhhgehchhhfhhh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:22
+S09811_20110217:7:76:4168:14902#0 0 chr10 79899202 37 35M * 0 0 GAGCCTCACCTAGAATCCCCCAGTGAGGGGGCTGG ggggggggggggggggggggfff]ffffcfffffc XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:35
+S09811_20110217:7:76:4168:15851#0 16 chr19 26553578 37 21M * 0 0 CCAGATTACCCAGAAGTTTCA fafffdcaebbffd_fdf_fe XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4168:7850#0 0 chr11 97391198 37 21M * 0 0 CCCACGCAACTTCACTCCAGC hhhhhhhhhhhhhhhhhhhhh XT:A:U NM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4169:9126#0 16 chr5 18358473 0 21M * 0 0 TTAGAGGGTGCGCCAGAGAAC hghgfhhgfghhghhhhhhgh XT:A:R NM:i:0 X0:i:1579 XM:i:0 XO:i:0 XG:i:0 MD:Z:21
+S09811_20110217:7:76:4170:18336#0 16 chr11 3077150 37 22M * 0 0 AGTGGACATTCACAGCTGGACA ghfhfhhbafffhhddbfYfYf XT:A:U NM:i:1 X0:i:1 X1:i:0 XM:i:1 XO:i:0 XG:i:0 MD:Z:16C5
diff --git a/clipper/t/in/mcf/test3.fq b/clipper/t/in/mcf/test3.fq
new file mode 100644
index 0000000..8812777
--- /dev/null
+++ b/clipper/t/in/mcf/test3.fq
@@ -0,0 +1,28 @@
+ at 1 CLIP IS AGTCCCGTAC AT BEGINNING
+AGTCCCGTACATATGCTACGTTTGTGACCT
++
+hhhhh]]hhhhhhhhhhhhh]hhffgffaa
+ at 2 CLIP AGTCCCGTAC + AAAA's
+AAAAAGTCCCGTACATGTTCGTATATGAGC
++
+hhbhh^^hhhhhhhhhhhhh]hhfffffaa
+ at 3 CLIP JUST AGTCC if nmin >= 5
+CGTACTATAGCCTCTAGCTTGACTCTAGCT
++
+hhhh]]hhhhhhhhhhhhh]hhfffffaaa
+ at 4 CLIP AC at begin if nmin >= 2
+ACCTATCTTAGTCATCTTATCTACTATCAG
++
+hhhhhdchhhhhhhhhhh]hhfggfaabbA
+ at 5 CLIP TAG at BEGIN if nmin >= 3
+TACATATACTTATCTACTTATCTATCTTAA
++
+hhhhh]bhddhhhhhhhhhh]hhffffgaA
+ at 6 CLIP NOTHING, even though some at front, because mismatch pct too high
+AGTCCTTGGTCTTATCTACTTATCTATCTT
++
+hhhhh]bhddhhhhhhhhhh]hhffffgaA
+ at 6 CLIP WHOLE SEQENCE
+AGTCCATTACCTTATCTACTAGTCCCGGAC
++
+hhhhh]bhddhhhhhhhhhh]hhffffgaA
diff --git a/clipper/t/in/mcf/test4.fq1 b/clipper/t/in/mcf/test4.fq1
new file mode 100644
index 0000000..decbeda
--- /dev/null
+++ b/clipper/t/in/mcf/test4.fq1
@@ -0,0 +1,5 @@
+ at EA-GAII-02:7:1:19703:1174#0/1
+ATGATGATGATGATGTTGTGCCCACCACTCCAAGACAGTGCCCACTGATCCAAGATGGCACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
++
+gg]cdggggggfggcffafdgggg_ggfffggfgggdf[cBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
+ at EA-GAII-02:7:1:1142:1178#0/1
diff --git a/clipper/t/in/mcf/test4.fq2 b/clipper/t/in/mcf/test4.fq2
new file mode 100644
index 0000000..39e6280
--- /dev/null
+++ b/clipper/t/in/mcf/test4.fq2
@@ -0,0 +1,5 @@
+ at EA-GAII-02:7:1:19703:1174#0/3
+ATGATGATGATGATATGTGATGATGATGATGTGATGATGATGATGAGTGTGATGATGTGTGTGTGTGTGTGTGTGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
++
+hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
+ at EA-GAII-02:7:1:1142:1178#0/3
diff --git a/clipper/t/in/mcf/test5.fq b/clipper/t/in/mcf/test5.fq
new file mode 100644
index 0000000..9ec8acf
--- /dev/null
+++ b/clipper/t/in/mcf/test5.fq
@@ -0,0 +1,16 @@
+ at 1
+CATGATTGATGGTGCCTACAGATCAGCTAGGCATCGATATATCGATCGGCTAGAGATATACGATCGAT
++
+hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
+ at 2
+CATGATTGATGGTGCCTACAGATCAGCTAGGCATCGATATATCGATCGGCTAGAGATATACGATCGAG
++
+hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
+ at 3
+CATGATTGATGGTGCCTACAGATCAGCTAGGCATCGATATATCGATCGGCTAGAGATATACGATCGAG
++
+hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
+ at 4
+CATGATTGATGGTGCCTACAGATCAGCTAGGCATCGATATATCGATCGGCTAGAGATATACGATCGAC
++
+hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
diff --git a/clipper/t/in/multx/master-barcodes.txt b/clipper/t/in/multx/master-barcodes.txt
new file mode 100755
index 0000000..9b70aef
--- /dev/null
+++ b/clipper/t/in/multx/master-barcodes.txt
@@ -0,0 +1,862 @@
+id seq style
+D701 ATTACTCG Nextera1
+D702 TCCGGAGA Nextera1
+D703 CGCTCATT Nextera1
+D704 GAGATTCC Nextera1
+D705 ATTCAGAA Nextera1
+D706 GAATTCGT Nextera1
+D707 CTGAAGCT Nextera1
+D708 TAATGCGC Nextera1
+D709 CGGCTATG Nextera1
+D710 TCCGCGAA Nextera1
+D711 TCTCGCGC Nextera1
+D712 AGCGATAG Nextera1
+LB1 ATCACG TruSeq
+LB2 CGATGT TruSeq
+LB3 TTAGGC TruSeq
+LB4 TGACCA TruSeq
+LB5 ACAGTG TruSeq
+LB6 GCCAAT TruSeq
+LB7 CAGATC TruSeq
+LB8 ACTTGA TruSeq
+LB9 GATCAG TruSeq
+LB10 TAGCTT TruSeq
+LB11 GGCTAC TruSeq
+LB12 CTTGTA TruSeq
+LB13 AGTCAA TruSeq
+LB14 AGTTCC TruSeq
+LB15 ATGTCA TruSeq
+LB16 CCGTCC TruSeq
+LB17 GTAGAG TruSeq
+LB18 GTCCGC TruSeq
+LB19 GTGAAA TruSeq
+LB20 GTGGCC TruSeq
+LB21 GTTTCG TruSeq
+LB22 CGTACG TruSeq
+LB23 GAGTGG TruSeq
+LB24 GGTAGC TruSeq
+LB25 ACTGAT TruSeq
+LB26 ATGAGC TruSeq
+LB27 ATTCCT TruSeq
+LB28 CAAAAG TruSeq
+LB29 CAACTA TruSeq
+LB30 CACCGG TruSeq
+LB31 CACGAT TruSeq
+LB32 CACTCA TruSeq
+LB33 CAGGCG TruSeq
+LB34 CATGGC TruSeq
+LB35 CATTTT TruSeq
+LB36 CCAACA TruSeq
+LB37 CGGAAT TruSeq
+LB38 CTAGCT TruSeq
+LB39 CTATAC TruSeq
+LB40 CTCAGA TruSeq
+LB41 GACGAC TruSeq
+LB42 TAATCG TruSeq
+LB43 TACAGC TruSeq
+LB44 TATAAT TruSeq
+LB45 TCATTC TruSeq
+LB46 TCCCGA TruSeq
+LB47 TCGAAG TruSeq
+LB48 TCGGCA TruSeq
+SSXT1 ATCACG SureSelect_XT
+SSXT2 CGATGT SureSelect_XT
+SSXT3 TTAGGC SureSelect_XT
+SSXT4 TGACCA SureSelect_XT
+SSXT5 ACAGTG SureSelect_XT
+SSXT6 GCCAAT SureSelect_XT
+SSXT7 CAGATC SureSelect_XT
+SSXT8 ACTTGA SureSelect_XT
+SSXT9 GATCAG SureSelect_XT
+SSXT10 TAGCTT SureSelect_XT
+SSXT11 GGCTAC SureSelect_XT
+SSXT12 CTTGTA SureSelect_XT
+SSXT13 AAACAT SureSelect_XT
+SSXT14 CAAAAG SureSelect_XT
+SSXT15 GAAACC SureSelect_XT
+SSXT16 AAAGCA SureSelect_XT
+LI2 CCTTCT Craig
+LI3 GATCGT Craig
+LI4 GCATGT Craig
+LI5 AACCAT Craig
+LI6 CCCCCT Craig
+LI8 TCGATT Craig
+LI9 TGCATT Craig
+LI10 CAACCT Craig
+LI11 GGTTGT Craig
+LI13 AGCTAT Craig
+LI15 ACACAT Craig
+LI16 AATTAT Craig
+LI20 ATCACG Craig
+LI21 CGATGT Craig
+LI22 TTAGGC Craig
+LI23 TGACCA Craig
+LI24 ACAGTG Craig
+LI25 GCCAAT Craig
+LI26 CAGATC Craig
+LI27 ACTTGA Craig
+LI28 GATCAG Craig
+LI29 TAGCTT Craig
+LI30 GGCTAC Craig
+LI31 CTTGTA Craig
+LI61 ATCACG Illumina
+LI62 CGATGT Illumina
+LI63 TTAGGC Illumina
+LI64 TGACCA Illumina
+LI65 ACAGTG Illumina
+LI66 GCCAAT Illumina
+LI67 CAGATC Illumina
+LI68 ACTTGA Illumina
+LI69 GATCAG Illumina
+LI70 TAGCTT Illumina
+LI71 GGCTAC Illumina
+LI72 CTTGTA Illumina
+LI41 ATCACG Illumina-IDT
+LI42 CGATGT Illumina-IDT
+LI43 TTAGGC Illumina-IDT
+LI44 TGACCA Illumina-IDT
+LI45 ACAGTG Illumina-IDT
+LI46 GCCAAT Illumina-IDT
+LI47 CAGATC Illumina-IDT
+LI48 ACTTGA Illumina-IDT
+LI49 GATCAG Illumina-IDT
+LI50 TAGCTT Illumina-IDT
+LI51 GGCTAC Illumina-IDT
+LI52 CTTGTA Illumina-IDT
+A01_01 TAGCTTGT Fluidigm
+B01_02 CGATGTTT Fluidigm
+C01_03 GCCAATGT Fluidigm
+D01_04 ACAGTGGT Fluidigm
+E01_05 ATCACGTT Fluidigm
+F01_06 GATCAGCG Fluidigm
+G01_07 CAGATCTG Fluidigm
+H01_08 TTAGGCAT Fluidigm
+A02_09 GGCTACAG Fluidigm
+B02_10 CTTGTACT Fluidigm
+C02_11 ACTTGATG Fluidigm
+D02_12 TGACCACT Fluidigm
+E02_13 TGGTTGTT Fluidigm
+F02_14 TCTCGGTT Fluidigm
+G02_15 TAAGCGTT Fluidigm
+H02_16 TCCGTCTT Fluidigm
+A03_17 TGTACCTT Fluidigm
+B03_18 TTCTGTGT Fluidigm
+C03_19 TCTGCTGT Fluidigm
+D03_20 TTGGAGGT Fluidigm
+E03_21 TCGAGCGT Fluidigm
+F03_22 TGATACGT Fluidigm
+G03_23 TGCATAGT Fluidigm
+H03_24 TTGACTCT Fluidigm
+A04_25 TGCGATCT Fluidigm
+B04_26 TTCCTGCT Fluidigm
+C04_27 TAGTGACT Fluidigm
+D04_28 TACAGGAT Fluidigm
+E04_29 TCCTCAAT Fluidigm
+F04_30 TGTGGTTG Fluidigm
+G04_31 TAGTCTTG Fluidigm
+H04_32 TTCCATTG Fluidigm
+A05_33 TCGAAGTG Fluidigm
+B05_34 TAACGCTG Fluidigm
+C05_35 TTGGTATG Fluidigm
+D05_36 TGAACTGG Fluidigm
+E05_37 TACTTCGG Fluidigm
+F05_38 TCTCACGG Fluidigm
+G05_39 TCAGGAGG Fluidigm
+H05_40 TAAGTTCG Fluidigm
+A06_41 TCCAGTCG Fluidigm
+B06_42 TGTATGCG Fluidigm
+C06_43 TCATTGAG Fluidigm
+D06_44 TGGCTCAG Fluidigm
+E06_45 TATGCCAG Fluidigm
+F06_46 TCAGATTC Fluidigm
+G06_47 TACTAGTC Fluidigm
+H06_48 TTCAGCTC Fluidigm
+A07_49 TGTCTATC Fluidigm
+B07_50 TATGTGGC Fluidigm
+C07_51 TTACTCGC Fluidigm
+D07_52 TCGTTAGC Fluidigm
+E07_53 TACCGAGC Fluidigm
+F07_54 TGTTCTCC Fluidigm
+G07_55 TTCGCACC Fluidigm
+H07_56 TTGCGTAC Fluidigm
+A08_57 TCTACGAC Fluidigm
+B08_58 TGACAGAC Fluidigm
+C08_59 TAGAACAC Fluidigm
+D08_60 TCATCCTA Fluidigm
+E08_61 TGCTGATA Fluidigm
+F08_62 TAGACGGA Fluidigm
+G08_63 TGTGAAGA Fluidigm
+H08_64 TCTCTTCA Fluidigm
+A09_65 TTGTTCCA Fluidigm
+B09_66 TGAAGCCA Fluidigm
+C09_67 TACCACCA Fluidigm
+D09_68 TGCGTGAA Fluidigm
+E09_69 GGTGAGTT Fluidigm
+F09_70 GATCTCTT Fluidigm
+G09_71 GTGTCCTT Fluidigm
+H09_72 GACGGATT Fluidigm
+A10_73 GCAACATT Fluidigm
+B10_74 GGTCGTGT Fluidigm
+C10_75 GAATCTGT Fluidigm
+D10_76 GTACATCT Fluidigm
+E10_77 GAGGTGCT Fluidigm
+F10_78 GCATGGCT Fluidigm
+G10_79 GTTAGCCT Fluidigm
+H10_80 GTCGCTAT Fluidigm
+A11_81 GGAATGAT Fluidigm
+B11_82 GAGCCAAT Fluidigm
+C11_83 GCTCCTTG Fluidigm
+D11_84 GTAAGGTG Fluidigm
+E11_85 GAGGATGG Fluidigm
+F11_86 GTTGTCGG Fluidigm
+G11_87 GGATTAGG Fluidigm
+H11_88 GATAGAGG Fluidigm
+A12_89 GTGTGTCG Fluidigm
+B12_90 GCAATCCG Fluidigm
+C12_91 GACCTTAG Fluidigm
+D12_92 GCCTGTTC Fluidigm
+E12_93 GCACTGTC Fluidigm
+F12_94 GCTAACTC Fluidigm
+G12_95 GATTCATC Fluidigm
+H12_96 GTCTTGGC Fluidigm
+FLD0001 GTATCGTCGT FLD_BiDirectional
+FLD0002 GTGTATGCGT FLD_BiDirectional
+FLD0003 TGCTCGTAGT FLD_BiDirectional
+FLD0004 GTCGTCGTCT FLD_BiDirectional
+FLD0005 GTGCGTGTGT FLD_BiDirectional
+FLD0006 GCGTCGTGTA FLD_BiDirectional
+FLD0007 GTCGTGTACT FLD_BiDirectional
+FLD0008 GATGTAGCGT FLD_BiDirectional
+FLD0009 GAGTGATCGT FLD_BiDirectional
+FLD0010 CGCTATCAGT FLD_BiDirectional
+FLD0011 CGCTGTAGTC FLD_BiDirectional
+FLD0012 GCTAGTGAGT FLD_BiDirectional
+FLD0013 GAGCTAGTGA FLD_BiDirectional
+FLD0014 CGTGCTGTCA FLD_BiDirectional
+FLD0015 GATCGTCTCT FLD_BiDirectional
+FLD0016 GTGCTGTCGT FLD_BiDirectional
+FLD0017 TGAGCGTGCT FLD_BiDirectional
+FLD0018 CATGTCGTCA FLD_BiDirectional
+FLD0019 TCAGTGTCTC FLD_BiDirectional
+FLD0020 GTGCTCATGT FLD_BiDirectional
+FLD0021 CGTATCTCGA FLD_BiDirectional
+FLD0022 GTCATGCGTC FLD_BiDirectional
+FLD0023 CTATGCGATC FLD_BiDirectional
+FLD0024 TGCTATGCTG FLD_BiDirectional
+FLD0025 TGTGTGCATG FLD_BiDirectional
+FLD0026 GAGTGTCACT FLD_BiDirectional
+FLD0027 CTAGTCTCGT FLD_BiDirectional
+FLD0028 GAGTGCATCT FLD_BiDirectional
+FLD0029 TGCGTAGTCG FLD_BiDirectional
+FLD0030 CTGTGTCGTC FLD_BiDirectional
+FLD0031 CTGTAGTGCG FLD_BiDirectional
+FLD0032 GTGCGCTAGT FLD_BiDirectional
+FLD0033 TGTGCTCGCA FLD_BiDirectional
+FLD0034 GATGCGAGCT FLD_BiDirectional
+FLD0035 CTGTACGTGA FLD_BiDirectional
+FLD0036 GCGATGATGA FLD_BiDirectional
+FLD0037 TGTCGAGTCA FLD_BiDirectional
+FLD0038 GTCTACTGTC FLD_BiDirectional
+FLD0039 CAGTCAGAGT FLD_BiDirectional
+FLD0040 CGCAGTCTAT FLD_BiDirectional
+FLD0041 GTATGAGCAC FLD_BiDirectional
+FLD0042 CGAGTGCTGT FLD_BiDirectional
+FLD0043 TATAGCACGC FLD_BiDirectional
+FLD0044 TCATGCGCGA FLD_BiDirectional
+FLD0045 TATGCGCTGC FLD_BiDirectional
+FLD0046 TCTCTGTGCA FLD_BiDirectional
+FLD0047 CTATCGCGTG FLD_BiDirectional
+FLD0048 TACGCTGCTG FLD_BiDirectional
+FLD0049 CTGCATGATC FLD_BiDirectional
+FLD0050 CGCGTATCAT FLD_BiDirectional
+FLD0051 GTATCTCTCG FLD_BiDirectional
+FLD0052 GCTCATATGC FLD_BiDirectional
+FLD0053 CACTATGTCG FLD_BiDirectional
+FLD0054 TAGCGCGTAG FLD_BiDirectional
+FLD0055 CGTCACAGTA FLD_BiDirectional
+FLD0056 TCGCGTGAGA FLD_BiDirectional
+FLD0057 TACATCGCTG FLD_BiDirectional
+FLD0058 GTGAGAGACA FLD_BiDirectional
+FLD0059 GACTGTACGT FLD_BiDirectional
+FLD0060 GCACGTAGCT FLD_BiDirectional
+FLD0061 TCACGCTATG FLD_BiDirectional
+FLD0062 CGTACTACGT FLD_BiDirectional
+FLD0063 CAGCTGAGTA FLD_BiDirectional
+FLD0064 GAGATCAGTC FLD_BiDirectional
+FLD0065 TACTGAGCTG FLD_BiDirectional
+FLD0066 TAGTAGCGCG FLD_BiDirectional
+FLD0067 GACGTCTGCT FLD_BiDirectional
+FLD0068 GTACTCGCGA FLD_BiDirectional
+FLD0069 TCTGAGCGCA FLD_BiDirectional
+FLD0070 TAGACGTGCT FLD_BiDirectional
+FLD0071 GTGACTCGTC FLD_BiDirectional
+FLD0072 TCGAGTAGCG FLD_BiDirectional
+FLD0073 CGTATGATGT FLD_BiDirectional
+FLD0074 TAGTCTGTCA FLD_BiDirectional
+FLD0075 TGTCTCTATC FLD_BiDirectional
+FLD0076 CTAGAGTATC FLD_BiDirectional
+FLD0077 TATCATGTGC FLD_BiDirectional
+FLD0078 CATGAGTGTA FLD_BiDirectional
+FLD0079 TGTCGTCATA FLD_BiDirectional
+FLD0080 TATCTCATGC FLD_BiDirectional
+FLD0081 TGTGTCACTA FLD_BiDirectional
+FLD0082 TATCGATGCT FLD_BiDirectional
+FLD0083 TAGAGTCTGT FLD_BiDirectional
+FLD0084 CATGCATCAT FLD_BiDirectional
+FLD0085 TGATCAGTCA FLD_BiDirectional
+FLD0086 CGTCTATGAT FLD_BiDirectional
+FLD0087 GTGATACTGA FLD_BiDirectional
+FLD0088 CTAGATCTGA FLD_BiDirectional
+FLD0089 TATCAGTCTG FLD_BiDirectional
+FLD0090 TCAGATGCTA FLD_BiDirectional
+FLD0091 TATGTACGTG FLD_BiDirectional
+FLD0092 CTATACAGTG FLD_BiDirectional
+FLD0093 TGATACTCTG FLD_BiDirectional
+FLD0094 TCAGCGATAT FLD_BiDirectional
+FLD0095 CTACTGATGA FLD_BiDirectional
+FLD0096 GTAGTACACA FLD_BiDirectional
+FLD0097 TGCTACATCA FLD_BiDirectional
+FLD0098 AGTGTGTCTA FLD_BiDirectional
+FLD0099 TCATATCGCG FLD_BiDirectional
+FLD0100 TACGTATAGC FLD_BiDirectional
+FLD0101 CAGCTATAGC FLD_BiDirectional
+FLD0102 TCGATGCGCT FLD_BiDirectional
+FLD0103 GCACGCGTAT FLD_BiDirectional
+FLD0104 GCAGTATGCG FLD_BiDirectional
+FLD0105 TGATAGAGAG FLD_BiDirectional
+FLD0106 GCTACTAGCG FLD_BiDirectional
+FLD0107 TGCGAGACGT FLD_BiDirectional
+FLD0108 CGATGACAGA FLD_BiDirectional
+FLD0109 GACTCATGCT FLD_BiDirectional
+FLD0110 GTCTGATACG FLD_BiDirectional
+FLD0111 ACTAGCTGTC FLD_BiDirectional
+FLD0112 GCGTAGACGA FLD_BiDirectional
+FLD0113 CTCAGCAGTG FLD_BiDirectional
+FLD0114 CAGTCTACAT FLD_BiDirectional
+FLD0115 TACTGCAGCG FLD_BiDirectional
+FLD0116 TACACAGTAG FLD_BiDirectional
+FLD0117 CACATACAGT FLD_BiDirectional
+FLD0118 CACAGTGATG FLD_BiDirectional
+FLD0119 CGAGCTAGCA FLD_BiDirectional
+FLD0120 GAGACTATGC FLD_BiDirectional
+FLD0121 CAGAGCTAGT FLD_BiDirectional
+FLD0122 CGCAGAGCAT FLD_BiDirectional
+FLD0123 TGTACAGCGA FLD_BiDirectional
+FLD0124 ACGTCAGTAT FLD_BiDirectional
+FLD0125 TCACAGCATA FLD_BiDirectional
+FLD0126 ACTGCGTGTC FLD_BiDirectional
+FLD0127 CGATCGACTG FLD_BiDirectional
+FLD0128 GCGAGATGTA FLD_BiDirectional
+FLD0129 CTGATGCAGA FLD_BiDirectional
+FLD0130 GTGACGTACG FLD_BiDirectional
+FLD0131 CGACGCTGAT FLD_BiDirectional
+FLD0132 CTACGATCAG FLD_BiDirectional
+FLD0133 GCACTAGACA FLD_BiDirectional
+FLD0134 CTAGCAGATG FLD_BiDirectional
+FLD0135 CATGATACGC FLD_BiDirectional
+FLD0136 GCAGCTGTCA FLD_BiDirectional
+FLD0137 ACGTATCATC FLD_BiDirectional
+FLD0138 AGTATCGTAC FLD_BiDirectional
+FLD0139 GATACACTGA FLD_BiDirectional
+FLD0140 GACTAGTCAG FLD_BiDirectional
+FLD0141 GATGACTACG FLD_BiDirectional
+FLD0142 CAGAGAGTCA FLD_BiDirectional
+FLD0143 TCGATCGACA FLD_BiDirectional
+FLD0144 ACTGATGTAG FLD_BiDirectional
+FLD0145 ACTCGATAGT FLD_BiDirectional
+FLD0146 GACGATCGCA FLD_BiDirectional
+FLD0147 TCATCATGCG FLD_BiDirectional
+FLD0148 ACATGTCTGA FLD_BiDirectional
+FLD0149 AGTCATCGCA FLD_BiDirectional
+FLD0150 TAGCATACAG FLD_BiDirectional
+FLD0151 AGAGTCGCGT FLD_BiDirectional
+FLD0152 TCTACGACAT FLD_BiDirectional
+FLD0153 CACGAGATGA FLD_BiDirectional
+FLD0154 ACGCACATAT FLD_BiDirectional
+FLD0155 ACGTGCTCTG FLD_BiDirectional
+FLD0156 ACGATCACAT FLD_BiDirectional
+FLD0157 AGTGTACTCA FLD_BiDirectional
+FLD0158 TGATGTATGT FLD_BiDirectional
+FLD0159 GATATATGTC FLD_BiDirectional
+FLD0160 TAGTACTAGA FLD_BiDirectional
+FLD0161 TATAGAGATC FLD_BiDirectional
+FLD0162 TCGATATCTA FLD_BiDirectional
+FLD0163 TACATGATAG FLD_BiDirectional
+FLD0164 TGAGATCATA FLD_BiDirectional
+FLD0165 CTACATACTA FLD_BiDirectional
+FLD0166 ATCAGTGTAT FLD_BiDirectional
+FLD0167 ATCATATCTC FLD_BiDirectional
+FLD0168 AGTAGATCAT FLD_BiDirectional
+FLD0169 ACATAGTATC FLD_BiDirectional
+FLD0170 ATGTATAGTC FLD_BiDirectional
+FLD0171 ACAGTCATAT FLD_BiDirectional
+FLD0172 ACATATACGT FLD_BiDirectional
+FLD0173 AGCATCTATA FLD_BiDirectional
+FLD0174 AGACTATATC FLD_BiDirectional
+FLD0175 CAGCATCTAG FLD_BiDirectional
+FLD0176 CGAGACGACA FLD_BiDirectional
+FLD0177 ATCACTCATA FLD_BiDirectional
+FLD0178 AGCTCTGTGA FLD_BiDirectional
+FLD0179 ATGTCATGCT FLD_BiDirectional
+FLD0180 GCTGACAGAG FLD_BiDirectional
+FLD0181 ATACAGTCTC FLD_BiDirectional
+FLD0182 CATAGACGTG FLD_BiDirectional
+FLD0183 AGAGATATCA FLD_BiDirectional
+FLD0184 ATGCTGCGCT FLD_BiDirectional
+FLD0185 AGTCAGACGC FLD_BiDirectional
+FLD0186 ACGATACACT FLD_BiDirectional
+FLD0187 AGCGAGTATG FLD_BiDirectional
+FLD0188 ATCGCTACAT FLD_BiDirectional
+FLD0189 ATGCTAGAGA FLD_BiDirectional
+FLD0190 AGCAGTACTC FLD_BiDirectional
+FLD0191 ATCTAGATCA FLD_BiDirectional
+FLD0192 ATCGCATAGA FLD_BiDirectional
+FLD0193 TTGTTGCTGT FLD_BiDirectional
+FLD0194 GTGTGGTTGT FLD_BiDirectional
+FLD0195 TAGGTGGAAT FLD_BiDirectional
+FLD0196 TGTAGGTGGA FLD_BiDirectional
+FLD0197 TTAGTGGTGA FLD_BiDirectional
+FLD0198 GTGAAGGTAA FLD_BiDirectional
+FLD0199 TGTTGTGGTA FLD_BiDirectional
+FLD0200 GTTGATGAGT FLD_BiDirectional
+FLD0201 GGTCAGTGTA FLD_BiDirectional
+FLD0202 GTAATGGAGT FLD_BiDirectional
+FLD0203 CTCGTTATTC FLD_BiDirectional
+FLD0204 GGAAGTAAGG FLD_BiDirectional
+FLD0205 CGGTGTGTGT FLD_BiDirectional
+FLD0206 CGTCTTCTTA FLD_BiDirectional
+FLD0207 TGTGAATCTC FLD_BiDirectional
+FLD0208 CTAATCGTGT FLD_BiDirectional
+FLD0209 CTCTTAGTTC FLD_BiDirectional
+FLD0210 GGATAGGATC FLD_BiDirectional
+FLD0211 GGTGTCTTGT FLD_BiDirectional
+FLD0212 GATGGTTGTA FLD_BiDirectional
+FLD0213 CCTCGTTGTT FLD_BiDirectional
+FLD0214 GGTTGGAGTT FLD_BiDirectional
+FLD0215 TGGTGTCCGT FLD_BiDirectional
+FLD0216 CGTTAGCGTA FLD_BiDirectional
+FLD0217 TACTAGGATC FLD_BiDirectional
+FLD0218 GTCTCAATGT FLD_BiDirectional
+FLD0219 GATGAGGTAT FLD_BiDirectional
+FLD0220 GGTGTTAGTG FLD_BiDirectional
+FLD0221 CATTCTCTGA FLD_BiDirectional
+FLD0222 CATCTGGAGT FLD_BiDirectional
+FLD0223 GAATGGAAGA FLD_BiDirectional
+FLD0224 GGCTGTGATC FLD_BiDirectional
+FLD0225 TGGTGCTGGA FLD_BiDirectional
+FLD0226 TATGGTAAGG FLD_BiDirectional
+FLD0227 GTTCGATTGT FLD_BiDirectional
+FLD0228 GGTAGAATGA FLD_BiDirectional
+FLD0229 TTCTCATCGT FLD_BiDirectional
+FLD0230 CTCAATCGTA FLD_BiDirectional
+FLD0231 CGCTAATGTA FLD_BiDirectional
+FLD0232 GCGTCTGAAT FLD_BiDirectional
+FLD0233 TTCTGTTGCC FLD_BiDirectional
+FLD0234 TTGTCCTTGC FLD_BiDirectional
+FLD0235 CCTGTGTAGA FLD_BiDirectional
+FLD0236 GATAAGAAGG FLD_BiDirectional
+FLD0237 CAGGTCACAT FLD_BiDirectional
+FLD0238 GCCATGTCAT FLD_BiDirectional
+FLD0239 TCTGCCTATA FLD_BiDirectional
+FLD0240 CTTAGTTCGC FLD_BiDirectional
+FLD0241 CGTAATGAGC FLD_BiDirectional
+FLD0242 TTGCTTAGTC FLD_BiDirectional
+FLD0243 TCTTGTTCAC FLD_BiDirectional
+FLD0244 GTGGCTTCGT FLD_BiDirectional
+FLD0245 TGTTCGATAG FLD_BiDirectional
+FLD0246 TCATTCAGTG FLD_BiDirectional
+FLD0247 GTGGAGAGCT FLD_BiDirectional
+FLD0248 GTAGAAGTGG FLD_BiDirectional
+FLD0249 TGGAGCATGT FLD_BiDirectional
+FLD0250 GAAGGAGATA FLD_BiDirectional
+FLD0251 CGAATGTATG FLD_BiDirectional
+FLD0252 TCGTGAATGA FLD_BiDirectional
+FLD0253 GAATAGCTGA FLD_BiDirectional
+FLD0254 TTGTCACATC FLD_BiDirectional
+FLD0255 CTGGAGGCTA FLD_BiDirectional
+FLD0256 TGTCAGCTTA FLD_BiDirectional
+FLD0257 GTTCTTCGTA FLD_BiDirectional
+FLD0258 TTACACGTTC FLD_BiDirectional
+FLD0259 GTAGCCAGTA FLD_BiDirectional
+FLD0260 TGAGAAGGTA FLD_BiDirectional
+FLD0261 CCATATGATC FLD_BiDirectional
+FLD0262 CGATCCTATA FLD_BiDirectional
+FLD0263 TGACTAGCTT FLD_BiDirectional
+FLD0264 TAACTCTGCT FLD_BiDirectional
+FLD0265 TCGAATGTGC FLD_BiDirectional
+FLD0266 TCGCTGAACA FLD_BiDirectional
+FLD0267 GCGTTATTGC FLD_BiDirectional
+FLD0268 GAACTATCAC FLD_BiDirectional
+FLD0269 TCGAGGTACT FLD_BiDirectional
+FLD0270 TGCGGATGGT FLD_BiDirectional
+FLD0271 TTCGAGCTAT FLD_BiDirectional
+FLD0272 GGTCTGGTGT FLD_BiDirectional
+FLD0273 CTAAGTCATG FLD_BiDirectional
+FLD0274 TTGCAGATCA FLD_BiDirectional
+FLD0275 CTGCGAATGT FLD_BiDirectional
+FLD0276 CTGTTCTAGC FLD_BiDirectional
+FLD0277 CACTTGTGTG FLD_BiDirectional
+FLD0278 TGGATGACAT FLD_BiDirectional
+FLD0279 GATCCTGAGC FLD_BiDirectional
+FLD0280 GTCGGTCTGA FLD_BiDirectional
+FLD0281 TGTTACGATC FLD_BiDirectional
+FLD0282 GTCTTGGCTC FLD_BiDirectional
+FLD0283 GGTCGTGCAT FLD_BiDirectional
+FLD0284 CAGGCTCAGT FLD_BiDirectional
+FLD0285 TAGCTTCACT FLD_BiDirectional
+FLD0286 CAGATGTCCT FLD_BiDirectional
+FLD0287 TTACGCAGTG FLD_BiDirectional
+FLD0288 TTCGTTCCTG FLD_BiDirectional
+FLD0289 CACTGCTTGA FLD_BiDirectional
+FLD0290 TCTAGCGTGG FLD_BiDirectional
+FLD0291 GCATAATCGC FLD_BiDirectional
+FLD0292 GTCGTAACAC FLD_BiDirectional
+FLD0293 GAGATTGCTA FLD_BiDirectional
+FLD0294 GGACAGATGG FLD_BiDirectional
+FLD0295 CTTACGTTGC FLD_BiDirectional
+FLD0296 GTGTTCGGTC FLD_BiDirectional
+FLD0297 CTCAAGAAGC FLD_BiDirectional
+FLD0298 TCTCGGATAG FLD_BiDirectional
+FLD0299 CTCTGGACGA FLD_BiDirectional
+FLD0300 CGAGCATTGT FLD_BiDirectional
+FLD0301 CCAAGAAGAA FLD_BiDirectional
+FLD0302 TCCTTGTTCT FLD_BiDirectional
+FLD0303 GTAACGATGT FLD_BiDirectional
+FLD0304 TGGACTCAGA FLD_BiDirectional
+FLD0305 GGCATCATGC FLD_BiDirectional
+FLD0306 GTATAACGCT FLD_BiDirectional
+FLD0307 GCAGATAAGT FLD_BiDirectional
+FLD0308 GTCGGCTCTA FLD_BiDirectional
+FLD0309 TTCGATAGCA FLD_BiDirectional
+FLD0310 GTCTAGCAGG FLD_BiDirectional
+FLD0311 GGAACACAGG FLD_BiDirectional
+FLD0312 TGGTTCGCTG FLD_BiDirectional
+FLD0313 CACATTAGCG FLD_BiDirectional
+FLD0314 GAAGCGCACT FLD_BiDirectional
+FLD0315 GCATGCCAGT FLD_BiDirectional
+FLD0316 GGAGACTGTA FLD_BiDirectional
+FLD0317 TCGAACTGCA FLD_BiDirectional
+FLD0318 GAGAGGACAT FLD_BiDirectional
+FLD0319 GAGCACGGAA FLD_BiDirectional
+FLD0320 GCTCTAACAT FLD_BiDirectional
+FLD0321 TGCTGGCTTG FLD_BiDirectional
+FLD0322 TGCATGGAGC FLD_BiDirectional
+FLD0323 GTACTAAGAG FLD_BiDirectional
+FLD0324 GAAGTCAAGC FLD_BiDirectional
+FLD0325 GCGCATTATG FLD_BiDirectional
+FLD0326 GTCCAGACAT FLD_BiDirectional
+FLD0327 GAGACCTCTA FLD_BiDirectional
+FLD0328 TTGCACTCAG FLD_BiDirectional
+FLD0329 TGCGGCGATA FLD_BiDirectional
+FLD0330 AGTTGCTAGT FLD_BiDirectional
+FLD0331 AGGATTGAGG FLD_BiDirectional
+FLD0332 CCAGAACAGA FLD_BiDirectional
+FLD0333 CGTCAAGCAT FLD_BiDirectional
+FLD0334 TTGTCGAGAC FLD_BiDirectional
+FLD0335 GACAGGTGAC FLD_BiDirectional
+FLD0336 CTGACAAGTG FLD_BiDirectional
+FLD0337 CACGAAGAGC FLD_BiDirectional
+FLD0338 CATACCTGAT FLD_BiDirectional
+FLD0339 GACGTGCTTC FLD_BiDirectional
+FLD0340 ATTGTGGAGT FLD_BiDirectional
+FLD0341 TCTGGTCTCA FLD_BiDirectional
+FLD0342 AGGTAAGAGG FLD_BiDirectional
+FLD0343 TCCTGACAGA FLD_BiDirectional
+FLD0344 GCACTGTTGC FLD_BiDirectional
+FLD0345 ACCATGAGTC FLD_BiDirectional
+FLD0346 AATGCAGTGT FLD_BiDirectional
+FLD0347 ATATGGTGGA FLD_BiDirectional
+FLD0348 ACTCAGTTAC FLD_BiDirectional
+FLD0349 AAGTGCGATG FLD_BiDirectional
+FLD0350 CCACAGAGTG FLD_BiDirectional
+FLD0351 AGTGGTGATC FLD_BiDirectional
+FLD0352 ACTTCTTAGC FLD_BiDirectional
+FLD0353 GCCACATATA FLD_BiDirectional
+FLD0354 ACGCAGGAGT FLD_BiDirectional
+FLD0355 AATATGCTGC FLD_BiDirectional
+FLD0356 AAGCGTAGAA FLD_BiDirectional
+FLD0357 GACAGCAAGC FLD_BiDirectional
+FLD0358 CTGACCGAGA FLD_BiDirectional
+FLD0359 CGCGACTTGT FLD_BiDirectional
+FLD0360 CATCAACATG FLD_BiDirectional
+FLD0361 TGGCTACGCT FLD_BiDirectional
+FLD0362 ACGCGGACTA FLD_BiDirectional
+FLD0363 AGAGGTCGGA FLD_BiDirectional
+FLD0364 AATCGAGCGT FLD_BiDirectional
+FLD0365 AAGTACACTC FLD_BiDirectional
+FLD0366 AGCTGAATGA FLD_BiDirectional
+FLD0367 ATGCCTATCA FLD_BiDirectional
+FLD0368 ACTGTAGGAC FLD_BiDirectional
+FLD0369 ATAGCCGTGT FLD_BiDirectional
+FLD0370 TCACGACGAA FLD_BiDirectional
+FLD0371 ATCTGTCCAT FLD_BiDirectional
+FLD0372 ACTTAGAGAG FLD_BiDirectional
+FLD0373 AGTGGCAGGT FLD_BiDirectional
+FLD0374 ATGAGGTCGT FLD_BiDirectional
+FLD0375 AGGAGAAGGA FLD_BiDirectional
+FLD0376 ACAACTGCAA FLD_BiDirectional
+FLD0377 ATTAGCGAGT FLD_BiDirectional
+FLD0378 ACAACGAACA FLD_BiDirectional
+FLD0379 AGAGCGCCAA FLD_BiDirectional
+FLD0380 AGGTAGCTCA FLD_BiDirectional
+FLD0381 AACGCCAAGA FLD_BiDirectional
+FLD0382 AAGGTATGAG FLD_BiDirectional
+FLD0383 ATGGAGCACT FLD_BiDirectional
+FLD0384 ACGGTGCTAG FLD_BiDirectional
+NGOBC1 AAGGGA NuGen_Ovation
+NGOBC2 CCTTCA NuGen_Ovation
+NGOBC3 GGACCC NuGen_Ovation
+NGOBC4 TTCAGC NuGen_Ovation
+NGOBC5 AAGACG NuGen_Ovation
+NGOBC6 CCTCGG NuGen_Ovation
+NGOBC7 GGATGT NuGen_Ovation
+NGOBC8 TTCGCT NuGen_Ovation
+NGOBC9 ACACGA NuGen_Ovation
+NGOBC10 CACACA NuGen_Ovation
+NGOBC11 GTGTTA NuGen_Ovation
+NGOBC12 TGTGAA NuGen_Ovation
+NGOBC13 ACAAAC NuGen_Ovation
+NGOBC14 CACCTC NuGen_Ovation
+NGOBC15 GTGGCC NuGen_Ovation
+NGOBC16 TGTTGC NuGen_Ovation
+ION1 CTAAGGTAAC IonXpress
+ION2 TAAGGAGAAC IonXpress
+ION3 AAGAGGATTC IonXpress
+ION4 TACCAAGATC IonXpress
+ION5 CAGAAGGAAC IonXpress
+ION6 CTGCAAGTTC IonXpress
+ION7 TTCGTGATTC IonXpress
+ION8 TTCCGATAAC IonXpress
+ION9 TGAGCGGAAC IonXpress
+ION10 CTGACCGAAC IonXpress
+ION11 TCCTCGAATC IonXpress
+ION12 TAGGTGGTTC IonXpress
+ION13 TCTAACGGAC IonXpress
+ION14 TTGGAGTGTC IonXpress
+ION15 TCTAGAGGTC IonXpress
+ION16 TCTGGATGAC IonXpress
+ION17 TCTATTCGTC IonXpress
+ION18 AGGCAATTGC IonXpress
+ION19 TTAGTCGGAC IonXpress
+ION20 CAGATCCATC IonXpress
+ION21 TCGCAATTAC IonXpress
+ION22 TTCGAGACGC IonXpress
+ION23 TGCCACGAAC IonXpress
+ION24 AACCTCATTC IonXpress
+ION25 CCTGAGATAC IonXpress
+ION26 TTACAACCTC IonXpress
+ION27 AACCATCCGC IonXpress
+ION28 ATCCGGAATC IonXpress
+ION29 TCGACCACTC IonXpress
+ION30 CGAGGTTATC IonXpress
+ION31 TCCAAGCTGC IonXpress
+ION32 TCTTACACAC IonXpress
+ION33 TTCTCATTGAAC IonXpress
+ION34 TCGCATCGTTC IonXpress
+ION35 TAAGCCATTGTC IonXpress
+ION36 AAGGAATCGTC IonXpress
+ION37 CTTGAGAATGTC IonXpress
+ION38 TGGAGGACGGAC IonXpress
+ION39 TAACAATCGGC IonXpress
+ION40 CTGACATAATC IonXpress
+ION41 TTCCACTTCGC IonXpress
+ION42 AGCACGAATC IonXpress
+ION43 CTTGACACCGC IonXpress
+ION44 TTGGAGGCCAGC IonXpress
+ION45 TGGAGCTTCCTC IonXpress
+ION46 TCAGTCCGAAC IonXpress
+ION47 TAAGGCAACCAC IonXpress
+ION48 TTCTAAGAGAC IonXpress
+ION49 TCCTAACATAAC IonXpress
+ION50 CGGACAATGGC IonXpress
+ION51 TTGAGCCTATTC IonXpress
+ION52 CCGCATGGAAC IonXpress
+ION53 CTGGCAATCCTC IonXpress
+ION54 CCGGAGAATCGC IonXpress
+ION55 TCCACCTCCTC IonXpress
+ION56 CAGCATTAATTC IonXpress
+ION57 TCTGGCAACGGC IonXpress
+ION58 TCCTAGAACAC IonXpress
+ION59 TCCTTGATGTTC IonXpress
+ION60 TCTAGCTCTTC IonXpress
+ION61 TCACTCGGATC IonXpress
+ION62 TTCCTGCTTCAC IonXpress
+ION63 CCTTAGAGTTC IonXpress
+ION64 CTGAGTTCCGAC IonXpress
+ION65 TCCTGGCACATC IonXpress
+ION66 CCGCAATCATC IonXpress
+ION67 TTCCTACCAGTC IonXpress
+ION68 TCAAGAAGTTC IonXpress
+ION69 TTCAATTGGC IonXpress
+ION70 CCTACTGGTC IonXpress
+ION71 TGAGGCTCCGAC IonXpress
+ION72 CGAAGGCCACAC IonXpress
+ION73 TCTGCCTGTC IonXpress
+ION74 CGATCGGTTC IonXpress
+ION75 TCAGGAATAC IonXpress
+ION76 CGGAAGAACCTC IonXpress
+ION77 CGAAGCGATTC IonXpress
+ION78 CAGCCAATTCTC IonXpress
+ION79 CCTGGTTGTC IonXpress
+ION80 TCGAAGGCAGGC IonXpress
+ION81 CCTGCCATTCGC IonXpress
+ION82 TTGGCATCTC IonXpress
+ION83 CTAGGACATTC IonXpress
+ION84 CTTCCATAAC IonXpress
+ION85 CCAGCCTCAAC IonXpress
+ION86 CTTGGTTATTC IonXpress
+ION87 TTGGCTGGAC IonXpress
+ION88 CCGAACACTTC IonXpress
+ION89 TCCTGAATCTC IonXpress
+ION90 CTAACCACGGC IonXpress
+ION91 CGGAAGGATGC IonXpress
+ION92 CTAGGAACCGC IonXpress
+ION93 CTTGTCCAATC IonXpress
+ION94 TCCGACAAGC IonXpress
+ION95 CGGACAGATC IonXpress
+ION96 TTAAGCGGTC IonXpress
+NGEBC1 AACCAG NuGen_Encore
+NGEBC2 TGGTGA NuGen_Encore
+NGEBC3 AGTGAG NuGen_Encore
+NGEBC4 GCACTA NuGen_Encore
+NGEBC5 ACCTCA NuGen_Encore
+NGEBC6 GTGCTT NuGen_Encore
+NGEBC7 AAGCCT NuGen_Encore
+NGEBC8 GTCGTA NuGen_Encore
+NGEBC9 AAGAGG NuGen_Encore
+NGEBC10 GGAGAA NuGen_Encore
+NGEBC11 AGCATG NuGen_Encore
+NGEBC12 GAGTCA NuGen_Encore
+NGEBC13 CGTAGA NuGen_Encore
+NGEBC14 TCAGAG NuGen_Encore
+NGEBC15 CACAGT NuGen_Encore
+NGEBC16 TTGGCA NuGen_Encore
+N701 TAAGGCGA Nextera_XT1
+N702 CGTACTAG Nextera_XT1
+N703 AGGCAGAA Nextera_XT1
+N704 TCCTGAGC Nextera_XT1
+N705 GGACTCCT Nextera_XT1
+N706 TAGGCATG Nextera_XT1
+N707 CTCTCTAC Nextera_XT1
+N708 CAGAGAGG Nextera_XT1
+N709 GCTACGCT Nextera_XT1
+N710 CGAGGCTG Nextera_XT1
+N711 AAGAGGCA Nextera_XT1
+N712 GTAGAGGA Nextera_XT1
+A701 ATCACGAC Nextera_TSACP1
+A702 ACAGTGGT Nextera_TSACP1
+A703 CAGATCCA Nextera_TSACP1
+A704 ACAAACGG Nextera_TSACP1
+A705 ACCCAGCA Nextera_TSACP1
+A706 AACCCCTC Nextera_TSACP1
+A707 CCCAACCT Nextera_TSACP1
+A708 CACCACAC Nextera_TSACP1
+A709 GAAACCCA Nextera_TSACP1
+A710 TGTGACCA Nextera_TSACP1
+A711 AGGGTCAA Nextera_TSACP1
+A712 AGGAGTGG Nextera_TSACP1
+SSXT96-1 AACGTGAT SureSelect_XT_96_barcodes
+SSXT96-2 AAACATCG SureSelect_XT_96_barcodes
+SSXT96-3 ATGCCTAA SureSelect_XT_96_barcodes
+SSXT96-4 AGTGGTCA SureSelect_XT_96_barcodes
+SSXT96-5 ACCACTGT SureSelect_XT_96_barcodes
+SSXT96-6 ACATTGGC SureSelect_XT_96_barcodes
+SSXT96-7 CAGATCTG SureSelect_XT_96_barcodes
+SSXT96-8 CATCAAGT SureSelect_XT_96_barcodes
+SSXT96-9 CGCTGATC SureSelect_XT_96_barcodes
+SSXT96-10 ACAAGCTA SureSelect_XT_96_barcodes
+SSXT96-11 CTGTAGCC SureSelect_XT_96_barcodes
+SSXT96-12 AGTACAAG SureSelect_XT_96_barcodes
+SSXT96-13 AACAACCA SureSelect_XT_96_barcodes
+SSXT96-14 AACCGAGA SureSelect_XT_96_barcodes
+SSXT96-15 AACGCTTA SureSelect_XT_96_barcodes
+SSXT96-16 AAGACGGA SureSelect_XT_96_barcodes
+SSXT96-17 AAGGTACA SureSelect_XT_96_barcodes
+SSXT96-18 ACACAGAA SureSelect_XT_96_barcodes
+SSXT96-19 ACAGCAGA SureSelect_XT_96_barcodes
+SSXT96-20 ACCTCCAA SureSelect_XT_96_barcodes
+SSXT96-21 ACGCTCGA SureSelect_XT_96_barcodes
+SSXT96-22 ACGTATCA SureSelect_XT_96_barcodes
+SSXT96-23 ACTATGCA SureSelect_XT_96_barcodes
+SSXT96-24 AGAGTCAA SureSelect_XT_96_barcodes
+SSXT96-25 AGATCGCA SureSelect_XT_96_barcodes
+SSXT96-26 AGCAGGAA SureSelect_XT_96_barcodes
+SSXT96-27 AGTCACTA SureSelect_XT_96_barcodes
+SSXT96-28 ATCCTGTA SureSelect_XT_96_barcodes
+SSXT96-29 ATTGAGGA SureSelect_XT_96_barcodes
+SSXT96-30 CAACCACA SureSelect_XT_96_barcodes
+SSXT96-31 CAAGACTA SureSelect_XT_96_barcodes
+SSXT96-32 CAATGGAA SureSelect_XT_96_barcodes
+SSXT96-33 CACTTCGA SureSelect_XT_96_barcodes
+SSXT96-34 CAGCGTTA SureSelect_XT_96_barcodes
+SSXT96-35 CATACCAA SureSelect_XT_96_barcodes
+SSXT96-36 CCAGTTCA SureSelect_XT_96_barcodes
+SSXT96-37 CCGAAGTA SureSelect_XT_96_barcodes
+SSXT96-38 CCGTGAGA SureSelect_XT_96_barcodes
+SSXT96-39 CCTCCTGA SureSelect_XT_96_barcodes
+SSXT96-40 CGAACTTA SureSelect_XT_96_barcodes
+SSXT96-41 CGACTGGA SureSelect_XT_96_barcodes
+SSXT96-42 CGCATACA SureSelect_XT_96_barcodes
+SSXT96-43 CTCAATGA SureSelect_XT_96_barcodes
+SSXT96-44 CTGAGCCA SureSelect_XT_96_barcodes
+SSXT96-45 CTGGCATA SureSelect_XT_96_barcodes
+SSXT96-46 GAATCTGA SureSelect_XT_96_barcodes
+SSXT96-47 GACTAGTA SureSelect_XT_96_barcodes
+SSXT96-48 GAGCTGAA SureSelect_XT_96_barcodes
+SSXT96-49 GATAGACA SureSelect_XT_96_barcodes
+SSXT96-50 GCCACATA SureSelect_XT_96_barcodes
+SSXT96-51 GCGAGTAA SureSelect_XT_96_barcodes
+SSXT96-52 GCTAACGA SureSelect_XT_96_barcodes
+SSXT96-53 GCTCGGTA SureSelect_XT_96_barcodes
+SSXT96-54 GGAGAACA SureSelect_XT_96_barcodes
+SSXT96-55 GGTGCGAA SureSelect_XT_96_barcodes
+SSXT96-56 GTACGCAA SureSelect_XT_96_barcodes
+SSXT96-57 GTCGTAGA SureSelect_XT_96_barcodes
+SSXT96-58 GTCTGTCA SureSelect_XT_96_barcodes
+SSXT96-59 GTGTTCTA SureSelect_XT_96_barcodes
+SSXT96-60 TAGGATGA SureSelect_XT_96_barcodes
+SSXT96-61 TATCAGCA SureSelect_XT_96_barcodes
+SSXT96-62 TCCGTCTA SureSelect_XT_96_barcodes
+SSXT96-63 TCTTCACA SureSelect_XT_96_barcodes
+SSXT96-64 TGAAGAGA SureSelect_XT_96_barcodes
+SSXT96-65 TGGAACAA SureSelect_XT_96_barcodes
+SSXT96-66 TGGCTTCA SureSelect_XT_96_barcodes
+SSXT96-67 TGGTGGTA SureSelect_XT_96_barcodes
+SSXT96-68 TTCACGCA SureSelect_XT_96_barcodes
+SSXT96-69 AACTCACC SureSelect_XT_96_barcodes
+SSXT96-70 AAGAGATC SureSelect_XT_96_barcodes
+SSXT96-71 AAGGACAC SureSelect_XT_96_barcodes
+SSXT96-72 AATCCGTC SureSelect_XT_96_barcodes
+SSXT96-73 AATGTTGC SureSelect_XT_96_barcodes
+SSXT96-74 ACACGACC SureSelect_XT_96_barcodes
+SSXT96-75 ACAGATTC SureSelect_XT_96_barcodes
+SSXT96-76 AGATGTAC SureSelect_XT_96_barcodes
+SSXT96-77 AGCACCTC SureSelect_XT_96_barcodes
+SSXT96-78 AGCCATGC SureSelect_XT_96_barcodes
+SSXT96-79 AGGCTAAC SureSelect_XT_96_barcodes
+SSXT96-80 ATAGCGAC SureSelect_XT_96_barcodes
+SSXT96-81 ATCATTCC SureSelect_XT_96_barcodes
+SSXT96-82 ATTGGCTC SureSelect_XT_96_barcodes
+SSXT96-83 CAAGGAGC SureSelect_XT_96_barcodes
+SSXT96-84 CACCTTAC SureSelect_XT_96_barcodes
+SSXT96-85 CCATCCTC SureSelect_XT_96_barcodes
+SSXT96-86 CCGACAAC SureSelect_XT_96_barcodes
+SSXT96-87 CCTAATCC SureSelect_XT_96_barcodes
+SSXT96-88 CCTCTATC SureSelect_XT_96_barcodes
+SSXT96-89 CGACACAC SureSelect_XT_96_barcodes
+SSXT96-90 CGGATTGC SureSelect_XT_96_barcodes
+SSXT96-91 CTAAGGTC SureSelect_XT_96_barcodes
+SSXT96-92 GAACAGGC SureSelect_XT_96_barcodes
+SSXT96-93 GACAGTGC SureSelect_XT_96_barcodes
+SSXT96-94 GAGTTAGC SureSelect_XT_96_barcodes
+SSXT96-95 GATGAATC SureSelect_XT_96_barcodes
+SSXT96-96 GCCAAGAC SureSelect_XT_96_barcodes
+NGOTEBC1 CACGTCTANNNNNN Nugen_Ovation_Target_Enrichment
+NGOTEBC2 AGCTAGTGNNNNNN Nugen_Ovation_Target_Enrichment
+NGOTEBC3 ACTATCGCNNNNNN Nugen_Ovation_Target_Enrichment
+NGOTEBC4 GCGTATCANNNNNN Nugen_Ovation_Target_Enrichment
+NGOTEBC5 ACTCTCCANNNNNN Nugen_Ovation_Target_Enrichment
+NGOTEBC6 CGTCCATTNNNNNN Nugen_Ovation_Target_Enrichment
+NGOTEBC7 AGCCGTAANNNNNN Nugen_Ovation_Target_Enrichment
+NGOTEBC8 GAGTAGAGNNNNNN Nugen_Ovation_Target_Enrichment
+
diff --git a/clipper/t/in/multx/mxtest-h_1.fastq b/clipper/t/in/multx/mxtest-h_1.fastq
new file mode 100644
index 0000000..27f1e4b
--- /dev/null
+++ b/clipper/t/in/multx/mxtest-h_1.fastq
@@ -0,0 +1,1000 @@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1230:2118 1:N:0::ACAGNNN
+GTATNGAATTATTTTTCTCTGAATAATTTTTAGGAGTTCTTTTATTCTAGACATCAATCATTTGTCAGTTTTNTA
++
+@@@F#2=BFHAHDHHIGIIIIGI<C<EBHIGIIB>FFDFHIIIIIIDC9B at B?FHCDHEFH4EGEEHI8BFC###
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1196:2124 1:N:0::GCCANNN
+GCAAACCACTATATATTGCTTGTATCTATCAGCTTCTGGTCAGATACATTTTGTCTATGGAACCTTTCCAACNCA
++
+@<@BDE?BBFHHGIDGIBIFHGICHHICFDHE at FHH>GE@@CFDHC??DGIJ at GAEIGGA?BB6=CFBBFH####
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1211:2126 1:N:0::GCCANNN
+ACACCCAAAGACATCTCTCAACTTGGAGAGTAATTCAGTCCTCAACATCTCCTGAAAGATCGGAAGAGCACANGT
++
+8??AADDD??D:CE at E?CE?B<FE4<+<+1??9CDFBE::DD<D3?BD at D??93?9D*8BC='5('6=@CC####
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1238:2152 1:N:0::GCCAANN
+TTTTTTTTGCTGTGTATATGAACCCATATATATATCAAGACACATAGGAGTCAAAGGAAAATACATTTAAAANCT
++
+CCCFFFFFHHHFDHHGGBGHJJIJJJBGGGGGIHHDHHIIHIIEHCHIEIFIJJGHIIGHFFHHFFFFEEFC###
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1224:2185 1:N:0::CGATNNN
+CTATGGGTGTTAAATTTTTTACTCTCTCTACAAGGTTTTTTCCTAGTGTCCAAAGAGCTGTTCCTCTTTGGANTA
++
+CC at FFFFFHHHGGIIJJJJJJHIGHIJIHIIIIIJHIIJJJJGGHGDHIGDHIIJAG>DHHGGCCA>EHDD####
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1179:2187 1:N:0::ACAGNNN
+GGTTCAAGTGTATTTTCTGTAACAGANNNNTATTTGGAATGTTTTTCTTTTCCCCTTATAAATTGTAATTCCNGA
++
+<@@DFDDDDH?FDGGIGGGDHEHG<F####22 at FHIEGIIJJJIJJHIGIHHIIIGI>FCH<FHIDEGGIJC###
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1223:2231 1:N:0::GCCANNN
+TATTGAGCATTTATAGAATTTCGTATTTTCTCTCTCTCAGTGTATCAGTTATACTTCTTTTTAAATTTTTTANAT
++
+<7 at DADDDHGHGDGGHIIIIFGI=FCADHHIICFHIIIIIEGEHGD<FHHBFCDHGGHIIEGH*?FGIGIIG###
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1356:2120 1:N:0::GCCAATA
+CACTNTTTTGCTACATAGACGGGTGTGCTCTTTTAGCTGTTCTTAGGTAGCTCGTCTGGTTTCGGGGGTCTTAGC
++
+@@@D#2ADFHHHHIIIIIIIIIH8??DDGGIIIID at HGIDHBDHDGGBDHHIIIGGCGH@DGAEFEEB5&3A>A:
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1387:2124 1:N:0::TGACCAA
+GGGAGGGGGTGATCTAAAACACTCTTTACGCCGGCTTCTATTGACTTGGGTTAATCGTGTGACCGCGGTGGCTGG
++
+B at CDDFFFH@FFHJJJJJJJIIJJJJJJGIIJJJGHFFFFFFFCEEECED?BBDEDDB?AACD:555>5 at DBDDB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1323:2146 1:N:0::TGACCAA
+CCCAGCCTTTGCTGTAGCACACACATATATCACTGAACCTGTTTGAAATAAAGTTTTTTTTCTTTTTCATGATTC
++
+CCCFFFFFHHHFHJHIJIJJIIIJJJIIJJFIJIJHIJJJJIIEIG?FGHIEDFGHIJJIH>EHFFFDDFEEC>@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1422:2148 1:N:0::TGACCAA
+GGAAGGTGGAGTGGGTTTGGGGCTAGGTTTAGCACCGCAAGGGAAAGATGAAAAATTATAACCAAGCATAATATA
++
+B@@FFFBDHFHDHIJGIJJJIIIIJII?GHIJIJJJJJIIIJJHGGGFIIIHHGHHFFFFFFECDEDDCDDDCDA
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1344:2152 1:N:0::CGATGTA
+TCCAGCCTGTCACGCCTCCTCCACTGCTGATATCTCCATTTTCACTGTTGGGCTCTTTTACAGGGGTCTTTCGAA
++
+@@<DDDBBFF<F+ at 2A3E@<A;GGIFFII9CB:*11:4CFDFBA?FEFFE8@/B(=FFIB@@CDF<@4;?CE?;2
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1276:2152 1:N:0::GCCAANN
+ATGAACAGGCTCCTCTAGAGGGATATGAAGCACCGCCAGGTCCTTTGAGTTTTAAGCTGTGGCTCGTAGGGGTCT
++
+ at C@?DDDDHHHHHDGB at FDHFH:AEHHIIGGGG at FGHIII8DHGHIIGI=CCFFHIGGGAHIC at H##########
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1326:2167 1:N:0::CGATGTA
+AGAGGCGACAAACCTACCTAGCCTGGTGATAGCTGGTTGTCCAAGATAGAATCTTAGTTCAACTTTAAATTTGTC
++
+@?@1DD at DAD?FF7EGEI9E>@9C339):?B*9DG9)9BF at C<<CE at F4=C;)@E;4AE7777?BD at 7;B#####
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1434:2177 1:N:0::CGATGTA
+GGTTTGACGCATGTTTTCATTTCTCTGGGATAAATGCTCAGAAGTGCAATTCCTGAAGCATGACATATACATGTG
++
+CCBFFFFFHHHHHIJJIJIJJIIJIJJJJGIJIJJJJJJJJDHIGIJJIIJJJJJEHGHGIJIJHGGIEIJJJII
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1250:2180 1:N:0::CGATGNN
+CGGGTCTTAGCTTTGGCTCTCCTTGCAAAGTTATTTCTAGTTAATTCATTATGCAGAAGGTATAGGGGTTAGTCC
++
+ at BCDDDFF>FFFHJJJGIIIJJJIIJ at EAGHGIGIJJJDHII>GHHGGIJAHGGGHEHGID at FFHIFG;FGCCHA
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1342:2181 1:N:0::CGATGTA
+CAACCCAATGGACAGCTCACTGCTCTTTAACAGTCAAGCCTCTGTTGTTTTAGTCAATCTCACTTTCTTAGCCAA
++
+CCCFFFFFHHHGHIJJGIJJJIJJJJJJEHGJIJJIIGGIGGIJHGIGHIIFHGGGHHIIJGGDHIIJIIEGGHA
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1326:2195 1:N:0::TGACCAA
+ACTTTGTGTTTGAGAGCACACCCGTCTATGTAGCAAAATAGTGGGACGATTTATAGGTAGAGGCGACAAACCTAC
++
+?@@1ADA+AC>C?:+2<?B?EAGB:1?:*11CGD<@G>?DA?DF98(7'7@;)=77C at D>C##############
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1404:2198 1:N:0::TGACCAA
+GTGGAGGACTTTTTATAGTGCGTTATACGTATTTTCTTAGAAACATCGTGCATGTGCATTGTTAAACACAACGTT
++
+CBCFFFFFHHHHHJHIHJHIIIHIJIEHICGHIJJJIJJJEG>FIIJIHHIHIJGIIHHIJJJIAEGIGIECHE>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1365:2202 1:N:0::TGACCAA
+TACTTCCGACTTCCTCCCTGTGAAAATGTGGATTTGCAGAGACCCAATGGTCTGTGATCATTGAAAAAGAGGAAA
++
+C at CFFFFFHHHGFGIJJJJIIJHIJJHJGHIIIJJJIJIJJGHIJEGGHIIIIIIIIIGIJIGCHIJIEEEHE@3
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1497:2206 1:N:3586::ACAGTGA
+AGTATGGCCCGGGGGATCCGTTAGCTATCGTTCGCGAGAAAGTTAGTAGACACACAGGACCCAGGCGTGCAAGTT
++
+@@;?DDD=DBFDA at F<@BEF;B1B at C@F3;@E2-''33335;AB5 at A############################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1311:2219 1:N:0::ACAGTGA
+TTTGTGTTTGATTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
++
+???DD3BDDD8,C at EIEEIDADD/'','3;:::5::1::::&638::-<<<558<8?873<<???;;>7>>>9>>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1395:2221 1:N:0::TGACCAA
+TCTCCCCAATAAAGCTAAAACTCACCTGAGTTGTAAAAAACTCCAGTTGACACAAAATAGACTACGAAAGTGGCT
++
+ at CCDDDDFHHDDBHIIJIJIIDGGBGGIFIFFHIGIGIJJJEIIJIFDCGHIG>=BEIHBGEGIGI<EHFCCFFE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1348:2222 1:N:0::CGATGTA
+TCGGGTCTTAGCTTTGGCTCTCCTCGCAAAGTTATTTCTAGTTAATTCATTATGCAGAAGGTATAGGGGTTAGTC
++
+ at CCFFDDEHHGHHJIJJIIJJJIJEIJIGGF?FGIIJJJIJGGIFHIJJJJHJJICIGGG at CHDHGGIGEEEB@E
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1275:2229 1:N:0::CGATGNN
+TTTGACAGGCTAAAAAGGCGACCACGAAACTACCCTACAGCAAAGTACACCTGCAGACTCTGTGATGTTTTAATT
++
+;?@DB8BDHDFDHIIIEGHEFC at GGH>FEGHGB??DG at BF<CCHCF at CDC)=D?CCE2?CD@;>CDCC::?C at AC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1456:2233 1:N:0::CGATGTA
+CGTTCTGGTAAAAAGCTGGAAGATGGCCCTAAATTCTTGAAGTCTGGTGATGCTGCCATTGTTGATATGGTTCCT
++
+CC at FFFFFHHGGGGIJJJJIJJGIIIIJJJJJGHIJJJIGGIJJJJJFHIIIJIJIJDHHJGIJJICHIJJJIJA
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1298:2234 1:N:0::ACAGTGN
+ACCACTTGTATTTGGTCTCCAAGGTCCCAGTAACTTTACCAGTGTCTGTATTAGATGAACCGGACGTTGTAAATT
++
+;?:+=BDDDDDDE9<EBEDEF at 3+<EEC3AF>EEFIIEE@*:?@DDCAE4?D?D*BD4BD;D#############
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1327:2242 1:N:0::CGATGTA
+TGTGTTTGACTATATTTTTAACTATAGATGGTCCCTAACTTACAATGGTTCAAATTATGATTCTTCAACTTTATG
++
+@@@DDDDFFFHFHCGGGBEHIEH9CCFHIIJ3CFD at HHE>EGIG@<FD9?FEG>GH>>GGHGICGGH<@F at FGIG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1426:2246 1:N:0::CGATGTA
+CAGTTAAATTTACAAGGGGATTTAGAGGGTTCTGTGGGCAAATTTAAAGTTGAACTAAGATTCTATCTTGGACAA
++
+CCCFFFFFHHHHHIIIIJJGHJJIJGHIJEGIJJJJJJJIGGGIJJIGIGHGHHIIIGIIGIJGIIJJJIFEHHC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1287:2250 1:N:0::TGACCNN
+AATGGAAGCAAGCAAAACTAAATTATTTTCTAGGTGCTGTAATATTTCATTTGATAAGGTAGCAAAAGGATAGGA
++
+@@@7D8DDCH?DB;GGE>FHHGII9FHGGEFHDBG at FHGH@CCCFGIGGGGHIABBDHI?F3?<88B;CCFIA@@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1637:2116 1:N:0::GCCAATA
+AGGANAAAACCTTGTAGAGAGAGTAAAAAATTTAACACCCATAGTAGGCCTAAAAGCAGCCACCAATTAAGAAAG
++
+@@@D#2ADBFFFFIIIIIIIIII<CHIIIIIIIIIIIIIIIGFIFFFFIIIIEFGIIIIIIEFAA=EBDDDDBCC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1585:2121 1:N:0::CGATGTA
+TTCTTCCTGCCCCCAAAATATGAATGCTGCCTAAGTTTATCTCCTAGCTGGTGTCTTCCTCTCTTTACTCTTTTC
++
+?@@DDB?DFHHHHG>FGH at FHH@HHI at HCDHI@DGGGHFGGGEGIGIIII>)?BFCHIGCHHIBHIA:CGHIIG4
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1719:2132 1:N:0::CGATGTA
+GGCAAAGGGAGATGGTGGCAAAAAGGTTTAGATGCAGGAGAACAGTAAGATGGATGGTTCCGGCCAGAGTCGATG
++
+CCCFFFFFHGHFHIICFIJJJJJJJICGHIJJJJJJJJJJIGGGIFIEHGGIIIJJJGGGHJJGHBEFD>CDBBD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1530:2132 1:N:0::ACAGTGA
+GCCTACCATGGTGACCACGGGTGACGGGGAATCAGGGTTCGATTCCGGAGAGGGAGCCTGAGAAACGGCTACCAC
++
+@@CF?DBDFHFHHBHEHIIIIF>FECGHIEBGIIGIIIFIGGGHIHAHGHFBD at ADDDCDCDDDDDB?B;@DC::
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1501:2136 1:N:0::TGACCAA
+CTCAGGGTTTGTTATAATTTTTTATTTTTATGGGCTTTGGTGAGGGAGGTAGGTGGTAGTTTGTGTTTAATATTT
++
+@@CDDDF?FHDFFIIJIEHJJJJIIGEIJIGH at AH@FIJGDHIGJJGEHC at AACGIACC7AAE>E@@DBCDCEDE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1556:2139 1:N:0::ACAGTGA
+GTGTGTAGTCTAAGGTCAAACAGTGTTTGTCCCCTTTTATAAATTCACAATGTGTAATAGCATGTTCAAAACTCT
++
+CBCFFFFFHHHHHJJHHHHJJGJGJIIIIIJJJJJIJJIJHFIIJJJJJJIIGIIIJJJJJJIIHIJIGIIIIII
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1641:2143 1:N:0::TGACCAA
+TGAAAAATGTTTAATACACTATTGGATTTTTTATTTCCTTTTTTTGATTCAGCTTATACCCGGGCTGAAAACCTC
++
+CCCFFFFFHHHHHJJJJJIJGIJJJ at FHIJJJGIJJJJIJJJJJJJIIJJJJJJJGIGIHIHHFFDCEDDDDDDC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1689:2148 1:N:0::ACAGTGA
+GAATATATGAATAAAAATTTCATAAAACTATATTAAGCAGATGAGAATCTGGCAAAAATATAAGGGCTGTGTAAT
++
+CCCFFFFFHHHHHJIJJIIJJIJJJIJJJJJIJJJGIJJIJEHIJJJJJJIIJJJJJJIIIIJJIJIEGGGHIIG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1668:2150 1:N:0::ACAGTGA
+AAATTGGGAAGAGTAGAAAACTTCAGGAAATGTATTTGTTCCAGAGATTTCTGAAAATGACTCAAATAATATATA
++
+@@CFDD>DFHHGH4CBFHDGHEHFGEEHFIIIIC9EGIGEFFGIBGIIJICEHHIIIHIIG at GCFFHJEGGIIJG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1597:2151 1:N:0::GCCAATA
+GTCTTGTGCACTTAGCAGCAGGGGCCACAGTTCTCCCATAAATTCTCGAGCATTTTTTCCATTCAAAAATCCAGA
++
+<@@ADABBBBFHDBF<EEGGGFGEBHHGBA?DHIGGI3:D*9??GFGIGDH;BAGIJJDHFHEE=7=@?B>;3@#
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1509:2166 1:N:0::ACAGTGA
+TCTTGAGTAATTGCCTGTTGGGTTGGTGTCATCCTGACTTGGGCCGGAGAGTGGTGAGCTAACTATTCGTACTCC
++
+;8?DA;BAFH?BHIEH<GGGIDAFF<8??FHGECGDHICGA9;?BGHFGBC=CA=CCHEEE@>ACCA@;A??BC<
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1740:2167 1:N:0::TGACCAA
+GTTAGAACTAAATACAAAAATCTAACTTCTCACTGGCTCCAGTTTCCTACCTATGTTGAGTATTTTTGCGTTGCA
++
+CB at FFFFFHHHHHJJJJJJJJJJJJJJJIJJJJJIIIJJJEIFHIJIJJIJJEGGGFGHI@FFGIDGBGHHIBEC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1591:2169 1:N:0::CGATGTA
+TTTATTTAACTTGTGGAACAAAAATAAACCAGATTAACCACAACCATGCCTTACTTTATCAAATGTATAAGAAGT
++
+CCCDFFFDHHHHHEHIICGEFGI at GEHIJJEHIJIGIJJJJIJIJGJIJJFHCGGIJEGIJGECGHIIIEGIDH7
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1529:2172 1:N:0::GCCAATA
+GATGAGAGCAAAGTATATCACACTGAATGCCATGTTCAATAATTAAGGGCAGGAGGAGACAATCCTATTTTTCTG
++
+@@@?BDDFGHGFHFCGHHIGIGIIIFIGIIIIIIIIIGIICBFHHHIGHIIIIIIIFHEGHAHIIIIIGIIHHHE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1710:2174 1:N:0::GCCAATA
+TGATTTCAAATGCTAATTTATATATGTCTTAATTTTCATGTTGCTGTAAAACTTCAATTTTCTCAAAACCTCAAA
++
+;;?1;4,22=AD?,AE>:,?CDICF>HBHH,A<FB<2CH>?*@B at EHA4?C9<9?B??**0**0*9BD9?C>3=3
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1571:2181 1:N:0::TGACCAA
+CTAGGTAGTGGGTGTTGAGCTTGAACGCTTTCTTAATTGGTGGCTGCTTTTAGGCCACTATGGGTGTTAAATTTT
++
+@@@FFFDFFHGFFGDBGIIIIFGIIJHGIJEGHIHIIJJID;GGIJGCGIIH>GGCCHIJII at E7=BDEDBCACC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1520:2197 1:N:0::CGATGTA
+ATGTCTGGTGCTTTCTATCACCTCTTCTAATCTTTTAATGTATTTGTTTGCAATTTTGGGGTAAGACTTTTTTAT
++
+BCCFFFFFFHFHFIIJGIJGIJIJFJJJEGHGHIGIIJJJEFIIJIHIIIJE at HIJIJGIIAFFGGGHGIIJFFE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1669:2200 1:N:0::CACAGTG
+AATAAAGGGTATAGGAGTTTACAACTCAAAACAATTCATAAAACCTATCAGATACATACGATAAATCACACCGAG
++
+@@@FFFFFHFDHHIJJJJIIJIGIJJIGIIJJJIJJJJJJHGIIIJJJJJJJJJIIJJJJJIJJJJJIJJJJHHF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1710:2200 1:N:0::ACAGTGA
+ATAAAAATGATGAAAAAAGAACCGCCCTTTCATGTATTAAAATGGTTTATTATCTAAACAAGTTAAAAGTATATT
++
+CCCFFFFFHHHHHJJJGIJJIJGGHGIHIJJJIJIIJJJJJIIIIFGIIIJIIGEHJJJJJHEHEEHEF>BEDEF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1550:2201 1:N:0::CGATGTA
+TTGTGTTTGAGCTAGGGATACATAGTTGAATATATAGTACAAGATGCCTTGGAGTGTCAGATAGTTTCATATAAA
++
+CCCFFFFFHGHHHJJJIIIJIJIJJIIIJIIIJJJJIHIIJJJJJIIIJJJFGIDGIIEIGIIIF>DFHGIIII@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1602:2205 1:N:0::ACAGTGA
+ATTGATTTCATGTAATCTTTGATGTACTTCTTGTAGGCTTCTTTTGTGAAACTTGTTTCCTGCAGGTGATGGTTC
++
+BCCFFFFFHGGHHJJJIJJJJHJJJCHGJIFIIFHIIJJJIJIIJJEGGIIGIJGBGHIIIGHDFC8BBCGD at GH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1687:2216 1:N:0::TGACCAA
+TCCCTGCCTGCCATTACGGTCATCTGTGTGCCAGCAAAACTGGGAACCTCAGAACCATCTGGATTGCTGGGGCCC
++
+CC at FFFFFHHHHHJIJJJIIIDHIIJJJJJ?FHIIJIJJJJJJJJIJJJJJJIJJFIIJJIIJBHHIJFF??BF@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1577:2220 1:N:0::CGATGTA
+GGGTTGGCCCGTGTTTAGGAGACTCGAAAAATGTTTCACAGGAATCTTTGGAGACAAAAGAAGAAAAACCAGAAG
++
+CCCFFFFFHHGFFFFHFGG at C;GECG=GHGECGDF>GEHIJBGEGBFHHIJ=@7;C>GAEH9>@<BDDDCDB5A5
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1520:2227 1:N:0::CGATGTA
+TAATTGGTGGCTGCTTTTAGGCCTACTATTGGTGTTAAATTTTTTACTCTCTCTACAAGGTTTTTTCCTAGTGTC
++
+@@@FFFFDHHFFGGBHIIIJJIJJFHICIGGJEGHIJJIIJIIIIIIIJJJJIHIIGEHI at FHHIEEFF>;;BDC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1738:2228 1:N:0::CGATGTA
+GAAAGGCCCACATATGGAGAAGTAAAGGATGGTGCTTTGGATGTAAAAAGACAACACAAGTGCCCAGGCCCCACA
++
+@@@DFFBDDFHHHIJJGGIHGIHIHJIJFGFGEFEEHIJIGBGGGIJGBADHGGHGIGAC=CDEGEGH?=EBFCB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1558:2230 1:N:0::CGATGTA
+GATTGGGATTTATCGATTACAGAAGCCGGCGTAAAGAGTGTTTTAGATCACCCCCTCACGAAGAAAAACAACAAA
++
+@;?DDEF?FFF?FEG?FGEGD?F3A?FA<DAF6B;BFG88=BEEAHGHEA at DAEDD###################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1616:2235 1:N:0::TGACCAA
+CACACTGAATCTATTGCCAACATCCAGATTGGTAACTATACATATTTAGATATAGCTGGTTAGAAAAATGCCACT
++
+?@@DDEFFHGDFAHGIHGIGDCHHEHIIEHECECGHIIIFGIIIIIGIIHIIIGIDHIIHHIIGGGHGCHG=@F:
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1718:2237 1:N:0::TGACCAA
+TGATTCGGTTAGAGCCACAGCTGAAACAACTACAAACAAAATATGATGAACTTAAAGAGAGAAAGTCTTCCCTTA
++
+<@@B?BDD1 at CAC++<EG at EEG>AFHEHIBHGD<@FHCIDG>GC<F4*/9?*9C=BFECHGGEHIC4==>=?;=?
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1598:2243 1:N:0::CGATGTA
+TAATGATGACTTGTTGGTTGATTGTAGATATTGGGCTGTTAATTGTCAGTTCAGTGTTTTAATCTGACGCAGGCT
++
+ at CCFFFADFHHHFIIIIC@@EEHFCHDEHDEHHGGHIGIEHGHIIIIIHFGHC@?DGB>CDF<BC at FF6AGIEFH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1503:2246 1:N:0::GCCAATA
+CTGTTCTTAGGTAGCTCGTCTGGTTTCGGGGGTCTTAGCTTTGGCTCTCCTTGCAAAGTTACTTCTAGTTAATTC
++
+ at CCFFDFFHHFFHIJJIIJE9FGH>F at FHHIJ;@FHIIBHICCHEEBBDDEFCCC>C35>CCDDACCD3>@>>C;
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1648:2247 1:N:0::GCCAATA
+TGTGTTCTGATAAAGTTATACATAAATTGAAATTTGATATATCAATTATACCATACTAAGCAAACACTGCATTTA
++
+???D=A:BDADB?9C4<,3<:<F43CEE?4FACEEFBB<9:??E*CDFD<:???B;B?B<;*??(?@=C3BDDEE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1765:2117 1:N:0::CGATGTA
+GACCNCCGAAACCAGACGAGCTACCTAAGAACAGCTAAAAGAGCACACCCGTCTATGTAGCAAAATAGTGGGAAG
++
+@@@D#2=BFFHAFH?EGEHG<)?FHIIGFDFDEEEHGGIIG?BCD;@DFHHGBHF=;?>?>@CC###########
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1983:2124 1:N:0::TGACCAA
+GTTGTCACCATCTCTCCTTTACTATAGTCTGTTAAGAGTTGACAGGCCCACCTATGGTCCCCAGAATCTCAACAT
++
+?@@ADDADBCDHDEGGHEHEEGG@@HHECDHHIIEEGIBCGG<CH;)00:?@FBBHFBBC;BB at FCCFDGHIIIG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1851:2128 1:N:0::CGATGTA
+TTCCTCATCTTCAAACACTCCAAATGGTTTCATGGCGTCAATTAATTTCTGTGTGTAAATATGATCAATTTCTTT
++
+CC at FFFFFHHHHHJJJIJJJJJJJJJIGIJIJJJJJJJJGGIJJIJJJJJJGHHIIIJIJJIJJJHH;@GHIIGE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1954:2130 1:N:0::GCCAATA
+CTTTGTGTTTGATTTGCAGCTATTGACTTTGTAATTTAGGAAAAATGTATAATAAGATAAAATCTATTAAATTTT
++
+ at CCFFDFEHHHHHIJJJJIJJIJJJJJJJJJHIIJJJJJJIHIIJJJGIJGIJJJJIJJJIJJJIJJJIIGIEHI
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1777:2133 1:N:0::TGACCAA
+TTTTTGGCTTTATATTTTTCTATCTTCTATACTTCTCCAATACTTGTCTTAGCTTGTTTTTCATTTTCTATCTGA
++
+?@@DDDFBHHDHHIJIJIJJJEGGIIIJIJIFIGGGGGIIIGIIJJGIIICCHEGHHGEGIEIJGIJJJGJFGIG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1933:2134 1:N:0::GCCAATA
+AGGTAGAGGCGACAAACCTACCGAGCCTGGGGATAGCTGGTTGTCCAAGATAGAATCTTAGTTAAACTTTAAATT
++
+@@<DDDBDFFFDHBHGB?GHHG60FHIGG?(7B:=;@FHI7 at C8?E=>A at 7?3 at CCC@:@@;>(--5>3;@C>AC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1908:2135 1:N:0::ACAGTGA
+GAAGGATGGAAGATGAACAGCTTCCCAGGACAGTCTGCTGCCTTTAGTGCTTCCATGCCAGCCTGGATGACAGGA
++
+;?@DDDDDFHHHG@?GG at DGIIICDDEHE?=FHH9?FBFE>?DBDHIGDHGHEIGEHIGHCCCHIIGEEADAHF>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1992:2141 1:N:0::TGACCAA
+GCAAGGGGATTTAGAGGGTTCTGTGGGCAAATTTAAAGTTGAACTAAGATTCTATCTTGGACAACCAGCTATCAC
++
+@@@DDFFFAHHHFIEHIIGHHHGIGCHHIJFIIJJIIJIJJGHIJICFHJGIJJJJEGEIJJJIIGHEEHHHFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1807:2144 1:N:0::TGACCAA
+AACTTTTAAATAGAGTATTACCATCAAGAGTATAATTATGAAAAGCAACATTTCATAATTATACTCTTGATGGTA
++
+CCCFFFFFGHHHHJ at GHHIIJIIJGCGHIGGHIICHGGJGHBEHIGGJJEBCIJIJJHIJJGJJGIJCHIJGA@@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1939:2156 1:N:0::GCCAATA
+AATTTGTATTCAGTCTAAATTTGTTTTTCATGGTTTTTATGTGTGGTAGTACTAGTTCAGTGAAAATCACAACAA
++
+@@@FFFFDHHFDA<CGGBEEHHGEHHIICHEHICF>DFHIIDHGHCGH9*99EDBGHIGEHI<FAFHGHE:CA@;
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1952:2158 1:N:0::TGACCAA
+GAGTGCTTTCTTAATTGGTGGCTGCTTTTAGGCCTACTATGGGTGTTAAATTTTTTACTCTCTCTACAAGGTTTT
++
+@@<DADDDH<AD>@BFFGA;C;B@=GHI at F?G>DGAFHHHIIG3D6DH at DDAF@DH?HG at F3=@AEC;A?==)7?
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1788:2159 1:N:0::GCCAATA
+TGTGGGTATAATACTAAGTTGAGATGATAAGATCGGAAGAGCACACGTCTGAACTCCAGTAACGCCAATATCTCA
++
+@@?DDDABFF<FA:,2<+3AEHE9C3CHAE<D4?C18DFFFID3B@?9?FFE4C<8BF7=..@('>',;;.?BC#
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1861:2165 1:N:0::CGATGTA
+CACACGCTCTAGTGGTGGTGCTGTCTGAACTGGAGCCCACAGTAACCGCATGTGCCGGTTTTTGTTTCTTTGTCC
++
+CCCFFFFFHHFHHJJHIJIGIJJIJJJJIJJIIJJJJJIJGIIIJJJJJIJJHJJJJGBBDDDD>CDDDDDDDD@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1988:2168 1:N:0::CGATGTA
+AGGGCAGGAATGAGAAATACTGCTTTGATGCTTTATCTTTTTACCATATTAGTCATGATTTAAATTGATTTTTAA
++
+CCCFFFFFHHHHHJJJJJJJJJJJIJJIJIJJJJIJJIJJJJJIIJJGHIGHHIJJIGIIIJJJJJIGGHIJIJI
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1803:2170 1:N:0::ACAGTGA
+TCGGGCCCTGTTCAACTAAGCACTCTACTCTCAGTTTACTGCTAAACCCCGATCAACCTCACCACCTCTTGCTCA
++
+CCCFFFFFGGHHGJIJIIIIIJJJJJJJJJJJIJGIIJJJJJJJJJJJJIIGGIJGJIIHHHGHFFFFECCEEED
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1962:2173 1:N:0::TGACCAA
+TTATAGTAAGTATCTATTAAAAATGTGTGTTCTCAAGTCCAGCAGAACTTAAAAGTAAATAAAAATAAAAATGAG
++
+<@8B?BB=4=D<?@FB4C>??<CF<F<E3ABCAHAH<FF**:9?F>*):??409?GGE990*89*=BFC:=F###
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1935:2181 1:N:0::TGACCAA
+TGTGATGATTATTGACAATTGGTTCATTTTTATATGTGTTGACCGTTATGCCTATAAATAAGCCTCCTATAGACA
++
+CC at FDFFFHHGHHJGIGJIIJJIGGEGIJJJGIIIJIIJGICGIIHIJJHIGGGEIHIJIEIGBFHHIJGIIJIG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1885:2183 1:N:0::GCCAATA
+TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTACTTGAAAAAATTTTTTTATA
++
+?@@FFFFDHHHHHJGBDA?BB7BBDDD0 at BD@@BBDDDDDB6BDDDDDBD@########################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1905:2186 1:N:0::GCCAATA
+ACGTGCGTGCAGAGCAGCAGGAAGTGAAGACACGTGCATTCCTGCCTTCCGTGAAGGAGTGCCCCGTTCAAGAGG
++
+<@@DDDDDF?=?:AB3EFEE=GFFI<FC*11:???)?;BFC*B<88?DAF<CEFFFAAEEEFFF(55(;6@@###
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1989:2202 1:N:0::CGATGTA
+TAACTTTGTGTTTGATTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
++
+@@@DFFFFFFFFHGFHHIJJIIII<FHIHFDDDDDDDDDDDDDDDDDBDDDBDDBDDDDDDDDDDDDDD at DDDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1757:2203 1:N:0::TGACCAA
+AGTTGTGGTCTTTATGAAAAGTTGATTTTATGTTACCAGGAACTTTAGCAACTGTATACTCTTTGACCCAGAAAT
++
+@@@DDBDDHDFBH<<AFAHIA+AH at HHEEHIA9FBD4??)?FCGIIH>?*???BDB<DHI3B at F:==@FHI9)7@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1896:2204 1:N:0::CGATGTA
+AGGTGGCAGATATTAGGGATAATATTCATTTAGCCTTCTGAGCTTTCTGGGCAGACTTGGTGACCTTGCCAGCTC
++
+@@CDDFFFHHFDHIIJIJJGHHEHIJIIJJIIIIJJJIJDIGEGIJGIIEIIIIHIIIJJGIJJIJIIJBAAAEE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1965:2207 1:N:0::CGATGTA
+ATTGGGCTGTTAATTGTCAGTTCAGTGTTTTAATCTGACGCAGGCTTATGCGGAGGAGAATGTTTTCATGTTACT
++
+CCCFFFFFHHHHHGJIJIHBHHEGIFHIIIJDEHHIIIHGGIIGGJIGIIHIDBHIBEEEHHFFFFB>DEEED at C
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1785:2217 1:N:0::ACAGTGA
+CTTGCTACCATATACATATAATATTCAATTATAGCTGCTTTATAAAGCCAAATTACAATATTAACTTGAAACATT
++
+CCCFFFFFHHHHHIJJJIIGJJJJJJIJIJJJJIJJJJJJJJIIJ at HIJJGHIJJIJJIJJIJGIIJIIIEHEII
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1880:2219 1:N:0::CGATGTA
+CGGCGGGGGAGGTGGGGAACTTTGCTCCTGCCTACTCACTGCTCATTGCGGCCTACCTGGCCTCCCAGCTGCCTC
++
+???D?@DDA65<;>/;;=??AA#####################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1872:2229 1:N:0::GCCAATA
+CGGACTGACCCATGTTCAACTGCTGTTCACATGGAACCCTTCTCCACTTCGGACTTCAAAGTTCTCGTTTGAATA
++
+ at CCDDDDAAHDDHIEFEHIII9CEHIIIBEBFGABBHGHIGHIIIIDDFHIFGIGIHGHIG8@GGHG;;AHCBED
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1977:2232 1:N:0::ACAGTGA
+ACAGATGCCTTAAACTTAGTATGCCCAAAACTTATCGGTTCCCCTAGCTCAGTGAATGCCTGTATCCTTCACCAA
++
+CCCFFFDFHHHHHJJIIJJHHIJJIJIGIJIIJJGEIIFGIIIIJIJJIJJIDHHGGIIIJIFHIIJJJGHGGI=
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1911:2235 1:N:0::ACAGTGA
+TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTCTCGTATCCACTCTTTTTT
++
+ at C@F=AADDAHDDGIHEC;BDBBBDBB at BBDD63938BBDD@B07:8 at BB#########################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1814:2236 1:N:0::GCCAATA
+ATCTCATGGACATTAAAAGGATAATAAAGGAACACTATAAACAACTCTATGCCCACAAATTTGATAGCCTAGATA
++
+CCCFFFFFHHHGHJJJJJJJIJJJJJJJJJJJJJJJJJJJJJJJJJIJJJIJIJJIJJJJJJJJIJIIGIJJIGH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1785:2245 1:N:0::TGACCAA
+TGGGTGTTAAATTTTTTACTCTCTCTACAAGGTTTTTTCCTAGTGTCCAAAGAGCTGTTCCTATTTGGACTAACA
++
+@<;D4@=;FDF,AE>>FFHFFCAEFFFEFFEEF<96)@DB4?BDD*98B8B)@3CA;C at 4@)).=3?;A=@@DB:
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1754:2247 1:N:0::CGATGTA
+TTTTGAGGAAGTCTTTAAGTGCCATAATCAACTGCCATTTCAAAGAATATAGATGGTTTTGAAAAGTTCATGCTG
++
+CCCFFFFFHHHFHIJJIJJHIGIJJJJIJJJIJJIJJJJJJIJJGIJJJJJJJJJJHIJJJJJI=HDHHIJIIJJ
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1939:2247 1:N:0::CGATGTA
+CCAAGGCCACCACACACCACCTGTCCAAAAAGGCCTTCGATACGGGATAATCCTATTTATTACCTCAGAAGTTTT
++
+CCCFFFFFHHHHHJJJJGHJJIIIJGIIIJJHIGIJJJJIIIGJJJGJGFCGIJJIBHHGHHHGFFFFECC>@>A
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2216:2123 1:N:0::ACAGTGA
+GAACTCAGGAGGTGGAGGTTGCAGTGAGCCAAGATGGTACCATTGCACTCCAGCTTGGGTGACAGAGCGAGACTC
++
+CCCFFFFFHFDFFIGGIJGHIIHIEHFGGIIIGIGIJBGBGDHIJGIIJJGHGIHIIIEDE=DG>EHHHFFCCAC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2139:2128 1:N:0::CGATGTA
+ATTGGTGCGGGGGCTTTGTATGATTATGGGCGTTGATTAGTAGTAGTTACTGGTTGAACATTGTTTGTTGGTGTA
++
+@@CDFDDEHGGHGGGIJIHIEEDHICEHHGEF<BCCEDDCACDDEECADDDDCACDC:ACDDD>C<><<AA<@##
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2086:2130 1:N:0::CGATGTA
+CCATTTTAGGAATTTTAGAACAGACAGCCTGCCAGTATTTTTTAAAATAATTGGGATTATTTTCTCTCTCCTGTG
++
+@@@FFFFFHHGHHJIJJIJJJJJJJJGJJJJJJJJGGIIJJJIJJEIIFHIIJDGGCFHIIIJEHGGIHDHHHHH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2222:2148 1:N:0::ACAGTGA
+GAGGCGGAAGGATCACTTGAGCCCAGGAGTTCAAGACCAGCCTGGGCAACGTAGTGAGACGCTGTCTCTAACAAA
++
+@@@FFFFFGHHDHGEIJIIDGJJJIJG?H?FHIJJIEIGIFIJG?HGF=CFBBB5 at CC>>?9>:2>@CDECDDDB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2154:2148 1:N:0::ACAGTGA
+GGTAACTTTGTGTTTGATACAATTTTATTACAGGATTTGGAATATGAATAAATGGGTTCAAGTGCAGGACTTACC
++
+CC at FFFFFHHHHHJJJJJIJJIJJJJJIJJJJJJJJJJJJJJIGIJJJIJIIJJJJDGHIIIFHIJJJIGIJIIJ
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2185:2150 1:N:0::GCCAATA
+ATAATCCCCTTGTAAATTTAACTGTTAGTCCAAAGAGGAACAGCTCTTTGGACACTAGGAAAAAACCTTGTAGAG
++
+CCCFFFFFHGHHHIJJIJJJJIJIIJJJIIJJJJIIJIGIIGIIJIJJIIJJIGIHIHGGGGGGIGHFFHHHFHD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2024:2150 1:N:0::ACAGTGA
+GATCTAAAACATACAGTAAATTATATGTAACATATATATAATTGTATATGTATAAAATTCATCAGTTGATGATAA
++
+C@@FFFFFHHHDHIJJGGHGGJIJGIJHIJGGHIIJIJJJIJJIGHIJJJIFGHIIGIGJEGIIBGEDGGGGIIG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2064:2154 1:N:0::ACAGTGA
+CGCAGGGGAGCGCAGCTACTCGTATACCCTTGACCGAAGACCGGTCCTCCTCTATCGGGGATGGTCGTCCTCTTC
++
+ at CCFFFFFHH>FAGGGIIIIIIIIIGHAGIIBFFHIIIGIIIGEBDDEEDDDCDDDDDDDBDDD>CBDD at BA>A>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2103:2159 1:N:0::CGATGTA
+GTGACCACCATACCGGGTTTGAGAACACCAGTCTCCACTCGGCCAACAGGAACAGTACCAATACCACCAATTTTG
++
+ at CCFFFFFHHHDHIJJGEGCEFGIIJJJJIJHIJJJJIJIHIIGIBHGJIGIGHHEEEE>CCFFFFEDDACCCCD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2081:2166 1:N:0::TGACCAA
+AGGTTAGTGCATACTTCTCCCTTCCACATTTATACTAACCTCAGCTCCGTGGGCTACGAAGCTCGTTCTTCAAAT
++
+@@CBDEFDHAFHHJIIJJIJIIJIIIJJEHIJJJJJIJIIJIIJJJJJJHIHIIIIHJIIJJ at DHBEHFFD@3;;
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2046:2171 1:N:0::ACAGTGA
+GGCAAATCGGTCGTCCGACCTGGGTATAGGGGCGAAAGACTAATCGAACCATCTAGTAGCTGGTTCCCTCCGCAG
++
+@@@DDDDDFFCFFFGI<GGEFFBF):BFA at CEFIFFDDDBDCC9@?=3;>?>>AABA>ABB<?9A>AA>?#####
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2174:2171 1:N:0::CGATGTA
+TTGACTGTTCTCAATGAGTATTTTAATCTTGCTCTTGTGCCTTTAGCTTCCTTACAATCTTCTTTCATCTTCTTC
++
+CCCFFFFFHHGGHJIJIJHHIJJJIIJJJJJJJJJJJEHIJIJJJJJJJJJIIIGIGIFJJIIJJJIIIIJGH:=
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2024:2176 1:N:0::ACAGTGA
+GGGGGATCTACTAGTTATCTTCTTGTTAAAAAAATTCTGGCATATACTGTCTGTTCAATATTATAGTACTTTGAA
++
+CCCFFFFFHHHHHIIIIIJJJIJJJJJJJJJIGGIGJJJJJIJJJIJGJHIJJHJJHIJIIIJJEHHIHHHGGFH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2242:2179 1:N:0::CGATGTA
+GGGAAGATTTATAGGTAGAGGCGACAAACCTACCGAGCCTGGTGATAGCTGGTTGTCCAAGATAGAATCTTAGTT
++
+CCCFFFFFHHHGHJJDGIIIIIJJJJJJIJJIJJJJJJJIJIGFGIJJJIIH?EEDFFFFEECEDACCCDDEDC@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2143:2180 1:N:0::ACAGTGA
+CCCTCAAACACAAAGTTAAAAAATGTAAGTCTCCAAAAGACCTACAAAGCTACATAAAAATTTATAGTTTTGGGT
++
+CCCFFFFFHHHHHJIGIJJIJJJJJFIJJJJIJJJIJGIGGGIJJJJJJIJJJJJJJJJJJIJIJJJCGGGHHH;
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2210:2187 1:N:0::CGATGTA
+ATGGGTGTTAAATTTTTTACTCTCTCTACAAGGTTTTTTCCTAGTGTCCAAAGAGCTGTTCCTCTTTGGACTAAC
++
+CCCFFDFFHHHFHJJJJJJJIJJJJJJJJJJJJFHIFIJJIJJJ9BFHIJIJJJJIGIEHJJIHHHGGHEEFFEC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2117:2202 1:N:0::CGATGTA
+GAGGGTTCGCCAGCCTTGTCTTGAGCCATCAGTGTGGCAGGGGAGCACAGGGGGGTAGGTGGAGACACTGCGGAG
++
+CCCFFFFFHGHHHIIIIIHIJJJJJJJJJJIJIJIIIIGJIJJ6AAHG@>@EF'5050?(3<2<>8<<:3>@99@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2097:2206 1:N:0::ACAGTGA
+AGTGTTTGAGTCAAGTTAAGCCGCAGGCTCCACTCCTGGTGGTGCCCTTCCGTCAATTCCTTTAAGTTTCAGCTT
++
+;?=D=ABDDBAFBHGIEGGA@@G6C?A at BGEGEGEGEEH?DD7B>3=BF at 35.=;;@)=?E:;?@@);@D>@@@>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2196:2206 1:N:0::TGACCAA
+GTAGTTAAGTATGCAGAAAAACAAACAAGACGTTTTGATGAAGGAAAATTAAAAGCTGGCCAAAGTGTAATTGGT
++
+?@@D=BBDFADA:BDFFIEII1CGFFEIFFIF?FGIIBGECA>F?BBFFEEFICGCFFFEIE;@ECE@>=AE###
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2154:2207 1:N:0::CGATGTA
+CCTGATGCTTACTACTATTTGAAGGATGATTGGGACCAGGTGATGGACTTCTCTGGCTACTTGAGCGCTGAAGAC
++
+??<DADDBBBF3?D4E<FEFCHDI9@>E<C?@+8CBEFDFD>99BBGAEF?BFDB::9DDFGIII=FE at BF37=7
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2138:2213 1:N:0::ACAGTGA
+AGAGGGTAAGAGATGGGTAGAAGAGTATGCCTCTGAAAATTTTATTAGTTTATTCTTGTGGAGAATACCAAGAAA
++
+@@@DD8+A?FF<?<B at 9CB@ECBEF+ACB9?BGG>GEIE?<<FFG<B??D at DF49?@<9?;<CHE:@@)=@C(=C
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2089:2219 1:N:0::TGACCAA
+CCATGCCTTACTTTATCAAATGTATAAGAAGTAAATATGAATCTTATATGACAAAATGTTTCATTCATTATAACA
++
+?<<+A;;4D:C>DB:C<EEED934<,<::FC<C+?E at BFA*:?<D449CC?DD4BBA:0BDDDCA:DDDA@=B:8
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2026:2222 1:N:0::GCCAATA
+CAAAAGACTATTAGGGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCTCTCAGGGAGGCTAGGAGGCGGGAG
++
+CCCFFFFFHHHHHJJJJGJJJJJIJIJFIIIJJJJJHHHHFFCDEFEDEDEEDDDDDBDDDCDDDDDDDDDDD@@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2184:2225 1:N:0::ACAGTGA
+TTAAGGGGTCACTGCAAAGTAGGAATGGACCTTATTGTTATCAACAAATATTTGAGTGTTTCATTATATGTAGTG
++
+@@CFFFFFAFHHHJIEIIJFFHGIIJEIBHIGIJJJJHIIIJIEIGJJJJJIJIJJIGECHGGIIJJIGIGIJDC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2239:2229 1:N:0::ACAGTGA
+TAATCACTGCGCCCGCTCATAAGGGGATGGCCATGGCTAGGTTTATAGATAGTTGGGTGGTTGGTGTAAATGAGT
++
+CCCFFFFFHHHGHJJJJJJIJIJJIJIJIJIJJJJJJJJJJ=FHHIHHFHGGHIJJHAED=BDD;==CDDFDCD#
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2076:2229 1:N:0::GCCAATA
+TTAGGTAGTGGGTGTTGAGCTTGAACGCTTTCTTAATTGGTGGCTGCTTTTAGGCCTACTATGGGTGTTAAATTT
++
+@@@DDBDDHBFDF<CFGGDGH>BGGBF<18?C<BF at DGI<*8D;FG<@C8<4)8@@C7=E77C=;)'5?C;?7;6
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2214:2229 1:N:0::TGACCAA
+AGTAGTGGACAATTTGCAAACACTAACTCTGCTACCCAAGTGCGGTTATTTCTACCTTGTAATCGGAAAGTGCAA
++
+CCBFFFFFGHHHHJJJJJJIGIIJJJJJJJJJJJJJJJJJGIIJJGGIJJJJJJJJJJIHJIIIJJEHHHEDFF@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2053:2235 1:N:0::ACAGTGA
+AGGACCCGGAAGATGGTGAACTATGCCTGGGCAGGGCGAAGCCAGAGGAAACTCTGGTGGAGGTCCGTAGCGGTC
++
+@@@DBDFFFFFHHEHGABEHIIIGIIHHHGGFHIGIBHGGE at GIIGHGFFDCDDCEEECBBBC;9@@BBC<BBBB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2112:2236 1:N:0::GCCAATA
+CTTTGTGTTTGAGGGGATGTAGAGAAAAGGGAATCCCTGCACACTTTTGGTGGGAATGCAAATTTGTGCAGTCAT
++
+@@CDBABDD>D8CCFG>EHDFGFG4?BDHII?:?00?FFG at EGCGEEIEHCDEEEEGFHEECEEBC?DFDE>>;A
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2011:2239 1:N:0::GCCAATA
+CTTTGTGTTTGAGTCTCGTTCGTTATCGGAATTAACCAGACAAATCGCTCCACCAACTAAGAACGGCCATGCACC
++
+8?<DBABDFB:C?<AEDGEAAE8?EC at FC)CFGEFFFFIBFAGEF<FC;F<>AFFFIFIEE:?)5=>?BAB####
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2038:2248 1:N:0::CGATGTA
+ACTGTTTGCATTAATAAATTAAAGCTCCATAGGGTCTTCTCGTCTTGCTGTGTCATGCCCGCCTCTTCACGGGCA
++
+CCCDDFFFHGHHHJIFIGIIHIIJIHJIGGEGGIGGIIJJIGGHIIJJIIHIHIHGHIIGGGIIIC at DCGCHFE>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2265:2123 1:N:0::ACAGTGA
+CACGCGCTTCAGGGCCCTGTTCAACTAAGCACTCTACTCTCAGTTTACTGCTAAATCCACCTTCGACCCTTAAGT
++
+CCCFFFDFHHHHHJJJJIGGIJJHHHIIFGIJJJJJJIJJIHGFHIIHIJJJIJIJIJJIIIFHGHFFDEDCCCC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2303:2133 1:N:0::ACAGTGA
+TCAGTGCTCTATCACCTGCATGGGGAGGGATGGAGCAGGGCAGTAACTTCAGTCTTACACTAGCTATAGCAAACA
++
+@@@FBDDFGHHHHIEEAGGDHEGBGEEDHE;DDGGIJIIJFAFCGIGEHIFGC@=EHGDHIHHGDHDECDBBD at A
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2468:2138 1:N:0::ACAGTGA
+ATGATCAGGCTTCCTAGATAAACAGCTTGAGGGGTTTTGCTTTTTAAAAGCCATTTATTGATCTGTTGTCAGTCT
++
+ at CCFFFFFHHHHHJJIJFGIJJGIJJJJJIJJJJDHIJIIIIJJIEIGID8EHGIIIJJIIIGHIHIIHFCHEHF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2326:2139 1:N:0::ACAGTGA
+AATTAAGGAGTTTTGTAACTGAATAGTGGAACTCAGAAAGACATCCTATTCAGAAGGATCTCTCATGATAATAGT
++
+ at C@FFFFFHHHHHJJJJJJJJIJJJJHHIJJJIJ<GGGIJJJJJJJIGIJJJIIIIJIJIJIIJIJIICIGIJJI
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2351:2140 1:N:0::GCCAATA
+CTGTTTCTAGTCAAACAAGCTGAAAATTTAAGCAATTGTCCCTTTTCGGGCATTTCTGGTGAAAGAAGCCCCAAT
++
+ at CCFFFFFHHHHGJJJJJGIJFIJJFHIIJGIIGHGIIHIJJIIHHIIBHHIDIIJJIHIGHIEE9DHHCCHFDB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2386:2142 1:N:0::ACAGTGA
+ATCCCAGCACTTTGGGAGGGGGAAGCGGCCAGATCACTTGAGGTCAAGAGTTTGAGACCAGCCTGGCCAACATGG
++
+ at B@FFEFFHDHGHIIIJFIIIIIGE9:FEHGGGHIIHGJF=>E?@D;CBA;;@;>?;>@C9985<A?B3<?B9:3
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2427:2146 1:N:0::GCCAATA
+GCTCTCCCATCCATTGGAAACTAGCAAAATGCATTCTGGATCAATAATACAAACCTTCTAACATTAGCAAAGATT
++
+CCCFFFFFGHHHGJIJJJJJJJJJJJJJJIIJJJJJJJJJJJJJIIJJJJJJJJGIIJJIIIIGGIDHJIJHGIJ
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2451:2154 1:N:0::TGACCAA
+ATGGTGGGTGTTGAGCTTGAACGCTTTCTTAATTGGTGGCTGCTTTTAGGCCTACTATGGGTGTTAAATTTTTTA
++
+;@@DADDD1C at D?FGG<CFBEFEG=EGHFHDGIICFGHCEH?EIIIID at F8CFHFF>EGGGEE<?CD########
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2292:2154 1:N:0::GCCAATA
+GTTGTCTTATCTTTGTAAATATGATCTCTGGCTGTGGACAAGGCCCTGTCCAATGCTGTGATGAGCTTTCTATGA
++
+CCCFFFFFHHGHHJJGGHIHGIJJJJJIJJJJJJIFJJGGGGIJGIJJJJJIIJJIJJHJJIJIJEHIJJJJJJI
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2253:2161 1:N:0::ACAGTGA
+TAATACTTTTAACATGCCAATTTTTATGCCATACATAAAAATGTATTGTGTTGTTTGTTTCCATTAAAAGTTACT
++
+@<<;DDADFDDD<<E<3:<<FFH>@GH at BH??AEGHGCAFBBG:CBGIDHBFB9?9B09?DGAHEDH=@C8 at GFA
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2479:2162 1:N:0::CGATGTA
+AGCTGAGGAAAGCTTCAGGGAAGAGATGACATTTAAGCTGGATTACAAAAAATAGGTTTTTTGTTTAAAATAAAA
++
+CC at FFFFFHGHGGIEIGIJIGGIII@HHGIGIJJIIJIJGJFHGHJJIIDHGHIJJFDHGIHHHFEEFFBC at CCC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2353:2165 1:N:0::CGATGTA
+AAAAGAATAAAATACAGTGTTGGATCCCTTTCTCCTGTTTCTGCAAGTGTCCTGAAAAAGACTGAACAAAAGGAA
++
+@@@DDDDBHHD?FIII><:CFE?HBEGGEGHIIGG9?1?DHHHIFHG?D?BGG at E@?4BGFGGDGEHH at FD7@CC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2329:2169 1:N:0::GCCAATA
+GGGGCCACAGTAATTACAAACTTACTATCCGCCATCCCATACATTGGGACAGACCTAGTTCAATGAATCTGAGGA
++
+?@@DBDDDFFADDHGHIIDHAHGIE<CBHGCDHGEHIIIGIIIEBEGGGC=BAA at EHGGEH@DCGHIHEHAC??C
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2434:2170 1:N:0::GCCAATA
+TGAAGGTTTGGGAAGCGGTTGTTTCTGAAATCTTCCAATAATCTACTGCGGCCAGAAGGCATAATATCAGACCTA
++
+CCCFFFDEHHHHHJIIIJHGIHIJJJIJJJJJJJJJIJIJGIJJJJJJJJIIIJJHHFHFFFFFDDEFEEEDDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2308:2177 1:N:0::GCCAATA
+TTGAGCTTGAACGCTTTCTTAATTGGTGGCTGCTTTTAGGCCTACTATGGGTGTTAAATTTTTTACTCTCTCTAC
++
+CCCBDEFFHGHHHJIJJJJJJJJGJJFGIGIIIJJJJIGGGDHIJJGIIJIDFHGEEGIIIJFHEAEEFEEFFF>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2493:2177 1:N:0::GTCAATA
+CTGTGAGGAGTTCAGTTATATGTTTGGGATTTTTTAGGTAGTGGGTGTTGAGCTTGAACGCTTTCTTAATTGGTG
++
+CCCFFFFFHHFFHGIAFGJIGJHGIJIJIJJIJJJIJIFEGDGIJDFHIJEIJBGIIGIIHFDHHGFFDCCFACD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2356:2185 1:N:0::GCCAATA
+TATTATGCTTGGTTATAATTTTTCATCTTTCCCTTGCGGTACTATATCTATTGCGCCAGGTTTCAATTTCTATCG
++
+@@@FDFFDFFFFHG at GGIHGJJIGCGHBHI>HGGGGGGFFF at FDHA<DEB9FEGIIGEEHFHIFHIIGHEFG>>?
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2404:2187 1:N:0::CGATGTA
+GTGGGTGGGGGTCTCGCTATGTTGTCCAGGCTGGTATTGAACCCTGGCTAAGGTGATCCTCCCGCCTCAGCCTCC
++
+CBCFFFFFHHHFHIJHIJJJIJJJJJJJJJJJJJFGHIJJJJIJJHHHHHFFF?CCEDECEDDDDDDDDDCACCB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2280:2193 1:N:0::TGACCAA
+TGGGTATAAGTCTTTCACTTCCTGGGTTAAATTTATTTTTAGGTATTTTTTTTTCTTTTAGATGCTGTTATAAAT
++
+ at CCFBDFFGHHHHJJJJJJJJJJJJJGHIIJJJJGJJJJJJJJDGIJJJJJJJJJJJJHHHGHHFFFFFFFEEED
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2343:2195 1:N:0::CGATGTA
+AGATCGGAAGAGCACACGTCTGAACTCCAGTCACCGATGTATCTCGTATGCCGTCTTCTGCTTGAAATTATATAG
++
+<??DDDDDDAA>8E;@B1A2C++*1?@E<BDDA?:DDADBDE#################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2440:2195 1:N:0::GCCAATA
+TATTTTTAAGATATGGCACTGATCACTCTATTCAACATAGTACTGAAAATCCTAGCCAGAGCAATCAGGCAAGAG
++
+@<?=BDDDHF???@FA9FDFD+AEAG4A9AAACFEH>E*:*1:CDBF94F>FHDH at BFG?D9BBHGHH at 9FE1=@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2377:2200 1:N:0::TGACCAA
+GTCTCCCTCACTTATGAAGCTTAGTTTGGCTGGATATGAAATTCTGGGTTGAAAATTCTTTTCTTTAAGAATGTT
++
+@@@FFFFFHHHHHIJIJBIGGJJJCB>HIIGJJCAFHHGHGIJIGIEIGFGHGIIFGIIGEGEGGGGGGEHIHJ#
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2356:2207 1:N:0::GCAAATA
+GAGTTGGGATCAAGTGGATTGAGGAGGCGGTGCTGTGTGACAATGTTTCGTTTGCCTCAGACAGGTATGTCTTCG
++
+;:=DDDDD?BFB3?CEC<?@<3<C38)))0?@@##########################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2312:2211 1:N:0::TGACCAA
+GGTGGTTGTGGTAAACTTTAATAGTGTAGGAAGCTGAATAATTTATGAAGGAGAGGGGTCAGGGTTGATTCGGGA
++
+@@=DDDDDDFB?CGGHHJJHGGHIHHIIIIIDHEIJEGIGIIIJIIJIIGIBGFEGIGHGGGEH=CHACFFBB?8
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2395:2222 1:N:0::ACAGTGA
+GTGTTTGATTCGGCTGATCTGGCTGGCTAGGCGGGGGTCCCCTTCCTCCCTCACCGCTCCATGTGCGTCCCTCCC
++
+@?@DFFFFFHGHHJJII>BGHJCEEHE>FCH9FGG'8&)8?A#################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2460:2222 1:N:0::CGATGTA
+AAGAGAAGCCCTTTTTTTAAAAACAAAAACAAAAAGAAAAAAACAAGAATTTTGGTATATATGTAGATATATATA
++
+@@CFDFFFGHHHHJJJGGHIJJJJIJJJJJJJJJJIJJJJJGIHHECDDCDBCCDCEEEDEFECCDEEDEDEDEC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2344:2226 1:N:0::ACAGTGA
+TGTTTGAGGCCATCATCATGAAGGACGTGCCCGACTGGAAGGTGGGGGAGTCTGTGTAGATCGGAAGAGCACACG
++
+@@CDDDDFHHHDHIDHHGIIIEIJIGIGHJJIJEHGHI>GIDCCG<GH?D=A at C@>;;>;@CD@(<?9ACCD###
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2432:2228 1:N:0::GCCAATA
+AAACAAAGGTCCAGAGATCTTAATTGCATCACACAGCTGGTAGGTAAGTAACAGCCTTCAGGCTCAGATGTATGC
++
+?@@DDFFFHFBHHEHGEBFG at HI<HE<F<FHGGIIIEHGG?BFGDFHHBFAHIHIIGGFGC>@6CFG at CA=CDHD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2315:2240 1:N:0::CGATGTA
+CCTACCGAGCCTGGTGATAGCTGGTTGTCCAAGATAGAATCTTAGTTCAACTTTAAATTTGCCCACAGAACCCTC
++
+CCCFFFFFHFHHGIGHIJJJJIJJ>FGHIJJJJJJIIJJJIIHJJHIJJIJIJJJGIJHGIGGIJIJJGHHCDFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2410:2243 1:N:0::CGATGTA
+AGGCCATAGTAGGCCTAAAAGCAGCCACCAATTAAGAAAGCGTTCAAGCTCAACACCCACTACCTAAAAAATCCC
++
+ at CCFFFFFGHFHHCIJIJJJIIJJJCHIJJIIJJIGGGHIHGHEGDHIIIIGGJIIIIJIGIJEHEEEEEDCE>;
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2441:2249 1:N:0::GCCAATA
+GACTCTTTGTAATCTACTCTGTCATCTGGTTTCCCCATCCTAGTAAATAACAACTAGGAAGTAGCCATGAAATGC
++
+CCCFFFFFHHHHHJJJJJIIJIJJJJJIJEHIJIIJJJIJJIJIIJJGJJJJJJJIJJJJJHGHIHIJJIJIIJB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2634:2122 1:N:0::CGATGTA
+CTAATTTTATGTGTTAACTTGACTGGGCTAAGGGATTTCCAGATAGCTGGTAAAACATTATTTCTGAGTGTGTTT
++
+ at CCFFFFDDBFFFHJHJEGHEHGHG?9=@EF<F9FHGEH<CDHFGGDFH>BB><D<FHDDHAG4=CGC)8 at A@@@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2566:2123 1:N:0::TGACCAA
+GATTGGGGTCTTTGCCACTCCTGCCCCATTCATTGGCAGCCTGATCAGCCAGCGAGTCCTCCGCACCATGGCCAA
++
+BCCFFFFFDHHHGJJJJJJJJJJJJJJJJJJJJJGIIJJJIGJGGIIJIIJJJI:HBHHEGHEFEDDEC at CDDC?
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2503:2125 1:N:0::GCCAATA
+CTTTGTGTTTGAGGGTTCAGCTGTCTCTTACTTTTAACCAGTGAAATTGACCTGCCCGTGAAGAGGCGGGCATGA
++
+CCCFFEFFHHHHHJJIJJJJJIJIJIIIJJJJJIJJIIJJJGIIIJIJJJJJJJJJIJGHCGGHJFGF@######
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2525:2134 1:N:0::TGACCAA
+AGACGATTCAAAACATAAAATATTTTTCTCTATATACACCTAGTGAATTATGTAGAGTCTTAAAATCCTAACTAA
++
+@@@FFF?DFHHHGGIJJJJJIIHEIJJEGIJGIIIIJIIJG9FGIJIJJHIIIGHDFBD>GFHCHCBDEHICHJI
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2683:2140 1:N:0::TGACCAA
+GGATTGGTCCAATTGGGTGTGAGGAGTTCAGTTATATGTTTGGGATTTTTTAGGTAGTGGGTGTTGAGCTTGAAC
++
+CCCFFFFFHHHHHJJJJFHHHHIIHHEGIGHGIJJJIJHIJJJJEHHJIJJGGI at GHDHII4AEHEBCEECCEDA
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2708:2142 1:N:0::ACAGTGA
+AGGCCTCCACTCCAAATAAATCACAGTCAAAATAAATGAAGAGCTCAAGATGACATCAGTCCCATTTGTCTTAAG
++
+@@@1BDDDHFBC?DDGIGIII4AEDHHHGGGGIIIH at G>FEBEGIGBG<DG9??FE at FAFICGGGFHA=F at FHG@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2541:2143 1:N:0::TGACCAA
+TGGGGAATGGAAAGAGGAGACAGATTTACATGATGGAGGCATGTAAAGAGGGAGATACAATCAGAAACACCAAAA
++
+ at CCFFDFFHHHHGIHIJJJJJJJJJJJJJJJJIHIHIJJJFIHGGGGIIIJJJJIIIJJJJJJIJHGHHHFFFFA
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2728:2143 1:N:0::ACAGTGA
+ATGAATGTAAAATGATTCTGTATTAATGTAAATAAGATTATCTATTGCAAAAAGATATTTCAAACCTAAAAAAAA
++
+B at CFFFFDFHGHHJJJJJJJJJJIJIJIHIIJJJIJJJJJDCHGJIIJIJHHJJJJJJJJIGJIIIHGGIIIIJF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2658:2145 1:N:0::TGACCAA
+TTCTGTTGGGTTCTGACCCAGTGACCTCATGACAGTTCCAAGTTCCTTTGTTGTGATGGTGCCATCGCCATCTTT
++
+;;?D;2ADFAF=B at G>FEG=G?FC@?FAD at FHGIIBD>CBBF<BGHGHGBFBF8BG at GG8B@@FGGB;@@C9=E=
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2584:2147 1:N:0::TGATCAA
+CTGGCCACAAGAAGCCTAACATTCATTTTAATTATGATATGAAATGCTCTATTGGTGTAGTTTCAACATATCCTT
++
+CCCFFFFFHHGFFIJIJJJJJJJJFIJJJIJJJIJJJJJJJFIIJJIJJIDGHIHGHGGIIJFIIIGIIGIJID@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2638:2148 1:N:0::TGACCAA
+GGTTTGTGTTTGACTCCTCTTCTTAATGCCTAAAGTCCTCAGTCCCTTGTTGAGCTACGCTGTCTTTAAGTAATC
++
+ at C@DFFDDHHGHHIIGIIGIIDHIGIICCFHIIIIFHCGGGEFHIGIGBGI at FHIEGEFGEHGH>:CEGHGGG>7
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2611:2155 1:N:0::GCCAATA
+CCACCAGGCTCGGTAGGTTTGTCGCCTCTACCTATAAATCTTCCCACTATTTTGCTACATAGACGGGTGTGCTCT
++
+CCCFFFFFHHHHHEHGI at HHCDFHIIGGDDEHGHIIJJIIGIIIIIIGIJJJJGIGIJIJFGIHHGE########
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2639:2169 1:N:0::GCCAATA
+TGGGTGGCTCAGTGGAATCCATTTTGTTAACACCGACAATTAGTTGTTTCACACCCAGTGTGTAAGCCAGAAGGG
++
+ at CCFFFFDHGHH?GIIJJJIIIJJJIJJJIJJJJIGIIJIJJJJIJJJJJJIJJJJJJGEHHHHGCDBDDCCCB:
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2738:2172 1:N:0::GCCAATA
+GAAGGTTAAGGTGACTGTAGCGATTTCTTTAAATAAGACAGCAATGAAGTTTGCCGCATTGACTCTTCCTGTCAC
++
+@@CFFDDDHHFDFHIHJFIHGGEEGGHIJJIJJJJIJIJJJIJJJJJJHGHGIGIJJGGIJIIJJGGCEFEHHGC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2518:2172 1:N:0::ACAGTGA
+TCTTGATTAATGAAAACATTCTTGGCAAATGCTTTCGCTCTGGTCCGTCTTGCGCCGGTCCAAGAATTTCACCTC
++
+CCCFFFFFHHHHHJJJJIJJJJJJJGJIJJJJJJIGGIJJJJJHIIIIJJIGIEBGIJBHFFFFCCEDEAACDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2720:2172 1:N:0::CGATGTA
+AATAACCAAATACACAACAGGCCAGGAAATAACATTTTCAGAAATGGCCTTCTAACTGGTTTTCCTAATTCTAAC
++
+?+8=B;DDFCB?DHGHEIIIH at 7?ACBACEDG<C**1?DGGGADFF<)*/*/*0B)))887=CD>D)7@;;D?##
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2542:2175 1:N:0::GCCAATA
+GATGGTGGCTGCTTTTAGGCCTACTATGGGTGTTAAATTTTTTACTCCCTCAAACACAAAGTTTTTTCCTAGTGT
++
+?<?ADADD+A:1CEEC:3:FEE3?ECFI<)?8CDDD?DDEID8 at CE>B2)=BB3 at ADDD9@@CDCDD;6@;@66>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2569:2179 1:N:0::TGACCAA
+CAAGGATGGTTTTGGGACTAGAGGCTCAGTGGTGGGTGAGATCCCTGCAGAACCCACCAACCAGAACGTGGTTTG
++
+@@@DFDDFHFHHHGGGGGGEF at GECGGGIIGGHGII)8?D>GCDHIIGGIFGGHIICEHHEDEF;;@>5=?;=?8
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2591:2180 1:N:0::ACAGTGA
+TCTTCTCATTGAACAAATTTTGCATTTTTGGTAAACTCACAGGTTTGGCTGCCAATAATAGAAGTGCCGCATTTC
++
+ at CCFFFFDDDFHHIIIIJJJIJJJJJJIIGI;CEGEHEEHIGIBFHCBGHIGI<FDFGHGFHHD4 at FI@@AEDFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2653:2183 1:N:0::CGATGTA
+AGGTTTGGCTAAGGTTGTCTGGTAGTAAGGTGGAGTGGGTTTGGGGCTAGGTTTAGCAAGGACTAACCCCTATAC
++
+@@@:BDFDDGHFHI:ABFHGHIHEEHFE@@?GGGIGGIIIEHIBBHEEGHG==F at GGEGGHCHHHFFFFDCDC>C
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2748:2190 1:N:0::CGATGTA
+TAGTGGGTGTTGAGCTTGAACGCTTTCTTAATTGGTGGCTGCTTTTAGGCCTACTATGGGTGTTAAATTTTTTAC
++
+@@CFDFF at FDDH?HHIEIJIJIIIIIJJJCIGHGGBGHGGHIHHIJGIIJIJ at HG@CGEG);=CHAEDFFDFBD>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2670:2192 1:N:0::GCCAATA
+AGAAATTTACTAGTGCAGCAACCATTTAAATTAAATGTTTGTTAACATAATAGTGATGGCATTTTCTCCTCCCCC
++
+CCCFFFFFFDHHH<EHGIIIICHEGHIGGGIIIIGIIFFHIIIGFGGIDHGHIHEHHIHGIEGICHIIIIIIIE@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2551:2197 1:N:0::CGATGTA
+GTGTGAGGAGTTCAGTTATATGTTTGGGATTTTTTAGGTAGTGGGTGTTGAGCTTGAACGCTTTCTTAATTGGTG
++
+BBCFDDFFHHFHHGIGIIJIIJHHHJIJHIJJJIIIIJ?FHFHIG?DFHHCGIGIIHGIIIFFHHGFFFFFFCA?
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2692:2200 1:N:0::ACAGTGA
+CTTTGTGTTTGAGCAATAACAGGTCTGTGATGCCCTTAGATGTCCGGGGCTGCACGCGCGCTACACTGACTGGCT
++
+CCCFFFFFHHGHHJJJIJIJJJJFGIIIJJIJIIJJIJJIFIJJJJIJJJJJJJJIGHFDD at BDDDDDCDDDDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2720:2201 1:N:0::CGATGTA
+TGTTTGAGTGGAGTGTGGTTTGGCAGAACAACTGCATTTCACAGCTTTTCCAGTTAAATTGGAGCACTGAACGTT
++
+BC at FFFFFHFHHHFHHHIHIIIJJJJIJJJJJJJIJIJJJJJJJIJJIJJIJJGIJJIIJJJIIIIJIIJHHHAD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2616:2203 1:N:0::TGACCAA
+GGTCGTCCGACCTGGGCATAGGGGCGAAAGACTAATCGAACCATCTAGTAGCTGGTTCCCTCCGAAGTTTCCCTC
++
+@@CFFFDFHFGHAGIH+A at GDG@>FGIIIIIIIIIGGFEHF8;AC>AC;>CC;>A3;@CCCCBB=<@?@CCA at AC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2518:2205 1:N:7682::CGATGTA
+GATCCGTTAGCTATCGTTCGCGAGAAAGTTAGTAGACACACAGGACCCAGGCGTGCAAGTCAATTTCAGCTGACT
++
+CCCFFFFFGHHHHJJJJJJIIGGHIIIJHGGIFIIGJJJJJJIIIGIIJIIGHBDBDCECCECDEDDEDCDDDDC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2572:2207 1:N:0::GCCAATA
+ATAAGGGGAGAGGGTCAGTCAACCATCTTAGATATGGGAACTTAAGGGGACTTCATGGCCCTGCGGGAAAAAAGC
++
+@@CFFFADHHFFFIAEGEHHGIEGGGHBHIFEEHGIEHHG;GCFHEHIIBGEHEDEHBHGEHHEDEDDBDC?;9A
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2740:2214 1:N:0::GCCAATA
+GGTCGGGGGGCTGGAATTACCGCGGCTGCTGGCACCAGACTTGCCCTCCAATGGATCCTCGTTAAAGGATTTAAA
++
+@@@ADDDDDBBBBBBCC8@@@@B30:38BC>@<<3+8<<?8>>8>C>A83>9@@>3:9>@B(822>:>(+:>:@C
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2644:2220 1:N:5122::CGATGTA
+ACTGGATGCATCTGCAGGATATCGCGGCCGCGTCTTCAGAGGGGGATAGCATGACCTCACGCCTTCTATAAAAGC
++
+CCCFFFFFHHHGHJJJJIIGHGIGDGIBHIIIFHGIGEGHHHHFDBDCDDDEDCDDDDDDDDDDDDCDECDDDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2572:2228 1:N:0::GCCAATA
+CTATTCATTTCATTCCTAACTAATTTTAAGTGATGTTGATGTTGCAGGACTGGAGACCATGCTTTGAAAACCAAT
++
+C at CFFFFFHGGHHIGIIJJIJJJJEGIDHJHHHIJIJJFIJAHIIIJJIJJIJGIIJJJJJGIIGIEEHGIJG@3
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2694:2228 1:N:0::TGACCAA
+GTGGTTTGTTAGGTACTGTTTGCATTAATAAATTAAAGCTCCATAGGGTCTTCTCGTCTTGCTGTGTCATGCCCG
++
+@@@FDFFFFHGHGAEHGIHIJFIGJIIJJJJJJJJIGIIIJJGIJJIJBGHIIJJJHGIIIJIJGG>FGIJJJIB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2629:2230 1:N:0::TGACCAA
+GGTGATAGATTGGTCCAATTGGGTGGGAGGAGTTCAGTTATATGTTTGGGATTTTTTAGGGAGTTGGTGTTGAGC
++
+:??D=:4B::DDA<C<+++A?3<+<):))?:BB?<0?90B9B<D*0?*?<BC33=@AA;?(75??A3(5(,5>AA
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2541:2237 1:N:0::TGACCAA
+ATAACTTTGTGTTTGAGGACGGTACAGGACCGGTCGACTAGCCAGTCCACAGCCAGGATCAAGGAGATATGGTCG
++
+CC at FFFFFHFFHHIIJJJJIJJCGIIJJIJJJIHIJJJJJJIJJJIJHHHHHFFFFDDEEDCCCDDDCCDCDC@?
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2512:2238 1:N:0::ACAGTGA
+TTTAGGTAACTTTGTGTTTGAGGGCCTTATTTCTCTTGTCCTTTCGTACAGGGAGGAATTTGAAGTAGATAGAAA
++
+CCCFFFDFHHHHHJIIIIIJJJJJIIJJJIJJJJJJJJJJJJJJJJIJJJJJJJJJIJJIIGA at G@EHHFFGDEH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2572:2245 1:N:0::GCCAATA
+TTCTCCCTAGAGCTTTCTTGCTAATGTGCCTATATCCTCTTACTTTAGCTATATTCCTTATACAAAGGAGCATCA
++
+ at CCFFFFFFHHFGIIIGIJIIIJJJIJJDHIHIIEIIIJJIGGGIIJIEIJEGIIGIJIIIJGG@FEHGEIGII>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2664:2246 1:N:0::ACAGTGA
+ACATCCGCGCTTCATGATGAAAGGCCTCAACCAGTTAGGCATGGAAGGAACATACCTCAAAATAGTAAGGGCCAT
++
+CCCFFFFFHHHHHJJJIJJJIIIJJIJJJJJJJJHIJJJJJJJJJJJJJJIJIIIIJJJHHHHHHEFFFFE at CBA
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2598:2246 1:N:0::CGATGTA
+ACAGCCAGGGACATGTAGGCAACACGAGCAGGCACAGCGCGGCCACCACTGTCCACACGCTCACACAAGCCAGGC
++
+@@CFFFFFHHHGHJFBFEHIJJJJIJGIJJIGIIJIGGIIGGHHFFECDEDCDCDDDDBDDBDDCCDDDDDDBDB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2751:2116 1:N:0::TGACCAA
+AAGANGAGGACCGGTCTTCGGTCAAGGGTATACGAGTAGCTGCGCTCCCCTGCTAGAACCTCCAAACAAGCTCTC
++
+CCCF#4ADHGHHHJFHJJJJJHIJJJJJDFHIJJJIHHIJJJJJJIJJHHHFFFFFFEEAEEDDDDDDDDDDDDC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2972:2117 1:N:0::CGATGTA
+GCTCNAGGATTTGACCTTTGCAAGAAGAATGACTCAGCTGGCCTTGATATGGTGTGGTCCACCAGACCTGATTCC
++
+BCCF#2ADDHHDFIIJJJJGEHIIJIIJJJJJJJJJIIIGJEIIIJJJJJIJHIIIJCHIGGGJGGIIIGHHGHD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2858:2117 1:N:0::ACAGTGA
+TATTNCTTGAGATGAATATTTAATTCACACATTTTTATTTCTTTTTGTTTAGTAGCTTAAGAGTATAAAGCTGAG
++
+CC at F#4BDHHHHHJJIJJJJJIIJJIJJIJGJJJJJJJJJJJJIJJJHIJJJHIIJJJJJIJJHIHIIIJIJGHH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2819:2125 1:N:0::TGACCAA
+GTCGGTGAGGAGTACTTAGGCTTGGAGGGTGGTCCCCCCATGTTCAGACAGGATTTCACGTGTCCCGCCCTACTC
++
+@@@FFDDAHBBD:ACEH>HGGIIIIEBD at F7D?FGEIGGG at G@@@ACEGEEFEDDFEDDCCCEC@@;?B=?CBCC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2877:2125 1:N:0::CGATGTA
+AGCTTGAACGCTTTCTTAATTTGTGGCTGCTTTTAGGCCTACTATGGGTGTTAAATTTTTTACTCTCTCTACAAG
++
+8=8DDDDBFB?DHEGBFHCHIH>E>1;AEHHCHIC??3BF;)?B<<@;*7?;<C at BCG>CGEGHFHE:?;B at EBD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2783:2126 1:N:0::CGATGTA
+TTGTGTTTGATTGGTAGATATTGGGCTGTTAATTGTCAGTTCAGTGTTTTAATCTGACGCAGGCTTATGCGGAGG
++
+ at CCDDFFFHGHHHJGHIIIIIJIJJJIJHJIJJJIHIIJIIJJJGHEIGIIJJIJJIIJIJJIJIJJIJJHGEFA
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2924:2127 1:N:0::ACAGTGA
+TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
++
+CCCFFFFFHHHHHJJJFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDBDDDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2833:2134 1:N:0::TGACCAA
+GGTGGTTTTTCTCTGGTGTCATTGTTTATTATCCTTCTTGGTAGACTCATCTGCTTTCTGTCTGTTCCAGAAATT
++
+@@@DFADEHHGGFHGEH>CE at HADEHEHIIHGIGFEGGIBCFFD@BFHHGIIHGHGHGHBFBHCHGBFF;==CFG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2979:2137 1:N:0::GCCAATA
+CCCCCTCCCCAATAAAGCTAAAACTCACCTGAGTTGTAAAAAACTCCAGTTGACACAAAATAGACTACGAAAGTG
++
+BCCFFFFFHHHGHIJJIJJJIJJJJJJJJIJJJGIJJIIIJJJJJJJJJHGIEIGIIJIJIIHHHHHHHFFFCAC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2847:2145 1:N:0::TGACCAA
+GCTGTCTTCCTAGATTCACTGAATCCACTTCTGTGTAGCACCTGGGTCAGCTGTCAATTAATGCTAGTCCTCAGG
++
+@@@D=BDDFFDDFGIIIIIIIIH?FFIIIIIIFEFFGIIFFFFIIFDGGIIIIGIIGEF at FGIIDIGFIIIIIDB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2811:2145 1:N:0::ACAGTGA
+TCAAGCCTTATTGAAGAGATAGGAACTCTTGGTTGGGATAAGGAAGAGACTTCCACCTTAGGATAGTGTTGCCTG
++
+@@CFFFFFGFFFHIJEEGGCIGI:CFEADHIJFHAHGICHIEHEIGEGGGC<DCHEHHGDGGFAHGCE)7?AA>A
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2885:2146 1:N:0::TGACCAA
+TCTGTGGGCAAATTTAAAGTTGAACTAAGATTCTATCTTGGACAACCAGCTATCACCAGGCTCGTTAGGAGATCG
++
+CCCFDFFFGHHHHJJJJIJIJJJJJJJJJJJJJJJIJJJIJGGHJJJJJJJJIIJJJJGHIGIJHIFHHHFFEEE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2770:2150 1:N:0::CGATGTA
+TGTGAGGCCCCGCTTTCACGGTCTGTATTCGTACTGAAAATCAAGATCAAGCGAGCTTTTGCCCTTCTGCTCCAC
++
+@@?DDFADFDHHFGHIJJIJJIJIIDFIIGIBFGIIGGIGGGHCFC at CEGI<GIJHEE at DEFCFEEEEEECDDD3
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2862:2156 1:N:0::CCATGTA
+TGAGGGATATGAAGCACCGCCAGGTCCTTTGAGTTTTAAGCTGTGGCTCGTAGGGTTCTGGGGGGCAGTTTTTGG
++
+@@@FFFDFHBBHAFBGIIIIIGGG9CFDGAB at GBAGGICGHHE@DGEHGE'5@######################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2796:2160 1:N:0::TGACCAA
+AGATGGGCGCCGCGAGGCGTCCAGTGCGGTAACGCGACCGATCCCGGAGAAGCCGGCGGGAGCCCCGGGGAGAGG
++
+ at CCFDFFFHHHHGJIJJFIHIGGI@GIHHHDEFDDDDDBDDDDDDDB at BDDDAABDDDBB<@@BDD3;BB#####
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2826:2161 1:N:0::ACAGTGA
+TTGACCACGGTTCTATTTTGTTGGTTTTCGGAACTGAGGCCATGATTAAGAGGGACGGTGGGGGGGGGGGGGAGG
++
+@@@DFFFFHHHHDHBHIFIGE>AGAEGIGBHCHIGJIJJCGGHGEGHHIIGFHHIB=A#################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2995:2162 1:N:0::CGATGTA
+TGTCAGGCAGGAAAGGAGAGAAAAACATGAAATAGATGAGACAAATAGGCAAAAATAAGAGTTTTAAACCCAAAC
++
+ at CCFFFFFGHHHHIJIGGIGJJIJJJIEHGJJJGIIIJIIJJJJJIJJJIIJJIIJJJIJIGGIIJHHHHFEFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2943:2165 1:N:0::CGATGTA
+AAACACCCACTACCTAAAAAATCCCAAACATATAACTGAACTCCTCACACCCAATTGGACCAATCTATCACCCTA
++
+CCCFFFFFHHHHHJJJJJJJJJJJJIJJJJJJJJJJJJJJJIJJJIJJJJJJJJJIIJIJJHEHHHFFFFFFEDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2869:2177 1:N:0::GCCAATA
+AGGGCCAAAATGGATCTCTAATGAAATATATGTGACTTTATCTTAATGAGCATGCCCTTAATCCTATCATGTAAG
++
+BC at FFFFFHHDHFGHIIIIIIHHEIIGHFFHGFHIIJJIJIJJJJJIGHIGIGEHIJEHHIGIGGGIIIIIIGIC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2816:2183 1:N:0::TGACCAA
+TAAAAGAGATATTCTTTCACTATAGTGAATTTAAGGGTGACTTAGAAACCTTACAGCCTGGCGATGATGTGGAAT
++
+CCCFFFFFHHHHHJGIIJIJIGGGECFHIIIGHIJIG:EHIEIIIJJJIIIIHHIJHIGIHIGGHHIICCGIHHH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2957:2184 1:N:0::CGATGTA
+GATCGGAAGAGCACACGTCTGAACTCCAGTCACCGATGTATATCGTATGCCGTCTTCTGCTTAGAAAAAAAAGAA
++
+@@@DDDDDDDF3CFHA?AAAFHGGCHGE<*?CCDBFFGDE<*9BB##############################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2848:2194 1:N:0::CGATGTA
+AACTGTTAGTCCAAAGAGGAACAGCTCTTTGGACACTAGGAAAAAACCTTGTAGAGAGAGTAAAAAATTTAACAC
++
+ at CCFDFBDFFHHHJJIJJGIIJJJJIJJJJJJJIJJJJJJIIJIGIGIIIJIJJIIIJGH=CEEHHFFFFDCACE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2791:2198 1:N:0::ACAGTGA
+TGTGCGTGTGTGTGTGTGTGTGTGTGCGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGGGTGTGT
++
+=1:?1AADCFCDFEGBGF+C;FG;):*)11:8BG?B9?0?9?DC2C(==@CA(.6==AFD6@;?@@#########
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2825:2198 1:N:0::CGATGTA
+GGACACTAGGAAAAAACCTTGTAGAGAGAGTAAAAAATTTAACACCCATAGTAGGCCTAAAAGCAGCCACCAATT
++
+?@@DFDFDFDHDDIII<FFFCBAC at EFHGD?BDHHIHGCFHHEDF;AHGGIGIHA=@:C7?EH;=C26?@;=ACC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2969:2201 1:N:0::CGATGTA
+CTTGGAGGCCTAGAAAACAAGATAGCCCAAAATGAAGATGAAAAAGTCCACAGTGGGAATTCAGATGGACTAGAA
++
+CCCFFFFFHHHHHJJJJJJIIJHGHJJJIJJJJIIJIJJJGIJJJIGIIIIJIEGHIJIIJJIIJIJJJHHHCEC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2994:2203 1:N:0::ACAGTGA
+GCCGCTATTAAATGTTCGTTTGTTCAACGATTAAAGTCCTACGTGATCTGAGTTCAGACCGGAGTAATCCAGGTC
++
+@@@FFDDFGDDF>E?CGGBECGBBEEHI<ECGIBHGDAGGGG0BBDHGHGBHB4ECGGGHIGH<5 at B>@EDCC##
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2812:2220 1:N:0::ACAGTGA
+AACTGCCACACGCAAAAAAGAAAACCAAAGTGGTCCACAAAACATTCTCCTTTCCTTCTGAAGGTTTTACGATGC
++
+CCCFFFFFHHHHGIJJJJJJIJJJJJJJJIGHIHHIIJJJJJJJIEIIIIJIJJJJHHHHHEFF?CF at EEDDDDB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2962:2221 1:N:0::TGACCAA
+CTACTATTCGTTTTTGCTTTATATATTCTGGCTATGTTATTCAAATGTGGGATTGTTACGTCTTGCTGACGTGTA
++
+CCCFFFFFHHHHHIJJJJJJJIJJJJJJJJJJJIJJIIJIJJJJJJJDHIJIJ;FFIIJJGIGGHIIJJJJGG7?
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2786:2222 1:N:0::TGACCAA
+ATGAGGACAACCAGTAAGCTACCCTTTTACCATCATTGGACAAGTAGCATCCGTACTATACTTCACAACAATCCT
++
+C@@FDDDFHHHHHJFHHGAFHJII9EFHHIIIGJJJBFGGIEIIGEHIIGHJIIIJJJGII)=CHIJJECEEHE:
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2758:2223 1:N:0::CGATGTA
+CTCAGTTTTCCCAGAAAGAGGATAACATCTTAGTAACTTAGATATTGAAGTAGTTGTGATTATTTAAAGCAAGTC
++
+CCCFFFFFGHHGFHGIHJIGEHGGHIJFIJIGI>ADHGIGIJFIIIIIABFIGICGHIGCHGEIIJGGIBGGH4@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2870:2228 1:N:0::TGACCAA
+GCGAGGGGTAGGGGAGGGAGAGATCACATGGGGCCATGACAGCGGTTTTGAACTTTATCCTGAAGACTTGATGTG
++
+BBCFFFFF<DFHHJJJJJIJJJIIJJJJJJJJJIJJJJIJIIHFFBCDDDDDDDDDDDDDEDDDDDDDDDDDDCC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2989:2233 1:N:5634::ACAGTGA
+ACTGGATGCATCTGCAGGATATCGCGGCCGCTCTAAACGTGGTAAATTGTTAACTCCGAGCTAGACTTCAGGTGG
++
+@@<DDFBDHBHDH at GBHGCGHF>GEIFDIE??FB9=8F at 8@;==@E3?>.7=B?@@D7>A>?;35:>(((>@,:?
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2897:2238 1:N:0::GCAAATA
+CTGTCTGATGATTATTTCTTTCTACAACTGGCTCTTCCACCACATTTATACTATTATTTTGCATAATCTCTTGCA
++
+?@@BDDDD<DFDAEGIIHIIIAFH:CG>E;C++<FH<?CG at D?;BGHGHGDEHHGG:D><BBEFBB4=C at CFGD@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2799:2240 1:N:0::ACAGTGA
+GTTTATTTGTCACATTTAAAGTACAAAATCAAATACACAGATCCAGATGTGTGAACCATATATACATATCTATAC
++
+@@@DDDFDHFFFFGABAGIGGAEHHJJJGIJIIIJJIJJIJJIJJIJJJIGIIJIIJIIGIJGGIIJIGJJJIJI
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2765:2245 1:N:0::GCCAATA
+TATACATATACTAAAAAGAAAAAAACAAAATCAGACAACCAAAAAAGCCACCTTGCATACTAGTCCCATTACAAA
++
+CCCFFFFFHHGHHJJJIJJJJJJJJJJIJJJJJJJJJIJJIJJJJIJIJJHHHHGFFFFFFFCCEEEECCDDDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3034:2128 1:N:0::TGACCAA
+GGTCCAGGACCAGGAAGTAACTTTAGAGGAGGATCTGATGGATATGGCAGTGGACGTGGATTTGGGGATGGCTAT
++
+ at CCFFFFFHGHGGIGIJFHHIIJJIJJJIJJIIGHIIIIIIIIJIIJIIJFDHGHH-@F1CHJIBEHDEFDE<C3
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3140:2129 1:N:0::ACAGTGA
+AGGGGCCCGTGCCTTGGAAAGCGTCGCGGTTCCGGCGGCGTCCGGTGAGCTCTCGCTGGCCCTTGAAAATCCGGG
++
+@@@DDDDDFFF:FFFBADH@)*:)1?@FFBE;F8BB:>B15&05 at -52<?BAA@<B05;8?@0?9:ABBB>@;9@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3190:2131 1:N:0::ACAGTGA
+CTAGAATCGGATGGTCTTTGTAACTGATTCTGGACATATGCATCATTGATGTTGCAGTGTTGAAACTACAAGAGC
++
+CCCFFFFFHHFBHIADGHIADFHDFEGCHEDBHBHIHIGGHGIGGIEIHIIGHIIIIDFBFGGHIGIIIIIGHGG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3159:2138 1:N:0::CGATGTA
+CTTTGTGTTTGATTATTGTTAAAAATTGATTTGGTTATCTGAGTTCAGCGAGTGGCCGTCATGTGACCATGACTT
++
+ at C@FFEFAFFHHHJJJGIJJEGIJJIJIGIJJJJGIIIJJF9DCABGIJ>HBHIJIJJBHDDGHDGHHHHHGFBD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3003:2143 1:N:0::TGACCAA
+GAGCTACCTAAGAACAGCTAAAAGAGCACACCCGTCTATGTAGCAAAATAGTGGGAAGATTTATAGGTAGAGGCG
++
+@@@FDFFFHHHFHJIIGHEDHIJEHE9FFHE;FGIIJIJJGGIGHIIIHHH9BDGBEFHDGAEGIIGDEHH at EF<
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3023:2146 1:N:0::TGACCAA
+AATCACCCCCTCCCCAATAAAGCTAAAACTCACCTGAGTTGTAAAAAACTCCAGTTGACACAAAATAGACTACGA
++
+@@CFFFEFFHDFFGIIGGHIJCDGECHIBDFEIGHCHHGAHBFIIHII at CHGCH=DHCDGCEEAEBDEEFDCCAC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3234:2154 1:N:0::CGATGTA
+CACATCTGGCCCACTCTGACTGACGAAGAATGGATCAAGGTCGAGGTGCAGCTCAAGGATCTGATCTTGGCTGAC
++
+CCCFFFFFHFHHHJJJIJIIJJJJJIJIIJJJJIHGIJJJGGIGIE at CHGIIIIIBEEIIHGHHGHHFFFFFDED
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3133:2155 1:N:0::ACAGTGA
+TGTGTTTGATTTTTTTTTTTTTTCTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
++
+BCBFDEFFHHHHHJJJJJJJJJJ=DHIJHFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDBB@#######
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3044:2155 1:N:0::CGATGTA
+AAAGTTGAGGTCGTGTCATTACCTTGCTGCGCAAACATGGAAAAATTCATTTGGAAGACATACAACTCAAGTGAT
++
+@@CFFFDDHHAFHCGEHGHGIHGIIGIGIHIJJJJJJGHHGGIJJIIEHJHGGCGGIJIJIIHFGGHHF at D@CC;
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3164:2162 1:N:0::CGATGTA
+TAGGGGGGGGCGGGCTGAATGCAATGGAGTGTGCATTACATTTGGAAAAAAATGTGAATCAGTCACTACTGGAAC
++
+CCCFFFFDDDDDDDDDDDDDDDDDDDDCD8?CCCEEEDDDEEEEDCDDDDBDDDCDDDEDDDDDDDDDDDDDCAC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3054:2170 1:N:0::GGCAATA
+TGTTTGAGGGGCTCAGTTATATGTTTGGGATTTTTTAGGTAGTGGGTGTTGAGCTTGAACGCTTTCTTAATTGGT
++
+1==DD=?DFFFD>FG>FF<FH>>BFEB=F;D9C4?DBCEBDDFF((<@FC=)=)7 at CEFEDB?@?3>;A######
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3111:2178 1:N:0::CGATGTA
+GAGCCTGGTGATAGCTGGTTGTCCAAGATAGAATCTTAGTTCAACTTTAAATTTGCCCACAGAACCCTCTAAATC
++
+BCCFFFFFBFFHGIJJIJEIIFHHJIJIJJIIJBHJJIJIJJIJJIJJIJJJJIJGGGHIJIEHIGHDEGGGJ at A
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3228:2178 1:N:0::ACAGTGA
+ACACAAATTGTGCAATTATTTTCATTTAAATTTACTGAGAATCCCACAAAAGTGATCACTTTAAAGATACAGAAA
++
+BCCFFFFFHHFHHJIIJJJJJIIJIJJIJJJJJJJJJJJIJIIJIJIFJGIJEGIIJJJIIIGJGIIJEGGGIJI
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3021:2180 1:N:0::ACAGTGA
+ATGTTGGTGGAGCGATTTGTCTGGTTAATTCCGATAACGAACGAGACTCTGGCATGCTAACTAGTTACGCGACCC
++
+@@@D?BBDHDFHFA1<A at AHEHGGICFH?CFH>@DHE at GGHIGIFIG@=).=;=CEHEC@;;?>@6;A=/96?;B
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3009:2183 1:N:0::CGATGTA
+ATATCACTGAAGCCTGGACTATCTTCAAAGCCCGACTGGCACAAAATGACATATTAATGTAGTATCTCATTTCCT
++
+CCCFFDBEHDFGHGBHGFGIGIJGIGIIFHHGGEFD6DGEGIIJDHGGGGGFHCHGHG@=@E@;DH:=?>CEEAE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3074:2186 1:N:0::ACAGTGA
+AAGATCAGTTTTAAAAATGTAATTGGGATGTAAATTCTGTCTCTAAAATACCTTATGTTATGTTTAGCCATCAGA
++
+CCCFFFFFHHHHHJJJJJJGHJJJJJJIGJHIIJJJJJJHIJIIJJJJJJJIJJJIIIJIIJIIIIJIIJJIJJG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3179:2188 1:N:0::GCCAATA
+TGTGAGGAATAGTCATGCTATGGAGAACAGCTACACAACACACATAACCAGAGGACTCAAACACAGCAGCTAATG
++
+@@@DFFFDHFHHDGGHHIJIIIEIIJIJJJJGGIGIIIGJJJJJJJFIJIIDGGGGGIGGGGIGJJHHHHGFFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3046:2190 1:N:0::CGATGTA
+GGAAAAAACCTTGTAGAGAGAGTAAAAAATTTAACACCCATAGTAGGCCTAAAAGCAGCCACCAATTAAGAAAGC
++
+ at C@FFDFFHHHHHFHGIJIIIDAEAHIIJGJJIJJJJJIIGEHFHGEIIJIDHEGIIHJGHFHDEDDDFECEEEC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3244:2190 1:N:0::GCCAATA
+CTGAGCTAATACAGTCTATACTTATTTCTTCCCTACCTGTTTCACATCCGTAAGATTTAGGATATACATTTTTTG
++
+@@@DADA>FHHD4A<CEHIGDGGIIIIFDGGHGCHGGGF9:DHAFE@>FB1)0?GH4/?4<@CFGFCB4)/@;@4
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3219:2193 1:N:0::CGATGGA
+AAGTCCAAGAGTCCAAAAGCTGAAGAAGTTGGAGTCTGACATTCTTGGGCAGGAAGCATCCAGCATGGGAGAAAG
++
+@@@DD?DBCAD2A<C at FH>;HDHHGABC+A<*:?:?*?9FHHIIIEB3B)9 at F;DCHIF37=)8 at 4=6=?#####
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3197:2198 1:N:0::ACAGTGA
+TGTTTGCGTCTGTTTTACTGTCTGCTTATTGTTTGATGTTAATTTATCTCCCTCAGCAAGATAAGCTCTCATAGA
++
+?=@DADDD?@8C?EFB:E at A?<F+4<ACFF91:9C?D<:D9?<BGAFEFEFC)?DBF at CFFDDGIGE34@;;@:=
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3168:2201 1:N:0::ACAGTGA
+GAACTCTCTCTTCAAAGTTCTTTTCAACTTTCCCTTACGGTACTTGTTGACTATCGGTCTCGTGCCGGTATTTAG
++
+@@@?DBDBFDDDHIIGIEHHIHCHAHHIDEHB?F9?EGHE?DH at D??BFE>B<BFGBBFBCC;@DDHB'9B;A;?
diff --git a/clipper/t/in/multx/mxtest-h_2.fastq b/clipper/t/in/multx/mxtest-h_2.fastq
new file mode 100644
index 0000000..824eccb
--- /dev/null
+++ b/clipper/t/in/multx/mxtest-h_2.fastq
@@ -0,0 +1,1000 @@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1230:2118 3:N:0::ACAGNNN
+CTTTNNNNNNNNTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTN
++
+@@@F########22AAFHIIJJJJ'5=@BDDDDB6BDBDDDBDDBD8BB at B@@BDDDBDBDB;BBDDDDBDB###
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1196:2124 3:N:0::GCCANNN
+TTACNNNNNCANNNNNTTTGTTATTAAAANNNNNNNNGTCAGTTAAACAANNNNNNNTTGAACACTTCGTCAAAN
++
+ at BB;#####22#####22ACA;EHHIJIG########008BDDGCGHG at F#######--5;(;>BCFDDEDDBA#
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1211:2126 3:N:0::GCCANNN
+TTCANNNNNTGNTGAGGTCTGAATTACTCTCCCAGTTGAGAGTTGTCTTTGGGTGTAGTTCGGAAGTGCGTCGTN
++
+ at B?A#####22#322<++3<2+ACHH4?<CB31)?DFF4*8?*9*9??FAB########################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1238:2152 3:N:0::GCCAANN
+CAGTNNCTCCTAATTTTCTAATTTAAACCAATTTGGACTTGATAATTTTAATAAAGCCAATCACTTTATTAAACN
++
+ at CCF##2=CFFFHHIJJHIIJJJJIJJIJJJJJJIJIJJJJJJIJJJJJJFHHHIGGGHIIFIGGHJIHIIJJ##
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1224:2185 3:N:0::CGATNNN
+AGAGTCCTTGCTATATTATGCTTGGCTATAATTTTTCATCTTTCCCTTGCGGTACTATATCTATTGCGCCAGGTN
++
+ at BBFDEDEHHHHFIJJJIJJJJJJJIJJIIJJIIIIFGH@GIIHCFIGHIFHEHIIJIHIEIGIJJIJBGIFCE#
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1179:2187 3:N:0::ACAGNNN
+TGACCGGTGNNNNNNNNTAAAGCAGNNNNNNNNNNNNNATTACAATTNNNNNNNNNNNNAGAAAAACATTCNNNN
++
+@@@FFFD8C########22?FGGHH##################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1223:2231 3:N:0::GCCANNN
+TGTTGCTGTTACTACTTTGAGCAAACTGTTATCTGATCGATTATGAATAAGTAAAATGAATGAAAGCAGTGTTAN
++
+@@@AFDB;FDBH?GAFFGHHEEICHIJJHBCFEHC>FGHGDHGGHC??BD?0BDF>DHIEGGIHIGDHIGH####
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1356:2120 3:N:0::GCCAATA
+TTGTNNNNNNANGATGAAAAATTATAACCAAGCATAATATAGCAAGGACTAACCCCTATACCTTCTGCATAATGA
++
+BCCD######3#2<CGHJJJJJJIJJJJIJJJGIIJJIIJGIGIIJJHGIFHIJJJGGIIIIIJIIHGHHHHHFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1387:2124 3:N:0::TGACCAA
+TCTTNNNNNTANCCTTTCTATTAGCTCTTAGTAAGATTACACATGCAAGCATCCCCGTTCCAGTGAGTTCACCCT
++
+CCCF#####23#2<CFIFHIJJJJJIIJJJJEIJJJJJJIJJJJJDIJJIFHHHIIIHIGIJJJJJJHIHHEFEE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1323:2146 3:N:0::TGACCAA
+TGTTNNCCGTGTTTCAGGCCAGGAAGAGCAAGGGGAGAAAAATATTTGTCCATGGGAACAAGTAATCATGCTCTN
++
+B@@F##22ADF?FIGEGIIJIIJBEH3CFEGHHIJBHBHGGI at GGIFIJGFHCHIGGIGHFH;CEFEFDEFBCC#
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1422:2148 3:N:0::TGACCAA
+GGACNNCCAGCTATCACCAGGCTCGGTAGGTTTGTCGCCTCTACCTATAAATCTTCCCACTATTTTGCTACATAG
++
+CCCF##2=CFHHHJJJJJ at FGIGIIJ?DFGBFHGHGIHGHIHC8CDGEGECGGGIGIJIBEHGHFFFFFFFDCCC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1344:2152 3:N:0::CGATGTA
+TTACNNGGAAAGAAGATCAAGCTACAGATATGGGATACAGCAGGCCAGGAGCGATTTCACAGAATCACAACATCC
++
+B@<D##222A:C>@@FF?FEE9AB3<C99CGGFF9C99BD<@BG@)B?@B<8;;=2@=D>E3)7;7?;;;;(;@#
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1276:2152 3:N:0::GCCAANN
+TAGANNACGAAAGTGGCTTTAACATATCTGAACACACAATAGCTAAGACCCAAACTGGGATTAGATACCCCACTN
++
+@@BD##2=CFHFAHGBEIHIJIHGGIIGCEGHIIGGHJJJIJ at GIHGEEHGFGEGGIIIIGIGEGIGEHFEEFF#
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1326:2167 3:N:0::CGATGTA
+TAGGNTGATAGATTGGTCCAATTGGGGGTGAGGGGTTCAGTTTTATGTTTGGGATTTTTTAGGTAGTGGGAGTTA
++
+==;B#+22+<A+2CCA+23<?######################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1434:2177 3:N:0::CGATGTA
+GGACCACACATGTATATGTCATGCTTCAGGAATTGCACTTCTGAGCATTTATCCCAGAGAAATGAAAACATGCGT
++
+ at CCFFFFFHHHHHIJIJJIJIGIJJJJJJJHIJJJJJJJJFJJJJJJJIJIHIJJIJIJDHIJJIJJIIIJIIJI
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1250:2180 3:N:0::CGATGNN
+TAATATAGCAAGGACTAACCCCTATACCTTCTGCATAATGAATTAACTAGAAATAACTTTGCAAGGAGAGCCAAN
++
+@@CFDDDDHHBFDDHIIJJJJGHHIEIIJIJJIIGGGHIIHHHII at GHGIEHIIIGGIGIJJJIIJBHCHHAHH#
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1342:2181 3:N:0::CGATGTA
+GTTTGAGTATGGAGACAGATAATAAACAAATGAATCAGATTTTTAACATAGTAATAAGTATGATGTAGAAAAAAA
++
+ at B@DBDD?CFAHDEGHGIHHHIIIHJJCFCFHCGGEGJIIEGHIGGDFGGBGAHHIGGIIIIDHIGGGGEGHGE<
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1326:2195 3:N:0::TGACCAA
+CGGGGAGTTCGGTTATAGGTTTTGGATTTTTTAGGTAGAGGGTGTTGAGCTTGATCGCTTTGTTAATTGGTGGAT
++
+;@7DD<DB?2+ at +)22?+2C?<)::<?**0??###########################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1404:2198 3:N:0::TGACCAA
+TCGGGTTTGTAAAAACATATTTGTGAAGCAAAAGAAATCCCCTATGTCTGAAAGTGAGGGATAAGAGAACCTCCA
++
+CCCFFDDFHHHHHJJJIIIHJJIJJJEGFGIIJJJJJJIIGIIJJIEIIJJJIIHHIGIJHGEII at HGIIHEHGF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1365:2202 3:N:0::TGACCAA
+TTGTAGGCGTAAAAGCTGGACATTGCAAAAGGATTGGTTTAAGAAATACTGTCTAAGGGTTAGCTGTCAATGGTT
++
+ at CCFFFFFFHHHHJJGJCGIIJJIHCIIIJIJGIJGIGIHIGIJHGIIJJFIIHIIIIJCHIJJIJJIJHHGEHH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1497:2206 3:N:3586::ACAGTGA
+GTACTGGATGCATCTGCAGGATATCGCGGCCGATCTAAACGTGGTAAATTGTTAATTCCGAGATAGACTTCAGGT
++
+;B@;AB3B+A:DF<+<,:C:C######################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1311:2219 3:N:0::ACAGTGA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAN
++
+?@@A7<DDFA:?FIBAEDCD?@B at -0:BBD at B:3BB at B6B93005&0:&5555:BB<BD;-5&5>BBDDD#####
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1395:2221 3:N:0::TGACCAA
+GTAGTGGGGTATCTAATCCCAGTTTGGGTCTTAGCTATTGTGTGTTCAGATATGTTAAAGCCACTTTCGTAGTCT
++
+?@BD?DDDHCHHDEGGHGIDEGAFDHIJCCFBEH9 at BDFIBFHII;DHABBGGHIIJDFH@=@F at DHIGHHHCHD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1348:2222 3:N:0::CGATGTA
+CCTAGCCCCAAACCCACTCCACCTTACTACCAGACAACCTTAGCCAAACCATTTACCCAAATAAAGTATAGGCGA
++
+@@CFFDDDHDHH?EHGGGHJGEIIJIIIIGG at ADDF>GIGFHJICGGIIIBFHGIHHCGIIJ at HHFEEGHFFFF>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1275:2229 3:N:0::CGATGNN
+CTGATGGGGGTAACGTAGTGAGCAACTCTTCCTCTTGCTTCTCCTTAATGTTTTTCTTGTGCCTCTTTTCCTTGN
++
+@@@FDE>DHF at FHGICF@8CFHCHIGGIIGBG>HHGHGIJFDFGEGBBCH@@FHHGEGHJGA7ACHGFF at DCC##
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1456:2233 3:N:0::CGATGTA
+TTGGCACCCACCGCAACTGTCTGTCTCATATCACGAACAGCAAAGCGACCCAAAGGTGGATAGTCTGAGAAGCTC
++
+CCCFFFFFHGHHHJJJJJJJJJIIJJJJJJJJIJJIGIJJIGGCHJJJJJEHEEFF at BDCEEEEEEDDDDDDDDC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1298:2234 3:N:0::ACAGTGN
+ACGTTGAAAAATAACATTAGAGTAATAAAGGGGGATGCCCAGAAGTAAGGGGATAATAATGAAGATGTATAATTN
++
+###########################################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1327:2242 3:N:0::CGATGTA
+AATGTTATATGGATGCTCCTCGACTTACAGTGGGCTATGTTCCAGTAAGCCCATCATAAAGTTGAAGAATCATAA
++
+?@BAFDDFGH<F4CFDHEGIHI1CA at HF>F<ECECGGGIJI9DFBGHAAHDFIFGEHH at GHIBHI@G;@@E>D##
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1426:2246 3:N:0::CGATGTA
+TAGGTAGAGGCGACAAACCTACCGAGCCTGGTGATAGCTGGTTGTCCAAGATAGAATCTTAGTTCAACTTTAAAT
++
+ at BCFDDEFGHHHHJJJJJJIJJIJGIJJIJJBGHIJJFIJIIJJGHIJJHHHGHFFFDFFFCEEEEEEDDDDCDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1287:2250 3:N:0::TGACCNN
+CACAATTTGAAACCAAAAAGCTGTATGCAGGAGCTATTCTTGACGTTTGTGGATGAAAATTGGGAAGGTTCCCTN
++
+:?@D:A?;F?<A+AFBBA at FGHHE<HFE<BFC?@F<*?<FFGA*0?FHI@?F=CG<)))=CHGGG;;AEEE####
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1637:2116 3:N:0::GCCAATA
+AGGTNNNNNNNNNTGTGTTTGAACGCTTTCTTAATTGGTGGCTGCTTTTAGGCCTACTATGGGTGTTAAATTTTT
++
+BBCB#########22AEGHIGIJJIJJJJGIIDICFDHDDAHGIIGGIJEHGDGIGIJJGEHGHHHFFFFFFEEC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1585:2121 3:N:0::CGATGTA
+CCAGNNNNNATNATCAAATCACACCATATTGGAGGGCAGAGAAATGTACAAATTCCTGCAATATCCATGTCTTAA
++
+B@@D#####22#2<<CBEH<FFCH<CCCG??D<D)?DCG at AGEIAE===BB37CGHGHCCCD>C?EEE>=?))7?
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1719:2132 3:N:0::CGATGTA
+CTCTNNNCCCANTTTCCTCTCTTTCCTCTCAAATCCTAGAAAATACATATGGTGGGGAAGCTAAGGAAATTTCTA
++
+BB at F###22AF#2AEEEG at DEHGIFFHAHEGGIIEEDEHGGHGIEHIIIJJDHIIIFEEGHBECEHEECDEFBD>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1530:2132 3:N:0::ACAGTGA
+GTAANNNGCGCNCCTGCTGCCTTCCTTGGATGTGGTAGCCGTTTCTCAGGCTCCCTCTCCGGAATCGAACCCTGA
++
+C@@F###22AD#2ACGF<FAGIJJIIJCE:?FGGE@@FHGADFF?FGFHE;F;FFFFGEE;A'9B@>;>>>?AC=
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1501:2136 3:N:0::TGACCAA
+GGTANNNTAAGTTACACATGTTCAAAAGTTAACACAGACCTATCTGAAAAGTAACTAAGTTACAAAACAATGCCC
++
+ at B<D###22ACCBHGEGGIIFGHGGHCH?9ABFFGE at DBDE@GGGIIIIFGGGDHGIIIIJICEEGIEHGIAHDC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1556:2139 3:N:0::ACAGTGA
+TGTGNNNGAGGGGTGGGGGATTGCATGGTCAATTAAAATGAAGGAATGCTGAGTTTGTTTCCTTACTGTAGGACT
++
+CCBF###42AFHH<EHIJIHJJIJJJJJGHIJJJJJJIJJHHGIHEHHHFDEDBDFEDCEEDDDDDDDEEDDCDC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1641:2143 3:N:0::TGACCAA
+ATGGNNGACAACACATTTAGTTTTATTTCAATCAAATCACACAACACTTTCTTTTCCAACTGCTGCAAAGTGCAT
++
+ at BCF##2=CFHHGJJJJJFIIJJJIJJJJJJJJIIGIJGIGJJJJJIIJJIHIJJIGIGIHIJIIIIGGHEGEFE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1689:2148 3:N:0::ACAGTGA
+GTGTNNGTGATGCATGTTTGATGTTATTTTTTGGTTTTGCTTTCTTGTTTATTACACAGCCCTTATATTTTTGCC
++
+B at CF##2=CFFHGHIIIIIJHJIJJGIJJJJJJEDHIJJIIJIJJJJIJJIGIHIGJJIIIJJJJHFHHHHHB at C
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1668:2150 3:N:0::ACAGTGA
+TTGTNNGTGTGTGTGTGTGTGTGTGTGTGTATGTGTATGTGTGTTTGTATATATATAATATTATATATGTTATAT
++
+BBCD##2=CADCFFFDBHG?EGGIGHAHFI9DI??G:DGBDGAHHIHJEHGGDGI>BFGGGIIHHIEH=@EGIIG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1597:2151 3:N:0::GCCAATA
+GAGCNNAGTAAATTTGGAGGTTATAAAGCCTTGGATAACAAAAAGAGTAACGGAAATCCTTGGGTTTGAAGATGT
++
+??8A##+22A+2CGFE at CBG3AFH@FHAFH9EH<GIIJBH?;G)?19/9BFDGD;FH:FG at GG<EHEE?7;;@D#
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1509:2166 3:N:0::ACAGTGA
+TTCTNGCTTTCAACCTTGAAACATACTTTGAAACTCTTAATTTCTCCCTTTCACACCAGGAACTTCTGCGCACAG
++
+?<;D#2+=CCCFH<?EH<+?D<BB at EFDHA4FH*?DEHIB at GI@I><DDF<<?FHD(B(7CF6=4=F@=@EBBB;
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1740:2167 3:N:0::TGACCAA
+CTCCTGTTAGCTAAAGATAATGGTAGTGTACATTGACATATCGTGAAATGTTTGTTCCCTGCAAATAGCGCTGTA
++
+CC at FFFFFHHGHGIJIGIHEJIJHFIIGGEHIIJHGGGHHIIJIJHIIIJHHIJIJHHIIIJDHIIIIIJIJJHG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1591:2169 3:N:0::CGATGTA
+TGTGCTCAAAGCTTGTTAAGATAGTTAAGCGTGCATAAGTTAACTTCCAATTTACATACTCTGCTTAGAATTTGG
++
+@@CFFFFDHHHGHIIHII at IFHJIIIIGIIBGHIGIGHIHFIIJGGGHGGHHI>GIIIJJJIJJIJCHHHGGGGI
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1529:2172 3:N:0::GCCAATA
+TATGATCATGTCAATTTTGGCCAGTTCAGTTCCAGGAGTGACTGTAACAGATGCAGAAAAATAGGATTGTCTCCT
++
+B at CFDFFDHGHAFIJJJJHFEHIIGHHIJGIEGIGIDGCDGEHGHIJIJJIHGHIJJIIII>HIJCGHIEGIJIC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1710:2174 3:N:0::GCCAATA
+TGCGGTGTGGGGTTTTTTTTTTTTTTTATTTTTTTTATTTTTCATTAGAATTTTCGAAGGTAGGTTGTGGGGGTT
++
+###########################################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1571:2181 3:N:0::TGACCAA
+TATAGGGTGATAGTTTAGGTAACTTTGTGTTTGAGAGAGTAAAAAATTTAACACCCATAGTGGCCTAAAAGCAGC
++
+@@@@DDD=CFHHFHIIEGEAFEGEIJI4EAEGEGIJJGHDFEHIEIEFHIFGGGIIIIJDFHHGIJGAHHGFFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1520:2197 3:N:0::CGATGTA
+ATAGCCACAGTATAACTTCACATGTTCATTAAAAAGGCAAATTGACCGCTAAAACTTCAAAGAAAAAGTACTCAT
++
+CCCFFFFFHHHHHGIIJJIEIJIJIJIDHIEIEI<FADHGIJJIGDCHIIGIJIGGGIIHIJIJIJJHHHHHHHF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1669:2200 3:N:0::CACAGTG
+TAAGGAGGGGGGGAAACATGAAAGTCAATCTTAACAATTTTTGCAATACCTCTTATTTGCAGACCATTGGATTTA
++
+@@@DFBDAHHDBDBBBD?C>>CDD8 at CDECDC>CACACCCDD8 at DC@CA at ACA>CDCDCADA:A?CCDDCDCCC>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1710:2200 3:N:0::ACAGTGA
+AAAAAAGAACCGCCCTTTGTGTTTGAAATGGTTTATTATCTCTACAATATACTTTTAACTTGTTTAGATAATAAA
++
+@@CFDFFFHGGHFIJJJJJIIIHIJIJJIFHDAGHIJJJJJI9BGGGIIJFHIIIIIJJJJHHHHGG at DDFFFEE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1550:2201 3:N:0::CGATGTA
+GGTGGCCAATCATCAGCTAGAAAGAAAGTGCTTAGCAGGGCTTGAAAACACCAAAACTCTGAGACCACTGACCTT
++
+@@@FFDFFHHHHHJJIJJJIJJJJJJJJHIIJIJJJIJGIBHIJHIIIIIIIGIJJIHIJGGHIIIHFHFHFFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1602:2205 3:N:0::ACAGTGA
+ATTGATTTCATGTAATCATTGATGACTCGCTCATTGGTGGAAATGCCTCCGCTGAAGGCCCCGAGGGCGAAGGTA
++
+ at CCFDFFFGGHHHIIIGIIJJJJJDIJJJDGI1FGGGEGIHIJJJJJJJJHIJIIJJJJJIJIEEDDDDDDBDC:
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1687:2216 3:N:0::TGACCAA
+TGGGGGGATGGGGTCTTCATCCTCTTCCTCCAGGAAGGATGCCTCTGGGATATGGCTGAAGGCCTCTGGGTGCTG
++
+B at CFFFD?BBDDD at BDD>ACDDCACDDDDDDDDDDDDDDDDBCCCCCD?AACDDDDDD@>@C0<AB>ACD<;7@>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1577:2220 3:N:0::CGATGTA
+AGCTGCTGTTTGTTCAGAAATCTCAGTTTGAGCATTCAATTTTACAGGTGTAGTATTATCAGAAAGACTAATATC
++
+?B at FDFDFFHHHHIGIJJJJIJJIIJIIGIIJIJJEGFEEGHIGHGII?DDGGDGHBIIHJJJJJIHIIJJC at HE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1520:2227 3:N:0::CGATGTA
+ACAAACCTACCGAGCCTGGTGATAGCTGGTTGTCCAAGATAGAATCTTAGTTCAACTTTAAATTTGCCCACAGAA
++
+@@CFFAFFHGHDHIJJJGJBHHJFEHGHI:CFDEHBHIJJFII at BBDGAHGFDFHIHGIIJIIGIIEAHEHFFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1738:2228 3:N:0::CGATGTA
+ATTGGGTCATCATTCATCCTGATGCAGCCTGAGAGATTCGTTCCTGGGCTGGGGCCACTTGTGGGGCCTGGGCAC
++
+??BDAFFEDH>FHIGEF at AAHIIJ<HGEHIFEEHIIJIIIGH<DGGDGHGEHCIEFGIJJGDDEHF><ACD<BC@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1558:2230 3:N:0::CGATGTA
+GACCCCCCCATGCTCAGAAATATAAGTCTGAGCACTAAATTCAAAAGCTGTAGTATTATAAGAAAGATTAATATC
++
+=<@BDDDDF)+)*11??3CC#######################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1616:2235 3:N:0::TGACCAA
+CAGTCCCAAATGATGCAAAAGAAGCTTCCACATGAGCGAATAATGGATTCTTATTTACATAAGAACAGAAACAAG
++
+@@@DDDFFHHHHGGIJIIJGGGGIIJIIJGGIGIIEE<AEHIIIGAFGAGGBFGHJJCHGGEGIIIIHGEFFHFA
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1718:2237 3:N:0::TGACCAA
+TCTTTACGTTTGGTTCTTGAGCTTGAACATCTGAATAATCTTGATAAAGCTGTTTTAAATTAGATAAGAAATATG
++
+@@CFF>DDHFBDDHGGGII<EGGGIJF<EEHIIJHFC@?@DHCGE>F9GFEH at CFIEHCF<8<CGICCAAHGGGD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1598:2243 3:N:0::CGATGTA
+TCACACCCAATTGGACCAATCTATCACCCTATAGAAGAACTAATGTTAGTATAAGTAACATGAAAACATTCTCCT
++
+B at CDDFDDHGHDFGAGGGGGI@HGIGGIIIGI>CDCHIHJHIIIIHIGHGDDGHHFFHGG>FAHIGIG>EHECCH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1503:2246 3:N:0::GCCAATA
+GTAGAGCCGACAAACCTACCGAGCCTGGTGATAGCTGGTTGTCCAAGATAGAATCTTAGTTCAACTTTAGCCAAA
++
+B?@BD;B;FH<AFHABEFGIGHGHEIJE9?F at FDD4??0=FB8))8 at FGECDA)=CCHE?EEDEC>DDBEC at CEC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1648:2247 3:N:0::GCCAATA
+CAACTGGACAGGTCTTTGCTACTGTGCTAATTAGATCATACAGGCTGAAGACAATGATAGAGGAATGTGGCAATA
++
+@<@?DBD?D?F?+2AGB@:C@?EH<CEE>HHIGD9BE>B4DABD?BA?????DEGCEG:CGGEE27=).=6@==@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1765:2117 3:N:0::CGATGTA
+AACANNNNNNNNTAGAGGGTTCTGTGGGCAAATTTAAAGTTGAACTAAGATTCTATCTTGGACAACCAGCTATCA
++
+?B?D########22<+A>@<F3ACFGCB?:C??*0?BBD?B9?FFGGFCEBB)BFHFHIBCFHECB=;=AEC3?@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1983:2124 3:N:0::TGACCAA
+AATANNNNNTTNTAGCTAACTGCCTAATGTACCAAAAAAAAATTAGCAATGTCTTATGTGGGATGAGGGGTTAAG
++
+@@7D#####22#2<CEE?FBBBDFIJJI>?CBF at CACFHEIGHEG@GE@?AACEHFDD;;@>CCBCC>7?B=ACC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1851:2128 3:N:0::CGATGTA
+CAAGNNNNCAGNAAGAACAGGACTCCAGAGCGATAAACACTCGCTGGAGAGGGAGACGCAGGAAGCGATGAAAGA
++
+CCCF####3>C#3AGHIJIJJFJJJJIJIJIJIJIJJIJIJJIIJJJGHFCHIFHFFFDCCDBDDDD at BDCDDDC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1954:2130 3:N:0::GCCAATA
+CAGGNNNNGAGNAAGCAAAAAAACAAATCAAATCTGAATTAGATTCAGATTTTGTATTTGATTTATTTTTTGGTT
++
+ at B@F####222#+2+++2CFHI:):D)*00?9?##########################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1777:2133 3:N:0::TGACCAA
+AAATNNNCAAANTTAGAAGAAAATTGGAAGATAGAAACAAGATAGAAAATGAAAATATTGTCAAGAGTTTCAGAT
++
+B@@F###23CF#2AEFBBHGGIDEIGIEGHG>AGEHJD at EGHIGIHIIFIHGEGIJJJJJGIJIJIICGHGECEH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1933:2134 3:N:0::GCCAATA
+GATTNNNTAGGNAACTTGTGTTTGAGCTTGAACGCTTTCTTAATTGGTGGCTGCTTTTAGGCCTACTATGGGTGT
++
+ at CC<###22AC#2<CFGE4C+<FEGHGIJJGJBCEHIEGIJGEIJ at HBHBBF=FHCHID9 at CHHEFHE@?@<7=A
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1908:2135 3:N:0::ACAGTGA
+GATGNNNGTGANTGATGTTGGAGAAGTCTTTGTTCCTTTGTTGGATGGTTTCCTTGTCAACTATCAAGAATCCCA
++
+@?@F###22AB#2<BEDDHDGGE?FG<CDHGHJJCHHJGHGHH?FHHC*?BG/=F=E=BB at GFFGI>CHHHE377
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1992:2141 3:N:0::TGACCAA
+CCAGNNGAGCTACCTAAGAACAGCTAAAAGAGCACACCCGTCTATGTAGCAAAATAGTGGGAAGATTTATAGGTA
++
+CC at F##22AFHFHJJJIGGIGHHJGIJJJJIGIJJJJGJJEHIGIHFIGGGECHFECFGIJBGGEEGD;AEBE@?
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1807:2144 3:N:0::TGACCAA
+TAGANNGGCTAAGAAACTGAGGTACTAAGGGGTGAGGCTGAAAATGAGAAGAACTAGATCAATAAGGGGACTACC
++
+<BBB##2=ADDFHIJIJJJGIJFGFHIEGDHG0:DHGCCGHGGCG at FDCFBDCCFGHIBGHGIEHHHDBDCACAA
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1939:2156 3:N:0::GCCAATA
+GGGGNNGAGAAAGGGGCAATAGGTGAAAGCCTTTTACATTCTGAGTTATAAAAATTTTTAAAAAGACCAGACGAA
++
+=B at F##22<+AB+AC>@E;BACH9*:*C?*)*1?>4?F>GEHDFHIJ<*BEAFGEFHGADGFIIEIICEA#####
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1952:2158 3:N:0::TGACCAA
+ACGCNNGGTGATAGCTGGTTGTCCAAGATAGAATCTTAGTTCAACTTTAAATTTGCCCACAGAACCCTCTAAATC
++
+;?@D##22<DFBDGG at EGHHHFFFFFEHGHFGCHBH>GBGD4?G4BGG<GHEABCDD<<BFCGG;6 at DEGE@=>E
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1788:2159 3:N:0::GCCAATA
+TATCNNCTCAACTTAGTATTATACCCACAAGATCGGAAGAGCGTCGTGAGGGGGAAGAGTGTAGATCTCGGTGGT
++
+8B?D##22<DBCFGIIA2A,AHABBCH=F9?)?*:?G=A8?>:7?##############################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1861:2165 3:N:0::CGATGTA
+GAGGNGAGACTCGGGTGATAGCGTGCGATGGCGGCGGGGGAGCTCTTGGCCACCCAAAAGTGTATATAAACTTGG
++
+C at CF#2ADHHHHHJIAFHIJJJJIJIIHIJJIJJIHDDDD-708CAC3@>>3(<B7AABC+:3:3::@CC>@C:A
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1988:2168 3:N:0::CGATGTA
+GAATTGTGTTAATAACTGTTTGGCAGTGTGTACTTTGTTTTTGTGAGTCATGTCTCATGAAATTTATTGGAATGT
++
+BB at FFFADFHHGDGIJJJIJIIIJIJIHEHBHGHIIIGIIJJBHJIGFHFEGIGEIJIJGHJJIEGHIIIJIHII
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1803:2170 3:N:0::ACAGTGA
+AACGTGGGTACTTGCGCTTACTTTGTAGCCTTCATCAGGGTTTGCTGAAGATGGCGGTATATAGGCTGAGCAAGA
++
+BCCFDFFFFHHHHJIIIIJJJJJJIHIJJJJJJIJJJJJIHIIJJJJJIJFGHIJJHEDFEFFEEEEEBDD@?C9
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1962:2173 3:N:0::TGACCAA
+CTTTGTGGTTGATTTGTTTCTCAATAATTCTCATTCTCTCTTTAAAAACAAACAACGAAGACAAAAATCTTTCTG
++
+8=;44AD1DB+2A9C?C:F,<ABH4C<CA?A?CF?*?CB<FCDCCB9*?GD>?;BG at 1BBA8@F at A#########
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1935:2181 3:N:0::TGACCAA
+GTTTTTAGTGTTTTTCATTTTCAGATGGTCAAACATGGAAGTCTATATTGAAAACACTGGCTGGCTTTTACAACT
++
+BBBFFFFFFHHHHJJJJIJJJJJJJJJJIJIJJJIJJIJGHHIJJIJJJJHHGIJJJJIIGIIFGGIIJ:)@EGE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1885:2183 3:N:0::GCCAATA
+GTGTTATGAGTATGTACAAATGTTATTTCCTGTAAAATATTTTCATTTTTTAAAATGTTACTTTCTAGATAGAAA
++
+@@@FFDFFDHHDHIGHIGHGHI at DJHJIHIHGEBEHHGDIGIJEIIHGIIBDFDGHGHCF<?GIJIIIIIJCHEH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1905:2186 3:N:0::GCCAATA
+TGTTTGTGGTTGGGTTGGCCTTATATTTCTGGAGTATGGTGATGCTGCTCTTGATGATACCATTCCTGGCAGACC
++
+1114+2AA###################################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1989:2202 3:N:0::CGATGTA
+GGAGGGGATTTAATTTTAATTTTAAAATGTTTAGGAAATTTATACAAAGAAACTTTTTAATAAAGTATATTGAAA
++
+B@@DFFFFHHHHGJJIJJIJJJJJJJIJIHGIBHIIJGIJJEGIIJEGIIGHGHIIJIJIEHHGIIJGCHJJGIH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1757:2203 3:N:0::TGACCAA
+GGTCACTAAATATTCTATGATAAGATGATTTAAAGCTAGAACAATTACTTCATATGTCTACAGCATAACTCACAA
++
+B@?DDDDDFDHA?FBCEFJHGJJEDHDHHGCHIGEEHHIHIIIJEDCEHHFHIEG>GDABBGIGIJEIJEICDG:
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1896:2204 3:N:0::CGATGTA
+ACTTTGTGTTTGAGATGGCCCTAAATTCTTGAAGTCTGGTGATGCTGCCATTGTTGATATGGTTCCTGGCAAGCC
++
+?@@FFFDDFFHHDIGGHHIIGJJJGIIIIIHIGG>GIIIHGEHGIDFGGIFGHIIJIJCEGIGGIJEEHGIEIJH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1965:2207 3:N:0::CGATGTA
+GTCCAAGATAGAATCTTAGTTCAACTTTAAATTTGCCCACAGAACCCTCTAAATCCCCTTGTAAATTTAACTGTT
++
+B@@FFFFFHHGGHJGIJI>FIBJI at HHJIGHIGGIDHGEFEHGHG@DHGIHHIJJ at HGIICGIIGIGIJDGGE=;
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1785:2217 3:N:0::ACAGTGA
+TCCCTTGTGTTTGAGTGGTGTGTTATTGTGTGTATAGCAAGTAGACATGGTTTACTCATTAACTATCTGAAATTT
++
+CCCFFFFDHHHHGHIGHI?GGHHGHIGIIIIIHIIIIFEHIGHIJJJJIIGFHIHJGJJJIJIJJJGGGGGIJIH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1880:2219 3:N:0::CGATGTA
+GGTGGGAGGCAGGAGCTAAAGTTAGAGAAAAAACGGAGAGCTCCGGAAGAATGTAGGATGGGGCTCCTAGGAGTT
++
+@<BDDA+A)2ADA=B8A9C2?EF<BHH<FGIBG?6?FA6(...=/544:2;?CDDDECCC at B@6;<?########
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1872:2229 3:N:0::GCCAATA
+CTTTGTGTTTGATCTTGGTGGTAGTAGCAAATATTCAAACGAGAACTTTGAAGTCCGAAGTGGAGAAGGGTTCCA
++
+@@BDFDB:CF?C<GGG at 33AFEBH2CH@HGGFHGDDHGIGH>GAFDDAAFD9BGGDHH7B5 at E=CD?C2A#####
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1977:2232 3:N:0::ACAGTGA
+TGTAAAATATTTGTTGATTAAATATCTGGGGGAAGAGCTCAGTAAATAAATAAAGGTGTGAGTGATGGTCCTCAG
++
+CC at FFFFFGHHHHHBHDIGIJJJIJIIJIIJJIJHHIIHHIJ?GHHIIGJDHIIJJEFFGEH;CEHIIHECEFFC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1911:2235 3:N:0::ACAGTGA
+AAATTTGTGTTTGACAGGGGATGAAATACATGAATAAAGAGAGGCATCAGCTCCAAAAAAAAAAAAAAAAAAAAA
++
+ at B@FFFBADFFHHEHJJJIJEHH at BHGHEGH@DGD>HIIIJIIIIIGGIHEHIIIBF=FGADBDDDDBDBDD at BB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1814:2236 3:N:0::GCCAATA
+TTCAGTGTTTCGAATAGATATAGGCCTCTTCATTTTGTCTATTTTTGTGTCAGATTTGACAGATTATCTTTTTTA
++
+BCCFFDDDHHHHHIJJJHHJHIJJIJJJJJJJJJJJIHJJJJJJJJJJJIIIBGIJIJIJJJIIIJJHHJJIJJE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1785:2245 3:N:0::TGACCAA
+TGCAAGGAGAGCCAAAGCTAAGACCCCCGAAACCAGACGAGCTACCTAAGAACAGCTAAAAGAGCACACACGTCT
++
+B;+=:ADD++1+2<CF?AHG9F>?FE@@?0?@?)089/<AGHG;)7@@A?=?A)7;3;@A>A?=;5;5=??@BBA
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1754:2247 3:N:0::CGATGTA
+TGAATGATTGAAGATAGTGGGAAAAGAAGGAAAAACAAAGCGAGAAAAAAAAAAGAAAGTTTCAGAATTTTGAAC
++
+B@@DDADBHHBF?C9E4,AGH=FGG##################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1939:2247 3:N:0::CGATGTA
+CAGGTGATTGATACTCCTGATGCGAGTAATACGGATGTGTTTAGGAGTGGGACTTCTAGGGGATTTAGCGGGGTG
++
+@@CFDDFFHHHHHJJGIJJGIJJJFGFHIIGHJI;FGHHHHIIIFFHDFGFHIJJJJIBHGIAEEFHHFFDCD09
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2216:2123 3:N:0::ACAGTGA
+CTTTNNNNNTGNTTTTTTTTTTTTTAGAGACAGAGTCTCGCTCTGTCACCCAAGCTGGGGTGCAATGGTACCATC
++
+CCCF#####23#2AEHIIJJJJJG6@).7)=BDB;;6>>31,5=(5>95><8A28>AC(&&)2@@:>C#######
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2139:2128 3:N:0::CGATGTA
+CGCANNNNCAANCAATGTTCAACCAGTAACTACTACTAATCAACGCCCATAATCATACAAAGCCCCCGCACCAAT
++
+@<BF####23A#2<CEHHIHIIGAGCBGIJIJEHJJIGIJGGGHJGIIEIHGIGIIIEGGGIEEHHFDDBDBD?C
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2086:2130 3:N:0::CGATGTA
+ATGCNNNNTGCNTGAATTGGAGAAATCAACTGGTATTTAAAAGGATGTAAATTCAATGTTAAGTGTGGGCTAATG
++
+CCCF####22<#2AAEHGIIEIJJJJIJJFIIJGIIIJIIJIJIGIHFGIGIIIJIJJJJJGIGHHGIIIIEEHH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2222:2148 3:N:0::ACAGTGA
+TTGTNNTTGAGGGAGTTATCCTGAAAATTTTAGATTCTGTTCTCAAGTAGAATATTAGTTAAGAGAAGAGGGCAG
++
+BCCB##2=CDHHGEGFHIIJGIJEGIIJGJJIGECIIIJJIIIGD*?D at FH9DGIIHIFHHFECGG@GGIJJJGH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2154:2148 3:N:0::ACAGTGA
+TAACNNTTGACTGGTACTTTATAGTAAACCAAGCACTCCCATCTGAATGATCTCACTTAATCCTGGCAGCAGCCC
++
+C at CF##2=DFHHHJHGIJJJJJJJHGJJJIGIJGHIJJJIJJJJJJJJJIGHJJJJJJJGIJGIJJJIJIIJHHF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2185:2150 3:N:0::GCCAATA
+CGAGNNTTCAGTTATATGTTTGGGATTTTTTAGGTAGTGGGTGTTGAGCTTGAACGCTTTCTTAATTGGTGGCTG
++
+@@@F##22AFHHHCHHIIHHIIJJCFGIJJJHII?DGFHIJ at GFHIBGFCCHEHIIHIHHHHHHFFFFED?BEC@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2024:2150 3:N:0::ACAGTGA
+GAGANNTTCTGGACCAGCTCAAAAAGCATTCCCATCACTCGTTATTGCCTTCCATGTATCATTTGTTTTCATAAC
++
+B@@B##22:CFFHGE?HGGAGHCHCH9EG?EFHGGHJJIJF?DFHGCEHIECEDGEHHGII at GE@DHG>CEEE3;
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2064:2154 3:N:0::ACAGTGA
+TGGCNNGCTAGGCGGGGGTCCCCCTCCTCCCTCACCGCTCCATGTGCGGTCCTCCCCGAGCTGCGCGCGCGGTCG
++
+@@@D##22CDBHDIJE###########################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2103:2159 3:N:0::CGATGTA
+AGGGNNGGAAAGTCACCCGTAAGGATGGCAATGCCAGTGGAACCACGCTGCTTGAGGCTCTGGACTGCATCCTAC
++
+CCCF##2=CFFGHGGGIGIHHIJJFGGEGIIJIEGGGFGHIIJJIJIGIIGGGJGGIFFHH>EDDFFEDEE at CCC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2081:2166 3:N:0::TGACCAA
+GGTCNTTGCATCTGTCGCGGTGTGTATCTTTTGGGGGTTCAGCGCCACCAGCGACTTGGGCCTCATTCATCGCGC
++
+ at CBF#2=BFDBHHJBDHDFG8E:CFDIIJJJIEIJJI;;@CGGHHBDDEDDDDB at BBDCDDDDD<CCCDEEDBDB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2046:2171 3:N:0::ACAGTGA
+CTTTGTGTTTGAGGATGGGTTGAGATCGTTTCGGCCACAAGACCTCTAATCATTCGCTTTACCGGATAAAACTGC
++
+<B at DDFDBFHH8CEBGIICHDE;F3<??F8DE8:):?DHBEED8BFHGIA=CCGG>B at AEEH=@B8A/>A>A:@A
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2174:2171 3:N:0::CGATGTA
+GGGGGACATAGAAGGGAAAAAATATTGGCAGTGCGGACTGTGAATTTCAGTTTTCTAAGTGCTACATCTAATCAG
++
+BCCFFFFFHHGHHJJIFEGGGHGHIJJIIJJGHGIIGHIJIIIIJIIJJJIGGEHHHFHEFFFFFEEEEECEECD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2024:2176 3:N:0::ACAGTGA
+GTGGTACAGTAAAATTAGTTAAGATATATGAACCAGAAAACAAGAATAAAAGAAAAAGAATATAGAAGAGATATT
++
+BB at FDFFFGHGGHJIIIJHIGJIJCHIIJJIIJJJJIJJJIJJJJJIJJJHGIJJJJJJJJJJIJJIJJJFIJII
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2242:2179 3:N:0::CGATGTA
+TTGAGGGGGATGTTTTCATGTTACTTATACTAACATTAGTTCTTCTATAGGGTGATAGATTGGTCCAATTGGGTG
++
+ at CCDFFFFHHFHHHIJIJJJJJIJJJJGJJJGJJJJJJIIJJIIIGIJJJIIFFHHIJHBHIDIIGHGEEHFFDC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2143:2180 3:N:0::ACAGTGA
+GGCATCCACTTAGCTAACTATTGGACTTGGACTGATTATATTCTGGGCGGTAAAATCAGGATAAGCAGCAGATTA
++
+@@BFFFFFHHHHHJJJJJJJJIJJJIGIIJIJFIIIJJJIJGIJJIJIJJIHIJJJJJHHHHHFFFCEEEEEEEC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2210:2187 3:N:0::CGATGTA
+TATTGCGCCAGGTTTCAATTTCTATCGCCTATACTTTATTTGGGTAAATGGTTTGGCTAAGGTTGTCTGGTAGTA
++
+CCCFFFFFHGGHFHGJJJJJJIIGJIJJJJJJIJJIIJJJJJJJHIIIJJHHIJJJJJIHIJGIJGFHHHDEEFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2117:2202 3:N:0::CGATGTA
+TTTAGGCTAGATGTTAACAGAGACCCCCTTCTCCTCAAACACAAATGCTCAGGGTCACTGAACCACTGCTTCTCT
++
+BCCFFFFFHGFDHGJJJIJGIIJICHIIIJJJIJJJJJIIIIJGIIJJHIDFHGCFHIIJJJGHIGHHGGHHFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2097:2206 3:N:0::ACAGTGA
+TGTGTTTGATTGTAGATATTGGGCTGTTCATTGTCAGTTCAGTGTTTTAATCTGACGCAGGCTTATGCGGAGGAG
++
+B8=A42AAFH<:A,A,,<:I?B3CG at 2<+<+<AE9EBECFGF*:?F)?*??B4B940??A6-==>F)7B######
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2196:2206 3:N:0::TGACCAA
+TGATTCCTTGCCTGGCTGGCTCCTTTATTAGTGCCCATCTGCAGACTAATTGTGGTCTGGTCAAAAGGTTTGTCA
++
+??<DDD?DFFDHF33AAE>=CFAEHIFCHF4?41??D;>FF<BGAG<FGDBFDFIDHH=FEG at C@@HG77CA=AC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2154:2207 3:N:0::CGATGTA
+GCTCCTCCTGTTTCATCACAGCCAAAGGTTAGTACTCCAGTAGTTAAGCAAGGACCAGTGTCACAGTGAGCCACA
++
+B==;1AAACAFDD at DF,<+A3<<<E?;9E>@3E?111:?GD<BB>9*90?F@@E?DF;BC###############
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2138:2213 3:N:0::ACAGTGA
+GTCAGTAATTCCTTATTGTTTATTCTCCTCTTACAAAAAGACACTTGGGACAAATAAATACAAAATGGCATATAT
++
+@@@FFDADHH>ADHAGGEHIJBHIDFBBDAHI9DB<BEE@;?FDHII<FFB?FEECHID>CBF at GG@HIGGGHGI
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2089:2219 3:N:0::TGACCAA
+TTGGGGGAAAATTTAGAAATATAATTGACAGGATTATTGGAAATTTGTTATAATGAATGAAACATTTTGTCATAT
++
+??BDD1)<??:A?GBGEHBHGE at E>BF9CF9C)0*?@GEDGG<@DHGIHIB<4<84=C;=7C;CEEEGG;CEEHA
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2026:2222 3:N:0::GCCAATA
+GAGGGAAGTTACGCTTATTTTTTTTTTGTCTTTTGTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTGGGAGGG
++
+@@BFFFFFHHFHHJJJJJJJJJJJJJ@'()8CH9.BDHIJHFDDDDDDDDBDDDDDB at 7;757 at BB#########
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2184:2225 3:N:0::ACAGTGA
+GAGGTTGGGAAACTTGCCATATTATTAAAACATATAAAAGTATAAAGTCTTCTGTAGTGGCATACATGGTAAATA
++
+CCCFFFFDHHHHGIIIFHIICHIGIIIGEIJJJJJJJEIG at FHIGHIIIDFHIJJGGIIIIIJGIIJJIGGA;DG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2239:2229 3:N:0::ACAGTGA
+GGGGCTATGTAATCAACACTGTCCTTTTACTAATGGTTGCCCATCATTCTAGGCTTTATCAACTCCTTTATCACC
++
+CCCFFFFFHHHHHIIJGEGHHHIJJHJIIIJJJJIIGIIJJJJJIJIJJJIHIIJJJJJJJHGHJJJJJJJEIJJ
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2076:2229 3:N:0::GCCAATA
+GCAAAATAGTGGGAAGATTTATAGGTAGAGGCGACAAACCTACCGAGCCTGGTGATAGCTGGTTGTCCAAGATAG
++
+?<?=BDDDB:A>3:EGI9+AEHG><F<C99C;C at BDD######################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2214:2229 3:N:0::TGACCAA
+AGTTTCCTCCCTGTAAGGGTATAACTGAGGAAACCCAAAAGGCTCTGGACCGCTCTCTTCTTGATTGCACTTTCC
++
+ at CBFFFFFHHHHHJIJJIJFHIJJJJJJIJIHIIJJJIEDHIIJIJJIJJHHIJJJJJJJJHHGGHHFFFFFFEE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2053:2235 3:N:0::ACAGTGA
+GTTAGTCGGGTCTGCGAGAGCGCCAGCTATCCTGAGGGAAACTTCGGAGGGAACCAGCTACTAGATGGTTCGATT
++
+@@@F?BDFHH:C;GGHGBAEEGHEGIGEHIGIGGDHJIIIGHIJJFBEHD>AB;?ADDDDDCCCCCDC5@:><@@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2112:2236 3:N:0::GCCAATA
+TCTCTGTCTTTTAATTAGAACATTTAGTCCATTTTCATTAATAGCACCACTGATGTATTTTTGTTTAGGTCTGCC
++
+@@@DDDE>F<FHHEDEHBHGIBEHIGH:AFEHGHCIIJJJIJHHDII;FFFF at DAIHIEDIGHEEHH@FBFHFHE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2011:2239 3:N:0::GCCAATA
+CGGGAAACCTCACCCGGCCCGGACACGGACAGGATTGACAGATTGATAGCTCTTTCTCGATTCCGTGGGTGGTGG
++
+@?<DDDD?:DBFBDHEBGEGHEGGB?@G at F8CC@;CC>GGF9EH@>C at CD;?@CC at CA1-;>;;>C at BD3;35?<
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2038:2248 3:N:0::CGATGTA
+GCTTTGGCTGGTGAAGTCTTAGCATGTACTGCTCGGAGGTTGGGTTCTGCTCCGAGGTCGCCCCAACCGAAATTT
++
+CCCFFFFDHHF?CBHICBHGHHGC>BAEE at C9EBGGFGB8BGB@BBCGCGDGEBGHH'==BCDB?@B?B######
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2265:2123 3:N:0::ACAGTGA
+TTTGNNNNNGANGTGGCAAGAAATGGGCTACATTTTCTACCCCAGAAAACTACGATAGCCCTTATGAAACTTAAG
++
+?@BF#####22#22AFHIJJJJJIIIIJJJJJIJJJIJIJIJJIIJIJJJGGHIJJIJGGIHHGGFH at DFFFFEC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2303:2133 3:N:0::ACAGTGA
+CTGGNNNAGTANAGTATTTTACCTCTTTAATATATCAGCATGCCATATTACACATACTACTTACTTGTACTCATC
++
+@@<D###22><#2<ACF9FHHE?HBBE>DDEECIGG<CEGAH<DGGICGGCDGHIIHIC at BBGGIIIIHIICGHG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2468:2138 3:N:0::ACAGTGA
+GCCTNNNCTGAAAAGCTCTTGCTCAGTCTCAAAATGCTCAGCATGGTTTTGAGAAGAAGACTTGGTTGAGCATTA
++
+C<@F###22CFFHGGIHIIIIJJIIHHHIJIIJGHEGHHIIIGGIIDGHJHGGHGGEGHDHIIJJGIJEHEEEEB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2326:2139 3:N:0::ACAGTGA
+TTAANNNTTTTCTTGAAACTCTACAGTATACTACAATAGTGAAGGAAACTATTATCATGAGAGATCCTTCTGAAT
++
+CCCF###23CFFHJJJJJJJJJJJJJIIJJJJJJJJJIIHIJJJIDIGJJGHIIJJJJIJJIIIJIIJGJJJJEH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2351:2140 3:N:0::GCCAATA
+AGGANNAGGAGTAGAAATGGAAAGCTGGAAGGGAAAAGAAGAGCATTGGGGCTTCTTTCACCAGAAATGCCCGAA
++
+ at C@F##2=CFBCFHGIJGIICHGIIIIJFIFHI9CFGGGIJIGGIJJJJJAEHGIHIIGIGIIH<EADCFFFCD@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2386:2142 3:N:0::ACAGTGA
+AGATNNGCGGGCGTGAGCGTGTGTGCGGGTCTGGGTGCGTGTGAGTGTGAGCGTGTGTGTGTCTGAGTGCGCGCG
++
+1+1A#######################################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2427:2146 3:N:0::GCCAATA
+TGACNNTACATTGTATATTTCCATTGTAACCCTGACATTTCTCAAAGATAAAGCACTTTTTGATCATGAAATACA
++
+CCCF##2=DFHHHJJJJJJJIJJJJJJJJJIC at E3C3HH@?C9DGBF;BFF>?BBBFHIJCA7BA=4=FHCACE4
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2451:2154 3:N:0::TGACCAA
+GTTTNNGACCCCCGAAACCAGACGAGCTACCTAAGAACAGCTAAAAGAGCACACCCGTCTATGTAGCAAAATAGA
++
+B:+A##222ACF at 18@?CFGGGIHI?@?BD;?D>F=FHG@=CF9===@)7=A=D?53',5=;;ADD@(5>?(>A#
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2292:2154 3:N:0::GCCAATA
+CTTTNNATAATTCATGAGGTGAGTAGCTAGAGCATATCATAGAAAGCTCATCACAGCATTGGACAGGGCCTTGTC
++
+CCCF##2=CFHHHJJJIJIHGIJGHIJIIIJIJJIJIJIJJJIJJJGIJJGIJJIIIIIJIJJJJJJJJIJHHHH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2253:2161 3:N:0::ACAGTGA
+GAGGNNCAGTAACTTTTAATGGAAACAAACAACACAATACATTTTTATGTATGGCATAAAAATTGGCATGTTAAA
++
+8+14##222<?AAEHGBFAECCAFC;FEGHCHBCHEE at FHA?HHDHIIC*9BGGFHGIGC>C;CAGEHII=?AA?
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2479:2162 3:N:0::CGATGTA
+TTCANGGCTGTCCTGTGCAGTGTAGGATGTTTAGCAGCATCTCTGGACTCTGCCTGTCAGATGTCAGTGGCACCT
++
+@@CF#2ADHFBHHJIDHHIJAGBHHIEGGDDHHIHI at DGGADHGGGIJJJCIIIIJGHGIIIGGIIGCHGBDG;C
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2353:2165 3:N:0::CGATGTA
+ACTTNCAGAAACAGGAGAAAGGGATCCAACACTGTATTTTTTTCTTTTCTTTTTAGGTGTGTCCTTTTCATATTC
++
+<?BD#2ABBFHDHGEHHI<GFCGIEGH<GHCC*::DHIJI*.<FEH at CAG)8=DG;C@=A=?;?;?BDFC3>B>;
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2329:2169 3:N:0::GCCAATA
+CTGCAATAATGAAGGGCAAGATGAAGTGAAAGGTAAAGAATCGTGTGAGGGTGGGACTGTCTACTGAGTAGCCTC
++
+@@<DFF;B?F>FFEG at FHEGGBGA@HA@<AG at GF<EDDGGHIJHEFHCAG?B708FEHGEGGGHEA?>)=;BB at B
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2434:2170 3:N:0::GCCAATA
+CAGTGGATTTGGTTCATCAGGAGGACTGACAAATGGTAGTGGTCGATATATCTCTGCAGCACCTGGAGCAGAAGC
++
+ at CCFFFFDHHHHFHIIJJIJIGIJJIJJJJJJJJJJCHHHHJFFHIIJJJGIJJJJJJIIJJIIIGCHFHFFFE@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2308:2177 3:N:0::GCCAATA
+GACAAACCTACCGAGCCTGGTGATAGCTGGTTGTCCAAGATAGAATCTTAGTTCAACTTTAAATTTGCCCACAGA
++
+CCCFFFFFHHHFHJJJJJJIDGGIIIHGIIDGHIIIIJJEHIJIIJEIJIHHIGIIIJJIJJJIJJJGHHEHFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2493:2177 3:N:0::GTCAATA
+GACCCACGAAACCAGACGAGCTACCTAAGAACAGCTAAAAGAGCACACCCGTCTATGTAGCAAAATAGTGGGAAG
++
+CCCFFFDFGHHHHJIJIGDIJIJJJJJJIJJGGHEIBHJIIJIEHGHIJBBECEEFFCEEFFDCEEACDCBDDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2356:2185 3:N:0::GCCAATA
+CCTAGCCCCAAACCCACTCCACCTTACTACCAGACAACCTTAGCCAAACCATTTACCCAAATAAAGTATAGGCGA
++
+;@@DDF??FFHD:;+<1CCDGCABDGDEGCEE>CGHDGCHFHEG at FHGJIIF;CHIGGHG9D at EAHEHGEB3?BC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2404:2187 3:N:0::CGATGTA
+GCCTGGGATACATTTCAAGACCCGGAGTGGATGCCTAAAACCGCAGATAGTACAGAACCCTACACACTATGCTTT
++
+CCCFFFFFHHHHHJJJJJIJJJJJJGIDFGGGIIJIJJGIJGHGJJIJJJIHIGHIHHHGFFFFECDDEDDADED
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2280:2193 3:N:0::TGACCAA
+GTTTCATGTATGTATAGAACATATCTTGTGTTTGAGTGGCTGAGAGAATTTTTGCATTTCCACCCAAAAGCCCTC
++
+BBBFFFFFFHHGHJGGGGICHGHGAIJ>FF?FH><??@C??F>DE<?D0BBFH0*09D*BC)=;A5 at FE7(6A;=
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2343:2195 3:N:0::CGATGTA
+AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGGAGATCTCGGGGGGCGCCGTATAATTAAATAAAATATGGCAGA
++
+??;:DD at DH)CAA@)<EFGCCFA73CF)?3091B;D*9B####################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2440:2195 3:N:0::GCCAATA
+TTTTTGTACATTGATTTTTGTATCCTTAAACTACTGAAGTCATTCATTGGGTCTAGGAGGCTTTTGGTGGCAACT
++
+?@<DDF+ADA<<D4?EHGD at 3:CAEE at HHH>E911:EDF*:?G@<DCF at C?FFG:DF8B(7=BGIG@=D=(?>CC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2377:2200 3:N:0::TGACCAA
+ATATATGGGACTATGTGAAAAGACCAAATCTACGTCTGATTGGTGTACCTGAAAGTGATGGGGAGAATGGAACCA
++
+;@@FFFFFGHHHHJIHGIIJIJGGHIIHICHIFA8C>FGEGCFDA?FHHGFHHHI?FF>G>DC7A<GHHHGEEBD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2356:2207 3:N:0::GCAAATA
+ACTCTTAAAAATAAGCACTTATACCTAACATGCAATACTGCAGATGCAAGTTAAACTTATCTGTTAACAGCTGCC
++
+1:=;?BB:CA<DHGIG:A3AF<,3C?ECBBH9CFCF99C?BCDC?<FFAD*9BFCF at A?BFFFGEGIEC:8=@A2
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2312:2211 3:N:0::TGACCAA
+ACTCAACCCAAAAAGGCATAATTAAACTTTACTTCCTCTCTTTCTTCTTCCCACTCATCCTAACCCTACTCCTAA
++
+@@@FFFFFDFFHHJJGDGG>HHHIJJIIEIIIFIJIIEHIEHFIIIJJIGCGHJFIJJIGGCD at CCEDGGIHHDE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2395:2222 3:N:0::ACAGTGA
+TTGTGTTTGAGGGTCTTGGAAGCTTGACTACCCTACGTTCTCCTACAAATGGACCTTGAGAGCTTGTTTGGAGGT
++
+BC at DFEDFHHHDAGFHDIGHJJFIGIGIGIJEGHEIIGGIFIJGIIIGBFFGGIIJJIGIC@DEGGHHHHFBDF;
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2460:2222 3:N:0::CGATGTA
+GGCTCACGCCTGTAAAACCAGCACTTTTTGTTTTAGTCAGAGGCTTGTCACGGCGGGGTCCCACCCCCCCGGCCA
++
+B@;DD>?####################################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2344:2226 3:N:0::ACAGTGA
+ACACAGACTCCCCCACCTTCCAGTCGGGCACGTCCTTCATGATGATGGCCTCAAACAAGATCGGAAGAGCGTCGT
++
+B at BFDDFFGHDFHIFJIIEHIBGAGGIHEAF@0?FGCGGGIEHGEGBGAGAC at EHIHEHDHFEBAACAACB>?B8
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2432:2228 3:N:0::GCCAATA
+AGGGAGGTTGAGGCTGCAGTGAATTATGATCACACTACTGCACCCCATCTGGAACAACAGAGCGAGACCCTGTCT
++
+=@@FDFF<C;3C8EHA?EF>FFH at 9B?FFGHGGGGGGGEG<FHIJE=FHIDBHIIGDIIGIHGHEHFFBBCC@@A
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2315:2240 3:N:0::CGATGTA
+GTAGTGGGTGTTGAGCTTGAACGCTTTCTTAATTGGTGGCTGCTTTTAGGCCTACTATGGGTGTTAAATTTTTTA
++
+B at CFDFFFDFHHHIGGIIJGHGGHIIIGGIJJHHIIDDHIGIIIIIG9CA=BFIJJHIJIJ=@=ECEF at CD@CC=
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2410:2243 3:N:0::CGATGTA
+CTTTGTGTTTGATTTTAGATATTGGGCTGTTAATTGTCAGTTCAGTGTTTTAATCTGACGCAGGCTTATGCGGAG
++
+@@@FFBDDHFHHHJJIIJIIEJIIGIIIFIJFIGIJEIEIDHIHIHDDFG?FHGIJJJCHGIJIIJJIIJJGHFC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2441:2249 3:N:0::GCCAATA
+TAGGCGGGATGTAGGTGACGGCTGAAGTGCCGGTTGAAGTGCTTGAGCATTTCATGGCTACTTCCTAGTTGTTAT
++
+CCCFFFFFHHHBHIJDFGGIIJJJJI at CFGIIJBEFFFF?CECEEDCCDDCCEDEDDDDDDCCCCCACCDC3<@C
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2634:2122 3:N:0::CGATGTA
+CTAANNNNNATNAGGAGAGAATTCGATCACCCTTAGCCTGTTTGACTTATGCAGGGCTTCAAGAGATGGGATGAT
++
+1+1A#######################################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2566:2123 3:N:0::TGACCAA
+CGGGNNNNNTGNAGAGCCTACTCTGACATGAGAGAAGCCAATTACATCGGCTCAGACAAATACTTCCATGCTCGG
++
+CCCF#####22#2AEGFIJIJIJIJIJEIJJIHIJJIGIJJJJJJJJJJJHGIIJIIJGGIFIHHFF<EEFBFF@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2503:2125 3:N:0::GCCAATA
+TGGANNNNNTCNTCTGTGAATCTCTGGTTCTGGACTTTTTTTGTGTTTGATCTTGCTGTGTCATGCCCGCCTCTT
++
+<B at D#####32#2<CGHIJIJIJIJIIHIJIJIIJIJJIJJIEIJGIIIGGHIJJJJJIHHHHHHHFFFBDDDDC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2525:2134 3:N:0::TGACCAA
+CTGGNNNTAGTNTGTATTTTATGGGCTTTAGTTATCAGAAAGATTTTTAAAATTAGAATATTTGTGGGAACATGT
++
+ at CCF###22CC#3A?EGIIIGIIIJFIJJIIIIJJIIJJJJJJIFJJJJIIJIIJJIIJIJJJIJJJIHGHHHHH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2683:2140 3:N:0::TGACCAA
+ACACNNCCGTCTATGTAGCAAAATAGTGGGAAGATTTATAGGTAGAGGCGACAAACCTACCGAGCCTGGTGATAG
++
+ at C@F##2=DFHHFIJIJJJJJJJIJJHIIJJJJJGHIIJJJJEGGIJJJJGIJIJJHHHHHFFCCBDDDCCCDEC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2708:2142 3:N:0::ACAGTGA
+GGGGNNGCAGAACAAATCAAGCACATCCTTGCTAATTTCAAAAACTACCAGTTCTTTATTGGTGAAAACATGAAT
++
+@<<D##22<ADB>;A>FG at BDEHIIGGGEIJJEFHIJIIGIJIIICEHGGDFFGHIJGGGIH@EHEGGHIJ=AEE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2541:2143 3:N:0::TGACCAA
+AGGGNNGGGGAGAGAAAAAAAAAGGCTGCCTCTCTTCATACAATGGGTCTCTTTACCCTTCCTATTTCTCCCTCC
++
+=B at F#######################################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2728:2143 3:N:0::ACAGTGA
+TTTTNNTTTTTTTTTTTTTTTTTTGGGTTTGAAAATTTTTTTTTCAAAAAAAAATTTTTTTTTAAATAAAACAAA
++
+CCCF##2=DFFHHJJJJIJJHFDD###################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2658:2145 3:N:0::TGACCAA
+GGTANNAGGTACTTTTGACATTCAGTTTTGCTATATAGAAACAGAATGAATAAATGAACTTTTTTCTTTTTTCTT
++
+B+=D##22<<CF?E>G4:A?,,,3:2A@<E9:*C<C4C4H1??DGHGCEE at AGCFGC>?B*883B;F########
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2584:2147 3:N:0::TGATCAA
+CATTNNCATTTTTTGGACTGCTAGTTTTTCTATTTAAATATTTGCCTTCATGTTAGGAATGTACTATGTGAACAT
++
+CCCF##22CFHHHJJJHIJGJJIGGIJJJJFIJIJJJJJJJJIIIIJJIJFGFHIIJJJJJGIJJJJJJJFGFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2638:2148 3:N:0::TGACCAA
+GCTGNNTTTAGATGTTATTTAAAGTCTTGGGACTGAGTAAGATTACTTAAAGACAGCGTAGCTCAACAAGGGACT
++
+<@BF##22AFFHDHFFIIIIJJEGFIIJIGHIIJJGI?DHHIEIJFIEHGHIJIJIJGB;AGCEEHGHIHFHHFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2611:2155 3:N:0::GCCAATA
+TTGTNNTTGACGCGCTACCTAAGAACAGCTAAAAGAGCACACCCGTCTATGTAGCAAAATAGTGGGAAGATTTAT
++
+CCBF##2=DHHHHIJJJJJJJJIJJJGIGJJJJJJIJGIBFHJJJIJJHHHHHHHFFFFFCDCEEDDDDBCDDDE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2639:2169 3:N:0::GCCAATA
+TTTATCAAAAACATGATTACAGGGACATCTCAGGCTGACTGTGCTGTCCTGATTGTTGCTGCTGGTGTTGGTGAA
++
+CCCFFFFFHH?HFGIGIIEGIGHIIIGIJIIJJJDIIGJIIDGGGGHGGGDFGHIIJJGIJJJGI8@=DHJ?EHA
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2738:2172 3:N:0::GCCAATA
+TTTTCTTTAAATAAGACAGCACTGCATGCTACGGAGAAATCTTTCGTGACAGGAAGAGTCAATGCGGCAAACTTC
++
+ at CCFDFFFHHHGHJGGIJJFBHIJGIGIEGIIIIIIGIJJGJEIJIGHIGFHIEIIJI@FGGIGGIHHDACEACC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2518:2172 3:N:0::ACAGTGA
+GGGAAAGGGTATAAGTGGCGATATAGCGGGAAGAGTCTGGGGGACAGGAGGGAGAGGTAGAGAGGGTGGGGGCAG
++
+###########################################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2720:2172 3:N:0::CGATGTA
+ATGCTGTTAGAATGCTTGGGCCATGTCAACATGTTGTATTGCTACAGAATAAGAAAGAGAAATATTTAGTTTATA
++
+:=8?;+2AFAFF###############################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2542:2175 3:N:0::GCCAATA
+GCACACCCGTCTATGTAGCAAAATAGTGGGAAGATTTATAGGTAGAGGCGACAAACCTACCGAGCCTGGTGATAG
++
+?<BB7:?8 at C1CAE><<C>CH3F at +AAFE3??1?FGF9B49*000?*??6B44BE####################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2569:2179 3:N:0::TGACCAA
+TGATGAACTGGGCTTATGTGAGAATGTCTATATTTTCATAACACAGCCCCAGAATCTTTCTCTCAGTTACAGCCT
++
+ at CCDDD?EHGGDHIE at FHAICHDHAG@DIIF at GGAGIE@HGIIDGC?DGHGGIIICGIGEHJJIHGCGGHIIFGG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2591:2180 3:N:0::ACAGTGA
+GTTTTAGTGTGTGTGTGTGTGTGTGGGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTATTATATATAC
++
+81??DBDACFHADGAAF<C?B?:A<+:1?::?8B at GHH@9B9?9BCC=C==@D==@@E>E@@(().7(;>D>@D6
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2653:2183 3:N:0::CGATGTA
+ATAGACGGGTGGGCTCTTTTAGGTGTTCTTAGGGAGGTCGGCTGGGTTCGGGGGGCTTATCGTTGGGTCTCCCTG
++
+?@@DDFA?D0<)<+++1CFH49*1:?D################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2748:2190 3:N:0::CGATGTA
+AAATAGTGGGAAGATTTATAGGTAGAGGCGACAAACCTACCGAGCCTGGTGATAGCTGGTTGTCCAAGATAGAAT
++
+@@@DDFDDHHHHGIGIJJIGIIGIGJIG<CFHGGIEGEGDHBBGEEHIGA?EHHGFFCF at CDDCED<ABCCCDCC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2670:2192 3:N:0::GCCAATA
+AATCATAATCTGTACTGCCAGAGAGTATGATTTGAAGGAGATGGGAGCAGATGTAATTCTTGGCTGGAATCTCTC
++
+B@@DFFDDHHFHFHIJGIGEHEGIHCDHIGIJIIIJIIGHFHIFIIJIIIIJHFHGIJJGGIIGIJGDGIIGIIE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2551:2197 3:N:0::CGATGTA
+GAGGCGACAAACCTACCGAGCCTGGTGATAGCTGGTTGTCCAAGATAGAATCTTAGTTCAACTTTAAATTTGCCC
++
+CC at FFDDDHHGHHJJIJJJJFIGII?FGGIIIJJIHIIJJIIJIIIIJIFHEFHHGFFFFFFFEEEEDECDCDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2692:2200 3:N:0::ACAGTGA
+ACAAAGGGCAGGGACTTAATCAACGCAAGCTTATGACCCGCACTTACTGGGAATTCCTCGTTCATGGGGAATAAT
++
+CCCFFFFFHHHHHJJJJJJJIJJIJIIIIJJIJJJIGCHIJFGIIFGIJ3=?CHHFFFFFDCDEEDDDB?BDDCE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2720:2201 3:N:0::CGATGTA
+CTTGTGTTTGAGCGGCCATCCGGATTACATCCCATATTTGTTGCATATTTTTCAAAAAGTGCCAATCAAAGCCTA
++
+@@@FDEBDHGFHHJEBGIG;FHGEHIGGGIJGHIDHIJIIHIIIIJJJIJFHIIIGIJFAHFFFFFFDCCECDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2616:2203 3:N:0::TGACCAA
+CGGGGTGCGTCGGGTCTGCGAGAGCGCCAGCTATCCTGAGGGAAACTTCGGAGGGAACCAGCTACTAGATGGTTC
++
+@<@DFDDDHFFFFA:CD;DE)6 at 6?FAB</13@=)BAEAEED8 at AC;;C=9=>6??A8??88>CACC at C:AC:>>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2518:2205 3:N:7682::CGATGTA
+TCTGCAGGATATCGCGGCCGCTCTAAACGTGGTAAATTGTTAACTCCGAGCTAGACTTCAGGTGGCCGTATTTAT
++
+CCCFFFFFGHHHGJIIIGIEFEHIJIJIIFGICFHIJJJJJJJIIICC<9?ACECCEEDDDC>@BDDB at 6?CDEC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2572:2207 3:N:0::GCCAATA
+TTAAGAGATGACTTCGGGTGGGGGAAACCAACCCACCCCTTAATTTTGGTTCAAACCTTTTTCAGCCTCCCCCCC
++
+?@@FFFD;4A?<AA?C###########################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2740:2214 3:N:0::GCCAATA
+ACCGGGGCGGTAGTGACGAAAAATAAAAATACAGGACTCTTTCGAGGCCCTGTAATTGGAATGAGTCCACTTTAA
++
+@;<DBDDAHDHFF))==6;<AEEECE)=C;BC>766;6>3;>ABBC/8<5+8(9:(:3::ACACCC3:C>CCCA>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2644:2220 3:N:5122::CGATGTA
+ACTAGTATGGCCCGGGGGATCCTAGAGACCATTCGCGATTCCATGAGACTCCAAGGGTTCTGCACAACTTATGCA
++
+CCCFFFFFHHHGHDHJJJGGGIJDII at GHJD>FHIIEBDEFEEEAECEDDDDCDDDD(9?CC>CCCDDDCC at C@>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2572:2228 3:N:0::GCCAATA
+CGATGAATGTGTAGTGGCATGGTTAAAGCAATGGGTTTATAAACTCTGAAGGAGTCCTTCACCATTTTTTTCTCA
++
+@<BFFFFDHFFHDIFFAFIEGGAHHIIEHGCDC<FEGHHHIJJGFHJJJGBDGHIEGGHGGGEEGIIIJIFFC at C
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2694:2228 3:N:0::TGACCAA
+TATCCCTAGGGTAACTTGTTCCGTTGGTCAAGTTATTGGATCAATTGAGTATAGTAGTTCGCTTTGACTGGTGAA
++
+CCCFFFFFHHHHHJJJJJJJIJJJJJIAGHIIGIIJJJJCHIJJJJJIJH at FIIIHIIJGEHIJJJGHIJJCCEH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2629:2230 3:N:0::TGACCAA
+CCCCTTGTAAATTTAACTGTTAGTCCAAAGAGGAACAGCTCTTTGGACCCTAGGAAAAAACCTTGTAGAGAGAGA
++
++=1A:D+A<B,A?@,A?<+AAA433<AH?;EF@?)C)::DHB9FH*0:)0?99?*8*).4@;C=@=@A#######
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2541:2237 3:N:0::TGACCAA
+GCAGTCCTTGGACTTCGTAAAGATCATCACCATCCTGGTCACGGCCACAGCGTCCAGCGTGGGGGCAGCGGGCAT
++
+CCCFFFFFHHHHHJJJJIJJIIJIJJJIJJJJJJJJJJJGIIFIJJJIJIDHHEIJJIHEHFDDDDDDDDDDDDC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2512:2238 3:N:0::ACAGTGA
+GGGCCGGAGTAATCCAGGTCGGTTTCTATCTACTTCAAATTCCTCCCTGTACGAAAGGACAAGAGAAATAAGGCC
++
+C at CFFFFFHHFHHJJJJJBGIIDHIJJIJJJJJJJIJIIGIHJJJJJIIHGHIEGHHHHFFFFDEEECEDDDDCB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2572:2245 3:N:0::GCCAATA
+AAAACACACATTTCACATAGTAGTGATTTTGGTATCTTTGAACTACTGAGATTTTTCAGGTTTAAACTTAACATT
++
+ at CCFFFFFHHFHGJJJJJJI<CHICHIIJIJIDEGIJJJIIJJJJJJJJJBGIIIIJIHJGIGGGGIIJIGIIIG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2664:2246 3:N:0::ACAGTGA
+AGCGTTTTCTATCGAATCTTGAGGGTTTTCTAGACATGAGGTCATATCATCAACAGAGATACATTGACCTTCTCT
++
+CCCFFFFFHHHHHJIJJJJJIFIJIAGIJJJJIIJIJJBGI?FHIJIIJJGIJIJIIJJJHJJJJIJJIIIJHEE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2598:2246 3:N:0::CGATGTA
+GCTTTCCCGTGTCTTTCCTGGTGATGCCTTGTTTGGGGTTCTGTGGGTTTGGGTGGGAAGAGGGCCATCTGCCTG
++
+;?@BDFFFG3CD?EGHEA<CF?FF9F9EFHH*1?CFEBFGGGCFBHE(;B;FH;;EE9?BDD=A951;;@ACDA:
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2751:2116 3:N:0::TGACCAA
+TTACNNNNNNNNNAGGTGTATATAGTAAATCCGTTTGTAGAGAGTATGAAGTTTAAAAGGTCTTAGCAGGTACAT
++
+CCCF#########23AAFCDHGIIJIIJJJJJIGIJJIIJIIIHBFHIHIFFHGIIIIJJHIJIJIIJIJDEHGE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2972:2117 3:N:0::CGATGTA
+TGGGNNNNNNNNTTTTGAAGACCCCTCCATGAGTTGCCTTAGTGTGATCTTTAGAGATGTTGGAGACATTTTATT
++
+CCCF########22AF=FIHGJGIIJIIADDGGHGIJIGJJJHFDGCGIEHGHIBGFGDDAGHIJJJJFHEHFEE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2858:2117 3:N:0::ACAGTGA
+AAAANNNNNNNNACAAAATTCCTAGAAAATAACGGTAAAGTATATTGATTAGAACCTATTGGTTTTGACTAAAAC
++
+CCCF########22AGHIJJJJJJJJJIIHIIJJJDGIJJGGIJJJJJJIHIIJJJJJJJJIHGIJIGHHHHHFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2819:2125 3:N:0::TGACCAA
+GGCCNNNNNAGNGCTTGTGTTGAGATTACCGGAACGGTCTGGAAAGGCCGGCAGGATGGGAGACAGCCCCGGACG
++
+B@@F#####32#2<+A1C?GHIHED<BGGE80:@@FH(7(8BBFE at 66.;A:?ABB###################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2877:2125 3:N:0::CGATGTA
+TCTGNNNNNCCNGGTGATAGCTGGTTGTCCAAGATAGAATCTTAGTTCAACTTTAAATTTGCCCACAGAACCCTC
++
+<@@D#####22#2<+2CFBFH42A+AC:EFGGIBC at BGGGGDGIBHGB?DBDBGHIGAHHI at FDC@ECEGE(-6?
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2783:2126 3:N:0::CGATGTA
+GTTTNNNNNCCNTAGTAGGCCTAAAAGCAGCCACCAATTAAGAAAGCGTTCAAGCTCAACACCCACTACCTAAAA
++
+C at CF#####32#2AEEGIIJJJJJJJJIJJJJIJJJIJJJJJJIJJJJFEFHIIJIJIIJIJHHHFFFFFEEEDC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2924:2127 3:N:0::ACAGTGA
+TGTTNNNNGTGNTTGTTGATCTTTTTTTCCTTACAGACACCCATAATAAAATATCATATTAAAAAAAAAAAAAAA
++
+ at C@F####32A#2<EGIGIIJJJJJJJJIJJJIIIHGJJJJJJJGIJJIIHHIIGIJIJHHHGHHFDDDDBDDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2833:2134 3:N:0::TGACCAA
+TCCCNNNAAAANGTATATTTTGTTTGAGAAATTTGTTAAATTATTTAAAGCAAATAATTTAACAAATTTCTGGAA
++
+B at BF###22A;#2<CFAHCHIJJBGCGEFGHIJGGDGGCHDEIEGIGIEGHGHGHHHDHGGIGJE at CGIECGEHI
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2979:2137 3:N:0::GCCAATA
+CCATNNNGGGGTATCTAATCCCAGTTTGGGTCTTAGCTATTGTGTGTTCAGATATGTTAAAGCCACTTTCGTAGT
++
+CCCF###2<CF<DFIJJJJJJJJJGIJJJJBGIJIJJIJJJJIIGHHIJEBFHGIJJIJFHIIJJJJJJJJIHHE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2847:2145 3:N:0::TGACCAA
+CGGTNNGGGTGTTTACGTAGACCAGAACCAATTTAGAAGAATACTTGAAGCTAGAAGGGGAAGTTGGTTAAAAAT
++
+?@@:##22A+<<AAFBHGEGHDGEGGCEGIJCGIIGIIIJJEGIGGIHIJFBFHDGHFIIGHE?CEHFEBB:@C@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2811:2145 3:N:0::ACAGTGA
+AAACNNAAGAATGCAAGATTATTAAGTATTGTTCTCAGCTGCCAACTACATAATAATCTTGCATTCTTCAGTTGT
++
+@@@F##2=CF<FFIJIGIHICGGHJJHGIIJFHE at GGHHIIGIJJEEGIJ@GHGEHIECCHIIHEGIIJJIFGEC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2885:2146 3:N:0::TGACCAA
+CCTANNGAGCCTGGTGATAGCTGGTTGTCCAAGATAGAATCTTAGTTCAACTTTAAATTTGCCCACAGAAGATCG
++
+CCCF##2=DHHHHJFHHIJJJIJJGHJIJJIJIJJJJJIIJJJIJHJJJJHHIJIJJJJJJGIJIIJIJHIJJHG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2770:2150 3:N:0::CGATGTA
+CCACNNGGGCGGTACACCTGTCAAACGGTAACGCAGGTGTCCTAAGGCGAGCTCAGGGAGGACAGAAACCTCCCG
++
+ at C@F##2=?DFFHHBHJIHIBFFGGEHHFHGGJFBHG6CCEHGDHHF at BFCBDCCDCDDD=<ACBDDCCADCDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2862:2156 3:N:0::CCATGTA
+TTAGNNATAAACGAAAGTTTAACTAAGCTATACTAACCCCAGGGTTGGTCAATTTCGTGCCAGCCACCGCGGTCA
++
+???D##2+<D7AFG?:?G4+C<?EHGEECGEGD<FFHGHGIG=68?@A(8=;@=;7CCHHCHH############
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2796:2160 3:N:0::TGACCAA
+CACCNNAAGCCGCCGGAACCGCGACGCTTTCCAAGGCACGGGCCCCTCTCTCGGGGCGAACCCATTCCAGGGCGC
++
+CCCF##2=CFDAHIIIIHIJIJIIIGEHHFCFDDCCDCD>BBBB=:ADCDCDB at 58@B;@<DDBDA>CCCCDB;@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2826:2161 3:N:0::ACAGTGA
+CCGANNGGGGGGGCGGGGGGGGGGGGGCGTGTTGAGCTCTGCACCCGAACATAGAGGCGGGCCCCCCCCGACCGC
++
+=?BD#######################################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2995:2162 3:N:0::CGATGTA
+TGGCNGTGAAAAACAGTGTATTTAAAGAAATACACTAAAACCAATAATTATGTTTTGTTGAAGAGATTTGAGTTC
++
+B at CF#2=DHHHHHGHHEHFFHIJJJJIJJJIJIJJIJJJIIJGHGIGJIIGHDGIIIHJJIGIHGGIIIIGHGHH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2943:2165 3:N:0::CGATGTA
+CAGGNTTATGCGGAGGAGAATGTTTTCATGTTACTTATACTAACATTAGTTCTTCTATAGGGTGATAGATTGGTC
++
+CCCF#2BDHHHHHIJIIJJJJJJIIJJIJJGIJJJJJJJIIJJJJJJJJHFGIJJJGJGIJJCGHGGHHHHHFFE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2869:2177 3:N:0::GCCAATA
+CTTGTCAAAACACCTGATAAATACATAGGCCAAAATGGATCTCTAATGAAATATATGTGACTTTATCTTACATGA
++
+CCCFFFFFHHHHHJJJIJJJJJJJJJJHIIIJJJJIGEHCGGFHEIJ at EIFFHIIIIHIIIJJJGIIIIHIJJJG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2816:2183 3:N:0::TGACCAA
+GTTGCTCGCTCTAATTTGTCACGTCGGTCTGTTGAAATATTAAACCTAACATGGTCACCTTCCAGCAGGGTCACC
++
+CCCFFFFFGHGHFIIJJJHEHIIHGHJGHHIJFJJJJJJJJIIJHIJIIJIIIIFHHJGIJJGIHGHGHF?@AED
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2957:2184 3:N:0::CGATGTA
+GGGGTACTGGCGGAGGCGAGTGGGGAGAGGTGAGTGATAGTAAGAGGTGAACCTCAGCAGGGAAAAAAATTGTGA
++
+1+=?#######################################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2848:2194 3:N:0::CGATGTA
+TATGCGGAGGAGAATGTTTTCATGTTACTTATACTAACATTAGTTCTTATATAGGGTGATAGATTGGTCCAATTG
++
+ at CCFFFFFHHHHHJJJJIIIFFHHIJIIJJJJJJDIIIIIJJIHGIJJIJIGJJJJCGIJJIGIGHIJIHHHGDF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2791:2198 3:N:0::ACAGTGA
+CGCAATCACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACAC
++
+@@@ADDFDHAH;6CEG?;FG<A<AEGIEEGG?<F?DHGIE<FGIJBE=<?B=9;9?@;;?2<??@BBB>B;?BDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2825:2198 3:N:0::CGATGTA
+ATTGGTCCAATTGTGTTTGAGGGCTGTTAATTGTCAGTTCAGTGTTTTAATCTGACGCAGGCTTATGCGGAGGAG
++
+?<BFBDED8DFH<2<CGH::CEA>DG+C>9*@4:*??FD?9??F?BBFHE?44B<FFFH';@@D@:C at AHBBA##
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2969:2201 3:N:0::CGATGTA
+GGGCTACTGCTTTATATGACTTTCTAAACTTCATTCCTTGCCCAAGCTGAATCTAAGCACGTACTACAGTGCTGA
++
+@@@DFFFFGGHHHJJJIJJJJIIJIJIIIJJHCHJIJJIIJJIIJJIIJGIHJIJJJIJJJHGHHIJJJ=FEHIF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2994:2203 3:N:0::ACAGTGA
+GGGGAAGGCGCTTTGTGAAGTAGGCCTTATTTCTCTTGTCCTTTCGTACAGGGAGGAATTTGAAGTAGATAGAAA
++
+?@@=BDDBFFADHIIIDGHCHHICEIIIAGEIIJGGGCHBGGIHDHHIEHH<HI6@;@CGGCCEH??ACCDD at D@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2812:2220 3:N:0::ACAGTGA
+TTGTGTTTGAGTGGTGGAAGAACGGTCTCAGAACTGTTTGTTTCAATTGGCCATTTAAGTTTAGTAGTAAAAGAC
++
+CCCDFFFFHHGFHGCGIIIIIJJJJGHGGIJIIIJJGHIIGGIJIEIIFIDHGIHIIHGFHIIEGGHGGGGIHHD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2962:2221 3:N:0::TGACCAA
+CACGGCCAAAAGAAGTCTGGTGTAACTTTATTTATATTAGACAAAGTAGCTTTTAAGACCAAAAGAATTAGAAAT
++
+CCCFFFFFHHGHHJJEHHIJHGHIIJJJJIJJJJJJJJJIJJJJJJFHIIJJJJJIJJJJJJIIEHGHHHHEHEE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2786:2222 3:N:0::TGACCAA
+TGGGAGCATCATAGGGTTACTTTATACCAGTTGTAACATTTTCATTGTTTTTGGTTGTTCTTTTTTTTTTTTTTT
++
+CC at FFFFFGHFGDGIIGGGIIJGIIGGEGIGIIHEEHIJHEHHGFGGFHIGGFGGGIGIIG@HGHIFCDB at BDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2758:2223 3:N:0::CGATGTA
+AAACTGCTCTTTGAAAAATTATTTTTAAAAATTATTTAAAGGTTGTATTAAAAATACAACCGTCCCATCATTCAG
++
+C@@DDFDDHGFDDHIEGIA<FFHJJJII>@GHIIJJGIIJIE:?DFHIIHHGIJDGHGIIGIJIIIGEIIIIBHC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2870:2228 3:N:0::TGACCAA
+TTACCTCTTAAATATCTCTGTTCCCTTCTAAGTTGTTTGCTGTGTTTTCTTCAGAGCAAGAAGGTTATATTTTTT
++
+CCCFFFFFHHHHHJJJIJJJJIJJJJIJIJJJIIJJJJJIIJHHHIIJJJHIJJJIJJIIIIIJGHIJJIJIJIG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2989:2233 3:N:5634::ACAGTGA
+ACTAGTATGGCCCGGGGGATCCGTTAGCTATCGTTCGCGAGAAAGTTAGTAGACACACAGGACCCAGGCGTGCAA
++
+?@@FDADB<;+2<CF>CG?@F at F6)(@AH at F;C7C;AHB</93:(,:@>:;;@(59<5?A?A?(2?#########
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2897:2238 3:N:0::GCAAATA
+ATAATGGAACTTACAGACACAGAACTGATTTTATACACCCGCAAACGTGACTCAGTAAAATGGCACTACCTCTGC
++
+B;??D;DDBDDHD:AA<<C at EEBEHIJJ<9AEHGIIDBFHG at GADB6==BF<4=@=@GE;)@A6==?EH>@DFCC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2799:2240 3:N:0::ACAGTGA
+TTACATTCGATAGTGTTACTGATAACAAACCTACTTAAGAGATATGTTGCTTTTTACTTAAGGGATAGTGTTGAT
++
+@<@DDFDFHHDHHCF at GGGI>DHJIIGJJGHGGHHIIFEGGD>FIIJIII>GHIIIGGIGFEHGAGDHIHFHJIC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2765:2245 3:N:0::GCCAATA
+AAGCAAGTGGTGGTTTTAAAATCTGTTATTTCTTTTCTTCCAGTCATAAACTTTGAGGAAGGTATCTCATTTTTA
++
+BB at FFFFBFFCFHFIIJIJGGGGHIIJJIIJJIIJJJJJJIJJIJJJJJJIJIIJIIJHDGIFGIIIJJDHIJID
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3034:2128 3:N:0::TGACCAA
+CCATNNNNGGGNCTACCTCCAAAATTGCCACCTCCAGGTCCTCCTCCATACCCATTATAGCCATCCCCAAATCCA
++
+ at CCF####32A#2AGHIJJJJJJIJJJJJJJJJJJJJJGHIJDGHIIIJJHGIIGIJJJJJIJIJJHHHHFFFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3140:2129 3:N:0::ACAGTGA
+CCTTNNNNTACNTACATTGTTCCAACATGCCAGAGGCTGTTCACCTTGGAGACCTGCTGCGGATATGGGTACGGC
++
+@@CF####22A#2<CGGJIIGIJI<GHIIJIIIEGH at GEF3BCHIGIGIHHIIIIJJJJJJDH<<@DCE(;CDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3190:2131 3:N:0::ACAGTGA
+TCACNNNNGAANAACTTAACACACAATAACAGAAGTTGGTCGTTAATAAATCACATCCTAGTCTTTCAGCGCTTC
++
+CCCF####22A#3AFHIJJJJIJJJJJJJJIJIJJHIJJHHIHIJGIIIJJJJJJJIJIJJIGIHHHHGHFFDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3159:2138 3:N:0::CGATGTA
+TTTGNNNTGTGTGTGTTTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTTTAATTCTATCTTTTCTGCGTGGGTTT
++
+ at CCF###23A?ACCG at FHIIF2C8CCGFHBHFGBGHHGHDGDGFGIEG<FF;@FHGEHDHICH at HF@=9B#####
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3003:2143 3:N:0::TGACCAA
+CTAANNCCCCTTGTAAATTTAACTTTTAGTCCAAAGAGGAACAGTTAAAATTACAAGGGGATTTAGAGGGTTCTT
++
+ at B@F##22AFFFFEGGA<D at 4?+<3A?C+++1*1CCF9D3C)B9*:D*9*09***998=B@'=@;@>)6A#####
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3023:2146 3:N:0::TGACCAA
+TGGTNNTGTTCCGTCTTTGGGTCTTAGCTATTGTGTGTTCAGATATGTTAAAGCCACTTTCGTAGTCTATTTTGT
++
+ at B<D##222ADFHHGHGIGI88CGGEGIFGIIFCFHFBFHIEEH?>GHGFBDFCG at HIE@CG67C at EHGIHHFHF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3234:2154 3:N:0::CGATGTA
+CCATNNCTGCTGCCAGTGCGAGTCTGTGTTGCCGTCAGCTGCGATTGTTCCTTGGTCTGCTTCTCGATCTCAGCG
++
+CCCF##2=CHHGHJJJIIIIHJFGIIGGGIJIJJGHIIJIJIJGGIJJJIFHHIGGGHHHHHHFFDEECEEDEED
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3133:2155 3:N:0::ACAGTGA
+TTGTNNTTGATGGCCAGTTTAAAACTTATGCTATCTGCGGGGCCATTCGTAGGATGGGTGAGTCAGATGATTCCA
++
+ at BCB##2=CFHHHJJJIHIJJJJIJJJIJGJJJGIJGIIIIIJJHFEHHB at DFFCEDD>?BDCCDCCCDCDDEFC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3044:2155 3:N:0::CGATGTA
+ATAGNNGGCTTTGGATTCAGAAAAGGTGGACCAGATGACAGAGGTGATTGGTTCTTCTAAAGCTGAACATCATAA
++
+@@@D##2=CFHHGJJJJCHIGHJIJJ9FCEGIJJGIIGIJIJJI<DEIIE at DFGGIIJA@FEHGIIEHGCHFGHF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3164:2162 3:N:0::CGATGTA
+ATATNCCGCCAAGCCAGATTCGGGCGCTCCCCTCTTGCGCAAGGTGGTCACGTGGGCACCCAATTCTTTGATGGC
++
+CCCF#2ADDHHHHJJIJJJJIJJH::?)?DH6.<.==A@;'58(;?B3;>6,,5=28<@DD89(:>@CD@:4:>3
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3054:2170 3:N:0::GGCAATA
+TGTGGGACGTTTATATTTAAAATCATATTTTGTGGTTGTTAAGTATATTGGAATGATTGAATTTGATTAGCTTTG
++
+###########################################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3111:2178 3:N:0::CGATGTA
+GAGCCTGGGGGGAAAAGGGGTGGTTTAAAATTTTCTTTTGGAAAACACGCATCACCAGGGTCAAAACAAAAAACC
++
+=?BDFB#####################################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3228:2178 3:N:0::ACAGTGA
+TATTTGTATCTATTTTTAGATGACTTCAAACCTGCTTCTATTGACACTTCTTCTGAAGGATACCTTGAGGTTGGT
++
+CCCFFFFFHHHHHJJJIJJIJJIJJJJJJJJJIJJGJGGIGGIEIHIIIJIHIJIIJJJJJJJJJIJBHI at FHI;
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3021:2180 3:N:0::ACAGTGA
+AACGGGTTACCCGCGCCTGCCGGCGTAGGGTAGGCACACGCTGAGCCAGTCAGTGTAGCGCGCGTGCAGCCCCGG
++
+@<?DDF at DDFFDF>@@C:?@8C:@<6A;;(B at 55)=CHH>B##################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3009:2183 3:N:0::CGATGTA
+CTTTGTGTTTGATTATGGTATATATACAATTTTCAACACATAATTATTGCATCTAAGCAACAGATACAGAGAAAA
++
+?7??D2ABAFDFDIGEBGCIJFGGCHGGEHHBCHIEHII?C9DB at FHGIFFCFII>GIG at HHIFEHGEGHJIGDF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3074:2186 3:N:0::ACAGTGA
+CTTGAGTGATGGGTACATGGTGGTTTACTAAATGCTATTTCTGAATACATTTCAAAATGTTCATAATAAAAGTTA
++
+ at CCFFFDDGHHHHEGIIJJJHHIGHIIIGGIJIJJJJJJJJIJJJJJJJJHGIJJJJJIIIJJJJJJJJJIIFHG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3179:2188 3:N:0::GCCAATA
+AGGTGATCCGCCCTCCTTGGCCTCCCAAAGTGCTGGAATTACAGGCATGAGCCATGGCACCCTACTTTGATTTAG
++
+@@B=DDBDHHFGGIJJBHHGEHDHIGIJII:CEIHG at DGHIIJEHDIGIJIDGIJIDHIIGIIDHEHFFFFFFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3046:2190 3:N:0::CGATGTA
+AGGAGGTCAGTTATATGTTTGGGATTTTTTAGGTAGTGGGTGTTGAGCTTGAACGCTTTCTTAATTGGTGGCTGC
++
+BC at DFFDDHHFHFIJJJIIIJJJFGIGJJJIBH?FDDEGI?DFEGCHIBHHIHIFECEEHHHEEHFECDF<@AA@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3244:2190 3:N:0::GCCAATA
+TTTGTGTTTGAGGGGGGTTGATTTACATCTGGCACAACTTAGTCTTTGTTCCAATCATTTTAGAAGTCTCAATTT
++
+@@@FDDFDHFABF=G:9)078@@CC8>>CC8@@AAC at BDCCCC>3+38 at C9A@@CCDCDDDD<@A:>AA>:>4>>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3219:2193 3:N:0::CGATGGA
+GAGGGATGCAAAGTATTGTTCCTAGTGTGACTGTGAGGGAGCGGCAAAGGGAGATTAACATTTGAGTCAGTGGAG
++
++1+++8A;CBCFAG,AA:<C9<,C+A42+++++1?**1))1)?0?'<(.@(6@'77???AHC#############
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3197:2198 3:N:0::ACAGTGA
+GGGGCTTATGAGGTATGTGGACTATCTATGAGAGCTTATCTTGCTGAGGGAGATAAATTAACATCAAACAATAAG
++
+@@CFF<D?BFHHFFEFGHHI<EHC:FBHHHDFHD;B?FHI9BGDGCGGHEG@@F at FABCHEGHEHAF>=CECHFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3168:2201 3:N:0::ACAGTGA
+GCGAGCGGGTGGTAAACTCCATCTAAGGCTAAATACCGGCACGAGACCGATAGTCAACAAGTACCGTAAGGGAAA
++
+?;BDFFDAF)<DC?GH>FE>?B::DGGCDAGFGHGEG</4 at EA8?94;A?/==:(55@@A<+33>5?208381<2
diff --git a/clipper/t/in/multx/mxtest_1.fastq b/clipper/t/in/multx/mxtest_1.fastq
new file mode 100644
index 0000000..fd94dae
--- /dev/null
+++ b/clipper/t/in/multx/mxtest_1.fastq
@@ -0,0 +1,1000 @@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1230:2118 1:N:0:
+GTATNGAATTATTTTTCTCTGAATAATTTTTAGGAGTTCTTTTATTCTAGACATCAATCATTTGTCAGTTTTNTA
++
+@@@F#2=BFHAHDHHIGIIIIGI<C<EBHIGIIB>FFDFHIIIIIIDC9B at B?FHCDHEFH4EGEEHI8BFC###
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1196:2124 1:N:0:
+GCAAACCACTATATATTGCTTGTATCTATCAGCTTCTGGTCAGATACATTTTGTCTATGGAACCTTTCCAACNCA
++
+@<@BDE?BBFHHGIDGIBIFHGICHHICFDHE at FHH>GE@@CFDHC??DGIJ at GAEIGGA?BB6=CFBBFH####
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1211:2126 1:N:0:
+ACACCCAAAGACATCTCTCAACTTGGAGAGTAATTCAGTCCTCAACATCTCCTGAAAGATCGGAAGAGCACANGT
++
+8??AADDD??D:CE at E?CE?B<FE4<+<+1??9CDFBE::DD<D3?BD at D??93?9D*8BC='5('6=@CC####
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1238:2152 1:N:0:
+TTTTTTTTGCTGTGTATATGAACCCATATATATATCAAGACACATAGGAGTCAAAGGAAAATACATTTAAAANCT
++
+CCCFFFFFHHHFDHHGGBGHJJIJJJBGGGGGIHHDHHIIHIIEHCHIEIFIJJGHIIGHFFHHFFFFEEFC###
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1224:2185 1:N:0:
+CTATGGGTGTTAAATTTTTTACTCTCTCTACAAGGTTTTTTCCTAGTGTCCAAAGAGCTGTTCCTCTTTGGANTA
++
+CC at FFFFFHHHGGIIJJJJJJHIGHIJIHIIIIIJHIIJJJJGGHGDHIGDHIIJAG>DHHGGCCA>EHDD####
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1179:2187 1:N:0:
+GGTTCAAGTGTATTTTCTGTAACAGANNNNTATTTGGAATGTTTTTCTTTTCCCCTTATAAATTGTAATTCCNGA
++
+<@@DFDDDDH?FDGGIGGGDHEHG<F####22 at FHIEGIIJJJIJJHIGIHHIIIGI>FCH<FHIDEGGIJC###
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1223:2231 1:N:0:
+TATTGAGCATTTATAGAATTTCGTATTTTCTCTCTCTCAGTGTATCAGTTATACTTCTTTTTAAATTTTTTANAT
++
+<7 at DADDDHGHGDGGHIIIIFGI=FCADHHIICFHIIIIIEGEHGD<FHHBFCDHGGHIIEGH*?FGIGIIG###
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1356:2120 1:N:0:
+CACTNTTTTGCTACATAGACGGGTGTGCTCTTTTAGCTGTTCTTAGGTAGCTCGTCTGGTTTCGGGGGTCTTAGC
++
+@@@D#2ADFHHHHIIIIIIIIIH8??DDGGIIIID at HGIDHBDHDGGBDHHIIIGGCGH@DGAEFEEB5&3A>A:
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1387:2124 1:N:0:
+GGGAGGGGGTGATCTAAAACACTCTTTACGCCGGCTTCTATTGACTTGGGTTAATCGTGTGACCGCGGTGGCTGG
++
+B at CDDFFFH@FFHJJJJJJJIIJJJJJJGIIJJJGHFFFFFFFCEEECED?BBDEDDB?AACD:555>5 at DBDDB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1323:2146 1:N:0:
+CCCAGCCTTTGCTGTAGCACACACATATATCACTGAACCTGTTTGAAATAAAGTTTTTTTTCTTTTTCATGATTC
++
+CCCFFFFFHHHFHJHIJIJJIIIJJJIIJJFIJIJHIJJJJIIEIG?FGHIEDFGHIJJIH>EHFFFDDFEEC>@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1422:2148 1:N:0:
+GGAAGGTGGAGTGGGTTTGGGGCTAGGTTTAGCACCGCAAGGGAAAGATGAAAAATTATAACCAAGCATAATATA
++
+B@@FFFBDHFHDHIJGIJJJIIIIJII?GHIJIJJJJJIIIJJHGGGFIIIHHGHHFFFFFFECDEDDCDDDCDA
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1344:2152 1:N:0:
+TCCAGCCTGTCACGCCTCCTCCACTGCTGATATCTCCATTTTCACTGTTGGGCTCTTTTACAGGGGTCTTTCGAA
++
+@@<DDDBBFF<F+ at 2A3E@<A;GGIFFII9CB:*11:4CFDFBA?FEFFE8@/B(=FFIB@@CDF<@4;?CE?;2
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1276:2152 1:N:0:
+ATGAACAGGCTCCTCTAGAGGGATATGAAGCACCGCCAGGTCCTTTGAGTTTTAAGCTGTGGCTCGTAGGGGTCT
++
+ at C@?DDDDHHHHHDGB at FDHFH:AEHHIIGGGG at FGHIII8DHGHIIGI=CCFFHIGGGAHIC at H##########
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1326:2167 1:N:0:
+AGAGGCGACAAACCTACCTAGCCTGGTGATAGCTGGTTGTCCAAGATAGAATCTTAGTTCAACTTTAAATTTGTC
++
+@?@1DD at DAD?FF7EGEI9E>@9C339):?B*9DG9)9BF at C<<CE at F4=C;)@E;4AE7777?BD at 7;B#####
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1434:2177 1:N:0:
+GGTTTGACGCATGTTTTCATTTCTCTGGGATAAATGCTCAGAAGTGCAATTCCTGAAGCATGACATATACATGTG
++
+CCBFFFFFHHHHHIJJIJIJJIIJIJJJJGIJIJJJJJJJJDHIGIJJIIJJJJJEHGHGIJIJHGGIEIJJJII
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1250:2180 1:N:0:
+CGGGTCTTAGCTTTGGCTCTCCTTGCAAAGTTATTTCTAGTTAATTCATTATGCAGAAGGTATAGGGGTTAGTCC
++
+ at BCDDDFF>FFFHJJJGIIIJJJIIJ at EAGHGIGIJJJDHII>GHHGGIJAHGGGHEHGID at FFHIFG;FGCCHA
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1342:2181 1:N:0:
+CAACCCAATGGACAGCTCACTGCTCTTTAACAGTCAAGCCTCTGTTGTTTTAGTCAATCTCACTTTCTTAGCCAA
++
+CCCFFFFFHHHGHIJJGIJJJIJJJJJJEHGJIJJIIGGIGGIJHGIGHIIFHGGGHHIIJGGDHIIJIIEGGHA
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1326:2195 1:N:0:
+ACTTTGTGTTTGAGAGCACACCCGTCTATGTAGCAAAATAGTGGGACGATTTATAGGTAGAGGCGACAAACCTAC
++
+?@@1ADA+AC>C?:+2<?B?EAGB:1?:*11CGD<@G>?DA?DF98(7'7@;)=77C at D>C##############
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1404:2198 1:N:0:
+GTGGAGGACTTTTTATAGTGCGTTATACGTATTTTCTTAGAAACATCGTGCATGTGCATTGTTAAACACAACGTT
++
+CBCFFFFFHHHHHJHIHJHIIIHIJIEHICGHIJJJIJJJEG>FIIJIHHIHIJGIIHHIJJJIAEGIGIECHE>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1365:2202 1:N:0:
+TACTTCCGACTTCCTCCCTGTGAAAATGTGGATTTGCAGAGACCCAATGGTCTGTGATCATTGAAAAAGAGGAAA
++
+C at CFFFFFHHHGFGIJJJJIIJHIJJHJGHIIIJJJIJIJJGHIJEGGHIIIIIIIIIGIJIGCHIJIEEEHE@3
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1497:2206 1:N:3586:
+AGTATGGCCCGGGGGATCCGTTAGCTATCGTTCGCGAGAAAGTTAGTAGACACACAGGACCCAGGCGTGCAAGTT
++
+@@;?DDD=DBFDA at F<@BEF;B1B at C@F3;@E2-''33335;AB5 at A############################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1311:2219 1:N:0:
+TTTGTGTTTGATTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
++
+???DD3BDDD8,C at EIEEIDADD/'','3;:::5::1::::&638::-<<<558<8?873<<???;;>7>>>9>>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1395:2221 1:N:0:
+TCTCCCCAATAAAGCTAAAACTCACCTGAGTTGTAAAAAACTCCAGTTGACACAAAATAGACTACGAAAGTGGCT
++
+ at CCDDDDFHHDDBHIIJIJIIDGGBGGIFIFFHIGIGIJJJEIIJIFDCGHIG>=BEIHBGEGIGI<EHFCCFFE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1348:2222 1:N:0:
+TCGGGTCTTAGCTTTGGCTCTCCTCGCAAAGTTATTTCTAGTTAATTCATTATGCAGAAGGTATAGGGGTTAGTC
++
+ at CCFFDDEHHGHHJIJJIIJJJIJEIJIGGF?FGIIJJJIJGGIFHIJJJJHJJICIGGG at CHDHGGIGEEEB@E
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1275:2229 1:N:0:
+TTTGACAGGCTAAAAAGGCGACCACGAAACTACCCTACAGCAAAGTACACCTGCAGACTCTGTGATGTTTTAATT
++
+;?@DB8BDHDFDHIIIEGHEFC at GGH>FEGHGB??DG at BF<CCHCF at CDC)=D?CCE2?CD@;>CDCC::?C at AC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1456:2233 1:N:0:
+CGTTCTGGTAAAAAGCTGGAAGATGGCCCTAAATTCTTGAAGTCTGGTGATGCTGCCATTGTTGATATGGTTCCT
++
+CC at FFFFFHHGGGGIJJJJIJJGIIIIJJJJJGHIJJJIGGIJJJJJFHIIIJIJIJDHHJGIJJICHIJJJIJA
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1298:2234 1:N:0:
+ACCACTTGTATTTGGTCTCCAAGGTCCCAGTAACTTTACCAGTGTCTGTATTAGATGAACCGGACGTTGTAAATT
++
+;?:+=BDDDDDDE9<EBEDEF at 3+<EEC3AF>EEFIIEE@*:?@DDCAE4?D?D*BD4BD;D#############
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1327:2242 1:N:0:
+TGTGTTTGACTATATTTTTAACTATAGATGGTCCCTAACTTACAATGGTTCAAATTATGATTCTTCAACTTTATG
++
+@@@DDDDFFFHFHCGGGBEHIEH9CCFHIIJ3CFD at HHE>EGIG@<FD9?FEG>GH>>GGHGICGGH<@F at FGIG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1426:2246 1:N:0:
+CAGTTAAATTTACAAGGGGATTTAGAGGGTTCTGTGGGCAAATTTAAAGTTGAACTAAGATTCTATCTTGGACAA
++
+CCCFFFFFHHHHHIIIIJJGHJJIJGHIJEGIJJJJJJJIGGGIJJIGIGHGHHIIIGIIGIJGIIJJJIFEHHC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1287:2250 1:N:0:
+AATGGAAGCAAGCAAAACTAAATTATTTTCTAGGTGCTGTAATATTTCATTTGATAAGGTAGCAAAAGGATAGGA
++
+@@@7D8DDCH?DB;GGE>FHHGII9FHGGEFHDBG at FHGH@CCCFGIGGGGHIABBDHI?F3?<88B;CCFIA@@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1637:2116 1:N:0:
+AGGANAAAACCTTGTAGAGAGAGTAAAAAATTTAACACCCATAGTAGGCCTAAAAGCAGCCACCAATTAAGAAAG
++
+@@@D#2ADBFFFFIIIIIIIIII<CHIIIIIIIIIIIIIIIGFIFFFFIIIIEFGIIIIIIEFAA=EBDDDDBCC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1585:2121 1:N:0:
+TTCTTCCTGCCCCCAAAATATGAATGCTGCCTAAGTTTATCTCCTAGCTGGTGTCTTCCTCTCTTTACTCTTTTC
++
+?@@DDB?DFHHHHG>FGH at FHH@HHI at HCDHI@DGGGHFGGGEGIGIIII>)?BFCHIGCHHIBHIA:CGHIIG4
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1719:2132 1:N:0:
+GGCAAAGGGAGATGGTGGCAAAAAGGTTTAGATGCAGGAGAACAGTAAGATGGATGGTTCCGGCCAGAGTCGATG
++
+CCCFFFFFHGHFHIICFIJJJJJJJICGHIJJJJJJJJJJIGGGIFIEHGGIIIJJJGGGHJJGHBEFD>CDBBD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1530:2132 1:N:0:
+GCCTACCATGGTGACCACGGGTGACGGGGAATCAGGGTTCGATTCCGGAGAGGGAGCCTGAGAAACGGCTACCAC
++
+@@CF?DBDFHFHHBHEHIIIIF>FECGHIEBGIIGIIIFIGGGHIHAHGHFBD at ADDDCDCDDDDDB?B;@DC::
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1501:2136 1:N:0:
+CTCAGGGTTTGTTATAATTTTTTATTTTTATGGGCTTTGGTGAGGGAGGTAGGTGGTAGTTTGTGTTTAATATTT
++
+@@CDDDF?FHDFFIIJIEHJJJJIIGEIJIGH at AH@FIJGDHIGJJGEHC at AACGIACC7AAE>E@@DBCDCEDE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1556:2139 1:N:0:
+GTGTGTAGTCTAAGGTCAAACAGTGTTTGTCCCCTTTTATAAATTCACAATGTGTAATAGCATGTTCAAAACTCT
++
+CBCFFFFFHHHHHJJHHHHJJGJGJIIIIIJJJJJIJJIJHFIIJJJJJJIIGIIIJJJJJJIIHIJIGIIIIII
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1641:2143 1:N:0:
+TGAAAAATGTTTAATACACTATTGGATTTTTTATTTCCTTTTTTTGATTCAGCTTATACCCGGGCTGAAAACCTC
++
+CCCFFFFFHHHHHJJJJJIJGIJJJ at FHIJJJGIJJJJIJJJJJJJIIJJJJJJJGIGIHIHHFFDCEDDDDDDC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1689:2148 1:N:0:
+GAATATATGAATAAAAATTTCATAAAACTATATTAAGCAGATGAGAATCTGGCAAAAATATAAGGGCTGTGTAAT
++
+CCCFFFFFHHHHHJIJJIIJJIJJJIJJJJJIJJJGIJJIJEHIJJJJJJIIJJJJJJIIIIJJIJIEGGGHIIG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1668:2150 1:N:0:
+AAATTGGGAAGAGTAGAAAACTTCAGGAAATGTATTTGTTCCAGAGATTTCTGAAAATGACTCAAATAATATATA
++
+@@CFDD>DFHHGH4CBFHDGHEHFGEEHFIIIIC9EGIGEFFGIBGIIJICEHHIIIHIIG at GCFFHJEGGIIJG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1597:2151 1:N:0:
+GTCTTGTGCACTTAGCAGCAGGGGCCACAGTTCTCCCATAAATTCTCGAGCATTTTTTCCATTCAAAAATCCAGA
++
+<@@ADABBBBFHDBF<EEGGGFGEBHHGBA?DHIGGI3:D*9??GFGIGDH;BAGIJJDHFHEE=7=@?B>;3@#
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1509:2166 1:N:0:
+TCTTGAGTAATTGCCTGTTGGGTTGGTGTCATCCTGACTTGGGCCGGAGAGTGGTGAGCTAACTATTCGTACTCC
++
+;8?DA;BAFH?BHIEH<GGGIDAFF<8??FHGECGDHICGA9;?BGHFGBC=CA=CCHEEE@>ACCA@;A??BC<
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1740:2167 1:N:0:
+GTTAGAACTAAATACAAAAATCTAACTTCTCACTGGCTCCAGTTTCCTACCTATGTTGAGTATTTTTGCGTTGCA
++
+CB at FFFFFHHHHHJJJJJJJJJJJJJJJIJJJJJIIIJJJEIFHIJIJJIJJEGGGFGHI@FFGIDGBGHHIBEC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1591:2169 1:N:0:
+TTTATTTAACTTGTGGAACAAAAATAAACCAGATTAACCACAACCATGCCTTACTTTATCAAATGTATAAGAAGT
++
+CCCDFFFDHHHHHEHIICGEFGI at GEHIJJEHIJIGIJJJJIJIJGJIJJFHCGGIJEGIJGECGHIIIEGIDH7
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1529:2172 1:N:0:
+GATGAGAGCAAAGTATATCACACTGAATGCCATGTTCAATAATTAAGGGCAGGAGGAGACAATCCTATTTTTCTG
++
+@@@?BDDFGHGFHFCGHHIGIGIIIFIGIIIIIIIIIGIICBFHHHIGHIIIIIIIFHEGHAHIIIIIGIIHHHE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1710:2174 1:N:0:
+TGATTTCAAATGCTAATTTATATATGTCTTAATTTTCATGTTGCTGTAAAACTTCAATTTTCTCAAAACCTCAAA
++
+;;?1;4,22=AD?,AE>:,?CDICF>HBHH,A<FB<2CH>?*@B at EHA4?C9<9?B??**0**0*9BD9?C>3=3
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1571:2181 1:N:0:
+CTAGGTAGTGGGTGTTGAGCTTGAACGCTTTCTTAATTGGTGGCTGCTTTTAGGCCACTATGGGTGTTAAATTTT
++
+@@@FFFDFFHGFFGDBGIIIIFGIIJHGIJEGHIHIIJJID;GGIJGCGIIH>GGCCHIJII at E7=BDEDBCACC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1520:2197 1:N:0:
+ATGTCTGGTGCTTTCTATCACCTCTTCTAATCTTTTAATGTATTTGTTTGCAATTTTGGGGTAAGACTTTTTTAT
++
+BCCFFFFFFHFHFIIJGIJGIJIJFJJJEGHGHIGIIJJJEFIIJIHIIIJE at HIJIJGIIAFFGGGHGIIJFFE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1669:2200 1:N:0:
+AATAAAGGGTATAGGAGTTTACAACTCAAAACAATTCATAAAACCTATCAGATACATACGATAAATCACACCGAG
++
+@@@FFFFFHFDHHIJJJJIIJIGIJJIGIIJJJIJJJJJJHGIIIJJJJJJJJJIIJJJJJIJJJJJIJJJJHHF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1710:2200 1:N:0:
+ATAAAAATGATGAAAAAAGAACCGCCCTTTCATGTATTAAAATGGTTTATTATCTAAACAAGTTAAAAGTATATT
++
+CCCFFFFFHHHHHJJJGIJJIJGGHGIHIJJJIJIIJJJJJIIIIFGIIIJIIGEHJJJJJHEHEEHEF>BEDEF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1550:2201 1:N:0:
+TTGTGTTTGAGCTAGGGATACATAGTTGAATATATAGTACAAGATGCCTTGGAGTGTCAGATAGTTTCATATAAA
++
+CCCFFFFFHGHHHJJJIIIJIJIJJIIIJIIIJJJJIHIIJJJJJIIIJJJFGIDGIIEIGIIIF>DFHGIIII@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1602:2205 1:N:0:
+ATTGATTTCATGTAATCTTTGATGTACTTCTTGTAGGCTTCTTTTGTGAAACTTGTTTCCTGCAGGTGATGGTTC
++
+BCCFFFFFHGGHHJJJIJJJJHJJJCHGJIFIIFHIIJJJIJIIJJEGGIIGIJGBGHIIIGHDFC8BBCGD at GH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1687:2216 1:N:0:
+TCCCTGCCTGCCATTACGGTCATCTGTGTGCCAGCAAAACTGGGAACCTCAGAACCATCTGGATTGCTGGGGCCC
++
+CC at FFFFFHHHHHJIJJJIIIDHIIJJJJJ?FHIIJIJJJJJJJJIJJJJJJIJJFIIJJIIJBHHIJFF??BF@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1577:2220 1:N:0:
+GGGTTGGCCCGTGTTTAGGAGACTCGAAAAATGTTTCACAGGAATCTTTGGAGACAAAAGAAGAAAAACCAGAAG
++
+CCCFFFFFHHGFFFFHFGG at C;GECG=GHGECGDF>GEHIJBGEGBFHHIJ=@7;C>GAEH9>@<BDDDCDB5A5
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1520:2227 1:N:0:
+TAATTGGTGGCTGCTTTTAGGCCTACTATTGGTGTTAAATTTTTTACTCTCTCTACAAGGTTTTTTCCTAGTGTC
++
+@@@FFFFDHHFFGGBHIIIJJIJJFHICIGGJEGHIJJIIJIIIIIIIJJJJIHIIGEHI at FHHIEEFF>;;BDC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1738:2228 1:N:0:
+GAAAGGCCCACATATGGAGAAGTAAAGGATGGTGCTTTGGATGTAAAAAGACAACACAAGTGCCCAGGCCCCACA
++
+@@@DFFBDDFHHHIJJGGIHGIHIHJIJFGFGEFEEHIJIGBGGGIJGBADHGGHGIGAC=CDEGEGH?=EBFCB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1558:2230 1:N:0:
+GATTGGGATTTATCGATTACAGAAGCCGGCGTAAAGAGTGTTTTAGATCACCCCCTCACGAAGAAAAACAACAAA
++
+@;?DDEF?FFF?FEG?FGEGD?F3A?FA<DAF6B;BFG88=BEEAHGHEA at DAEDD###################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1616:2235 1:N:0:
+CACACTGAATCTATTGCCAACATCCAGATTGGTAACTATACATATTTAGATATAGCTGGTTAGAAAAATGCCACT
++
+?@@DDEFFHGDFAHGIHGIGDCHHEHIIEHECECGHIIIFGIIIIIGIIHIIIGIDHIIHHIIGGGHGCHG=@F:
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1718:2237 1:N:0:
+TGATTCGGTTAGAGCCACAGCTGAAACAACTACAAACAAAATATGATGAACTTAAAGAGAGAAAGTCTTCCCTTA
++
+<@@B?BDD1 at CAC++<EG at EEG>AFHEHIBHGD<@FHCIDG>GC<F4*/9?*9C=BFECHGGEHIC4==>=?;=?
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1598:2243 1:N:0:
+TAATGATGACTTGTTGGTTGATTGTAGATATTGGGCTGTTAATTGTCAGTTCAGTGTTTTAATCTGACGCAGGCT
++
+ at CCFFFADFHHHFIIIIC@@EEHFCHDEHDEHHGGHIGIEHGHIIIIIHFGHC@?DGB>CDF<BC at FF6AGIEFH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1503:2246 1:N:0:
+CTGTTCTTAGGTAGCTCGTCTGGTTTCGGGGGTCTTAGCTTTGGCTCTCCTTGCAAAGTTACTTCTAGTTAATTC
++
+ at CCFFDFFHHFFHIJJIIJE9FGH>F at FHHIJ;@FHIIBHICCHEEBBDDEFCCC>C35>CCDDACCD3>@>>C;
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1648:2247 1:N:0:
+TGTGTTCTGATAAAGTTATACATAAATTGAAATTTGATATATCAATTATACCATACTAAGCAAACACTGCATTTA
++
+???D=A:BDADB?9C4<,3<:<F43CEE?4FACEEFBB<9:??E*CDFD<:???B;B?B<;*??(?@=C3BDDEE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1765:2117 1:N:0:
+GACCNCCGAAACCAGACGAGCTACCTAAGAACAGCTAAAAGAGCACACCCGTCTATGTAGCAAAATAGTGGGAAG
++
+@@@D#2=BFFHAFH?EGEHG<)?FHIIGFDFDEEEHGGIIG?BCD;@DFHHGBHF=;?>?>@CC###########
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1983:2124 1:N:0:
+GTTGTCACCATCTCTCCTTTACTATAGTCTGTTAAGAGTTGACAGGCCCACCTATGGTCCCCAGAATCTCAACAT
++
+?@@ADDADBCDHDEGGHEHEEGG@@HHECDHHIIEEGIBCGG<CH;)00:?@FBBHFBBC;BB at FCCFDGHIIIG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1851:2128 1:N:0:
+TTCCTCATCTTCAAACACTCCAAATGGTTTCATGGCGTCAATTAATTTCTGTGTGTAAATATGATCAATTTCTTT
++
+CC at FFFFFHHHHHJJJIJJJJJJJJJIGIJIJJJJJJJJGGIJJIJJJJJJGHHIIIJIJJIJJJHH;@GHIIGE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1954:2130 1:N:0:
+CTTTGTGTTTGATTTGCAGCTATTGACTTTGTAATTTAGGAAAAATGTATAATAAGATAAAATCTATTAAATTTT
++
+ at CCFFDFEHHHHHIJJJJIJJIJJJJJJJJJHIIJJJJJJIHIIJJJGIJGIJJJJIJJJIJJJIJJJIIGIEHI
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1777:2133 1:N:0:
+TTTTTGGCTTTATATTTTTCTATCTTCTATACTTCTCCAATACTTGTCTTAGCTTGTTTTTCATTTTCTATCTGA
++
+?@@DDDFBHHDHHIJIJIJJJEGGIIIJIJIFIGGGGGIIIGIIJJGIIICCHEGHHGEGIEIJGIJJJGJFGIG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1933:2134 1:N:0:
+AGGTAGAGGCGACAAACCTACCGAGCCTGGGGATAGCTGGTTGTCCAAGATAGAATCTTAGTTAAACTTTAAATT
++
+@@<DDDBDFFFDHBHGB?GHHG60FHIGG?(7B:=;@FHI7 at C8?E=>A at 7?3 at CCC@:@@;>(--5>3;@C>AC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1908:2135 1:N:0:
+GAAGGATGGAAGATGAACAGCTTCCCAGGACAGTCTGCTGCCTTTAGTGCTTCCATGCCAGCCTGGATGACAGGA
++
+;?@DDDDDFHHHG@?GG at DGIIICDDEHE?=FHH9?FBFE>?DBDHIGDHGHEIGEHIGHCCCHIIGEEADAHF>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1992:2141 1:N:0:
+GCAAGGGGATTTAGAGGGTTCTGTGGGCAAATTTAAAGTTGAACTAAGATTCTATCTTGGACAACCAGCTATCAC
++
+@@@DDFFFAHHHFIEHIIGHHHGIGCHHIJFIIJJIIJIJJGHIJICFHJGIJJJJEGEIJJJIIGHEEHHHFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1807:2144 1:N:0:
+AACTTTTAAATAGAGTATTACCATCAAGAGTATAATTATGAAAAGCAACATTTCATAATTATACTCTTGATGGTA
++
+CCCFFFFFGHHHHJ at GHHIIJIIJGCGHIGGHIICHGGJGHBEHIGGJJEBCIJIJJHIJJGJJGIJCHIJGA@@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1939:2156 1:N:0:
+AATTTGTATTCAGTCTAAATTTGTTTTTCATGGTTTTTATGTGTGGTAGTACTAGTTCAGTGAAAATCACAACAA
++
+@@@FFFFDHHFDA<CGGBEEHHGEHHIICHEHICF>DFHIIDHGHCGH9*99EDBGHIGEHI<FAFHGHE:CA@;
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1952:2158 1:N:0:
+GAGTGCTTTCTTAATTGGTGGCTGCTTTTAGGCCTACTATGGGTGTTAAATTTTTTACTCTCTCTACAAGGTTTT
++
+@@<DADDDH<AD>@BFFGA;C;B@=GHI at F?G>DGAFHHHIIG3D6DH at DDAF@DH?HG at F3=@AEC;A?==)7?
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1788:2159 1:N:0:
+TGTGGGTATAATACTAAGTTGAGATGATAAGATCGGAAGAGCACACGTCTGAACTCCAGTAACGCCAATATCTCA
++
+@@?DDDABFF<FA:,2<+3AEHE9C3CHAE<D4?C18DFFFID3B@?9?FFE4C<8BF7=..@('>',;;.?BC#
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1861:2165 1:N:0:
+CACACGCTCTAGTGGTGGTGCTGTCTGAACTGGAGCCCACAGTAACCGCATGTGCCGGTTTTTGTTTCTTTGTCC
++
+CCCFFFFFHHFHHJJHIJIGIJJIJJJJIJJIIJJJJJIJGIIIJJJJJIJJHJJJJGBBDDDD>CDDDDDDDD@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1988:2168 1:N:0:
+AGGGCAGGAATGAGAAATACTGCTTTGATGCTTTATCTTTTTACCATATTAGTCATGATTTAAATTGATTTTTAA
++
+CCCFFFFFHHHHHJJJJJJJJJJJIJJIJIJJJJIJJIJJJJJIIJJGHIGHHIJJIGIIIJJJJJIGGHIJIJI
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1803:2170 1:N:0:
+TCGGGCCCTGTTCAACTAAGCACTCTACTCTCAGTTTACTGCTAAACCCCGATCAACCTCACCACCTCTTGCTCA
++
+CCCFFFFFGGHHGJIJIIIIIJJJJJJJJJJJIJGIIJJJJJJJJJJJJIIGGIJGJIIHHHGHFFFFECCEEED
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1962:2173 1:N:0:
+TTATAGTAAGTATCTATTAAAAATGTGTGTTCTCAAGTCCAGCAGAACTTAAAAGTAAATAAAAATAAAAATGAG
++
+<@8B?BB=4=D<?@FB4C>??<CF<F<E3ABCAHAH<FF**:9?F>*):??409?GGE990*89*=BFC:=F###
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1935:2181 1:N:0:
+TGTGATGATTATTGACAATTGGTTCATTTTTATATGTGTTGACCGTTATGCCTATAAATAAGCCTCCTATAGACA
++
+CC at FDFFFHHGHHJGIGJIIJJIGGEGIJJJGIIIJIIJGICGIIHIJJHIGGGEIHIJIEIGBFHHIJGIIJIG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1885:2183 1:N:0:
+TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTACTTGAAAAAATTTTTTTATA
++
+?@@FFFFDHHHHHJGBDA?BB7BBDDD0 at BD@@BBDDDDDB6BDDDDDBD@########################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1905:2186 1:N:0:
+ACGTGCGTGCAGAGCAGCAGGAAGTGAAGACACGTGCATTCCTGCCTTCCGTGAAGGAGTGCCCCGTTCAAGAGG
++
+<@@DDDDDF?=?:AB3EFEE=GFFI<FC*11:???)?;BFC*B<88?DAF<CEFFFAAEEEFFF(55(;6@@###
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1989:2202 1:N:0:
+TAACTTTGTGTTTGATTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
++
+@@@DFFFFFFFFHGFHHIJJIIII<FHIHFDDDDDDDDDDDDDDDDDBDDDBDDBDDDDDDDDDDDDDD at DDDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1757:2203 1:N:0:
+AGTTGTGGTCTTTATGAAAAGTTGATTTTATGTTACCAGGAACTTTAGCAACTGTATACTCTTTGACCCAGAAAT
++
+@@@DDBDDHDFBH<<AFAHIA+AH at HHEEHIA9FBD4??)?FCGIIH>?*???BDB<DHI3B at F:==@FHI9)7@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1896:2204 1:N:0:
+AGGTGGCAGATATTAGGGATAATATTCATTTAGCCTTCTGAGCTTTCTGGGCAGACTTGGTGACCTTGCCAGCTC
++
+@@CDDFFFHHFDHIIJIJJGHHEHIJIIJJIIIIJJJIJDIGEGIJGIIEIIIIHIIIJJGIJJIJIIJBAAAEE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1965:2207 1:N:0:
+ATTGGGCTGTTAATTGTCAGTTCAGTGTTTTAATCTGACGCAGGCTTATGCGGAGGAGAATGTTTTCATGTTACT
++
+CCCFFFFFHHHHHGJIJIHBHHEGIFHIIIJDEHHIIIHGGIIGGJIGIIHIDBHIBEEEHHFFFFB>DEEED at C
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1785:2217 1:N:0:
+CTTGCTACCATATACATATAATATTCAATTATAGCTGCTTTATAAAGCCAAATTACAATATTAACTTGAAACATT
++
+CCCFFFFFHHHHHIJJJIIGJJJJJJIJIJJJJIJJJJJJJJIIJ at HIJJGHIJJIJJIJJIJGIIJIIIEHEII
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1880:2219 1:N:0:
+CGGCGGGGGAGGTGGGGAACTTTGCTCCTGCCTACTCACTGCTCATTGCGGCCTACCTGGCCTCCCAGCTGCCTC
++
+???D?@DDA65<;>/;;=??AA#####################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1872:2229 1:N:0:
+CGGACTGACCCATGTTCAACTGCTGTTCACATGGAACCCTTCTCCACTTCGGACTTCAAAGTTCTCGTTTGAATA
++
+ at CCDDDDAAHDDHIEFEHIII9CEHIIIBEBFGABBHGHIGHIIIIDDFHIFGIGIHGHIG8@GGHG;;AHCBED
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1977:2232 1:N:0:
+ACAGATGCCTTAAACTTAGTATGCCCAAAACTTATCGGTTCCCCTAGCTCAGTGAATGCCTGTATCCTTCACCAA
++
+CCCFFFDFHHHHHJJIIJJHHIJJIJIGIJIIJJGEIIFGIIIIJIJJIJJIDHHGGIIIJIFHIIJJJGHGGI=
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1911:2235 1:N:0:
+TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTCTCGTATCCACTCTTTTTT
++
+ at C@F=AADDAHDDGIHEC;BDBBBDBB at BBDD63938BBDD@B07:8 at BB#########################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1814:2236 1:N:0:
+ATCTCATGGACATTAAAAGGATAATAAAGGAACACTATAAACAACTCTATGCCCACAAATTTGATAGCCTAGATA
++
+CCCFFFFFHHHGHJJJJJJJIJJJJJJJJJJJJJJJJJJJJJJJJJIJJJIJIJJIJJJJJJJJIJIIGIJJIGH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1785:2245 1:N:0:
+TGGGTGTTAAATTTTTTACTCTCTCTACAAGGTTTTTTCCTAGTGTCCAAAGAGCTGTTCCTATTTGGACTAACA
++
+@<;D4@=;FDF,AE>>FFHFFCAEFFFEFFEEF<96)@DB4?BDD*98B8B)@3CA;C at 4@)).=3?;A=@@DB:
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1754:2247 1:N:0:
+TTTTGAGGAAGTCTTTAAGTGCCATAATCAACTGCCATTTCAAAGAATATAGATGGTTTTGAAAAGTTCATGCTG
++
+CCCFFFFFHHHFHIJJIJJHIGIJJJJIJJJIJJIJJJJJJIJJGIJJJJJJJJJJHIJJJJJI=HDHHIJIIJJ
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1939:2247 1:N:0:
+CCAAGGCCACCACACACCACCTGTCCAAAAAGGCCTTCGATACGGGATAATCCTATTTATTACCTCAGAAGTTTT
++
+CCCFFFFFHHHHHJJJJGHJJIIIJGIIIJJHIGIJJJJIIIGJJJGJGFCGIJJIBHHGHHHGFFFFECC>@>A
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2216:2123 1:N:0:
+GAACTCAGGAGGTGGAGGTTGCAGTGAGCCAAGATGGTACCATTGCACTCCAGCTTGGGTGACAGAGCGAGACTC
++
+CCCFFFFFHFDFFIGGIJGHIIHIEHFGGIIIGIGIJBGBGDHIJGIIJJGHGIHIIIEDE=DG>EHHHFFCCAC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2139:2128 1:N:0:
+ATTGGTGCGGGGGCTTTGTATGATTATGGGCGTTGATTAGTAGTAGTTACTGGTTGAACATTGTTTGTTGGTGTA
++
+@@CDFDDEHGGHGGGIJIHIEEDHICEHHGEF<BCCEDDCACDDEECADDDDCACDC:ACDDD>C<><<AA<@##
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2086:2130 1:N:0:
+CCATTTTAGGAATTTTAGAACAGACAGCCTGCCAGTATTTTTTAAAATAATTGGGATTATTTTCTCTCTCCTGTG
++
+@@@FFFFFHHGHHJIJJIJJJJJJJJGJJJJJJJJGGIIJJJIJJEIIFHIIJDGGCFHIIIJEHGGIHDHHHHH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2222:2148 1:N:0:
+GAGGCGGAAGGATCACTTGAGCCCAGGAGTTCAAGACCAGCCTGGGCAACGTAGTGAGACGCTGTCTCTAACAAA
++
+@@@FFFFFGHHDHGEIJIIDGJJJIJG?H?FHIJJIEIGIFIJG?HGF=CFBBB5 at CC>>?9>:2>@CDECDDDB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2154:2148 1:N:0:
+GGTAACTTTGTGTTTGATACAATTTTATTACAGGATTTGGAATATGAATAAATGGGTTCAAGTGCAGGACTTACC
++
+CC at FFFFFHHHHHJJJJJIJJIJJJJJIJJJJJJJJJJJJJJIGIJJJIJIIJJJJDGHIIIFHIJJJIGIJIIJ
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2185:2150 1:N:0:
+ATAATCCCCTTGTAAATTTAACTGTTAGTCCAAAGAGGAACAGCTCTTTGGACACTAGGAAAAAACCTTGTAGAG
++
+CCCFFFFFHGHHHIJJIJJJJIJIIJJJIIJJJJIIJIGIIGIIJIJJIIJJIGIHIHGGGGGGIGHFFHHHFHD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2024:2150 1:N:0:
+GATCTAAAACATACAGTAAATTATATGTAACATATATATAATTGTATATGTATAAAATTCATCAGTTGATGATAA
++
+C@@FFFFFHHHDHIJJGGHGGJIJGIJHIJGGHIIJIJJJIJJIGHIJJJIFGHIIGIGJEGIIBGEDGGGGIIG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2064:2154 1:N:0:
+CGCAGGGGAGCGCAGCTACTCGTATACCCTTGACCGAAGACCGGTCCTCCTCTATCGGGGATGGTCGTCCTCTTC
++
+ at CCFFFFFHH>FAGGGIIIIIIIIIGHAGIIBFFHIIIGIIIGEBDDEEDDDCDDDDDDDBDDD>CBDD at BA>A>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2103:2159 1:N:0:
+GTGACCACCATACCGGGTTTGAGAACACCAGTCTCCACTCGGCCAACAGGAACAGTACCAATACCACCAATTTTG
++
+ at CCFFFFFHHHDHIJJGEGCEFGIIJJJJIJHIJJJJIJIHIIGIBHGJIGIGHHEEEE>CCFFFFEDDACCCCD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2081:2166 1:N:0:
+AGGTTAGTGCATACTTCTCCCTTCCACATTTATACTAACCTCAGCTCCGTGGGCTACGAAGCTCGTTCTTCAAAT
++
+@@CBDEFDHAFHHJIIJJIJIIJIIIJJEHIJJJJJIJIIJIIJJJJJJHIHIIIIHJIIJJ at DHBEHFFD@3;;
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2046:2171 1:N:0:
+GGCAAATCGGTCGTCCGACCTGGGTATAGGGGCGAAAGACTAATCGAACCATCTAGTAGCTGGTTCCCTCCGCAG
++
+@@@DDDDDFFCFFFGI<GGEFFBF):BFA at CEFIFFDDDBDCC9@?=3;>?>>AABA>ABB<?9A>AA>?#####
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2174:2171 1:N:0:
+TTGACTGTTCTCAATGAGTATTTTAATCTTGCTCTTGTGCCTTTAGCTTCCTTACAATCTTCTTTCATCTTCTTC
++
+CCCFFFFFHHGGHJIJIJHHIJJJIIJJJJJJJJJJJEHIJIJJJJJJJJJIIIGIGIFJJIIJJJIIIIJGH:=
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2024:2176 1:N:0:
+GGGGGATCTACTAGTTATCTTCTTGTTAAAAAAATTCTGGCATATACTGTCTGTTCAATATTATAGTACTTTGAA
++
+CCCFFFFFHHHHHIIIIIJJJIJJJJJJJJJIGGIGJJJJJIJJJIJGJHIJJHJJHIJIIIJJEHHIHHHGGFH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2242:2179 1:N:0:
+GGGAAGATTTATAGGTAGAGGCGACAAACCTACCGAGCCTGGTGATAGCTGGTTGTCCAAGATAGAATCTTAGTT
++
+CCCFFFFFHHHGHJJDGIIIIIJJJJJJIJJIJJJJJJJIJIGFGIJJJIIH?EEDFFFFEECEDACCCDDEDC@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2143:2180 1:N:0:
+CCCTCAAACACAAAGTTAAAAAATGTAAGTCTCCAAAAGACCTACAAAGCTACATAAAAATTTATAGTTTTGGGT
++
+CCCFFFFFHHHHHJIGIJJIJJJJJFIJJJJIJJJIJGIGGGIJJJJJJIJJJJJJJJJJJIJIJJJCGGGHHH;
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2210:2187 1:N:0:
+ATGGGTGTTAAATTTTTTACTCTCTCTACAAGGTTTTTTCCTAGTGTCCAAAGAGCTGTTCCTCTTTGGACTAAC
++
+CCCFFDFFHHHFHJJJJJJJIJJJJJJJJJJJJFHIFIJJIJJJ9BFHIJIJJJJIGIEHJJIHHHGGHEEFFEC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2117:2202 1:N:0:
+GAGGGTTCGCCAGCCTTGTCTTGAGCCATCAGTGTGGCAGGGGAGCACAGGGGGGTAGGTGGAGACACTGCGGAG
++
+CCCFFFFFHGHHHIIIIIHIJJJJJJJJJJIJIJIIIIGJIJJ6AAHG@>@EF'5050?(3<2<>8<<:3>@99@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2097:2206 1:N:0:
+AGTGTTTGAGTCAAGTTAAGCCGCAGGCTCCACTCCTGGTGGTGCCCTTCCGTCAATTCCTTTAAGTTTCAGCTT
++
+;?=D=ABDDBAFBHGIEGGA@@G6C?A at BGEGEGEGEEH?DD7B>3=BF at 35.=;;@)=?E:;?@@);@D>@@@>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2196:2206 1:N:0:
+GTAGTTAAGTATGCAGAAAAACAAACAAGACGTTTTGATGAAGGAAAATTAAAAGCTGGCCAAAGTGTAATTGGT
++
+?@@D=BBDFADA:BDFFIEII1CGFFEIFFIF?FGIIBGECA>F?BBFFEEFICGCFFFEIE;@ECE@>=AE###
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2154:2207 1:N:0:
+CCTGATGCTTACTACTATTTGAAGGATGATTGGGACCAGGTGATGGACTTCTCTGGCTACTTGAGCGCTGAAGAC
++
+??<DADDBBBF3?D4E<FEFCHDI9@>E<C?@+8CBEFDFD>99BBGAEF?BFDB::9DDFGIII=FE at BF37=7
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2138:2213 1:N:0:
+AGAGGGTAAGAGATGGGTAGAAGAGTATGCCTCTGAAAATTTTATTAGTTTATTCTTGTGGAGAATACCAAGAAA
++
+@@@DD8+A?FF<?<B at 9CB@ECBEF+ACB9?BGG>GEIE?<<FFG<B??D at DF49?@<9?;<CHE:@@)=@C(=C
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2089:2219 1:N:0:
+CCATGCCTTACTTTATCAAATGTATAAGAAGTAAATATGAATCTTATATGACAAAATGTTTCATTCATTATAACA
++
+?<<+A;;4D:C>DB:C<EEED934<,<::FC<C+?E at BFA*:?<D449CC?DD4BBA:0BDDDCA:DDDA@=B:8
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2026:2222 1:N:0:
+CAAAAGACTATTAGGGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCTCTCAGGGAGGCTAGGAGGCGGGAG
++
+CCCFFFFFHHHHHJJJJGJJJJJIJIJFIIIJJJJJHHHHFFCDEFEDEDEEDDDDDBDDDCDDDDDDDDDDD@@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2184:2225 1:N:0:
+TTAAGGGGTCACTGCAAAGTAGGAATGGACCTTATTGTTATCAACAAATATTTGAGTGTTTCATTATATGTAGTG
++
+@@CFFFFFAFHHHJIEIIJFFHGIIJEIBHIGIJJJJHIIIJIEIGJJJJJIJIJJIGECHGGIIJJIGIGIJDC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2239:2229 1:N:0:
+TAATCACTGCGCCCGCTCATAAGGGGATGGCCATGGCTAGGTTTATAGATAGTTGGGTGGTTGGTGTAAATGAGT
++
+CCCFFFFFHHHGHJJJJJJIJIJJIJIJIJIJJJJJJJJJJ=FHHIHHFHGGHIJJHAED=BDD;==CDDFDCD#
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2076:2229 1:N:0:
+TTAGGTAGTGGGTGTTGAGCTTGAACGCTTTCTTAATTGGTGGCTGCTTTTAGGCCTACTATGGGTGTTAAATTT
++
+@@@DDBDDHBFDF<CFGGDGH>BGGBF<18?C<BF at DGI<*8D;FG<@C8<4)8@@C7=E77C=;)'5?C;?7;6
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2214:2229 1:N:0:
+AGTAGTGGACAATTTGCAAACACTAACTCTGCTACCCAAGTGCGGTTATTTCTACCTTGTAATCGGAAAGTGCAA
++
+CCBFFFFFGHHHHJJJJJJIGIIJJJJJJJJJJJJJJJJJGIIJJGGIJJJJJJJJJJIHJIIIJJEHHHEDFF@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2053:2235 1:N:0:
+AGGACCCGGAAGATGGTGAACTATGCCTGGGCAGGGCGAAGCCAGAGGAAACTCTGGTGGAGGTCCGTAGCGGTC
++
+@@@DBDFFFFFHHEHGABEHIIIGIIHHHGGFHIGIBHGGE at GIIGHGFFDCDDCEEECBBBC;9@@BBC<BBBB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2112:2236 1:N:0:
+CTTTGTGTTTGAGGGGATGTAGAGAAAAGGGAATCCCTGCACACTTTTGGTGGGAATGCAAATTTGTGCAGTCAT
++
+@@CDBABDD>D8CCFG>EHDFGFG4?BDHII?:?00?FFG at EGCGEEIEHCDEEEEGFHEECEEBC?DFDE>>;A
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2011:2239 1:N:0:
+CTTTGTGTTTGAGTCTCGTTCGTTATCGGAATTAACCAGACAAATCGCTCCACCAACTAAGAACGGCCATGCACC
++
+8?<DBABDFB:C?<AEDGEAAE8?EC at FC)CFGEFFFFIBFAGEF<FC;F<>AFFFIFIEE:?)5=>?BAB####
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2038:2248 1:N:0:
+ACTGTTTGCATTAATAAATTAAAGCTCCATAGGGTCTTCTCGTCTTGCTGTGTCATGCCCGCCTCTTCACGGGCA
++
+CCCDDFFFHGHHHJIFIGIIHIIJIHJIGGEGGIGGIIJJIGGHIIJJIIHIHIHGHIIGGGIIIC at DCGCHFE>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2265:2123 1:N:0:
+CACGCGCTTCAGGGCCCTGTTCAACTAAGCACTCTACTCTCAGTTTACTGCTAAATCCACCTTCGACCCTTAAGT
++
+CCCFFFDFHHHHHJJJJIGGIJJHHHIIFGIJJJJJJIJJIHGFHIIHIJJJIJIJIJJIIIFHGHFFDEDCCCC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2303:2133 1:N:0:
+TCAGTGCTCTATCACCTGCATGGGGAGGGATGGAGCAGGGCAGTAACTTCAGTCTTACACTAGCTATAGCAAACA
++
+@@@FBDDFGHHHHIEEAGGDHEGBGEEDHE;DDGGIJIIJFAFCGIGEHIFGC@=EHGDHIHHGDHDECDBBD at A
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2468:2138 1:N:0:
+ATGATCAGGCTTCCTAGATAAACAGCTTGAGGGGTTTTGCTTTTTAAAAGCCATTTATTGATCTGTTGTCAGTCT
++
+ at CCFFFFFHHHHHJJIJFGIJJGIJJJJJIJJJJDHIJIIIIJJIEIGID8EHGIIIJJIIIGHIHIIHFCHEHF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2326:2139 1:N:0:
+AATTAAGGAGTTTTGTAACTGAATAGTGGAACTCAGAAAGACATCCTATTCAGAAGGATCTCTCATGATAATAGT
++
+ at C@FFFFFHHHHHJJJJJJJJIJJJJHHIJJJIJ<GGGIJJJJJJJIGIJJJIIIIJIJIJIIJIJIICIGIJJI
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2351:2140 1:N:0:
+CTGTTTCTAGTCAAACAAGCTGAAAATTTAAGCAATTGTCCCTTTTCGGGCATTTCTGGTGAAAGAAGCCCCAAT
++
+ at CCFFFFFHHHHGJJJJJGIJFIJJFHIIJGIIGHGIIHIJJIIHHIIBHHIDIIJJIHIGHIEE9DHHCCHFDB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2386:2142 1:N:0:
+ATCCCAGCACTTTGGGAGGGGGAAGCGGCCAGATCACTTGAGGTCAAGAGTTTGAGACCAGCCTGGCCAACATGG
++
+ at B@FFEFFHDHGHIIIJFIIIIIGE9:FEHGGGHIIHGJF=>E?@D;CBA;;@;>?;>@C9985<A?B3<?B9:3
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2427:2146 1:N:0:
+GCTCTCCCATCCATTGGAAACTAGCAAAATGCATTCTGGATCAATAATACAAACCTTCTAACATTAGCAAAGATT
++
+CCCFFFFFGHHHGJIJJJJJJJJJJJJJJIIJJJJJJJJJJJJJIIJJJJJJJJGIIJJIIIIGGIDHJIJHGIJ
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2451:2154 1:N:0:
+ATGGTGGGTGTTGAGCTTGAACGCTTTCTTAATTGGTGGCTGCTTTTAGGCCTACTATGGGTGTTAAATTTTTTA
++
+;@@DADDD1C at D?FGG<CFBEFEG=EGHFHDGIICFGHCEH?EIIIID at F8CFHFF>EGGGEE<?CD########
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2292:2154 1:N:0:
+GTTGTCTTATCTTTGTAAATATGATCTCTGGCTGTGGACAAGGCCCTGTCCAATGCTGTGATGAGCTTTCTATGA
++
+CCCFFFFFHHGHHJJGGHIHGIJJJJJIJJJJJJIFJJGGGGIJGIJJJJJIIJJIJJHJJIJIJEHIJJJJJJI
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2253:2161 1:N:0:
+TAATACTTTTAACATGCCAATTTTTATGCCATACATAAAAATGTATTGTGTTGTTTGTTTCCATTAAAAGTTACT
++
+@<<;DDADFDDD<<E<3:<<FFH>@GH at BH??AEGHGCAFBBG:CBGIDHBFB9?9B09?DGAHEDH=@C8 at GFA
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2479:2162 1:N:0:
+AGCTGAGGAAAGCTTCAGGGAAGAGATGACATTTAAGCTGGATTACAAAAAATAGGTTTTTTGTTTAAAATAAAA
++
+CC at FFFFFHGHGGIEIGIJIGGIII@HHGIGIJJIIJIJGJFHGHJJIIDHGHIJJFDHGIHHHFEEFFBC at CCC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2353:2165 1:N:0:
+AAAAGAATAAAATACAGTGTTGGATCCCTTTCTCCTGTTTCTGCAAGTGTCCTGAAAAAGACTGAACAAAAGGAA
++
+@@@DDDDBHHD?FIII><:CFE?HBEGGEGHIIGG9?1?DHHHIFHG?D?BGG at E@?4BGFGGDGEHH at FD7@CC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2329:2169 1:N:0:
+GGGGCCACAGTAATTACAAACTTACTATCCGCCATCCCATACATTGGGACAGACCTAGTTCAATGAATCTGAGGA
++
+?@@DBDDDFFADDHGHIIDHAHGIE<CBHGCDHGEHIIIGIIIEBEGGGC=BAA at EHGGEH@DCGHIHEHAC??C
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2434:2170 1:N:0:
+TGAAGGTTTGGGAAGCGGTTGTTTCTGAAATCTTCCAATAATCTACTGCGGCCAGAAGGCATAATATCAGACCTA
++
+CCCFFFDEHHHHHJIIIJHGIHIJJJIJJJJJJJJJIJIJGIJJJJJJJJIIIJJHHFHFFFFFDDEFEEEDDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2308:2177 1:N:0:
+TTGAGCTTGAACGCTTTCTTAATTGGTGGCTGCTTTTAGGCCTACTATGGGTGTTAAATTTTTTACTCTCTCTAC
++
+CCCBDEFFHGHHHJIJJJJJJJJGJJFGIGIIIJJJJIGGGDHIJJGIIJIDFHGEEGIIIJFHEAEEFEEFFF>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2493:2177 1:N:0:
+CTGTGAGGAGTTCAGTTATATGTTTGGGATTTTTTAGGTAGTGGGTGTTGAGCTTGAACGCTTTCTTAATTGGTG
++
+CCCFFFFFHHFFHGIAFGJIGJHGIJIJIJJIJJJIJIFEGDGIJDFHIJEIJBGIIGIIHFDHHGFFDCCFACD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2356:2185 1:N:0:
+TATTATGCTTGGTTATAATTTTTCATCTTTCCCTTGCGGTACTATATCTATTGCGCCAGGTTTCAATTTCTATCG
++
+@@@FDFFDFFFFHG at GGIHGJJIGCGHBHI>HGGGGGGFFF at FDHA<DEB9FEGIIGEEHFHIFHIIGHEFG>>?
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2404:2187 1:N:0:
+GTGGGTGGGGGTCTCGCTATGTTGTCCAGGCTGGTATTGAACCCTGGCTAAGGTGATCCTCCCGCCTCAGCCTCC
++
+CBCFFFFFHHHFHIJHIJJJIJJJJJJJJJJJJJFGHIJJJJIJJHHHHHFFF?CCEDECEDDDDDDDDDCACCB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2280:2193 1:N:0:
+TGGGTATAAGTCTTTCACTTCCTGGGTTAAATTTATTTTTAGGTATTTTTTTTTCTTTTAGATGCTGTTATAAAT
++
+ at CCFBDFFGHHHHJJJJJJJJJJJJJGHIIJJJJGJJJJJJJJDGIJJJJJJJJJJJJHHHGHHFFFFFFFEEED
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2343:2195 1:N:0:
+AGATCGGAAGAGCACACGTCTGAACTCCAGTCACCGATGTATCTCGTATGCCGTCTTCTGCTTGAAATTATATAG
++
+<??DDDDDDAA>8E;@B1A2C++*1?@E<BDDA?:DDADBDE#################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2440:2195 1:N:0:
+TATTTTTAAGATATGGCACTGATCACTCTATTCAACATAGTACTGAAAATCCTAGCCAGAGCAATCAGGCAAGAG
++
+@<?=BDDDHF???@FA9FDFD+AEAG4A9AAACFEH>E*:*1:CDBF94F>FHDH at BFG?D9BBHGHH at 9FE1=@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2377:2200 1:N:0:
+GTCTCCCTCACTTATGAAGCTTAGTTTGGCTGGATATGAAATTCTGGGTTGAAAATTCTTTTCTTTAAGAATGTT
++
+@@@FFFFFHHHHHIJIJBIGGJJJCB>HIIGJJCAFHHGHGIJIGIEIGFGHGIIFGIIGEGEGGGGGGEHIHJ#
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2356:2207 1:N:0:
+GAGTTGGGATCAAGTGGATTGAGGAGGCGGTGCTGTGTGACAATGTTTCGTTTGCCTCAGACAGGTATGTCTTCG
++
+;:=DDDDD?BFB3?CEC<?@<3<C38)))0?@@##########################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2312:2211 1:N:0:
+GGTGGTTGTGGTAAACTTTAATAGTGTAGGAAGCTGAATAATTTATGAAGGAGAGGGGTCAGGGTTGATTCGGGA
++
+@@=DDDDDDFB?CGGHHJJHGGHIHHIIIIIDHEIJEGIGIIIJIIJIIGIBGFEGIGHGGGEH=CHACFFBB?8
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2395:2222 1:N:0:
+GTGTTTGATTCGGCTGATCTGGCTGGCTAGGCGGGGGTCCCCTTCCTCCCTCACCGCTCCATGTGCGTCCCTCCC
++
+@?@DFFFFFHGHHJJII>BGHJCEEHE>FCH9FGG'8&)8?A#################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2460:2222 1:N:0:
+AAGAGAAGCCCTTTTTTTAAAAACAAAAACAAAAAGAAAAAAACAAGAATTTTGGTATATATGTAGATATATATA
++
+@@CFDFFFGHHHHJJJGGHIJJJJIJJJJJJJJJJIJJJJJGIHHECDDCDBCCDCEEEDEFECCDEEDEDEDEC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2344:2226 1:N:0:
+TGTTTGAGGCCATCATCATGAAGGACGTGCCCGACTGGAAGGTGGGGGAGTCTGTGTAGATCGGAAGAGCACACG
++
+@@CDDDDFHHHDHIDHHGIIIEIJIGIGHJJIJEHGHI>GIDCCG<GH?D=A at C@>;;>;@CD@(<?9ACCD###
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2432:2228 1:N:0:
+AAACAAAGGTCCAGAGATCTTAATTGCATCACACAGCTGGTAGGTAAGTAACAGCCTTCAGGCTCAGATGTATGC
++
+?@@DDFFFHFBHHEHGEBFG at HI<HE<F<FHGGIIIEHGG?BFGDFHHBFAHIHIIGGFGC>@6CFG at CA=CDHD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2315:2240 1:N:0:
+CCTACCGAGCCTGGTGATAGCTGGTTGTCCAAGATAGAATCTTAGTTCAACTTTAAATTTGCCCACAGAACCCTC
++
+CCCFFFFFHFHHGIGHIJJJJIJJ>FGHIJJJJJJIIJJJIIHJJHIJJIJIJJJGIJHGIGGIJIJJGHHCDFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2410:2243 1:N:0:
+AGGCCATAGTAGGCCTAAAAGCAGCCACCAATTAAGAAAGCGTTCAAGCTCAACACCCACTACCTAAAAAATCCC
++
+ at CCFFFFFGHFHHCIJIJJJIIJJJCHIJJIIJJIGGGHIHGHEGDHIIIIGGJIIIIJIGIJEHEEEEEDCE>;
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2441:2249 1:N:0:
+GACTCTTTGTAATCTACTCTGTCATCTGGTTTCCCCATCCTAGTAAATAACAACTAGGAAGTAGCCATGAAATGC
++
+CCCFFFFFHHHHHJJJJJIIJIJJJJJIJEHIJIIJJJIJJIJIIJJGJJJJJJJIJJJJJHGHIHIJJIJIIJB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2634:2122 1:N:0:
+CTAATTTTATGTGTTAACTTGACTGGGCTAAGGGATTTCCAGATAGCTGGTAAAACATTATTTCTGAGTGTGTTT
++
+ at CCFFFFDDBFFFHJHJEGHEHGHG?9=@EF<F9FHGEH<CDHFGGDFH>BB><D<FHDDHAG4=CGC)8 at A@@@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2566:2123 1:N:0:
+GATTGGGGTCTTTGCCACTCCTGCCCCATTCATTGGCAGCCTGATCAGCCAGCGAGTCCTCCGCACCATGGCCAA
++
+BCCFFFFFDHHHGJJJJJJJJJJJJJJJJJJJJJGIIJJJIGJGGIIJIIJJJI:HBHHEGHEFEDDEC at CDDC?
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2503:2125 1:N:0:
+CTTTGTGTTTGAGGGTTCAGCTGTCTCTTACTTTTAACCAGTGAAATTGACCTGCCCGTGAAGAGGCGGGCATGA
++
+CCCFFEFFHHHHHJJIJJJJJIJIJIIIJJJJJIJJIIJJJGIIIJIJJJJJJJJJIJGHCGGHJFGF@######
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2525:2134 1:N:0:
+AGACGATTCAAAACATAAAATATTTTTCTCTATATACACCTAGTGAATTATGTAGAGTCTTAAAATCCTAACTAA
++
+@@@FFF?DFHHHGGIJJJJJIIHEIJJEGIJGIIIIJIIJG9FGIJIJJHIIIGHDFBD>GFHCHCBDEHICHJI
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2683:2140 1:N:0:
+GGATTGGTCCAATTGGGTGTGAGGAGTTCAGTTATATGTTTGGGATTTTTTAGGTAGTGGGTGTTGAGCTTGAAC
++
+CCCFFFFFHHHHHJJJJFHHHHIIHHEGIGHGIJJJIJHIJJJJEHHJIJJGGI at GHDHII4AEHEBCEECCEDA
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2708:2142 1:N:0:
+AGGCCTCCACTCCAAATAAATCACAGTCAAAATAAATGAAGAGCTCAAGATGACATCAGTCCCATTTGTCTTAAG
++
+@@@1BDDDHFBC?DDGIGIII4AEDHHHGGGGIIIH at G>FEBEGIGBG<DG9??FE at FAFICGGGFHA=F at FHG@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2541:2143 1:N:0:
+TGGGGAATGGAAAGAGGAGACAGATTTACATGATGGAGGCATGTAAAGAGGGAGATACAATCAGAAACACCAAAA
++
+ at CCFFDFFHHHHGIHIJJJJJJJJJJJJJJJJIHIHIJJJFIHGGGGIIIJJJJIIIJJJJJJIJHGHHHFFFFA
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2728:2143 1:N:0:
+ATGAATGTAAAATGATTCTGTATTAATGTAAATAAGATTATCTATTGCAAAAAGATATTTCAAACCTAAAAAAAA
++
+B at CFFFFDFHGHHJJJJJJJJJJIJIJIHIIJJJIJJJJJDCHGJIIJIJHHJJJJJJJJIGJIIIHGGIIIIJF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2658:2145 1:N:0:
+TTCTGTTGGGTTCTGACCCAGTGACCTCATGACAGTTCCAAGTTCCTTTGTTGTGATGGTGCCATCGCCATCTTT
++
+;;?D;2ADFAF=B at G>FEG=G?FC@?FAD at FHGIIBD>CBBF<BGHGHGBFBF8BG at GG8B@@FGGB;@@C9=E=
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2584:2147 1:N:0:
+CTGGCCACAAGAAGCCTAACATTCATTTTAATTATGATATGAAATGCTCTATTGGTGTAGTTTCAACATATCCTT
++
+CCCFFFFFHHGFFIJIJJJJJJJJFIJJJIJJJIJJJJJJJFIIJJIJJIDGHIHGHGGIIJFIIIGIIGIJID@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2638:2148 1:N:0:
+GGTTTGTGTTTGACTCCTCTTCTTAATGCCTAAAGTCCTCAGTCCCTTGTTGAGCTACGCTGTCTTTAAGTAATC
++
+ at C@DFFDDHHGHHIIGIIGIIDHIGIICCFHIIIIFHCGGGEFHIGIGBGI at FHIEGEFGEHGH>:CEGHGGG>7
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2611:2155 1:N:0:
+CCACCAGGCTCGGTAGGTTTGTCGCCTCTACCTATAAATCTTCCCACTATTTTGCTACATAGACGGGTGTGCTCT
++
+CCCFFFFFHHHHHEHGI at HHCDFHIIGGDDEHGHIIJJIIGIIIIIIGIJJJJGIGIJIJFGIHHGE########
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2639:2169 1:N:0:
+TGGGTGGCTCAGTGGAATCCATTTTGTTAACACCGACAATTAGTTGTTTCACACCCAGTGTGTAAGCCAGAAGGG
++
+ at CCFFFFDHGHH?GIIJJJIIIJJJIJJJIJJJJIGIIJIJJJJIJJJJJJIJJJJJJGEHHHHGCDBDDCCCB:
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2738:2172 1:N:0:
+GAAGGTTAAGGTGACTGTAGCGATTTCTTTAAATAAGACAGCAATGAAGTTTGCCGCATTGACTCTTCCTGTCAC
++
+@@CFFDDDHHFDFHIHJFIHGGEEGGHIJJIJJJJIJIJJJIJJJJJJHGHGIGIJJGGIJIIJJGGCEFEHHGC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2518:2172 1:N:0:
+TCTTGATTAATGAAAACATTCTTGGCAAATGCTTTCGCTCTGGTCCGTCTTGCGCCGGTCCAAGAATTTCACCTC
++
+CCCFFFFFHHHHHJJJJIJJJJJJJGJIJJJJJJIGGIJJJJJHIIIIJJIGIEBGIJBHFFFFCCEDEAACDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2720:2172 1:N:0:
+AATAACCAAATACACAACAGGCCAGGAAATAACATTTTCAGAAATGGCCTTCTAACTGGTTTTCCTAATTCTAAC
++
+?+8=B;DDFCB?DHGHEIIIH at 7?ACBACEDG<C**1?DGGGADFF<)*/*/*0B)))887=CD>D)7@;;D?##
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2542:2175 1:N:0:
+GATGGTGGCTGCTTTTAGGCCTACTATGGGTGTTAAATTTTTTACTCCCTCAAACACAAAGTTTTTTCCTAGTGT
++
+?<?ADADD+A:1CEEC:3:FEE3?ECFI<)?8CDDD?DDEID8 at CE>B2)=BB3 at ADDD9@@CDCDD;6@;@66>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2569:2179 1:N:0:
+CAAGGATGGTTTTGGGACTAGAGGCTCAGTGGTGGGTGAGATCCCTGCAGAACCCACCAACCAGAACGTGGTTTG
++
+@@@DFDDFHFHHHGGGGGGEF at GECGGGIIGGHGII)8?D>GCDHIIGGIFGGHIICEHHEDEF;;@>5=?;=?8
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2591:2180 1:N:0:
+TCTTCTCATTGAACAAATTTTGCATTTTTGGTAAACTCACAGGTTTGGCTGCCAATAATAGAAGTGCCGCATTTC
++
+ at CCFFFFDDDFHHIIIIJJJIJJJJJJIIGI;CEGEHEEHIGIBFHCBGHIGI<FDFGHGFHHD4 at FI@@AEDFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2653:2183 1:N:0:
+AGGTTTGGCTAAGGTTGTCTGGTAGTAAGGTGGAGTGGGTTTGGGGCTAGGTTTAGCAAGGACTAACCCCTATAC
++
+@@@:BDFDDGHFHI:ABFHGHIHEEHFE@@?GGGIGGIIIEHIBBHEEGHG==F at GGEGGHCHHHFFFFDCDC>C
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2748:2190 1:N:0:
+TAGTGGGTGTTGAGCTTGAACGCTTTCTTAATTGGTGGCTGCTTTTAGGCCTACTATGGGTGTTAAATTTTTTAC
++
+@@CFDFF at FDDH?HHIEIJIJIIIIIJJJCIGHGGBGHGGHIHHIJGIIJIJ at HG@CGEG);=CHAEDFFDFBD>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2670:2192 1:N:0:
+AGAAATTTACTAGTGCAGCAACCATTTAAATTAAATGTTTGTTAACATAATAGTGATGGCATTTTCTCCTCCCCC
++
+CCCFFFFFFDHHH<EHGIIIICHEGHIGGGIIIIGIIFFHIIIGFGGIDHGHIHEHHIHGIEGICHIIIIIIIE@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2551:2197 1:N:0:
+GTGTGAGGAGTTCAGTTATATGTTTGGGATTTTTTAGGTAGTGGGTGTTGAGCTTGAACGCTTTCTTAATTGGTG
++
+BBCFDDFFHHFHHGIGIIJIIJHHHJIJHIJJJIIIIJ?FHFHIG?DFHHCGIGIIHGIIIFFHHGFFFFFFCA?
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2692:2200 1:N:0:
+CTTTGTGTTTGAGCAATAACAGGTCTGTGATGCCCTTAGATGTCCGGGGCTGCACGCGCGCTACACTGACTGGCT
++
+CCCFFFFFHHGHHJJJIJIJJJJFGIIIJJIJIIJJIJJIFIJJJJIJJJJJJJJIGHFDD at BDDDDDCDDDDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2720:2201 1:N:0:
+TGTTTGAGTGGAGTGTGGTTTGGCAGAACAACTGCATTTCACAGCTTTTCCAGTTAAATTGGAGCACTGAACGTT
++
+BC at FFFFFHFHHHFHHHIHIIIJJJJIJJJJJJJIJIJJJJJJJIJJIJJIJJGIJJIIJJJIIIIJIIJHHHAD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2616:2203 1:N:0:
+GGTCGTCCGACCTGGGCATAGGGGCGAAAGACTAATCGAACCATCTAGTAGCTGGTTCCCTCCGAAGTTTCCCTC
++
+@@CFFFDFHFGHAGIH+A at GDG@>FGIIIIIIIIIGGFEHF8;AC>AC;>CC;>A3;@CCCCBB=<@?@CCA at AC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2518:2205 1:N:7682:
+GATCCGTTAGCTATCGTTCGCGAGAAAGTTAGTAGACACACAGGACCCAGGCGTGCAAGTCAATTTCAGCTGACT
++
+CCCFFFFFGHHHHJJJJJJIIGGHIIIJHGGIFIIGJJJJJJIIIGIIJIIGHBDBDCECCECDEDDEDCDDDDC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2572:2207 1:N:0:
+ATAAGGGGAGAGGGTCAGTCAACCATCTTAGATATGGGAACTTAAGGGGACTTCATGGCCCTGCGGGAAAAAAGC
++
+@@CFFFADHHFFFIAEGEHHGIEGGGHBHIFEEHGIEHHG;GCFHEHIIBGEHEDEHBHGEHHEDEDDBDC?;9A
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2740:2214 1:N:0:
+GGTCGGGGGGCTGGAATTACCGCGGCTGCTGGCACCAGACTTGCCCTCCAATGGATCCTCGTTAAAGGATTTAAA
++
+@@@ADDDDDBBBBBBCC8@@@@B30:38BC>@<<3+8<<?8>>8>C>A83>9@@>3:9>@B(822>:>(+:>:@C
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2644:2220 1:N:5122:
+ACTGGATGCATCTGCAGGATATCGCGGCCGCGTCTTCAGAGGGGGATAGCATGACCTCACGCCTTCTATAAAAGC
++
+CCCFFFFFHHHGHJJJJIIGHGIGDGIBHIIIFHGIGEGHHHHFDBDCDDDEDCDDDDDDDDDDDDCDECDDDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2572:2228 1:N:0:
+CTATTCATTTCATTCCTAACTAATTTTAAGTGATGTTGATGTTGCAGGACTGGAGACCATGCTTTGAAAACCAAT
++
+C at CFFFFFHGGHHIGIIJJIJJJJEGIDHJHHHIJIJJFIJAHIIIJJIJJIJGIIJJJJJGIIGIEEHGIJG@3
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2694:2228 1:N:0:
+GTGGTTTGTTAGGTACTGTTTGCATTAATAAATTAAAGCTCCATAGGGTCTTCTCGTCTTGCTGTGTCATGCCCG
++
+@@@FDFFFFHGHGAEHGIHIJFIGJIIJJJJJJJJIGIIIJJGIJJIJBGHIIJJJHGIIIJIJGG>FGIJJJIB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2629:2230 1:N:0:
+GGTGATAGATTGGTCCAATTGGGTGGGAGGAGTTCAGTTATATGTTTGGGATTTTTTAGGGAGTTGGTGTTGAGC
++
+:??D=:4B::DDA<C<+++A?3<+<):))?:BB?<0?90B9B<D*0?*?<BC33=@AA;?(75??A3(5(,5>AA
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2541:2237 1:N:0:
+ATAACTTTGTGTTTGAGGACGGTACAGGACCGGTCGACTAGCCAGTCCACAGCCAGGATCAAGGAGATATGGTCG
++
+CC at FFFFFHFFHHIIJJJJIJJCGIIJJIJJJIHIJJJJJJIJJJIJHHHHHFFFFDDEEDCCCDDDCCDCDC@?
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2512:2238 1:N:0:
+TTTAGGTAACTTTGTGTTTGAGGGCCTTATTTCTCTTGTCCTTTCGTACAGGGAGGAATTTGAAGTAGATAGAAA
++
+CCCFFFDFHHHHHJIIIIIJJJJJIIJJJIJJJJJJJJJJJJJJJJIJJJJJJJJJIJJIIGA at G@EHHFFGDEH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2572:2245 1:N:0:
+TTCTCCCTAGAGCTTTCTTGCTAATGTGCCTATATCCTCTTACTTTAGCTATATTCCTTATACAAAGGAGCATCA
++
+ at CCFFFFFFHHFGIIIGIJIIIJJJIJJDHIHIIEIIIJJIGGGIIJIEIJEGIIGIJIIIJGG@FEHGEIGII>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2664:2246 1:N:0:
+ACATCCGCGCTTCATGATGAAAGGCCTCAACCAGTTAGGCATGGAAGGAACATACCTCAAAATAGTAAGGGCCAT
++
+CCCFFFFFHHHHHJJJIJJJIIIJJIJJJJJJJJHIJJJJJJJJJJJJJJIJIIIIJJJHHHHHHEFFFFE at CBA
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2598:2246 1:N:0:
+ACAGCCAGGGACATGTAGGCAACACGAGCAGGCACAGCGCGGCCACCACTGTCCACACGCTCACACAAGCCAGGC
++
+@@CFFFFFHHHGHJFBFEHIJJJJIJGIJJIGIIJIGGIIGGHHFFECDEDCDCDDDDBDDBDDCCDDDDDDBDB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2751:2116 1:N:0:
+AAGANGAGGACCGGTCTTCGGTCAAGGGTATACGAGTAGCTGCGCTCCCCTGCTAGAACCTCCAAACAAGCTCTC
++
+CCCF#4ADHGHHHJFHJJJJJHIJJJJJDFHIJJJIHHIJJJJJJIJJHHHFFFFFFEEAEEDDDDDDDDDDDDC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2972:2117 1:N:0:
+GCTCNAGGATTTGACCTTTGCAAGAAGAATGACTCAGCTGGCCTTGATATGGTGTGGTCCACCAGACCTGATTCC
++
+BCCF#2ADDHHDFIIJJJJGEHIIJIIJJJJJJJJJIIIGJEIIIJJJJJIJHIIIJCHIGGGJGGIIIGHHGHD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2858:2117 1:N:0:
+TATTNCTTGAGATGAATATTTAATTCACACATTTTTATTTCTTTTTGTTTAGTAGCTTAAGAGTATAAAGCTGAG
++
+CC at F#4BDHHHHHJJIJJJJJIIJJIJJIJGJJJJJJJJJJJJIJJJHIJJJHIIJJJJJIJJHIHIIIJIJGHH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2819:2125 1:N:0:
+GTCGGTGAGGAGTACTTAGGCTTGGAGGGTGGTCCCCCCATGTTCAGACAGGATTTCACGTGTCCCGCCCTACTC
++
+@@@FFDDAHBBD:ACEH>HGGIIIIEBD at F7D?FGEIGGG at G@@@ACEGEEFEDDFEDDCCCEC@@;?B=?CBCC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2877:2125 1:N:0:
+AGCTTGAACGCTTTCTTAATTTGTGGCTGCTTTTAGGCCTACTATGGGTGTTAAATTTTTTACTCTCTCTACAAG
++
+8=8DDDDBFB?DHEGBFHCHIH>E>1;AEHHCHIC??3BF;)?B<<@;*7?;<C at BCG>CGEGHFHE:?;B at EBD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2783:2126 1:N:0:
+TTGTGTTTGATTGGTAGATATTGGGCTGTTAATTGTCAGTTCAGTGTTTTAATCTGACGCAGGCTTATGCGGAGG
++
+ at CCDDFFFHGHHHJGHIIIIIJIJJJIJHJIJJJIHIIJIIJJJGHEIGIIJJIJJIIJIJJIJIJJIJJHGEFA
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2924:2127 1:N:0:
+TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
++
+CCCFFFFFHHHHHJJJFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDBDDDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2833:2134 1:N:0:
+GGTGGTTTTTCTCTGGTGTCATTGTTTATTATCCTTCTTGGTAGACTCATCTGCTTTCTGTCTGTTCCAGAAATT
++
+@@@DFADEHHGGFHGEH>CE at HADEHEHIIHGIGFEGGIBCFFD@BFHHGIIHGHGHGHBFBHCHGBFF;==CFG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2979:2137 1:N:0:
+CCCCCTCCCCAATAAAGCTAAAACTCACCTGAGTTGTAAAAAACTCCAGTTGACACAAAATAGACTACGAAAGTG
++
+BCCFFFFFHHHGHIJJIJJJIJJJJJJJJIJJJGIJJIIIJJJJJJJJJHGIEIGIIJIJIIHHHHHHHFFFCAC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2847:2145 1:N:0:
+GCTGTCTTCCTAGATTCACTGAATCCACTTCTGTGTAGCACCTGGGTCAGCTGTCAATTAATGCTAGTCCTCAGG
++
+@@@D=BDDFFDDFGIIIIIIIIH?FFIIIIIIFEFFGIIFFFFIIFDGGIIIIGIIGEF at FGIIDIGFIIIIIDB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2811:2145 1:N:0:
+TCAAGCCTTATTGAAGAGATAGGAACTCTTGGTTGGGATAAGGAAGAGACTTCCACCTTAGGATAGTGTTGCCTG
++
+@@CFFFFFGFFFHIJEEGGCIGI:CFEADHIJFHAHGICHIEHEIGEGGGC<DCHEHHGDGGFAHGCE)7?AA>A
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2885:2146 1:N:0:
+TCTGTGGGCAAATTTAAAGTTGAACTAAGATTCTATCTTGGACAACCAGCTATCACCAGGCTCGTTAGGAGATCG
++
+CCCFDFFFGHHHHJJJJIJIJJJJJJJJJJJJJJJIJJJIJGGHJJJJJJJJIIJJJJGHIGIJHIFHHHFFEEE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2770:2150 1:N:0:
+TGTGAGGCCCCGCTTTCACGGTCTGTATTCGTACTGAAAATCAAGATCAAGCGAGCTTTTGCCCTTCTGCTCCAC
++
+@@?DDFADFDHHFGHIJJIJJIJIIDFIIGIBFGIIGGIGGGHCFC at CEGI<GIJHEE at DEFCFEEEEEECDDD3
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2862:2156 1:N:0:
+TGAGGGATATGAAGCACCGCCAGGTCCTTTGAGTTTTAAGCTGTGGCTCGTAGGGTTCTGGGGGGCAGTTTTTGG
++
+@@@FFFDFHBBHAFBGIIIIIGGG9CFDGAB at GBAGGICGHHE@DGEHGE'5@######################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2796:2160 1:N:0:
+AGATGGGCGCCGCGAGGCGTCCAGTGCGGTAACGCGACCGATCCCGGAGAAGCCGGCGGGAGCCCCGGGGAGAGG
++
+ at CCFDFFFHHHHGJIJJFIHIGGI@GIHHHDEFDDDDDBDDDDDDDB at BDDDAABDDDBB<@@BDD3;BB#####
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2826:2161 1:N:0:
+TTGACCACGGTTCTATTTTGTTGGTTTTCGGAACTGAGGCCATGATTAAGAGGGACGGTGGGGGGGGGGGGGAGG
++
+@@@DFFFFHHHHDHBHIFIGE>AGAEGIGBHCHIGJIJJCGGHGEGHHIIGFHHIB=A#################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2995:2162 1:N:0:
+TGTCAGGCAGGAAAGGAGAGAAAAACATGAAATAGATGAGACAAATAGGCAAAAATAAGAGTTTTAAACCCAAAC
++
+ at CCFFFFFGHHHHIJIGGIGJJIJJJIEHGJJJGIIIJIIJJJJJIJJJIIJJIIJJJIJIGGIIJHHHHFEFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2943:2165 1:N:0:
+AAACACCCACTACCTAAAAAATCCCAAACATATAACTGAACTCCTCACACCCAATTGGACCAATCTATCACCCTA
++
+CCCFFFFFHHHHHJJJJJJJJJJJJIJJJJJJJJJJJJJJJIJJJIJJJJJJJJJIIJIJJHEHHHFFFFFFEDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2869:2177 1:N:0:
+AGGGCCAAAATGGATCTCTAATGAAATATATGTGACTTTATCTTAATGAGCATGCCCTTAATCCTATCATGTAAG
++
+BC at FFFFFHHDHFGHIIIIIIHHEIIGHFFHGFHIIJJIJIJJJJJIGHIGIGEHIJEHHIGIGGGIIIIIIGIC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2816:2183 1:N:0:
+TAAAAGAGATATTCTTTCACTATAGTGAATTTAAGGGTGACTTAGAAACCTTACAGCCTGGCGATGATGTGGAAT
++
+CCCFFFFFHHHHHJGIIJIJIGGGECFHIIIGHIJIG:EHIEIIIJJJIIIIHHIJHIGIHIGGHHIICCGIHHH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2957:2184 1:N:0:
+GATCGGAAGAGCACACGTCTGAACTCCAGTCACCGATGTATATCGTATGCCGTCTTCTGCTTAGAAAAAAAAGAA
++
+@@@DDDDDDDF3CFHA?AAAFHGGCHGE<*?CCDBFFGDE<*9BB##############################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2848:2194 1:N:0:
+AACTGTTAGTCCAAAGAGGAACAGCTCTTTGGACACTAGGAAAAAACCTTGTAGAGAGAGTAAAAAATTTAACAC
++
+ at CCFDFBDFFHHHJJIJJGIIJJJJIJJJJJJJIJJJJJJIIJIGIGIIIJIJJIIIJGH=CEEHHFFFFDCACE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2791:2198 1:N:0:
+TGTGCGTGTGTGTGTGTGTGTGTGTGCGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGGGTGTGT
++
+=1:?1AADCFCDFEGBGF+C;FG;):*)11:8BG?B9?0?9?DC2C(==@CA(.6==AFD6@;?@@#########
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2825:2198 1:N:0:
+GGACACTAGGAAAAAACCTTGTAGAGAGAGTAAAAAATTTAACACCCATAGTAGGCCTAAAAGCAGCCACCAATT
++
+?@@DFDFDFDHDDIII<FFFCBAC at EFHGD?BDHHIHGCFHHEDF;AHGGIGIHA=@:C7?EH;=C26?@;=ACC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2969:2201 1:N:0:
+CTTGGAGGCCTAGAAAACAAGATAGCCCAAAATGAAGATGAAAAAGTCCACAGTGGGAATTCAGATGGACTAGAA
++
+CCCFFFFFHHHHHJJJJJJIIJHGHJJJIJJJJIIJIJJJGIJJJIGIIIIJIEGHIJIIJJIIJIJJJHHHCEC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2994:2203 1:N:0:
+GCCGCTATTAAATGTTCGTTTGTTCAACGATTAAAGTCCTACGTGATCTGAGTTCAGACCGGAGTAATCCAGGTC
++
+@@@FFDDFGDDF>E?CGGBECGBBEEHI<ECGIBHGDAGGGG0BBDHGHGBHB4ECGGGHIGH<5 at B>@EDCC##
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2812:2220 1:N:0:
+AACTGCCACACGCAAAAAAGAAAACCAAAGTGGTCCACAAAACATTCTCCTTTCCTTCTGAAGGTTTTACGATGC
++
+CCCFFFFFHHHHGIJJJJJJIJJJJJJJJIGHIHHIIJJJJJJJIEIIIIJIJJJJHHHHHEFF?CF at EEDDDDB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2962:2221 1:N:0:
+CTACTATTCGTTTTTGCTTTATATATTCTGGCTATGTTATTCAAATGTGGGATTGTTACGTCTTGCTGACGTGTA
++
+CCCFFFFFHHHHHIJJJJJJJIJJJJJJJJJJJIJJIIJIJJJJJJJDHIJIJ;FFIIJJGIGGHIIJJJJGG7?
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2786:2222 1:N:0:
+ATGAGGACAACCAGTAAGCTACCCTTTTACCATCATTGGACAAGTAGCATCCGTACTATACTTCACAACAATCCT
++
+C@@FDDDFHHHHHJFHHGAFHJII9EFHHIIIGJJJBFGGIEIIGEHIIGHJIIIJJJGII)=CHIJJECEEHE:
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2758:2223 1:N:0:
+CTCAGTTTTCCCAGAAAGAGGATAACATCTTAGTAACTTAGATATTGAAGTAGTTGTGATTATTTAAAGCAAGTC
++
+CCCFFFFFGHHGFHGIHJIGEHGGHIJFIJIGI>ADHGIGIJFIIIIIABFIGICGHIGCHGEIIJGGIBGGH4@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2870:2228 1:N:0:
+GCGAGGGGTAGGGGAGGGAGAGATCACATGGGGCCATGACAGCGGTTTTGAACTTTATCCTGAAGACTTGATGTG
++
+BBCFFFFF<DFHHJJJJJIJJJIIJJJJJJJJJIJJJJIJIIHFFBCDDDDDDDDDDDDDEDDDDDDDDDDDDCC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2989:2233 1:N:5634:
+ACTGGATGCATCTGCAGGATATCGCGGCCGCTCTAAACGTGGTAAATTGTTAACTCCGAGCTAGACTTCAGGTGG
++
+@@<DDFBDHBHDH at GBHGCGHF>GEIFDIE??FB9=8F at 8@;==@E3?>.7=B?@@D7>A>?;35:>(((>@,:?
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2897:2238 1:N:0:
+CTGTCTGATGATTATTTCTTTCTACAACTGGCTCTTCCACCACATTTATACTATTATTTTGCATAATCTCTTGCA
++
+?@@BDDDD<DFDAEGIIHIIIAFH:CG>E;C++<FH<?CG at D?;BGHGHGDEHHGG:D><BBEFBB4=C at CFGD@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2799:2240 1:N:0:
+GTTTATTTGTCACATTTAAAGTACAAAATCAAATACACAGATCCAGATGTGTGAACCATATATACATATCTATAC
++
+@@@DDDFDHFFFFGABAGIGGAEHHJJJGIJIIIJJIJJIJJIJJIJJJIGIIJIIJIIGIJGGIIJIGJJJIJI
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2765:2245 1:N:0:
+TATACATATACTAAAAAGAAAAAAACAAAATCAGACAACCAAAAAAGCCACCTTGCATACTAGTCCCATTACAAA
++
+CCCFFFFFHHGHHJJJIJJJJJJJJJJIJJJJJJJJJIJJIJJJJIJIJJHHHHGFFFFFFFCCEEEECCDDDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3034:2128 1:N:0:
+GGTCCAGGACCAGGAAGTAACTTTAGAGGAGGATCTGATGGATATGGCAGTGGACGTGGATTTGGGGATGGCTAT
++
+ at CCFFFFFHGHGGIGIJFHHIIJJIJJJIJJIIGHIIIIIIIIJIIJIIJFDHGHH-@F1CHJIBEHDEFDE<C3
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3140:2129 1:N:0:
+AGGGGCCCGTGCCTTGGAAAGCGTCGCGGTTCCGGCGGCGTCCGGTGAGCTCTCGCTGGCCCTTGAAAATCCGGG
++
+@@@DDDDDFFF:FFFBADH@)*:)1?@FFBE;F8BB:>B15&05 at -52<?BAA@<B05;8?@0?9:ABBB>@;9@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3190:2131 1:N:0:
+CTAGAATCGGATGGTCTTTGTAACTGATTCTGGACATATGCATCATTGATGTTGCAGTGTTGAAACTACAAGAGC
++
+CCCFFFFFHHFBHIADGHIADFHDFEGCHEDBHBHIHIGGHGIGGIEIHIIGHIIIIDFBFGGHIGIIIIIGHGG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3159:2138 1:N:0:
+CTTTGTGTTTGATTATTGTTAAAAATTGATTTGGTTATCTGAGTTCAGCGAGTGGCCGTCATGTGACCATGACTT
++
+ at C@FFEFAFFHHHJJJGIJJEGIJJIJIGIJJJJGIIIJJF9DCABGIJ>HBHIJIJJBHDDGHDGHHHHHGFBD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3003:2143 1:N:0:
+GAGCTACCTAAGAACAGCTAAAAGAGCACACCCGTCTATGTAGCAAAATAGTGGGAAGATTTATAGGTAGAGGCG
++
+@@@FDFFFHHHFHJIIGHEDHIJEHE9FFHE;FGIIJIJJGGIGHIIIHHH9BDGBEFHDGAEGIIGDEHH at EF<
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3023:2146 1:N:0:
+AATCACCCCCTCCCCAATAAAGCTAAAACTCACCTGAGTTGTAAAAAACTCCAGTTGACACAAAATAGACTACGA
++
+@@CFFFEFFHDFFGIIGGHIJCDGECHIBDFEIGHCHHGAHBFIIHII at CHGCH=DHCDGCEEAEBDEEFDCCAC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3234:2154 1:N:0:
+CACATCTGGCCCACTCTGACTGACGAAGAATGGATCAAGGTCGAGGTGCAGCTCAAGGATCTGATCTTGGCTGAC
++
+CCCFFFFFHFHHHJJJIJIIJJJJJIJIIJJJJIHGIJJJGGIGIE at CHGIIIIIBEEIIHGHHGHHFFFFFDED
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3133:2155 1:N:0:
+TGTGTTTGATTTTTTTTTTTTTTCTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
++
+BCBFDEFFHHHHHJJJJJJJJJJ=DHIJHFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDBB@#######
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3044:2155 1:N:0:
+AAAGTTGAGGTCGTGTCATTACCTTGCTGCGCAAACATGGAAAAATTCATTTGGAAGACATACAACTCAAGTGAT
++
+@@CFFFDDHHAFHCGEHGHGIHGIIGIGIHIJJJJJJGHHGGIJJIIEHJHGGCGGIJIJIIHFGGHHF at D@CC;
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3164:2162 1:N:0:
+TAGGGGGGGGCGGGCTGAATGCAATGGAGTGTGCATTACATTTGGAAAAAAATGTGAATCAGTCACTACTGGAAC
++
+CCCFFFFDDDDDDDDDDDDDDDDDDDDCD8?CCCEEEDDDEEEEDCDDDDBDDDCDDDEDDDDDDDDDDDDDCAC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3054:2170 1:N:0:
+TGTTTGAGGGGCTCAGTTATATGTTTGGGATTTTTTAGGTAGTGGGTGTTGAGCTTGAACGCTTTCTTAATTGGT
++
+1==DD=?DFFFD>FG>FF<FH>>BFEB=F;D9C4?DBCEBDDFF((<@FC=)=)7 at CEFEDB?@?3>;A######
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3111:2178 1:N:0:
+GAGCCTGGTGATAGCTGGTTGTCCAAGATAGAATCTTAGTTCAACTTTAAATTTGCCCACAGAACCCTCTAAATC
++
+BCCFFFFFBFFHGIJJIJEIIFHHJIJIJJIIJBHJJIJIJJIJJIJJIJJJJIJGGGHIJIEHIGHDEGGGJ at A
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3228:2178 1:N:0:
+ACACAAATTGTGCAATTATTTTCATTTAAATTTACTGAGAATCCCACAAAAGTGATCACTTTAAAGATACAGAAA
++
+BCCFFFFFHHFHHJIIJJJJJIIJIJJIJJJJJJJJJJJIJIIJIJIFJGIJEGIIJJJIIIGJGIIJEGGGIJI
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3021:2180 1:N:0:
+ATGTTGGTGGAGCGATTTGTCTGGTTAATTCCGATAACGAACGAGACTCTGGCATGCTAACTAGTTACGCGACCC
++
+@@@D?BBDHDFHFA1<A at AHEHGGICFH?CFH>@DHE at GGHIGIFIG@=).=;=CEHEC@;;?>@6;A=/96?;B
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3009:2183 1:N:0:
+ATATCACTGAAGCCTGGACTATCTTCAAAGCCCGACTGGCACAAAATGACATATTAATGTAGTATCTCATTTCCT
++
+CCCFFDBEHDFGHGBHGFGIGIJGIGIIFHHGGEFD6DGEGIIJDHGGGGGFHCHGHG@=@E@;DH:=?>CEEAE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3074:2186 1:N:0:
+AAGATCAGTTTTAAAAATGTAATTGGGATGTAAATTCTGTCTCTAAAATACCTTATGTTATGTTTAGCCATCAGA
++
+CCCFFFFFHHHHHJJJJJJGHJJJJJJIGJHIIJJJJJJHIJIIJJJJJJJIJJJIIIJIIJIIIIJIIJJIJJG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3179:2188 1:N:0:
+TGTGAGGAATAGTCATGCTATGGAGAACAGCTACACAACACACATAACCAGAGGACTCAAACACAGCAGCTAATG
++
+@@@DFFFDHFHHDGGHHIJIIIEIIJIJJJJGGIGIIIGJJJJJJJFIJIIDGGGGGIGGGGIGJJHHHHGFFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3046:2190 1:N:0:
+GGAAAAAACCTTGTAGAGAGAGTAAAAAATTTAACACCCATAGTAGGCCTAAAAGCAGCCACCAATTAAGAAAGC
++
+ at C@FFDFFHHHHHFHGIJIIIDAEAHIIJGJJIJJJJJIIGEHFHGEIIJIDHEGIIHJGHFHDEDDDFECEEEC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3244:2190 1:N:0:
+CTGAGCTAATACAGTCTATACTTATTTCTTCCCTACCTGTTTCACATCCGTAAGATTTAGGATATACATTTTTTG
++
+@@@DADA>FHHD4A<CEHIGDGGIIIIFDGGHGCHGGGF9:DHAFE@>FB1)0?GH4/?4<@CFGFCB4)/@;@4
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3219:2193 1:N:0:
+AAGTCCAAGAGTCCAAAAGCTGAAGAAGTTGGAGTCTGACATTCTTGGGCAGGAAGCATCCAGCATGGGAGAAAG
++
+@@@DD?DBCAD2A<C at FH>;HDHHGABC+A<*:?:?*?9FHHIIIEB3B)9 at F;DCHIF37=)8 at 4=6=?#####
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3197:2198 1:N:0:
+TGTTTGCGTCTGTTTTACTGTCTGCTTATTGTTTGATGTTAATTTATCTCCCTCAGCAAGATAAGCTCTCATAGA
++
+?=@DADDD?@8C?EFB:E at A?<F+4<ACFF91:9C?D<:D9?<BGAFEFEFC)?DBF at CFFDDGIGE34@;;@:=
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3168:2201 1:N:0:
+GAACTCTCTCTTCAAAGTTCTTTTCAACTTTCCCTTACGGTACTTGTTGACTATCGGTCTCGTGCCGGTATTTAG
++
+@@@?DBDBFDDDHIIGIEHHIHCHAHHIDEHB?F9?EGHE?DH at D??BFE>B<BFGBBFBCC;@DDHB'9B;A;?
diff --git a/clipper/t/in/multx/mxtest_2.fastq b/clipper/t/in/multx/mxtest_2.fastq
new file mode 100644
index 0000000..1b35d98
--- /dev/null
+++ b/clipper/t/in/multx/mxtest_2.fastq
@@ -0,0 +1,1000 @@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1230:2118 2:N:0:
+ACAGNNN
++
+ at CCF###
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1196:2124 2:N:0:
+GCCANNN
++
+?;@D###
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1211:2126 2:N:0:
+GCCANNN
++
+ at B@D###
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1238:2152 2:N:0:
+GCCAANN
++
+@@@FF##
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1224:2185 2:N:0:
+CGATNNN
++
+ at B<D###
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1179:2187 2:N:0:
+ACAGNNN
++
+@@@F###
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1223:2231 2:N:0:
+GCCANNN
++
+ at 8BD###
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1356:2120 2:N:0:
+GCCAATA
++
+ at +??D:A
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1387:2124 2:N:0:
+TGACCAA
++
+B@@FFF?
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1323:2146 2:N:0:
+TGACCAA
++
+ at B@FDFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1422:2148 2:N:0:
+TGACCAA
++
+@@@FDDB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1344:2152 2:N:0:
+CGATGTA
++
+?B<DFBD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1276:2152 2:N:0:
+GCCAANN
++
+?;BD###
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1326:2167 2:N:0:
+CGATGTA
++
+8@@DD+A
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1434:2177 2:N:0:
+CGATGTA
++
+ at B@DDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1250:2180 2:N:0:
+CGATGNN
++
+@@@DF##
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1342:2181 2:N:0:
+CGATGTA
++
+ at B@FFBB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1326:2195 2:N:0:
+TGACCAA
++
+?=@=1=D
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1404:2198 2:N:0:
+TGACCAA
++
+B@@FDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1365:2202 2:N:0:
+TGACCAA
++
+B@@FFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1497:2206 2:N:3586:
+ACAGTGA
++
+?88:4A?
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1311:2219 2:N:0:
+ACAGTGA
++
+@@@FFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1395:2221 2:N:0:
+TGACCAA
++
+B@<BD>B
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1348:2222 2:N:0:
+CGATGTA
++
+?B<DF=B
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1275:2229 2:N:0:
+CGATGNN
++
+@@<DD##
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1456:2233 2:N:0:
+CGATGTA
++
+B@@DFB=
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1298:2234 2:N:0:
+ACAGTGN
++
+@;@DDF#
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1327:2242 2:N:0:
+CGATGTA
++
+?@<DD=B
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1426:2246 2:N:0:
+CGATGTA
++
+ at B@DFDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1287:2250 2:N:0:
+TGACCNN
++
+#######
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1637:2116 2:N:0:
+GCCAATA
++
+B at BDDDF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1585:2121 2:N:0:
+CGATGTA
++
+??<DFAD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1719:2132 2:N:0:
+CGATGTA
++
+ at B<DFBD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1530:2132 2:N:0:
+ACAGTGA
++
+@@@FFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1501:2136 2:N:0:
+TGACCAA
++
+@@@FFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1556:2139 2:N:0:
+ACAGTGA
++
+ at B@FFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1641:2143 2:N:0:
+TGACCAA
++
+B@@FFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1689:2148 2:N:0:
+ACAGTGA
++
+CCCFFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1668:2150 2:N:0:
+ACAGTGA
++
+CC at DFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1597:2151 2:N:0:
+GCCAATA
++
+??BBBBD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1509:2166 2:N:0:
+ACAGTGA
++
+@@@DDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1740:2167 2:N:0:
+TGACCAA
++
+@@@FFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1591:2169 2:N:0:
+CGATGTA
++
+?@@DDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1529:2172 2:N:0:
+GCCAATA
++
+@@@FFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1710:2174 2:N:0:
+GCCAATA
++
+#######
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1571:2181 2:N:0:
+TGACCAA
++
+@@@DDDF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1520:2197 2:N:0:
+CGATGTA
++
+ at B@FFAD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1669:2200 2:N:0:
+CACAGTG
++
+@@@FA4B
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1710:2200 2:N:0:
+ACAGTGA
++
+B@@FFFE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1550:2201 2:N:0:
+CGATGTA
++
+@@<DFBD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1602:2205 2:N:0:
+ACAGTGA
++
+B@@FFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1687:2216 2:N:0:
+TGACCAA
++
+@@@FFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1577:2220 2:N:0:
+CGATGTA
++
+@@@DFAD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1520:2227 2:N:0:
+CGATGTA
++
+@@@FFBD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1738:2228 2:N:0:
+CGATGTA
++
+?@@DDBD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1558:2230 2:N:0:
+CGATGTA
++
+?B<DDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1616:2235 2:N:0:
+TGACCAA
++
+ at B@DADD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1718:2237 2:N:0:
+TGACCAA
++
+@@@DDFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1598:2243 2:N:0:
+CGATGTA
++
+?@<DFBD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1503:2246 2:N:0:
+GCCAATA
++
+B<@D?DD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1648:2247 2:N:0:
+GCCAATA
++
+?######
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1765:2117 2:N:0:
+CGATGTA
++
+BB at FF;D
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1983:2124 2:N:0:
+TGACCAA
++
+@@@FFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1851:2128 2:N:0:
+CGATGTA
++
+B@<DFAD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1954:2130 2:N:0:
+GCCAATA
++
+BCCFFDF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1777:2133 2:N:0:
+TGACCAA
++
+?@<DD?D
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1933:2134 2:N:0:
+GCCAATA
++
+@@@DFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1908:2135 2:N:0:
+ACAGTGA
++
+@@@D?DD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1992:2141 2:N:0:
+TGACCAA
++
+B@@FFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1807:2144 2:N:0:
+TGACCAA
++
+@@@FFDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1939:2156 2:N:0:
+GCCAATA
++
+@@@DD;D
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1952:2158 2:N:0:
+TGACCAA
++
+?@@DDDF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1788:2159 2:N:0:
+GCCAATA
++
+#######
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1861:2165 2:N:0:
+CGATGTA
++
+BB at FFBD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1988:2168 2:N:0:
+CGATGTA
++
+?@<DD:B
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1803:2170 2:N:0:
+ACAGTGA
++
+ at C@FFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1962:2173 2:N:0:
+TGACCAA
++
+ at C@FFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1935:2181 2:N:0:
+TGACCAA
++
+BB at FFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1885:2183 2:N:0:
+GCCAATA
++
+?8BDDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1905:2186 2:N:0:
+GCCAATA
++
+?+?DB;D
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1989:2202 2:N:0:
+CGATGTA
++
+?B<DD?B
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1757:2203 2:N:0:
+TGACCAA
++
+@@BD:AD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1896:2204 2:N:0:
+CGATGTA
++
+?@@DDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1965:2207 2:N:0:
+CGATGTA
++
+@@<DDBB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1785:2217 2:N:0:
+ACAGTGA
++
+@@@FFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1880:2219 2:N:0:
+CGATGTA
++
+?@BDDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1872:2229 2:N:0:
+GCCAATA
++
+@@@?=DD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1977:2232 2:N:0:
+ACAGTGA
++
+@@<DDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1911:2235 2:N:0:
+ACAGTGA
++
+;:BDDED
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1814:2236 2:N:0:
+GCCAATA
++
+BCCFFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1785:2245 2:N:0:
+TGACCAA
++
+@@@D;DD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1754:2247 2:N:0:
+CGATGTA
++
+B@@FFDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1939:2247 2:N:0:
+CGATGTA
++
+@@@DFDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2216:2123 2:N:0:
+ACAGTGA
++
+ at B@FFFB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2139:2128 2:N:0:
+CGATGTA
++
+ at B@DF?D
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2086:2130 2:N:0:
+CGATGTA
++
+@@<DFDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2222:2148 2:N:0:
+ACAGTGA
++
+?@@DDFB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2154:2148 2:N:0:
+ACAGTGA
++
+@@@FFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2185:2150 2:N:0:
+GCCAATA
++
+CCCFFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2024:2150 2:N:0:
+ACAGTGA
++
+@@@DDDE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2064:2154 2:N:0:
+ACAGTGA
++
+@@@FFED
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2103:2159 2:N:0:
+CGATGTA
++
+@@@FFBD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2081:2166 2:N:0:
+TGACCAA
++
+@@@DFDF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2046:2171 2:N:0:
+ACAGTGA
++
+BC at FFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2174:2171 2:N:0:
+CGATGTA
++
+B@@FFDE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2024:2176 2:N:0:
+ACAGTGA
++
+B@@FFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2242:2179 2:N:0:
+CGATGTA
++
+=?+=?##
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2143:2180 2:N:0:
+ACAGTGA
++
+BC at FFFB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2210:2187 2:N:0:
+CGATGTA
++
+BB<FFDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2117:2202 2:N:0:
+CGATGTA
++
+ at B@DD?D
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2097:2206 2:N:0:
+ACAGTGA
++
+B8?;BDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2196:2206 2:N:0:
+TGACCAA
++
+C?@FFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2154:2207 2:N:0:
+CGATGTA
++
+=1=?A2A
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2138:2213 2:N:0:
+ACAGTGA
++
+B@@DDFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2089:2219 2:N:0:
+TGACCAA
++
+<?@DD?D
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2026:2222 2:N:0:
+GCCAATA
++
+CCCFFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2184:2225 2:N:0:
+ACAGTGA
++
+@@@FFDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2239:2229 2:N:0:
+ACAGTGA
++
+@@@FFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2076:2229 2:N:0:
+GCCAATA
++
+@@@FB+B
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2214:2229 2:N:0:
+TGACCAA
++
+@@@FFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2053:2235 2:N:0:
+ACAGTGA
++
+@@@D=DE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2112:2236 2:N:0:
+GCCAATA
++
+B@@DDEF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2011:2239 2:N:0:
+GCCAATA
++
+C at CFFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2038:2248 2:N:0:
+CGATGTA
++
+ at B@FDAD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2265:2123 2:N:0:
+ACAGTGA
++
+@@@FFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2303:2133 2:N:0:
+ACAGTGA
++
+?B at DDED
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2468:2138 2:N:0:
+ACAGTGA
++
+<?@FDED
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2326:2139 2:N:0:
+ACAGTGA
++
+BC at FFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2351:2140 2:N:0:
+GCCAATA
++
+@@CFFDE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2386:2142 2:N:0:
+ACAGTGA
++
+=B?DDD;
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2427:2146 2:N:0:
+GCCAATA
++
+BCCFFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2451:2154 2:N:0:
+TGACCAA
++
+@@@BDFA
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2292:2154 2:N:0:
+GCCAATA
++
+@@BFFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2253:2161 2:N:0:
+ACAGTGA
++
+B@@FFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2479:2162 2:N:0:
+CGATGTA
++
+ at B@B?BD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2353:2165 2:N:0:
+CGATGTA
++
+<@@FDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2329:2169 2:N:0:
+GCCAATA
++
+B at CFFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2434:2170 2:N:0:
+GCCAATA
++
+BCCFFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2308:2177 2:N:0:
+GCCAATA
++
+B?@DFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2493:2177 2:N:0:
+GTCAATA
++
+B<BDDEF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2356:2185 2:N:0:
+GCCAATA
++
+ at 1?DD?E
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2404:2187 2:N:0:
+CGATGTA
++
+B@<DFBD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2280:2193 2:N:0:
+TGACCAA
++
+B@@FFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2343:2195 2:N:0:
+CGATGTA
++
+8@=44=B
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2440:2195 2:N:0:
+GCCAATA
++
+B;BDFDE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2377:2200 2:N:0:
+TGACCAA
++
+?@@DFDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2356:2207 2:N:0:
+GCAAATA
++
++11AD##
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2312:2211 2:N:0:
+TGACCAA
++
+ at B@FDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2395:2222 2:N:0:
+ACAGTGA
++
+@?@FFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2460:2222 2:N:0:
+CGATGTA
++
+B@@FFDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2344:2226 2:N:0:
+ACAGTGA
++
+@@@FDFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2432:2228 2:N:0:
+GCCAATA
++
+@;?DFAE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2315:2240 2:N:0:
+CGATGTA
++
+ at B?FFDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2410:2243 2:N:0:
+CGATGTA
++
+B@@FFDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2441:2249 2:N:0:
+GCCAATA
++
+@@@FFDF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2634:2122 2:N:0:
+CGATGTA
++
+8??==DD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2566:2123 2:N:0:
+TGACCAA
++
+BC at FFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2503:2125 2:N:0:
+GCCAATA
++
+BCCFFDF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2525:2134 2:N:0:
+TGACCAA
++
+CC at FFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2683:2140 2:N:0:
+TGACCAA
++
+BC at FFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2708:2142 2:N:0:
+ACAGTGA
++
+@@<DDFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2541:2143 2:N:0:
+TGACCAA
++
+BC at FDFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2728:2143 2:N:0:
+ACAGTGA
++
+BC at FFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2658:2145 2:N:0:
+TGACCAA
++
+@@BFFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2584:2147 2:N:0:
+TGATCAA
++
+@@@FFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2638:2148 2:N:0:
+TGACCAA
++
+@@@FFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2611:2155 2:N:0:
+GCCAATA
++
+B at CFFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2639:2169 2:N:0:
+GCCAATA
++
+@@CFFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2738:2172 2:N:0:
+GCCAATA
++
+ at 7@DDEE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2518:2172 2:N:0:
+ACAGTGA
++
+ at B@FDFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2720:2172 2:N:0:
+CGATGTA
++
+B at B<B;D
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2542:2175 2:N:0:
+GCCAATA
++
+@;:BD>D
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2569:2179 2:N:0:
+TGACCAA
++
+BCCFFDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2591:2180 2:N:0:
+ACAGTGA
++
+<1?BABD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2653:2183 2:N:0:
+CGATGTA
++
+?@@DDDF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2748:2190 2:N:0:
+CGATGTA
++
+@@@DDBD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2670:2192 2:N:0:
+GCCAATA
++
+@?@DFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2551:2197 2:N:0:
+CGATGTA
++
+B@<FFDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2692:2200 2:N:0:
+ACAGTGA
++
+@@@FFBD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2720:2201 2:N:0:
+CGATGTA
++
+B@@FFDE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2616:2203 2:N:0:
+TGACCAA
++
+ at CCFFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2518:2205 2:N:7682:
+CGATGTA
++
+B@<DFAD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2572:2207 2:N:0:
+GCCAATA
++
+@@BFDFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2740:2214 2:N:0:
+GCCAATA
++
+B;=D?DF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2644:2220 2:N:5122:
+CGATGTA
++
+?@<DD3B
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2572:2228 2:N:0:
+GCCAATA
++
+BBCFFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2694:2228 2:N:0:
+TGACCAA
++
+BC at FFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2629:2230 2:N:0:
+TGACCAA
++
+:?@?:+A
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2541:2237 2:N:0:
+TGACCAA
++
+BC at FFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2512:2238 2:N:0:
+ACAGTGA
++
+@@@FDFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2572:2245 2:N:0:
+GCCAATA
++
+B at BFFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2664:2246 2:N:0:
+ACAGTGA
++
+ at C@FFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2598:2246 2:N:0:
+CGATGTA
++
+?B at FD3B
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2751:2116 2:N:0:
+TGACCAA
++
+ at CCFFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2972:2117 2:N:0:
+CGATGTA
++
+BB at DDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2858:2117 2:N:0:
+ACAGTGA
++
+@@<DDFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2819:2125 2:N:0:
+TGACCAA
++
+CC at FFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2877:2125 2:N:0:
+CGATGTA
++
+B@@DA;D
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2783:2126 2:N:0:
+CGATGTA
++
+@@@FFBD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2924:2127 2:N:0:
+ACAGTGA
++
+B@@FFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2833:2134 2:N:0:
+TGACCAA
++
+ at C@FFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2979:2137 2:N:0:
+GCCAATA
++
+@@@FFDF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2847:2145 2:N:0:
+TGACCAA
++
+BC at FFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2811:2145 2:N:0:
+ACAGTGA
++
+=8;BABD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2885:2146 2:N:0:
+TGACCAA
++
+CCCFFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2770:2150 2:N:0:
+CGATGTA
++
+BB at FFBD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2862:2156 2:N:0:
+CCATGTA
++
+?@@FF;D
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2796:2160 2:N:0:
+TGACCAA
++
+BC at FFDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2826:2161 2:N:0:
+ACAGTGA
++
+@@@FFAD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2995:2162 2:N:0:
+CGATGTA
++
+B@@DFDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2943:2165 2:N:0:
+CGATGTA
++
+BB at FFBD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2869:2177 2:N:0:
+GCCAATA
++
+CCCFFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2816:2183 2:N:0:
+TGACCAA
++
+B@@FFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2957:2184 2:N:0:
+CGATGTA
++
+@@@FFAD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2848:2194 2:N:0:
+CGATGTA
++
+B@@DDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2791:2198 2:N:0:
+ACAGTGA
++
+?+;BDBD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2825:2198 2:N:0:
+CGATGTA
++
+=B at DD=D
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2969:2201 2:N:0:
+CGATGTA
++
+ at B@DDAD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2994:2203 2:N:0:
+ACAGTGA
++
+@;?DBDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2812:2220 2:N:0:
+ACAGTGA
++
+B@@FFFE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2962:2221 2:N:0:
+TGACCAA
++
+CC at FFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2786:2222 2:N:0:
+TGACCAA
++
+B@@FFDB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2758:2223 2:N:0:
+CGATGTA
++
+ at B@FF;D
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2870:2228 2:N:0:
+TGACCAA
++
+B@@FFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2989:2233 2:N:5634:
+ACAGTGA
++
+@;?DDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2897:2238 2:N:0:
+GCAAATA
++
+?;=DD4B
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2799:2240 2:N:0:
+ACAGTGA
++
+@@@FFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2765:2245 2:N:0:
+GCCAATA
++
+B at CFFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3034:2128 2:N:0:
+TGACCAA
++
+@@@FFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3140:2129 2:N:0:
+ACAGTGA
++
+@@@FDFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3190:2131 2:N:0:
+ACAGTGA
++
+ at C@FFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3159:2138 2:N:0:
+CGATGTA
++
+BB at DD=B
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3003:2143 2:N:0:
+TGACCAA
++
+@@@DDBD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3023:2146 2:N:0:
+TGACCAA
++
+CCCFFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3234:2154 2:N:0:
+CGATGTA
++
+B@@DFAD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3133:2155 2:N:0:
+ACAGTGA
++
+B@@FFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3044:2155 2:N:0:
+CGATGTA
++
+@@@DDBD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3164:2162 2:N:0:
+CGATGTA
++
+ at B@FFDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3054:2170 2:N:0:
+GGCAATA
++
+8++=A+B
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3111:2178 2:N:0:
+CGATGTA
++
+@@@DD=B
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3228:2178 2:N:0:
+ACAGTGA
++
+B@@FFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3021:2180 2:N:0:
+ACAGTGA
++
+?+===DD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3009:2183 2:N:0:
+CGATGTA
++
+?@@DD+A
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3074:2186 2:N:0:
+ACAGTGA
++
+CC at FFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3179:2188 2:N:0:
+GCCAATA
++
+CCCFFEF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3046:2190 2:N:0:
+CGATGTA
++
+ at B@FD?D
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3244:2190 2:N:0:
+GCCAATA
++
+@@@=DA?
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3219:2193 2:N:0:
+CGATGGA
++
+=?@<;)A
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3197:2198 2:N:0:
+ACAGTGA
++
+;?@=4:D
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3168:2201 2:N:0:
+ACAGTGA
++
+?B at B?DD
diff --git a/clipper/t/in/multx/mxtest_3.fastq b/clipper/t/in/multx/mxtest_3.fastq
new file mode 100644
index 0000000..8ad8910
--- /dev/null
+++ b/clipper/t/in/multx/mxtest_3.fastq
@@ -0,0 +1,1000 @@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1230:2118 3:N:0:
+CTTTNNNNNNNNTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTN
++
+@@@F########22AAFHIIJJJJ'5=@BDDDDB6BDBDDDBDDBD8BB at B@@BDDDBDBDB;BBDDDDBDB###
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1196:2124 3:N:0:
+TTACNNNNNCANNNNNTTTGTTATTAAAANNNNNNNNGTCAGTTAAACAANNNNNNNTTGAACACTTCGTCAAAN
++
+ at BB;#####22#####22ACA;EHHIJIG########008BDDGCGHG at F#######--5;(;>BCFDDEDDBA#
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1211:2126 3:N:0:
+TTCANNNNNTGNTGAGGTCTGAATTACTCTCCCAGTTGAGAGTTGTCTTTGGGTGTAGTTCGGAAGTGCGTCGTN
++
+ at B?A#####22#322<++3<2+ACHH4?<CB31)?DFF4*8?*9*9??FAB########################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1238:2152 3:N:0:
+CAGTNNCTCCTAATTTTCTAATTTAAACCAATTTGGACTTGATAATTTTAATAAAGCCAATCACTTTATTAAACN
++
+ at CCF##2=CFFFHHIJJHIIJJJJIJJIJJJJJJIJIJJJJJJIJJJJJJFHHHIGGGHIIFIGGHJIHIIJJ##
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1224:2185 3:N:0:
+AGAGTCCTTGCTATATTATGCTTGGCTATAATTTTTCATCTTTCCCTTGCGGTACTATATCTATTGCGCCAGGTN
++
+ at BBFDEDEHHHHFIJJJIJJJJJJJIJJIIJJIIIIFGH@GIIHCFIGHIFHEHIIJIHIEIGIJJIJBGIFCE#
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1179:2187 3:N:0:
+TGACCGGTGNNNNNNNNTAAAGCAGNNNNNNNNNNNNNATTACAATTNNNNNNNNNNNNAGAAAAACATTCNNNN
++
+@@@FFFD8C########22?FGGHH##################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1223:2231 3:N:0:
+TGTTGCTGTTACTACTTTGAGCAAACTGTTATCTGATCGATTATGAATAAGTAAAATGAATGAAAGCAGTGTTAN
++
+@@@AFDB;FDBH?GAFFGHHEEICHIJJHBCFEHC>FGHGDHGGHC??BD?0BDF>DHIEGGIHIGDHIGH####
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1356:2120 3:N:0:
+TTGTNNNNNNANGATGAAAAATTATAACCAAGCATAATATAGCAAGGACTAACCCCTATACCTTCTGCATAATGA
++
+BCCD######3#2<CGHJJJJJJIJJJJIJJJGIIJJIIJGIGIIJJHGIFHIJJJGGIIIIIJIIHGHHHHHFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1387:2124 3:N:0:
+TCTTNNNNNTANCCTTTCTATTAGCTCTTAGTAAGATTACACATGCAAGCATCCCCGTTCCAGTGAGTTCACCCT
++
+CCCF#####23#2<CFIFHIJJJJJIIJJJJEIJJJJJJIJJJJJDIJJIFHHHIIIHIGIJJJJJJHIHHEFEE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1323:2146 3:N:0:
+TGTTNNCCGTGTTTCAGGCCAGGAAGAGCAAGGGGAGAAAAATATTTGTCCATGGGAACAAGTAATCATGCTCTN
++
+B@@F##22ADF?FIGEGIIJIIJBEH3CFEGHHIJBHBHGGI at GGIFIJGFHCHIGGIGHFH;CEFEFDEFBCC#
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1422:2148 3:N:0:
+GGACNNCCAGCTATCACCAGGCTCGGTAGGTTTGTCGCCTCTACCTATAAATCTTCCCACTATTTTGCTACATAG
++
+CCCF##2=CFHHHJJJJJ at FGIGIIJ?DFGBFHGHGIHGHIHC8CDGEGECGGGIGIJIBEHGHFFFFFFFDCCC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1344:2152 3:N:0:
+TTACNNGGAAAGAAGATCAAGCTACAGATATGGGATACAGCAGGCCAGGAGCGATTTCACAGAATCACAACATCC
++
+B@<D##222A:C>@@FF?FEE9AB3<C99CGGFF9C99BD<@BG@)B?@B<8;;=2@=D>E3)7;7?;;;;(;@#
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1276:2152 3:N:0:
+TAGANNACGAAAGTGGCTTTAACATATCTGAACACACAATAGCTAAGACCCAAACTGGGATTAGATACCCCACTN
++
+@@BD##2=CFHFAHGBEIHIJIHGGIIGCEGHIIGGHJJJIJ at GIHGEEHGFGEGGIIIIGIGEGIGEHFEEFF#
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1326:2167 3:N:0:
+TAGGNTGATAGATTGGTCCAATTGGGGGTGAGGGGTTCAGTTTTATGTTTGGGATTTTTTAGGTAGTGGGAGTTA
++
+==;B#+22+<A+2CCA+23<?######################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1434:2177 3:N:0:
+GGACCACACATGTATATGTCATGCTTCAGGAATTGCACTTCTGAGCATTTATCCCAGAGAAATGAAAACATGCGT
++
+ at CCFFFFFHHHHHIJIJJIJIGIJJJJJJJHIJJJJJJJJFJJJJJJJIJIHIJJIJIJDHIJJIJJIIIJIIJI
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1250:2180 3:N:0:
+TAATATAGCAAGGACTAACCCCTATACCTTCTGCATAATGAATTAACTAGAAATAACTTTGCAAGGAGAGCCAAN
++
+@@CFDDDDHHBFDDHIIJJJJGHHIEIIJIJJIIGGGHIIHHHII at GHGIEHIIIGGIGIJJJIIJBHCHHAHH#
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1342:2181 3:N:0:
+GTTTGAGTATGGAGACAGATAATAAACAAATGAATCAGATTTTTAACATAGTAATAAGTATGATGTAGAAAAAAA
++
+ at B@DBDD?CFAHDEGHGIHHHIIIHJJCFCFHCGGEGJIIEGHIGGDFGGBGAHHIGGIIIIDHIGGGGEGHGE<
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1326:2195 3:N:0:
+CGGGGAGTTCGGTTATAGGTTTTGGATTTTTTAGGTAGAGGGTGTTGAGCTTGATCGCTTTGTTAATTGGTGGAT
++
+;@7DD<DB?2+ at +)22?+2C?<)::<?**0??###########################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1404:2198 3:N:0:
+TCGGGTTTGTAAAAACATATTTGTGAAGCAAAAGAAATCCCCTATGTCTGAAAGTGAGGGATAAGAGAACCTCCA
++
+CCCFFDDFHHHHHJJJIIIHJJIJJJEGFGIIJJJJJJIIGIIJJIEIIJJJIIHHIGIJHGEII at HGIIHEHGF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1365:2202 3:N:0:
+TTGTAGGCGTAAAAGCTGGACATTGCAAAAGGATTGGTTTAAGAAATACTGTCTAAGGGTTAGCTGTCAATGGTT
++
+ at CCFFFFFFHHHHJJGJCGIIJJIHCIIIJIJGIJGIGIHIGIJHGIIJJFIIHIIIIJCHIJJIJJIJHHGEHH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1497:2206 3:N:3586:
+GTACTGGATGCATCTGCAGGATATCGCGGCCGATCTAAACGTGGTAAATTGTTAATTCCGAGATAGACTTCAGGT
++
+;B@;AB3B+A:DF<+<,:C:C######################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1311:2219 3:N:0:
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAN
++
+?@@A7<DDFA:?FIBAEDCD?@B at -0:BBD at B:3BB at B6B93005&0:&5555:BB<BD;-5&5>BBDDD#####
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1395:2221 3:N:0:
+GTAGTGGGGTATCTAATCCCAGTTTGGGTCTTAGCTATTGTGTGTTCAGATATGTTAAAGCCACTTTCGTAGTCT
++
+?@BD?DDDHCHHDEGGHGIDEGAFDHIJCCFBEH9 at BDFIBFHII;DHABBGGHIIJDFH@=@F at DHIGHHHCHD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1348:2222 3:N:0:
+CCTAGCCCCAAACCCACTCCACCTTACTACCAGACAACCTTAGCCAAACCATTTACCCAAATAAAGTATAGGCGA
++
+@@CFFDDDHDHH?EHGGGHJGEIIJIIIIGG at ADDF>GIGFHJICGGIIIBFHGIHHCGIIJ at HHFEEGHFFFF>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1275:2229 3:N:0:
+CTGATGGGGGTAACGTAGTGAGCAACTCTTCCTCTTGCTTCTCCTTAATGTTTTTCTTGTGCCTCTTTTCCTTGN
++
+@@@FDE>DHF at FHGICF@8CFHCHIGGIIGBG>HHGHGIJFDFGEGBBCH@@FHHGEGHJGA7ACHGFF at DCC##
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1456:2233 3:N:0:
+TTGGCACCCACCGCAACTGTCTGTCTCATATCACGAACAGCAAAGCGACCCAAAGGTGGATAGTCTGAGAAGCTC
++
+CCCFFFFFHGHHHJJJJJJJJJIIJJJJJJJJIJJIGIJJIGGCHJJJJJEHEEFF at BDCEEEEEEDDDDDDDDC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1298:2234 3:N:0:
+ACGTTGAAAAATAACATTAGAGTAATAAAGGGGGATGCCCAGAAGTAAGGGGATAATAATGAAGATGTATAATTN
++
+###########################################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1327:2242 3:N:0:
+AATGTTATATGGATGCTCCTCGACTTACAGTGGGCTATGTTCCAGTAAGCCCATCATAAAGTTGAAGAATCATAA
++
+?@BAFDDFGH<F4CFDHEGIHI1CA at HF>F<ECECGGGIJI9DFBGHAAHDFIFGEHH at GHIBHI@G;@@E>D##
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1426:2246 3:N:0:
+TAGGTAGAGGCGACAAACCTACCGAGCCTGGTGATAGCTGGTTGTCCAAGATAGAATCTTAGTTCAACTTTAAAT
++
+ at BCFDDEFGHHHHJJJJJJIJJIJGIJJIJJBGHIJJFIJIIJJGHIJJHHHGHFFFDFFFCEEEEEEDDDDCDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1287:2250 3:N:0:
+CACAATTTGAAACCAAAAAGCTGTATGCAGGAGCTATTCTTGACGTTTGTGGATGAAAATTGGGAAGGTTCCCTN
++
+:?@D:A?;F?<A+AFBBA at FGHHE<HFE<BFC?@F<*?<FFGA*0?FHI@?F=CG<)))=CHGGG;;AEEE####
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1637:2116 3:N:0:
+AGGTNNNNNNNNNTGTGTTTGAACGCTTTCTTAATTGGTGGCTGCTTTTAGGCCTACTATGGGTGTTAAATTTTT
++
+BBCB#########22AEGHIGIJJIJJJJGIIDICFDHDDAHGIIGGIJEHGDGIGIJJGEHGHHHFFFFFFEEC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1585:2121 3:N:0:
+CCAGNNNNNATNATCAAATCACACCATATTGGAGGGCAGAGAAATGTACAAATTCCTGCAATATCCATGTCTTAA
++
+B@@D#####22#2<<CBEH<FFCH<CCCG??D<D)?DCG at AGEIAE===BB37CGHGHCCCD>C?EEE>=?))7?
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1719:2132 3:N:0:
+CTCTNNNCCCANTTTCCTCTCTTTCCTCTCAAATCCTAGAAAATACATATGGTGGGGAAGCTAAGGAAATTTCTA
++
+BB at F###22AF#2AEEEG at DEHGIFFHAHEGGIIEEDEHGGHGIEHIIIJJDHIIIFEEGHBECEHEECDEFBD>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1530:2132 3:N:0:
+GTAANNNGCGCNCCTGCTGCCTTCCTTGGATGTGGTAGCCGTTTCTCAGGCTCCCTCTCCGGAATCGAACCCTGA
++
+C@@F###22AD#2ACGF<FAGIJJIIJCE:?FGGE@@FHGADFF?FGFHE;F;FFFFGEE;A'9B@>;>>>?AC=
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1501:2136 3:N:0:
+GGTANNNTAAGTTACACATGTTCAAAAGTTAACACAGACCTATCTGAAAAGTAACTAAGTTACAAAACAATGCCC
++
+ at B<D###22ACCBHGEGGIIFGHGGHCH?9ABFFGE at DBDE@GGGIIIIFGGGDHGIIIIJICEEGIEHGIAHDC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1556:2139 3:N:0:
+TGTGNNNGAGGGGTGGGGGATTGCATGGTCAATTAAAATGAAGGAATGCTGAGTTTGTTTCCTTACTGTAGGACT
++
+CCBF###42AFHH<EHIJIHJJIJJJJJGHIJJJJJJIJJHHGIHEHHHFDEDBDFEDCEEDDDDDDDEEDDCDC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1641:2143 3:N:0:
+ATGGNNGACAACACATTTAGTTTTATTTCAATCAAATCACACAACACTTTCTTTTCCAACTGCTGCAAAGTGCAT
++
+ at BCF##2=CFHHGJJJJJFIIJJJIJJJJJJJJIIGIJGIGJJJJJIIJJIHIJJIGIGIHIJIIIIGGHEGEFE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1689:2148 3:N:0:
+GTGTNNGTGATGCATGTTTGATGTTATTTTTTGGTTTTGCTTTCTTGTTTATTACACAGCCCTTATATTTTTGCC
++
+B at CF##2=CFFHGHIIIIIJHJIJJGIJJJJJJEDHIJJIIJIJJJJIJJIGIHIGJJIIIJJJJHFHHHHHB at C
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1668:2150 3:N:0:
+TTGTNNGTGTGTGTGTGTGTGTGTGTGTGTATGTGTATGTGTGTTTGTATATATATAATATTATATATGTTATAT
++
+BBCD##2=CADCFFFDBHG?EGGIGHAHFI9DI??G:DGBDGAHHIHJEHGGDGI>BFGGGIIHHIEH=@EGIIG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1597:2151 3:N:0:
+GAGCNNAGTAAATTTGGAGGTTATAAAGCCTTGGATAACAAAAAGAGTAACGGAAATCCTTGGGTTTGAAGATGT
++
+??8A##+22A+2CGFE at CBG3AFH@FHAFH9EH<GIIJBH?;G)?19/9BFDGD;FH:FG at GG<EHEE?7;;@D#
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1509:2166 3:N:0:
+TTCTNGCTTTCAACCTTGAAACATACTTTGAAACTCTTAATTTCTCCCTTTCACACCAGGAACTTCTGCGCACAG
++
+?<;D#2+=CCCFH<?EH<+?D<BB at EFDHA4FH*?DEHIB at GI@I><DDF<<?FHD(B(7CF6=4=F@=@EBBB;
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1740:2167 3:N:0:
+CTCCTGTTAGCTAAAGATAATGGTAGTGTACATTGACATATCGTGAAATGTTTGTTCCCTGCAAATAGCGCTGTA
++
+CC at FFFFFHHGHGIJIGIHEJIJHFIIGGEHIIJHGGGHHIIJIJHIIIJHHIJIJHHIIIJDHIIIIIJIJJHG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1591:2169 3:N:0:
+TGTGCTCAAAGCTTGTTAAGATAGTTAAGCGTGCATAAGTTAACTTCCAATTTACATACTCTGCTTAGAATTTGG
++
+@@CFFFFDHHHGHIIHII at IFHJIIIIGIIBGHIGIGHIHFIIJGGGHGGHHI>GIIIJJJIJJIJCHHHGGGGI
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1529:2172 3:N:0:
+TATGATCATGTCAATTTTGGCCAGTTCAGTTCCAGGAGTGACTGTAACAGATGCAGAAAAATAGGATTGTCTCCT
++
+B at CFDFFDHGHAFIJJJJHFEHIIGHHIJGIEGIGIDGCDGEHGHIJIJJIHGHIJJIIII>HIJCGHIEGIJIC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1710:2174 3:N:0:
+TGCGGTGTGGGGTTTTTTTTTTTTTTTATTTTTTTTATTTTTCATTAGAATTTTCGAAGGTAGGTTGTGGGGGTT
++
+###########################################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1571:2181 3:N:0:
+TATAGGGTGATAGTTTAGGTAACTTTGTGTTTGAGAGAGTAAAAAATTTAACACCCATAGTGGCCTAAAAGCAGC
++
+@@@@DDD=CFHHFHIIEGEAFEGEIJI4EAEGEGIJJGHDFEHIEIEFHIFGGGIIIIJDFHHGIJGAHHGFFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1520:2197 3:N:0:
+ATAGCCACAGTATAACTTCACATGTTCATTAAAAAGGCAAATTGACCGCTAAAACTTCAAAGAAAAAGTACTCAT
++
+CCCFFFFFHHHHHGIIJJIEIJIJIJIDHIEIEI<FADHGIJJIGDCHIIGIJIGGGIIHIJIJIJJHHHHHHHF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1669:2200 3:N:0:
+TAAGGAGGGGGGGAAACATGAAAGTCAATCTTAACAATTTTTGCAATACCTCTTATTTGCAGACCATTGGATTTA
++
+@@@DFBDAHHDBDBBBD?C>>CDD8 at CDECDC>CACACCCDD8 at DC@CA at ACA>CDCDCADA:A?CCDDCDCCC>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1710:2200 3:N:0:
+AAAAAAGAACCGCCCTTTGTGTTTGAAATGGTTTATTATCTCTACAATATACTTTTAACTTGTTTAGATAATAAA
++
+@@CFDFFFHGGHFIJJJJJIIIHIJIJJIFHDAGHIJJJJJI9BGGGIIJFHIIIIIJJJJHHHHGG at DDFFFEE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1550:2201 3:N:0:
+GGTGGCCAATCATCAGCTAGAAAGAAAGTGCTTAGCAGGGCTTGAAAACACCAAAACTCTGAGACCACTGACCTT
++
+@@@FFDFFHHHHHJJIJJJIJJJJJJJJHIIJIJJJIJGIBHIJHIIIIIIIGIJJIHIJGGHIIIHFHFHFFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1602:2205 3:N:0:
+ATTGATTTCATGTAATCATTGATGACTCGCTCATTGGTGGAAATGCCTCCGCTGAAGGCCCCGAGGGCGAAGGTA
++
+ at CCFDFFFGGHHHIIIGIIJJJJJDIJJJDGI1FGGGEGIHIJJJJJJJJHIJIIJJJJJIJIEEDDDDDDBDC:
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1687:2216 3:N:0:
+TGGGGGGATGGGGTCTTCATCCTCTTCCTCCAGGAAGGATGCCTCTGGGATATGGCTGAAGGCCTCTGGGTGCTG
++
+B at CFFFD?BBDDD at BDD>ACDDCACDDDDDDDDDDDDDDDDBCCCCCD?AACDDDDDD@>@C0<AB>ACD<;7@>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1577:2220 3:N:0:
+AGCTGCTGTTTGTTCAGAAATCTCAGTTTGAGCATTCAATTTTACAGGTGTAGTATTATCAGAAAGACTAATATC
++
+?B at FDFDFFHHHHIGIJJJJIJJIIJIIGIIJIJJEGFEEGHIGHGII?DDGGDGHBIIHJJJJJIHIIJJC at HE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1520:2227 3:N:0:
+ACAAACCTACCGAGCCTGGTGATAGCTGGTTGTCCAAGATAGAATCTTAGTTCAACTTTAAATTTGCCCACAGAA
++
+@@CFFAFFHGHDHIJJJGJBHHJFEHGHI:CFDEHBHIJJFII at BBDGAHGFDFHIHGIIJIIGIIEAHEHFFFD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1738:2228 3:N:0:
+ATTGGGTCATCATTCATCCTGATGCAGCCTGAGAGATTCGTTCCTGGGCTGGGGCCACTTGTGGGGCCTGGGCAC
++
+??BDAFFEDH>FHIGEF at AAHIIJ<HGEHIFEEHIIJIIIGH<DGGDGHGEHCIEFGIJJGDDEHF><ACD<BC@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1558:2230 3:N:0:
+GACCCCCCCATGCTCAGAAATATAAGTCTGAGCACTAAATTCAAAAGCTGTAGTATTATAAGAAAGATTAATATC
++
+=<@BDDDDF)+)*11??3CC#######################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1616:2235 3:N:0:
+CAGTCCCAAATGATGCAAAAGAAGCTTCCACATGAGCGAATAATGGATTCTTATTTACATAAGAACAGAAACAAG
++
+@@@DDDFFHHHHGGIJIIJGGGGIIJIIJGGIGIIEE<AEHIIIGAFGAGGBFGHJJCHGGEGIIIIHGEFFHFA
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1718:2237 3:N:0:
+TCTTTACGTTTGGTTCTTGAGCTTGAACATCTGAATAATCTTGATAAAGCTGTTTTAAATTAGATAAGAAATATG
++
+@@CFF>DDHFBDDHGGGII<EGGGIJF<EEHIIJHFC@?@DHCGE>F9GFEH at CFIEHCF<8<CGICCAAHGGGD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1598:2243 3:N:0:
+TCACACCCAATTGGACCAATCTATCACCCTATAGAAGAACTAATGTTAGTATAAGTAACATGAAAACATTCTCCT
++
+B at CDDFDDHGHDFGAGGGGGI@HGIGGIIIGI>CDCHIHJHIIIIHIGHGDDGHHFFHGG>FAHIGIG>EHECCH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1503:2246 3:N:0:
+GTAGAGCCGACAAACCTACCGAGCCTGGTGATAGCTGGTTGTCCAAGATAGAATCTTAGTTCAACTTTAGCCAAA
++
+B?@BD;B;FH<AFHABEFGIGHGHEIJE9?F at FDD4??0=FB8))8 at FGECDA)=CCHE?EEDEC>DDBEC at CEC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1648:2247 3:N:0:
+CAACTGGACAGGTCTTTGCTACTGTGCTAATTAGATCATACAGGCTGAAGACAATGATAGAGGAATGTGGCAATA
++
+@<@?DBD?D?F?+2AGB@:C@?EH<CEE>HHIGD9BE>B4DABD?BA?????DEGCEG:CGGEE27=).=6@==@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1765:2117 3:N:0:
+AACANNNNNNNNTAGAGGGTTCTGTGGGCAAATTTAAAGTTGAACTAAGATTCTATCTTGGACAACCAGCTATCA
++
+?B?D########22<+A>@<F3ACFGCB?:C??*0?BBD?B9?FFGGFCEBB)BFHFHIBCFHECB=;=AEC3?@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1983:2124 3:N:0:
+AATANNNNNTTNTAGCTAACTGCCTAATGTACCAAAAAAAAATTAGCAATGTCTTATGTGGGATGAGGGGTTAAG
++
+@@7D#####22#2<CEE?FBBBDFIJJI>?CBF at CACFHEIGHEG@GE@?AACEHFDD;;@>CCBCC>7?B=ACC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1851:2128 3:N:0:
+CAAGNNNNCAGNAAGAACAGGACTCCAGAGCGATAAACACTCGCTGGAGAGGGAGACGCAGGAAGCGATGAAAGA
++
+CCCF####3>C#3AGHIJIJJFJJJJIJIJIJIJIJJIJIJJIIJJJGHFCHIFHFFFDCCDBDDDD at BDCDDDC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1954:2130 3:N:0:
+CAGGNNNNGAGNAAGCAAAAAAACAAATCAAATCTGAATTAGATTCAGATTTTGTATTTGATTTATTTTTTGGTT
++
+ at B@F####222#+2+++2CFHI:):D)*00?9?##########################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1777:2133 3:N:0:
+AAATNNNCAAANTTAGAAGAAAATTGGAAGATAGAAACAAGATAGAAAATGAAAATATTGTCAAGAGTTTCAGAT
++
+B@@F###23CF#2AEFBBHGGIDEIGIEGHG>AGEHJD at EGHIGIHIIFIHGEGIJJJJJGIJIJIICGHGECEH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1933:2134 3:N:0:
+GATTNNNTAGGNAACTTGTGTTTGAGCTTGAACGCTTTCTTAATTGGTGGCTGCTTTTAGGCCTACTATGGGTGT
++
+ at CC<###22AC#2<CFGE4C+<FEGHGIJJGJBCEHIEGIJGEIJ at HBHBBF=FHCHID9 at CHHEFHE@?@<7=A
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1908:2135 3:N:0:
+GATGNNNGTGANTGATGTTGGAGAAGTCTTTGTTCCTTTGTTGGATGGTTTCCTTGTCAACTATCAAGAATCCCA
++
+@?@F###22AB#2<BEDDHDGGE?FG<CDHGHJJCHHJGHGHH?FHHC*?BG/=F=E=BB at GFFGI>CHHHE377
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1992:2141 3:N:0:
+CCAGNNGAGCTACCTAAGAACAGCTAAAAGAGCACACCCGTCTATGTAGCAAAATAGTGGGAAGATTTATAGGTA
++
+CC at F##22AFHFHJJJIGGIGHHJGIJJJJIGIJJJJGJJEHIGIHFIGGGECHFECFGIJBGGEEGD;AEBE@?
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1807:2144 3:N:0:
+TAGANNGGCTAAGAAACTGAGGTACTAAGGGGTGAGGCTGAAAATGAGAAGAACTAGATCAATAAGGGGACTACC
++
+<BBB##2=ADDFHIJIJJJGIJFGFHIEGDHG0:DHGCCGHGGCG at FDCFBDCCFGHIBGHGIEHHHDBDCACAA
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1939:2156 3:N:0:
+GGGGNNGAGAAAGGGGCAATAGGTGAAAGCCTTTTACATTCTGAGTTATAAAAATTTTTAAAAAGACCAGACGAA
++
+=B at F##22<+AB+AC>@E;BACH9*:*C?*)*1?>4?F>GEHDFHIJ<*BEAFGEFHGADGFIIEIICEA#####
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1952:2158 3:N:0:
+ACGCNNGGTGATAGCTGGTTGTCCAAGATAGAATCTTAGTTCAACTTTAAATTTGCCCACAGAACCCTCTAAATC
++
+;?@D##22<DFBDGG at EGHHHFFFFFEHGHFGCHBH>GBGD4?G4BGG<GHEABCDD<<BFCGG;6 at DEGE@=>E
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1788:2159 3:N:0:
+TATCNNCTCAACTTAGTATTATACCCACAAGATCGGAAGAGCGTCGTGAGGGGGAAGAGTGTAGATCTCGGTGGT
++
+8B?D##22<DBCFGIIA2A,AHABBCH=F9?)?*:?G=A8?>:7?##############################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1861:2165 3:N:0:
+GAGGNGAGACTCGGGTGATAGCGTGCGATGGCGGCGGGGGAGCTCTTGGCCACCCAAAAGTGTATATAAACTTGG
++
+C at CF#2ADHHHHHJIAFHIJJJJIJIIHIJJIJJIHDDDD-708CAC3@>>3(<B7AABC+:3:3::@CC>@C:A
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1988:2168 3:N:0:
+GAATTGTGTTAATAACTGTTTGGCAGTGTGTACTTTGTTTTTGTGAGTCATGTCTCATGAAATTTATTGGAATGT
++
+BB at FFFADFHHGDGIJJJIJIIIJIJIHEHBHGHIIIGIIJJBHJIGFHFEGIGEIJIJGHJJIEGHIIIJIHII
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1803:2170 3:N:0:
+AACGTGGGTACTTGCGCTTACTTTGTAGCCTTCATCAGGGTTTGCTGAAGATGGCGGTATATAGGCTGAGCAAGA
++
+BCCFDFFFFHHHHJIIIIJJJJJJIHIJJJJJJIJJJJJIHIIJJJJJIJFGHIJJHEDFEFFEEEEEBDD@?C9
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1962:2173 3:N:0:
+CTTTGTGGTTGATTTGTTTCTCAATAATTCTCATTCTCTCTTTAAAAACAAACAACGAAGACAAAAATCTTTCTG
++
+8=;44AD1DB+2A9C?C:F,<ABH4C<CA?A?CF?*?CB<FCDCCB9*?GD>?;BG at 1BBA8@F at A#########
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1935:2181 3:N:0:
+GTTTTTAGTGTTTTTCATTTTCAGATGGTCAAACATGGAAGTCTATATTGAAAACACTGGCTGGCTTTTACAACT
++
+BBBFFFFFFHHHHJJJJIJJJJJJJJJJIJIJJJIJJIJGHHIJJIJJJJHHGIJJJJIIGIIFGGIIJ:)@EGE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1885:2183 3:N:0:
+GTGTTATGAGTATGTACAAATGTTATTTCCTGTAAAATATTTTCATTTTTTAAAATGTTACTTTCTAGATAGAAA
++
+@@@FFDFFDHHDHIGHIGHGHI at DJHJIHIHGEBEHHGDIGIJEIIHGIIBDFDGHGHCF<?GIJIIIIIJCHEH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1905:2186 3:N:0:
+TGTTTGTGGTTGGGTTGGCCTTATATTTCTGGAGTATGGTGATGCTGCTCTTGATGATACCATTCCTGGCAGACC
++
+1114+2AA###################################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1989:2202 3:N:0:
+GGAGGGGATTTAATTTTAATTTTAAAATGTTTAGGAAATTTATACAAAGAAACTTTTTAATAAAGTATATTGAAA
++
+B@@DFFFFHHHHGJJIJJIJJJJJJJIJIHGIBHIIJGIJJEGIIJEGIIGHGHIIJIJIEHHGIIJGCHJJGIH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1757:2203 3:N:0:
+GGTCACTAAATATTCTATGATAAGATGATTTAAAGCTAGAACAATTACTTCATATGTCTACAGCATAACTCACAA
++
+B@?DDDDDFDHA?FBCEFJHGJJEDHDHHGCHIGEEHHIHIIIJEDCEHHFHIEG>GDABBGIGIJEIJEICDG:
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1896:2204 3:N:0:
+ACTTTGTGTTTGAGATGGCCCTAAATTCTTGAAGTCTGGTGATGCTGCCATTGTTGATATGGTTCCTGGCAAGCC
++
+?@@FFFDDFFHHDIGGHHIIGJJJGIIIIIHIGG>GIIIHGEHGIDFGGIFGHIIJIJCEGIGGIJEEHGIEIJH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1965:2207 3:N:0:
+GTCCAAGATAGAATCTTAGTTCAACTTTAAATTTGCCCACAGAACCCTCTAAATCCCCTTGTAAATTTAACTGTT
++
+B@@FFFFFHHGGHJGIJI>FIBJI at HHJIGHIGGIDHGEFEHGHG@DHGIHHIJJ at HGIICGIIGIGIJDGGE=;
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1785:2217 3:N:0:
+TCCCTTGTGTTTGAGTGGTGTGTTATTGTGTGTATAGCAAGTAGACATGGTTTACTCATTAACTATCTGAAATTT
++
+CCCFFFFDHHHHGHIGHI?GGHHGHIGIIIIIHIIIIFEHIGHIJJJJIIGFHIHJGJJJIJIJJJGGGGGIJIH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1880:2219 3:N:0:
+GGTGGGAGGCAGGAGCTAAAGTTAGAGAAAAAACGGAGAGCTCCGGAAGAATGTAGGATGGGGCTCCTAGGAGTT
++
+@<BDDA+A)2ADA=B8A9C2?EF<BHH<FGIBG?6?FA6(...=/544:2;?CDDDECCC at B@6;<?########
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1872:2229 3:N:0:
+CTTTGTGTTTGATCTTGGTGGTAGTAGCAAATATTCAAACGAGAACTTTGAAGTCCGAAGTGGAGAAGGGTTCCA
++
+@@BDFDB:CF?C<GGG at 33AFEBH2CH@HGGFHGDDHGIGH>GAFDDAAFD9BGGDHH7B5 at E=CD?C2A#####
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1977:2232 3:N:0:
+TGTAAAATATTTGTTGATTAAATATCTGGGGGAAGAGCTCAGTAAATAAATAAAGGTGTGAGTGATGGTCCTCAG
++
+CC at FFFFFGHHHHHBHDIGIJJJIJIIJIIJJIJHHIIHHIJ?GHHIIGJDHIIJJEFFGEH;CEHIIHECEFFC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1911:2235 3:N:0:
+AAATTTGTGTTTGACAGGGGATGAAATACATGAATAAAGAGAGGCATCAGCTCCAAAAAAAAAAAAAAAAAAAAA
++
+ at B@FFFBADFFHHEHJJJIJEHH at BHGHEGH@DGD>HIIIJIIIIIGGIHEHIIIBF=FGADBDDDDBDBDD at BB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1814:2236 3:N:0:
+TTCAGTGTTTCGAATAGATATAGGCCTCTTCATTTTGTCTATTTTTGTGTCAGATTTGACAGATTATCTTTTTTA
++
+BCCFFDDDHHHHHIJJJHHJHIJJIJJJJJJJJJJJIHJJJJJJJJJJJIIIBGIJIJIJJJIIIJJHHJJIJJE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1785:2245 3:N:0:
+TGCAAGGAGAGCCAAAGCTAAGACCCCCGAAACCAGACGAGCTACCTAAGAACAGCTAAAAGAGCACACACGTCT
++
+B;+=:ADD++1+2<CF?AHG9F>?FE@@?0?@?)089/<AGHG;)7@@A?=?A)7;3;@A>A?=;5;5=??@BBA
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1754:2247 3:N:0:
+TGAATGATTGAAGATAGTGGGAAAAGAAGGAAAAACAAAGCGAGAAAAAAAAAAGAAAGTTTCAGAATTTTGAAC
++
+B@@DDADBHHBF?C9E4,AGH=FGG##################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:1939:2247 3:N:0:
+CAGGTGATTGATACTCCTGATGCGAGTAATACGGATGTGTTTAGGAGTGGGACTTCTAGGGGATTTAGCGGGGTG
++
+@@CFDDFFHHHHHJJGIJJGIJJJFGFHIIGHJI;FGHHHHIIIFFHDFGFHIJJJJIBHGIAEEFHHFFDCD09
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2216:2123 3:N:0:
+CTTTNNNNNTGNTTTTTTTTTTTTTAGAGACAGAGTCTCGCTCTGTCACCCAAGCTGGGGTGCAATGGTACCATC
++
+CCCF#####23#2AEHIIJJJJJG6@).7)=BDB;;6>>31,5=(5>95><8A28>AC(&&)2@@:>C#######
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2139:2128 3:N:0:
+CGCANNNNCAANCAATGTTCAACCAGTAACTACTACTAATCAACGCCCATAATCATACAAAGCCCCCGCACCAAT
++
+@<BF####23A#2<CEHHIHIIGAGCBGIJIJEHJJIGIJGGGHJGIIEIHGIGIIIEGGGIEEHHFDDBDBD?C
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2086:2130 3:N:0:
+ATGCNNNNTGCNTGAATTGGAGAAATCAACTGGTATTTAAAAGGATGTAAATTCAATGTTAAGTGTGGGCTAATG
++
+CCCF####22<#2AAEHGIIEIJJJJIJJFIIJGIIIJIIJIJIGIHFGIGIIIJIJJJJJGIGHHGIIIIEEHH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2222:2148 3:N:0:
+TTGTNNTTGAGGGAGTTATCCTGAAAATTTTAGATTCTGTTCTCAAGTAGAATATTAGTTAAGAGAAGAGGGCAG
++
+BCCB##2=CDHHGEGFHIIJGIJEGIIJGJJIGECIIIJJIIIGD*?D at FH9DGIIHIFHHFECGG@GGIJJJGH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2154:2148 3:N:0:
+TAACNNTTGACTGGTACTTTATAGTAAACCAAGCACTCCCATCTGAATGATCTCACTTAATCCTGGCAGCAGCCC
++
+C at CF##2=DFHHHJHGIJJJJJJJHGJJJIGIJGHIJJJIJJJJJJJJJIGHJJJJJJJGIJGIJJJIJIIJHHF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2185:2150 3:N:0:
+CGAGNNTTCAGTTATATGTTTGGGATTTTTTAGGTAGTGGGTGTTGAGCTTGAACGCTTTCTTAATTGGTGGCTG
++
+@@@F##22AFHHHCHHIIHHIIJJCFGIJJJHII?DGFHIJ at GFHIBGFCCHEHIIHIHHHHHHFFFFED?BEC@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2024:2150 3:N:0:
+GAGANNTTCTGGACCAGCTCAAAAAGCATTCCCATCACTCGTTATTGCCTTCCATGTATCATTTGTTTTCATAAC
++
+B@@B##22:CFFHGE?HGGAGHCHCH9EG?EFHGGHJJIJF?DFHGCEHIECEDGEHHGII at GE@DHG>CEEE3;
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2064:2154 3:N:0:
+TGGCNNGCTAGGCGGGGGTCCCCCTCCTCCCTCACCGCTCCATGTGCGGTCCTCCCCGAGCTGCGCGCGCGGTCG
++
+@@@D##22CDBHDIJE###########################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2103:2159 3:N:0:
+AGGGNNGGAAAGTCACCCGTAAGGATGGCAATGCCAGTGGAACCACGCTGCTTGAGGCTCTGGACTGCATCCTAC
++
+CCCF##2=CFFGHGGGIGIHHIJJFGGEGIIJIEGGGFGHIIJJIJIGIIGGGJGGIFFHH>EDDFFEDEE at CCC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2081:2166 3:N:0:
+GGTCNTTGCATCTGTCGCGGTGTGTATCTTTTGGGGGTTCAGCGCCACCAGCGACTTGGGCCTCATTCATCGCGC
++
+ at CBF#2=BFDBHHJBDHDFG8E:CFDIIJJJIEIJJI;;@CGGHHBDDEDDDDB at BBDCDDDDD<CCCDEEDBDB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2046:2171 3:N:0:
+CTTTGTGTTTGAGGATGGGTTGAGATCGTTTCGGCCACAAGACCTCTAATCATTCGCTTTACCGGATAAAACTGC
++
+<B at DDFDBFHH8CEBGIICHDE;F3<??F8DE8:):?DHBEED8BFHGIA=CCGG>B at AEEH=@B8A/>A>A:@A
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2174:2171 3:N:0:
+GGGGGACATAGAAGGGAAAAAATATTGGCAGTGCGGACTGTGAATTTCAGTTTTCTAAGTGCTACATCTAATCAG
++
+BCCFFFFFHHGHHJJIFEGGGHGHIJJIIJJGHGIIGHIJIIIIJIIJJJIGGEHHHFHEFFFFFEEEEECEECD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2024:2176 3:N:0:
+GTGGTACAGTAAAATTAGTTAAGATATATGAACCAGAAAACAAGAATAAAAGAAAAAGAATATAGAAGAGATATT
++
+BB at FDFFFGHGGHJIIIJHIGJIJCHIIJJIIJJJJIJJJIJJJJJIJJJHGIJJJJJJJJJJIJJIJJJFIJII
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2242:2179 3:N:0:
+TTGAGGGGGATGTTTTCATGTTACTTATACTAACATTAGTTCTTCTATAGGGTGATAGATTGGTCCAATTGGGTG
++
+ at CCDFFFFHHFHHHIJIJJJJJIJJJJGJJJGJJJJJJIIJJIIIGIJJJIIFFHHIJHBHIDIIGHGEEHFFDC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2143:2180 3:N:0:
+GGCATCCACTTAGCTAACTATTGGACTTGGACTGATTATATTCTGGGCGGTAAAATCAGGATAAGCAGCAGATTA
++
+@@BFFFFFHHHHHJJJJJJJJIJJJIGIIJIJFIIIJJJIJGIJJIJIJJIHIJJJJJHHHHHFFFCEEEEEEEC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2210:2187 3:N:0:
+TATTGCGCCAGGTTTCAATTTCTATCGCCTATACTTTATTTGGGTAAATGGTTTGGCTAAGGTTGTCTGGTAGTA
++
+CCCFFFFFHGGHFHGJJJJJJIIGJIJJJJJJIJJIIJJJJJJJHIIIJJHHIJJJJJIHIJGIJGFHHHDEEFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2117:2202 3:N:0:
+TTTAGGCTAGATGTTAACAGAGACCCCCTTCTCCTCAAACACAAATGCTCAGGGTCACTGAACCACTGCTTCTCT
++
+BCCFFFFFHGFDHGJJJIJGIIJICHIIIJJJIJJJJJIIIIJGIIJJHIDFHGCFHIIJJJGHIGHHGGHHFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2097:2206 3:N:0:
+TGTGTTTGATTGTAGATATTGGGCTGTTCATTGTCAGTTCAGTGTTTTAATCTGACGCAGGCTTATGCGGAGGAG
++
+B8=A42AAFH<:A,A,,<:I?B3CG at 2<+<+<AE9EBECFGF*:?F)?*??B4B940??A6-==>F)7B######
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2196:2206 3:N:0:
+TGATTCCTTGCCTGGCTGGCTCCTTTATTAGTGCCCATCTGCAGACTAATTGTGGTCTGGTCAAAAGGTTTGTCA
++
+??<DDD?DFFDHF33AAE>=CFAEHIFCHF4?41??D;>FF<BGAG<FGDBFDFIDHH=FEG at C@@HG77CA=AC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2154:2207 3:N:0:
+GCTCCTCCTGTTTCATCACAGCCAAAGGTTAGTACTCCAGTAGTTAAGCAAGGACCAGTGTCACAGTGAGCCACA
++
+B==;1AAACAFDD at DF,<+A3<<<E?;9E>@3E?111:?GD<BB>9*90?F@@E?DF;BC###############
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2138:2213 3:N:0:
+GTCAGTAATTCCTTATTGTTTATTCTCCTCTTACAAAAAGACACTTGGGACAAATAAATACAAAATGGCATATAT
++
+@@@FFDADHH>ADHAGGEHIJBHIDFBBDAHI9DB<BEE@;?FDHII<FFB?FEECHID>CBF at GG@HIGGGHGI
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2089:2219 3:N:0:
+TTGGGGGAAAATTTAGAAATATAATTGACAGGATTATTGGAAATTTGTTATAATGAATGAAACATTTTGTCATAT
++
+??BDD1)<??:A?GBGEHBHGE at E>BF9CF9C)0*?@GEDGG<@DHGIHIB<4<84=C;=7C;CEEEGG;CEEHA
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2026:2222 3:N:0:
+GAGGGAAGTTACGCTTATTTTTTTTTTGTCTTTTGTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTGGGAGGG
++
+@@BFFFFFHHFHHJJJJJJJJJJJJJ@'()8CH9.BDHIJHFDDDDDDDDBDDDDDB at 7;757 at BB#########
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2184:2225 3:N:0:
+GAGGTTGGGAAACTTGCCATATTATTAAAACATATAAAAGTATAAAGTCTTCTGTAGTGGCATACATGGTAAATA
++
+CCCFFFFDHHHHGIIIFHIICHIGIIIGEIJJJJJJJEIG at FHIGHIIIDFHIJJGGIIIIIJGIIJJIGGA;DG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2239:2229 3:N:0:
+GGGGCTATGTAATCAACACTGTCCTTTTACTAATGGTTGCCCATCATTCTAGGCTTTATCAACTCCTTTATCACC
++
+CCCFFFFFHHHHHIIJGEGHHHIJJHJIIIJJJJIIGIIJJJJJIJIJJJIHIIJJJJJJJHGHJJJJJJJEIJJ
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2076:2229 3:N:0:
+GCAAAATAGTGGGAAGATTTATAGGTAGAGGCGACAAACCTACCGAGCCTGGTGATAGCTGGTTGTCCAAGATAG
++
+?<?=BDDDB:A>3:EGI9+AEHG><F<C99C;C at BDD######################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2214:2229 3:N:0:
+AGTTTCCTCCCTGTAAGGGTATAACTGAGGAAACCCAAAAGGCTCTGGACCGCTCTCTTCTTGATTGCACTTTCC
++
+ at CBFFFFFHHHHHJIJJIJFHIJJJJJJIJIHIIJJJIEDHIIJIJJIJJHHIJJJJJJJJHHGGHHFFFFFFEE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2053:2235 3:N:0:
+GTTAGTCGGGTCTGCGAGAGCGCCAGCTATCCTGAGGGAAACTTCGGAGGGAACCAGCTACTAGATGGTTCGATT
++
+@@@F?BDFHH:C;GGHGBAEEGHEGIGEHIGIGGDHJIIIGHIJJFBEHD>AB;?ADDDDDCCCCCDC5@:><@@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2112:2236 3:N:0:
+TCTCTGTCTTTTAATTAGAACATTTAGTCCATTTTCATTAATAGCACCACTGATGTATTTTTGTTTAGGTCTGCC
++
+@@@DDDE>F<FHHEDEHBHGIBEHIGH:AFEHGHCIIJJJIJHHDII;FFFF at DAIHIEDIGHEEHH@FBFHFHE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2011:2239 3:N:0:
+CGGGAAACCTCACCCGGCCCGGACACGGACAGGATTGACAGATTGATAGCTCTTTCTCGATTCCGTGGGTGGTGG
++
+@?<DDDD?:DBFBDHEBGEGHEGGB?@G at F8CC@;CC>GGF9EH@>C at CD;?@CC at CA1-;>;;>C at BD3;35?<
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2038:2248 3:N:0:
+GCTTTGGCTGGTGAAGTCTTAGCATGTACTGCTCGGAGGTTGGGTTCTGCTCCGAGGTCGCCCCAACCGAAATTT
++
+CCCFFFFDHHF?CBHICBHGHHGC>BAEE at C9EBGGFGB8BGB@BBCGCGDGEBGHH'==BCDB?@B?B######
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2265:2123 3:N:0:
+TTTGNNNNNGANGTGGCAAGAAATGGGCTACATTTTCTACCCCAGAAAACTACGATAGCCCTTATGAAACTTAAG
++
+?@BF#####22#22AFHIJJJJJIIIIJJJJJIJJJIJIJIJJIIJIJJJGGHIJJIJGGIHHGGFH at DFFFFEC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2303:2133 3:N:0:
+CTGGNNNAGTANAGTATTTTACCTCTTTAATATATCAGCATGCCATATTACACATACTACTTACTTGTACTCATC
++
+@@<D###22><#2<ACF9FHHE?HBBE>DDEECIGG<CEGAH<DGGICGGCDGHIIHIC at BBGGIIIIHIICGHG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2468:2138 3:N:0:
+GCCTNNNCTGAAAAGCTCTTGCTCAGTCTCAAAATGCTCAGCATGGTTTTGAGAAGAAGACTTGGTTGAGCATTA
++
+C<@F###22CFFHGGIHIIIIJJIIHHHIJIIJGHEGHHIIIGGIIDGHJHGGHGGEGHDHIIJJGIJEHEEEEB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2326:2139 3:N:0:
+TTAANNNTTTTCTTGAAACTCTACAGTATACTACAATAGTGAAGGAAACTATTATCATGAGAGATCCTTCTGAAT
++
+CCCF###23CFFHJJJJJJJJJJJJJIIJJJJJJJJJIIHIJJJIDIGJJGHIIJJJJIJJIIIJIIJGJJJJEH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2351:2140 3:N:0:
+AGGANNAGGAGTAGAAATGGAAAGCTGGAAGGGAAAAGAAGAGCATTGGGGCTTCTTTCACCAGAAATGCCCGAA
++
+ at C@F##2=CFBCFHGIJGIICHGIIIIJFIFHI9CFGGGIJIGGIJJJJJAEHGIHIIGIGIIH<EADCFFFCD@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2386:2142 3:N:0:
+AGATNNGCGGGCGTGAGCGTGTGTGCGGGTCTGGGTGCGTGTGAGTGTGAGCGTGTGTGTGTCTGAGTGCGCGCG
++
+1+1A#######################################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2427:2146 3:N:0:
+TGACNNTACATTGTATATTTCCATTGTAACCCTGACATTTCTCAAAGATAAAGCACTTTTTGATCATGAAATACA
++
+CCCF##2=DFHHHJJJJJJJIJJJJJJJJJIC at E3C3HH@?C9DGBF;BFF>?BBBFHIJCA7BA=4=FHCACE4
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2451:2154 3:N:0:
+GTTTNNGACCCCCGAAACCAGACGAGCTACCTAAGAACAGCTAAAAGAGCACACCCGTCTATGTAGCAAAATAGA
++
+B:+A##222ACF at 18@?CFGGGIHI?@?BD;?D>F=FHG@=CF9===@)7=A=D?53',5=;;ADD@(5>?(>A#
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2292:2154 3:N:0:
+CTTTNNATAATTCATGAGGTGAGTAGCTAGAGCATATCATAGAAAGCTCATCACAGCATTGGACAGGGCCTTGTC
++
+CCCF##2=CFHHHJJJIJIHGIJGHIJIIIJIJJIJIJIJJJIJJJGIJJGIJJIIIIIJIJJJJJJJJIJHHHH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2253:2161 3:N:0:
+GAGGNNCAGTAACTTTTAATGGAAACAAACAACACAATACATTTTTATGTATGGCATAAAAATTGGCATGTTAAA
++
+8+14##222<?AAEHGBFAECCAFC;FEGHCHBCHEE at FHA?HHDHIIC*9BGGFHGIGC>C;CAGEHII=?AA?
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2479:2162 3:N:0:
+TTCANGGCTGTCCTGTGCAGTGTAGGATGTTTAGCAGCATCTCTGGACTCTGCCTGTCAGATGTCAGTGGCACCT
++
+@@CF#2ADHFBHHJIDHHIJAGBHHIEGGDDHHIHI at DGGADHGGGIJJJCIIIIJGHGIIIGGIIGCHGBDG;C
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2353:2165 3:N:0:
+ACTTNCAGAAACAGGAGAAAGGGATCCAACACTGTATTTTTTTCTTTTCTTTTTAGGTGTGTCCTTTTCATATTC
++
+<?BD#2ABBFHDHGEHHI<GFCGIEGH<GHCC*::DHIJI*.<FEH at CAG)8=DG;C@=A=?;?;?BDFC3>B>;
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2329:2169 3:N:0:
+CTGCAATAATGAAGGGCAAGATGAAGTGAAAGGTAAAGAATCGTGTGAGGGTGGGACTGTCTACTGAGTAGCCTC
++
+@@<DFF;B?F>FFEG at FHEGGBGA@HA@<AG at GF<EDDGGHIJHEFHCAG?B708FEHGEGGGHEA?>)=;BB at B
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2434:2170 3:N:0:
+CAGTGGATTTGGTTCATCAGGAGGACTGACAAATGGTAGTGGTCGATATATCTCTGCAGCACCTGGAGCAGAAGC
++
+ at CCFFFFDHHHHFHIIJJIJIGIJJIJJJJJJJJJJCHHHHJFFHIIJJJGIJJJJJJIIJJIIIGCHFHFFFE@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2308:2177 3:N:0:
+GACAAACCTACCGAGCCTGGTGATAGCTGGTTGTCCAAGATAGAATCTTAGTTCAACTTTAAATTTGCCCACAGA
++
+CCCFFFFFHHHFHJJJJJJIDGGIIIHGIIDGHIIIIJJEHIJIIJEIJIHHIGIIIJJIJJJIJJJGHHEHFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2493:2177 3:N:0:
+GACCCACGAAACCAGACGAGCTACCTAAGAACAGCTAAAAGAGCACACCCGTCTATGTAGCAAAATAGTGGGAAG
++
+CCCFFFDFGHHHHJIJIGDIJIJJJJJJIJJGGHEIBHJIIJIEHGHIJBBECEEFFCEEFFDCEEACDCBDDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2356:2185 3:N:0:
+CCTAGCCCCAAACCCACTCCACCTTACTACCAGACAACCTTAGCCAAACCATTTACCCAAATAAAGTATAGGCGA
++
+;@@DDF??FFHD:;+<1CCDGCABDGDEGCEE>CGHDGCHFHEG at FHGJIIF;CHIGGHG9D at EAHEHGEB3?BC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2404:2187 3:N:0:
+GCCTGGGATACATTTCAAGACCCGGAGTGGATGCCTAAAACCGCAGATAGTACAGAACCCTACACACTATGCTTT
++
+CCCFFFFFHHHHHJJJJJIJJJJJJGIDFGGGIIJIJJGIJGHGJJIJJJIHIGHIHHHGFFFFECDDEDDADED
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2280:2193 3:N:0:
+GTTTCATGTATGTATAGAACATATCTTGTGTTTGAGTGGCTGAGAGAATTTTTGCATTTCCACCCAAAAGCCCTC
++
+BBBFFFFFFHHGHJGGGGICHGHGAIJ>FF?FH><??@C??F>DE<?D0BBFH0*09D*BC)=;A5 at FE7(6A;=
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2343:2195 3:N:0:
+AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGGAGATCTCGGGGGGCGCCGTATAATTAAATAAAATATGGCAGA
++
+??;:DD at DH)CAA@)<EFGCCFA73CF)?3091B;D*9B####################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2440:2195 3:N:0:
+TTTTTGTACATTGATTTTTGTATCCTTAAACTACTGAAGTCATTCATTGGGTCTAGGAGGCTTTTGGTGGCAACT
++
+?@<DDF+ADA<<D4?EHGD at 3:CAEE at HHH>E911:EDF*:?G@<DCF at C?FFG:DF8B(7=BGIG@=D=(?>CC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2377:2200 3:N:0:
+ATATATGGGACTATGTGAAAAGACCAAATCTACGTCTGATTGGTGTACCTGAAAGTGATGGGGAGAATGGAACCA
++
+;@@FFFFFGHHHHJIHGIIJIJGGHIIHICHIFA8C>FGEGCFDA?FHHGFHHHI?FF>G>DC7A<GHHHGEEBD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2356:2207 3:N:0:
+ACTCTTAAAAATAAGCACTTATACCTAACATGCAATACTGCAGATGCAAGTTAAACTTATCTGTTAACAGCTGCC
++
+1:=;?BB:CA<DHGIG:A3AF<,3C?ECBBH9CFCF99C?BCDC?<FFAD*9BFCF at A?BFFFGEGIEC:8=@A2
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2312:2211 3:N:0:
+ACTCAACCCAAAAAGGCATAATTAAACTTTACTTCCTCTCTTTCTTCTTCCCACTCATCCTAACCCTACTCCTAA
++
+@@@FFFFFDFFHHJJGDGG>HHHIJJIIEIIIFIJIIEHIEHFIIIJJIGCGHJFIJJIGGCD at CCEDGGIHHDE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2395:2222 3:N:0:
+TTGTGTTTGAGGGTCTTGGAAGCTTGACTACCCTACGTTCTCCTACAAATGGACCTTGAGAGCTTGTTTGGAGGT
++
+BC at DFEDFHHHDAGFHDIGHJJFIGIGIGIJEGHEIIGGIFIJGIIIGBFFGGIIJJIGIC@DEGGHHHHFBDF;
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2460:2222 3:N:0:
+GGCTCACGCCTGTAAAACCAGCACTTTTTGTTTTAGTCAGAGGCTTGTCACGGCGGGGTCCCACCCCCCCGGCCA
++
+B@;DD>?####################################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2344:2226 3:N:0:
+ACACAGACTCCCCCACCTTCCAGTCGGGCACGTCCTTCATGATGATGGCCTCAAACAAGATCGGAAGAGCGTCGT
++
+B at BFDDFFGHDFHIFJIIEHIBGAGGIHEAF@0?FGCGGGIEHGEGBGAGAC at EHIHEHDHFEBAACAACB>?B8
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2432:2228 3:N:0:
+AGGGAGGTTGAGGCTGCAGTGAATTATGATCACACTACTGCACCCCATCTGGAACAACAGAGCGAGACCCTGTCT
++
+=@@FDFF<C;3C8EHA?EF>FFH at 9B?FFGHGGGGGGGEG<FHIJE=FHIDBHIIGDIIGIHGHEHFFBBCC@@A
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2315:2240 3:N:0:
+GTAGTGGGTGTTGAGCTTGAACGCTTTCTTAATTGGTGGCTGCTTTTAGGCCTACTATGGGTGTTAAATTTTTTA
++
+B at CFDFFFDFHHHIGGIIJGHGGHIIIGGIJJHHIIDDHIGIIIIIG9CA=BFIJJHIJIJ=@=ECEF at CD@CC=
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2410:2243 3:N:0:
+CTTTGTGTTTGATTTTAGATATTGGGCTGTTAATTGTCAGTTCAGTGTTTTAATCTGACGCAGGCTTATGCGGAG
++
+@@@FFBDDHFHHHJJIIJIIEJIIGIIIFIJFIGIJEIEIDHIHIHDDFG?FHGIJJJCHGIJIIJJIIJJGHFC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2441:2249 3:N:0:
+TAGGCGGGATGTAGGTGACGGCTGAAGTGCCGGTTGAAGTGCTTGAGCATTTCATGGCTACTTCCTAGTTGTTAT
++
+CCCFFFFFHHHBHIJDFGGIIJJJJI at CFGIIJBEFFFF?CECEEDCCDDCCEDEDDDDDDCCCCCACCDC3<@C
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2634:2122 3:N:0:
+CTAANNNNNATNAGGAGAGAATTCGATCACCCTTAGCCTGTTTGACTTATGCAGGGCTTCAAGAGATGGGATGAT
++
+1+1A#######################################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2566:2123 3:N:0:
+CGGGNNNNNTGNAGAGCCTACTCTGACATGAGAGAAGCCAATTACATCGGCTCAGACAAATACTTCCATGCTCGG
++
+CCCF#####22#2AEGFIJIJIJIJIJEIJJIHIJJIGIJJJJJJJJJJJHGIIJIIJGGIFIHHFF<EEFBFF@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2503:2125 3:N:0:
+TGGANNNNNTCNTCTGTGAATCTCTGGTTCTGGACTTTTTTTGTGTTTGATCTTGCTGTGTCATGCCCGCCTCTT
++
+<B at D#####32#2<CGHIJIJIJIJIIHIJIJIIJIJJIJJIEIJGIIIGGHIJJJJJIHHHHHHHFFFBDDDDC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2525:2134 3:N:0:
+CTGGNNNTAGTNTGTATTTTATGGGCTTTAGTTATCAGAAAGATTTTTAAAATTAGAATATTTGTGGGAACATGT
++
+ at CCF###22CC#3A?EGIIIGIIIJFIJJIIIIJJIIJJJJJJIFJJJJIIJIIJJIIJIJJJIJJJIHGHHHHH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2683:2140 3:N:0:
+ACACNNCCGTCTATGTAGCAAAATAGTGGGAAGATTTATAGGTAGAGGCGACAAACCTACCGAGCCTGGTGATAG
++
+ at C@F##2=DFHHFIJIJJJJJJJIJJHIIJJJJJGHIIJJJJEGGIJJJJGIJIJJHHHHHFFCCBDDDCCCDEC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2708:2142 3:N:0:
+GGGGNNGCAGAACAAATCAAGCACATCCTTGCTAATTTCAAAAACTACCAGTTCTTTATTGGTGAAAACATGAAT
++
+@<<D##22<ADB>;A>FG at BDEHIIGGGEIJJEFHIJIIGIJIIICEHGGDFFGHIJGGGIH@EHEGGHIJ=AEE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2541:2143 3:N:0:
+AGGGNNGGGGAGAGAAAAAAAAAGGCTGCCTCTCTTCATACAATGGGTCTCTTTACCCTTCCTATTTCTCCCTCC
++
+=B at F#######################################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2728:2143 3:N:0:
+TTTTNNTTTTTTTTTTTTTTTTTTGGGTTTGAAAATTTTTTTTTCAAAAAAAAATTTTTTTTTAAATAAAACAAA
++
+CCCF##2=DFFHHJJJJIJJHFDD###################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2658:2145 3:N:0:
+GGTANNAGGTACTTTTGACATTCAGTTTTGCTATATAGAAACAGAATGAATAAATGAACTTTTTTCTTTTTTCTT
++
+B+=D##22<<CF?E>G4:A?,,,3:2A@<E9:*C<C4C4H1??DGHGCEE at AGCFGC>?B*883B;F########
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2584:2147 3:N:0:
+CATTNNCATTTTTTGGACTGCTAGTTTTTCTATTTAAATATTTGCCTTCATGTTAGGAATGTACTATGTGAACAT
++
+CCCF##22CFHHHJJJHIJGJJIGGIJJJJFIJIJJJJJJJJIIIIJJIJFGFHIIJJJJJGIJJJJJJJFGFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2638:2148 3:N:0:
+GCTGNNTTTAGATGTTATTTAAAGTCTTGGGACTGAGTAAGATTACTTAAAGACAGCGTAGCTCAACAAGGGACT
++
+<@BF##22AFFHDHFFIIIIJJEGFIIJIGHIIJJGI?DHHIEIJFIEHGHIJIJIJGB;AGCEEHGHIHFHHFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2611:2155 3:N:0:
+TTGTNNTTGACGCGCTACCTAAGAACAGCTAAAAGAGCACACCCGTCTATGTAGCAAAATAGTGGGAAGATTTAT
++
+CCBF##2=DHHHHIJJJJJJJJIJJJGIGJJJJJJIJGIBFHJJJIJJHHHHHHHFFFFFCDCEEDDDDBCDDDE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2639:2169 3:N:0:
+TTTATCAAAAACATGATTACAGGGACATCTCAGGCTGACTGTGCTGTCCTGATTGTTGCTGCTGGTGTTGGTGAA
++
+CCCFFFFFHH?HFGIGIIEGIGHIIIGIJIIJJJDIIGJIIDGGGGHGGGDFGHIIJJGIJJJGI8@=DHJ?EHA
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2738:2172 3:N:0:
+TTTTCTTTAAATAAGACAGCACTGCATGCTACGGAGAAATCTTTCGTGACAGGAAGAGTCAATGCGGCAAACTTC
++
+ at CCFDFFFHHHGHJGGIJJFBHIJGIGIEGIIIIIIGIJJGJEIJIGHIGFHIEIIJI@FGGIGGIHHDACEACC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2518:2172 3:N:0:
+GGGAAAGGGTATAAGTGGCGATATAGCGGGAAGAGTCTGGGGGACAGGAGGGAGAGGTAGAGAGGGTGGGGGCAG
++
+###########################################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2720:2172 3:N:0:
+ATGCTGTTAGAATGCTTGGGCCATGTCAACATGTTGTATTGCTACAGAATAAGAAAGAGAAATATTTAGTTTATA
++
+:=8?;+2AFAFF###############################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2542:2175 3:N:0:
+GCACACCCGTCTATGTAGCAAAATAGTGGGAAGATTTATAGGTAGAGGCGACAAACCTACCGAGCCTGGTGATAG
++
+?<BB7:?8 at C1CAE><<C>CH3F at +AAFE3??1?FGF9B49*000?*??6B44BE####################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2569:2179 3:N:0:
+TGATGAACTGGGCTTATGTGAGAATGTCTATATTTTCATAACACAGCCCCAGAATCTTTCTCTCAGTTACAGCCT
++
+ at CCDDD?EHGGDHIE at FHAICHDHAG@DIIF at GGAGIE@HGIIDGC?DGHGGIIICGIGEHJJIHGCGGHIIFGG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2591:2180 3:N:0:
+GTTTTAGTGTGTGTGTGTGTGTGTGGGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTATTATATATAC
++
+81??DBDACFHADGAAF<C?B?:A<+:1?::?8B at GHH@9B9?9BCC=C==@D==@@E>E@@(().7(;>D>@D6
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2653:2183 3:N:0:
+ATAGACGGGTGGGCTCTTTTAGGTGTTCTTAGGGAGGTCGGCTGGGTTCGGGGGGCTTATCGTTGGGTCTCCCTG
++
+?@@DDFA?D0<)<+++1CFH49*1:?D################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2748:2190 3:N:0:
+AAATAGTGGGAAGATTTATAGGTAGAGGCGACAAACCTACCGAGCCTGGTGATAGCTGGTTGTCCAAGATAGAAT
++
+@@@DDFDDHHHHGIGIJJIGIIGIGJIG<CFHGGIEGEGDHBBGEEHIGA?EHHGFFCF at CDDCED<ABCCCDCC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2670:2192 3:N:0:
+AATCATAATCTGTACTGCCAGAGAGTATGATTTGAAGGAGATGGGAGCAGATGTAATTCTTGGCTGGAATCTCTC
++
+B@@DFFDDHHFHFHIJGIGEHEGIHCDHIGIJIIIJIIGHFHIFIIJIIIIJHFHGIJJGGIIGIJGDGIIGIIE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2551:2197 3:N:0:
+GAGGCGACAAACCTACCGAGCCTGGTGATAGCTGGTTGTCCAAGATAGAATCTTAGTTCAACTTTAAATTTGCCC
++
+CC at FFDDDHHGHHJJIJJJJFIGII?FGGIIIJJIHIIJJIIJIIIIJIFHEFHHGFFFFFFFEEEEDECDCDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2692:2200 3:N:0:
+ACAAAGGGCAGGGACTTAATCAACGCAAGCTTATGACCCGCACTTACTGGGAATTCCTCGTTCATGGGGAATAAT
++
+CCCFFFFFHHHHHJJJJJJJIJJIJIIIIJJIJJJIGCHIJFGIIFGIJ3=?CHHFFFFFDCDEEDDDB?BDDCE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2720:2201 3:N:0:
+CTTGTGTTTGAGCGGCCATCCGGATTACATCCCATATTTGTTGCATATTTTTCAAAAAGTGCCAATCAAAGCCTA
++
+@@@FDEBDHGFHHJEBGIG;FHGEHIGGGIJGHIDHIJIIHIIIIJJJIJFHIIIGIJFAHFFFFFFDCCECDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2616:2203 3:N:0:
+CGGGGTGCGTCGGGTCTGCGAGAGCGCCAGCTATCCTGAGGGAAACTTCGGAGGGAACCAGCTACTAGATGGTTC
++
+@<@DFDDDHFFFFA:CD;DE)6 at 6?FAB</13@=)BAEAEED8 at AC;;C=9=>6??A8??88>CACC at C:AC:>>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2518:2205 3:N:7682:
+TCTGCAGGATATCGCGGCCGCTCTAAACGTGGTAAATTGTTAACTCCGAGCTAGACTTCAGGTGGCCGTATTTAT
++
+CCCFFFFFGHHHGJIIIGIEFEHIJIJIIFGICFHIJJJJJJJIIICC<9?ACECCEEDDDC>@BDDB at 6?CDEC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2572:2207 3:N:0:
+TTAAGAGATGACTTCGGGTGGGGGAAACCAACCCACCCCTTAATTTTGGTTCAAACCTTTTTCAGCCTCCCCCCC
++
+?@@FFFD;4A?<AA?C###########################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2740:2214 3:N:0:
+ACCGGGGCGGTAGTGACGAAAAATAAAAATACAGGACTCTTTCGAGGCCCTGTAATTGGAATGAGTCCACTTTAA
++
+@;<DBDDAHDHFF))==6;<AEEECE)=C;BC>766;6>3;>ABBC/8<5+8(9:(:3::ACACCC3:C>CCCA>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2644:2220 3:N:5122:
+ACTAGTATGGCCCGGGGGATCCTAGAGACCATTCGCGATTCCATGAGACTCCAAGGGTTCTGCACAACTTATGCA
++
+CCCFFFFFHHHGHDHJJJGGGIJDII at GHJD>FHIIEBDEFEEEAECEDDDDCDDDD(9?CC>CCCDDDCC at C@>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2572:2228 3:N:0:
+CGATGAATGTGTAGTGGCATGGTTAAAGCAATGGGTTTATAAACTCTGAAGGAGTCCTTCACCATTTTTTTCTCA
++
+@<BFFFFDHFFHDIFFAFIEGGAHHIIEHGCDC<FEGHHHIJJGFHJJJGBDGHIEGGHGGGEEGIIIJIFFC at C
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2694:2228 3:N:0:
+TATCCCTAGGGTAACTTGTTCCGTTGGTCAAGTTATTGGATCAATTGAGTATAGTAGTTCGCTTTGACTGGTGAA
++
+CCCFFFFFHHHHHJJJJJJJIJJJJJIAGHIIGIIJJJJCHIJJJJJIJH at FIIIHIIJGEHIJJJGHIJJCCEH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2629:2230 3:N:0:
+CCCCTTGTAAATTTAACTGTTAGTCCAAAGAGGAACAGCTCTTTGGACCCTAGGAAAAAACCTTGTAGAGAGAGA
++
++=1A:D+A<B,A?@,A?<+AAA433<AH?;EF@?)C)::DHB9FH*0:)0?99?*8*).4@;C=@=@A#######
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2541:2237 3:N:0:
+GCAGTCCTTGGACTTCGTAAAGATCATCACCATCCTGGTCACGGCCACAGCGTCCAGCGTGGGGGCAGCGGGCAT
++
+CCCFFFFFHHHHHJJJJIJJIIJIJJJIJJJJJJJJJJJGIIFIJJJIJIDHHEIJJIHEHFDDDDDDDDDDDDC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2512:2238 3:N:0:
+GGGCCGGAGTAATCCAGGTCGGTTTCTATCTACTTCAAATTCCTCCCTGTACGAAAGGACAAGAGAAATAAGGCC
++
+C at CFFFFFHHFHHJJJJJBGIIDHIJJIJJJJJJJIJIIGIHJJJJJIIHGHIEGHHHHFFFFDEEECEDDDDCB
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2572:2245 3:N:0:
+AAAACACACATTTCACATAGTAGTGATTTTGGTATCTTTGAACTACTGAGATTTTTCAGGTTTAAACTTAACATT
++
+ at CCFFFFFHHFHGJJJJJJI<CHICHIIJIJIDEGIJJJIIJJJJJJJJJBGIIIIJIHJGIGGGGIIJIGIIIG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2664:2246 3:N:0:
+AGCGTTTTCTATCGAATCTTGAGGGTTTTCTAGACATGAGGTCATATCATCAACAGAGATACATTGACCTTCTCT
++
+CCCFFFFFHHHHHJIJJJJJIFIJIAGIJJJJIIJIJJBGI?FHIJIIJJGIJIJIIJJJHJJJJIJJIIIJHEE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2598:2246 3:N:0:
+GCTTTCCCGTGTCTTTCCTGGTGATGCCTTGTTTGGGGTTCTGTGGGTTTGGGTGGGAAGAGGGCCATCTGCCTG
++
+;?@BDFFFG3CD?EGHEA<CF?FF9F9EFHH*1?CFEBFGGGCFBHE(;B;FH;;EE9?BDD=A951;;@ACDA:
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2751:2116 3:N:0:
+TTACNNNNNNNNNAGGTGTATATAGTAAATCCGTTTGTAGAGAGTATGAAGTTTAAAAGGTCTTAGCAGGTACAT
++
+CCCF#########23AAFCDHGIIJIIJJJJJIGIJJIIJIIIHBFHIHIFFHGIIIIJJHIJIJIIJIJDEHGE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2972:2117 3:N:0:
+TGGGNNNNNNNNTTTTGAAGACCCCTCCATGAGTTGCCTTAGTGTGATCTTTAGAGATGTTGGAGACATTTTATT
++
+CCCF########22AF=FIHGJGIIJIIADDGGHGIJIGJJJHFDGCGIEHGHIBGFGDDAGHIJJJJFHEHFEE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2858:2117 3:N:0:
+AAAANNNNNNNNACAAAATTCCTAGAAAATAACGGTAAAGTATATTGATTAGAACCTATTGGTTTTGACTAAAAC
++
+CCCF########22AGHIJJJJJJJJJIIHIIJJJDGIJJGGIJJJJJJIHIIJJJJJJJJIHGIJIGHHHHHFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2819:2125 3:N:0:
+GGCCNNNNNAGNGCTTGTGTTGAGATTACCGGAACGGTCTGGAAAGGCCGGCAGGATGGGAGACAGCCCCGGACG
++
+B@@F#####32#2<+A1C?GHIHED<BGGE80:@@FH(7(8BBFE at 66.;A:?ABB###################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2877:2125 3:N:0:
+TCTGNNNNNCCNGGTGATAGCTGGTTGTCCAAGATAGAATCTTAGTTCAACTTTAAATTTGCCCACAGAACCCTC
++
+<@@D#####22#2<+2CFBFH42A+AC:EFGGIBC at BGGGGDGIBHGB?DBDBGHIGAHHI at FDC@ECEGE(-6?
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2783:2126 3:N:0:
+GTTTNNNNNCCNTAGTAGGCCTAAAAGCAGCCACCAATTAAGAAAGCGTTCAAGCTCAACACCCACTACCTAAAA
++
+C at CF#####32#2AEEGIIJJJJJJJJIJJJJIJJJIJJJJJJIJJJJFEFHIIJIJIIJIJHHHFFFFFEEEDC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2924:2127 3:N:0:
+TGTTNNNNGTGNTTGTTGATCTTTTTTTCCTTACAGACACCCATAATAAAATATCATATTAAAAAAAAAAAAAAA
++
+ at C@F####32A#2<EGIGIIJJJJJJJJIJJJIIIHGJJJJJJJGIJJIIHHIIGIJIJHHHGHHFDDDDBDDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2833:2134 3:N:0:
+TCCCNNNAAAANGTATATTTTGTTTGAGAAATTTGTTAAATTATTTAAAGCAAATAATTTAACAAATTTCTGGAA
++
+B at BF###22A;#2<CFAHCHIJJBGCGEFGHIJGGDGGCHDEIEGIGIEGHGHGHHHDHGGIGJE at CGIECGEHI
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2979:2137 3:N:0:
+CCATNNNGGGGTATCTAATCCCAGTTTGGGTCTTAGCTATTGTGTGTTCAGATATGTTAAAGCCACTTTCGTAGT
++
+CCCF###2<CF<DFIJJJJJJJJJGIJJJJBGIJIJJIJJJJIIGHHIJEBFHGIJJIJFHIIJJJJJJJJIHHE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2847:2145 3:N:0:
+CGGTNNGGGTGTTTACGTAGACCAGAACCAATTTAGAAGAATACTTGAAGCTAGAAGGGGAAGTTGGTTAAAAAT
++
+?@@:##22A+<<AAFBHGEGHDGEGGCEGIJCGIIGIIIJJEGIGGIHIJFBFHDGHFIIGHE?CEHFEBB:@C@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2811:2145 3:N:0:
+AAACNNAAGAATGCAAGATTATTAAGTATTGTTCTCAGCTGCCAACTACATAATAATCTTGCATTCTTCAGTTGT
++
+@@@F##2=CF<FFIJIGIHICGGHJJHGIIJFHE at GGHHIIGIJJEEGIJ@GHGEHIECCHIIHEGIIJJIFGEC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2885:2146 3:N:0:
+CCTANNGAGCCTGGTGATAGCTGGTTGTCCAAGATAGAATCTTAGTTCAACTTTAAATTTGCCCACAGAAGATCG
++
+CCCF##2=DHHHHJFHHIJJJIJJGHJIJJIJIJJJJJIIJJJIJHJJJJHHIJIJJJJJJGIJIIJIJHIJJHG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2770:2150 3:N:0:
+CCACNNGGGCGGTACACCTGTCAAACGGTAACGCAGGTGTCCTAAGGCGAGCTCAGGGAGGACAGAAACCTCCCG
++
+ at C@F##2=?DFFHHBHJIHIBFFGGEHHFHGGJFBHG6CCEHGDHHF at BFCBDCCDCDDD=<ACBDDCCADCDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2862:2156 3:N:0:
+TTAGNNATAAACGAAAGTTTAACTAAGCTATACTAACCCCAGGGTTGGTCAATTTCGTGCCAGCCACCGCGGTCA
++
+???D##2+<D7AFG?:?G4+C<?EHGEECGEGD<FFHGHGIG=68?@A(8=;@=;7CCHHCHH############
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2796:2160 3:N:0:
+CACCNNAAGCCGCCGGAACCGCGACGCTTTCCAAGGCACGGGCCCCTCTCTCGGGGCGAACCCATTCCAGGGCGC
++
+CCCF##2=CFDAHIIIIHIJIJIIIGEHHFCFDDCCDCD>BBBB=:ADCDCDB at 58@B;@<DDBDA>CCCCDB;@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2826:2161 3:N:0:
+CCGANNGGGGGGGCGGGGGGGGGGGGGCGTGTTGAGCTCTGCACCCGAACATAGAGGCGGGCCCCCCCCGACCGC
++
+=?BD#######################################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2995:2162 3:N:0:
+TGGCNGTGAAAAACAGTGTATTTAAAGAAATACACTAAAACCAATAATTATGTTTTGTTGAAGAGATTTGAGTTC
++
+B at CF#2=DHHHHHGHHEHFFHIJJJJIJJJIJIJJIJJJIIJGHGIGJIIGHDGIIIHJJIGIHGGIIIIGHGHH
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2943:2165 3:N:0:
+CAGGNTTATGCGGAGGAGAATGTTTTCATGTTACTTATACTAACATTAGTTCTTCTATAGGGTGATAGATTGGTC
++
+CCCF#2BDHHHHHIJIIJJJJJJIIJJIJJGIJJJJJJJIIJJJJJJJJHFGIJJJGJGIJJCGHGGHHHHHFFE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2869:2177 3:N:0:
+CTTGTCAAAACACCTGATAAATACATAGGCCAAAATGGATCTCTAATGAAATATATGTGACTTTATCTTACATGA
++
+CCCFFFFFHHHHHJJJIJJJJJJJJJJHIIIJJJJIGEHCGGFHEIJ at EIFFHIIIIHIIIJJJGIIIIHIJJJG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2816:2183 3:N:0:
+GTTGCTCGCTCTAATTTGTCACGTCGGTCTGTTGAAATATTAAACCTAACATGGTCACCTTCCAGCAGGGTCACC
++
+CCCFFFFFGHGHFIIJJJHEHIIHGHJGHHIJFJJJJJJJJIIJHIJIIJIIIIFHHJGIJJGIHGHGHF?@AED
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2957:2184 3:N:0:
+GGGGTACTGGCGGAGGCGAGTGGGGAGAGGTGAGTGATAGTAAGAGGTGAACCTCAGCAGGGAAAAAAATTGTGA
++
+1+=?#######################################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2848:2194 3:N:0:
+TATGCGGAGGAGAATGTTTTCATGTTACTTATACTAACATTAGTTCTTATATAGGGTGATAGATTGGTCCAATTG
++
+ at CCFFFFFHHHHHJJJJIIIFFHHIJIIJJJJJJDIIIIIJJIHGIJJIJIGJJJJCGIJJIGIGHIJIHHHGDF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2791:2198 3:N:0:
+CGCAATCACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACAC
++
+@@@ADDFDHAH;6CEG?;FG<A<AEGIEEGG?<F?DHGIE<FGIJBE=<?B=9;9?@;;?2<??@BBB>B;?BDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2825:2198 3:N:0:
+ATTGGTCCAATTGTGTTTGAGGGCTGTTAATTGTCAGTTCAGTGTTTTAATCTGACGCAGGCTTATGCGGAGGAG
++
+?<BFBDED8DFH<2<CGH::CEA>DG+C>9*@4:*??FD?9??F?BBFHE?44B<FFFH';@@D@:C at AHBBA##
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2969:2201 3:N:0:
+GGGCTACTGCTTTATATGACTTTCTAAACTTCATTCCTTGCCCAAGCTGAATCTAAGCACGTACTACAGTGCTGA
++
+@@@DFFFFGGHHHJJJIJJJJIIJIJIIIJJHCHJIJJIIJJIIJJIIJGIHJIJJJIJJJHGHHIJJJ=FEHIF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2994:2203 3:N:0:
+GGGGAAGGCGCTTTGTGAAGTAGGCCTTATTTCTCTTGTCCTTTCGTACAGGGAGGAATTTGAAGTAGATAGAAA
++
+?@@=BDDBFFADHIIIDGHCHHICEIIIAGEIIJGGGCHBGGIHDHHIEHH<HI6@;@CGGCCEH??ACCDD at D@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2812:2220 3:N:0:
+TTGTGTTTGAGTGGTGGAAGAACGGTCTCAGAACTGTTTGTTTCAATTGGCCATTTAAGTTTAGTAGTAAAAGAC
++
+CCCDFFFFHHGFHGCGIIIIIJJJJGHGGIJIIIJJGHIIGGIJIEIIFIDHGIHIIHGFHIIEGGHGGGGIHHD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2962:2221 3:N:0:
+CACGGCCAAAAGAAGTCTGGTGTAACTTTATTTATATTAGACAAAGTAGCTTTTAAGACCAAAAGAATTAGAAAT
++
+CCCFFFFFHHGHHJJEHHIJHGHIIJJJJIJJJJJJJJJIJJJJJJFHIIJJJJJIJJJJJJIIEHGHHHHEHEE
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2786:2222 3:N:0:
+TGGGAGCATCATAGGGTTACTTTATACCAGTTGTAACATTTTCATTGTTTTTGGTTGTTCTTTTTTTTTTTTTTT
++
+CC at FFFFFGHFGDGIIGGGIIJGIIGGEGIGIIHEEHIJHEHHGFGGFHIGGFGGGIGIIG@HGHIFCDB at BDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2758:2223 3:N:0:
+AAACTGCTCTTTGAAAAATTATTTTTAAAAATTATTTAAAGGTTGTATTAAAAATACAACCGTCCCATCATTCAG
++
+C@@DDFDDHGFDDHIEGIA<FFHJJJII>@GHIIJJGIIJIE:?DFHIIHHGIJDGHGIIGIJIIIGEIIIIBHC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2870:2228 3:N:0:
+TTACCTCTTAAATATCTCTGTTCCCTTCTAAGTTGTTTGCTGTGTTTTCTTCAGAGCAAGAAGGTTATATTTTTT
++
+CCCFFFFFHHHHHJJJIJJJJIJJJJIJIJJJIIJJJJJIIJHHHIIJJJHIJJJIJJIIIIIJGHIJJIJIJIG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2989:2233 3:N:5634:
+ACTAGTATGGCCCGGGGGATCCGTTAGCTATCGTTCGCGAGAAAGTTAGTAGACACACAGGACCCAGGCGTGCAA
++
+?@@FDADB<;+2<CF>CG?@F at F6)(@AH at F;C7C;AHB</93:(,:@>:;;@(59<5?A?A?(2?#########
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2897:2238 3:N:0:
+ATAATGGAACTTACAGACACAGAACTGATTTTATACACCCGCAAACGTGACTCAGTAAAATGGCACTACCTCTGC
++
+B;??D;DDBDDHD:AA<<C at EEBEHIJJ<9AEHGIIDBFHG at GADB6==BF<4=@=@GE;)@A6==?EH>@DFCC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2799:2240 3:N:0:
+TTACATTCGATAGTGTTACTGATAACAAACCTACTTAAGAGATATGTTGCTTTTTACTTAAGGGATAGTGTTGAT
++
+@<@DDFDFHHDHHCF at GGGI>DHJIIGJJGHGGHHIIFEGGD>FIIJIII>GHIIIGGIGFEHGAGDHIHFHJIC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:2765:2245 3:N:0:
+AAGCAAGTGGTGGTTTTAAAATCTGTTATTTCTTTTCTTCCAGTCATAAACTTTGAGGAAGGTATCTCATTTTTA
++
+BB at FFFFBFFCFHFIIJIJGGGGHIIJJIIJJIIJJJJJJIJJIJJJJJJIJIIJIIJHDGIFGIIIJJDHIJID
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3034:2128 3:N:0:
+CCATNNNNGGGNCTACCTCCAAAATTGCCACCTCCAGGTCCTCCTCCATACCCATTATAGCCATCCCCAAATCCA
++
+ at CCF####32A#2AGHIJJJJJJIJJJJJJJJJJJJJJGHIJDGHIIIJJHGIIGIJJJJJIJIJJHHHHFFFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3140:2129 3:N:0:
+CCTTNNNNTACNTACATTGTTCCAACATGCCAGAGGCTGTTCACCTTGGAGACCTGCTGCGGATATGGGTACGGC
++
+@@CF####22A#2<CGGJIIGIJI<GHIIJIIIEGH at GEF3BCHIGIGIHHIIIIJJJJJJDH<<@DCE(;CDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3190:2131 3:N:0:
+TCACNNNNGAANAACTTAACACACAATAACAGAAGTTGGTCGTTAATAAATCACATCCTAGTCTTTCAGCGCTTC
++
+CCCF####22A#3AFHIJJJJIJJJJJJJJIJIJJHIJJHHIHIJGIIIJJJJJJJIJIJJIGIHHHHGHFFDDD
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3159:2138 3:N:0:
+TTTGNNNTGTGTGTGTTTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTTTAATTCTATCTTTTCTGCGTGGGTTT
++
+ at CCF###23A?ACCG at FHIIF2C8CCGFHBHFGBGHHGHDGDGFGIEG<FF;@FHGEHDHICH at HF@=9B#####
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3003:2143 3:N:0:
+CTAANNCCCCTTGTAAATTTAACTTTTAGTCCAAAGAGGAACAGTTAAAATTACAAGGGGATTTAGAGGGTTCTT
++
+ at B@F##22AFFFFEGGA<D at 4?+<3A?C+++1*1CCF9D3C)B9*:D*9*09***998=B@'=@;@>)6A#####
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3023:2146 3:N:0:
+TGGTNNTGTTCCGTCTTTGGGTCTTAGCTATTGTGTGTTCAGATATGTTAAAGCCACTTTCGTAGTCTATTTTGT
++
+ at B<D##222ADFHHGHGIGI88CGGEGIFGIIFCFHFBFHIEEH?>GHGFBDFCG at HIE@CG67C at EHGIHHFHF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3234:2154 3:N:0:
+CCATNNCTGCTGCCAGTGCGAGTCTGTGTTGCCGTCAGCTGCGATTGTTCCTTGGTCTGCTTCTCGATCTCAGCG
++
+CCCF##2=CHHGHJJJIIIIHJFGIIGGGIJIJJGHIIJIJIJGGIJJJIFHHIGGGHHHHHHFFDEECEEDEED
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3133:2155 3:N:0:
+TTGTNNTTGATGGCCAGTTTAAAACTTATGCTATCTGCGGGGCCATTCGTAGGATGGGTGAGTCAGATGATTCCA
++
+ at BCB##2=CFHHHJJJIHIJJJJIJJJIJGJJJGIJGIIIIIJJHFEHHB at DFFCEDD>?BDCCDCCCDCDDEFC
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3044:2155 3:N:0:
+ATAGNNGGCTTTGGATTCAGAAAAGGTGGACCAGATGACAGAGGTGATTGGTTCTTCTAAAGCTGAACATCATAA
++
+@@@D##2=CFHHGJJJJCHIGHJIJJ9FCEGIJJGIIGIJIJJI<DEIIE at DFGGIIJA@FEHGIIEHGCHFGHF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3164:2162 3:N:0:
+ATATNCCGCCAAGCCAGATTCGGGCGCTCCCCTCTTGCGCAAGGTGGTCACGTGGGCACCCAATTCTTTGATGGC
++
+CCCF#2ADDHHHHJJIJJJJIJJH::?)?DH6.<.==A@;'58(;?B3;>6,,5=28<@DD89(:>@CD@:4:>3
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3054:2170 3:N:0:
+TGTGGGACGTTTATATTTAAAATCATATTTTGTGGTTGTTAAGTATATTGGAATGATTGAATTTGATTAGCTTTG
++
+###########################################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3111:2178 3:N:0:
+GAGCCTGGGGGGAAAAGGGGTGGTTTAAAATTTTCTTTTGGAAAACACGCATCACCAGGGTCAAAACAAAAAACC
++
+=?BDFB#####################################################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3228:2178 3:N:0:
+TATTTGTATCTATTTTTAGATGACTTCAAACCTGCTTCTATTGACACTTCTTCTGAAGGATACCTTGAGGTTGGT
++
+CCCFFFFFHHHHHJJJIJJIJJIJJJJJJJJJIJJGJGGIGGIEIHIIIJIHIJIIJJJJJJJJJIJBHI at FHI;
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3021:2180 3:N:0:
+AACGGGTTACCCGCGCCTGCCGGCGTAGGGTAGGCACACGCTGAGCCAGTCAGTGTAGCGCGCGTGCAGCCCCGG
++
+@<?DDF at DDFFDF>@@C:?@8C:@<6A;;(B at 55)=CHH>B##################################
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3009:2183 3:N:0:
+CTTTGTGTTTGATTATGGTATATATACAATTTTCAACACATAATTATTGCATCTAAGCAACAGATACAGAGAAAA
++
+?7??D2ABAFDFDIGEBGCIJFGGCHGGEHHBCHIEHII?C9DB at FHGIFFCFII>GIG at HHIFEHGEGHJIGDF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3074:2186 3:N:0:
+CTTGAGTGATGGGTACATGGTGGTTTACTAAATGCTATTTCTGAATACATTTCAAAATGTTCATAATAAAAGTTA
++
+ at CCFFFDDGHHHHEGIIJJJHHIGHIIIGGIJIJJJJJJJJIJJJJJJJJHGIJJJJJIIIJJJJJJJJJIIFHG
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3179:2188 3:N:0:
+AGGTGATCCGCCCTCCTTGGCCTCCCAAAGTGCTGGAATTACAGGCATGAGCCATGGCACCCTACTTTGATTTAG
++
+@@B=DDBDHHFGGIJJBHHGEHDHIGIJII:CEIHG at DGHIIJEHDIGIJIDGIJIDHIIGIIDHEHFFFFFFFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3046:2190 3:N:0:
+AGGAGGTCAGTTATATGTTTGGGATTTTTTAGGTAGTGGGTGTTGAGCTTGAACGCTTTCTTAATTGGTGGCTGC
++
+BC at DFFDDHHFHFIJJJIIIJJJFGIGJJJIBH?FDDEGI?DFEGCHIBHHIHIFECEEHHHEEHFECDF<@AA@
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3244:2190 3:N:0:
+TTTGTGTTTGAGGGGGGTTGATTTACATCTGGCACAACTTAGTCTTTGTTCCAATCATTTTAGAAGTCTCAATTT
++
+@@@FDDFDHFABF=G:9)078@@CC8>>CC8@@AAC at BDCCCC>3+38 at C9A@@CCDCDDDD<@A:>AA>:>4>>
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3219:2193 3:N:0:
+GAGGGATGCAAAGTATTGTTCCTAGTGTGACTGTGAGGGAGCGGCAAAGGGAGATTAACATTTGAGTCAGTGGAG
++
++1+++8A;CBCFAG,AA:<C9<,C+A42+++++1?**1))1)?0?'<(.@(6@'77???AHC#############
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3197:2198 3:N:0:
+GGGGCTTATGAGGTATGTGGACTATCTATGAGAGCTTATCTTGCTGAGGGAGATAAATTAACATCAAACAATAAG
++
+@@CFF<D?BFHHFFEFGHHI<EHC:FBHHHDFHD;B?FHI9BGDGCGGHEG@@F at FABCHEGHEHAF>=CECHFF
+ at HWI-ST1131:111228:C0B0NACXX:2:1101:3168:2201 3:N:0:
+GCGAGCGGGTGGTAAACTCCATCTAAGGCTAAATACCGGCACGAGACCGATAGTCAACAAGTACCGTAAGGGAAA
++
+?;BDFFDAF)<DC?GH>FE>?B::DGGCDAGFGHGEG</4 at EA8?94;A?/==:(55@@A<+33>5?208381<2
diff --git a/clipper/t/join.t b/clipper/t/join.t
new file mode 100644
index 0000000..bc422f7
--- /dev/null
+++ b/clipper/t/join.t
@@ -0,0 +1,33 @@
+use Test::Builder;
+use Test::More;
+use File::Basename qw(dirname);
+
+require (dirname(__FILE__) . "/test-prep.pl");
+
+$prog="$BINDIR/fastq-join";
+
+ at check = (
+ {param=>"$INDIR/test-m1.fq $INDIR/test-m2.fq -o $TMPDIR/test-m. > %o:$TMPDIR/test-m.out 2>&1 #o:$TMPDIR/test-m.join"},
+ {param=>"$INDIR/phred.1.fq $INDIR/phred.2.fq -o $TMPDIR/test-phred. > %o:$TMPDIR/test-phred.out 2>&1 #o:$TMPDIR/test-phred.join"},
+ {param=>"-p 20 -m 5 $INDIR/test-ov-a.1.fq $INDIR/test-ov-a.2.fq -o $TMPDIR/test-ov-a. -x > %o:$TMPDIR/test-ov-a.out 2>&1 #o:$TMPDIR/test-ov-a.join"},
+ {param=>"-p 20 -m 5 $INDIR/test-ov-b.1.fq $INDIR/test-ov-b.2.fq -o $TMPDIR/test-ov-b. -x > %o:$TMPDIR/test-ov-b.out 2>&1 #o:$TMPDIR/test-ov-b.join"},
+ {param=>"-p 20 -m 5 $INDIR/test-ov-a.1.fq $INDIR/test-ov-a.2.fq -o $TMPDIR/test-nov-a. > %o:$TMPDIR/test-nov-a.out 2>&1 #o:$TMPDIR/test-nov-a.join"},
+ {param=>"-p 20 -m 5 $INDIR/test-ov-b.1.fq $INDIR/test-ov-b.2.fq -o $TMPDIR/test-nov-b. > %o:$TMPDIR/test-nov-b.out 2>&1 #o:$TMPDIR/test-nov-b.join"},
+);
+
+my $id=0;
+for (@check) {
+ ++$id;
+ my %d = %{$_};
+ $cmd = "$prog $d{param}";
+ my ($exit, $ncmd, $files) = run($cmd);
+ if ($d{bad}) {
+ ok($exit != 0, "test$id worked ($ncmd)");
+ } else {
+ ok($exit == 0, "test$id worked ($ncmd)");
+ }
+
+ check_output($files);
+}
+
+done_testing();
diff --git a/clipper/t/mcf.t b/clipper/t/mcf.t
new file mode 100644
index 0000000..28f356b
--- /dev/null
+++ b/clipper/t/mcf.t
@@ -0,0 +1,36 @@
+use Test::Builder;
+use Test::More;
+use File::Basename qw(dirname);
+
+require (dirname(__FILE__) . "/test-prep.pl");
+
+$prog="$BINDIR/fastq-mcf";
+
+ at check = (
+ {param=>"-l 15 $INDIR/test.fa $INDIR/test1.fq > %o:$TMPDIR/test1.out 2> %o:$TMPDIR/test1.err"},
+ {param=>"-l 15 $INDIR/test.fa $INDIR/test2.fq > %o:$TMPDIR/test2.out 2> %o:$TMPDIR/test2.err", bad=>1},
+ {param=>"-l 15 $INDIR/test.fa $INDIR/test1.fq -o %o:$TMPDIR/test3.out > %o:$TMPDIR/test3.err 2>&1"},
+ {param=>"-l 15 -L72 -f $INDIR/test.fa $INDIR/test4.fq1 $INDIR/test4.fq2 -o %o:$TMPDIR/test4.out1 -o %o:$TMPDIR/test4.out2 > %o:$TMPDIR/test4.err 2>&1"},
+ {param=>"-l 15 -H $INDIR/test.fa $INDIR/test1.fq -S -o %o:$TMPDIR/test5.out > %o:$TMPDIR/test5.err 2>&1"},
+ {param=>"-l 15 $INDIR/test.fa $INDIR/test1.fq -o %o:$TMPDIR/test6.out.gz > %o:$TMPDIR/test6.err 2>&1"},
+ {param=>"-0 -D 20 n/a $INDIR/test-mcf-dup.fq -o %o:$TMPDIR/test7.out > %o:$TMPDIR/test7.err 2>&1"},
+ {param=>"n/a $INDIR/count.fq > %o:$TMPDIR/test8.out 2> %o:$TMPDIR/test8.err 2>&1"},
+ {param=>"$INDIR/adap.fa $INDIR/test5.fq > %o:$TMPDIR/test9.out 2> %o:$TMPDIR/test9.err"},
+);
+
+my $id=0;
+for (@check) {
+ ++$id;
+ my %d = %{$_};
+ $cmd = "$prog $d{param}";
+ my ($exit, $ncmd, $files) = run($cmd);
+ if ($d{bad}) {
+ ok($exit != 0, "test$id worked ($ncmd)");
+ } else {
+ ok($exit == 0, "test$id worked ($ncmd)");
+ }
+
+ check_output($files);
+}
+
+done_testing();
diff --git a/clipper/t/multx.t b/clipper/t/multx.t
new file mode 100644
index 0000000..09d2599
--- /dev/null
+++ b/clipper/t/multx.t
@@ -0,0 +1,31 @@
+use Test::Builder;
+use Test::More;
+use File::Basename qw(dirname);
+
+require (dirname(__FILE__) . "/test-prep.pl");
+
+$prog="$BINDIR/fastq-multx";
+
+ at check = (
+ {param=>"-l $INDIR/master-barcodes.txt $INDIR/mxtest_2.fastq $INDIR/mxtest_1.fastq $INDIR/mxtest_3.fastq -o n/a -o $TMPDIR/mxout_%_1.fq -o $TMPDIR/mxout_%_2.fq > %o:$TMPDIR/test1.out 2> %o:$TMPDIR/test1.err"},
+ {param=>"-l $INDIR/master-barcodes.txt $INDIR/mxtest_2.fastq $INDIR/mxtest_1.fastq $INDIR/mxtest_3.fastq -o n/a -o $TMPDIR/mxout_%_1.fq.gz -o $TMPDIR/mxout_%_2.fq.gz > %o:$TMPDIR/test2.out 2> %o:$TMPDIR/test2.err"},
+ {param=>"-g $INDIR/mxtest_2.fastq $INDIR/mxtest_1.fastq $INDIR/mxtest_3.fastq -o $TMPDIR/mxout_%_1.fq -o $TMPDIR/mxout_%_2.fq > %o:$TMPDIR/test3.out 2> %o:$TMPDIR/test3.err"},
+ {param=>"-H -v ' ' -l $INDIR/master-barcodes.txt $INDIR/mxtest-h_1.fastq $INDIR/mxtest-h_2.fastq -o $TMPDIR/mxout_%_1.fq -o $TMPDIR/mxout_%_2.fq > %o:$TMPDIR/test4.out 2> %o:$TMPDIR/test4.err"},
+);
+
+my $id=0;
+for (@check) {
+ ++$id;
+ my %d = %{$_};
+ $cmd = "$prog $d{param}";
+ my ($exit, $ncmd, $files) = run($cmd);
+ if ($d{bad}) {
+ ok($exit != 0, "test$id worked ($ncmd)");
+ } else {
+ ok($exit == 0, "test$id worked ($ncmd)");
+ }
+
+ check_output($files);
+}
+
+done_testing();
diff --git a/clipper/t/out/join/test-m.join b/clipper/t/out/join/test-m.join
new file mode 100644
index 0000000..39233fb
--- /dev/null
+++ b/clipper/t/out/join/test-m.join
@@ -0,0 +1,12 @@
+ at MISEQ06:5:000000000-A2FRR:1:1102:14347:18774 1:N:0:TCCACAGGAGT
+TACAGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCGCGTAGGTGGTTCGTTAAGTTGGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATTCAAAACTGTCGAGCTAGAGTATGGTAGAGGGTGGCGGAATTTCCTGTGTAGCGGTGAAATGCGTAGATATAGGAAGGAACACCAGTGGCGAAGGCGACCACCTGGACTGATACTGACACTGAGGTGCGAAAGCGTGGGGAGCAAACAGGATTAGAAACCCCTGTAGTCCGT
++
+?<???<B?DDDDDDDDEEECFFHHHBFFHHHHHHHHHEHHHGHHHHHHHDHHHHHHHHHHHHHHHHHFHHHHHHHFHHHHHHFFFGFEEFFFFFFFFGGGGGGGFFFFFGGEGGGGEGGGEEGGGGGGGGEEGGGEFEFGGEGEEGGGGEEFFGGGGGEGGGEGGFGGGFFFGFHHHHHHHEHHHGHHHHHHHIHHHGHIHIHHIIIHIIIIHHHHIIIIIIIIIIHHHHHHIHEHHHIHIIIIIIHHFIIIHFFFGGFBBDDDDDDBB@?A???
+ at MISEQ06:5:000000000-A2FRR:1:1102:10887:18775 1:N:0:TCCACAGGAGT
+TACAGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCGCGTAGGTGGTTTGTTAAGTTGGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATTCAAAACTGACAAGCTAGAGTATGGTAGAGGGTGGTGGAATTTCCTGTGTAGCGGTGAAATGCGTAGATATAGGAAGGAACACCAGTGGCGAAGGCGACCACCTGGACTGATACTGACACTGAGGTGCGAAAGCGTGGGGAGCAAACAGGATTAGATACCCTTGTAGTCCGT
++
+?????BB?DDDDDDDDGGGGGGHIHFFFHHIIHIIIHHHHHHHHHHHHHHHHFGHHIIHIHIIHHHHHHHHHFFHHHHHHHHHGGGGEEGGGGGGGGGFGGGGGGGEEEFFGGGGGGGGGG?EEGGGGGGGGEEGGGGGGGGGFGGGGGFGGGGGGGGGEFEEEFFHHHHHHHGGHHHHHHGHHHHHHHHHHIIHHHHHIHIHHGIIIIIIIIIHHIIIIIIIIIIHHHHHHIIHHHHIHIIHGHHIHHHIIHFFFFFFBBDDDDDDB@@?????
+ at MISEQ06:5:000000000-A2FRR:1:1102:7201:18800 1:N:0:TCCACAGGAGT
+TACAGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCGCGTAGGTGGTTCGTTAAGTTGGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATTCAAAACTGTCGAGCTAGAGTATGGTAGAGGGTGGTGGAATTTCCTGTGTAGCGGTGAAATGCGTAGATATAGGAAGGAACACCAGTGGCGAAGGCGACCACCTGGACTGATACTGACACTGAGGTGCGAAAGCGTGGGGAGCAAACAGGATTAGATACCCCAGTAGTCCGT
++
+??????B?DDDDDDDDGGGEFFHIHEFCFCGHHIIHHHHHFGHEHHHHHHHHEGHHIIHHIFFGHHHHHHHHHFFFFHFHHHGGGEGDDDEGGEGGGGGGGEGEGG?C>DEEDGGGGGGGGCEEGEGGEGECEGCEEGGGEEA?CEGGGFEEEEGGGGGGGEGEGGGGFFGGHHHHHHHHHHHHFHHHEGHHIIHHHHHHHFHIHIIIHIIIHHIHIIIIIIIIIIHHHEHIIHHHHHIHHGDGFHHIIIHHHFFFFFC+5DDBDDDB@@?????
diff --git a/clipper/t/out/join/test-m.out b/clipper/t/out/join/test-m.out
new file mode 100644
index 0000000..4659452
--- /dev/null
+++ b/clipper/t/out/join/test-m.out
@@ -0,0 +1,5 @@
+Total reads: 3
+Total joined: 3
+Average join len: 227.00
+Stdev join len: 0.00
+Version: 1.01.759
diff --git a/clipper/t/out/join/test-nov-a.join b/clipper/t/out/join/test-nov-a.join
new file mode 100644
index 0000000..07e349b
--- /dev/null
+++ b/clipper/t/out/join/test-nov-a.join
@@ -0,0 +1,36 @@
+ at HWI-M01378:140129:000000000-A7785:1:1115:20594:2152 3:N:0: TATAGCACGC
+GGTAATCGTGACTCTGCCCTGGCACTTCTGTGAGTATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GEE,6E,FCD18 at ACCCC538D$5=@<FEC==<$>G at DAFC9BFEFDACGGFA=EDE at D3,>5:B>6B<7GGFEFCGF@,F>,3,:<C7BDGGEGD7CGGGGEF@,A9FFEEGGGGGGFEE<GFEGFGCGGGGGFEE?,FFCGDGFFFFGFFF?FGFEFFGECGFCCGGGGGFGGGGFFCGGGGF77DGGGGFEF9GFE,FGGGGFFEF<8GGGFF:
+ at HWI-M01378:140129:000000000-A7785:1:1115:21004:5310 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GFEEGDCADFFGFFFDGGGGGFGGEGBEDFFFGGGGGGGGGGFGFFGC=FGDEF at GFGGGGGGGFGGFGCCCF0CCE>EGGGGFGFFGF:CGFGC6GGGEFC1EFECGGFA+GFCFFEFGGGGGGECGGGFDGF9ECFGGGGGGGGGFCGGGF?ECGEGGGGGFGGGGGGFGGGGGGGGGGGFGGGGGDGGGGGFGGGGGFGGGGGGGGGGGGGGFG
+ at HWI-M01378:140129:000000000-A7785:1:1115:10327:25119 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGGACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAGGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGFFGFCFGFGGGG,=DFDGGGGGGFGGECDEFFGGFGGFGGGGG?GFFGEECAADDEGGDFDF>?B5F4FFGGGFD7GFDEFFGEF:+<CF@@66+GGGGGEECCGGFFGGGGGGGGFGFFGFFGGDFGGGGGGGGGGGGGGGGFGGGFGFGFEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFC,GGGGGGFGGGGGGGGGGGGGFG
+ at HWI-M01378:140129:000000000-A7785:1:1116:26580:20568 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGCATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGFGGGDFGGDCFFFGFFGFGGDGGGGFFFGG8EFDFAFGG?6CCFC:<CGFCF5<FAGG>C78DFF=FFCBDDFFFGBFFGFFF@;FEFCGFGFFEEGGGGEGGGFCGECEA9,GDFEFGGGGFGGGGGGGGGGFFGGGFGGGFGGGGGGFFF<GGGGGGGFGGEGGGGGGGFGFGGGFGGGFEFFGGGGGGGGGGGGGGGGGGGGGGGGGGFF at F
+ at HWI-M01378:140129:000000000-A7785:1:1117:15050:1908 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCTGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGA
++
+GGGFCGGGGGGGGGFFGGGGGGFEGGGGGFF=GGGGGGGFGGGGFGGGFGGGGDFGECGFGGFGGGFFCDFGFCFCFGGGGGGGGGGGGGGGGGGGF at EGDGEGGGGGGGFGGGGGGGGGGFGGGGDGGGFGGGGGGGGGGGGGGGGGGGGGFFDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGFGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1117:15528:1981 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+8FFG,@,ED39F,,,73 at F8D68,6,@,6 at AD1==DGGG9A79C=FA@@?FEC?CFCFEF2?DGFECGGFE9FCE>;DD6ECFFF at ECGEDGECEF+7GGC8+GCFECA9EGGGGDGGDGFDA9CGGGGF@FF4AFDC5<DGGGGFGGF9FAFFFFE,CFFF8GGGECGGGFADDDFGGGFCDGGGF at GGGGEC@FDGGGFCFGGFFFGGFGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1118:9968:1647 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCCCTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+8F>D=EFADAFDA=A,9D+8DCD=@8,73D,6,,2?=C==CDFGGCFFDFF<CCF$958F7<9CF8FD13(C>7$;6GG?=GFCDEFGGDGF>3ED7 at B@:=@EGEEFFACA;EEGFFA,F9FBCGGGGGGE at EE9GGGF=8@?GGFGGGGGGGGF?5?@F<@DEGGGCCGGGEFEFFGFFCDGGGFFFDGFEF at GGGGGGFGGGFGGFF@FFDF at G
+ at HWI-M01378:140129:000000000-A7785:1:1118:8691:1931 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+FGGGCGGFGDFGDGGFFGGGFCFGFGGFAFEGGFDC=2F8==FDGFGFFGGEGFE:;:CBCFBFEF?GFFCGGF;GGGFBGGCCGEGGGGGGGFABEFFCFECGCEEGGGGGGGFFDGFFGGFGGFFGGGGGGGGGGGGGGGGGGGGGGGGGGFFGFCFGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1119:11518:19811 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAAAATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+4DFGGDFD=@3=EDFGGFF8D+,6 at FGFG==?D,+6,=FFFE<@@C;51EFFG7<@FEEF?CGFFF;>:9DF>B at CGF@@@6DD3*5+C at ++6+=?CEEGGEGGDA8BFGFFEC,,F??8, at FC=<,DDFGCFFFA>,GFEECGGGFFF9F?C?9,EGGFEGGFGCCCCF,8GFCGFEGFFEGFFGF7CF8E<CCFFGGGGFE@<9 at FEF<DGGGGG
diff --git a/clipper/t/out/join/test-nov-a.out b/clipper/t/out/join/test-nov-a.out
new file mode 100644
index 0000000..84527ed
--- /dev/null
+++ b/clipper/t/out/join/test-nov-a.out
@@ -0,0 +1,5 @@
+Total reads: 100
+Total joined: 9
+Average join len: 66.56
+Stdev join len: 31.94
+Version: 1.01.759
diff --git a/clipper/t/out/join/test-nov-b.join b/clipper/t/out/join/test-nov-b.join
new file mode 100644
index 0000000..61f64df
--- /dev/null
+++ b/clipper/t/out/join/test-nov-b.join
@@ -0,0 +1,36 @@
+ at HWI-M01378:140129:000000000-A7785:1:1115:20594:2152 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTGCCAGGGCAGAGTCACGATTACC
++
+:FFGGG8<FEFFGGGGF,EFG9FEFGGGGD77FGGGGCFFGGGGFGGGGGCCFGCEGFFEFGF?FFFGFFFFGDGCFF,?EEFGGGGGCGFGEFG<EEFGGGGGGEEFF9A, at FEGGGGC7DGEGGDB7C<:,3,>F, at FGCFEFGG7<B6>B:5>,3D at EDE=AFGGCADFEFB9CFAD at G>$<==CEF<@=5$D835CCCCA at 81DCF,E6,EEG
+ at HWI-M01378:140129:000000000-A7785:1:1115:21004:5310 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GFGGGGGGGGGGGGGGFGGGGGFGGGGGDGGGGGFGGGGGGGGGGGFGGGGGGFGGGGGEGCE?FGGGCFGGGGGGGGGFCE9FGDFGGGCEGGGGGGFEFFCFG+AFGGCEFE1CFEGGG6CGFGC:FGFFGFGGGGE>ECC0FCCCGFGGFGGGGGGGFG at FEDGF=CGFFGFGGGGGGGGGGFFFDEBGEGGFGGGGGDFFFGFFDACDGEEFG
+ at HWI-M01378:140129:000000000-A7785:1:1115:10327:25119 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCCTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTCCCAGGGCAGAGTCACCATTACC
++
+GFGGGGGGGGGGGGGFGGGGGG,CFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEFGFGFGGGFGGGGGGGGGGGGGGGGFDGGFFGFFGFGGGGGGGGFFGGCCEEGGGGG+66@@FC<+:FEGFFEDFG7DFGGGFF4F5B?>FDFDGGEDDAACEEGFFG?GGGGGFGGFGGFFEDCEGGFGGGGGGDFD=,GGGGFGFCFGFFGG
+ at HWI-M01378:140129:000000000-A7785:1:1116:26580:20568 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATGCACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+F at FFGGGGGGGGGGGGGGGGGGGGGGGGGGFFEFGGGFGGGFGFGGGGGGGEGGFGGGGGGG<FFFGGGGGGFGGGFGGGFFGGGGGGGGGGFGGGGFEFDG,9AECEGCFGGGEGGGGEEFFGFGCFEF;@FFFGFFBGFFFDDBCFF=FFD87C>GGAF<5FCFGC<:CFCC6?GGFAFDFE8GGFFFGGGGDGGFGFFGFFFCDGGFDGGGFGG
+ at HWI-M01378:140129:000000000-A7785:1:1117:15050:1908 1:N:0: TATAGCACGC
+TCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCAGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGGGFGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDFFGGGGGGGGGGGGGGGGGGGGGFGGGDGGGGFGGGGGGGGGGFGGGGGGGEGDGE at FGGGGGGGGGGGGGGGGGGGFCFCFGFDCFFGGGFGGFGCEGFDGGGGFGGGFGGGGFGGGGGGG=FFGGGGGEFGGGGGGFFGGGGGGGGGCFGGG
+ at HWI-M01378:140129:000000000-A7785:1:1117:15528:1981 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGFGGFFFGGFCFGGGDF at CEGGGG@FGGGDCFGGGFDDDAFGGGCEGGG8FFFC,EFFFFAF9FGGFGGGGD<5CDFA4FF at FGGGGC9ADFGDGGDGGGGE9ACEFCG+8CGG7+FECEGDEGCE@FFFCE6DD;>ECF9EFGGCEFGD?2FEFCFC?CEF?@@AF=C97A9GGGD==1DA at 6,@,6,86D8F at 37,,,F93DE,@,GFF8
+ at HWI-M01378:140129:000000000-A7785:1:1118:9968:1647 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGGGGATGGGATGGATCAACGATGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+G at FDFF@FFGGFGGGFGGGGGG at FEFGDFFFGGGDCFFGFFEFEGGGCCGGGED@<F@?5?FGGGGGGGGFGG?@8=FGGG9EE at EGGGGGGCBF9F,AFFGEE;ACAFFEEGE@=:@B at 7DE3>FGDGGFEDCFG=?GG6;$7>C(31DF8FC9<7F859$FCC<FFDFFCGGFDC==C=?2,,6,D37,8@=DCD8+D9,A=ADFADAFE=D>F8
+ at HWI-M01378:140129:000000000-A7785:1:1118:8691:1931 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGFCFGFFGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGFGGFFGDFFGGGGGGGEECGCEFCFFEBAFGGGGGGGEGCCGGBFGGG;FGGCFFG?FEFBFCBC:;:EFGEGGFFGFGDF==8F2=CDFGGEFAFGGFGFCFGGGFFGGDGFDGFGGCGGGF
+ at HWI-M01378:140129:000000000-A7785:1:1119:11518:19811 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATTTTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGD<FEF at 9<@EFGGGGFFCC<E8FC7FGFFGEFFGEFGCFG8,FCCCCGFGGEFGGE,9?C?F9FFFGGGCEEFG,>AFFFCGFDD,<=CF@,8??F,,CEFFGFB8ADGGEGGEEC?=+6++ at C+5*3DD6@@@FGC at B>FD9:>;FFFGC?FEEF@<7GFFE15;C@@<EFFF=,6+,D?==GFGF at 6,+D8FFGGFDE=3@=DFDGGFD4
diff --git a/clipper/t/out/join/test-nov-b.out b/clipper/t/out/join/test-nov-b.out
new file mode 100644
index 0000000..84527ed
--- /dev/null
+++ b/clipper/t/out/join/test-nov-b.out
@@ -0,0 +1,5 @@
+Total reads: 100
+Total joined: 9
+Average join len: 66.56
+Stdev join len: 31.94
+Version: 1.01.759
diff --git a/clipper/t/out/join/test-ov-a.join b/clipper/t/out/join/test-ov-a.join
new file mode 100644
index 0000000..1d83f8e
--- /dev/null
+++ b/clipper/t/out/join/test-ov-a.join
@@ -0,0 +1,372 @@
+ at HWI-M01378:140129:000000000-A7785:1:1112:20058:10262 3:N:0: TATAGCACGC
+GGAAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGTCAGCGTTGGTCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GF8EG?>CE8?G>FFGGGD8FEDDGGGGEGFCD:FFEECGF at 9FECDACFF:;%5:@CGGFCDGFCE at ECGC8AGFFGCGGGGGGGGFCF@GGGFF2GFEGGEFC?7GFD:GGGGGGGGGGGGFFCGGGGGFFGFGGGGGGGGFGGFGGGGGGGGGGGGGGFDGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1112:27324:10852 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGGFGGFGGGGFGGGGGFFGGGGGFGGGGGGEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGEGGGGGGGGGEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1112:13807:10870 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCGCCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGFGFGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1112:12421:11010 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1112:7453:12346 3:N:0: TATAGCACGC
+GTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGGGGFGFFFDEGGGGGGGGGGGGGGGGGGGGGGGGGGFFGFGGGGGGGGGGGGGGGGGGGGGFGGGGGGGEGGGGGGGGGGGGGGGGEGGEGFEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1112:24376:13941 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGFGFEGFGFFGGDEGGFGGGFFFGFGFGGGGGGGGGGFFGFEFFFGGGGFGCGGGGGGGGGGFEDFGFGGGGGGFFFFFFGGGGGGGGGGFBGGGGGGGGGGFGGGGGGGGGGGFGGGGFGGGGGGGGGDGGGGGGGGGFGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGF6GGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1112:10620:14798 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+CEGGGFGA@=E:@DDFF+EA:=EFEGGGDFGGC7FCE8CGGEGGFCFGGGGFF:5=@CEGFCGF at GFAAFGCDA4FCGCDGFGFGGFFGGGGGEFGGGGFEGEGGFEGGEFFFEFFGGFGGGFE9<FFC at DDEBE?9<GFFAD<AE8GGGFAFFGE<F?C9F?FFCGEFDF at F<FGF?AF=EFECGGGGGFFAFCGFGGGFFF at EEEFFFFCFFGGG
+ at HWI-M01378:140129:000000000-A7785:1:1112:26422:14876 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGFGGGFGGGGGGFGGFGGGGGFGGGGGFGGFFEFFFFGGGCFGFGFFGDDAFGGGEFGDGGGGGGFFFCGEFEGFGCFFBF=<EEFFFFFFGGGGGGGGGGF,<FCGGE=GGGGGGGGFGGGGGGGGFGEAFEGDGGGGGGCEGGGGEFGFE at FGFCGGGFFCC@GFAFGFCF<CGGGFFFCFGF at D
+ at HWI-M01378:140129:000000000-A7785:1:1112:17229:16419 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCCTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGFFGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGFGGGGGGGGGGGGGGGGGFGGGGFGGGGGGGGGGGFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1112:9440:21170 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCTAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGFGGGGGGGGGGGGFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGFDGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1112:13154:23703 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGF=93EDEA5AEACE=DFCFGGFGF?GFDFGGGGFFF<@GGFCEFFFEGGGGGGECGFFGFGFGGGGGGG=GGGGGGGGFFGGGGGGGGGEGGGGGGGGEGGF9GGGGCCGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGFGGGGGGGFGGGGGGGGGGGGGGGGGGFGGGGGGGGFGGGFGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1113:9219:5995 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAGGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGF<=DCDFDAFFFFFDGFFGFCGGGGGC:GGGGGGGGGGGGGFFGGCFGGGGGGGFGGGGFFEGFFGDGGGF>GGGGGGGGGGGFFGGGGGGGGEGGGGF=GGF9GGGGGFAFDGF at GGGGGGGGGGGGGGFGGG>GGGGGGGECGGGGGGGGGGGGGGGEGGGGGGGGGGGGFFGGGGGGGGGGGGGGGFFFGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1113:9754:8982 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGGATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGDFGGGGGGGGFGGGGGGGGGGGFAGFD,FGGGGGGGGGGGFGGGGGGGGGGGGGGFFFGFGGGFGFFGGGGGGGFGGGGGGFGGGGGGGGGGGGGGGGFCGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGFGGGGGGGGFGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1113:7145:11813 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGCCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGCGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1113:14234:15031 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGGGGGGGGGFFGGFFFGDGGGGGFGGGGGGGGGGGGGFGGGGGFFGGGGFGGGGGGGGGGGGGFGGFGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGFGGGGGGGGGGGGGGGGGGFGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1113:18729:16203 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGGGGGGFFDGFGFGGGGGGFGGGGGGGGGGGGGGGGGGGGFGGGGGGEGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGEGGFFFDF at GGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1113:3306:19532 3:N:0: TATAGTACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGGTCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GCA5EE+FGFEGGCFEC?GG;GGFF4FFFE@@C0GF5GFFFEGGGGGFCCFECDGE8EFD8DGGEC?FF6GGGGGGGGGGFGGFGGGGFF:EEECD+GGGGGGGGGGGBF?9GGGGGGFGFCGF9GGGGGGGF?CGFFAFE,GGGGGGGGGFF<GFFCGGFE?GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGF at GGGGGGGF:
+ at HWI-M01378:140129:000000000-A7785:1:1113:14732:20813 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGGGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGFFGGGGGGGGGFGGGGGGFGGGFGGGGGGGGGGGGGGGGGGGGFGGGGGGGGFGGGGGGGGGGCFGGFFGGFFFFGGFFGGFGGGEEGFFEGGGGGGGGGE<GGGGGGGGGGGGGGGGGGGGGGGG>GGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGFCGEGGGGGGGGGGFGGGGGGGFGGG
+ at HWI-M01378:140129:000000000-A7785:1:1114:23540:7106 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGGATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGCGGGEGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1114:23450:10317 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAAGATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCGGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GFGFB?DFGGGGGGGGGFGGFCFCA8FFGGE;>==FGGGGGGFGC?GFDGF at F<CCGFEE=7CGFE:GD?CCGFDGFFEFFGFGGGGGEEECGGE8=FC/7FEBFGDGGEGFFFFCGGGFGGFDCEEEB=GGGGGFGGGEF<B=<CGFGF@<FAFEF9GF at F=FEGCGGGGGEFDCGEFCDFFF=CF at GGGGGFFEFGGGGGGGFCFFFGGGGGGGE
+ at HWI-M01378:140129:000000000-A7785:1:1114:14583:14170 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGFFGGGGGCGFGDFFGGGGGGFGGGF=EGGFGGGDGDCFFGGGGGGFCEFEDFGEDGGGGCGGECEFDGGGGGGGGGFGGGGGG=FEGGGGGEGGGGGGGGGGGGGGGGGGGGGGGEFGGGGGFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGFGFCGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1114:7126:18810 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTACCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGA
++
+EGGGDGFGGAFGGGGGGGGFDFCFFFEFGGGGGGGGGGGFGGGGFGFFGGGGFGGGGGGGGGGGGGFGFGGGGGGGGGGGGGGGGGGGGGGGECFGGEEGGGGGFGGG8GGGGGGGFGGGGGGGGGGGGFGGGGGFCGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGFG
+ at HWI-M01378:140129:000000000-A7785:1:1114:9907:23323 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGTCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGGGGCFGGGCCEGGFGGFGGGFGFFDFGGGGGGGGGGGFFFGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGFGFGGGGGGGGGGGGG>FGGGGGGGGGGGGGGF>GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1115:20594:2152 3:N:0: TATAGCACGC
+GGTAATCGTGACTCTGCCCTGGCACTTCTGTGAGTATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GEE,6E,FCD18 at ACCCC538D$5=@<FEC==<$>G at DAFC9BFEFDACGGFA=EDE at D3,>5:B>6B<7GGFEFCGF@,F>,3,:<C7BDGGEGD7CGGGGEF@,A9FFEEGGGGGGFEE<GFEGFGCGGGGGFEE?,FFCGDGFFFFGFFF?FGFEFFGECGFCCGGGGGFGGGGFFCGGGGF77DGGGGFEF9GFE,FGGGGFFEF<8GGGFF:
+ at HWI-M01378:140129:000000000-A7785:1:1115:22303:4248 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGFFFCGFGGGGGGFFFEFFGFDGGFGGFFFGDGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGFEGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1115:21004:5310 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GFEEGDCADFFGFFFDGGGGGFGGEGBEDFFFGGGGGGGGGGFGFFGC=FGDEF at GFGGGGGGGFGGFGCCCF0CCE>EGGGGFGFFGF:CGFGC6GGGEFC1EFECGGFA+GFCFFEFGGGGGGECGGGFDGF9ECFGGGGGGGGGFCGGGF?ECGEGGGGGFGGGGGGFGGGGGGGGGGGFGGGGGDGGGGGFGGGGGFGGGGGGGGGGGGGGFG
+ at HWI-M01378:140129:000000000-A7785:1:1115:3643:7099 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GFGGGGGGFFFGGGGFGGGGFCGCD>GGG at EFFA5GGGGGGGFGGGGGFGGEFFGGEFEGGGGGGFEEFC>GGGGFEEDFGFFFFEGGGDEEGEGGGDGEGFCGGGGGGGGGGCFDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGF<<GGGGGGGGGGGGGGGGGGGGGGGGGGGFC@,AGGGGGGGGGGDGGGGGGGDFEGFFEF
+ at HWI-M01378:140129:000000000-A7785:1:1115:19291:10393 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGTCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGGF=GG?FGGGGGGGGFGFG?<F<AGGFFGGF=FFGGFGGFFGFGFECEGEFEEEFGGGEFFDAFGAGFFGEGFFGGGGGGFEGGGGGGGGGCCB;F5FFE>EEAFFAAEEGGFFFGFFFFGGFGGEFEFAGFFDDDFCE>?FDGGGGGGGGF<FFGFGEGGGGGGFGGGGFGFGGFGGFGGGGGFFGGGFF9GGGGFGGGFFF<DGFFFGG
+ at HWI-M01378:140129:000000000-A7785:1:1115:26788:11790 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTCTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCAGAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCAGGGAG
++
+FFC>F>?F at E9@:;FDEEDFFGGFFGFDFG:?E?GGGGGFC>$CCADFC9=CGC:EEG=FGFCC:7FGGGFGGGGGGF?FAGFF<GGGFFBF at +FD+BC+GFEGGGFF<C,CGGFFFF,FA,GGDGGGGGGEB,9GFF9FF<GGGGGGGGGGFEFFE,GGGF at GGGGCGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGF@GGGFF<GGGCGGGF@
+ at HWI-M01378:140129:000000000-A7785:1:1115:22293:14738 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGFGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGEFGGGGGGGGGGGGGGGFGFCGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGFGGGGGGGGGGGGGGGGGGGGGGGEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1115:3156:15238 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGGGGGFGGGGGGGGGFGGGGGGFGGGGGGGGGGGGFFFFGCFGFGGGGGGGGGGFGGGGEFGGGGGGGGGGGFFFGGFFGGFGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGG?GGGGG?FGGGGGGGGGGGGGGGGF9GGGGGGGGGGGGGGGGGGFCGGGGGGGGD at GGGGGGGGGGGGGGGGGFF9GGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1115:27886:16559 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGED$BFFGGEGFFGGGGDGFGGCFFGGEF>CF at FGGGGGFGGFFGFGFGGGGEEGGGGGFGFGGGFFFGGGGGGGGGGGGGFFGGGGGGGGGGGGGGGGGFCGGGGGGGGGGGGGFFAGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1115:22345:18846 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGA
++
+GGGGGGGGGGGGGFBFGGF>GGCFDFFGGGGGGGGGGGGGGGFGGFGGFFGEDGCFFDFGEGGGGGGGGGGFGFFGEGGGGGGFGFGEGGGGGGGGGGGGGGCGGGFGGGGFGGGGGGFGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFC,GGGGGGGGGGGGGGGCGGGGGGGGF<GGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1115:13309:19306 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGCGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGGGGGGGGGGGGGGGGGFFGFGGGGGFGGGGGGGGGGGGGFGFEGGFGGGGGGGGEGGGGEFF at FFFDGFGGGGFGGGGGGGGGGGGGGGGGGGGGF7GGGDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGFGGGGGGGGGGGFGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1115:24515:20126 3:N:0: TATAGCACGC
+GTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGFGGFFGGGGGGDGGGGGGGFFGGGFFGGGFFFGGGGGGGGGGGGGGGGGGGGFGGGGGGEGGFEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGCGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1115:15717:20410 3:N:0: TATAGCACGC
+GCTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGCATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGA
++
+G/GFGGFGGCGGGGGGGGGGGGGGGGFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGFGGFFGGGGGFGGGGGGGGGGGGGGGDGGGFGGGGGGGGGGGGDGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGC@?GGGGGGGGGGFF9FGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1115:20074:21744 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCTCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GCEFC9FFD<ECA;FFEGGE at F/AE8DFGD:9:@FD=EGGFGFFCCGCB9::=??5DFDDEG>FDEABFGGGGGFCFDG>GGGFGGFCFGGGGEG at FCGEC77FCGGGF?EFA>=:CFBABEFDGF?EGFGGEAFCGGGE at GGGGFGFEFEGFF<GGFGDFDA=B+F:GGGGGGFGGFDGFC at FEC@CEGGFC:6E at ECFEC6@,ACGGFGDFGF<D
+ at HWI-M01378:140129:000000000-A7785:1:1115:10327:25119 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGGACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAGGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGFFGFCFGFGGGG,=DFDGGGGGGFGGECDEFFGGFGGFGGGGG?GFFGEECAADDEGGDFDF>?B5F4FFGGGFD7GFDEFFGEF:+<CF@@66+GGGGGEECCGGFFGGGGGGGGFGFFGFFGGDFGGGGGGGGGGGGGGGGFGGGFGFGFEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFC,GGGGGGFGGGGGGGGGGGGGFG
+ at HWI-M01378:140129:000000000-A7785:1:1116:21394:3317 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GFGFABFFFC?CEE>BFFGGGGG56FDFGF=GGGCFGGCGFFGFFFGGGFGECAFDEFDGECCGGGGGEGC3FF;FCC?GGGFCFGFDGFEDGC<8B?FCEGGGGGFGGGGGGGGGGEDGGGGGFFFFFGGGGGGFFFGGGGGGGGGGGGGGGGGGGGGGGGGGEGGGGGGFFFEFFGGGGFGGEGGGGGGGGGGGGGGGGGGGGGFFGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1116:21781:3983 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCGCCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGGFGGGGGGFGGGGGGGGGGGGGFGFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGFGGFGEGGGGGGGGGGGGGGGGGGGGGGGECGGGGGGGGGGGGGGGGGEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1116:19367:5061 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGFGGFGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGF>EGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1116:22704:5419 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGFGGGFGGGG<FFGGGGGGG?GGFGFCGFFGGGGFBGGFCGGGGGGGGGGGGGGGEGGGGGGGFFCFGGGGGGFGGGGGGGGF>GFGGGEDEFFGFGGEEEFEEFGGGFGGGGGGGGGGFGGEFFFGGGGD<GFFGGGGGGGAGDGGGGFGGFGFGGGFFGGGGGGGGGGGGGGGGGGGCGGFGGGGGGFFFFGGGGGGFFGGFGGGGFGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1116:3314:6852 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGTCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCGTAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGFGDFFGC>8=EGGEFFGGGGFFCCFEFDFGDCCDFBGFGFFDFGFFEGFGGEFCFGFGECFC;BC:FGGFF1<GGGGFF>FC7GGGGFC at 6D=CGGGC at EFFF<EGGGGFCE9GGEEGECGFGGGGGGGF<B9GGGGGGF?CFFGGGGGGGFFFGEFEDFFFCGEGGFEC<FDFEGGGFGF at GEGGGF@9GFGGFEEGFC at E<9DFDC8F8FGG
+ at HWI-M01378:140129:000000000-A7785:1:1116:12883:11398 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGFGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFEGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1116:4257:14374 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGFFFGGFFGGGGGFFFGGGGGF at FGGFGGFGFEFGGGGGGGGFEGCGGFCDGFFGGGGFECGGGFFFGFCFGFGFGFCGGGGGGGCCGGGGGGFGG?GGG:>GGGGGGFCGGGGFGGGFEFGGFFGGGGGF<GGGGGGGGGGGGGGGGGGGGFGGFFGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1116:21249:16016 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGTCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGGGGGGGGGGGFFFFFGGGGGGFEEFGGGGGGGGGGGFGGFGGGGGGFFFGGFGGEGGGGGGGGGGGGGFGFGGGFGFAGFCCEGGGGGGFGEEE at CCF:GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1116:26580:20568 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGCATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGFGGGDFGGDCFFFGFFGFGGDGGGGFFFGG8EFDFAFGG?6CCFC:<CGFCF5<FAGG>C78DFF=FFCBDDFFFGBFFGFFF@;FEFCGFGFFEEGGGGEGGGFCGECEA9,GDFEFGGGGFGGGGGGGGGGFFGGGFGGGFGGGGGGFFF<GGGGGGGFGGEGGGGGGGFGFGGGFGGGFEFFGGGGGGGGGGGGGGGGGGGGGGGGGGFF at F
+ at HWI-M01378:140129:000000000-A7785:1:1117:15050:1908 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCTGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGA
++
+GGGFCGGGGGGGGGFFGGGGGGFEGGGGGFF=GGGGGGGFGGGGFGGGFGGGGDFGECGFGGFGGGFFCDFGFCFCFGGGGGGGGGGGGGGGGGGGF at EGDGEGGGGGGGFGGGGGGGGGGFGGGGDGGGFGGGGGGGGGGGGGGGGGGGGGFFDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGFGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1117:15528:1981 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+8FFG,@,ED39F,,,73 at F8D68,6,@,6 at AD1==DGGG9A79C=FA@@?FEC?CFCFEF2?DGFECGGFE9FCE>;DD6ECFFF at ECGEDGECEF+7GGC8+GCFECA9EGGGGDGGDGFDA9CGGGGF@FF4AFDC5<DGGGGFGGF9FAFFFFE,CFFF8GGGECGGGFADDDFGGGFCDGGGF at GGGGEC@FDGGGFCFGGFFFGGFGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1117:10756:3719 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGGGGGGGGGFGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGFGGFFFGGGGCFGGGGGGFGCGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1117:24534:4247 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTAGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GG.GC;DGGGEGFD::FGGGGGCGGFGGFGGGGFEGGGG=GGGC9CGGFGGGGGGGGGGCFFGGGGECFGECGG>GGGGGGGFFFGGGGFGGGGGGGGGGEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGFDGGGGGGGGGGGGFGGGGGGGGGGGGFEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1117:13251:7519 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+DFGGFCF8<FEGFFFGGFDFDFFGEFGDGGFFGFFGGGFGGFFGCFG>9CEC7:<@E at E:@F at BB?6AC?CFFDFFFEFEBGF>CA7CCFC at GGEFFCBEFGGFFGGFFAE?AGGGFFGGFFEBEFGDECGFGGGFGFGGGFFGGFGGGGFFGFGFCEGGFGGGGGGGGGFDFGFDEAE?GGGF8C at EGGGFDFFCCGEFGGEEFFFDGGFCGCFE@
+ at HWI-M01378:140129:000000000-A7785:1:1117:14612:8918 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGFFGGGGGGGFFGGGGGGGGGDGFFGFFGGFFCGGFCAD at GGGGGGFEFFGGGGGEGGGGGGGGGGGGGGFFFGGGGGGGGGGGGGGGGGGGGGGGGGEGGGGGGGGGGGGGGGFGF@GGGGGGGGGGGE9GGGGGGGGGGGGGGGGGGGGGGGGGGGCGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1117:2770:10016 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGTCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+FGGGGGFFGGDGGEFGGGGGGGDDGGGGFGFFGGGGGGGFGGFGGFGGFGGGFGFCEBGGGGGGGGGGGFGGGFFGGGGFGGFFGFGGGGGGGGGGGGGGDGDGGGGGGGGGFAFGG?GGGFGFGGGFGGGGGGGFGGFCGGFD9FGGGGGGGGFGGGGGGGGGGGGGGGGFGGGGGGGDGGGGGGEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1117:7058:13477 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTGCCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGCFGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGEFFFF;GGFEEGGGFGFDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGFGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1117:20535:14960 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGGGGGGGGGGGGGFGGGGGGGDGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1117:12925:16162 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGTCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGA
++
+GGGGGGGGGGGFFEFGGGGGGGFFGCEGGFFFGGGGGGGGGGGGGGGGGGGFC2GGGGFCGFFGFGFGGGFGFGGGGEGGFGGFGGGGGGGGGGGGGGGFGGCGGGFGGGGGGFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGGGGGGFGGGGGGGGGGGGGGGGGFGGFGGFGGGGGGF
+ at HWI-M01378:140129:000000000-A7785:1:1118:9968:1647 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCCCTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+8F>D=EFADAFDA=A,9D+8DCD=@8,73D,6,,2?=C==CDFGGCFFDFF<CCF$958F7<9CF8FD13(C>7$;6GG?=GFCDEFGGDGF>3ED7 at B@:=@EGEEFFACA;EEGFFA,F9FBCGGGGGGE at EE9GGGF=8@?GGFGGGGGGGGF?5?@F<@DEGGGCCGGGEFEFFGFFCDGGGFFFDGFEF at GGGGGGFGGGFGGFF@FFDF at G
+ at HWI-M01378:140129:000000000-A7785:1:1118:9715:1754 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGCCEFGGCFG=8DFGFDGGGGEFGGFGGDFFCFFGGGFGGFDFFGGCGGGGGGGGGGGGGFGGGGFGGGGGGGGGEDGGGGFGGGGGGGGEGGGGGGGGGGGGGDGGGGGGGGGGGGGGGGGGFGGGGGFE<GGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEGGFGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1118:9533:1899 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTAAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+FGGGFGG?GGFGGFFEGFFGFF?CCEE8 at E:$GGGFFGFDGGGGGEGFGFCDGGGEGDGGGDCGGGGGGGGFGFFGFGFGGFFFGDFFGGFGGFGGCGGEC at EGGGGGGGFGFGFGGFGFA,DGGGGGGGGGGGGGGGGGGGGGGFGGFGGGGGFGGGGGGGGFGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1118:8691:1931 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+FGGGCGGFGDFGDGGFFGGGFCFGFGGFAFEGGFDC=2F8==FDGFGFFGGEGFE:;:CBCFBFEF?GFFCGGF;GGGFBGGCCGEGGGGGGGFABEFFCFECGCEEGGGGGGGFFDGFFGGFGGFFGGGGGGGGGGGGGGGGGGGGGGGGGGFFGFCFGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1118:23298:2242 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+ECF=>CCDEGGGDGFFDFFFD7:?EFF=9 at FDGFFDFGGFGG;=GFGGECEEGGGGEE?GFFCGEDGGGGGFGGGGGGGGGGGGGGGGGGGGGEGGGGGGGGGGGGGF<CCGGGGGGGGGFGGGGGGGGGGGF at 9GGGGGGGGGGGGGGGGGGFGGGGGGGGCGGGGEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGF9GGGGFFGGGGGGGFD
+ at HWI-M01378:140129:000000000-A7785:1:1118:23073:6508 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCACAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGFGGGGGGGGGGFFGGGGGGGGGGGGGGGGGGGGGGGFGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGFGFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG>GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1118:21171:9133 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATACTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1118:18189:10068 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGGGGFGGGGGGGGGGGFGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1118:9717:10455 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTACCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFEGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGFGGGGGCGGFGGGGGGGGGGGGGDGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1118:6493:13149 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGAGGGCCTGGCGCACCCAATGCATAGCATAGCTAGCGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCGGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1118:9182:16529 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGDF<EGGGGCFDDFA=?FFFFGGGFCF?FFGG<GGGGGGGGGFGFGGGGGGGGGGGGGGGFGGGF?FFFCGGGGGGGGGGGGGGGGGEGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGFGGGFEGEFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGFG
+ at HWI-M01378:140129:000000000-A7785:1:1118:21261:19014 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGGGGDGGGGGGGGGGGGGGFGGGGGGGGGGGGGGFGGFGGFGGGGGGGFFGGGGGGGGGGGGGGFGFGFFGGGGFGGGGGFFGGGGGGGGGGGGGGGGFFGGGGGGCFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFDGGGGGGGGGGGGGGFGGGGGGGGGGGGGGFEFGGFGGGGFGGGGGGGGGGGGGGGGGGGGFG
+ at HWI-M01378:140129:000000000-A7785:1:1118:17204:20285 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGFFFGGDCFFGFD>FDFGFDDFGGGGGGGFFFCGGGGGGFGGGGGGFGFGFGGGFGCEFFFGGGGGGGFGFFGGGGGGGGGGGGGGGGGGGFCGGGGGGGGGGGGGGFFGGFGGGFGGFFGGGGGGGGGGGGGGFGGGFGGFGGGGGGFGGGGGGGGGFFCGEGDGGGEGGGGGFGFGGGGGGGGGGGFEGGGGGGGGGGGGGGGGGFFGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1118:19019:20700 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGFFGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGCGFFEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFG
+ at HWI-M01378:140129:000000000-A7785:1:1118:24760:20968 3:N:0: AATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGGGGGGGGGGGGGGGGCDGFGFGECFGGGGGDFGFGGCFGFGGFGGDGGGGGFGECGFGGGFGFFFFFFFGGGGGGGGFGGGGEGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGCGGGFCDGFGGFFE1?CCFFEGGGGGGF,GGGGGGGGFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGFG
+ at HWI-M01378:140129:000000000-A7785:1:1118:12797:21177 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGCTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGGFGGGEFGDFGGGGGFFGGEGFGGGGGFGGFGGFGGGGGGGFEFGFGGGGGGGGGGGGGGGGGFGGGGGGFGGGGGGGGGGGGGGGGGGGGGGFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFAFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1119:12200:9232 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCACGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGGGGGGGGGGGGFGGGGGFGGGGGGFFCFFCGGGGGGFGGFFFFGGGGGC:GGGGGDFGGGGGGGGGGFFGFGF+GGFFGFGGGGDGGGGFGGGGGGGGGGGGGGGGGFGFGGG?GGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1119:25522:9543 3:N:0: TATAGCACGC
+GATAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCTGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+D$FCEF>FGGCGFFEADF>9GFGGEFGFFGFFFDGGGGGGGGFGGFEBF at EFGF.GEGGGGGGFFGFFFGGGGGGGGEGGGGGFGGGGGFFGGGGGGGF>GGGGGGGGFCFGGGGGGGGGGGGGGGGGGGGGGGGEGGGGGCGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1119:25841:13619 3:N:0: TATAGCACGC
+GTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+>FFFGGG=BDFGA at B@F8?DDCGGGFGGGGGGECFGGFGGGGFGGFGGGGGGGGGGGGFDFCGFFGGGDGGGGGGGGGGGGGGGGFDGGGGGGGFGGGE:GCFGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGCGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGE
+ at HWI-M01378:140129:000000000-A7785:1:1119:20076:14454 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1119:5209:16156 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGFGGGGGGGFGGGGGGGGGGGGFGGGGGGGGGGFGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG?GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGFGGGGGGGFE<GGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1119:21229:17686 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGFECEFGGFGGFFFGGGGGGGGGGGFGFFFCCD4 at FGCFG4CGGGGGCGGFCGGEGFGGFGFFGGGGGGGGGGGGGGGGGEFGGGGGGDGGGGGGGGGGGGGGGGF?A59GGGGGGGGGGF9CGGGGGGGF@<GGGGGGGGGGGGGGGGGFFGGGGGGGGDGGGGDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGF<GGGFF8GGGGGGGFD
+ at HWI-M01378:140129:000000000-A7785:1:1119:6516:18986 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGGGGGGGGFGGGGGGGGGFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1119:11518:19811 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAAAATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+4DFGGDFD=@3=EDFGGFF8D+,6 at FGFG==?D,+6,=FFFE<@@C;51EFFG7<@FEEF?CGFFF;>:9DF>B at CGF@@@6DD3*5+C at ++6+=?CEEGGEGGDA8BFGFFEC,,F??8, at FC=<,DDFGCFFFA>,GFEECGGGFFF9F?C?9,EGGFEGGFGCCCCF,8GFCGFEGFFEGFFGF7CF8E<CCFFGGGGFE@<9 at FEF<DGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:2101:10492:6392 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTCGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGA
++
+FFFFGGFGGFGFGG9AFF8DGGGGGGGEGFGGF@=<GGGGGGFB9EGCFDDEDCFCFEE:AFDGGGGGDGGGGGGGGGGG>GGGGGGGGGGGGGGGE at EFEC7GGGFFGGGGGFEDGGFFGGFGGGGGGGECGGGGFEGGGFFGFGGGGGGFFGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFF9GGGGGGGGFG
+ at HWI-M01378:140129:000000000-A7785:1:2101:21110:9989 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GFGFDGGGGGFFF?FFGGGFFGGFGGGFFGFFCFGFGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGFFECDFGGFGGGGGGGGGGG>EGGGGGGGGGGGGGGGGGGCGGGGGGGGFGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:2101:25521:14328 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGTTGGACCTGGGAG
++
+GGGBEFGGGD;DDFFGGGGGGGFGGGGGGGGGGGGGGFGGGGGGGFGGGGGFGFCDFGFGGGGGGGFFCF9GGGFFADGFGGGGGGGGGGGGGGGGDGGGGGCGCF9FFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGFFEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:2101:6147:17939 3:N:0: TATAGTACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+EC@>CDGADDEGCFF8DFFGCGGG@=CFEF at 9AFCFGGDGGGBFG?;CC071=<?6DGGGGGGE43?FF;5@>A;FFGB4CFFFFE:7GGGGGGGGGEGGG>GFGGFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFFGFGFCGGGGGGGFFFGGFGGGGGGGGGGFFGCGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:2101:7510:19246 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGFD9DFGGEGEF?AGGGGGGFC;4F@?FFA at CDF:FCDGCAGGGGGE?FE:=DD+FCGGGFFC>GGGFGGGFDGGGG5GFGFGGGGFC at GGGGGGGGDGGGGGFFC57,9GGGGGGGFEEF<CGGGGGGFGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGCGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:2101:13482:19637 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACCGCACAAGCTGGACCTGGGAG
++
+GGGG=DEFGEGGGFGGGGGGGDEGG;EFFFAFFGGGGGGGGGFGG=GECFF?<DFGGFGGCGDGGGGGGCD=DGGGGCBFFCFGGFF at EFGGFGGGGGGGGE<EFFBGGGGGGGGGG?GGGFGGGGGGGGGGGFGGGGGGGGGGFGGFAFCFGGGGGGGGGGGGGFEFFF,GGGGGGGFGGGGGGGGEGGGGGGGGGGGGGGGGGGGGGGGGGGGFE
+ at HWI-M01378:140129:000000000-A7785:1:2101:9133:23948 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGAGCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+FGGF>E.9B?>DFGFFCCECD:@CFCGGGFGGFCCEFGGDFFFGFAGFFCFFC?CDDAEG5:%B'6F>=27?GFFC;FDFEEFGGGGECGGF at GGFGGGECGGFCGFGGGFGGGGFBAAFE@FGGGGCFGFF=FBFAGGGGGFGF>8 at GGFDGF<FGGFAF<FDGEGGGGF=FECFEEGGGEGGGGGGGGGGFGGGGGGGGGGGGGGFGGE<GFGGG
+ at HWI-M01378:140129:000000000-A7785:1:2102:23669:4942 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGFGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGEGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGFGGGGGGDGGGGGGGGGGGFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:2102:18023:6868 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGAGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGFEFGEBEGGFGEGGGGGGGGGFGGFGGGGGGGGGGGGGGFFFGGGGGGGGGGGGFFGFGGG>GGGGGGGGGGFGF=GGFFGGGGGGGGGGGGGGGGGGGGGGGGFGGGGCGFGFFGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGF at GGGGGGGGGGGGGGGGGGF,GGGGGGGGGGGGGGGGGGGGFGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:2102:20537:10795 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGGGGGGGFGFFGGGGGGGGGGGGGGGGGGGGGGFGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFCCGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:2102:11278:14783 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGTCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:2102:15247:16145 3:N:0: TATAGCACGC
+GGTAATGGTGACTCTGCCCTGGAACTTCTGTGAATATTTTGTGTTACCATTGCCAGCGTTGATCCATCCCATCCACTCAAGCCTTTGTCCGGGGGCCTGGCGCACCCAATGCATAGCATAGCTAGTGAAGGTGTATCCAGAAGCCTTGCAGGAAACCTTCACTGAGGCCCCAGGCTTCTTCACCTCAGCCCCAGACTGCACAAGCTGGACCTGGGAG
++
+GGGGFCFGG?,6FFFEGGGGDFFGGGGFFG;@=?FG=EFGFGGFEFFF=FGGDGE?DFGGGGGGGGGFG>GGGGFGGGGFGGGGGGEGCFFGFGF?CGGGGGGGGGGGGFGDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGD
diff --git a/clipper/t/out/join/test-ov-a.out b/clipper/t/out/join/test-ov-a.out
new file mode 100644
index 0000000..97cd1a7
--- /dev/null
+++ b/clipper/t/out/join/test-ov-a.out
@@ -0,0 +1,5 @@
+Total reads: 100
+Total joined: 93
+Average join len: 137.66
+Stdev join len: 36.10
+Version: 1.01.759
diff --git a/clipper/t/out/join/test-ov-b.join b/clipper/t/out/join/test-ov-b.join
new file mode 100644
index 0000000..7087898
--- /dev/null
+++ b/clipper/t/out/join/test-ov-b.join
@@ -0,0 +1,372 @@
+ at HWI-M01378:140129:000000000-A7785:1:1112:20058:10262 1:N:0: TATAGCACGC
+CTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGACCAACGCTGACAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTTCC
++
+GGGGG:DFG7?CFEGGEFG2FFGGG at FCFGGGGGGGGCGFFGA8CGCE@ECFGDCFGGC@:5%;:FFCADCEF9 at FGCEEFF:DCFGEGGGGDDEF8DGGGFF>G?8EC>?GE8FG
+ at HWI-M01378:140129:000000000-A7785:1:1112:27324:10852 1:N:0: TATAGCACGC
+AAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEGGGGGGGGGEGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEGGGGGGFGGGGGFFGGGGGFGGGGFGGFGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1112:13807:10870 1:N:0: TATAGCACGC
+AAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGCGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGFGFGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1112:12421:11010 1:N:0: TATAGCACGC
+TGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1112:7453:12346 1:N:0: TATAGCACGC
+TGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTAC
++
+GGGGGGGGGGGGGEFGEGGEGGGGGGGGGGGGGGGGEGGGGGGGFGGGGGGGGGGGGGGGGGGGGGFGFFGGGGGGGGGGGGGGGGGGGGGGGGGGEDFFFGFGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1112:24376:13941 1:N:0: TATAGCACGC
+ATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+FGGGGGGGGGGGFGGGGGGGGGGBFGGGGGGGGGGFFFFFFGGGGGGFGFDEFGGGGGGGGGGCGFGGGGFFFEFGFFGGGGGGGGGGFGFGFFFGGGFGGEDGGFFGFGEFGFGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1112:10620:14798 1:N:0: TATAGCACGC
+TGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GEFGGEGEFGGGGFEGGGGGFFGGFGFGDCGCF4ADCGFAAFG at FGCFGEC@=5:FFGGGGFCFGGEGGC8ECF7CGGFDGGGEFE=:AE+FFDD@:E=@AGFGGGEC
+ at HWI-M01378:140129:000000000-A7785:1:1112:26422:14876 1:N:0: TATAGCACGC
+ATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+BFFCGFGEFEGCFFFGGGGGGDGFEGGGFADDGFFGFGFCGGGFFFFEFFGGFGGGGGFGGGGGFGGFGGGGGGFGGGFGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1112:17229:16419 1:N:0: TATAGCACGC
+TGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFFGGGGGGGGGGGFGGGGFGGGGGGGGGGGGGGGGGFGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGFFGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1112:9440:21170 1:N:0: TATAGCACGC
+TGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGDFGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGGGGGGGGGGGFGG
+ at HWI-M01378:140129:000000000-A7785:1:1112:13154:23703 1:N:0: TATAGCACGC
+GCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGEGGGGGGGGGFFGGGGGGGG=GGGGGGGFGFGFFGCEGGGGGGEFFFECFGG@<FFFGGGGFDFG?FGFGGFCFD=ECAEA5AEDE39=FGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1113:9219:5995 1:N:0: TATAGCACGC
+TGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCCTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGCEGGGGGGG>GGGFGGGGGGGGGGGGGG at FGDFAFGGGGG9FGG=FGGGGEGGGGGGGGFFGGGGGGGGGGG>FGGGDGFFGEFFGGGGFGGGGGGGFCGGFFGGGGGGGGGGGGG:CGGGGGCFGFFGDFFFFFADFDCD=<FGGG
+ at HWI-M01378:140129:000000000-A7785:1:1113:9754:8982 1:N:0: TATAGCACGC
+ATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATCCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGCFGGGGGGGGGGGGGGGGFGGGGGGFGGGGGGGFFGFGGGFGFFFGGGGGGGGGGGGGGFGGGGGGGGGGGF,DFGAFGGGGGGGGGGGFGGGGGGGGFDGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1113:7145:11813 1:N:0: TATAGCACGC
+TGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGGCAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGCGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1113:14234:15031 1:N:0: TATAGCACGC
+TGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGFGGGGGGGGGGGGGGGGGGFGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGFGGFGGGGGGGGGGGGGFGGGGFFGGGGGFGGGGGGGGGGGGGFGGGGGDGFFFGGFFGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1113:18729:16203 1:N:0: TATAGCACGC
+TGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGG at FDFFFGGEGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGEGGGGGGFGGGGGGGGGGGGGGGGGGGGFGGGGGGFGFGDFFGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1113:3306:19532 1:N:0: TATAGTACGC
+AATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+FCCFGGGGGEFFFG5FG0C@@EFFF4FFGG;GG?CEFCGGEFGF+EE5ACG
+ at HWI-M01378:140129:000000000-A7785:1:1113:14732:20813 1:N:0: TATAGCACGC
+AAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCCCAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGGGG>GGGGGGGGGGGGGGGGGGGGGGGG<EGGGGGGGGGEFFGEEGGGFGGFFGGFFFFGGFFGGFCGGGGGGGGGGFGGGGGGGGFGGGGGGGGGGGGGGGGGGGGFGGGFGGGGGGFGGGGGGGGGFFGG
+ at HWI-M01378:140129:000000000-A7785:1:1114:23540:7106 1:N:0: TATAGCACGC
+CTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATCCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGEGGGCGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1114:23450:10317 1:N:0: TATAGCACGC
+GCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATCTTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+FGEGGDGFBEF7/CF=8EGGCEEEGGGGGFGFFEFFGDFGCC?DG:EFGC7=EEFGCC<F at FGDFG?CGFGGGGGGF==>;EGGFF8ACFCFGGFGGGGGGGGGFD?BFGFG
+ at HWI-M01378:140129:000000000-A7785:1:1114:14583:14170 1:N:0: TATAGCACGC
+TAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGFEGGGGGGGGGGGGGGGGGGGGGGGEGGGGGEF=GGGGGGFGGGGGGGGGDFECEGGCGGGGDEGFDEFECFGGGGGGFFCDGDGGGFGGE=FGGGFGGGGGGFFDGFGCGGGGGFFGG
+ at HWI-M01378:140129:000000000-A7785:1:1114:7126:18810 1:N:0: TATAGCACGC
+ACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGFGGGGGGGGGGGGFGGGGGGG8GGGFGGGGGEEGGFCEGGGGGGGGGGGGGGGGGGGGGGGFGFGGGGGGGGGGGGGFGGGGFFGFGGGGFGGGGGGGGGGGFEFFFCFDFGGGGGGGGFAGGFGDGGGE
+ at HWI-M01378:140129:000000000-A7785:1:1114:9907:23323 1:N:0: TATAGCACGC
+TCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGACAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGG>FGGGGGGGGGGGGGGF>GGGGGGGGGGGGGFGFGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGFFFGGGGGGGGGGGFDFFGFGGGFGGFGGECCGGGFCGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1115:20594:2152 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTGCCAGGGCAGAGTCACGATTACC
++
+:FFGGG8<FEFFGGGGF,EFG9FEFGGGGD77FGGGGCFFGGGGFGGGGGCCFGCEGFFEFGF?FFFGFFFFGDGCFF,?EEFGGGGGCGFGEFG<EEFGGGGGGEEFF9A, at FEGGGGC7DGEGGDB7C<:,3,>F, at FGCFEFGG7<B6>B:5>,3D at EDE=AFGGCADFEFB9CFAD at G>$<==CEF<@=5$D835CCCCA at 81DCF,E6,EEG
+ at HWI-M01378:140129:000000000-A7785:1:1115:22303:4248 1:N:0: TATAGCACGC
+TGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGFGGGGGGGGGGGGGEFGFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGDGFFFGGFGGDFGFFEFFFGGGGGGFGCFFFGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1115:21004:5310 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GFGGGGGGGGGGGGGGFGGGGGFGGGGGDGGGGGFGGGGGGGGGGGFGGGGGGFGGGGGEGCE?FGGGCFGGGGGGGGGFCE9FGDFGGGCEGGGGGGFEFFCFG+AFGGCEFE1CFEGGG6CGFGC:FGFFGFGGGGE>ECC0FCCCGFGGFGGGGGGGFG at FEDGF=CGFFGFGGGGGGGGGGFFFDEBGEGGFGGGGGDFFFGFFDACDGEEFG
+ at HWI-M01378:140129:000000000-A7785:1:1115:3643:7099 1:N:0: TATAGCACGC
+GGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+DGGGEFFFFGFDEEFGGGG>CFEEFGGGGGGEFEGGFFEGGFGGGGGFGGGGGGG5AFFE at GGG>DCGCFGGGGFGGGGFFFGGGGGGFG
+ at HWI-M01378:140129:000000000-A7785:1:1115:19291:10393 1:N:0: TATAGCACGC
+AAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGACAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+?>ECFDDDFFGAFEFEGGFGGFFFFGFFFGGEEAAFFAEE>EFF5F;BCCGGGGGGGGGEFGGGGGGFFGEGFFGAGFADFFEGGGFEEEFEGECEFGFGFFGGFGGFF=FGGFFGGA<F<?GFGFGGGGGGGGF?GG=FGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1115:26788:11790 1:N:0: TATAGCACGC
+GACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAAGACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+FGGG<FFGAF?FGGGGGGFGGGF7:CCFGF=GEE:CGC=9CFDACC$>CFGGGGG?E?:GFDFGFFGGFFDEEDF;:@9E at F?>F>CFF
+ at HWI-M01378:140129:000000000-A7785:1:1115:22293:14738 1:N:0: TATAGCACGC
+CTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGCFGFGGGGGGGGGGGGGGGFEGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGFGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1115:3156:15238 1:N:0: TATAGCACGC
+TGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGGF?GGGGG?GGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGFGGFFGGFFFGGGGGGGGGGGFEGGGGFGGGGGGGGGGFGFCGFFFFGGGGGGGGGGGGFGGGGGGFGGGGGGGGGFGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1115:27886:16559 1:N:0: TATAGCACGC
+TGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGGGGGGAFFGGGGGGGGGGGGGCFGGGGGGGGGGGGGGGGGFFGGGGGGGGGGGGGFFFGGGFGFGGGGGEEGGGGFGFGFFGGFGGGGGF at FC>FEGGFFCGGFGDGGGGFFGEGGFFB$DEGG
+ at HWI-M01378:140129:000000000-A7785:1:1115:22345:18846 1:N:0: TATAGCACGC
+TTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGFGGGCGGGGGGGGGGGGGGEGFGFGGGGGGEGFFGFGGGGGGGGGGEGFDFFCGDEGFFGGFGGFGGGGGGGGGGGGGGGFFDFCGG>FGGFBFGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1115:13309:19306 1:N:0: TATAGCACGC
+CCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGFGGGGFGDFFF at FFEGGGGEGGGGGGGGFGGEFGFGGGGGGGGGGGGGFGGGGGFGFFGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1115:24515:20126 1:N:0: TATAGCACGC
+TGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTAC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEFGGEGGGGGGFGGGGGGGGGGGGGGGGGGGGFFFGGGFFGGGFFGGGGGGGDGGGGGGFFGGFGGGGGGGGGGGGDGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1115:15717:20410 1:N:0: TATAGCACGC
+AAGGCTTCTGGATGCACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTAGC
++
+GGGGGGGGGGFGGGGGGGGGGGGGGGGDGGGGGGGGGGGGFGGGDGGGGGGGGGGGGGGGFGGGGGFFGGFGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGGGGGGGGGGGGGGGCGGFGGFG/G
+ at HWI-M01378:140129:000000000-A7785:1:1115:20074:21744 1:N:0: TATAGCACGC
+GCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGAGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+EBABFC:=>AFE?FGGGCF77CEGCF at GEGGGGFCFGGFGGG>GDFCFGGGGGFBAEDF>GEDDFD5??=::9BCGCCFFGFGGE=DF@:9:DGFD8EA/F at EGGEFF;ACE<DFF9CFECG
+ at HWI-M01378:140129:000000000-A7785:1:1115:10327:25119 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCCTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTCCCAGGGCAGAGTCACCATTACC
++
+GFGGGGGGGGGGGGGFGGGGGG,CFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEFGFGFGGGFGGGGGGGGGGGGGGGGFDGGFFGFFGFGGGGGGGGFFGGCCEEGGGGG+66@@FC<+:FEGFFEDFG7DFGGGFF4F5B?>FDFDGGEDDAACEEGFFG?GGGGGFGGFGGFFEDCEGGFGGGGGGDFD=,GGGGFGFCFGFFGG
+ at HWI-M01378:140129:000000000-A7785:1:1116:21394:3317 1:N:0: TATAGCACGC
+CAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+F?B8<CGDEFGDFGFCFGGG?CCF;FF3CGEGGGGGCCEGDFEDFACEGFGGGFFFGFFGCGGFCGGG=FGFDF65GGGGGFFB>EEC?CFFFBAFGFG
+ at HWI-M01378:140129:000000000-A7785:1:1116:21781:3983 1:N:0: TATAGCACGC
+ATGCATTGGGCGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGCEGGGGGGGGGGGGGGGGGGGGGGGEGFGGFGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGFGGGGGGGGGGGGGFGGGGGGFGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1116:19367:5061 1:N:0: TATAGCACGC
+TACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGE>FGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGFGGFGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1116:22704:5419 1:N:0: TATAGCACGC
+GCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GFGGGFEEFEEEGGFGFFEDEGGGFG>FGGGGGGGGFGGGGGGFCFFGGGGGGGEGGGGGGGGGGGGGGGCFGGBFGGGGFFGCFGFGG?GGGGGGGFF<GGGGFGGGFGGG
+ at HWI-M01378:140129:000000000-A7785:1:1116:3314:6852 1:N:0: TATAGCACGC
+TGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGACAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+E<FFFE at CGGGC=D6 at CFGGGG7CF>FFGGGG<1FFGGF:CB;CFCEGFGFCFEGGFGEFFGFDFFGFGBFDCCDGFDFEFCCFFGGGGFFEGGE=8>CGFFDGFGGG
+ at HWI-M01378:140129:000000000-A7785:1:1116:12883:11398 1:N:0: TATAGCACGC
+AAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGEFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGFGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1116:4257:14374 1:N:0: TATAGCACGC
+TATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGCFGGGGGG>:GGG?GGFGGGGGGCCGGGGGGGCFGFGFGFCFGFFFGGGCEFGGGGFFGDCFGGCGEFGGGGGGGGFEFGFGGFGGF at FGGGGGFFFGGGGGFFGGFFFGGG
+ at HWI-M01378:140129:000000000-A7785:1:1116:21249:16016 1:N:0: TATAGCACGC
+GCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGACAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGG:FCC at EEEGFGGGGGGECCFGAFGFGGGFGFGGGGGGGGGGGGGEGGFGGFFFGGGGGGFGGFGGGGGGGGGGGFEEFGGGGGGFFFFFGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1116:26580:20568 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATGCACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+F at FFGGGGGGGGGGGGGGGGGGGGGGGGGGFFEFGGGFGGGFGFGGGGGGGEGGFGGGGGGG<FFFGGGGGGFGGGFGGGFFGGGGGGGGGGFGGGGFEFDG,9AECEGCFGGGEGGGGEEFFGFGCFEF;@FFFGFFBGFFFDDBCFF=FFD87C>GGAF<5FCFGC<:CFCC6?GGFAFDFE8GGFFFGGGGDGGFGFFGFFFCDGGFDGGGFGG
+ at HWI-M01378:140129:000000000-A7785:1:1117:15050:1908 1:N:0: TATAGCACGC
+TCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCAGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGGGFGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDFFGGGGGGGGGGGGGGGGGGGGGFGGGDGGGGFGGGGGGGGGGFGGGGGGGEGDGE at FGGGGGGGGGGGGGGGGGGGFCFCFGFDCFFGGGFGGFGCEGFDGGGGFGGGFGGGGFGGGGGGG=FFGGGGGEFGGGGGGFFGGGGGGGGGCFGGG
+ at HWI-M01378:140129:000000000-A7785:1:1117:15528:1981 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGFGGFFFGGFCFGGGDF at CEGGGG@FGGGDCFGGGFDDDAFGGGCEGGG8FFFC,EFFFFAF9FGGFGGGGD<5CDFA4FF at FGGGGC9ADFGDGGDGGGGE9ACEFCG+8CGG7+FECEGDEGCE@FFFCE6DD;>ECF9EFGGCEFGD?2FEFCFC?CEF?@@AF=C97A9GGGD==1DA at 6,@,6,86D8F at 37,,,F93DE,@,GFF8
+ at HWI-M01378:140129:000000000-A7785:1:1117:10756:3719 1:N:0: TATAGCACGC
+CAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGCGFGGGGGGFCGGGGFFFGGFGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGFGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1117:24534:4247 1:N:0: TATAGCACGC
+GCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGGGGGGGEGGGGGGGGGGFGGGGFFFGGGGGGG>GGCEGFCEGGGGFFCGGGGGGGGGGFGGC9CGGG=GGGGEFGGGGFGGFGGCGGGGGF::DFGEGGGD;CG.GG
+ at HWI-M01378:140129:000000000-A7785:1:1117:13251:7519 1:N:0: TATAGCACGC
+CGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+CFCC7AC>FGBEFEFFFDFFC?CA6?BB at F@:E at E@<:7CEC9>GFCGFFGGFGGGFFGFFGGDGFEGFFDFDFGGFFFGEF<8FCFGGFD
+ at HWI-M01378:140129:000000000-A7785:1:1117:14612:8918 1:N:0: TATAGCACGC
+TGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGEGGGGGGGGGGGGGGGGGGGGGGGGGFFFGGGGGGGGGGGGGGEGGGGGFFEFGGGGGG at DACFGGCFFGGFFGFFGDGGGGGGGGGFFGGGGGGGFFGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1117:2770:10016 1:N:0: TATAGCACGC
+AGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGACAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GFGGG?GGFAFGGGGGGGGGDGDGGGGGGGGGGGGGGFGFFGGFGGGGFFGGGFGGGGGGGGGGGBECFGFGGGFGGFGGFGGFGGGGGGGFFGFGGGGDDGGGGGGGFEGGDGGFFGGGGGF
+ at HWI-M01378:140129:000000000-A7785:1:1117:7058:13477 1:N:0: TATAGCACGC
+GCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGCAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDFGFGGGEEFGG;FFFFEGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGFCGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGG
+ at HWI-M01378:140129:000000000-A7785:1:1117:20535:14960 1:N:0: TATAGCACGC
+TGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGDGGGGGGGFGGGGGGGGGGGGGGFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1117:12925:16162 1:N:0: TATAGCACGC
+TATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGACAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+FFGGGGGGFGGGCGGFGGGGGGGGGGGGGGGFGGFGGEGGGGFGFGGGFGFGFFGCFGGGG2CFGGGGGGGGGGGGGGGGGGGFFFGGECGFFGGGGGGGFEFFGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1118:9968:1647 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGGGGATGGGATGGATCAACGATGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+G at FDFF@FFGGFGGGFGGGGGG at FEFGDFFFGGGDCFFGFFEFEGGGCCGGGED@<F@?5?FGGGGGGGGFGG?@8=FGGG9EE at EGGGGGGCBF9F,AFFGEE;ACAFFEEGE@=:@B at 7DE3>FGDGGFEDCFG=?GG6;$7>C(31DF8FC9<7F859$FCC<FFDFFCGGFDC==C=?2,,6,D37,8@=DCD8+D9,A=ADFADAFE=D>F8
+ at HWI-M01378:140129:000000000-A7785:1:1118:9715:1754 1:N:0: TATAGCACGC
+CCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+EGGGGGGGGFGGGGDEGGGGGGGGGFGGGGFGGGGGGGGGGGGGCGGFFDFGGFGGGFFCFFDGGFGGFEGGGGDFGFD8=GFCGGFECCGGG
+ at HWI-M01378:140129:000000000-A7785:1:1118:9533:1899 1:N:0: TATAGCACGC
+TTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGE at CEGGCGGFGGFGGFFDGFFFGGFGFGFFGFGGGGGGGGCDGGGDGEGGGDCFGFGEGGGGGDFGFFGGG$:E at 8EECC?FFGFFGEFFGGFGG?GGFGGGF
+ at HWI-M01378:140129:000000000-A7785:1:1118:8691:1931 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGFCFGFFGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGFGGFFGDFFGGGGGGGEECGCEFCFFEBAFGGGGGGGEGCCGGBFGGG;FGGCFFG?FEFBFCBC:;:EFGEGGFFGFGDF==8F2=CDFGGEFAFGGFGFCFGGGFFGGDGFDGFGGCGGGF
+ at HWI-M01378:140129:000000000-A7785:1:1118:23298:2242 1:N:0: TATAGCACGC
+GGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGDEGCFFG?EEGGGGEECEGGFG=;GGFGGFDFFGDF at 9=FFE?:7DFFFDFFGDGGGEDCC>=FCE
+ at HWI-M01378:140129:000000000-A7785:1:1118:23073:6508 1:N:0: TATAGCACGC
+GCAAGGCTTCTGGATACACCTTCACTAGCTGTGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGG>GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGFGFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGFGGGGGGGGGGGGGGGGGGGGGGGFFGGGGGGGGGGFGGG
+ at HWI-M01378:140129:000000000-A7785:1:1118:21171:9133 1:N:0: TATAGCACGC
+TGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAGTATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1118:18189:10068 1:N:0: TATAGCACGC
+AAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGFGGGGGGGGGGGFGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1118:9717:10455 1:N:0: TATAGCACGC
+TGCAAGGCTTCTGGGTACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGDGGGGGGGGGGGGGFGGCGGGGGFGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGEFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGG
+ at HWI-M01378:140129:000000000-A7785:1:1118:6493:13149 1:N:0: TATAGCACGC
+CAAGGCTTCTGGATACACCTTCGCTAGCTATGCTATGCATTGGGTGCGCCAGGCCCTCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1118:9182:16529 1:N:0: TATAGCACGC
+AGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGFGGGGEGGGGGGGGGGGGGGGGGCFFF?FGGGFGGGGGGGGGGGGGGGFGFGGGGGGGGG<GGFF?FCFGGGFFFF?=AFDDFCGGGGE<FDGG
+ at HWI-M01378:140129:000000000-A7785:1:1118:21261:19014 1:N:0: TATAGCACGC
+TGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFCGGGGGGFFGGGGGGGGGGGGGGGGFFGGGGGFGGGGFFGFGFGGGGGGGGGGGGGGFFGGGGGGGFGGFGGFGGGGGGGGGGGGGGFGGGGGGGGGGGGGGDGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1118:17204:20285 1:N:0: TATAGCACGC
+TTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGFFGGFGGGFGGFFGGGGGGGGGGGGGGCFGGGGGGGGGGGGGGGGGGGFFGFGGGGGGGFFFECGFGGGFGFGFGGGGGGFGGGGGGCFFFGGGGGGGFDDFGFDF>DFGFFCDGGFFFGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1118:19019:20700 1:N:0: TATAGCACGC
+TGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEFFGCGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGFFGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1118:24760:20968 1:N:0: AATAGCACGC
+GCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+G,FGGGGGGEFFCC?1EFFGGFGDCFGGGCGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGEGGGGFGGGGGGGGFFFFFFFGFGGGFGCEGFGGGGGDGGFGGFGFCGGFGFDGGGGGFCEGFGFGDCGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1118:12797:21177 1:N:0: TATAGCACGC
+GCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAGCACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGFAFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGGGGGGGGGGGGGGGGGGGGGFGGGGGGFGGGGGGGGGGGGGGGGGFGFEFGGGGGGGFGGFGGFGGGGGFGEGGFFGGGGGFDGFEGGGFGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1119:12200:9232 1:N:0: TATAGCACGC
+TGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCGTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGFGGGGGGGGGGGGGGG?GGGFGFGGGGGGGGGGGGGGGGGFGGGGDGGGGFGFFGG+FGFGFFGGGGGGGGGGFDGGGGG:CGGGGGFFFFGGFGGGGGGCFFCFFGGGGGGFGGGGGFGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1119:25522:9543 1:N:0: TATAGCACGC
+CCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCAGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTATC
++
+GGGGGGGGGGGGGGGGGGGGFCFGGGGGGGG>FGGGGGGGFFGGGGGFGGGGGEGGGGGGGGFFFGFFGGGGGGEG.FGFE at FBEFGGFGGGGGGGGDFFFGFFGFEGGFG9>FDAEFFGCGGF>FECF$D
+ at HWI-M01378:140129:000000000-A7785:1:1119:25841:13619 1:N:0: TATAGCACGC
+CCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTAC
++
+GGGGGGDFGGGGGGGGGGGGGGGGDGGGFFGCFDFGGGGGGGGGGGGFGGFGGGGFGGFCEGGGGGGFGGGCDD?8F at B@AGFDB=GGGFFF>
+ at HWI-M01378:140129:000000000-A7785:1:1119:20076:14454 1:N:0: TATAGCACGC
+GCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1119:5209:16156 1:N:0: TATAGCACGC
+TGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGG?GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGFGGGGGGGGGGFGGGGGGGGGGGGFGGGGGGGFGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1119:21229:17686 1:N:0: TATAGCACGC
+GGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGDGGGGGGFEGGGGGGGGGGGGGGGGGFFGFGGFGEGGCFGGCGGGGGC4GFCGF at 4DCCFFFGFGGGGGGGGGGGFFFGGFGGFECEFGGG
+ at HWI-M01378:140129:000000000-A7785:1:1119:6516:18986 1:N:0: TATAGCACGC
+TGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFFGGGGGGGGGFGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:1119:11518:19811 1:N:0: TATAGCACGC
+CTCCCAGGTCCAGCTTGTGCAGTCTGGGGCTGAGGTGAAGAAGCCTGGGGCCTCAGTGAAGGTTTCCTGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATTTTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGD<FEF at 9<@EFGGGGFFCC<E8FC7FGFFGEFFGEFGCFG8,FCCCCGFGGEFGGE,9?C?F9FFFGGGCEEFG,>AFFFCGFDD,<=CF@,8??F,,CEFFGFB8ADGGEGGEEC?=+6++ at C+5*3DD6@@@FGC at B>FD9:>;FFFGC?FEEF@<7GFFE15;C@@<EFFF=,6+,D?==GFGF at 6,+D8FFGGFDE=3@=DFDGGFD4
+ at HWI-M01378:140129:000000000-A7785:1:2101:10492:6392 1:N:0: TATAGCACGC
+CGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACGAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+CEFE at EGGGGGGGGGGGGGGG>GGGGGGGGGGGDGGGGGDFA:EEFCFCDEDDFCGE9BFGGGGGG<=@FGGFGEGGGGGGGD8FFA9GGFGFGGFGGFFFF
+ at HWI-M01378:140129:000000000-A7785:1:2101:21110:9989 1:N:0: TATAGCACGC
+GGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+CGGGGGGGGGGGGGGGGGGE>GGGGGGGGGGGFGGFDCEFFGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGFGFCFFGFFGGGFGGFFGGGFF?FFFGGGGGDFGFG
+ at HWI-M01378:140129:000000000-A7785:1:2101:25521:14328 1:N:0: TATAGCACGC
+GCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGDGGGGGGGGGGGGGGGGFGDAFFGGG9FCFFGGGGGGGFGFDCFGFGGGGGFGGGGGGGFGGGGGGGGGGGGGGFGGGGGGGFFDD;DGGGFEBGGG
+ at HWI-M01378:140129:000000000-A7785:1:2101:6147:17939 1:N:0: TATAGTACGC
+GGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+FGGFG>GGGEGGGGGGGGG7:EFFFFC4BGFF;A>@5;FF?34EGGGGGGD6?<=170CC;?GFBGGGDGGFCFA9 at FEFC=@GGGCGFFD8FFCGEDDAGDC>@CE
+ at HWI-M01378:140129:000000000-A7785:1:2101:7510:19246 1:N:0: TATAGCACGC
+CCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGG at CFGGGGFGFG5GGGGDFGGGFGGG>CFFGGGCF+DD=:EF?EGGGGGACGDCF:FDC at AFF?@F4;CFGGGGGGA?FEGEGGFD9DFGGG
+ at HWI-M01378:140129:000000000-A7785:1:2101:13482:19637 1:N:0: TATAGCACGC
+GCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+FGGG?GGGGGGGGGGBFFE<EGGGGGGGGFGGFE at FFGGFCFFBCGGGGD=DCGGGGGGDGCGGFGGFD<?FFCEG=GGFGGGGGGGGGFFAFFFE;GGEDGGGGGGGFGGGEGFED=GGGG
+ at HWI-M01378:140129:000000000-A7785:1:2101:9133:23948 1:N:0: TATAGCACGC
+GGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGCTCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GCFGGCEGGGFGG at FGGCEGGGGFEEFDF;CFFG?72=>F6'B%:5GEADDC?CFFCFFGAFGFFFDGGFECCFGGFGGGCFC@:DCECCFFGFD>?B9.E>FGGF
+ at HWI-M01378:140129:000000000-A7785:1:2102:23669:4942 1:N:0: TATAGCACGC
+TGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGDGGGGGGFGFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGEGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGFGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:2102:18023:6868 1:N:0: TATAGCACGC
+TGGGTGCGCCAGGCCTCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGGGGGGGGGGFFGG=FGFGGGGGGGGGG>GGGFGFFGGGGGGGGGGGGFFFGGGGGGGGGGGGGGFGGFGGGGGGGGGEGFGGEBEGFEFGGGG
+ at HWI-M01378:140129:000000000-A7785:1:2102:20537:10795 1:N:0: TATAGCACGC
+AAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGFGGGGGGGGGGGGGGGGGGGGGGFFGFGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:2102:11278:14783 1:N:0: TATAGCACGC
+TGCAAGGCTTCTGGATACACCTTCACTAGCTATGCTATGCATTGGGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGACAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+ at HWI-M01378:140129:000000000-A7785:1:2102:15247:16145 1:N:0: TATAGCACGC
+GGTGCGCCAGGCCCCCGGACAAAGGCTTGAGTGGATGGGATGGATCAACGCTGGCAATGGTAACACAAAATATTCACAGAAGTTCCAGGGCAGAGTCACCATTACC
++
+GGGGGGGGGC?FGFGFFCGEGGGGGGFGGGGFGGGG>GFGGGGGGGGGFD?EGDGGF=FFFEFGGFGFE=GF?=@;GFFGGGGFFDGGGGEFFF6,?GGFCFGGGG
diff --git a/clipper/t/out/join/test-ov-b.out b/clipper/t/out/join/test-ov-b.out
new file mode 100644
index 0000000..cbc95d4
--- /dev/null
+++ b/clipper/t/out/join/test-ov-b.out
@@ -0,0 +1,5 @@
+Total reads: 100
+Total joined: 93
+Average join len: 136.75
+Stdev join len: 35.91
+Version: 1.01.759
diff --git a/clipper/t/out/join/test-phred.join b/clipper/t/out/join/test-phred.join
new file mode 100644
index 0000000..c3c3f14
--- /dev/null
+++ b/clipper/t/out/join/test-phred.join
@@ -0,0 +1,4 @@
+ at M00517:196:000000000-A7GT8:1:1101:15158:1438 1:N:0:0
+TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAGTGCAAGAGGGGAGAGTGGAATTCCATGTGTAGCGGTGAAATGCGTAGATATATGGAGGAACACCGGTGGCGAAAGCGGCTCTCTGGGTTGTAACTGACGCTGAGGCTCGAAAGCGTGGGGAGCAAACAGG
++
+BBBBBFFBFFFFGGGGGGGGGGHGGGGGHHHHGHHHGGGGHHBFCEGGGGGGGGGGGGHHFGGHHGHGBFDGFFHHHHHHHHHHFBGGHHHHHHBHBFD?/?HGFCDGC2F>$GGHHGFHHHHFGF8FHGHHHHHG1HHHHHHHGG3DGFGGGGGHHHF4GGGEFHFHHHGFB41HGHHHEGEFEEHEGGEEFFB0EEAA1FHHGFEB35HHHHHGGEGEGBHHGEAAABFGFEECAGGGFFFDB5FAABA>
diff --git a/clipper/t/out/join/test-phred.out b/clipper/t/out/join/test-phred.out
new file mode 100644
index 0000000..bf7dccf
--- /dev/null
+++ b/clipper/t/out/join/test-phred.out
@@ -0,0 +1,5 @@
+Total reads: 1
+Total joined: 1
+Average join len: 50.00
+Stdev join len: -nan
+Version: 1.01.759
diff --git a/clipper/t/out/mcf/test1.err b/clipper/t/out/mcf/test1.err
new file mode 100644
index 0000000..d5fb6d5
--- /dev/null
+++ b/clipper/t/out/mcf/test1.err
@@ -0,0 +1,10 @@
+Command Line: -l 15 in/mcf/test.fa in/mcf/test1.fq
+Scale used: 2.2
+Phred: 64
+Threshold used: 1 out of 8
+Adapter clip me (AGTCCCGTAC): counted 2 at the 'end' of 'in/mcf/test1.fq', clip set to 1
+Files: 1
+Total reads: 8
+Too short after clip: 0
+Clipped 'end' reads: Count: 5, Mean: 6.80, Sd: 5.07
+Trimmed 5 reads by an average of 1.00 bases on quality < 7
diff --git a/clipper/t/out/mcf/test1.out b/clipper/t/out/mcf/test1.out
new file mode 100644
index 0000000..dede413
--- /dev/null
+++ b/clipper/t/out/mcf/test1.out
@@ -0,0 +1,32 @@
+ at 1 CLIP IS AGTCCCGTAC AT END
+ATATGCTACGTTTGTGACCT
++
+hhhhh]]hhhhhhhhhhhhh
+ at 2 CLIP AGTCCCGTAC + AAAA's
+ATGTTCGTATATGAGC
++
+hhbhh^^hhhhhhhhh
+ at 3 CLIP JUST AGTCC if nmin >= 5
+TATAGCCTCTAGCTTGACTCTAGCT
++
+hhhh]]hhhhhhhhhhhhh]hhfff
+ at 4 CLIP AG at end if nmin >= 2
+ATCTATCTTAGTCATCTTATCTACTATC
++
+hhhhhdchhhhhhhhhhh]hhfggfaab
+ at 5 CLIP AGT at END if nmin >= 3
+ATATACTTATCTACTTATCTATCTTAA
++
+hhhhh]bhddhhhhhhhhhh]hhffff
+ at 6 CLIP NOTHING, even though some at front, because mismatch pct too high
+AGTCCTTGGTCTTATCTACTTATCTATCT
++
+hhhhh]bhddhhhhhhhhhh]hhffffga
+ at 7 CLIP WHOLE SEQENCE
+AGTCCATTACCTTATCTACTTATCTATCT
++
+hhhhh]bhddhhhhhhhhhh]hhffffga
+ at 8 CLIP HOMOPOLYMER
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+hhhhh]bhddhhhhhhhhhh]hhffffga
diff --git a/clipper/t/out/mcf/test2.err b/clipper/t/out/mcf/test2.err
new file mode 100644
index 0000000..6eafaab
--- /dev/null
+++ b/clipper/t/out/mcf/test2.err
@@ -0,0 +1,62 @@
+Command Line: -l 15 in/mcf/test.fa in/mcf/test2.fq
+Scale used: 2.2
+Invalid FASTQ format : in/mcf/test2.fq
+Phred: 33
+Warning, corrupt quality for sequence: @SQ SN:chr14 LN:125194864
+Warning, corrupt quality for sequence: @SQ SN:chrM LN:16299
+Threshold used: 1 out of 4
+No adapters found, no skewing detected, and no trimming needed.
+Files: 1
+Malformed fastq record (no '+' for comment) at line 1
+Malformed fastq record (no '+' for comment) at line 3
+Malformed fastq record (no '+' for comment) at line 5
+Malformed fastq record (length mismatch) at line 7
+Malformed fastq record (no '+' for comment) at line 9
+Malformed fastq record (length mismatch) at line 11
+Malformed fastq record (length mismatch) at line 13
+Malformed fastq record (length mismatch) at line 15
+Malformed fastq record (length mismatch) at line 17
+Malformed fastq record (length mismatch) at line 19
+Malformed fastq record (length mismatch) at line 21
+Malformed fastq record (length mismatch) at line 23
+Malformed fastq record (length mismatch) at line 25
+Malformed fastq record (length mismatch) at line 27
+Malformed fastq record (length mismatch) at line 29
+Malformed fastq record (length mismatch) at line 31
+Malformed fastq record (length mismatch) at line 33
+Malformed fastq record (length mismatch) at line 35
+Malformed fastq record (length mismatch) at line 37
+Malformed fastq record (length mismatch) at line 39
+Malformed fastq record (length mismatch) at line 41
+Malformed fastq record (length mismatch) at line 43
+Malformed fastq record (length mismatch) at line 45
+Malformed fastq record (length mismatch) at line 47
+Malformed fastq record (length mismatch) at line 49
+Malformed fastq record (length mismatch) at line 51
+Malformed fastq record (length mismatch) at line 53
+Malformed fastq record (no '@' for id) at line 55
+Malformed fastq record (length mismatch) at line 57
+Malformed fastq record (length mismatch) at line 59
+Malformed fastq record (length mismatch) at line 61
+Malformed fastq record (no '@' for id) at line 63
+Malformed fastq record (length mismatch) at line 65
+Malformed fastq record (length mismatch) at line 67
+Malformed fastq record (length mismatch) at line 69
+Malformed fastq record (length mismatch) at line 71
+Malformed fastq record (length mismatch) at line 73
+Malformed fastq record (length mismatch) at line 75
+Malformed fastq record (length mismatch) at line 77
+Malformed fastq record (length mismatch) at line 79
+Malformed fastq record (length mismatch) at line 81
+Malformed fastq record (length mismatch) at line 83
+Malformed fastq record (length mismatch) at line 85
+Malformed fastq record (no '@' for id) at line 87
+Malformed fastq record (length mismatch) at line 89
+Malformed fastq record (length mismatch) at line 91
+Malformed fastq record (length mismatch) at line 93
+Malformed fastq record (length mismatch) at line 95
+Malformed fastq record (length mismatch) at line 97
+Malformed fastq record (length mismatch) at line 99
+Total reads: 50
+Too short after clip: 0
+Errors (in/mcf/test2.fq): 50
diff --git a/clipper/t/out/mcf/test2.out b/clipper/t/out/mcf/test2.out
new file mode 100644
index 0000000..e69de29
diff --git a/clipper/t/out/mcf/test3.err b/clipper/t/out/mcf/test3.err
new file mode 100644
index 0000000..ebbbb05
--- /dev/null
+++ b/clipper/t/out/mcf/test3.err
@@ -0,0 +1,10 @@
+Command Line: -l 15 in/mcf/test.fa in/mcf/test1.fq -o #TMPDIR#/test3.out
+Scale used: 2.2
+Phred: 64
+Threshold used: 1 out of 8
+Adapter clip me (AGTCCCGTAC): counted 2 at the 'end' of 'in/mcf/test1.fq', clip set to 1
+Files: 1
+Total reads: 8
+Too short after clip: 0
+Clipped 'end' reads: Count: 5, Mean: 6.80, Sd: 5.07
+Trimmed 5 reads by an average of 1.00 bases on quality < 7
diff --git a/clipper/t/out/mcf/test3.out b/clipper/t/out/mcf/test3.out
new file mode 100644
index 0000000..dede413
--- /dev/null
+++ b/clipper/t/out/mcf/test3.out
@@ -0,0 +1,32 @@
+ at 1 CLIP IS AGTCCCGTAC AT END
+ATATGCTACGTTTGTGACCT
++
+hhhhh]]hhhhhhhhhhhhh
+ at 2 CLIP AGTCCCGTAC + AAAA's
+ATGTTCGTATATGAGC
++
+hhbhh^^hhhhhhhhh
+ at 3 CLIP JUST AGTCC if nmin >= 5
+TATAGCCTCTAGCTTGACTCTAGCT
++
+hhhh]]hhhhhhhhhhhhh]hhfff
+ at 4 CLIP AG at end if nmin >= 2
+ATCTATCTTAGTCATCTTATCTACTATC
++
+hhhhhdchhhhhhhhhhh]hhfggfaab
+ at 5 CLIP AGT at END if nmin >= 3
+ATATACTTATCTACTTATCTATCTTAA
++
+hhhhh]bhddhhhhhhhhhh]hhffff
+ at 6 CLIP NOTHING, even though some at front, because mismatch pct too high
+AGTCCTTGGTCTTATCTACTTATCTATCT
++
+hhhhh]bhddhhhhhhhhhh]hhffffga
+ at 7 CLIP WHOLE SEQENCE
+AGTCCATTACCTTATCTACTTATCTATCT
++
+hhhhh]bhddhhhhhhhhhh]hhffffga
+ at 8 CLIP HOMOPOLYMER
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+hhhhh]bhddhhhhhhhhhh]hhffffga
diff --git a/clipper/t/out/mcf/test4.err b/clipper/t/out/mcf/test4.err
new file mode 100644
index 0000000..f88916e
--- /dev/null
+++ b/clipper/t/out/mcf/test4.err
@@ -0,0 +1,9 @@
+Command Line: -l 15 -L72 -f in/mcf/test.fa in/mcf/test4.fq1 in/mcf/test4.fq2 -o #TMPDIR#/test4.out1 -o #TMPDIR#/test4.out2
+Scale used: 2.2
+Phred: 64
+Threshold used: 1 out of 1
+Files: 2
+Total reads: 1
+Too short after clip: 0
+Trimmed 1 reads (in/mcf/test4.fq1) by an average of 21.00 bases on quality < 7
+Trimmed 1 reads (in/mcf/test4.fq2) by an average of 8.00 bases on quality < 7
diff --git a/clipper/t/out/mcf/test4.out1 b/clipper/t/out/mcf/test4.out1
new file mode 100644
index 0000000..25e2a01
--- /dev/null
+++ b/clipper/t/out/mcf/test4.out1
@@ -0,0 +1,4 @@
+ at EA-GAII-02:7:1:19703:1174#0/1
+ATGATGATGATGATGTTGTGCCCACCACTCCAAGACAGTG
++
+gg]cdggggggfggcffafdgggg_ggfffggfgggdf[c
diff --git a/clipper/t/out/mcf/test4.out2 b/clipper/t/out/mcf/test4.out2
new file mode 100644
index 0000000..784682a
--- /dev/null
+++ b/clipper/t/out/mcf/test4.out2
@@ -0,0 +1,4 @@
+ at EA-GAII-02:7:1:19703:1174#0/3
+ATGATGATGATGATATGTGATGATGATGATGTGATGATGATGATGAGTGTGATGATGTGTGTGTGTGT
++
+hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
diff --git a/clipper/t/out/mcf/test5.err b/clipper/t/out/mcf/test5.err
new file mode 100644
index 0000000..36a27ce
--- /dev/null
+++ b/clipper/t/out/mcf/test5.err
@@ -0,0 +1,11 @@
+Command Line: -l 15 -H in/mcf/test.fa in/mcf/test1.fq -S -o #TMPDIR#/test5.out
+Scale used: 2.2
+Phred: 64
+Threshold used: 1 out of 8
+Adapter clip me (AGTCCCGTAC): counted 2 at the 'end' of 'in/mcf/test1.fq', clip set to 1
+Files: 1
+Total reads: 8
+Too short after clip: 0
+Filtered on hompolymer: 1
+Clipped 'end' reads: Count: 5, Mean: 6.80, Sd: 5.07
+Trimmed 5 reads by an average of 1.00 bases on quality < 7
diff --git a/clipper/t/out/mcf/test5.out b/clipper/t/out/mcf/test5.out
new file mode 100644
index 0000000..2b14278
--- /dev/null
+++ b/clipper/t/out/mcf/test5.out
@@ -0,0 +1,28 @@
+ at 1 CLIP IS AGTCCCGTAC AT END
+ATATGCTACGTTTGTGACCT
++
+hhhhh]]hhhhhhhhhhhhh
+ at 2 CLIP AGTCCCGTAC + AAAA's
+ATGTTCGTATATGAGC
++
+hhbhh^^hhhhhhhhh
+ at 3 CLIP JUST AGTCC if nmin >= 5
+TATAGCCTCTAGCTTGACTCTAGCT
++
+hhhh]]hhhhhhhhhhhhh]hhfff
+ at 4 CLIP AG at end if nmin >= 2
+ATCTATCTTAGTCATCTTATCTACTATC
++
+hhhhhdchhhhhhhhhhh]hhfggfaab
+ at 5 CLIP AGT at END if nmin >= 3
+ATATACTTATCTACTTATCTATCTTAA
++
+hhhhh]bhddhhhhhhhhhh]hhffff
+ at 6 CLIP NOTHING, even though some at front, because mismatch pct too high
+AGTCCTTGGTCTTATCTACTTATCTATCT
++
+hhhhh]bhddhhhhhhhhhh]hhffffga
+ at 7 CLIP WHOLE SEQENCE
+AGTCCATTACCTTATCTACTTATCTATCT
++
+hhhhh]bhddhhhhhhhhhh]hhffffga
diff --git a/clipper/t/out/mcf/test6.err b/clipper/t/out/mcf/test6.err
new file mode 100644
index 0000000..a893606
--- /dev/null
+++ b/clipper/t/out/mcf/test6.err
@@ -0,0 +1,10 @@
+Command Line: -l 15 in/mcf/test.fa in/mcf/test1.fq -o #TMPDIR#/test6.out.gz
+Scale used: 2.2
+Phred: 64
+Threshold used: 1 out of 8
+Adapter clip me (AGTCCCGTAC): counted 2 at the 'end' of 'in/mcf/test1.fq', clip set to 1
+Files: 1
+Total reads: 8
+Too short after clip: 0
+Clipped 'end' reads: Count: 5, Mean: 6.80, Sd: 5.07
+Trimmed 5 reads by an average of 1.00 bases on quality < 7
diff --git a/clipper/t/out/mcf/test6.out.gz b/clipper/t/out/mcf/test6.out.gz
new file mode 100644
index 0000000..ae9d08f
Binary files /dev/null and b/clipper/t/out/mcf/test6.out.gz differ
diff --git a/clipper/t/out/mcf/test7.err b/clipper/t/out/mcf/test7.err
new file mode 100644
index 0000000..e7e9af8
--- /dev/null
+++ b/clipper/t/out/mcf/test7.err
@@ -0,0 +1,9 @@
+Command Line: -0 -D 20 n/a in/mcf/test-mcf-dup.fq -o #TMPDIR#/test7.out
+Scale used: 2.2
+Phred: 64
+Threshold used: 1 out of 6
+No adapters found.
+Files: 1
+Total reads: 6
+Too short after clip: 0
+Filtered on duplicates: 2
diff --git a/clipper/t/out/mcf/test7.out b/clipper/t/out/mcf/test7.out
new file mode 100644
index 0000000..fb9c675
--- /dev/null
+++ b/clipper/t/out/mcf/test7.out
@@ -0,0 +1,16 @@
+ at 1 READ A
+ATATGCTACGTTTGTGACCTAGTCCCGTAC
++
+hhhhh]]hhhhhhhhhhhhhhhhhhhhhhh
+ at 3 READB
+TATAGCCTCTAGCTTGACTCTAGCTAGTCC
++
+hhhhh]]hhhhhhhhhhhhhhhhhhhhhhh
+ at 4 NOTDUPREADB = OFFBY1
+TATAGACTCTAGCTTGACTCTAGCTAGTCC
++
+hhhhh]]hhhhhhhhhhhhhhhhhhhhhhh
+ at 4 NOTDUPREADC = OFFBY3
+TACAGCCTCTAGCGTGACTCTAGCCAGTCC
++
+hhhhh]]hhhhhhhhhhhhhhhhhhhhhhh
diff --git a/clipper/t/out/mcf/test8.err b/clipper/t/out/mcf/test8.err
new file mode 100644
index 0000000..e69de29
diff --git a/clipper/t/out/mcf/test8.out b/clipper/t/out/mcf/test8.out
new file mode 100644
index 0000000..4276641
--- /dev/null
+++ b/clipper/t/out/mcf/test8.out
@@ -0,0 +1,8 @@
+Command Line: n/a in/mcf/count.fq
+Scale used: 2.2
+Phred: 33
+Threshold used: 1 out of 1
+Files: 1
+Total reads: 1
+Too short after clip: 1
+Trimmed 1 reads by an average of 60.00 bases on quality < 7
diff --git a/clipper/t/out/mcf/test9.err b/clipper/t/out/mcf/test9.err
new file mode 100644
index 0000000..68d6174
--- /dev/null
+++ b/clipper/t/out/mcf/test9.err
@@ -0,0 +1,9 @@
+Command Line: in/mcf/adap.fa in/mcf/test5.fq
+Scale used: 2.2
+Phred: 64
+Threshold used: 1 out of 4
+Adapter 3p_for_test (CATGATTGATGGTGCCTACAG): counted 4 at the 'start' of 'in/mcf/test5.fq', clip set to 1
+Files: 1
+Total reads: 4
+Too short after clip: 0
+Clipped 'start' reads: Count: 4, Mean: 21.00, Sd: 0.00
diff --git a/clipper/t/out/mcf/test9.out b/clipper/t/out/mcf/test9.out
new file mode 100644
index 0000000..853d17a
--- /dev/null
+++ b/clipper/t/out/mcf/test9.out
@@ -0,0 +1,16 @@
+ at 1
+ATCAGCTAGGCATCGATATATCGATCGGCTAGAGATATACGATCGAT
++
+hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
+ at 2
+ATCAGCTAGGCATCGATATATCGATCGGCTAGAGATATACGATCGAG
++
+hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
+ at 3
+ATCAGCTAGGCATCGATATATCGATCGGCTAGAGATATACGATCGAG
++
+hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
+ at 4
+ATCAGCTAGGCATCGATATATCGATCGGCTAGAGATATACGATCGAC
++
+hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
diff --git a/clipper/t/out/multx/test1.err b/clipper/t/out/multx/test1.err
new file mode 100644
index 0000000..7ceb0e1
--- /dev/null
+++ b/clipper/t/out/multx/test1.err
@@ -0,0 +1,5 @@
+Using Barcode Group: TruSeq on File: in/multx/mxtest_2.fastq (start), Threshold 0.00%
+Using Barcode LB2 (CGATGT)
+Using Barcode LB4 (TGACCA)
+Using Barcode LB5 (ACAGTG)
+Using Barcode LB6 (GCCAAT)
diff --git a/clipper/t/out/multx/test1.out b/clipper/t/out/multx/test1.out
new file mode 100644
index 0000000..20c5166
--- /dev/null
+++ b/clipper/t/out/multx/test1.out
@@ -0,0 +1,7 @@
+Id Count File(s)
+LB2 75 #TMPDIR#/mxout_LB2_1.fq #TMPDIR#/mxout_LB2_2.fq
+LB4 57 #TMPDIR#/mxout_LB4_1.fq #TMPDIR#/mxout_LB4_2.fq
+LB5 60 #TMPDIR#/mxout_LB5_1.fq #TMPDIR#/mxout_LB5_2.fq
+LB6 51 #TMPDIR#/mxout_LB6_1.fq #TMPDIR#/mxout_LB6_2.fq
+unmatched 7 #TMPDIR#/mxout_unmatched_1.fq #TMPDIR#/mxout_unmatched_2.fq
+total 250
diff --git a/clipper/t/out/multx/test2.err b/clipper/t/out/multx/test2.err
new file mode 100644
index 0000000..7ceb0e1
--- /dev/null
+++ b/clipper/t/out/multx/test2.err
@@ -0,0 +1,5 @@
+Using Barcode Group: TruSeq on File: in/multx/mxtest_2.fastq (start), Threshold 0.00%
+Using Barcode LB2 (CGATGT)
+Using Barcode LB4 (TGACCA)
+Using Barcode LB5 (ACAGTG)
+Using Barcode LB6 (GCCAAT)
diff --git a/clipper/t/out/multx/test2.out b/clipper/t/out/multx/test2.out
new file mode 100644
index 0000000..e47972c
--- /dev/null
+++ b/clipper/t/out/multx/test2.out
@@ -0,0 +1,7 @@
+Id Count File(s)
+LB2 75 #TMPDIR#/mxout_LB2_1.fq.gz #TMPDIR#/mxout_LB2_2.fq.gz
+LB4 57 #TMPDIR#/mxout_LB4_1.fq.gz #TMPDIR#/mxout_LB4_2.fq.gz
+LB5 60 #TMPDIR#/mxout_LB5_1.fq.gz #TMPDIR#/mxout_LB5_2.fq.gz
+LB6 51 #TMPDIR#/mxout_LB6_1.fq.gz #TMPDIR#/mxout_LB6_2.fq.gz
+unmatched 7 #TMPDIR#/mxout_unmatched_1.fq.gz #TMPDIR#/mxout_unmatched_2.fq.gz
+total 250
diff --git a/clipper/t/out/multx/test3.err b/clipper/t/out/multx/test3.err
new file mode 100644
index 0000000..fd3014e
--- /dev/null
+++ b/clipper/t/out/multx/test3.err
@@ -0,0 +1,2 @@
+Barcode length used: 7 (start)
+Threshold used: 1
diff --git a/clipper/t/out/multx/test3.out b/clipper/t/out/multx/test3.out
new file mode 100644
index 0000000..815d6a7
--- /dev/null
+++ b/clipper/t/out/multx/test3.out
@@ -0,0 +1,7 @@
+Id Count File(s)
+ACAGTGA 60 #TMPDIR#/mxout_ACAGTGA_1.fq #TMPDIR#/mxout_ACAGTGA_2.fq
+CGATGTA 73 #TMPDIR#/mxout_CGATGTA_1.fq #TMPDIR#/mxout_CGATGTA_2.fq
+TGACCAA 56 #TMPDIR#/mxout_TGACCAA_1.fq #TMPDIR#/mxout_TGACCAA_2.fq
+GCCAATA 49 #TMPDIR#/mxout_GCCAATA_1.fq #TMPDIR#/mxout_GCCAATA_2.fq
+unmatched 12 #TMPDIR#/mxout_unmatched_1.fq #TMPDIR#/mxout_unmatched_2.fq
+total 250
diff --git a/clipper/t/out/multx/test4.err b/clipper/t/out/multx/test4.err
new file mode 100644
index 0000000..d8c952f
--- /dev/null
+++ b/clipper/t/out/multx/test4.err
@@ -0,0 +1,5 @@
+Using Barcode Group: TruSeq on File: in/multx/mxtest-h_1.fastq (start), Threshold 0.00%
+Using Barcode LB2 (CGATGT)
+Using Barcode LB4 (TGACCA)
+Using Barcode LB5 (ACAGTG)
+Using Barcode LB6 (GCCAAT)
diff --git a/clipper/t/out/multx/test4.out b/clipper/t/out/multx/test4.out
new file mode 100644
index 0000000..20c5166
--- /dev/null
+++ b/clipper/t/out/multx/test4.out
@@ -0,0 +1,7 @@
+Id Count File(s)
+LB2 75 #TMPDIR#/mxout_LB2_1.fq #TMPDIR#/mxout_LB2_2.fq
+LB4 57 #TMPDIR#/mxout_LB4_1.fq #TMPDIR#/mxout_LB4_2.fq
+LB5 60 #TMPDIR#/mxout_LB5_1.fq #TMPDIR#/mxout_LB5_2.fq
+LB6 51 #TMPDIR#/mxout_LB6_1.fq #TMPDIR#/mxout_LB6_2.fq
+unmatched 7 #TMPDIR#/mxout_unmatched_1.fq #TMPDIR#/mxout_unmatched_2.fq
+total 250
diff --git a/clipper/t/test-prep.pl b/clipper/t/test-prep.pl
new file mode 100644
index 0000000..d693d66
--- /dev/null
+++ b/clipper/t/test-prep.pl
@@ -0,0 +1,79 @@
+use strict;
+use Test::More;
+
+# core modules only!
+use File::Basename qw(dirname basename);
+use File::Compare;
+use File::Path;
+use File::Spec;
+use File::Temp;
+
+use strict;
+
+our $COPY_OK=0;
+
+use Getopt::Long qw(:config pass_through no_ignore_case);
+
+GetOptions("X"=>\$COPY_OK);
+
+my $testdir = dirname(__FILE__);
+
+chdir($testdir) || die("$testdir : $!\n");
+
+my $tempbase = "tmp";
+
+mkdir($tempbase);
+
+my $template = basename($0) . ".XXXXX";
+
+# exported
+our $BINDIR = "..";
+our $TMPDIR=File::Temp::tempdir($template, CLEANUP=>0, DIR=>$tempbase);
+our $INDIR="in/" . basename($0); $INDIR =~ s/\.t$//;
+our $OUTDIR="out/" . basename($0); $OUTDIR =~ s/\.t$//;
+
+sub check_output {
+ my ($arr) = @_;
+ for my $f (@$arr) {
+ my $o = File::Spec->catfile($OUTDIR,basename($f));
+ my $c1 = ($f =~ /.gz$/ ? "gunzip -c '$f'" : "cat '$f'") . "|perl -pe 's/\Q$TMPDIR\E/#TMPDIR#/g' |";
+ if ($COPY_OK) {
+ my $cp = "$c1 " . ( $f =~ /.gz$/ ? "gzip -c" : "cat" ) . " > '$o'";
+ system($cp);
+ }
+ my ($i1, $i2);
+ my $c2 = ($o =~ /.gz$/ ? "gunzip -c '$o'" : "cat '$o'") . "|perl -pe 's/\Q$TMPDIR\E/#TMPDIR#/g' |";
+ open $i1, $c1;
+ open $i2, $c2;
+ ok(compare($i1, $i2) == 0, "Files equal: $f == $o");
+ }
+}
+
+sub run {
+ my ($cmd) = @_;
+ my @o = $cmd =~ m/[#%]o:(\S+)/g;
+
+ chomp $cmd;
+
+ $cmd =~ s/%o:(\S+)/$1/g;
+
+# warn "# $cmd\n";
+
+ my $exit = system($cmd);
+
+ if ($exit >> 8) {
+ $exit = $exit >> 8;
+ }
+
+ return $exit, $cmd, [@o];
+}
+
+END {
+ if (Test::More->builder->is_passing() && !$?) {
+ warn "# removing $TMPDIR\n";
+ File::Path::rmtree($TMPDIR);
+ }
+}
+
+
+1;
diff --git a/clipper/testchrdex-speed.pl b/clipper/testchrdex-speed.pl
new file mode 100644
index 0000000..9903c8c
--- /dev/null
+++ b/clipper/testchrdex-speed.pl
@@ -0,0 +1,18 @@
+use Benchmark qw(:all);
+
+BEGIN {
+ @INC = ('.', @INC);
+}
+
+use Chrdex;
+
+$x = Chrdex->new("chrdexannot.txt", chr=>2, beg=>5, end=>6, skip=>1);
+$r = Chrdex->new("chrdexannot.txt", chr=>2, beg=>5, end=>6, skip=>1, index_path=>"chrdexbyref", byref=>1);
+
+cmpthese( -1, {
+ ram =>sub{$x->query(1, 869395)},
+ ram_range =>sub{$x->query(1, 869395, 869936)},
+ ref =>sub{$r->query(1, 869395)},
+ ref_range =>sub{$r->query(1, 869395, 869936)},
+ }
+);
diff --git a/clipper/testchrdex.pl b/clipper/testchrdex.pl
new file mode 100644
index 0000000..a5bb0dd
--- /dev/null
+++ b/clipper/testchrdex.pl
@@ -0,0 +1,22 @@
+BEGIN {
+ @INC = ('.', @INC);
+}
+
+use Chrdex;
+use Data::Dumper;
+
+#$x = Chrdex->new("chrdexannot.txt", chr=>2, beg=>5, end=>6, skip=>1);
+#for ($i=0;$i<10000;++$i) {
+# $x->search(1, 153432255);
+#}
+
+my $ct=Chrdex->new("/mnt/scratch/indexes/Annotations/cytoBand.txt", force=>1);
+print Dumper($ct->query(1, 8601118));
+
+$x = Chrdex->new("chrdexannot.txt", chr=>2, beg=>5, end=>6, skip=>1);
+print "---l1:\n";
+print $x->search(1, 851184), "\n";
+print "---l2:\n";
+print $x->search(1, 869395), "\n";
+print "---l2-3:\n";
+print $x->search(1, 869395, 869936), "\n";
diff --git a/clipper/testsuf.pl b/clipper/testsuf.pl
new file mode 100644
index 0000000..794b8f7
--- /dev/null
+++ b/clipper/testsuf.pl
@@ -0,0 +1,11 @@
+use Tree::Suffix;
+
+$tree = Tree::Suffix->new;
+
+$tree->insert("apple\t32", "banana\t45", "appley\t38");
+
+ at pos = $tree->find("appl");
+
+for (@pos) {
+ print "pos: $_\n"
+}
diff --git a/clipper/tidx/Makefile b/clipper/tidx/Makefile
new file mode 100644
index 0000000..5abde2a
--- /dev/null
+++ b/clipper/tidx/Makefile
@@ -0,0 +1,33 @@
+# set these if you want to override
+
+PREFIX?=/usr
+CPPFLAGS?=-O3 -I.
+REL := $(shell svnversion 2>/dev/null | perl -ne 'print $$1 if /:(\d+)/' )
+VER := $(shell perl -e 'do "perl/lib/Text/Tidx.pm"; print "$$Text::Tidx::VERSION\n"' )
+
+all: tidx perl/Tidx.bs
+
+debug:
+ CPPFLAGS="-I. -g" ${MAKE} $(MFLAGS) all
+
+# no fPIC for linking main module
+tidx: tidx.cpp tidx-lib.cpp fastq-lib.cpp utils.cpp tidx.h
+
+perl/Tidx.bs perl/Makefile: perl/Makefile.PL
+ cd perl; perl Makefile.PL; ${MAKE} $(MFLAGS) INSTALL_BASE=${PREFIX}
+
+${PREFIX}/bin/tidx: tidx
+ cp tidx ${PREFIX}/bin
+
+install: ${PREFIX}/bin/tidx
+ cd perl; ${MAKE} $(MFLAGS) install
+
+clean:
+ -$(RM) -f tidx *.a perl/*.bs Makefile.old
+ cd perl; ${MAKE} $(MFLAGS) clean
+
+test: all
+ cd perl; make test
+
+dist: tidx.cpp tidx-lib.cpp fastq-lib.cpp utils.cpp tidx.h
+ tar --exclude=".svn" -cvhzf tidx.$(VER)-$(REL).tar.gz $^ sparsehash
diff --git a/clipper/tidx/README b/clipper/tidx/README
new file mode 100644
index 0000000..4b7c324
--- /dev/null
+++ b/clipper/tidx/README
@@ -0,0 +1,11 @@
+This program aims to index a text file.
+
+It should probably use a file-based btree, instead of reading the whole thing into RAM (DBSnp eats 1.2GB ram).
+
+The important pert of th algorithm is the part that
+
+a) sorts
+b) removes overlaps
+c) creates an index that can be searched trivially, rather than requiring an r-tree
+
+This could be generalized to n-dminensional speces as well.... by removing all possible overlapping regions
diff --git a/clipper/tidx/chr20.txt b/clipper/tidx/chr20.txt
new file mode 100644
index 0000000..192bfaf
--- /dev/null
+++ b/clipper/tidx/chr20.txt
@@ -0,0 +1,30738 @@
+chr20 hg19_knownGene CDS 68351 68408 0.000000 + 0 gene_id "DEFB125"; transcript_id "NM_153325:uc002wcw.3";
+chr20 hg19_knownGene exon 68351 68408 0.000000 + . gene_id "DEFB125"; transcript_id "NM_153325:uc002wcw.3";
+chr20 hg19_knownGene CDS 76646 77055 0.000000 + 2 gene_id "DEFB125"; transcript_id "NM_153325:uc002wcw.3";
+chr20 hg19_knownGene exon 76646 77296 0.000000 + . gene_id "DEFB125"; transcript_id "NM_153325:uc002wcw.3";
+chr20 hg19_knownGene CDS 123270 123327 0.000000 + 0 gene_id "DEFB126"; transcript_id "NM_030931:uc002wcx.3";
+chr20 hg19_knownGene exon 123252 123327 0.000000 + . gene_id "DEFB126"; transcript_id "NM_030931:uc002wcx.3";
+chr20 hg19_knownGene CDS 126056 126330 0.000000 + 2 gene_id "DEFB126"; transcript_id "NM_030931:uc002wcx.3";
+chr20 hg19_knownGene exon 126056 126392 0.000000 + . gene_id "DEFB126"; transcript_id "NM_030931:uc002wcx.3";
+chr20 hg19_knownGene CDS 138186 138234 0.000000 + 0 gene_id "DEFB127"; transcript_id "NM_139074:uc002wcy.1";
+chr20 hg19_knownGene exon 138186 138234 0.000000 + . gene_id "DEFB127"; transcript_id "NM_139074:uc002wcy.1";
+chr20 hg19_knownGene CDS 139415 139662 0.000000 + 2 gene_id "DEFB127"; transcript_id "NM_139074:uc002wcy.1";
+chr20 hg19_knownGene exon 139415 139804 0.000000 + . gene_id "DEFB127"; transcript_id "NM_139074:uc002wcy.1";
+chr20 hg19_knownGene CDS 168530 168759 0.000000 - 2 gene_id "DEFB128"; transcript_id "NM_001037732:uc002wcz.1";
+chr20 hg19_knownGene exon 168527 168759 0.000000 - . gene_id "DEFB128"; transcript_id "NM_001037732:uc002wcz.1";
+chr20 hg19_knownGene CDS 170216 170264 0.000000 - 0 gene_id "DEFB128"; transcript_id "NM_001037732:uc002wcz.1";
+chr20 hg19_knownGene exon 170216 170264 0.000000 - . gene_id "DEFB128"; transcript_id "NM_001037732:uc002wcz.1";
+chr20 hg19_knownGene CDS 207930 207987 0.000000 + 0 gene_id "DEFB129"; transcript_id "NM_080831:uc002wda.3";
+chr20 hg19_knownGene exon 207899 207987 0.000000 + . gene_id "DEFB129"; transcript_id "NM_080831:uc002wda.3";
+chr20 hg19_knownGene CDS 209919 210409 0.000000 + 2 gene_id "DEFB129"; transcript_id "NM_080831:uc002wda.3";
+chr20 hg19_knownGene exon 209919 210527 0.000000 + . gene_id "DEFB129"; transcript_id "NM_080831:uc002wda.3";
+chr20 hg19_knownGene CDS 238420 238477 0.000000 + 0 gene_id "DEFB132"; transcript_id "NM_207469:uc002wdb.3";
+chr20 hg19_knownGene exon 238377 238477 0.000000 + . gene_id "DEFB132"; transcript_id "NM_207469:uc002wdb.3";
+chr20 hg19_knownGene CDS 239718 239944 0.000000 + 2 gene_id "DEFB132"; transcript_id "NM_207469:uc002wdb.3";
+chr20 hg19_knownGene exon 239718 241736 0.000000 + . gene_id "DEFB132"; transcript_id "NM_207469:uc002wdb.3";
+chr20 hg19_knownGene CDS 257404 257520 0.000000 - 0 gene_id "C20orf96"; transcript_id "AK304526:uc010zpj.1";
+chr20 hg19_knownGene exon 256609 257520 0.000000 - . gene_id "C20orf96"; transcript_id "AK304526:uc010zpj.1";
+chr20 hg19_knownGene CDS 257685 257786 0.000000 - 0 gene_id "C20orf96"; transcript_id "AK304526:uc010zpj.1";
+chr20 hg19_knownGene exon 257685 257786 0.000000 - . gene_id "C20orf96"; transcript_id "AK304526:uc010zpj.1";
+chr20 hg19_knownGene CDS 257867 258024 0.000000 - 2 gene_id "C20orf96"; transcript_id "AK304526:uc010zpj.1";
+chr20 hg19_knownGene exon 257867 258024 0.000000 - . gene_id "C20orf96"; transcript_id "AK304526:uc010zpj.1";
+chr20 hg19_knownGene CDS 258971 259070 0.000000 - 0 gene_id "C20orf96"; transcript_id "AK304526:uc010zpj.1";
+chr20 hg19_knownGene exon 258971 259070 0.000000 - . gene_id "C20orf96"; transcript_id "AK304526:uc010zpj.1";
+chr20 hg19_knownGene CDS 259813 259971 0.000000 - 0 gene_id "C20orf96"; transcript_id "AK304526:uc010zpj.1";
+chr20 hg19_knownGene exon 259813 259971 0.000000 - . gene_id "C20orf96"; transcript_id "AK304526:uc010zpj.1";
+chr20 hg19_knownGene CDS 264604 264722 0.000000 - 2 gene_id "C20orf96"; transcript_id "AK304526:uc010zpj.1";
+chr20 hg19_knownGene exon 264604 264722 0.000000 - . gene_id "C20orf96"; transcript_id "AK304526:uc010zpj.1";
+chr20 hg19_knownGene CDS 270900 270981 0.000000 - 0 gene_id "C20orf96"; transcript_id "AK304526:uc010zpj.1";
+chr20 hg19_knownGene exon 270900 271079 0.000000 - . gene_id "C20orf96"; transcript_id "AK304526:uc010zpj.1";
+chr20 hg19_knownGene CDS 251851 251908 0.000000 - 1 gene_id "C20orf96"; transcript_id "NM_080571:uc021vzl.1";
+chr20 hg19_knownGene exon 251504 251908 0.000000 - . gene_id "C20orf96"; transcript_id "NM_080571:uc021vzl.1";
+chr20 hg19_knownGene CDS 256609 256727 0.000000 - 0 gene_id "C20orf96"; transcript_id "NM_080571:uc021vzl.1";
+chr20 hg19_knownGene exon 256609 256727 0.000000 - . gene_id "C20orf96"; transcript_id "NM_080571:uc021vzl.1";
+chr20 hg19_knownGene CDS 257434 257520 0.000000 - 0 gene_id "C20orf96"; transcript_id "NM_080571:uc021vzl.1";
+chr20 hg19_knownGene exon 257434 257520 0.000000 - . gene_id "C20orf96"; transcript_id "NM_080571:uc021vzl.1";
+chr20 hg19_knownGene CDS 257685 257786 0.000000 - 0 gene_id "C20orf96"; transcript_id "NM_080571:uc021vzl.1";
+chr20 hg19_knownGene exon 257685 257786 0.000000 - . gene_id "C20orf96"; transcript_id "NM_080571:uc021vzl.1";
+chr20 hg19_knownGene CDS 257867 258024 0.000000 - 2 gene_id "C20orf96"; transcript_id "NM_080571:uc021vzl.1";
+chr20 hg19_knownGene exon 257867 258024 0.000000 - . gene_id "C20orf96"; transcript_id "NM_080571:uc021vzl.1";
+chr20 hg19_knownGene CDS 258971 259070 0.000000 - 0 gene_id "C20orf96"; transcript_id "NM_080571:uc021vzl.1";
+chr20 hg19_knownGene exon 258971 259070 0.000000 - . gene_id "C20orf96"; transcript_id "NM_080571:uc021vzl.1";
+chr20 hg19_knownGene CDS 259813 259971 0.000000 - 0 gene_id "C20orf96"; transcript_id "NM_080571:uc021vzl.1";
+chr20 hg19_knownGene exon 259813 259971 0.000000 - . gene_id "C20orf96"; transcript_id "NM_080571:uc021vzl.1";
+chr20 hg19_knownGene CDS 264604 264722 0.000000 - 2 gene_id "C20orf96"; transcript_id "NM_080571:uc021vzl.1";
+chr20 hg19_knownGene exon 264604 264722 0.000000 - . gene_id "C20orf96"; transcript_id "NM_080571:uc021vzl.1";
+chr20 hg19_knownGene CDS 270200 270317 0.000000 - 0 gene_id "C20orf96"; transcript_id "NM_080571:uc021vzl.1";
+chr20 hg19_knownGene exon 270200 270317 0.000000 - . gene_id "C20orf96"; transcript_id "NM_080571:uc021vzl.1";
+chr20 hg19_knownGene CDS 270900 270948 0.000000 - 1 gene_id "C20orf96"; transcript_id "NM_080571:uc021vzl.1";
+chr20 hg19_knownGene exon 270900 270948 0.000000 - . gene_id "C20orf96"; transcript_id "NM_080571:uc021vzl.1";
+chr20 hg19_knownGene CDS 271228 271244 0.000000 - 0 gene_id "C20orf96"; transcript_id "NM_080571:uc021vzl.1";
+chr20 hg19_knownGene exon 271228 271419 0.000000 - . gene_id "C20orf96"; transcript_id "NM_080571:uc021vzl.1";
+chr20 hg19_knownGene CDS 251851 251908 0.000000 - 1 gene_id "C20orf96"; transcript_id "NM_153269:uc002wde.2";
+chr20 hg19_knownGene exon 251504 251908 0.000000 - . gene_id "C20orf96"; transcript_id "NM_153269:uc002wde.2";
+chr20 hg19_knownGene CDS 256609 256727 0.000000 - 0 gene_id "C20orf96"; transcript_id "NM_153269:uc002wde.2";
+chr20 hg19_knownGene exon 256609 256727 0.000000 - . gene_id "C20orf96"; transcript_id "NM_153269:uc002wde.2";
+chr20 hg19_knownGene CDS 257434 257520 0.000000 - 0 gene_id "C20orf96"; transcript_id "NM_153269:uc002wde.2";
+chr20 hg19_knownGene exon 257434 257520 0.000000 - . gene_id "C20orf96"; transcript_id "NM_153269:uc002wde.2";
+chr20 hg19_knownGene CDS 257685 257786 0.000000 - 0 gene_id "C20orf96"; transcript_id "NM_153269:uc002wde.2";
+chr20 hg19_knownGene exon 257685 257786 0.000000 - . gene_id "C20orf96"; transcript_id "NM_153269:uc002wde.2";
+chr20 hg19_knownGene CDS 257867 258024 0.000000 - 2 gene_id "C20orf96"; transcript_id "NM_153269:uc002wde.2";
+chr20 hg19_knownGene exon 257867 258024 0.000000 - . gene_id "C20orf96"; transcript_id "NM_153269:uc002wde.2";
+chr20 hg19_knownGene CDS 258971 259070 0.000000 - 0 gene_id "C20orf96"; transcript_id "NM_153269:uc002wde.2";
+chr20 hg19_knownGene exon 258971 259070 0.000000 - . gene_id "C20orf96"; transcript_id "NM_153269:uc002wde.2";
+chr20 hg19_knownGene CDS 259813 259971 0.000000 - 0 gene_id "C20orf96"; transcript_id "NM_153269:uc002wde.2";
+chr20 hg19_knownGene exon 259813 259971 0.000000 - . gene_id "C20orf96"; transcript_id "NM_153269:uc002wde.2";
+chr20 hg19_knownGene CDS 264604 264722 0.000000 - 2 gene_id "C20orf96"; transcript_id "NM_153269:uc002wde.2";
+chr20 hg19_knownGene exon 264604 264722 0.000000 - . gene_id "C20orf96"; transcript_id "NM_153269:uc002wde.2";
+chr20 hg19_knownGene CDS 270200 270317 0.000000 - 0 gene_id "C20orf96"; transcript_id "NM_153269:uc002wde.2";
+chr20 hg19_knownGene exon 270200 270317 0.000000 - . gene_id "C20orf96"; transcript_id "NM_153269:uc002wde.2";
+chr20 hg19_knownGene CDS 270900 270948 0.000000 - 1 gene_id "C20orf96"; transcript_id "NM_153269:uc002wde.2";
+chr20 hg19_knownGene exon 270900 270948 0.000000 - . gene_id "C20orf96"; transcript_id "NM_153269:uc002wde.2";
+chr20 hg19_knownGene CDS 271232 271251 0.000000 - 0 gene_id "C20orf96"; transcript_id "NM_153269:uc002wde.2";
+chr20 hg19_knownGene exon 271232 271419 0.000000 - . gene_id "C20orf96"; transcript_id "NM_153269:uc002wde.2";
+chr20 hg19_knownGene CDS 251851 251908 0.000000 - 1 gene_id "C20orf96"; transcript_id "BC144648:uc010zpi.2";
+chr20 hg19_knownGene exon 251504 251908 0.000000 - . gene_id "C20orf96"; transcript_id "BC144648:uc010zpi.2";
+chr20 hg19_knownGene CDS 256609 256727 0.000000 - 0 gene_id "C20orf96"; transcript_id "BC144648:uc010zpi.2";
+chr20 hg19_knownGene exon 256609 256727 0.000000 - . gene_id "C20orf96"; transcript_id "BC144648:uc010zpi.2";
+chr20 hg19_knownGene CDS 257434 257520 0.000000 - 0 gene_id "C20orf96"; transcript_id "BC144648:uc010zpi.2";
+chr20 hg19_knownGene exon 257434 257520 0.000000 - . gene_id "C20orf96"; transcript_id "BC144648:uc010zpi.2";
+chr20 hg19_knownGene CDS 257685 257786 0.000000 - 0 gene_id "C20orf96"; transcript_id "BC144648:uc010zpi.2";
+chr20 hg19_knownGene exon 257685 257786 0.000000 - . gene_id "C20orf96"; transcript_id "BC144648:uc010zpi.2";
+chr20 hg19_knownGene CDS 257867 258024 0.000000 - 2 gene_id "C20orf96"; transcript_id "BC144648:uc010zpi.2";
+chr20 hg19_knownGene exon 257867 258024 0.000000 - . gene_id "C20orf96"; transcript_id "BC144648:uc010zpi.2";
+chr20 hg19_knownGene CDS 258971 259070 0.000000 - 0 gene_id "C20orf96"; transcript_id "BC144648:uc010zpi.2";
+chr20 hg19_knownGene exon 258971 259070 0.000000 - . gene_id "C20orf96"; transcript_id "BC144648:uc010zpi.2";
+chr20 hg19_knownGene CDS 259813 259971 0.000000 - 0 gene_id "C20orf96"; transcript_id "BC144648:uc010zpi.2";
+chr20 hg19_knownGene exon 259813 259971 0.000000 - . gene_id "C20orf96"; transcript_id "BC144648:uc010zpi.2";
+chr20 hg19_knownGene CDS 264604 264722 0.000000 - 2 gene_id "C20orf96"; transcript_id "BC144648:uc010zpi.2";
+chr20 hg19_knownGene exon 264604 264722 0.000000 - . gene_id "C20orf96"; transcript_id "BC144648:uc010zpi.2";
+chr20 hg19_knownGene CDS 270200 270227 0.000000 - 0 gene_id "C20orf96"; transcript_id "BC144648:uc010zpi.2";
+chr20 hg19_knownGene exon 270200 270317 0.000000 - . gene_id "C20orf96"; transcript_id "BC144648:uc010zpi.2";
+chr20 hg19_knownGene exon 271232 271419 0.000000 - . gene_id "C20orf96"; transcript_id "BC144648:uc010zpi.2";
+chr20 hg19_knownGene CDS 257404 257520 0.000000 - 0 gene_id "C20orf96"; transcript_id "AK302223:uc010zpk.2";
+chr20 hg19_knownGene exon 256609 257520 0.000000 - . gene_id "C20orf96"; transcript_id "AK302223:uc010zpk.2";
+chr20 hg19_knownGene CDS 257685 257786 0.000000 - 0 gene_id "C20orf96"; transcript_id "AK302223:uc010zpk.2";
+chr20 hg19_knownGene exon 257685 257786 0.000000 - . gene_id "C20orf96"; transcript_id "AK302223:uc010zpk.2";
+chr20 hg19_knownGene CDS 257867 258024 0.000000 - 2 gene_id "C20orf96"; transcript_id "AK302223:uc010zpk.2";
+chr20 hg19_knownGene exon 257867 258024 0.000000 - . gene_id "C20orf96"; transcript_id "AK302223:uc010zpk.2";
+chr20 hg19_knownGene CDS 258971 259070 0.000000 - 0 gene_id "C20orf96"; transcript_id "AK302223:uc010zpk.2";
+chr20 hg19_knownGene exon 258971 259070 0.000000 - . gene_id "C20orf96"; transcript_id "AK302223:uc010zpk.2";
+chr20 hg19_knownGene CDS 259813 259971 0.000000 - 0 gene_id "C20orf96"; transcript_id "AK302223:uc010zpk.2";
+chr20 hg19_knownGene exon 259813 259971 0.000000 - . gene_id "C20orf96"; transcript_id "AK302223:uc010zpk.2";
+chr20 hg19_knownGene CDS 264604 264722 0.000000 - 2 gene_id "C20orf96"; transcript_id "AK302223:uc010zpk.2";
+chr20 hg19_knownGene exon 264604 264722 0.000000 - . gene_id "C20orf96"; transcript_id "AK302223:uc010zpk.2";
+chr20 hg19_knownGene CDS 271232 271232 0.000000 - 0 gene_id "C20orf96"; transcript_id "AK302223:uc010zpk.2";
+chr20 hg19_knownGene exon 271232 271419 0.000000 - . gene_id "C20orf96"; transcript_id "AK302223:uc010zpk.2";
+chr20 hg19_knownGene CDS 278228 279439 0.000000 + 0 gene_id "ZCCHC3"; transcript_id "NM_033089:uc002wdf.3";
+chr20 hg19_knownGene exon 278204 280963 0.000000 + . gene_id "ZCCHC3"; transcript_id "NM_033089:uc002wdf.3";
+chr20 hg19_knownGene CDS 306569 307513 0.000000 + 0 gene_id "SOX12"; transcript_id "NM_006943:uc002wdh.3";
+chr20 hg19_knownGene exon 306239 310867 0.000000 + . gene_id "SOX12"; transcript_id "NM_006943:uc002wdh.3";
+chr20 hg19_knownGene exon 327370 327786 0.000000 + . gene_id "NRSN2"; transcript_id "NM_024958:uc002wdi.4";
+chr20 hg19_knownGene exon 329893 330007 0.000000 + . gene_id "NRSN2"; transcript_id "NM_024958:uc002wdi.4";
+chr20 hg19_knownGene CDS 330288 330476 0.000000 + 0 gene_id "NRSN2"; transcript_id "NM_024958:uc002wdi.4";
+chr20 hg19_knownGene exon 330282 330476 0.000000 + . gene_id "NRSN2"; transcript_id "NM_024958:uc002wdi.4";
+chr20 hg19_knownGene CDS 333854 334276 0.000000 + 0 gene_id "NRSN2"; transcript_id "NM_024958:uc002wdi.4";
+chr20 hg19_knownGene exon 333854 335512 0.000000 + . gene_id "NRSN2"; transcript_id "NM_024958:uc002wdi.4";
+chr20 hg19_knownGene exon 361308 361813 0.000000 + . gene_id "TRIB3"; transcript_id "NM_021158:uc002wdm.3";
+chr20 hg19_knownGene CDS 368655 368945 0.000000 + 0 gene_id "TRIB3"; transcript_id "NM_021158:uc002wdm.3";
+chr20 hg19_knownGene exon 368655 368945 0.000000 + . gene_id "TRIB3"; transcript_id "NM_021158:uc002wdm.3";
+chr20 hg19_knownGene CDS 371931 372223 0.000000 + 0 gene_id "TRIB3"; transcript_id "NM_021158:uc002wdm.3";
+chr20 hg19_knownGene exon 371931 372223 0.000000 + . gene_id "TRIB3"; transcript_id "NM_021158:uc002wdm.3";
+chr20 hg19_knownGene CDS 376842 377331 0.000000 + 1 gene_id "TRIB3"; transcript_id "NM_021158:uc002wdm.3";
+chr20 hg19_knownGene exon 376842 378203 0.000000 + . gene_id "TRIB3"; transcript_id "NM_021158:uc002wdm.3";
+chr20 hg19_knownGene exon 361941 362144 0.000000 + . gene_id "TRIB3"; transcript_id "AK297546:uc002wdn.3";
+chr20 hg19_knownGene CDS 363190 363270 0.000000 + 0 gene_id "TRIB3"; transcript_id "AK297546:uc002wdn.3";
+chr20 hg19_knownGene exon 363077 363270 0.000000 + . gene_id "TRIB3"; transcript_id "AK297546:uc002wdn.3";
+chr20 hg19_knownGene CDS 368655 368945 0.000000 + 0 gene_id "TRIB3"; transcript_id "AK297546:uc002wdn.3";
+chr20 hg19_knownGene exon 368655 368945 0.000000 + . gene_id "TRIB3"; transcript_id "AK297546:uc002wdn.3";
+chr20 hg19_knownGene CDS 371931 372223 0.000000 + 0 gene_id "TRIB3"; transcript_id "AK297546:uc002wdn.3";
+chr20 hg19_knownGene exon 371931 372223 0.000000 + . gene_id "TRIB3"; transcript_id "AK297546:uc002wdn.3";
+chr20 hg19_knownGene CDS 376842 377331 0.000000 + 1 gene_id "TRIB3"; transcript_id "AK297546:uc002wdn.3";
+chr20 hg19_knownGene exon 376842 378203 0.000000 + . gene_id "TRIB3"; transcript_id "AK297546:uc002wdn.3";
+chr20 hg19_knownGene exon 388709 389423 0.000000 + . gene_id "RBCK1"; transcript_id "AK309414:uc002wdo.3";
+chr20 hg19_knownGene exon 390525 390669 0.000000 + . gene_id "RBCK1"; transcript_id "AK309414:uc002wdo.3";
+chr20 hg19_knownGene exon 391056 391408 0.000000 + . gene_id "RBCK1"; transcript_id "AK309414:uc002wdo.3";
+chr20 hg19_knownGene CDS 389402 389423 0.000000 + 0 gene_id "RBCK1"; transcript_id "AK303357:uc010zpl.1";
+chr20 hg19_knownGene exon 388709 389423 0.000000 + . gene_id "RBCK1"; transcript_id "AK303357:uc010zpl.1";
+chr20 hg19_knownGene CDS 390525 390669 0.000000 + 2 gene_id "RBCK1"; transcript_id "AK303357:uc010zpl.1";
+chr20 hg19_knownGene exon 390525 390669 0.000000 + . gene_id "RBCK1"; transcript_id "AK303357:uc010zpl.1";
+chr20 hg19_knownGene CDS 398170 398263 0.000000 + 1 gene_id "RBCK1"; transcript_id "AK303357:uc010zpl.1";
+chr20 hg19_knownGene exon 398170 398263 0.000000 + . gene_id "RBCK1"; transcript_id "AK303357:uc010zpl.1";
+chr20 hg19_knownGene CDS 398376 398574 0.000000 + 0 gene_id "RBCK1"; transcript_id "AK303357:uc010zpl.1";
+chr20 hg19_knownGene exon 398376 398574 0.000000 + . gene_id "RBCK1"; transcript_id "AK303357:uc010zpl.1";
+chr20 hg19_knownGene CDS 399991 400112 0.000000 + 2 gene_id "RBCK1"; transcript_id "AK303357:uc010zpl.1";
+chr20 hg19_knownGene exon 399991 400112 0.000000 + . gene_id "RBCK1"; transcript_id "AK303357:uc010zpl.1";
+chr20 hg19_knownGene CDS 400202 400426 0.000000 + 0 gene_id "RBCK1"; transcript_id "AK303357:uc010zpl.1";
+chr20 hg19_knownGene exon 400202 400504 0.000000 + . gene_id "RBCK1"; transcript_id "AK303357:uc010zpl.1";
+chr20 hg19_knownGene exon 388709 389423 0.000000 + . gene_id "RBCK1"; transcript_id "AK297524:uc010zpm.1";
+chr20 hg19_knownGene exon 390525 390669 0.000000 + . gene_id "RBCK1"; transcript_id "AK297524:uc010zpm.1";
+chr20 hg19_knownGene exon 398170 398263 0.000000 + . gene_id "RBCK1"; transcript_id "AK297524:uc010zpm.1";
+chr20 hg19_knownGene exon 398376 398574 0.000000 + . gene_id "RBCK1"; transcript_id "AK297524:uc010zpm.1";
+chr20 hg19_knownGene exon 399991 400112 0.000000 + . gene_id "RBCK1"; transcript_id "AK297524:uc010zpm.1";
+chr20 hg19_knownGene exon 400202 400375 0.000000 + . gene_id "RBCK1"; transcript_id "AK297524:uc010zpm.1";
+chr20 hg19_knownGene exon 402771 402882 0.000000 + . gene_id "RBCK1"; transcript_id "AK297524:uc010zpm.1";
+chr20 hg19_knownGene exon 407957 408136 0.000000 + . gene_id "RBCK1"; transcript_id "AK297524:uc010zpm.1";
+chr20 hg19_knownGene exon 409135 409233 0.000000 + . gene_id "RBCK1"; transcript_id "AK297524:uc010zpm.1";
+chr20 hg19_knownGene CDS 389402 389423 0.000000 + 0 gene_id "RBCK1"; transcript_id "NM_031229:uc002wdp.4";
+chr20 hg19_knownGene exon 388709 389423 0.000000 + . gene_id "RBCK1"; transcript_id "NM_031229:uc002wdp.4";
+chr20 hg19_knownGene CDS 390525 390669 0.000000 + 2 gene_id "RBCK1"; transcript_id "NM_031229:uc002wdp.4";
+chr20 hg19_knownGene exon 390525 390669 0.000000 + . gene_id "RBCK1"; transcript_id "NM_031229:uc002wdp.4";
+chr20 hg19_knownGene CDS 398170 398263 0.000000 + 1 gene_id "RBCK1"; transcript_id "NM_031229:uc002wdp.4";
+chr20 hg19_knownGene exon 398170 398263 0.000000 + . gene_id "RBCK1"; transcript_id "NM_031229:uc002wdp.4";
+chr20 hg19_knownGene CDS 398376 398574 0.000000 + 0 gene_id "RBCK1"; transcript_id "NM_031229:uc002wdp.4";
+chr20 hg19_knownGene exon 398376 398574 0.000000 + . gene_id "RBCK1"; transcript_id "NM_031229:uc002wdp.4";
+chr20 hg19_knownGene CDS 399991 400112 0.000000 + 2 gene_id "RBCK1"; transcript_id "NM_031229:uc002wdp.4";
+chr20 hg19_knownGene exon 399991 400112 0.000000 + . gene_id "RBCK1"; transcript_id "NM_031229:uc002wdp.4";
+chr20 hg19_knownGene CDS 400202 400375 0.000000 + 0 gene_id "RBCK1"; transcript_id "NM_031229:uc002wdp.4";
+chr20 hg19_knownGene exon 400202 400375 0.000000 + . gene_id "RBCK1"; transcript_id "NM_031229:uc002wdp.4";
+chr20 hg19_knownGene CDS 401515 401675 0.000000 + 0 gene_id "RBCK1"; transcript_id "NM_031229:uc002wdp.4";
+chr20 hg19_knownGene exon 401515 401675 0.000000 + . gene_id "RBCK1"; transcript_id "NM_031229:uc002wdp.4";
+chr20 hg19_knownGene CDS 402771 402882 0.000000 + 1 gene_id "RBCK1"; transcript_id "NM_031229:uc002wdp.4";
+chr20 hg19_knownGene exon 402771 402882 0.000000 + . gene_id "RBCK1"; transcript_id "NM_031229:uc002wdp.4";
+chr20 hg19_knownGene CDS 407957 408136 0.000000 + 0 gene_id "RBCK1"; transcript_id "NM_031229:uc002wdp.4";
+chr20 hg19_knownGene exon 407957 408136 0.000000 + . gene_id "RBCK1"; transcript_id "NM_031229:uc002wdp.4";
+chr20 hg19_knownGene CDS 409135 409233 0.000000 + 0 gene_id "RBCK1"; transcript_id "NM_031229:uc002wdp.4";
+chr20 hg19_knownGene exon 409135 409233 0.000000 + . gene_id "RBCK1"; transcript_id "NM_031229:uc002wdp.4";
+chr20 hg19_knownGene CDS 409595 409738 0.000000 + 0 gene_id "RBCK1"; transcript_id "NM_031229:uc002wdp.4";
+chr20 hg19_knownGene exon 409595 409738 0.000000 + . gene_id "RBCK1"; transcript_id "NM_031229:uc002wdp.4";
+chr20 hg19_knownGene CDS 410994 411071 0.000000 + 0 gene_id "RBCK1"; transcript_id "NM_031229:uc002wdp.4";
+chr20 hg19_knownGene exon 410994 411610 0.000000 + . gene_id "RBCK1"; transcript_id "NM_031229:uc002wdp.4";
+chr20 hg19_knownGene CDS 389383 389423 0.000000 + 0 gene_id "RBCK1"; transcript_id "NM_006462:uc002wdq.4";
+chr20 hg19_knownGene exon 388709 389423 0.000000 + . gene_id "RBCK1"; transcript_id "NM_006462:uc002wdq.4";
+chr20 hg19_knownGene CDS 398170 398263 0.000000 + 1 gene_id "RBCK1"; transcript_id "NM_006462:uc002wdq.4";
+chr20 hg19_knownGene exon 398170 398263 0.000000 + . gene_id "RBCK1"; transcript_id "NM_006462:uc002wdq.4";
+chr20 hg19_knownGene CDS 398376 398574 0.000000 + 0 gene_id "RBCK1"; transcript_id "NM_006462:uc002wdq.4";
+chr20 hg19_knownGene exon 398376 398574 0.000000 + . gene_id "RBCK1"; transcript_id "NM_006462:uc002wdq.4";
+chr20 hg19_knownGene CDS 399991 400112 0.000000 + 2 gene_id "RBCK1"; transcript_id "NM_006462:uc002wdq.4";
+chr20 hg19_knownGene exon 399991 400112 0.000000 + . gene_id "RBCK1"; transcript_id "NM_006462:uc002wdq.4";
+chr20 hg19_knownGene CDS 400202 400375 0.000000 + 0 gene_id "RBCK1"; transcript_id "NM_006462:uc002wdq.4";
+chr20 hg19_knownGene exon 400202 400375 0.000000 + . gene_id "RBCK1"; transcript_id "NM_006462:uc002wdq.4";
+chr20 hg19_knownGene CDS 401515 401675 0.000000 + 0 gene_id "RBCK1"; transcript_id "NM_006462:uc002wdq.4";
+chr20 hg19_knownGene exon 401515 401675 0.000000 + . gene_id "RBCK1"; transcript_id "NM_006462:uc002wdq.4";
+chr20 hg19_knownGene CDS 402771 402882 0.000000 + 1 gene_id "RBCK1"; transcript_id "NM_006462:uc002wdq.4";
+chr20 hg19_knownGene exon 402771 402882 0.000000 + . gene_id "RBCK1"; transcript_id "NM_006462:uc002wdq.4";
+chr20 hg19_knownGene CDS 407957 408136 0.000000 + 0 gene_id "RBCK1"; transcript_id "NM_006462:uc002wdq.4";
+chr20 hg19_knownGene exon 407957 408136 0.000000 + . gene_id "RBCK1"; transcript_id "NM_006462:uc002wdq.4";
+chr20 hg19_knownGene CDS 409135 409233 0.000000 + 0 gene_id "RBCK1"; transcript_id "NM_006462:uc002wdq.4";
+chr20 hg19_knownGene exon 409135 409233 0.000000 + . gene_id "RBCK1"; transcript_id "NM_006462:uc002wdq.4";
+chr20 hg19_knownGene CDS 409595 409738 0.000000 + 0 gene_id "RBCK1"; transcript_id "NM_006462:uc002wdq.4";
+chr20 hg19_knownGene exon 409595 409738 0.000000 + . gene_id "RBCK1"; transcript_id "NM_006462:uc002wdq.4";
+chr20 hg19_knownGene CDS 410994 411071 0.000000 + 0 gene_id "RBCK1"; transcript_id "NM_006462:uc002wdq.4";
+chr20 hg19_knownGene exon 410994 411610 0.000000 + . gene_id "RBCK1"; transcript_id "NM_006462:uc002wdq.4";
+chr20 hg19_knownGene exon 388709 389423 0.000000 + . gene_id "RBCK1"; transcript_id "BC014116:uc010fzy.3";
+chr20 hg19_knownGene exon 390525 390669 0.000000 + . gene_id "RBCK1"; transcript_id "BC014116:uc010fzy.3";
+chr20 hg19_knownGene exon 398170 398263 0.000000 + . gene_id "RBCK1"; transcript_id "BC014116:uc010fzy.3";
+chr20 hg19_knownGene exon 398376 398574 0.000000 + . gene_id "RBCK1"; transcript_id "BC014116:uc010fzy.3";
+chr20 hg19_knownGene exon 399991 400112 0.000000 + . gene_id "RBCK1"; transcript_id "BC014116:uc010fzy.3";
+chr20 hg19_knownGene exon 400202 400375 0.000000 + . gene_id "RBCK1"; transcript_id "BC014116:uc010fzy.3";
+chr20 hg19_knownGene exon 401515 401650 0.000000 + . gene_id "RBCK1"; transcript_id "BC014116:uc010fzy.3";
+chr20 hg19_knownGene exon 402771 402882 0.000000 + . gene_id "RBCK1"; transcript_id "BC014116:uc010fzy.3";
+chr20 hg19_knownGene exon 407957 408136 0.000000 + . gene_id "RBCK1"; transcript_id "BC014116:uc010fzy.3";
+chr20 hg19_knownGene exon 409135 409233 0.000000 + . gene_id "RBCK1"; transcript_id "BC014116:uc010fzy.3";
+chr20 hg19_knownGene exon 409595 409738 0.000000 + . gene_id "RBCK1"; transcript_id "BC014116:uc010fzy.3";
+chr20 hg19_knownGene exon 410994 411610 0.000000 + . gene_id "RBCK1"; transcript_id "BC014116:uc010fzy.3";
+chr20 hg19_knownGene exon 388709 389423 0.000000 + . gene_id "RBCK1"; transcript_id "BC000983:uc002wdr.4";
+chr20 hg19_knownGene exon 398170 398263 0.000000 + . gene_id "RBCK1"; transcript_id "BC000983:uc002wdr.4";
+chr20 hg19_knownGene CDS 398464 398574 0.000000 + 0 gene_id "RBCK1"; transcript_id "BC000983:uc002wdr.4";
+chr20 hg19_knownGene exon 398376 398574 0.000000 + . gene_id "RBCK1"; transcript_id "BC000983:uc002wdr.4";
+chr20 hg19_knownGene CDS 399991 400112 0.000000 + 0 gene_id "RBCK1"; transcript_id "BC000983:uc002wdr.4";
+chr20 hg19_knownGene exon 399991 400112 0.000000 + . gene_id "RBCK1"; transcript_id "BC000983:uc002wdr.4";
+chr20 hg19_knownGene CDS 400202 400375 0.000000 + 1 gene_id "RBCK1"; transcript_id "BC000983:uc002wdr.4";
+chr20 hg19_knownGene exon 400202 400375 0.000000 + . gene_id "RBCK1"; transcript_id "BC000983:uc002wdr.4";
+chr20 hg19_knownGene CDS 402771 402882 0.000000 + 1 gene_id "RBCK1"; transcript_id "BC000983:uc002wdr.4";
+chr20 hg19_knownGene exon 402771 402882 0.000000 + . gene_id "RBCK1"; transcript_id "BC000983:uc002wdr.4";
+chr20 hg19_knownGene CDS 407957 408136 0.000000 + 0 gene_id "RBCK1"; transcript_id "BC000983:uc002wdr.4";
+chr20 hg19_knownGene exon 407957 408136 0.000000 + . gene_id "RBCK1"; transcript_id "BC000983:uc002wdr.4";
+chr20 hg19_knownGene CDS 409135 409233 0.000000 + 0 gene_id "RBCK1"; transcript_id "BC000983:uc002wdr.4";
+chr20 hg19_knownGene exon 409135 409233 0.000000 + . gene_id "RBCK1"; transcript_id "BC000983:uc002wdr.4";
+chr20 hg19_knownGene CDS 409595 409738 0.000000 + 0 gene_id "RBCK1"; transcript_id "BC000983:uc002wdr.4";
+chr20 hg19_knownGene exon 409595 409738 0.000000 + . gene_id "RBCK1"; transcript_id "BC000983:uc002wdr.4";
+chr20 hg19_knownGene CDS 410994 411071 0.000000 + 0 gene_id "RBCK1"; transcript_id "BC000983:uc002wdr.4";
+chr20 hg19_knownGene exon 410994 411610 0.000000 + . gene_id "RBCK1"; transcript_id "BC000983:uc002wdr.4";
+chr20 hg19_knownGene exon 416126 417600 0.000000 - . gene_id "DQ588114"; transcript_id "DQ588114:uc021vzm.1";
+chr20 hg19_knownGene CDS 419233 419485 0.000000 - 1 gene_id "TBC1D20"; transcript_id "NM_144628:uc002wds.3";
+chr20 hg19_knownGene exon 416124 419485 0.000000 - . gene_id "TBC1D20"; transcript_id "NM_144628:uc002wds.3";
+chr20 hg19_knownGene CDS 419752 419939 0.000000 - 0 gene_id "TBC1D20"; transcript_id "NM_144628:uc002wds.3";
+chr20 hg19_knownGene exon 419752 419939 0.000000 - . gene_id "TBC1D20"; transcript_id "NM_144628:uc002wds.3";
+chr20 hg19_knownGene CDS 420892 421033 0.000000 - 1 gene_id "TBC1D20"; transcript_id "NM_144628:uc002wds.3";
+chr20 hg19_knownGene exon 420892 421033 0.000000 - . gene_id "TBC1D20"; transcript_id "NM_144628:uc002wds.3";
+chr20 hg19_knownGene CDS 422232 422333 0.000000 - 1 gene_id "TBC1D20"; transcript_id "NM_144628:uc002wds.3";
+chr20 hg19_knownGene exon 422232 422333 0.000000 - . gene_id "TBC1D20"; transcript_id "NM_144628:uc002wds.3";
+chr20 hg19_knownGene CDS 422501 422687 0.000000 - 2 gene_id "TBC1D20"; transcript_id "NM_144628:uc002wds.3";
+chr20 hg19_knownGene exon 422501 422687 0.000000 - . gene_id "TBC1D20"; transcript_id "NM_144628:uc002wds.3";
+chr20 hg19_knownGene CDS 425694 425774 0.000000 - 2 gene_id "TBC1D20"; transcript_id "NM_144628:uc002wds.3";
+chr20 hg19_knownGene exon 425694 425774 0.000000 - . gene_id "TBC1D20"; transcript_id "NM_144628:uc002wds.3";
+chr20 hg19_knownGene CDS 428533 428718 0.000000 - 2 gene_id "TBC1D20"; transcript_id "NM_144628:uc002wds.3";
+chr20 hg19_knownGene exon 428533 428718 0.000000 - . gene_id "TBC1D20"; transcript_id "NM_144628:uc002wds.3";
+chr20 hg19_knownGene CDS 442980 443049 0.000000 - 0 gene_id "TBC1D20"; transcript_id "NM_144628:uc002wds.3";
+chr20 hg19_knownGene exon 442980 443187 0.000000 - . gene_id "TBC1D20"; transcript_id "NM_144628:uc002wds.3";
+chr20 hg19_knownGene exon 416124 416614 0.000000 - . gene_id "TBC1D20"; transcript_id "BC014983:uc002wdt.3";
+chr20 hg19_knownGene exon 418084 418242 0.000000 - . gene_id "TBC1D20"; transcript_id "BC014983:uc002wdt.3";
+chr20 hg19_knownGene exon 419194 419485 0.000000 - . gene_id "TBC1D20"; transcript_id "BC014983:uc002wdt.3";
+chr20 hg19_knownGene exon 419752 419939 0.000000 - . gene_id "TBC1D20"; transcript_id "BC014983:uc002wdt.3";
+chr20 hg19_knownGene exon 420892 421033 0.000000 - . gene_id "TBC1D20"; transcript_id "BC014983:uc002wdt.3";
+chr20 hg19_knownGene exon 422232 422333 0.000000 - . gene_id "TBC1D20"; transcript_id "BC014983:uc002wdt.3";
+chr20 hg19_knownGene exon 422501 422687 0.000000 - . gene_id "TBC1D20"; transcript_id "BC014983:uc002wdt.3";
+chr20 hg19_knownGene exon 425694 425774 0.000000 - . gene_id "TBC1D20"; transcript_id "BC014983:uc002wdt.3";
+chr20 hg19_knownGene exon 428533 428718 0.000000 - . gene_id "TBC1D20"; transcript_id "BC014983:uc002wdt.3";
+chr20 hg19_knownGene exon 442980 443187 0.000000 - . gene_id "TBC1D20"; transcript_id "BC014983:uc002wdt.3";
+chr20 hg19_knownGene CDS 419233 419485 0.000000 - 1 gene_id "TBC1D20"; transcript_id "AK095110:uc002wdv.3";
+chr20 hg19_knownGene exon 416124 419485 0.000000 - . gene_id "TBC1D20"; transcript_id "AK095110:uc002wdv.3";
+chr20 hg19_knownGene CDS 419752 419939 0.000000 - 0 gene_id "TBC1D20"; transcript_id "AK095110:uc002wdv.3";
+chr20 hg19_knownGene exon 419752 419939 0.000000 - . gene_id "TBC1D20"; transcript_id "AK095110:uc002wdv.3";
+chr20 hg19_knownGene CDS 420892 421033 0.000000 - 1 gene_id "TBC1D20"; transcript_id "AK095110:uc002wdv.3";
+chr20 hg19_knownGene exon 420892 421033 0.000000 - . gene_id "TBC1D20"; transcript_id "AK095110:uc002wdv.3";
+chr20 hg19_knownGene CDS 422232 422326 0.000000 - 0 gene_id "TBC1D20"; transcript_id "AK095110:uc002wdv.3";
+chr20 hg19_knownGene exon 422232 422687 0.000000 - . gene_id "TBC1D20"; transcript_id "AK095110:uc002wdv.3";
+chr20 hg19_knownGene exon 425694 425774 0.000000 - . gene_id "TBC1D20"; transcript_id "AK095110:uc002wdv.3";
+chr20 hg19_knownGene exon 428533 428718 0.000000 - . gene_id "TBC1D20"; transcript_id "AK095110:uc002wdv.3";
+chr20 hg19_knownGene exon 442980 443187 0.000000 - . gene_id "TBC1D20"; transcript_id "AK095110:uc002wdv.3";
+chr20 hg19_knownGene CDS 464608 464720 0.000000 - 2 gene_id "CSNK2A1"; transcript_id "NM_177559:uc002wdw.1";
+chr20 hg19_knownGene exon 463338 464720 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_177559:uc002wdw.1";
+chr20 hg19_knownGene CDS 467020 467106 0.000000 - 2 gene_id "CSNK2A1"; transcript_id "NM_177559:uc002wdw.1";
+chr20 hg19_knownGene exon 467020 467106 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_177559:uc002wdw.1";
+chr20 hg19_knownGene CDS 468071 468219 0.000000 - 1 gene_id "CSNK2A1"; transcript_id "NM_177559:uc002wdw.1";
+chr20 hg19_knownGene exon 468071 468219 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_177559:uc002wdw.1";
+chr20 hg19_knownGene CDS 469322 469422 0.000000 - 0 gene_id "CSNK2A1"; transcript_id "NM_177559:uc002wdw.1";
+chr20 hg19_knownGene exon 469322 469422 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_177559:uc002wdw.1";
+chr20 hg19_knownGene CDS 470424 470525 0.000000 - 0 gene_id "CSNK2A1"; transcript_id "NM_177559:uc002wdw.1";
+chr20 hg19_knownGene exon 470424 470525 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_177559:uc002wdw.1";
+chr20 hg19_knownGene CDS 472898 473008 0.000000 - 0 gene_id "CSNK2A1"; transcript_id "NM_177559:uc002wdw.1";
+chr20 hg19_knownGene exon 472898 473008 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_177559:uc002wdw.1";
+chr20 hg19_knownGene CDS 476363 476446 0.000000 - 0 gene_id "CSNK2A1"; transcript_id "NM_177559:uc002wdw.1";
+chr20 hg19_knownGene exon 476363 476446 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_177559:uc002wdw.1";
+chr20 hg19_knownGene CDS 478365 478424 0.000000 - 0 gene_id "CSNK2A1"; transcript_id "NM_177559:uc002wdw.1";
+chr20 hg19_knownGene exon 478365 478424 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_177559:uc002wdw.1";
+chr20 hg19_knownGene CDS 479899 479949 0.000000 - 0 gene_id "CSNK2A1"; transcript_id "NM_177559:uc002wdw.1";
+chr20 hg19_knownGene exon 479899 479949 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_177559:uc002wdw.1";
+chr20 hg19_knownGene CDS 480477 480578 0.000000 - 0 gene_id "CSNK2A1"; transcript_id "NM_177559:uc002wdw.1";
+chr20 hg19_knownGene exon 480477 480578 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_177559:uc002wdw.1";
+chr20 hg19_knownGene CDS 485762 485873 0.000000 - 1 gene_id "CSNK2A1"; transcript_id "NM_177559:uc002wdw.1";
+chr20 hg19_knownGene exon 485762 485873 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_177559:uc002wdw.1";
+chr20 hg19_knownGene CDS 489095 489195 0.000000 - 0 gene_id "CSNK2A1"; transcript_id "NM_177559:uc002wdw.1";
+chr20 hg19_knownGene exon 489095 489304 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_177559:uc002wdw.1";
+chr20 hg19_knownGene exon 508577 508693 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_177559:uc002wdw.1";
+chr20 hg19_knownGene exon 524316 524482 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_177559:uc002wdw.1";
+chr20 hg19_knownGene CDS 464608 464720 0.000000 - 2 gene_id "CSNK2A1"; transcript_id "NM_001895:uc002wdx.1";
+chr20 hg19_knownGene exon 463338 464720 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_001895:uc002wdx.1";
+chr20 hg19_knownGene CDS 467020 467106 0.000000 - 2 gene_id "CSNK2A1"; transcript_id "NM_001895:uc002wdx.1";
+chr20 hg19_knownGene exon 467020 467106 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_001895:uc002wdx.1";
+chr20 hg19_knownGene CDS 468071 468219 0.000000 - 1 gene_id "CSNK2A1"; transcript_id "NM_001895:uc002wdx.1";
+chr20 hg19_knownGene exon 468071 468219 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_001895:uc002wdx.1";
+chr20 hg19_knownGene CDS 469322 469422 0.000000 - 0 gene_id "CSNK2A1"; transcript_id "NM_001895:uc002wdx.1";
+chr20 hg19_knownGene exon 469322 469422 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_001895:uc002wdx.1";
+chr20 hg19_knownGene CDS 470424 470525 0.000000 - 0 gene_id "CSNK2A1"; transcript_id "NM_001895:uc002wdx.1";
+chr20 hg19_knownGene exon 470424 470525 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_001895:uc002wdx.1";
+chr20 hg19_knownGene CDS 472898 473008 0.000000 - 0 gene_id "CSNK2A1"; transcript_id "NM_001895:uc002wdx.1";
+chr20 hg19_knownGene exon 472898 473008 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_001895:uc002wdx.1";
+chr20 hg19_knownGene CDS 476363 476446 0.000000 - 0 gene_id "CSNK2A1"; transcript_id "NM_001895:uc002wdx.1";
+chr20 hg19_knownGene exon 476363 476446 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_001895:uc002wdx.1";
+chr20 hg19_knownGene CDS 478365 478424 0.000000 - 0 gene_id "CSNK2A1"; transcript_id "NM_001895:uc002wdx.1";
+chr20 hg19_knownGene exon 478365 478424 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_001895:uc002wdx.1";
+chr20 hg19_knownGene CDS 479899 479949 0.000000 - 0 gene_id "CSNK2A1"; transcript_id "NM_001895:uc002wdx.1";
+chr20 hg19_knownGene exon 479899 479949 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_001895:uc002wdx.1";
+chr20 hg19_knownGene CDS 480477 480578 0.000000 - 0 gene_id "CSNK2A1"; transcript_id "NM_001895:uc002wdx.1";
+chr20 hg19_knownGene exon 480477 480578 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_001895:uc002wdx.1";
+chr20 hg19_knownGene CDS 485762 485873 0.000000 - 1 gene_id "CSNK2A1"; transcript_id "NM_001895:uc002wdx.1";
+chr20 hg19_knownGene exon 485762 485873 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_001895:uc002wdx.1";
+chr20 hg19_knownGene CDS 489095 489195 0.000000 - 0 gene_id "CSNK2A1"; transcript_id "NM_001895:uc002wdx.1";
+chr20 hg19_knownGene exon 489095 489304 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_001895:uc002wdx.1";
+chr20 hg19_knownGene exon 524316 524482 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_001895:uc002wdx.1";
+chr20 hg19_knownGene CDS 464608 464720 0.000000 - 2 gene_id "CSNK2A1"; transcript_id "NM_177560:uc002wdy.1";
+chr20 hg19_knownGene exon 463338 464720 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_177560:uc002wdy.1";
+chr20 hg19_knownGene CDS 467020 467106 0.000000 - 2 gene_id "CSNK2A1"; transcript_id "NM_177560:uc002wdy.1";
+chr20 hg19_knownGene exon 467020 467106 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_177560:uc002wdy.1";
+chr20 hg19_knownGene CDS 468071 468219 0.000000 - 1 gene_id "CSNK2A1"; transcript_id "NM_177560:uc002wdy.1";
+chr20 hg19_knownGene exon 468071 468219 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_177560:uc002wdy.1";
+chr20 hg19_knownGene CDS 469322 469422 0.000000 - 0 gene_id "CSNK2A1"; transcript_id "NM_177560:uc002wdy.1";
+chr20 hg19_knownGene exon 469322 469422 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_177560:uc002wdy.1";
+chr20 hg19_knownGene CDS 470424 470525 0.000000 - 0 gene_id "CSNK2A1"; transcript_id "NM_177560:uc002wdy.1";
+chr20 hg19_knownGene exon 470424 470525 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_177560:uc002wdy.1";
+chr20 hg19_knownGene CDS 472898 473008 0.000000 - 0 gene_id "CSNK2A1"; transcript_id "NM_177560:uc002wdy.1";
+chr20 hg19_knownGene exon 472898 473008 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_177560:uc002wdy.1";
+chr20 hg19_knownGene CDS 476363 476446 0.000000 - 0 gene_id "CSNK2A1"; transcript_id "NM_177560:uc002wdy.1";
+chr20 hg19_knownGene exon 476363 476446 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_177560:uc002wdy.1";
+chr20 hg19_knownGene CDS 478365 478382 0.000000 - 0 gene_id "CSNK2A1"; transcript_id "NM_177560:uc002wdy.1";
+chr20 hg19_knownGene exon 478365 478424 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_177560:uc002wdy.1";
+chr20 hg19_knownGene exon 479899 479949 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_177560:uc002wdy.1";
+chr20 hg19_knownGene exon 480477 480578 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_177560:uc002wdy.1";
+chr20 hg19_knownGene exon 485762 485873 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_177560:uc002wdy.1";
+chr20 hg19_knownGene exon 524316 524482 0.000000 - . gene_id "CSNK2A1"; transcript_id "NM_177560:uc002wdy.1";
+chr20 hg19_knownGene CDS 585238 585309 0.000000 - 0 gene_id "TCF15"; transcript_id "NM_004609:uc002wdz.3";
+chr20 hg19_knownGene exon 584637 585309 0.000000 - . gene_id "TCF15"; transcript_id "NM_004609:uc002wdz.3";
+chr20 hg19_knownGene CDS 590357 590881 0.000000 - 0 gene_id "TCF15"; transcript_id "NM_004609:uc002wdz.3";
+chr20 hg19_knownGene exon 590357 590910 0.000000 - . gene_id "TCF15"; transcript_id "NM_004609:uc002wdz.3";
+chr20 hg19_knownGene CDS 629361 629561 0.000000 - 0 gene_id "SRXN1"; transcript_id "NM_080725:uc002wea.3";
+chr20 hg19_knownGene exon 627268 629561 0.000000 - . gene_id "SRXN1"; transcript_id "NM_080725:uc002wea.3";
+chr20 hg19_knownGene CDS 633620 633829 0.000000 - 0 gene_id "SRXN1"; transcript_id "NM_080725:uc002wea.3";
+chr20 hg19_knownGene exon 633620 633890 0.000000 - . gene_id "SRXN1"; transcript_id "NM_080725:uc002wea.3";
+chr20 hg19_knownGene exon 627268 629561 0.000000 - . gene_id "SRXN1"; transcript_id "AK125343:uc002web.3";
+chr20 hg19_knownGene exon 634875 634964 0.000000 - . gene_id "SRXN1"; transcript_id "AK125343:uc002web.3";
+chr20 hg19_knownGene exon 656113 656823 0.000000 - . gene_id "SRXN1"; transcript_id "AK125343:uc002web.3";
+chr20 hg19_knownGene CDS 644318 645105 0.000000 - 2 gene_id "SCRT2"; transcript_id "NM_033129:uc002wec.3";
+chr20 hg19_knownGene exon 642240 645105 0.000000 - . gene_id "SCRT2"; transcript_id "NM_033129:uc002wec.3";
+chr20 hg19_knownGene CDS 656113 656245 0.000000 - 0 gene_id "SCRT2"; transcript_id "NM_033129:uc002wec.3";
+chr20 hg19_knownGene exon 656113 656823 0.000000 - . gene_id "SCRT2"; transcript_id "NM_033129:uc002wec.3";
+chr20 hg19_knownGene CDS 741673 741882 0.000000 - 0 gene_id "C20orf54"; transcript_id "NM_033409:uc002wed.4";
+chr20 hg19_knownGene exon 740724 741882 0.000000 - . gene_id "C20orf54"; transcript_id "NM_033409:uc002wed.4";
+chr20 hg19_knownGene CDS 742345 742468 0.000000 - 1 gene_id "C20orf54"; transcript_id "NM_033409:uc002wed.4";
+chr20 hg19_knownGene exon 742345 742468 0.000000 - . gene_id "C20orf54"; transcript_id "NM_033409:uc002wed.4";
+chr20 hg19_knownGene CDS 744142 744647 0.000000 - 0 gene_id "C20orf54"; transcript_id "NM_033409:uc002wed.4";
+chr20 hg19_knownGene exon 744142 744647 0.000000 - . gene_id "C20orf54"; transcript_id "NM_033409:uc002wed.4";
+chr20 hg19_knownGene CDS 745852 746418 0.000000 - 0 gene_id "C20orf54"; transcript_id "NM_033409:uc002wed.4";
+chr20 hg19_knownGene exon 745852 746469 0.000000 - . gene_id "C20orf54"; transcript_id "NM_033409:uc002wed.4";
+chr20 hg19_knownGene exon 748941 749228 0.000000 - . gene_id "C20orf54"; transcript_id "NM_033409:uc002wed.4";
+chr20 hg19_knownGene CDS 742297 742468 0.000000 - 1 gene_id "C20orf54"; transcript_id "AK291706:uc002wee.2";
+chr20 hg19_knownGene exon 740725 742468 0.000000 - . gene_id "C20orf54"; transcript_id "AK291706:uc002wee.2";
+chr20 hg19_knownGene CDS 744142 744647 0.000000 - 0 gene_id "C20orf54"; transcript_id "AK291706:uc002wee.2";
+chr20 hg19_knownGene exon 744142 744647 0.000000 - . gene_id "C20orf54"; transcript_id "AK291706:uc002wee.2";
+chr20 hg19_knownGene CDS 745852 746418 0.000000 - 0 gene_id "C20orf54"; transcript_id "AK291706:uc002wee.2";
+chr20 hg19_knownGene exon 745852 746469 0.000000 - . gene_id "C20orf54"; transcript_id "AK291706:uc002wee.2";
+chr20 hg19_knownGene exon 748941 749228 0.000000 - . gene_id "C20orf54"; transcript_id "AK291706:uc002wee.2";
+chr20 hg19_knownGene exon 814356 814594 0.000000 + . gene_id "FAM110A"; transcript_id "NM_001042353:uc002wef.1";
+chr20 hg19_knownGene CDS 825448 826332 0.000000 + 0 gene_id "FAM110A"; transcript_id "NM_001042353:uc002wef.1";
+chr20 hg19_knownGene exon 825351 826922 0.000000 + . gene_id "FAM110A"; transcript_id "NM_001042353:uc002wef.1";
+chr20 hg19_knownGene exon 816711 816757 0.000000 + . gene_id "FAM110A"; transcript_id "NM_207121:uc002weg.1";
+chr20 hg19_knownGene CDS 825448 826332 0.000000 + 0 gene_id "FAM110A"; transcript_id "NM_207121:uc002weg.1";
+chr20 hg19_knownGene exon 825351 826922 0.000000 + . gene_id "FAM110A"; transcript_id "NM_207121:uc002weg.1";
+chr20 hg19_knownGene CDS 825448 826332 0.000000 + 0 gene_id "FAM110A"; transcript_id "NM_031424:uc002weh.1";
+chr20 hg19_knownGene exon 825285 826922 0.000000 + . gene_id "FAM110A"; transcript_id "NM_031424:uc002weh.1";
+chr20 hg19_knownGene CDS 853606 853763 0.000000 - 2 gene_id "ANGPT4"; transcript_id "NM_015985:uc002wei.3";
+chr20 hg19_knownGene exon 853297 853763 0.000000 - . gene_id "ANGPT4"; transcript_id "NM_015985:uc002wei.3";
+chr20 hg19_knownGene CDS 854927 855057 0.000000 - 1 gene_id "ANGPT4"; transcript_id "NM_015985:uc002wei.3";
+chr20 hg19_knownGene exon 854927 855057 0.000000 - . gene_id "ANGPT4"; transcript_id "NM_015985:uc002wei.3";
+chr20 hg19_knownGene CDS 858804 858970 0.000000 - 0 gene_id "ANGPT4"; transcript_id "NM_015985:uc002wei.3";
+chr20 hg19_knownGene exon 858804 858970 0.000000 - . gene_id "ANGPT4"; transcript_id "NM_015985:uc002wei.3";
+chr20 hg19_knownGene CDS 860390 860491 0.000000 - 0 gene_id "ANGPT4"; transcript_id "NM_015985:uc002wei.3";
+chr20 hg19_knownGene exon 860390 860491 0.000000 - . gene_id "ANGPT4"; transcript_id "NM_015985:uc002wei.3";
+chr20 hg19_knownGene CDS 861814 861929 0.000000 - 2 gene_id "ANGPT4"; transcript_id "NM_015985:uc002wei.3";
+chr20 hg19_knownGene exon 861814 861929 0.000000 - . gene_id "ANGPT4"; transcript_id "NM_015985:uc002wei.3";
+chr20 hg19_knownGene CDS 865721 865968 0.000000 - 1 gene_id "ANGPT4"; transcript_id "NM_015985:uc002wei.3";
+chr20 hg19_knownGene exon 865721 865968 0.000000 - . gene_id "ANGPT4"; transcript_id "NM_015985:uc002wei.3";
+chr20 hg19_knownGene CDS 868961 869082 0.000000 - 0 gene_id "ANGPT4"; transcript_id "NM_015985:uc002wei.3";
+chr20 hg19_knownGene exon 868961 869082 0.000000 - . gene_id "ANGPT4"; transcript_id "NM_015985:uc002wei.3";
+chr20 hg19_knownGene CDS 870856 871011 0.000000 - 0 gene_id "ANGPT4"; transcript_id "NM_015985:uc002wei.3";
+chr20 hg19_knownGene exon 870856 871011 0.000000 - . gene_id "ANGPT4"; transcript_id "NM_015985:uc002wei.3";
+chr20 hg19_knownGene CDS 896549 896857 0.000000 - 0 gene_id "ANGPT4"; transcript_id "NM_015985:uc002wei.3";
+chr20 hg19_knownGene exon 896549 896960 0.000000 - . gene_id "ANGPT4"; transcript_id "NM_015985:uc002wei.3";
+chr20 hg19_knownGene CDS 853754 853763 0.000000 - 1 gene_id "ANGPT4"; transcript_id "AK304756:uc010zpn.2";
+chr20 hg19_knownGene exon 853297 853763 0.000000 - . gene_id "ANGPT4"; transcript_id "AK304756:uc010zpn.2";
+chr20 hg19_knownGene CDS 858804 858970 0.000000 - 0 gene_id "ANGPT4"; transcript_id "AK304756:uc010zpn.2";
+chr20 hg19_knownGene exon 858804 858970 0.000000 - . gene_id "ANGPT4"; transcript_id "AK304756:uc010zpn.2";
+chr20 hg19_knownGene CDS 860390 860491 0.000000 - 0 gene_id "ANGPT4"; transcript_id "AK304756:uc010zpn.2";
+chr20 hg19_knownGene exon 860390 860491 0.000000 - . gene_id "ANGPT4"; transcript_id "AK304756:uc010zpn.2";
+chr20 hg19_knownGene CDS 861814 861929 0.000000 - 2 gene_id "ANGPT4"; transcript_id "AK304756:uc010zpn.2";
+chr20 hg19_knownGene exon 861814 861929 0.000000 - . gene_id "ANGPT4"; transcript_id "AK304756:uc010zpn.2";
+chr20 hg19_knownGene CDS 865721 865968 0.000000 - 1 gene_id "ANGPT4"; transcript_id "AK304756:uc010zpn.2";
+chr20 hg19_knownGene exon 865721 865968 0.000000 - . gene_id "ANGPT4"; transcript_id "AK304756:uc010zpn.2";
+chr20 hg19_knownGene CDS 868961 869082 0.000000 - 0 gene_id "ANGPT4"; transcript_id "AK304756:uc010zpn.2";
+chr20 hg19_knownGene exon 868961 869082 0.000000 - . gene_id "ANGPT4"; transcript_id "AK304756:uc010zpn.2";
+chr20 hg19_knownGene CDS 870856 871011 0.000000 - 0 gene_id "ANGPT4"; transcript_id "AK304756:uc010zpn.2";
+chr20 hg19_knownGene exon 870856 871011 0.000000 - . gene_id "ANGPT4"; transcript_id "AK304756:uc010zpn.2";
+chr20 hg19_knownGene CDS 896549 896839 0.000000 - 0 gene_id "ANGPT4"; transcript_id "AK304756:uc010zpn.2";
+chr20 hg19_knownGene exon 896549 896960 0.000000 - . gene_id "ANGPT4"; transcript_id "AK304756:uc010zpn.2";
+chr20 hg19_knownGene CDS 941003 941109 0.000000 - 2 gene_id "RSPO4"; transcript_id "NM_001029871:uc002wej.3";
+chr20 hg19_knownGene exon 939096 941109 0.000000 - . gene_id "RSPO4"; transcript_id "NM_001029871:uc002wej.3";
+chr20 hg19_knownGene CDS 944578 944763 0.000000 - 2 gene_id "RSPO4"; transcript_id "NM_001029871:uc002wej.3";
+chr20 hg19_knownGene exon 944578 944763 0.000000 - . gene_id "RSPO4"; transcript_id "NM_001029871:uc002wej.3";
+chr20 hg19_knownGene CDS 947817 947957 0.000000 - 2 gene_id "RSPO4"; transcript_id "NM_001029871:uc002wej.3";
+chr20 hg19_knownGene exon 947817 947957 0.000000 - . gene_id "RSPO4"; transcript_id "NM_001029871:uc002wej.3";
+chr20 hg19_knownGene CDS 948593 948781 0.000000 - 2 gene_id "RSPO4"; transcript_id "NM_001029871:uc002wej.3";
+chr20 hg19_knownGene exon 948593 948781 0.000000 - . gene_id "RSPO4"; transcript_id "NM_001029871:uc002wej.3";
+chr20 hg19_knownGene CDS 982729 982807 0.000000 - 0 gene_id "RSPO4"; transcript_id "NM_001029871:uc002wej.3";
+chr20 hg19_knownGene exon 982729 982907 0.000000 - . gene_id "RSPO4"; transcript_id "NM_001029871:uc002wej.3";
+chr20 hg19_knownGene CDS 941003 941109 0.000000 - 2 gene_id "RSPO4"; transcript_id "NM_001040007:uc002wek.3";
+chr20 hg19_knownGene exon 939096 941109 0.000000 - . gene_id "RSPO4"; transcript_id "NM_001040007:uc002wek.3";
+chr20 hg19_knownGene CDS 947817 947957 0.000000 - 2 gene_id "RSPO4"; transcript_id "NM_001040007:uc002wek.3";
+chr20 hg19_knownGene exon 947817 947957 0.000000 - . gene_id "RSPO4"; transcript_id "NM_001040007:uc002wek.3";
+chr20 hg19_knownGene CDS 948593 948781 0.000000 - 2 gene_id "RSPO4"; transcript_id "NM_001040007:uc002wek.3";
+chr20 hg19_knownGene exon 948593 948781 0.000000 - . gene_id "RSPO4"; transcript_id "NM_001040007:uc002wek.3";
+chr20 hg19_knownGene CDS 982729 982807 0.000000 - 0 gene_id "RSPO4"; transcript_id "NM_001040007:uc002wek.3";
+chr20 hg19_knownGene exon 982729 982907 0.000000 - . gene_id "RSPO4"; transcript_id "NM_001040007:uc002wek.3";
+chr20 hg19_knownGene exon 1093906 1094052 0.000000 + . gene_id "PSMF1"; transcript_id "AK302164:uc010zpo.2";
+chr20 hg19_knownGene CDS 1106276 1106293 0.000000 + 0 gene_id "PSMF1"; transcript_id "AK302164:uc010zpo.2";
+chr20 hg19_knownGene exon 1106141 1106293 0.000000 + . gene_id "PSMF1"; transcript_id "AK302164:uc010zpo.2";
+chr20 hg19_knownGene CDS 1108069 1108151 0.000000 + 0 gene_id "PSMF1"; transcript_id "AK302164:uc010zpo.2";
+chr20 hg19_knownGene exon 1108069 1108151 0.000000 + . gene_id "PSMF1"; transcript_id "AK302164:uc010zpo.2";
+chr20 hg19_knownGene CDS 1115764 1115949 0.000000 + 1 gene_id "PSMF1"; transcript_id "AK302164:uc010zpo.2";
+chr20 hg19_knownGene exon 1115764 1115949 0.000000 + . gene_id "PSMF1"; transcript_id "AK302164:uc010zpo.2";
+chr20 hg19_knownGene CDS 1143774 1143827 0.000000 + 1 gene_id "PSMF1"; transcript_id "AK302164:uc010zpo.2";
+chr20 hg19_knownGene exon 1143774 1143827 0.000000 + . gene_id "PSMF1"; transcript_id "AK302164:uc010zpo.2";
+chr20 hg19_knownGene CDS 1144962 1145120 0.000000 + 1 gene_id "PSMF1"; transcript_id "AK302164:uc010zpo.2";
+chr20 hg19_knownGene exon 1144962 1145120 0.000000 + . gene_id "PSMF1"; transcript_id "AK302164:uc010zpo.2";
+chr20 hg19_knownGene CDS 1146871 1146895 0.000000 + 1 gene_id "PSMF1"; transcript_id "AK302164:uc010zpo.2";
+chr20 hg19_knownGene exon 1146871 1147970 0.000000 + . gene_id "PSMF1"; transcript_id "AK302164:uc010zpo.2";
+chr20 hg19_knownGene CDS 1099417 1099545 0.000000 + 0 gene_id "PSMF1"; transcript_id "AK294134:uc010zpp.2";
+chr20 hg19_knownGene exon 1099240 1099545 0.000000 + . gene_id "PSMF1"; transcript_id "AK294134:uc010zpp.2";
+chr20 hg19_knownGene CDS 1106141 1106293 0.000000 + 0 gene_id "PSMF1"; transcript_id "AK294134:uc010zpp.2";
+chr20 hg19_knownGene exon 1106141 1106293 0.000000 + . gene_id "PSMF1"; transcript_id "AK294134:uc010zpp.2";
+chr20 hg19_knownGene CDS 1108069 1108151 0.000000 + 0 gene_id "PSMF1"; transcript_id "AK294134:uc010zpp.2";
+chr20 hg19_knownGene exon 1108069 1108151 0.000000 + . gene_id "PSMF1"; transcript_id "AK294134:uc010zpp.2";
+chr20 hg19_knownGene CDS 1143774 1143827 0.000000 + 1 gene_id "PSMF1"; transcript_id "AK294134:uc010zpp.2";
+chr20 hg19_knownGene exon 1143774 1143827 0.000000 + . gene_id "PSMF1"; transcript_id "AK294134:uc010zpp.2";
+chr20 hg19_knownGene CDS 1144962 1145120 0.000000 + 1 gene_id "PSMF1"; transcript_id "AK294134:uc010zpp.2";
+chr20 hg19_knownGene exon 1144962 1145120 0.000000 + . gene_id "PSMF1"; transcript_id "AK294134:uc010zpp.2";
+chr20 hg19_knownGene CDS 1146871 1146895 0.000000 + 1 gene_id "PSMF1"; transcript_id "AK294134:uc010zpp.2";
+chr20 hg19_knownGene exon 1146871 1147970 0.000000 + . gene_id "PSMF1"; transcript_id "AK294134:uc010zpp.2";
+chr20 hg19_knownGene exon 1093906 1094052 0.000000 + . gene_id "PSMF1"; transcript_id "NM_178578:uc002wel.4";
+chr20 hg19_knownGene CDS 1099417 1099545 0.000000 + 0 gene_id "PSMF1"; transcript_id "NM_178578:uc002wel.4";
+chr20 hg19_knownGene exon 1099396 1099545 0.000000 + . gene_id "PSMF1"; transcript_id "NM_178578:uc002wel.4";
+chr20 hg19_knownGene CDS 1106141 1106293 0.000000 + 0 gene_id "PSMF1"; transcript_id "NM_178578:uc002wel.4";
+chr20 hg19_knownGene exon 1106141 1106293 0.000000 + . gene_id "PSMF1"; transcript_id "NM_178578:uc002wel.4";
+chr20 hg19_knownGene CDS 1108069 1108151 0.000000 + 0 gene_id "PSMF1"; transcript_id "NM_178578:uc002wel.4";
+chr20 hg19_knownGene exon 1108069 1108151 0.000000 + . gene_id "PSMF1"; transcript_id "NM_178578:uc002wel.4";
+chr20 hg19_knownGene CDS 1115764 1115949 0.000000 + 1 gene_id "PSMF1"; transcript_id "NM_178578:uc002wel.4";
+chr20 hg19_knownGene exon 1115764 1115949 0.000000 + . gene_id "PSMF1"; transcript_id "NM_178578:uc002wel.4";
+chr20 hg19_knownGene CDS 1143774 1143827 0.000000 + 1 gene_id "PSMF1"; transcript_id "NM_178578:uc002wel.4";
+chr20 hg19_knownGene exon 1143774 1143827 0.000000 + . gene_id "PSMF1"; transcript_id "NM_178578:uc002wel.4";
+chr20 hg19_knownGene CDS 1144962 1145120 0.000000 + 1 gene_id "PSMF1"; transcript_id "NM_178578:uc002wel.4";
+chr20 hg19_knownGene exon 1144962 1145120 0.000000 + . gene_id "PSMF1"; transcript_id "NM_178578:uc002wel.4";
+chr20 hg19_knownGene CDS 1145673 1145721 0.000000 + 1 gene_id "PSMF1"; transcript_id "NM_178578:uc002wel.4";
+chr20 hg19_knownGene exon 1145673 1148426 0.000000 + . gene_id "PSMF1"; transcript_id "NM_178578:uc002wel.4";
+chr20 hg19_knownGene CDS 1099417 1099545 0.000000 + 0 gene_id "PSMF1"; transcript_id "NM_006814:uc002wen.4";
+chr20 hg19_knownGene exon 1099240 1099545 0.000000 + . gene_id "PSMF1"; transcript_id "NM_006814:uc002wen.4";
+chr20 hg19_knownGene CDS 1106141 1106293 0.000000 + 0 gene_id "PSMF1"; transcript_id "NM_006814:uc002wen.4";
+chr20 hg19_knownGene exon 1106141 1106293 0.000000 + . gene_id "PSMF1"; transcript_id "NM_006814:uc002wen.4";
+chr20 hg19_knownGene CDS 1108069 1108151 0.000000 + 0 gene_id "PSMF1"; transcript_id "NM_006814:uc002wen.4";
+chr20 hg19_knownGene exon 1108069 1108151 0.000000 + . gene_id "PSMF1"; transcript_id "NM_006814:uc002wen.4";
+chr20 hg19_knownGene CDS 1115764 1115949 0.000000 + 1 gene_id "PSMF1"; transcript_id "NM_006814:uc002wen.4";
+chr20 hg19_knownGene exon 1115764 1115949 0.000000 + . gene_id "PSMF1"; transcript_id "NM_006814:uc002wen.4";
+chr20 hg19_knownGene CDS 1143774 1143827 0.000000 + 1 gene_id "PSMF1"; transcript_id "NM_006814:uc002wen.4";
+chr20 hg19_knownGene exon 1143774 1143827 0.000000 + . gene_id "PSMF1"; transcript_id "NM_006814:uc002wen.4";
+chr20 hg19_knownGene CDS 1144962 1145120 0.000000 + 1 gene_id "PSMF1"; transcript_id "NM_006814:uc002wen.4";
+chr20 hg19_knownGene exon 1144962 1145120 0.000000 + . gene_id "PSMF1"; transcript_id "NM_006814:uc002wen.4";
+chr20 hg19_knownGene CDS 1145673 1145721 0.000000 + 1 gene_id "PSMF1"; transcript_id "NM_006814:uc002wen.4";
+chr20 hg19_knownGene exon 1145673 1148426 0.000000 + . gene_id "PSMF1"; transcript_id "NM_006814:uc002wen.4";
+chr20 hg19_knownGene CDS 1115546 1115949 0.000000 + 0 gene_id "PSMF1"; transcript_id "BC029836:uc002wep.4";
+chr20 hg19_knownGene exon 1115483 1115949 0.000000 + . gene_id "PSMF1"; transcript_id "BC029836:uc002wep.4";
+chr20 hg19_knownGene CDS 1143774 1143827 0.000000 + 1 gene_id "PSMF1"; transcript_id "BC029836:uc002wep.4";
+chr20 hg19_knownGene exon 1143774 1143827 0.000000 + . gene_id "PSMF1"; transcript_id "BC029836:uc002wep.4";
+chr20 hg19_knownGene CDS 1144962 1145120 0.000000 + 1 gene_id "PSMF1"; transcript_id "BC029836:uc002wep.4";
+chr20 hg19_knownGene exon 1144962 1145120 0.000000 + . gene_id "PSMF1"; transcript_id "BC029836:uc002wep.4";
+chr20 hg19_knownGene CDS 1145673 1145721 0.000000 + 1 gene_id "PSMF1"; transcript_id "BC029836:uc002wep.4";
+chr20 hg19_knownGene exon 1145673 1148426 0.000000 + . gene_id "PSMF1"; transcript_id "BC029836:uc002wep.4";
+chr20 hg19_knownGene CDS 1161495 1162231 0.000000 - 2 gene_id "TMEM74B"; transcript_id "BC126989:uc010gaa.1";
+chr20 hg19_knownGene exon 1161215 1162231 0.000000 - . gene_id "TMEM74B"; transcript_id "BC126989:uc010gaa.1";
+chr20 hg19_knownGene CDS 1164415 1164445 0.000000 - 0 gene_id "TMEM74B"; transcript_id "BC126989:uc010gaa.1";
+chr20 hg19_knownGene exon 1164415 1164592 0.000000 - . gene_id "TMEM74B"; transcript_id "BC126989:uc010gaa.1";
+chr20 hg19_knownGene exon 1164946 1165017 0.000000 - . gene_id "TMEM74B"; transcript_id "BC126989:uc010gaa.1";
+chr20 hg19_knownGene CDS 1161495 1162231 0.000000 - 2 gene_id "TMEM74B"; transcript_id "NM_018354:uc002weq.1";
+chr20 hg19_knownGene exon 1161215 1162231 0.000000 - . gene_id "TMEM74B"; transcript_id "NM_018354:uc002weq.1";
+chr20 hg19_knownGene CDS 1164415 1164445 0.000000 - 0 gene_id "TMEM74B"; transcript_id "NM_018354:uc002weq.1";
+chr20 hg19_knownGene exon 1164415 1165117 0.000000 - . gene_id "TMEM74B"; transcript_id "NM_018354:uc002weq.1";
+chr20 hg19_knownGene CDS 1184161 1184295 0.000000 + 0 gene_id "C20orf202"; transcript_id "NM_001009612:uc002wer.4";
+chr20 hg19_knownGene exon 1184098 1184295 0.000000 + . gene_id "C20orf202"; transcript_id "NM_001009612:uc002wer.4";
+chr20 hg19_knownGene CDS 1187513 1187743 0.000000 + 0 gene_id "C20orf202"; transcript_id "NM_001009612:uc002wer.4";
+chr20 hg19_knownGene exon 1187513 1188918 0.000000 + . gene_id "C20orf202"; transcript_id "NM_001009612:uc002wer.4";
+chr20 hg19_knownGene exon 1206764 1206824 0.000000 + . gene_id "RAD21L1"; transcript_id "NM_001136566:uc010gab.1";
+chr20 hg19_knownGene CDS 1209098 1209241 0.000000 + 0 gene_id "RAD21L1"; transcript_id "NM_001136566:uc010gab.1";
+chr20 hg19_knownGene exon 1209066 1209241 0.000000 + . gene_id "RAD21L1"; transcript_id "NM_001136566:uc010gab.1";
+chr20 hg19_knownGene CDS 1210524 1210653 0.000000 + 0 gene_id "RAD21L1"; transcript_id "NM_001136566:uc010gab.1";
+chr20 hg19_knownGene exon 1210524 1210653 0.000000 + . gene_id "RAD21L1"; transcript_id "NM_001136566:uc010gab.1";
+chr20 hg19_knownGene CDS 1212170 1212263 0.000000 + 2 gene_id "RAD21L1"; transcript_id "NM_001136566:uc010gab.1";
+chr20 hg19_knownGene exon 1212170 1212263 0.000000 + . gene_id "RAD21L1"; transcript_id "NM_001136566:uc010gab.1";
+chr20 hg19_knownGene CDS 1214729 1214835 0.000000 + 1 gene_id "RAD21L1"; transcript_id "NM_001136566:uc010gab.1";
+chr20 hg19_knownGene exon 1214729 1214835 0.000000 + . gene_id "RAD21L1"; transcript_id "NM_001136566:uc010gab.1";
+chr20 hg19_knownGene CDS 1218688 1218858 0.000000 + 2 gene_id "RAD21L1"; transcript_id "NM_001136566:uc010gab.1";
+chr20 hg19_knownGene exon 1218688 1218858 0.000000 + . gene_id "RAD21L1"; transcript_id "NM_001136566:uc010gab.1";
+chr20 hg19_knownGene CDS 1219956 1220051 0.000000 + 2 gene_id "RAD21L1"; transcript_id "NM_001136566:uc010gab.1";
+chr20 hg19_knownGene exon 1219956 1220051 0.000000 + . gene_id "RAD21L1"; transcript_id "NM_001136566:uc010gab.1";
+chr20 hg19_knownGene CDS 1220965 1221078 0.000000 + 2 gene_id "RAD21L1"; transcript_id "NM_001136566:uc010gab.1";
+chr20 hg19_knownGene exon 1220965 1221078 0.000000 + . gene_id "RAD21L1"; transcript_id "NM_001136566:uc010gab.1";
+chr20 hg19_knownGene CDS 1223263 1223489 0.000000 + 2 gene_id "RAD21L1"; transcript_id "NM_001136566:uc010gab.1";
+chr20 hg19_knownGene exon 1223263 1223489 0.000000 + . gene_id "RAD21L1"; transcript_id "NM_001136566:uc010gab.1";
+chr20 hg19_knownGene CDS 1223741 1223840 0.000000 + 0 gene_id "RAD21L1"; transcript_id "NM_001136566:uc010gab.1";
+chr20 hg19_knownGene exon 1223741 1223840 0.000000 + . gene_id "RAD21L1"; transcript_id "NM_001136566:uc010gab.1";
+chr20 hg19_knownGene CDS 1224690 1224814 0.000000 + 2 gene_id "RAD21L1"; transcript_id "NM_001136566:uc010gab.1";
+chr20 hg19_knownGene exon 1224690 1224814 0.000000 + . gene_id "RAD21L1"; transcript_id "NM_001136566:uc010gab.1";
+chr20 hg19_knownGene CDS 1226854 1226949 0.000000 + 0 gene_id "RAD21L1"; transcript_id "NM_001136566:uc010gab.1";
+chr20 hg19_knownGene exon 1226854 1226949 0.000000 + . gene_id "RAD21L1"; transcript_id "NM_001136566:uc010gab.1";
+chr20 hg19_knownGene CDS 1229270 1229347 0.000000 + 0 gene_id "RAD21L1"; transcript_id "NM_001136566:uc010gab.1";
+chr20 hg19_knownGene exon 1229270 1229347 0.000000 + . gene_id "RAD21L1"; transcript_id "NM_001136566:uc010gab.1";
+chr20 hg19_knownGene CDS 1234913 1235098 0.000000 + 0 gene_id "RAD21L1"; transcript_id "NM_001136566:uc010gab.1";
+chr20 hg19_knownGene exon 1234913 1235145 0.000000 + . gene_id "RAD21L1"; transcript_id "NM_001136566:uc010gab.1";
+chr20 hg19_knownGene exon 1246960 1247041 0.000000 + . gene_id "SNPH"; transcript_id "NM_014723:uc002wes.3";
+chr20 hg19_knownGene exon 1247298 1247404 0.000000 + . gene_id "SNPH"; transcript_id "NM_014723:uc002wes.3";
+chr20 hg19_knownGene CDS 1277016 1277065 0.000000 + 0 gene_id "SNPH"; transcript_id "NM_014723:uc002wes.3";
+chr20 hg19_knownGene exon 1276969 1277065 0.000000 + . gene_id "SNPH"; transcript_id "NM_014723:uc002wes.3";
+chr20 hg19_knownGene CDS 1277789 1277896 0.000000 + 1 gene_id "SNPH"; transcript_id "NM_014723:uc002wes.3";
+chr20 hg19_knownGene exon 1277789 1277896 0.000000 + . gene_id "SNPH"; transcript_id "NM_014723:uc002wes.3";
+chr20 hg19_knownGene CDS 1281206 1281355 0.000000 + 1 gene_id "SNPH"; transcript_id "NM_014723:uc002wes.3";
+chr20 hg19_knownGene exon 1281206 1281355 0.000000 + . gene_id "SNPH"; transcript_id "NM_014723:uc002wes.3";
+chr20 hg19_knownGene CDS 1285522 1286695 0.000000 + 1 gene_id "SNPH"; transcript_id "NM_014723:uc002wes.3";
+chr20 hg19_knownGene exon 1285522 1289971 0.000000 + . gene_id "SNPH"; transcript_id "NM_014723:uc002wes.3";
+chr20 hg19_knownGene exon 1246960 1247041 0.000000 + . gene_id "SNPH"; transcript_id "AF187733:uc002wet.3";
+chr20 hg19_knownGene exon 1247298 1247404 0.000000 + . gene_id "SNPH"; transcript_id "AF187733:uc002wet.3";
+chr20 hg19_knownGene exon 1275595 1275622 0.000000 + . gene_id "SNPH"; transcript_id "AF187733:uc002wet.3";
+chr20 hg19_knownGene CDS 1276884 1277065 0.000000 + 0 gene_id "SNPH"; transcript_id "AF187733:uc002wet.3";
+chr20 hg19_knownGene exon 1276420 1277065 0.000000 + . gene_id "SNPH"; transcript_id "AF187733:uc002wet.3";
+chr20 hg19_knownGene CDS 1277789 1277896 0.000000 + 1 gene_id "SNPH"; transcript_id "AF187733:uc002wet.3";
+chr20 hg19_knownGene exon 1277789 1277896 0.000000 + . gene_id "SNPH"; transcript_id "AF187733:uc002wet.3";
+chr20 hg19_knownGene CDS 1281206 1281355 0.000000 + 1 gene_id "SNPH"; transcript_id "AF187733:uc002wet.3";
+chr20 hg19_knownGene exon 1281206 1281355 0.000000 + . gene_id "SNPH"; transcript_id "AF187733:uc002wet.3";
+chr20 hg19_knownGene CDS 1285522 1286695 0.000000 + 1 gene_id "SNPH"; transcript_id "AF187733:uc002wet.3";
+chr20 hg19_knownGene exon 1285522 1289971 0.000000 + . gene_id "SNPH"; transcript_id "AF187733:uc002wet.3";
+chr20 hg19_knownGene CDS 1291088 1291139 0.000000 - 1 gene_id "SDCBP2"; transcript_id "NM_015685:uc002weu.4";
+chr20 hg19_knownGene exon 1290555 1291139 0.000000 - . gene_id "SDCBP2"; transcript_id "NM_015685:uc002weu.4";
+chr20 hg19_knownGene CDS 1291444 1291535 0.000000 - 0 gene_id "SDCBP2"; transcript_id "NM_015685:uc002weu.4";
+chr20 hg19_knownGene exon 1291444 1291535 0.000000 - . gene_id "SDCBP2"; transcript_id "NM_015685:uc002weu.4";
+chr20 hg19_knownGene CDS 1292981 1293152 0.000000 - 1 gene_id "SDCBP2"; transcript_id "NM_015685:uc002weu.4";
+chr20 hg19_knownGene exon 1292981 1293152 0.000000 - . gene_id "SDCBP2"; transcript_id "NM_015685:uc002weu.4";
+chr20 hg19_knownGene CDS 1293231 1293406 0.000000 - 0 gene_id "SDCBP2"; transcript_id "NM_015685:uc002weu.4";
+chr20 hg19_knownGene exon 1293231 1293406 0.000000 - . gene_id "SDCBP2"; transcript_id "NM_015685:uc002weu.4";
+chr20 hg19_knownGene CDS 1293984 1294112 0.000000 - 0 gene_id "SDCBP2"; transcript_id "NM_015685:uc002weu.4";
+chr20 hg19_knownGene exon 1293984 1294317 0.000000 - . gene_id "SDCBP2"; transcript_id "NM_015685:uc002weu.4";
+chr20 hg19_knownGene CDS 1291088 1291139 0.000000 - 1 gene_id "SDCBP2"; transcript_id "NM_001199784:uc021vzn.1";
+chr20 hg19_knownGene exon 1290555 1291139 0.000000 - . gene_id "SDCBP2"; transcript_id "NM_001199784:uc021vzn.1";
+chr20 hg19_knownGene CDS 1291444 1291535 0.000000 - 0 gene_id "SDCBP2"; transcript_id "NM_001199784:uc021vzn.1";
+chr20 hg19_knownGene exon 1291444 1291535 0.000000 - . gene_id "SDCBP2"; transcript_id "NM_001199784:uc021vzn.1";
+chr20 hg19_knownGene CDS 1292981 1293152 0.000000 - 1 gene_id "SDCBP2"; transcript_id "NM_001199784:uc021vzn.1";
+chr20 hg19_knownGene exon 1292981 1293152 0.000000 - . gene_id "SDCBP2"; transcript_id "NM_001199784:uc021vzn.1";
+chr20 hg19_knownGene CDS 1293231 1293406 0.000000 - 0 gene_id "SDCBP2"; transcript_id "NM_001199784:uc021vzn.1";
+chr20 hg19_knownGene exon 1293231 1293406 0.000000 - . gene_id "SDCBP2"; transcript_id "NM_001199784:uc021vzn.1";
+chr20 hg19_knownGene CDS 1293984 1294142 0.000000 - 0 gene_id "SDCBP2"; transcript_id "NM_001199784:uc021vzn.1";
+chr20 hg19_knownGene exon 1293984 1294142 0.000000 - . gene_id "SDCBP2"; transcript_id "NM_001199784:uc021vzn.1";
+chr20 hg19_knownGene CDS 1298962 1299062 0.000000 - 2 gene_id "SDCBP2"; transcript_id "NM_001199784:uc021vzn.1";
+chr20 hg19_knownGene exon 1298962 1299062 0.000000 - . gene_id "SDCBP2"; transcript_id "NM_001199784:uc021vzn.1";
+chr20 hg19_knownGene CDS 1300234 1300303 0.000000 - 0 gene_id "SDCBP2"; transcript_id "NM_001199784:uc021vzn.1";
+chr20 hg19_knownGene exon 1300234 1300303 0.000000 - . gene_id "SDCBP2"; transcript_id "NM_001199784:uc021vzn.1";
+chr20 hg19_knownGene CDS 1301007 1301060 0.000000 - 0 gene_id "SDCBP2"; transcript_id "NM_001199784:uc021vzn.1";
+chr20 hg19_knownGene exon 1301007 1301079 0.000000 - . gene_id "SDCBP2"; transcript_id "NM_001199784:uc021vzn.1";
+chr20 hg19_knownGene exon 1306474 1306513 0.000000 - . gene_id "SDCBP2"; transcript_id "NM_001199784:uc021vzn.1";
+chr20 hg19_knownGene CDS 1291088 1291139 0.000000 - 1 gene_id "SDCBP2"; transcript_id "NM_080489:uc002wev.4";
+chr20 hg19_knownGene exon 1290555 1291139 0.000000 - . gene_id "SDCBP2"; transcript_id "NM_080489:uc002wev.4";
+chr20 hg19_knownGene CDS 1291444 1291535 0.000000 - 0 gene_id "SDCBP2"; transcript_id "NM_080489:uc002wev.4";
+chr20 hg19_knownGene exon 1291444 1291535 0.000000 - . gene_id "SDCBP2"; transcript_id "NM_080489:uc002wev.4";
+chr20 hg19_knownGene CDS 1292981 1293152 0.000000 - 1 gene_id "SDCBP2"; transcript_id "NM_080489:uc002wev.4";
+chr20 hg19_knownGene exon 1292981 1293152 0.000000 - . gene_id "SDCBP2"; transcript_id "NM_080489:uc002wev.4";
+chr20 hg19_knownGene CDS 1293231 1293406 0.000000 - 0 gene_id "SDCBP2"; transcript_id "NM_080489:uc002wev.4";
+chr20 hg19_knownGene exon 1293231 1293406 0.000000 - . gene_id "SDCBP2"; transcript_id "NM_080489:uc002wev.4";
+chr20 hg19_knownGene CDS 1293984 1294142 0.000000 - 0 gene_id "SDCBP2"; transcript_id "NM_080489:uc002wev.4";
+chr20 hg19_knownGene exon 1293984 1294142 0.000000 - . gene_id "SDCBP2"; transcript_id "NM_080489:uc002wev.4";
+chr20 hg19_knownGene CDS 1298962 1299062 0.000000 - 2 gene_id "SDCBP2"; transcript_id "NM_080489:uc002wev.4";
+chr20 hg19_knownGene exon 1298962 1299062 0.000000 - . gene_id "SDCBP2"; transcript_id "NM_080489:uc002wev.4";
+chr20 hg19_knownGene CDS 1300234 1300303 0.000000 - 0 gene_id "SDCBP2"; transcript_id "NM_080489:uc002wev.4";
+chr20 hg19_knownGene exon 1300234 1300303 0.000000 - . gene_id "SDCBP2"; transcript_id "NM_080489:uc002wev.4";
+chr20 hg19_knownGene CDS 1301007 1301060 0.000000 - 0 gene_id "SDCBP2"; transcript_id "NM_080489:uc002wev.4";
+chr20 hg19_knownGene exon 1301007 1301079 0.000000 - . gene_id "SDCBP2"; transcript_id "NM_080489:uc002wev.4";
+chr20 hg19_knownGene exon 1309729 1309879 0.000000 - . gene_id "SDCBP2"; transcript_id "NM_080489:uc002wev.4";
+chr20 hg19_knownGene CDS 1293897 1294142 0.000000 - 0 gene_id "SDCBP2"; transcript_id "AK296577:uc010zpq.2";
+chr20 hg19_knownGene exon 1293346 1294142 0.000000 - . gene_id "SDCBP2"; transcript_id "AK296577:uc010zpq.2";
+chr20 hg19_knownGene CDS 1298962 1299062 0.000000 - 2 gene_id "SDCBP2"; transcript_id "AK296577:uc010zpq.2";
+chr20 hg19_knownGene exon 1298962 1299062 0.000000 - . gene_id "SDCBP2"; transcript_id "AK296577:uc010zpq.2";
+chr20 hg19_knownGene CDS 1300234 1300303 0.000000 - 0 gene_id "SDCBP2"; transcript_id "AK296577:uc010zpq.2";
+chr20 hg19_knownGene exon 1300234 1300303 0.000000 - . gene_id "SDCBP2"; transcript_id "AK296577:uc010zpq.2";
+chr20 hg19_knownGene CDS 1301007 1301060 0.000000 - 0 gene_id "SDCBP2"; transcript_id "AK296577:uc010zpq.2";
+chr20 hg19_knownGene exon 1301007 1301079 0.000000 - . gene_id "SDCBP2"; transcript_id "AK296577:uc010zpq.2";
+chr20 hg19_knownGene exon 1309729 1309879 0.000000 - . gene_id "SDCBP2"; transcript_id "AK296577:uc010zpq.2";
+chr20 hg19_knownGene exon 1305987 1306173 0.000000 + . gene_id "LOC100507495"; transcript_id "NR_040048:uc002wew.3";
+chr20 hg19_knownGene exon 1353722 1353822 0.000000 + . gene_id "LOC100507495"; transcript_id "NR_040048:uc002wew.3";
+chr20 hg19_knownGene exon 1355128 1355342 0.000000 + . gene_id "LOC100507495"; transcript_id "NR_040048:uc002wew.3";
+chr20 hg19_knownGene exon 1357442 1359379 0.000000 + . gene_id "LOC100507495"; transcript_id "NR_040048:uc002wew.3";
+chr20 hg19_knownGene exon 1305987 1306173 0.000000 + . gene_id "LOC100507495"; transcript_id "NR_040049:uc002wex.3";
+chr20 hg19_knownGene exon 1353722 1353822 0.000000 + . gene_id "LOC100507495"; transcript_id "NR_040049:uc002wex.3";
+chr20 hg19_knownGene exon 1357442 1359379 0.000000 + . gene_id "LOC100507495"; transcript_id "NR_040049:uc002wex.3";
+chr20 hg19_knownGene exon 1305987 1306426 0.000000 + . gene_id "LOC100507495"; transcript_id "NR_040047:uc021vzp.1";
+chr20 hg19_knownGene exon 1353722 1353822 0.000000 + . gene_id "LOC100507495"; transcript_id "NR_040047:uc021vzp.1";
+chr20 hg19_knownGene exon 1357442 1359379 0.000000 + . gene_id "LOC100507495"; transcript_id "NR_040047:uc021vzp.1";
+chr20 hg19_knownGene CDS 1291088 1291139 0.000000 - 1 gene_id "SDCBP2"; transcript_id "NR_037661:uc021vzo.1";
+chr20 hg19_knownGene exon 1290555 1291139 0.000000 - . gene_id "SDCBP2"; transcript_id "NR_037661:uc021vzo.1";
+chr20 hg19_knownGene CDS 1291444 1291535 0.000000 - 0 gene_id "SDCBP2"; transcript_id "NR_037661:uc021vzo.1";
+chr20 hg19_knownGene exon 1291444 1291535 0.000000 - . gene_id "SDCBP2"; transcript_id "NR_037661:uc021vzo.1";
+chr20 hg19_knownGene CDS 1292981 1293152 0.000000 - 1 gene_id "SDCBP2"; transcript_id "NR_037661:uc021vzo.1";
+chr20 hg19_knownGene exon 1292981 1293152 0.000000 - . gene_id "SDCBP2"; transcript_id "NR_037661:uc021vzo.1";
+chr20 hg19_knownGene CDS 1293231 1293406 0.000000 - 0 gene_id "SDCBP2"; transcript_id "NR_037661:uc021vzo.1";
+chr20 hg19_knownGene exon 1293231 1293406 0.000000 - . gene_id "SDCBP2"; transcript_id "NR_037661:uc021vzo.1";
+chr20 hg19_knownGene CDS 1293984 1294142 0.000000 - 0 gene_id "SDCBP2"; transcript_id "NR_037661:uc021vzo.1";
+chr20 hg19_knownGene exon 1293984 1294142 0.000000 - . gene_id "SDCBP2"; transcript_id "NR_037661:uc021vzo.1";
+chr20 hg19_knownGene CDS 1298962 1299062 0.000000 - 2 gene_id "SDCBP2"; transcript_id "NR_037661:uc021vzo.1";
+chr20 hg19_knownGene exon 1298962 1299062 0.000000 - . gene_id "SDCBP2"; transcript_id "NR_037661:uc021vzo.1";
+chr20 hg19_knownGene CDS 1300234 1300303 0.000000 - 0 gene_id "SDCBP2"; transcript_id "NR_037661:uc021vzo.1";
+chr20 hg19_knownGene exon 1300234 1300303 0.000000 - . gene_id "SDCBP2"; transcript_id "NR_037661:uc021vzo.1";
+chr20 hg19_knownGene CDS 1301007 1301060 0.000000 - 0 gene_id "SDCBP2"; transcript_id "NR_037661:uc021vzo.1";
+chr20 hg19_knownGene exon 1301007 1301079 0.000000 - . gene_id "SDCBP2"; transcript_id "NR_037661:uc021vzo.1";
+chr20 hg19_knownGene exon 1373478 1373525 0.000000 - . gene_id "SDCBP2"; transcript_id "NR_037661:uc021vzo.1";
+chr20 hg19_knownGene exon 1373606 1373816 0.000000 - . gene_id "SDCBP2"; transcript_id "NR_037661:uc021vzo.1";
+chr20 hg19_knownGene CDS 1298683 1299062 0.000000 - 2 gene_id "FKBP1A-SDCBP2"; transcript_id "AK309026:uc010gac.2";
+chr20 hg19_knownGene exon 1298215 1299062 0.000000 - . gene_id "FKBP1A-SDCBP2"; transcript_id "AK309026:uc010gac.2";
+chr20 hg19_knownGene CDS 1300234 1300303 0.000000 - 0 gene_id "FKBP1A-SDCBP2"; transcript_id "AK309026:uc010gac.2";
+chr20 hg19_knownGene exon 1300234 1300303 0.000000 - . gene_id "FKBP1A-SDCBP2"; transcript_id "AK309026:uc010gac.2";
+chr20 hg19_knownGene CDS 1301007 1301060 0.000000 - 0 gene_id "FKBP1A-SDCBP2"; transcript_id "AK309026:uc010gac.2";
+chr20 hg19_knownGene exon 1301007 1301079 0.000000 - . gene_id "FKBP1A-SDCBP2"; transcript_id "AK309026:uc010gac.2";
+chr20 hg19_knownGene exon 1373478 1373525 0.000000 - . gene_id "FKBP1A-SDCBP2"; transcript_id "AK309026:uc010gac.2";
+chr20 hg19_knownGene exon 1373606 1373816 0.000000 - . gene_id "FKBP1A-SDCBP2"; transcript_id "AK309026:uc010gac.2";
+chr20 hg19_knownGene exon 1349621 1350716 0.000000 - . gene_id "FKBP1A"; transcript_id "NM_000801:uc002wey.3";
+chr20 hg19_knownGene CDS 1352759 1352884 0.000000 - 0 gene_id "FKBP1A"; transcript_id "NM_000801:uc002wey.3";
+chr20 hg19_knownGene exon 1352720 1352884 0.000000 - . gene_id "FKBP1A"; transcript_id "NM_000801:uc002wey.3";
+chr20 hg19_knownGene CDS 1356135 1356247 0.000000 - 2 gene_id "FKBP1A"; transcript_id "NM_000801:uc002wey.3";
+chr20 hg19_knownGene exon 1356135 1356247 0.000000 - . gene_id "FKBP1A"; transcript_id "NM_000801:uc002wey.3";
+chr20 hg19_knownGene CDS 1373478 1373525 0.000000 - 2 gene_id "FKBP1A"; transcript_id "NM_000801:uc002wey.3";
+chr20 hg19_knownGene exon 1373478 1373525 0.000000 - . gene_id "FKBP1A"; transcript_id "NM_000801:uc002wey.3";
+chr20 hg19_knownGene CDS 1373606 1373642 0.000000 - 0 gene_id "FKBP1A"; transcript_id "NM_000801:uc002wey.3";
+chr20 hg19_knownGene exon 1373606 1373816 0.000000 - . gene_id "FKBP1A"; transcript_id "NM_000801:uc002wey.3";
+chr20 hg19_knownGene CDS 1350676 1350716 0.000000 - 2 gene_id "FKBP1A"; transcript_id "NM_001199786:uc002wez.3";
+chr20 hg19_knownGene exon 1349621 1350716 0.000000 - . gene_id "FKBP1A"; transcript_id "NM_001199786:uc002wez.3";
+chr20 hg19_knownGene CDS 1352720 1352884 0.000000 - 2 gene_id "FKBP1A"; transcript_id "NM_001199786:uc002wez.3";
+chr20 hg19_knownGene exon 1352720 1352884 0.000000 - . gene_id "FKBP1A"; transcript_id "NM_001199786:uc002wez.3";
+chr20 hg19_knownGene CDS 1373478 1373525 0.000000 - 2 gene_id "FKBP1A"; transcript_id "NM_001199786:uc002wez.3";
+chr20 hg19_knownGene exon 1373478 1373525 0.000000 - . gene_id "FKBP1A"; transcript_id "NM_001199786:uc002wez.3";
+chr20 hg19_knownGene CDS 1373606 1373642 0.000000 - 0 gene_id "FKBP1A"; transcript_id "NM_001199786:uc002wez.3";
+chr20 hg19_knownGene exon 1373606 1373816 0.000000 - . gene_id "FKBP1A"; transcript_id "NM_001199786:uc002wez.3";
+chr20 hg19_knownGene CDS 1352703 1352884 0.000000 - 2 gene_id "FKBP1A"; transcript_id "AB241124:uc002wfb.3";
+chr20 hg19_knownGene exon 1352356 1352884 0.000000 - . gene_id "FKBP1A"; transcript_id "AB241124:uc002wfb.3";
+chr20 hg19_knownGene CDS 1373478 1373525 0.000000 - 2 gene_id "FKBP1A"; transcript_id "AB241124:uc002wfb.3";
+chr20 hg19_knownGene exon 1373478 1373525 0.000000 - . gene_id "FKBP1A"; transcript_id "AB241124:uc002wfb.3";
+chr20 hg19_knownGene CDS 1373606 1373642 0.000000 - 0 gene_id "FKBP1A"; transcript_id "AB241124:uc002wfb.3";
+chr20 hg19_knownGene exon 1373606 1373816 0.000000 - . gene_id "FKBP1A"; transcript_id "AB241124:uc002wfb.3";
+chr20 hg19_knownGene CDS 1352759 1352884 0.000000 - 0 gene_id "FKBP1A"; transcript_id "NM_054014:uc002wfa.3";
+chr20 hg19_knownGene exon 1352356 1352884 0.000000 - . gene_id "FKBP1A"; transcript_id "NM_054014:uc002wfa.3";
+chr20 hg19_knownGene CDS 1356135 1356247 0.000000 - 2 gene_id "FKBP1A"; transcript_id "NM_054014:uc002wfa.3";
+chr20 hg19_knownGene exon 1356135 1356247 0.000000 - . gene_id "FKBP1A"; transcript_id "NM_054014:uc002wfa.3";
+chr20 hg19_knownGene CDS 1373478 1373525 0.000000 - 2 gene_id "FKBP1A"; transcript_id "NM_054014:uc002wfa.3";
+chr20 hg19_knownGene exon 1373478 1373525 0.000000 - . gene_id "FKBP1A"; transcript_id "NM_054014:uc002wfa.3";
+chr20 hg19_knownGene CDS 1373606 1373642 0.000000 - 0 gene_id "FKBP1A"; transcript_id "NM_054014:uc002wfa.3";
+chr20 hg19_knownGene exon 1373606 1373816 0.000000 - . gene_id "FKBP1A"; transcript_id "NM_054014:uc002wfa.3";
+chr20 hg19_knownGene exon 1352720 1352884 0.000000 - . gene_id "FKBP1A"; transcript_id "AB241125:uc010gaf.2";
+chr20 hg19_knownGene exon 1356135 1356247 0.000000 - . gene_id "FKBP1A"; transcript_id "AB241125:uc010gaf.2";
+chr20 hg19_knownGene exon 1358074 1358155 0.000000 - . gene_id "FKBP1A"; transcript_id "AB241125:uc010gaf.2";
+chr20 hg19_knownGene exon 1373478 1373525 0.000000 - . gene_id "FKBP1A"; transcript_id "AB241125:uc010gaf.2";
+chr20 hg19_knownGene exon 1373606 1373816 0.000000 - . gene_id "FKBP1A"; transcript_id "AB241125:uc010gaf.2";
+chr20 hg19_knownGene CDS 1352759 1352884 0.000000 - 0 gene_id "FKBP1A"; transcript_id "AB241123:uc010gae.2";
+chr20 hg19_knownGene exon 1352720 1352884 0.000000 - . gene_id "FKBP1A"; transcript_id "AB241123:uc010gae.2";
+chr20 hg19_knownGene CDS 1356135 1356247 0.000000 - 2 gene_id "FKBP1A"; transcript_id "AB241123:uc010gae.2";
+chr20 hg19_knownGene exon 1356135 1356247 0.000000 - . gene_id "FKBP1A"; transcript_id "AB241123:uc010gae.2";
+chr20 hg19_knownGene CDS 1373606 1373642 0.000000 - 0 gene_id "FKBP1A"; transcript_id "AB241123:uc010gae.2";
+chr20 hg19_knownGene exon 1373606 1373816 0.000000 - . gene_id "FKBP1A"; transcript_id "AB241123:uc010gae.2";
+chr20 hg19_knownGene CDS 1424397 1424556 0.000000 - 1 gene_id "NSFL1C"; transcript_id "NM_016143:uc002wfc.3";
+chr20 hg19_knownGene exon 1422807 1424556 0.000000 - . gene_id "NSFL1C"; transcript_id "NM_016143:uc002wfc.3";
+chr20 hg19_knownGene CDS 1426311 1426475 0.000000 - 1 gene_id "NSFL1C"; transcript_id "NM_016143:uc002wfc.3";
+chr20 hg19_knownGene exon 1426311 1426475 0.000000 - . gene_id "NSFL1C"; transcript_id "NM_016143:uc002wfc.3";
+chr20 hg19_knownGene CDS 1433138 1433275 0.000000 - 1 gene_id "NSFL1C"; transcript_id "NM_016143:uc002wfc.3";
+chr20 hg19_knownGene exon 1433138 1433275 0.000000 - . gene_id "NSFL1C"; transcript_id "NM_016143:uc002wfc.3";
+chr20 hg19_knownGene CDS 1433676 1433785 0.000000 - 0 gene_id "NSFL1C"; transcript_id "NM_016143:uc002wfc.3";
+chr20 hg19_knownGene exon 1433676 1433785 0.000000 - . gene_id "NSFL1C"; transcript_id "NM_016143:uc002wfc.3";
+chr20 hg19_knownGene CDS 1434858 1434950 0.000000 - 0 gene_id "NSFL1C"; transcript_id "NM_016143:uc002wfc.3";
+chr20 hg19_knownGene exon 1434858 1434950 0.000000 - . gene_id "NSFL1C"; transcript_id "NM_016143:uc002wfc.3";
+chr20 hg19_knownGene CDS 1435612 1435777 0.000000 - 1 gene_id "NSFL1C"; transcript_id "NM_016143:uc002wfc.3";
+chr20 hg19_knownGene exon 1435612 1435777 0.000000 - . gene_id "NSFL1C"; transcript_id "NM_016143:uc002wfc.3";
+chr20 hg19_knownGene CDS 1438845 1438919 0.000000 - 1 gene_id "NSFL1C"; transcript_id "NM_016143:uc002wfc.3";
+chr20 hg19_knownGene exon 1438845 1438919 0.000000 - . gene_id "NSFL1C"; transcript_id "NM_016143:uc002wfc.3";
+chr20 hg19_knownGene CDS 1444974 1445071 0.000000 - 0 gene_id "NSFL1C"; transcript_id "NM_016143:uc002wfc.3";
+chr20 hg19_knownGene exon 1444974 1445071 0.000000 - . gene_id "NSFL1C"; transcript_id "NM_016143:uc002wfc.3";
+chr20 hg19_knownGene CDS 1447365 1447469 0.000000 - 0 gene_id "NSFL1C"; transcript_id "NM_016143:uc002wfc.3";
+chr20 hg19_knownGene exon 1447365 1448337 0.000000 - . gene_id "NSFL1C"; transcript_id "NM_016143:uc002wfc.3";
+chr20 hg19_knownGene CDS 1424397 1424556 0.000000 - 1 gene_id "NSFL1C"; transcript_id "NR_038164:uc021vzq.1";
+chr20 hg19_knownGene exon 1422807 1424556 0.000000 - . gene_id "NSFL1C"; transcript_id "NR_038164:uc021vzq.1";
+chr20 hg19_knownGene CDS 1426311 1426475 0.000000 - 1 gene_id "NSFL1C"; transcript_id "NR_038164:uc021vzq.1";
+chr20 hg19_knownGene exon 1426311 1426475 0.000000 - . gene_id "NSFL1C"; transcript_id "NR_038164:uc021vzq.1";
+chr20 hg19_knownGene CDS 1433138 1433275 0.000000 - 1 gene_id "NSFL1C"; transcript_id "NR_038164:uc021vzq.1";
+chr20 hg19_knownGene exon 1433138 1433275 0.000000 - . gene_id "NSFL1C"; transcript_id "NR_038164:uc021vzq.1";
+chr20 hg19_knownGene CDS 1433676 1433785 0.000000 - 0 gene_id "NSFL1C"; transcript_id "NR_038164:uc021vzq.1";
+chr20 hg19_knownGene exon 1433676 1433785 0.000000 - . gene_id "NSFL1C"; transcript_id "NR_038164:uc021vzq.1";
+chr20 hg19_knownGene CDS 1434858 1434950 0.000000 - 0 gene_id "NSFL1C"; transcript_id "NR_038164:uc021vzq.1";
+chr20 hg19_knownGene exon 1434858 1434950 0.000000 - . gene_id "NSFL1C"; transcript_id "NR_038164:uc021vzq.1";
+chr20 hg19_knownGene CDS 1435612 1435682 0.000000 - 2 gene_id "NSFL1C"; transcript_id "NR_038164:uc021vzq.1";
+chr20 hg19_knownGene exon 1435612 1435682 0.000000 - . gene_id "NSFL1C"; transcript_id "NR_038164:uc021vzq.1";
+chr20 hg19_knownGene CDS 1438845 1438875 0.000000 - 0 gene_id "NSFL1C"; transcript_id "NR_038164:uc021vzq.1";
+chr20 hg19_knownGene exon 1438845 1438919 0.000000 - . gene_id "NSFL1C"; transcript_id "NR_038164:uc021vzq.1";
+chr20 hg19_knownGene exon 1447365 1448337 0.000000 - . gene_id "NSFL1C"; transcript_id "NR_038164:uc021vzq.1";
+chr20 hg19_knownGene CDS 1424397 1424556 0.000000 - 1 gene_id "NSFL1C"; transcript_id "NM_018839:uc002wfe.3";
+chr20 hg19_knownGene exon 1422807 1424556 0.000000 - . gene_id "NSFL1C"; transcript_id "NM_018839:uc002wfe.3";
+chr20 hg19_knownGene CDS 1426311 1426475 0.000000 - 1 gene_id "NSFL1C"; transcript_id "NM_018839:uc002wfe.3";
+chr20 hg19_knownGene exon 1426311 1426475 0.000000 - . gene_id "NSFL1C"; transcript_id "NM_018839:uc002wfe.3";
+chr20 hg19_knownGene CDS 1433138 1433275 0.000000 - 1 gene_id "NSFL1C"; transcript_id "NM_018839:uc002wfe.3";
+chr20 hg19_knownGene exon 1433138 1433275 0.000000 - . gene_id "NSFL1C"; transcript_id "NM_018839:uc002wfe.3";
+chr20 hg19_knownGene CDS 1433676 1433785 0.000000 - 0 gene_id "NSFL1C"; transcript_id "NM_018839:uc002wfe.3";
+chr20 hg19_knownGene exon 1433676 1433785 0.000000 - . gene_id "NSFL1C"; transcript_id "NM_018839:uc002wfe.3";
+chr20 hg19_knownGene CDS 1435612 1435777 0.000000 - 1 gene_id "NSFL1C"; transcript_id "NM_018839:uc002wfe.3";
+chr20 hg19_knownGene exon 1435612 1435777 0.000000 - . gene_id "NSFL1C"; transcript_id "NM_018839:uc002wfe.3";
+chr20 hg19_knownGene CDS 1438845 1438919 0.000000 - 1 gene_id "NSFL1C"; transcript_id "NM_018839:uc002wfe.3";
+chr20 hg19_knownGene exon 1438845 1438919 0.000000 - . gene_id "NSFL1C"; transcript_id "NM_018839:uc002wfe.3";
+chr20 hg19_knownGene CDS 1444974 1445071 0.000000 - 0 gene_id "NSFL1C"; transcript_id "NM_018839:uc002wfe.3";
+chr20 hg19_knownGene exon 1444974 1445071 0.000000 - . gene_id "NSFL1C"; transcript_id "NM_018839:uc002wfe.3";
+chr20 hg19_knownGene CDS 1447365 1447469 0.000000 - 0 gene_id "NSFL1C"; transcript_id "NM_018839:uc002wfe.3";
+chr20 hg19_knownGene exon 1447365 1448337 0.000000 - . gene_id "NSFL1C"; transcript_id "NM_018839:uc002wfe.3";
+chr20 hg19_knownGene CDS 1456815 1456981 0.000000 - 2 gene_id "SIRPB2"; transcript_id "NM_001134836:uc002wfh.3";
+chr20 hg19_knownGene exon 1455236 1456981 0.000000 - . gene_id "SIRPB2"; transcript_id "NM_001134836:uc002wfh.3";
+chr20 hg19_knownGene CDS 1457983 1458048 0.000000 - 2 gene_id "SIRPB2"; transcript_id "NM_001134836:uc002wfh.3";
+chr20 hg19_knownGene exon 1457983 1458048 0.000000 - . gene_id "SIRPB2"; transcript_id "NM_001134836:uc002wfh.3";
+chr20 hg19_knownGene CDS 1458911 1459252 0.000000 - 2 gene_id "SIRPB2"; transcript_id "NM_001134836:uc002wfh.3";
+chr20 hg19_knownGene exon 1458911 1459252 0.000000 - . gene_id "SIRPB2"; transcript_id "NM_001134836:uc002wfh.3";
+chr20 hg19_knownGene CDS 1460639 1460710 0.000000 - 2 gene_id "SIRPB2"; transcript_id "NM_001134836:uc002wfh.3";
+chr20 hg19_knownGene exon 1460639 1460710 0.000000 - . gene_id "SIRPB2"; transcript_id "NM_001134836:uc002wfh.3";
+chr20 hg19_knownGene CDS 1471921 1472005 0.000000 - 0 gene_id "SIRPB2"; transcript_id "NM_001134836:uc002wfh.3";
+chr20 hg19_knownGene exon 1471921 1472233 0.000000 - . gene_id "SIRPB2"; transcript_id "NM_001134836:uc002wfh.3";
+chr20 hg19_knownGene CDS 1456815 1456981 0.000000 - 2 gene_id "SIRPB2"; transcript_id "NM_001122962:uc002wfg.2";
+chr20 hg19_knownGene exon 1455236 1456981 0.000000 - . gene_id "SIRPB2"; transcript_id "NM_001122962:uc002wfg.2";
+chr20 hg19_knownGene CDS 1457983 1458048 0.000000 - 2 gene_id "SIRPB2"; transcript_id "NM_001122962:uc002wfg.2";
+chr20 hg19_knownGene exon 1457983 1458048 0.000000 - . gene_id "SIRPB2"; transcript_id "NM_001122962:uc002wfg.2";
+chr20 hg19_knownGene CDS 1458911 1459252 0.000000 - 2 gene_id "SIRPB2"; transcript_id "NM_001122962:uc002wfg.2";
+chr20 hg19_knownGene exon 1458911 1459252 0.000000 - . gene_id "SIRPB2"; transcript_id "NM_001122962:uc002wfg.2";
+chr20 hg19_knownGene CDS 1460345 1460710 0.000000 - 2 gene_id "SIRPB2"; transcript_id "NM_001122962:uc002wfg.2";
+chr20 hg19_knownGene exon 1460345 1460710 0.000000 - . gene_id "SIRPB2"; transcript_id "NM_001122962:uc002wfg.2";
+chr20 hg19_knownGene CDS 1471921 1472005 0.000000 - 0 gene_id "SIRPB2"; transcript_id "NM_001122962:uc002wfg.2";
+chr20 hg19_knownGene exon 1471921 1472233 0.000000 - . gene_id "SIRPB2"; transcript_id "NM_001122962:uc002wfg.2";
+chr20 hg19_knownGene CDS 1457798 1458048 0.000000 - 2 gene_id "SIRPB2"; transcript_id "AK294440:uc010zpr.1";
+chr20 hg19_knownGene exon 1457285 1458048 0.000000 - . gene_id "SIRPB2"; transcript_id "AK294440:uc010zpr.1";
+chr20 hg19_knownGene CDS 1458911 1459252 0.000000 - 2 gene_id "SIRPB2"; transcript_id "AK294440:uc010zpr.1";
+chr20 hg19_knownGene exon 1458911 1459252 0.000000 - . gene_id "SIRPB2"; transcript_id "AK294440:uc010zpr.1";
+chr20 hg19_knownGene CDS 1460345 1460381 0.000000 - 0 gene_id "SIRPB2"; transcript_id "AK294440:uc010zpr.1";
+chr20 hg19_knownGene exon 1460345 1460439 0.000000 - . gene_id "SIRPB2"; transcript_id "AK294440:uc010zpr.1";
+chr20 hg19_knownGene exon 1460571 1460710 0.000000 - . gene_id "SIRPB2"; transcript_id "AK294440:uc010zpr.1";
+chr20 hg19_knownGene exon 1471921 1472233 0.000000 - . gene_id "SIRPB2"; transcript_id "AK294440:uc010zpr.1";
+chr20 hg19_knownGene CDS 1515074 1515087 0.000000 - 2 gene_id "SIRPD"; transcript_id "NM_178460:uc002wfi.3";
+chr20 hg19_knownGene exon 1514897 1515087 0.000000 - . gene_id "SIRPD"; transcript_id "NM_178460:uc002wfi.3";
+chr20 hg19_knownGene CDS 1517801 1517956 0.000000 - 2 gene_id "SIRPD"; transcript_id "NM_178460:uc002wfi.3";
+chr20 hg19_knownGene exon 1517801 1517956 0.000000 - . gene_id "SIRPD"; transcript_id "NM_178460:uc002wfi.3";
+chr20 hg19_knownGene CDS 1532337 1532684 0.000000 - 2 gene_id "SIRPD"; transcript_id "NM_178460:uc002wfi.3";
+chr20 hg19_knownGene exon 1532337 1532684 0.000000 - . gene_id "SIRPD"; transcript_id "NM_178460:uc002wfi.3";
+chr20 hg19_knownGene CDS 1538227 1538299 0.000000 - 0 gene_id "SIRPD"; transcript_id "NM_178460:uc002wfi.3";
+chr20 hg19_knownGene exon 1538227 1538343 0.000000 - . gene_id "SIRPD"; transcript_id "NM_178460:uc002wfi.3";
+chr20 hg19_knownGene exon 1545029 1546143 0.000000 - . gene_id "SIRPB1"; transcript_id "NM_006065:uc010gai.3";
+chr20 hg19_knownGene CDS 1546804 1546913 0.000000 - 2 gene_id "SIRPB1"; transcript_id "NM_006065:uc010gai.3";
+chr20 hg19_knownGene exon 1546799 1546913 0.000000 - . gene_id "SIRPB1"; transcript_id "NM_006065:uc010gai.3";
+chr20 hg19_knownGene CDS 1551451 1551783 0.000000 - 2 gene_id "SIRPB1"; transcript_id "NM_006065:uc010gai.3";
+chr20 hg19_knownGene exon 1551451 1551783 0.000000 - . gene_id "SIRPB1"; transcript_id "NM_006065:uc010gai.3";
+chr20 hg19_knownGene CDS 1552366 1552683 0.000000 - 2 gene_id "SIRPB1"; transcript_id "NM_006065:uc010gai.3";
+chr20 hg19_knownGene exon 1552366 1552683 0.000000 - . gene_id "SIRPB1"; transcript_id "NM_006065:uc010gai.3";
+chr20 hg19_knownGene CDS 1558984 1559340 0.000000 - 2 gene_id "SIRPB1"; transcript_id "NM_006065:uc010gai.3";
+chr20 hg19_knownGene exon 1558984 1559340 0.000000 - . gene_id "SIRPB1"; transcript_id "NM_006065:uc010gai.3";
+chr20 hg19_knownGene CDS 1600515 1600590 0.000000 - 0 gene_id "SIRPB1"; transcript_id "NM_006065:uc010gai.3";
+chr20 hg19_knownGene exon 1600515 1600689 0.000000 - . gene_id "SIRPB1"; transcript_id "NM_006065:uc010gai.3";
+chr20 hg19_knownGene exon 1545029 1546143 0.000000 - . gene_id "SIRPB1"; transcript_id "NM_001083910:uc002wfk.4";
+chr20 hg19_knownGene CDS 1546804 1546913 0.000000 - 2 gene_id "SIRPB1"; transcript_id "NM_001083910:uc002wfk.4";
+chr20 hg19_knownGene exon 1546799 1546913 0.000000 - . gene_id "SIRPB1"; transcript_id "NM_001083910:uc002wfk.4";
+chr20 hg19_knownGene CDS 1558984 1559340 0.000000 - 2 gene_id "SIRPB1"; transcript_id "NM_001083910:uc002wfk.4";
+chr20 hg19_knownGene exon 1558984 1559340 0.000000 - . gene_id "SIRPB1"; transcript_id "NM_001083910:uc002wfk.4";
+chr20 hg19_knownGene CDS 1600515 1600590 0.000000 - 0 gene_id "SIRPB1"; transcript_id "NM_001083910:uc002wfk.4";
+chr20 hg19_knownGene exon 1600515 1600689 0.000000 - . gene_id "SIRPB1"; transcript_id "NM_001083910:uc002wfk.4";
+chr20 hg19_knownGene exon 1577986 1578928 0.000000 - . gene_id "SIRPB1"; transcript_id "NM_001135844:uc002wfl.4";
+chr20 hg19_knownGene CDS 1579473 1579582 0.000000 - 2 gene_id "SIRPB1"; transcript_id "NM_001135844:uc002wfl.4";
+chr20 hg19_knownGene exon 1579468 1579582 0.000000 - . gene_id "SIRPB1"; transcript_id "NM_001135844:uc002wfl.4";
+chr20 hg19_knownGene CDS 1584456 1584788 0.000000 - 2 gene_id "SIRPB1"; transcript_id "NM_001135844:uc002wfl.4";
+chr20 hg19_knownGene exon 1584456 1584788 0.000000 - . gene_id "SIRPB1"; transcript_id "NM_001135844:uc002wfl.4";
+chr20 hg19_knownGene CDS 1585388 1585705 0.000000 - 2 gene_id "SIRPB1"; transcript_id "NM_001135844:uc002wfl.4";
+chr20 hg19_knownGene exon 1585388 1585705 0.000000 - . gene_id "SIRPB1"; transcript_id "NM_001135844:uc002wfl.4";
+chr20 hg19_knownGene CDS 1592003 1592359 0.000000 - 2 gene_id "SIRPB1"; transcript_id "NM_001135844:uc002wfl.4";
+chr20 hg19_knownGene exon 1592003 1592359 0.000000 - . gene_id "SIRPB1"; transcript_id "NM_001135844:uc002wfl.4";
+chr20 hg19_knownGene CDS 1600515 1600590 0.000000 - 0 gene_id "SIRPB1"; transcript_id "NM_001135844:uc002wfl.4";
+chr20 hg19_knownGene exon 1600515 1600689 0.000000 - . gene_id "SIRPB1"; transcript_id "NM_001135844:uc002wfl.4";
+chr20 hg19_knownGene exon 1611583 1611595 0.000000 + . gene_id "AK093519"; transcript_id "AK093519:uc002wfp.1";
+chr20 hg19_knownGene exon 1614154 1614366 0.000000 + . gene_id "AK093519"; transcript_id "AK093519:uc002wfp.1";
+chr20 hg19_knownGene exon 1617852 1617996 0.000000 + . gene_id "AK093519"; transcript_id "AK093519:uc002wfp.1";
+chr20 hg19_knownGene exon 1626682 1629118 0.000000 + . gene_id "AK093519"; transcript_id "AK093519:uc002wfp.1";
+chr20 hg19_knownGene exon 1609798 1610282 0.000000 - . gene_id "SIRPG"; transcript_id "NM_018556:uc002wfm.1";
+chr20 hg19_knownGene CDS 1610873 1610952 0.000000 - 2 gene_id "SIRPG"; transcript_id "NM_018556:uc002wfm.1";
+chr20 hg19_knownGene exon 1610868 1610952 0.000000 - . gene_id "SIRPG"; transcript_id "NM_018556:uc002wfm.1";
+chr20 hg19_knownGene CDS 1615913 1616245 0.000000 - 2 gene_id "SIRPG"; transcript_id "NM_018556:uc002wfm.1";
+chr20 hg19_knownGene exon 1615913 1616245 0.000000 - . gene_id "SIRPG"; transcript_id "NM_018556:uc002wfm.1";
+chr20 hg19_knownGene CDS 1616834 1617151 0.000000 - 2 gene_id "SIRPG"; transcript_id "NM_018556:uc002wfm.1";
+chr20 hg19_knownGene exon 1616834 1617151 0.000000 - . gene_id "SIRPG"; transcript_id "NM_018556:uc002wfm.1";
+chr20 hg19_knownGene CDS 1629698 1630054 0.000000 - 2 gene_id "SIRPG"; transcript_id "NM_018556:uc002wfm.1";
+chr20 hg19_knownGene exon 1629698 1630054 0.000000 - . gene_id "SIRPG"; transcript_id "NM_018556:uc002wfm.1";
+chr20 hg19_knownGene CDS 1638288 1638360 0.000000 - 0 gene_id "SIRPG"; transcript_id "NM_018556:uc002wfm.1";
+chr20 hg19_knownGene exon 1638288 1638425 0.000000 - . gene_id "SIRPG"; transcript_id "NM_018556:uc002wfm.1";
+chr20 hg19_knownGene exon 1609798 1610282 0.000000 - . gene_id "SIRPG"; transcript_id "NM_001039508:uc002wfn.1";
+chr20 hg19_knownGene CDS 1610873 1610952 0.000000 - 2 gene_id "SIRPG"; transcript_id "NM_001039508:uc002wfn.1";
+chr20 hg19_knownGene exon 1610868 1610952 0.000000 - . gene_id "SIRPG"; transcript_id "NM_001039508:uc002wfn.1";
+chr20 hg19_knownGene CDS 1616834 1617151 0.000000 - 2 gene_id "SIRPG"; transcript_id "NM_001039508:uc002wfn.1";
+chr20 hg19_knownGene exon 1616834 1617151 0.000000 - . gene_id "SIRPG"; transcript_id "NM_001039508:uc002wfn.1";
+chr20 hg19_knownGene CDS 1629698 1630054 0.000000 - 2 gene_id "SIRPG"; transcript_id "NM_001039508:uc002wfn.1";
+chr20 hg19_knownGene exon 1629698 1630054 0.000000 - . gene_id "SIRPG"; transcript_id "NM_001039508:uc002wfn.1";
+chr20 hg19_knownGene CDS 1638288 1638360 0.000000 - 0 gene_id "SIRPG"; transcript_id "NM_001039508:uc002wfn.1";
+chr20 hg19_knownGene exon 1638288 1638425 0.000000 - . gene_id "SIRPG"; transcript_id "NM_001039508:uc002wfn.1";
+chr20 hg19_knownGene exon 1609798 1610282 0.000000 - . gene_id "SIRPG"; transcript_id "NM_080816:uc002wfo.1";
+chr20 hg19_knownGene CDS 1610873 1610952 0.000000 - 2 gene_id "SIRPG"; transcript_id "NM_080816:uc002wfo.1";
+chr20 hg19_knownGene exon 1610868 1610952 0.000000 - . gene_id "SIRPG"; transcript_id "NM_080816:uc002wfo.1";
+chr20 hg19_knownGene CDS 1629698 1630054 0.000000 - 2 gene_id "SIRPG"; transcript_id "NM_080816:uc002wfo.1";
+chr20 hg19_knownGene exon 1629698 1630054 0.000000 - . gene_id "SIRPG"; transcript_id "NM_080816:uc002wfo.1";
+chr20 hg19_knownGene CDS 1638288 1638360 0.000000 - 0 gene_id "SIRPG"; transcript_id "NM_080816:uc002wfo.1";
+chr20 hg19_knownGene exon 1638288 1638425 0.000000 - . gene_id "SIRPG"; transcript_id "NM_080816:uc002wfo.1";
+chr20 hg19_knownGene exon 1754011 1754188 0.000000 - . gene_id "LOC100289473"; transcript_id "NR_037142:uc021vzr.1";
+chr20 hg19_knownGene exon 1755157 1755311 0.000000 - . gene_id "LOC100289473"; transcript_id "NR_037142:uc021vzr.1";
+chr20 hg19_knownGene exon 1759166 1759494 0.000000 - . gene_id "LOC100289473"; transcript_id "NR_037142:uc021vzr.1";
+chr20 hg19_knownGene exon 1760308 1760392 0.000000 - . gene_id "LOC100289473"; transcript_id "NR_037142:uc021vzr.1";
+chr20 hg19_knownGene exon 1874813 1875163 0.000000 + . gene_id "SIRPA"; transcript_id "NM_001040022:uc002wfq.3";
+chr20 hg19_knownGene CDS 1876094 1876172 0.000000 + 0 gene_id "SIRPA"; transcript_id "NM_001040022:uc002wfq.3";
+chr20 hg19_knownGene exon 1876085 1876172 0.000000 + . gene_id "SIRPA"; transcript_id "NM_001040022:uc002wfq.3";
+chr20 hg19_knownGene CDS 1895745 1896101 0.000000 + 2 gene_id "SIRPA"; transcript_id "NM_001040022:uc002wfq.3";
+chr20 hg19_knownGene exon 1895745 1896101 0.000000 + . gene_id "SIRPA"; transcript_id "NM_001040022:uc002wfq.3";
+chr20 hg19_knownGene CDS 1902041 1902358 0.000000 + 2 gene_id "SIRPA"; transcript_id "NM_001040022:uc002wfq.3";
+chr20 hg19_knownGene exon 1902041 1902358 0.000000 + . gene_id "SIRPA"; transcript_id "NM_001040022:uc002wfq.3";
+chr20 hg19_knownGene CDS 1902959 1903291 0.000000 + 2 gene_id "SIRPA"; transcript_id "NM_001040022:uc002wfq.3";
+chr20 hg19_knownGene exon 1902959 1903291 0.000000 + . gene_id "SIRPA"; transcript_id "NM_001040022:uc002wfq.3";
+chr20 hg19_knownGene CDS 1905410 1905523 0.000000 + 2 gene_id "SIRPA"; transcript_id "NM_001040022:uc002wfq.3";
+chr20 hg19_knownGene exon 1905410 1905523 0.000000 + . gene_id "SIRPA"; transcript_id "NM_001040022:uc002wfq.3";
+chr20 hg19_knownGene CDS 1908521 1908545 0.000000 + 2 gene_id "SIRPA"; transcript_id "NM_001040022:uc002wfq.3";
+chr20 hg19_knownGene exon 1908521 1908545 0.000000 + . gene_id "SIRPA"; transcript_id "NM_001040022:uc002wfq.3";
+chr20 hg19_knownGene CDS 1915361 1915400 0.000000 + 1 gene_id "SIRPA"; transcript_id "NM_001040022:uc002wfq.3";
+chr20 hg19_knownGene exon 1915361 1915400 0.000000 + . gene_id "SIRPA"; transcript_id "NM_001040022:uc002wfq.3";
+chr20 hg19_knownGene CDS 1917966 1918211 0.000000 + 0 gene_id "SIRPA"; transcript_id "NM_001040022:uc002wfq.3";
+chr20 hg19_knownGene exon 1917966 1920540 0.000000 + . gene_id "SIRPA"; transcript_id "NM_001040022:uc002wfq.3";
+chr20 hg19_knownGene exon 1874813 1875163 0.000000 + . gene_id "SIRPA"; transcript_id "AK298243:uc010zps.2";
+chr20 hg19_knownGene CDS 1876094 1876172 0.000000 + 0 gene_id "SIRPA"; transcript_id "AK298243:uc010zps.2";
+chr20 hg19_knownGene exon 1876085 1876172 0.000000 + . gene_id "SIRPA"; transcript_id "AK298243:uc010zps.2";
+chr20 hg19_knownGene CDS 1895805 1896101 0.000000 + 2 gene_id "SIRPA"; transcript_id "AK298243:uc010zps.2";
+chr20 hg19_knownGene exon 1895805 1896101 0.000000 + . gene_id "SIRPA"; transcript_id "AK298243:uc010zps.2";
+chr20 hg19_knownGene CDS 1902041 1902358 0.000000 + 2 gene_id "SIRPA"; transcript_id "AK298243:uc010zps.2";
+chr20 hg19_knownGene exon 1902041 1902358 0.000000 + . gene_id "SIRPA"; transcript_id "AK298243:uc010zps.2";
+chr20 hg19_knownGene CDS 1902959 1903291 0.000000 + 2 gene_id "SIRPA"; transcript_id "AK298243:uc010zps.2";
+chr20 hg19_knownGene exon 1902959 1903291 0.000000 + . gene_id "SIRPA"; transcript_id "AK298243:uc010zps.2";
+chr20 hg19_knownGene CDS 1905410 1905523 0.000000 + 2 gene_id "SIRPA"; transcript_id "AK298243:uc010zps.2";
+chr20 hg19_knownGene exon 1905410 1905523 0.000000 + . gene_id "SIRPA"; transcript_id "AK298243:uc010zps.2";
+chr20 hg19_knownGene CDS 1908521 1908545 0.000000 + 2 gene_id "SIRPA"; transcript_id "AK298243:uc010zps.2";
+chr20 hg19_knownGene exon 1908521 1908545 0.000000 + . gene_id "SIRPA"; transcript_id "AK298243:uc010zps.2";
+chr20 hg19_knownGene CDS 1915361 1915400 0.000000 + 1 gene_id "SIRPA"; transcript_id "AK298243:uc010zps.2";
+chr20 hg19_knownGene exon 1915361 1915400 0.000000 + . gene_id "SIRPA"; transcript_id "AK298243:uc010zps.2";
+chr20 hg19_knownGene CDS 1917966 1918211 0.000000 + 0 gene_id "SIRPA"; transcript_id "AK298243:uc010zps.2";
+chr20 hg19_knownGene exon 1917966 1920540 0.000000 + . gene_id "SIRPA"; transcript_id "AK298243:uc010zps.2";
+chr20 hg19_knownGene exon 1875425 1875442 0.000000 + . gene_id "SIRPA"; transcript_id "NM_080792:uc002wfr.3";
+chr20 hg19_knownGene CDS 1876094 1876172 0.000000 + 0 gene_id "SIRPA"; transcript_id "NM_080792:uc002wfr.3";
+chr20 hg19_knownGene exon 1876085 1876172 0.000000 + . gene_id "SIRPA"; transcript_id "NM_080792:uc002wfr.3";
+chr20 hg19_knownGene CDS 1895745 1896101 0.000000 + 2 gene_id "SIRPA"; transcript_id "NM_080792:uc002wfr.3";
+chr20 hg19_knownGene exon 1895745 1896101 0.000000 + . gene_id "SIRPA"; transcript_id "NM_080792:uc002wfr.3";
+chr20 hg19_knownGene CDS 1902041 1902358 0.000000 + 2 gene_id "SIRPA"; transcript_id "NM_080792:uc002wfr.3";
+chr20 hg19_knownGene exon 1902041 1902358 0.000000 + . gene_id "SIRPA"; transcript_id "NM_080792:uc002wfr.3";
+chr20 hg19_knownGene CDS 1902959 1903291 0.000000 + 2 gene_id "SIRPA"; transcript_id "NM_080792:uc002wfr.3";
+chr20 hg19_knownGene exon 1902959 1903291 0.000000 + . gene_id "SIRPA"; transcript_id "NM_080792:uc002wfr.3";
+chr20 hg19_knownGene CDS 1905410 1905523 0.000000 + 2 gene_id "SIRPA"; transcript_id "NM_080792:uc002wfr.3";
+chr20 hg19_knownGene exon 1905410 1905523 0.000000 + . gene_id "SIRPA"; transcript_id "NM_080792:uc002wfr.3";
+chr20 hg19_knownGene CDS 1908521 1908545 0.000000 + 2 gene_id "SIRPA"; transcript_id "NM_080792:uc002wfr.3";
+chr20 hg19_knownGene exon 1908521 1908545 0.000000 + . gene_id "SIRPA"; transcript_id "NM_080792:uc002wfr.3";
+chr20 hg19_knownGene CDS 1915361 1915400 0.000000 + 1 gene_id "SIRPA"; transcript_id "NM_080792:uc002wfr.3";
+chr20 hg19_knownGene exon 1915361 1915400 0.000000 + . gene_id "SIRPA"; transcript_id "NM_080792:uc002wfr.3";
+chr20 hg19_knownGene CDS 1917966 1918211 0.000000 + 0 gene_id "SIRPA"; transcript_id "NM_080792:uc002wfr.3";
+chr20 hg19_knownGene exon 1917966 1920540 0.000000 + . gene_id "SIRPA"; transcript_id "NM_080792:uc002wfr.3";
+chr20 hg19_knownGene CDS 1876094 1876172 0.000000 + 0 gene_id "SIRPA"; transcript_id "NM_001040023:uc002wfs.3";
+chr20 hg19_knownGene exon 1875826 1876172 0.000000 + . gene_id "SIRPA"; transcript_id "NM_001040023:uc002wfs.3";
+chr20 hg19_knownGene CDS 1895745 1896101 0.000000 + 2 gene_id "SIRPA"; transcript_id "NM_001040023:uc002wfs.3";
+chr20 hg19_knownGene exon 1895745 1896101 0.000000 + . gene_id "SIRPA"; transcript_id "NM_001040023:uc002wfs.3";
+chr20 hg19_knownGene CDS 1902041 1902358 0.000000 + 2 gene_id "SIRPA"; transcript_id "NM_001040023:uc002wfs.3";
+chr20 hg19_knownGene exon 1902041 1902358 0.000000 + . gene_id "SIRPA"; transcript_id "NM_001040023:uc002wfs.3";
+chr20 hg19_knownGene CDS 1902959 1903291 0.000000 + 2 gene_id "SIRPA"; transcript_id "NM_001040023:uc002wfs.3";
+chr20 hg19_knownGene exon 1902959 1903291 0.000000 + . gene_id "SIRPA"; transcript_id "NM_001040023:uc002wfs.3";
+chr20 hg19_knownGene CDS 1905410 1905523 0.000000 + 2 gene_id "SIRPA"; transcript_id "NM_001040023:uc002wfs.3";
+chr20 hg19_knownGene exon 1905410 1905523 0.000000 + . gene_id "SIRPA"; transcript_id "NM_001040023:uc002wfs.3";
+chr20 hg19_knownGene CDS 1908521 1908545 0.000000 + 2 gene_id "SIRPA"; transcript_id "NM_001040023:uc002wfs.3";
+chr20 hg19_knownGene exon 1908521 1908545 0.000000 + . gene_id "SIRPA"; transcript_id "NM_001040023:uc002wfs.3";
+chr20 hg19_knownGene CDS 1915361 1915400 0.000000 + 1 gene_id "SIRPA"; transcript_id "NM_001040023:uc002wfs.3";
+chr20 hg19_knownGene exon 1915361 1915400 0.000000 + . gene_id "SIRPA"; transcript_id "NM_001040023:uc002wfs.3";
+chr20 hg19_knownGene CDS 1917966 1918211 0.000000 + 0 gene_id "SIRPA"; transcript_id "NM_001040023:uc002wfs.3";
+chr20 hg19_knownGene exon 1917966 1920540 0.000000 + . gene_id "SIRPA"; transcript_id "NM_001040023:uc002wfs.3";
+chr20 hg19_knownGene CDS 1876094 1876172 0.000000 + 0 gene_id "SIRPA"; transcript_id "BC033092:uc002wft.3";
+chr20 hg19_knownGene exon 1876085 1876172 0.000000 + . gene_id "SIRPA"; transcript_id "BC033092:uc002wft.3";
+chr20 hg19_knownGene CDS 1895745 1896101 0.000000 + 2 gene_id "SIRPA"; transcript_id "BC033092:uc002wft.3";
+chr20 hg19_knownGene exon 1895745 1896101 0.000000 + . gene_id "SIRPA"; transcript_id "BC033092:uc002wft.3";
+chr20 hg19_knownGene CDS 1902041 1902358 0.000000 + 2 gene_id "SIRPA"; transcript_id "BC033092:uc002wft.3";
+chr20 hg19_knownGene exon 1902041 1902358 0.000000 + . gene_id "SIRPA"; transcript_id "BC033092:uc002wft.3";
+chr20 hg19_knownGene CDS 1902959 1903291 0.000000 + 2 gene_id "SIRPA"; transcript_id "BC033092:uc002wft.3";
+chr20 hg19_knownGene exon 1902959 1903291 0.000000 + . gene_id "SIRPA"; transcript_id "BC033092:uc002wft.3";
+chr20 hg19_knownGene CDS 1905410 1905523 0.000000 + 2 gene_id "SIRPA"; transcript_id "BC033092:uc002wft.3";
+chr20 hg19_knownGene exon 1905410 1905523 0.000000 + . gene_id "SIRPA"; transcript_id "BC033092:uc002wft.3";
+chr20 hg19_knownGene CDS 1908521 1908545 0.000000 + 2 gene_id "SIRPA"; transcript_id "BC033092:uc002wft.3";
+chr20 hg19_knownGene exon 1908521 1908545 0.000000 + . gene_id "SIRPA"; transcript_id "BC033092:uc002wft.3";
+chr20 hg19_knownGene CDS 1915361 1915412 0.000000 + 1 gene_id "SIRPA"; transcript_id "BC033092:uc002wft.3";
+chr20 hg19_knownGene exon 1915361 1915412 0.000000 + . gene_id "SIRPA"; transcript_id "BC033092:uc002wft.3";
+chr20 hg19_knownGene CDS 1917966 1918211 0.000000 + 0 gene_id "SIRPA"; transcript_id "BC033092:uc002wft.3";
+chr20 hg19_knownGene exon 1917966 1920540 0.000000 + . gene_id "SIRPA"; transcript_id "BC033092:uc002wft.3";
+chr20 hg19_knownGene CDS 1960972 1961604 0.000000 - 0 gene_id "PDYN"; transcript_id "NM_001190892:uc010gaj.3";
+chr20 hg19_knownGene exon 1959402 1961604 0.000000 - . gene_id "PDYN"; transcript_id "NM_001190892:uc010gaj.3";
+chr20 hg19_knownGene CDS 1963602 1963730 0.000000 - 0 gene_id "PDYN"; transcript_id "NM_001190892:uc010gaj.3";
+chr20 hg19_knownGene exon 1963602 1963749 0.000000 - . gene_id "PDYN"; transcript_id "NM_001190892:uc010gaj.3";
+chr20 hg19_knownGene exon 1973230 1973452 0.000000 - . gene_id "PDYN"; transcript_id "NM_001190892:uc010gaj.3";
+chr20 hg19_knownGene CDS 1960972 1961604 0.000000 - 0 gene_id "PDYN"; transcript_id "NM_001190900:uc021vzs.1";
+chr20 hg19_knownGene exon 1959402 1961604 0.000000 - . gene_id "PDYN"; transcript_id "NM_001190900:uc021vzs.1";
+chr20 hg19_knownGene CDS 1963602 1963730 0.000000 - 0 gene_id "PDYN"; transcript_id "NM_001190900:uc021vzs.1";
+chr20 hg19_knownGene exon 1963602 1963749 0.000000 - . gene_id "PDYN"; transcript_id "NM_001190900:uc021vzs.1";
+chr20 hg19_knownGene exon 1973230 1973289 0.000000 - . gene_id "PDYN"; transcript_id "NM_001190900:uc021vzs.1";
+chr20 hg19_knownGene exon 1974333 1974394 0.000000 - . gene_id "PDYN"; transcript_id "NM_001190900:uc021vzs.1";
+chr20 hg19_knownGene CDS 1960972 1961604 0.000000 - 0 gene_id "PDYN"; transcript_id "NM_001190898:uc021vzt.1";
+chr20 hg19_knownGene exon 1959402 1961604 0.000000 - . gene_id "PDYN"; transcript_id "NM_001190898:uc021vzt.1";
+chr20 hg19_knownGene CDS 1963602 1963730 0.000000 - 0 gene_id "PDYN"; transcript_id "NM_001190898:uc021vzt.1";
+chr20 hg19_knownGene exon 1963602 1963746 0.000000 - . gene_id "PDYN"; transcript_id "NM_001190898:uc021vzt.1";
+chr20 hg19_knownGene exon 1973230 1973289 0.000000 - . gene_id "PDYN"; transcript_id "NM_001190898:uc021vzt.1";
+chr20 hg19_knownGene exon 1974557 1974931 0.000000 - . gene_id "PDYN"; transcript_id "NM_001190898:uc021vzt.1";
+chr20 hg19_knownGene CDS 1960972 1961604 0.000000 - 0 gene_id "PDYN"; transcript_id "NM_001190899:uc021vzu.1";
+chr20 hg19_knownGene exon 1959402 1961604 0.000000 - . gene_id "PDYN"; transcript_id "NM_001190899:uc021vzu.1";
+chr20 hg19_knownGene CDS 1963602 1963730 0.000000 - 0 gene_id "PDYN"; transcript_id "NM_001190899:uc021vzu.1";
+chr20 hg19_knownGene exon 1963602 1963749 0.000000 - . gene_id "PDYN"; transcript_id "NM_001190899:uc021vzu.1";
+chr20 hg19_knownGene exon 1974557 1974931 0.000000 - . gene_id "PDYN"; transcript_id "NM_001190899:uc021vzu.1";
+chr20 hg19_knownGene CDS 1960972 1961604 0.000000 - 0 gene_id "PDYN"; transcript_id "NM_024411:uc002wfv.3";
+chr20 hg19_knownGene exon 1959402 1961604 0.000000 - . gene_id "PDYN"; transcript_id "NM_024411:uc002wfv.3";
+chr20 hg19_knownGene CDS 1963602 1963730 0.000000 - 0 gene_id "PDYN"; transcript_id "NM_024411:uc002wfv.3";
+chr20 hg19_knownGene exon 1963602 1963749 0.000000 - . gene_id "PDYN"; transcript_id "NM_024411:uc002wfv.3";
+chr20 hg19_knownGene exon 1973230 1973289 0.000000 - . gene_id "PDYN"; transcript_id "NM_024411:uc002wfv.3";
+chr20 hg19_knownGene exon 1974557 1974931 0.000000 - . gene_id "PDYN"; transcript_id "NM_024411:uc002wfv.3";
+chr20 hg19_knownGene exon 1927892 1928297 0.000000 + . gene_id "AK090681"; transcript_id "AK090681:uc002wfu.1";
+chr20 hg19_knownGene exon 1932125 1932194 0.000000 + . gene_id "AK090681"; transcript_id "AK090681:uc002wfu.1";
+chr20 hg19_knownGene exon 1946250 1946989 0.000000 + . gene_id "AK090681"; transcript_id "AK090681:uc002wfu.1";
+chr20 hg19_knownGene exon 1987578 1988163 0.000000 + . gene_id "AK090681"; transcript_id "AK090681:uc002wfu.1";
+chr20 hg19_knownGene CDS 2082528 2082821 0.000000 + 0 gene_id "STK35"; transcript_id "NM_080836:uc002wfw.4";
+chr20 hg19_knownGene exon 2082528 2082821 0.000000 + . gene_id "STK35"; transcript_id "NM_080836:uc002wfw.4";
+chr20 hg19_knownGene CDS 2083414 2084011 0.000000 + 0 gene_id "STK35"; transcript_id "NM_080836:uc002wfw.4";
+chr20 hg19_knownGene exon 2083414 2084011 0.000000 + . gene_id "STK35"; transcript_id "NM_080836:uc002wfw.4";
+chr20 hg19_knownGene CDS 2097312 2098021 0.000000 + 2 gene_id "STK35"; transcript_id "NM_080836:uc002wfw.4";
+chr20 hg19_knownGene exon 2097312 2098061 0.000000 + . gene_id "STK35"; transcript_id "NM_080836:uc002wfw.4";
+chr20 hg19_knownGene exon 2124430 2129198 0.000000 + . gene_id "STK35"; transcript_id "NM_080836:uc002wfw.4";
+chr20 hg19_knownGene CDS 2083519 2084011 0.000000 + 0 gene_id "STK35"; transcript_id "AK302629:uc010zpu.2";
+chr20 hg19_knownGene exon 2083414 2084011 0.000000 + . gene_id "STK35"; transcript_id "AK302629:uc010zpu.2";
+chr20 hg19_knownGene CDS 2124430 2124539 0.000000 + 2 gene_id "STK35"; transcript_id "AK302629:uc010zpu.2";
+chr20 hg19_knownGene exon 2124430 2129198 0.000000 + . gene_id "STK35"; transcript_id "AK302629:uc010zpu.2";
+chr20 hg19_knownGene CDS 2276710 2276716 0.000000 + 0 gene_id "TGM3"; transcript_id "NM_003245:uc002wfx.4";
+chr20 hg19_knownGene exon 2276613 2276716 0.000000 + . gene_id "TGM3"; transcript_id "NM_003245:uc002wfx.4";
+chr20 hg19_knownGene CDS 2290303 2290476 0.000000 + 2 gene_id "TGM3"; transcript_id "NM_003245:uc002wfx.4";
+chr20 hg19_knownGene exon 2290303 2290476 0.000000 + . gene_id "TGM3"; transcript_id "NM_003245:uc002wfx.4";
+chr20 hg19_knownGene CDS 2290824 2291063 0.000000 + 2 gene_id "TGM3"; transcript_id "NM_003245:uc002wfx.4";
+chr20 hg19_knownGene exon 2290824 2291063 0.000000 + . gene_id "TGM3"; transcript_id "NM_003245:uc002wfx.4";
+chr20 hg19_knownGene CDS 2291657 2291775 0.000000 + 2 gene_id "TGM3"; transcript_id "NM_003245:uc002wfx.4";
+chr20 hg19_knownGene exon 2291657 2291775 0.000000 + . gene_id "TGM3"; transcript_id "NM_003245:uc002wfx.4";
+chr20 hg19_knownGene CDS 2293544 2293672 0.000000 + 0 gene_id "TGM3"; transcript_id "NM_003245:uc002wfx.4";
+chr20 hg19_knownGene exon 2293544 2293672 0.000000 + . gene_id "TGM3"; transcript_id "NM_003245:uc002wfx.4";
+chr20 hg19_knownGene CDS 2297714 2297891 0.000000 + 0 gene_id "TGM3"; transcript_id "NM_003245:uc002wfx.4";
+chr20 hg19_knownGene exon 2297714 2297891 0.000000 + . gene_id "TGM3"; transcript_id "NM_003245:uc002wfx.4";
+chr20 hg19_knownGene CDS 2297996 2298131 0.000000 + 2 gene_id "TGM3"; transcript_id "NM_003245:uc002wfx.4";
+chr20 hg19_knownGene exon 2297996 2298131 0.000000 + . gene_id "TGM3"; transcript_id "NM_003245:uc002wfx.4";
+chr20 hg19_knownGene CDS 2306495 2306598 0.000000 + 1 gene_id "TGM3"; transcript_id "NM_003245:uc002wfx.4";
+chr20 hg19_knownGene exon 2306495 2306598 0.000000 + . gene_id "TGM3"; transcript_id "NM_003245:uc002wfx.4";
+chr20 hg19_knownGene CDS 2308766 2309011 0.000000 + 2 gene_id "TGM3"; transcript_id "NM_003245:uc002wfx.4";
+chr20 hg19_knownGene exon 2308766 2309011 0.000000 + . gene_id "TGM3"; transcript_id "NM_003245:uc002wfx.4";
+chr20 hg19_knownGene CDS 2312648 2312956 0.000000 + 2 gene_id "TGM3"; transcript_id "NM_003245:uc002wfx.4";
+chr20 hg19_knownGene exon 2312648 2312956 0.000000 + . gene_id "TGM3"; transcript_id "NM_003245:uc002wfx.4";
+chr20 hg19_knownGene CDS 2315762 2315919 0.000000 + 2 gene_id "TGM3"; transcript_id "NM_003245:uc002wfx.4";
+chr20 hg19_knownGene exon 2315762 2315919 0.000000 + . gene_id "TGM3"; transcript_id "NM_003245:uc002wfx.4";
+chr20 hg19_knownGene CDS 2320500 2320633 0.000000 + 0 gene_id "TGM3"; transcript_id "NM_003245:uc002wfx.4";
+chr20 hg19_knownGene exon 2320500 2320633 0.000000 + . gene_id "TGM3"; transcript_id "NM_003245:uc002wfx.4";
+chr20 hg19_knownGene CDS 2321080 2321224 0.000000 + 1 gene_id "TGM3"; transcript_id "NM_003245:uc002wfx.4";
+chr20 hg19_knownGene exon 2321080 2321725 0.000000 + . gene_id "TGM3"; transcript_id "NM_003245:uc002wfx.4";
+chr20 hg19_knownGene CDS 2361615 2361621 0.000000 + 0 gene_id "TGM6"; transcript_id "NM_198994:uc002wfy.1";
+chr20 hg19_knownGene exon 2361554 2361621 0.000000 + . gene_id "TGM6"; transcript_id "NM_198994:uc002wfy.1";
+chr20 hg19_knownGene CDS 2375098 2375271 0.000000 + 2 gene_id "TGM6"; transcript_id "NM_198994:uc002wfy.1";
+chr20 hg19_knownGene exon 2375098 2375271 0.000000 + . gene_id "TGM6"; transcript_id "NM_198994:uc002wfy.1";
+chr20 hg19_knownGene CDS 2375840 2376082 0.000000 + 2 gene_id "TGM6"; transcript_id "NM_198994:uc002wfy.1";
+chr20 hg19_knownGene exon 2375840 2376082 0.000000 + . gene_id "TGM6"; transcript_id "NM_198994:uc002wfy.1";
+chr20 hg19_knownGene CDS 2377152 2377270 0.000000 + 2 gene_id "TGM6"; transcript_id "NM_198994:uc002wfy.1";
+chr20 hg19_knownGene exon 2377152 2377270 0.000000 + . gene_id "TGM6"; transcript_id "NM_198994:uc002wfy.1";
+chr20 hg19_knownGene CDS 2378564 2378692 0.000000 + 0 gene_id "TGM6"; transcript_id "NM_198994:uc002wfy.1";
+chr20 hg19_knownGene exon 2378564 2378692 0.000000 + . gene_id "TGM6"; transcript_id "NM_198994:uc002wfy.1";
+chr20 hg19_knownGene CDS 2380207 2380384 0.000000 + 0 gene_id "TGM6"; transcript_id "NM_198994:uc002wfy.1";
+chr20 hg19_knownGene exon 2380207 2380384 0.000000 + . gene_id "TGM6"; transcript_id "NM_198994:uc002wfy.1";
+chr20 hg19_knownGene CDS 2380952 2381090 0.000000 + 2 gene_id "TGM6"; transcript_id "NM_198994:uc002wfy.1";
+chr20 hg19_knownGene exon 2380952 2381090 0.000000 + . gene_id "TGM6"; transcript_id "NM_198994:uc002wfy.1";
+chr20 hg19_knownGene CDS 2384043 2384146 0.000000 + 1 gene_id "TGM6"; transcript_id "NM_198994:uc002wfy.1";
+chr20 hg19_knownGene exon 2384043 2384146 0.000000 + . gene_id "TGM6"; transcript_id "NM_198994:uc002wfy.1";
+chr20 hg19_knownGene CDS 2384227 2384469 0.000000 + 2 gene_id "TGM6"; transcript_id "NM_198994:uc002wfy.1";
+chr20 hg19_knownGene exon 2384227 2384469 0.000000 + . gene_id "TGM6"; transcript_id "NM_198994:uc002wfy.1";
+chr20 hg19_knownGene CDS 2397878 2398219 0.000000 + 2 gene_id "TGM6"; transcript_id "NM_198994:uc002wfy.1";
+chr20 hg19_knownGene exon 2397878 2398219 0.000000 + . gene_id "TGM6"; transcript_id "NM_198994:uc002wfy.1";
+chr20 hg19_knownGene CDS 2411092 2411246 0.000000 + 2 gene_id "TGM6"; transcript_id "NM_198994:uc002wfy.1";
+chr20 hg19_knownGene exon 2411092 2411246 0.000000 + . gene_id "TGM6"; transcript_id "NM_198994:uc002wfy.1";
+chr20 hg19_knownGene CDS 2411540 2411673 0.000000 + 0 gene_id "TGM6"; transcript_id "NM_198994:uc002wfy.1";
+chr20 hg19_knownGene exon 2411540 2411673 0.000000 + . gene_id "TGM6"; transcript_id "NM_198994:uc002wfy.1";
+chr20 hg19_knownGene CDS 2413136 2413286 0.000000 + 1 gene_id "TGM6"; transcript_id "NM_198994:uc002wfy.1";
+chr20 hg19_knownGene exon 2413136 2413399 0.000000 + . gene_id "TGM6"; transcript_id "NM_198994:uc002wfy.1";
+chr20 hg19_knownGene CDS 2361615 2361621 0.000000 + 0 gene_id "TGM6"; transcript_id "NM_001254734:uc010gal.1";
+chr20 hg19_knownGene exon 2361554 2361621 0.000000 + . gene_id "TGM6"; transcript_id "NM_001254734:uc010gal.1";
+chr20 hg19_knownGene CDS 2375098 2375271 0.000000 + 2 gene_id "TGM6"; transcript_id "NM_001254734:uc010gal.1";
+chr20 hg19_knownGene exon 2375098 2375271 0.000000 + . gene_id "TGM6"; transcript_id "NM_001254734:uc010gal.1";
+chr20 hg19_knownGene CDS 2375840 2376082 0.000000 + 2 gene_id "TGM6"; transcript_id "NM_001254734:uc010gal.1";
+chr20 hg19_knownGene exon 2375840 2376082 0.000000 + . gene_id "TGM6"; transcript_id "NM_001254734:uc010gal.1";
+chr20 hg19_knownGene CDS 2377152 2377270 0.000000 + 2 gene_id "TGM6"; transcript_id "NM_001254734:uc010gal.1";
+chr20 hg19_knownGene exon 2377152 2377270 0.000000 + . gene_id "TGM6"; transcript_id "NM_001254734:uc010gal.1";
+chr20 hg19_knownGene CDS 2378564 2378692 0.000000 + 0 gene_id "TGM6"; transcript_id "NM_001254734:uc010gal.1";
+chr20 hg19_knownGene exon 2378564 2378692 0.000000 + . gene_id "TGM6"; transcript_id "NM_001254734:uc010gal.1";
+chr20 hg19_knownGene CDS 2380207 2380384 0.000000 + 0 gene_id "TGM6"; transcript_id "NM_001254734:uc010gal.1";
+chr20 hg19_knownGene exon 2380207 2380384 0.000000 + . gene_id "TGM6"; transcript_id "NM_001254734:uc010gal.1";
+chr20 hg19_knownGene CDS 2380952 2381090 0.000000 + 2 gene_id "TGM6"; transcript_id "NM_001254734:uc010gal.1";
+chr20 hg19_knownGene exon 2380952 2381090 0.000000 + . gene_id "TGM6"; transcript_id "NM_001254734:uc010gal.1";
+chr20 hg19_knownGene CDS 2384043 2384146 0.000000 + 1 gene_id "TGM6"; transcript_id "NM_001254734:uc010gal.1";
+chr20 hg19_knownGene exon 2384043 2384146 0.000000 + . gene_id "TGM6"; transcript_id "NM_001254734:uc010gal.1";
+chr20 hg19_knownGene CDS 2384227 2384469 0.000000 + 2 gene_id "TGM6"; transcript_id "NM_001254734:uc010gal.1";
+chr20 hg19_knownGene exon 2384227 2384469 0.000000 + . gene_id "TGM6"; transcript_id "NM_001254734:uc010gal.1";
+chr20 hg19_knownGene CDS 2397878 2398219 0.000000 + 2 gene_id "TGM6"; transcript_id "NM_001254734:uc010gal.1";
+chr20 hg19_knownGene exon 2397878 2398219 0.000000 + . gene_id "TGM6"; transcript_id "NM_001254734:uc010gal.1";
+chr20 hg19_knownGene CDS 2411092 2411246 0.000000 + 2 gene_id "TGM6"; transcript_id "NM_001254734:uc010gal.1";
+chr20 hg19_knownGene exon 2411092 2411246 0.000000 + . gene_id "TGM6"; transcript_id "NM_001254734:uc010gal.1";
+chr20 hg19_knownGene CDS 2413136 2413177 0.000000 + 0 gene_id "TGM6"; transcript_id "NM_001254734:uc010gal.1";
+chr20 hg19_knownGene exon 2413136 2413399 0.000000 + . gene_id "TGM6"; transcript_id "NM_001254734:uc010gal.1";
+chr20 hg19_knownGene exon 2443598 2443693 0.000000 - . gene_id "SNORD119"; transcript_id "NR_003684:uc010gam.1";
+chr20 hg19_knownGene CDS 2442578 2442585 0.000000 - 2 gene_id "SNRPB"; transcript_id "NM_003091:uc002wga.1";
+chr20 hg19_knownGene exon 2442281 2442585 0.000000 - . gene_id "SNRPB"; transcript_id "NM_003091:uc002wga.1";
+chr20 hg19_knownGene CDS 2443282 2443407 0.000000 - 2 gene_id "SNRPB"; transcript_id "NM_003091:uc002wga.1";
+chr20 hg19_knownGene exon 2443282 2443407 0.000000 - . gene_id "SNRPB"; transcript_id "NM_003091:uc002wga.1";
+chr20 hg19_knownGene CDS 2443735 2443873 0.000000 - 0 gene_id "SNRPB"; transcript_id "NM_003091:uc002wga.1";
+chr20 hg19_knownGene exon 2443735 2443873 0.000000 - . gene_id "SNRPB"; transcript_id "NM_003091:uc002wga.1";
+chr20 hg19_knownGene CDS 2444393 2444545 0.000000 - 0 gene_id "SNRPB"; transcript_id "NM_003091:uc002wga.1";
+chr20 hg19_knownGene exon 2444393 2444545 0.000000 - . gene_id "SNRPB"; transcript_id "NM_003091:uc002wga.1";
+chr20 hg19_knownGene CDS 2446354 2446465 0.000000 - 1 gene_id "SNRPB"; transcript_id "NM_003091:uc002wga.1";
+chr20 hg19_knownGene exon 2446354 2446465 0.000000 - . gene_id "SNRPB"; transcript_id "NM_003091:uc002wga.1";
+chr20 hg19_knownGene CDS 2448253 2448404 0.000000 - 0 gene_id "SNRPB"; transcript_id "NM_003091:uc002wga.1";
+chr20 hg19_knownGene exon 2448253 2448404 0.000000 - . gene_id "SNRPB"; transcript_id "NM_003091:uc002wga.1";
+chr20 hg19_knownGene CDS 2451334 2451336 0.000000 - 0 gene_id "SNRPB"; transcript_id "NM_003091:uc002wga.1";
+chr20 hg19_knownGene exon 2451334 2451499 0.000000 - . gene_id "SNRPB"; transcript_id "NM_003091:uc002wga.1";
+chr20 hg19_knownGene CDS 2442405 2442439 0.000000 - 2 gene_id "SNRPB"; transcript_id "NM_198216:uc002wfz.1";
+chr20 hg19_knownGene exon 2442281 2442439 0.000000 - . gene_id "SNRPB"; transcript_id "NM_198216:uc002wfz.1";
+chr20 hg19_knownGene CDS 2443282 2443407 0.000000 - 2 gene_id "SNRPB"; transcript_id "NM_198216:uc002wfz.1";
+chr20 hg19_knownGene exon 2443282 2443407 0.000000 - . gene_id "SNRPB"; transcript_id "NM_198216:uc002wfz.1";
+chr20 hg19_knownGene CDS 2443735 2443873 0.000000 - 0 gene_id "SNRPB"; transcript_id "NM_198216:uc002wfz.1";
+chr20 hg19_knownGene exon 2443735 2443873 0.000000 - . gene_id "SNRPB"; transcript_id "NM_198216:uc002wfz.1";
+chr20 hg19_knownGene CDS 2444393 2444545 0.000000 - 0 gene_id "SNRPB"; transcript_id "NM_198216:uc002wfz.1";
+chr20 hg19_knownGene exon 2444393 2444545 0.000000 - . gene_id "SNRPB"; transcript_id "NM_198216:uc002wfz.1";
+chr20 hg19_knownGene CDS 2446354 2446465 0.000000 - 1 gene_id "SNRPB"; transcript_id "NM_198216:uc002wfz.1";
+chr20 hg19_knownGene exon 2446354 2446465 0.000000 - . gene_id "SNRPB"; transcript_id "NM_198216:uc002wfz.1";
+chr20 hg19_knownGene CDS 2448253 2448404 0.000000 - 0 gene_id "SNRPB"; transcript_id "NM_198216:uc002wfz.1";
+chr20 hg19_knownGene exon 2448253 2448404 0.000000 - . gene_id "SNRPB"; transcript_id "NM_198216:uc002wfz.1";
+chr20 hg19_knownGene CDS 2451334 2451336 0.000000 - 0 gene_id "SNRPB"; transcript_id "NM_198216:uc002wfz.1";
+chr20 hg19_knownGene exon 2451334 2451499 0.000000 - . gene_id "SNRPB"; transcript_id "NM_198216:uc002wfz.1";
+chr20 hg19_knownGene CDS 2443265 2443407 0.000000 - 2 gene_id "SNRPB"; transcript_id "AK301034:uc010zpv.2";
+chr20 hg19_knownGene exon 2442288 2443407 0.000000 - . gene_id "SNRPB"; transcript_id "AK301034:uc010zpv.2";
+chr20 hg19_knownGene CDS 2443735 2443873 0.000000 - 0 gene_id "SNRPB"; transcript_id "AK301034:uc010zpv.2";
+chr20 hg19_knownGene exon 2443735 2443873 0.000000 - . gene_id "SNRPB"; transcript_id "AK301034:uc010zpv.2";
+chr20 hg19_knownGene CDS 2444393 2444545 0.000000 - 0 gene_id "SNRPB"; transcript_id "AK301034:uc010zpv.2";
+chr20 hg19_knownGene exon 2444393 2444545 0.000000 - . gene_id "SNRPB"; transcript_id "AK301034:uc010zpv.2";
+chr20 hg19_knownGene CDS 2446354 2446383 0.000000 - 0 gene_id "SNRPB"; transcript_id "AK301034:uc010zpv.2";
+chr20 hg19_knownGene exon 2446354 2446465 0.000000 - . gene_id "SNRPB"; transcript_id "AK301034:uc010zpv.2";
+chr20 hg19_knownGene exon 2447838 2447961 0.000000 - . gene_id "SNRPB"; transcript_id "AK301034:uc010zpv.2";
+chr20 hg19_knownGene exon 2448253 2448404 0.000000 - . gene_id "SNRPB"; transcript_id "AK301034:uc010zpv.2";
+chr20 hg19_knownGene exon 2451334 2451499 0.000000 - . gene_id "SNRPB"; transcript_id "AK301034:uc010zpv.2";
+chr20 hg19_knownGene CDS 2443265 2443407 0.000000 - 2 gene_id "SNRPB"; transcript_id "AK301206:uc002wgb.3";
+chr20 hg19_knownGene exon 2442288 2443407 0.000000 - . gene_id "SNRPB"; transcript_id "AK301206:uc002wgb.3";
+chr20 hg19_knownGene CDS 2443735 2443873 0.000000 - 0 gene_id "SNRPB"; transcript_id "AK301206:uc002wgb.3";
+chr20 hg19_knownGene exon 2443735 2443873 0.000000 - . gene_id "SNRPB"; transcript_id "AK301206:uc002wgb.3";
+chr20 hg19_knownGene CDS 2444393 2444545 0.000000 - 0 gene_id "SNRPB"; transcript_id "AK301206:uc002wgb.3";
+chr20 hg19_knownGene exon 2444393 2444545 0.000000 - . gene_id "SNRPB"; transcript_id "AK301206:uc002wgb.3";
+chr20 hg19_knownGene CDS 2446354 2446465 0.000000 - 1 gene_id "SNRPB"; transcript_id "AK301206:uc002wgb.3";
+chr20 hg19_knownGene exon 2446354 2446465 0.000000 - . gene_id "SNRPB"; transcript_id "AK301206:uc002wgb.3";
+chr20 hg19_knownGene CDS 2448253 2448404 0.000000 - 0 gene_id "SNRPB"; transcript_id "AK301206:uc002wgb.3";
+chr20 hg19_knownGene exon 2448253 2448404 0.000000 - . gene_id "SNRPB"; transcript_id "AK301206:uc002wgb.3";
+chr20 hg19_knownGene CDS 2451334 2451336 0.000000 - 0 gene_id "SNRPB"; transcript_id "AK301206:uc002wgb.3";
+chr20 hg19_knownGene exon 2451334 2451499 0.000000 - . gene_id "SNRPB"; transcript_id "AK301206:uc002wgb.3";
+chr20 hg19_knownGene CDS 2447907 2447961 0.000000 - 1 gene_id "SNRPB"; transcript_id "AK307093:uc010gan.3";
+chr20 hg19_knownGene exon 2446882 2447961 0.000000 - . gene_id "SNRPB"; transcript_id "AK307093:uc010gan.3";
+chr20 hg19_knownGene CDS 2448253 2448404 0.000000 - 0 gene_id "SNRPB"; transcript_id "AK307093:uc010gan.3";
+chr20 hg19_knownGene exon 2448253 2448404 0.000000 - . gene_id "SNRPB"; transcript_id "AK307093:uc010gan.3";
+chr20 hg19_knownGene CDS 2451334 2451336 0.000000 - 0 gene_id "SNRPB"; transcript_id "AK307093:uc010gan.3";
+chr20 hg19_knownGene exon 2451334 2451499 0.000000 - . gene_id "SNRPB"; transcript_id "AK307093:uc010gan.3";
+chr20 hg19_knownGene exon 2454889 2455853 0.000000 - . gene_id "AK126717"; transcript_id "AK126717:uc002wgc.1";
+chr20 hg19_knownGene CDS 2463810 2465302 0.000000 - 2 gene_id "ZNF343"; transcript_id "AK055734:uc002wgd.1";
+chr20 hg19_knownGene exon 2462467 2465302 0.000000 - . gene_id "ZNF343"; transcript_id "AK055734:uc002wgd.1";
+chr20 hg19_knownGene CDS 2473345 2473378 0.000000 - 0 gene_id "ZNF343"; transcript_id "AK055734:uc002wgd.1";
+chr20 hg19_knownGene exon 2473345 2473565 0.000000 - . gene_id "ZNF343"; transcript_id "AK055734:uc002wgd.1";
+chr20 hg19_knownGene CDS 2463810 2465302 0.000000 - 2 gene_id "ZNF343"; transcript_id "NM_024325:uc002wge.1";
+chr20 hg19_knownGene exon 2462467 2465302 0.000000 - . gene_id "ZNF343"; transcript_id "NM_024325:uc002wge.1";
+chr20 hg19_knownGene CDS 2473345 2473471 0.000000 - 0 gene_id "ZNF343"; transcript_id "NM_024325:uc002wge.1";
+chr20 hg19_knownGene exon 2473345 2473471 0.000000 - . gene_id "ZNF343"; transcript_id "NM_024325:uc002wge.1";
+chr20 hg19_knownGene CDS 2474165 2474223 0.000000 - 2 gene_id "ZNF343"; transcript_id "NM_024325:uc002wge.1";
+chr20 hg19_knownGene exon 2474165 2474223 0.000000 - . gene_id "ZNF343"; transcript_id "NM_024325:uc002wge.1";
+chr20 hg19_knownGene CDS 2474424 2474541 0.000000 - 0 gene_id "ZNF343"; transcript_id "NM_024325:uc002wge.1";
+chr20 hg19_knownGene exon 2474424 2474690 0.000000 - . gene_id "ZNF343"; transcript_id "NM_024325:uc002wge.1";
+chr20 hg19_knownGene exon 2481302 2481388 0.000000 - . gene_id "ZNF343"; transcript_id "NM_024325:uc002wge.1";
+chr20 hg19_knownGene exon 2489527 2489778 0.000000 - . gene_id "ZNF343"; transcript_id "NM_024325:uc002wge.1";
+chr20 hg19_knownGene CDS 2463810 2465302 0.000000 - 2 gene_id "ZNF343"; transcript_id "BC065009:uc010gao.1";
+chr20 hg19_knownGene exon 2462467 2465302 0.000000 - . gene_id "ZNF343"; transcript_id "BC065009:uc010gao.1";
+chr20 hg19_knownGene CDS 2473345 2473471 0.000000 - 0 gene_id "ZNF343"; transcript_id "BC065009:uc010gao.1";
+chr20 hg19_knownGene exon 2473345 2473471 0.000000 - . gene_id "ZNF343"; transcript_id "BC065009:uc010gao.1";
+chr20 hg19_knownGene CDS 2474165 2474223 0.000000 - 2 gene_id "ZNF343"; transcript_id "BC065009:uc010gao.1";
+chr20 hg19_knownGene exon 2474165 2474223 0.000000 - . gene_id "ZNF343"; transcript_id "BC065009:uc010gao.1";
+chr20 hg19_knownGene CDS 2474424 2474541 0.000000 - 0 gene_id "ZNF343"; transcript_id "BC065009:uc010gao.1";
+chr20 hg19_knownGene exon 2474424 2474690 0.000000 - . gene_id "ZNF343"; transcript_id "BC065009:uc010gao.1";
+chr20 hg19_knownGene exon 2476061 2476170 0.000000 - . gene_id "ZNF343"; transcript_id "BC065009:uc010gao.1";
+chr20 hg19_knownGene exon 2481302 2481388 0.000000 - . gene_id "ZNF343"; transcript_id "BC065009:uc010gao.1";
+chr20 hg19_knownGene exon 2505101 2505165 0.000000 - . gene_id "ZNF343"; transcript_id "BC065009:uc010gao.1";
+chr20 hg19_knownGene exon 2539102 2539420 0.000000 + . gene_id "TMC2"; transcript_id "AK316261:uc010zpw.1";
+chr20 hg19_knownGene CDS 2542610 2542656 0.000000 + 0 gene_id "TMC2"; transcript_id "AK316261:uc010zpw.1";
+chr20 hg19_knownGene exon 2542504 2542656 0.000000 + . gene_id "TMC2"; transcript_id "AK316261:uc010zpw.1";
+chr20 hg19_knownGene CDS 2552822 2552915 0.000000 + 1 gene_id "TMC2"; transcript_id "AK316261:uc010zpw.1";
+chr20 hg19_knownGene exon 2552822 2552915 0.000000 + . gene_id "TMC2"; transcript_id "AK316261:uc010zpw.1";
+chr20 hg19_knownGene CDS 2559792 2559873 0.000000 + 0 gene_id "TMC2"; transcript_id "AK316261:uc010zpw.1";
+chr20 hg19_knownGene exon 2559792 2559873 0.000000 + . gene_id "TMC2"; transcript_id "AK316261:uc010zpw.1";
+chr20 hg19_knownGene CDS 2560596 2560702 0.000000 + 2 gene_id "TMC2"; transcript_id "AK316261:uc010zpw.1";
+chr20 hg19_knownGene exon 2560596 2560702 0.000000 + . gene_id "TMC2"; transcript_id "AK316261:uc010zpw.1";
+chr20 hg19_knownGene CDS 2572956 2573054 0.000000 + 0 gene_id "TMC2"; transcript_id "AK316261:uc010zpw.1";
+chr20 hg19_knownGene exon 2572956 2573054 0.000000 + . gene_id "TMC2"; transcript_id "AK316261:uc010zpw.1";
+chr20 hg19_knownGene CDS 2575471 2575613 0.000000 + 0 gene_id "TMC2"; transcript_id "AK316261:uc010zpw.1";
+chr20 hg19_knownGene exon 2575471 2575613 0.000000 + . gene_id "TMC2"; transcript_id "AK316261:uc010zpw.1";
+chr20 hg19_knownGene CDS 2577797 2577944 0.000000 + 1 gene_id "TMC2"; transcript_id "AK316261:uc010zpw.1";
+chr20 hg19_knownGene exon 2577797 2577944 0.000000 + . gene_id "TMC2"; transcript_id "AK316261:uc010zpw.1";
+chr20 hg19_knownGene CDS 2582759 2582947 0.000000 + 0 gene_id "TMC2"; transcript_id "AK316261:uc010zpw.1";
+chr20 hg19_knownGene exon 2582759 2582947 0.000000 + . gene_id "TMC2"; transcript_id "AK316261:uc010zpw.1";
+chr20 hg19_knownGene CDS 2591065 2591244 0.000000 + 0 gene_id "TMC2"; transcript_id "AK316261:uc010zpw.1";
+chr20 hg19_knownGene exon 2591065 2591244 0.000000 + . gene_id "TMC2"; transcript_id "AK316261:uc010zpw.1";
+chr20 hg19_knownGene CDS 2592837 2592986 0.000000 + 0 gene_id "TMC2"; transcript_id "AK316261:uc010zpw.1";
+chr20 hg19_knownGene exon 2592837 2592986 0.000000 + . gene_id "TMC2"; transcript_id "AK316261:uc010zpw.1";
+chr20 hg19_knownGene CDS 2593840 2594091 0.000000 + 0 gene_id "TMC2"; transcript_id "AK316261:uc010zpw.1";
+chr20 hg19_knownGene exon 2593840 2594666 0.000000 + . gene_id "TMC2"; transcript_id "AK316261:uc010zpw.1";
+chr20 hg19_knownGene exon 2539102 2539420 0.000000 + . gene_id "TMC2"; transcript_id "AK294013:uc010zpx.1";
+chr20 hg19_knownGene CDS 2542610 2542656 0.000000 + 0 gene_id "TMC2"; transcript_id "AK294013:uc010zpx.1";
+chr20 hg19_knownGene exon 2542504 2542656 0.000000 + . gene_id "TMC2"; transcript_id "AK294013:uc010zpx.1";
+chr20 hg19_knownGene CDS 2552825 2552915 0.000000 + 1 gene_id "TMC2"; transcript_id "AK294013:uc010zpx.1";
+chr20 hg19_knownGene exon 2552825 2552915 0.000000 + . gene_id "TMC2"; transcript_id "AK294013:uc010zpx.1";
+chr20 hg19_knownGene CDS 2559792 2559873 0.000000 + 0 gene_id "TMC2"; transcript_id "AK294013:uc010zpx.1";
+chr20 hg19_knownGene exon 2559792 2559873 0.000000 + . gene_id "TMC2"; transcript_id "AK294013:uc010zpx.1";
+chr20 hg19_knownGene CDS 2560596 2560702 0.000000 + 2 gene_id "TMC2"; transcript_id "AK294013:uc010zpx.1";
+chr20 hg19_knownGene exon 2560596 2560702 0.000000 + . gene_id "TMC2"; transcript_id "AK294013:uc010zpx.1";
+chr20 hg19_knownGene CDS 2572956 2573054 0.000000 + 0 gene_id "TMC2"; transcript_id "AK294013:uc010zpx.1";
+chr20 hg19_knownGene exon 2572956 2573054 0.000000 + . gene_id "TMC2"; transcript_id "AK294013:uc010zpx.1";
+chr20 hg19_knownGene CDS 2575471 2575613 0.000000 + 0 gene_id "TMC2"; transcript_id "AK294013:uc010zpx.1";
+chr20 hg19_knownGene exon 2575471 2575613 0.000000 + . gene_id "TMC2"; transcript_id "AK294013:uc010zpx.1";
+chr20 hg19_knownGene CDS 2577797 2577944 0.000000 + 1 gene_id "TMC2"; transcript_id "AK294013:uc010zpx.1";
+chr20 hg19_knownGene exon 2577797 2577944 0.000000 + . gene_id "TMC2"; transcript_id "AK294013:uc010zpx.1";
+chr20 hg19_knownGene CDS 2582759 2582947 0.000000 + 0 gene_id "TMC2"; transcript_id "AK294013:uc010zpx.1";
+chr20 hg19_knownGene exon 2582759 2582947 0.000000 + . gene_id "TMC2"; transcript_id "AK294013:uc010zpx.1";
+chr20 hg19_knownGene CDS 2591065 2591244 0.000000 + 0 gene_id "TMC2"; transcript_id "AK294013:uc010zpx.1";
+chr20 hg19_knownGene exon 2591065 2591244 0.000000 + . gene_id "TMC2"; transcript_id "AK294013:uc010zpx.1";
+chr20 hg19_knownGene CDS 2592837 2592986 0.000000 + 0 gene_id "TMC2"; transcript_id "AK294013:uc010zpx.1";
+chr20 hg19_knownGene exon 2592837 2592986 0.000000 + . gene_id "TMC2"; transcript_id "AK294013:uc010zpx.1";
+chr20 hg19_knownGene CDS 2593840 2594091 0.000000 + 0 gene_id "TMC2"; transcript_id "AK294013:uc010zpx.1";
+chr20 hg19_knownGene exon 2593840 2594666 0.000000 + . gene_id "TMC2"; transcript_id "AK294013:uc010zpx.1";
+chr20 hg19_knownGene CDS 2517268 2517301 0.000000 + 0 gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene exon 2517253 2517301 0.000000 + . gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene CDS 2517915 2517962 0.000000 + 2 gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene exon 2517915 2517962 0.000000 + . gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene CDS 2539102 2539420 0.000000 + 2 gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene exon 2539102 2539420 0.000000 + . gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene CDS 2542504 2542656 0.000000 + 1 gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene exon 2542504 2542656 0.000000 + . gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene CDS 2552825 2552915 0.000000 + 1 gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene exon 2552825 2552915 0.000000 + . gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene CDS 2559792 2559873 0.000000 + 0 gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene exon 2559792 2559873 0.000000 + . gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene CDS 2560596 2560702 0.000000 + 2 gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene exon 2560596 2560702 0.000000 + . gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene CDS 2572956 2573054 0.000000 + 0 gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene exon 2572956 2573054 0.000000 + . gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene CDS 2575471 2575613 0.000000 + 0 gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene exon 2575471 2575613 0.000000 + . gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene CDS 2577797 2577944 0.000000 + 1 gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene exon 2577797 2577944 0.000000 + . gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene CDS 2582759 2582947 0.000000 + 0 gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene exon 2582759 2582947 0.000000 + . gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene CDS 2591065 2591244 0.000000 + 0 gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene exon 2591065 2591244 0.000000 + . gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene CDS 2592837 2592986 0.000000 + 0 gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene exon 2592837 2592986 0.000000 + . gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene CDS 2593840 2593968 0.000000 + 0 gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene exon 2593840 2593968 0.000000 + . gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene CDS 2596783 2596850 0.000000 + 0 gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene exon 2596783 2596850 0.000000 + . gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene CDS 2597718 2597957 0.000000 + 1 gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene exon 2597718 2597957 0.000000 + . gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene CDS 2604917 2605042 0.000000 + 1 gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene exon 2604917 2605042 0.000000 + . gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene CDS 2616572 2616650 0.000000 + 1 gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene exon 2616572 2616650 0.000000 + . gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene CDS 2618120 2618237 0.000000 + 0 gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene exon 2618120 2618237 0.000000 + . gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene CDS 2621780 2621994 0.000000 + 2 gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene exon 2621780 2622430 0.000000 + . gene_id "TMC2"; transcript_id "NM_080751:uc002wgf.1";
+chr20 hg19_knownGene CDS 2517268 2517301 0.000000 + 0 gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene exon 2517253 2517301 0.000000 + . gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene CDS 2539102 2539420 0.000000 + 2 gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene exon 2539102 2539420 0.000000 + . gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene CDS 2542504 2542656 0.000000 + 1 gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene exon 2542504 2542656 0.000000 + . gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene CDS 2552825 2552915 0.000000 + 1 gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene exon 2552825 2552915 0.000000 + . gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene CDS 2559792 2559873 0.000000 + 0 gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene exon 2559792 2559873 0.000000 + . gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene CDS 2560596 2560702 0.000000 + 2 gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene exon 2560596 2560702 0.000000 + . gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene CDS 2572956 2573054 0.000000 + 0 gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene exon 2572956 2573054 0.000000 + . gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene CDS 2575471 2575613 0.000000 + 0 gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene exon 2575471 2575613 0.000000 + . gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene CDS 2577797 2577944 0.000000 + 1 gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene exon 2577797 2577944 0.000000 + . gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene CDS 2582759 2582947 0.000000 + 0 gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene exon 2582759 2582947 0.000000 + . gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene CDS 2591065 2591244 0.000000 + 0 gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene exon 2591065 2591244 0.000000 + . gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene CDS 2592837 2592986 0.000000 + 0 gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene exon 2592837 2592986 0.000000 + . gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene CDS 2593840 2593968 0.000000 + 0 gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene exon 2593840 2593968 0.000000 + . gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene CDS 2596783 2596850 0.000000 + 0 gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene exon 2596783 2596850 0.000000 + . gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene CDS 2597718 2597957 0.000000 + 1 gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene exon 2597718 2597957 0.000000 + . gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene CDS 2604917 2605042 0.000000 + 1 gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene exon 2604917 2605042 0.000000 + . gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene CDS 2616572 2616650 0.000000 + 1 gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene exon 2616572 2616650 0.000000 + . gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene CDS 2618120 2618237 0.000000 + 0 gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene exon 2618120 2618237 0.000000 + . gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene CDS 2621780 2621994 0.000000 + 2 gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene exon 2621780 2622430 0.000000 + . gene_id "TMC2"; transcript_id "AB463320:uc002wgg.1";
+chr20 hg19_knownGene exon 2633423 2633488 0.000000 + . gene_id "MIR1292"; transcript_id "NR_031699:uc021vzv.1";
+chr20 hg19_knownGene exon 2634858 2634932 0.000000 + . gene_id "SNORD110"; transcript_id "NR_003078:uc002wgj.3";
+chr20 hg19_knownGene exon 2635713 2635844 0.000000 + . gene_id "SNORA51"; transcript_id "NR_002981:uc002wgk.1";
+chr20 hg19_knownGene exon 2633178 2633309 0.000000 + . gene_id "NOP56"; transcript_id "NR_027700:uc010zpy.2";
+chr20 hg19_knownGene exon 2633488 2633577 0.000000 + . gene_id "NOP56"; transcript_id "NR_027700:uc010zpy.2";
+chr20 hg19_knownGene exon 2633925 2634039 0.000000 + . gene_id "NOP56"; transcript_id "NR_027700:uc010zpy.2";
+chr20 hg19_knownGene exon 2635060 2635221 0.000000 + . gene_id "NOP56"; transcript_id "NR_027700:uc010zpy.2";
+chr20 hg19_knownGene exon 2635395 2635593 0.000000 + . gene_id "NOP56"; transcript_id "NR_027700:uc010zpy.2";
+chr20 hg19_knownGene exon 2635971 2636158 0.000000 + . gene_id "NOP56"; transcript_id "NR_027700:uc010zpy.2";
+chr20 hg19_knownGene exon 2636241 2636392 0.000000 + . gene_id "NOP56"; transcript_id "NR_027700:uc010zpy.2";
+chr20 hg19_knownGene exon 2636580 2636860 0.000000 + . gene_id "NOP56"; transcript_id "NR_027700:uc010zpy.2";
+chr20 hg19_knownGene exon 2637047 2637195 0.000000 + . gene_id "NOP56"; transcript_id "NR_027700:uc010zpy.2";
+chr20 hg19_knownGene exon 2637420 2637541 0.000000 + . gene_id "NOP56"; transcript_id "NR_027700:uc010zpy.2";
+chr20 hg19_knownGene exon 2637727 2637864 0.000000 + . gene_id "NOP56"; transcript_id "NR_027700:uc010zpy.2";
+chr20 hg19_knownGene exon 2638575 2639039 0.000000 + . gene_id "NOP56"; transcript_id "NR_027700:uc010zpy.2";
+chr20 hg19_knownGene CDS 2633307 2633309 0.000000 + 0 gene_id "NOP56"; transcript_id "NM_006392:uc002wgh.3";
+chr20 hg19_knownGene exon 2633178 2633309 0.000000 + . gene_id "NOP56"; transcript_id "NM_006392:uc002wgh.3";
+chr20 hg19_knownGene CDS 2633488 2633577 0.000000 + 0 gene_id "NOP56"; transcript_id "NM_006392:uc002wgh.3";
+chr20 hg19_knownGene exon 2633488 2633577 0.000000 + . gene_id "NOP56"; transcript_id "NM_006392:uc002wgh.3";
+chr20 hg19_knownGene CDS 2633925 2634039 0.000000 + 0 gene_id "NOP56"; transcript_id "NM_006392:uc002wgh.3";
+chr20 hg19_knownGene exon 2633925 2634039 0.000000 + . gene_id "NOP56"; transcript_id "NM_006392:uc002wgh.3";
+chr20 hg19_knownGene CDS 2635060 2635221 0.000000 + 2 gene_id "NOP56"; transcript_id "NM_006392:uc002wgh.3";
+chr20 hg19_knownGene exon 2635060 2635221 0.000000 + . gene_id "NOP56"; transcript_id "NM_006392:uc002wgh.3";
+chr20 hg19_knownGene CDS 2635395 2635593 0.000000 + 2 gene_id "NOP56"; transcript_id "NM_006392:uc002wgh.3";
+chr20 hg19_knownGene exon 2635395 2635593 0.000000 + . gene_id "NOP56"; transcript_id "NM_006392:uc002wgh.3";
+chr20 hg19_knownGene CDS 2635971 2636158 0.000000 + 1 gene_id "NOP56"; transcript_id "NM_006392:uc002wgh.3";
+chr20 hg19_knownGene exon 2635971 2636158 0.000000 + . gene_id "NOP56"; transcript_id "NM_006392:uc002wgh.3";
+chr20 hg19_knownGene CDS 2636241 2636392 0.000000 + 2 gene_id "NOP56"; transcript_id "NM_006392:uc002wgh.3";
+chr20 hg19_knownGene exon 2636241 2636392 0.000000 + . gene_id "NOP56"; transcript_id "NM_006392:uc002wgh.3";
+chr20 hg19_knownGene CDS 2636580 2636680 0.000000 + 0 gene_id "NOP56"; transcript_id "NM_006392:uc002wgh.3";
+chr20 hg19_knownGene exon 2636580 2636680 0.000000 + . gene_id "NOP56"; transcript_id "NM_006392:uc002wgh.3";
+chr20 hg19_knownGene CDS 2637047 2637195 0.000000 + 1 gene_id "NOP56"; transcript_id "NM_006392:uc002wgh.3";
+chr20 hg19_knownGene exon 2637047 2637195 0.000000 + . gene_id "NOP56"; transcript_id "NM_006392:uc002wgh.3";
+chr20 hg19_knownGene CDS 2637420 2637541 0.000000 + 2 gene_id "NOP56"; transcript_id "NM_006392:uc002wgh.3";
+chr20 hg19_knownGene exon 2637420 2637541 0.000000 + . gene_id "NOP56"; transcript_id "NM_006392:uc002wgh.3";
+chr20 hg19_knownGene CDS 2637727 2637864 0.000000 + 0 gene_id "NOP56"; transcript_id "NM_006392:uc002wgh.3";
+chr20 hg19_knownGene exon 2637727 2637864 0.000000 + . gene_id "NOP56"; transcript_id "NM_006392:uc002wgh.3";
+chr20 hg19_knownGene CDS 2638575 2638937 0.000000 + 0 gene_id "NOP56"; transcript_id "NM_006392:uc002wgh.3";
+chr20 hg19_knownGene exon 2638575 2639039 0.000000 + . gene_id "NOP56"; transcript_id "NM_006392:uc002wgh.3";
+chr20 hg19_knownGene exon 2633674 2633819 0.000000 + . gene_id "NOP56"; transcript_id "BX647513:uc002wgi.3";
+chr20 hg19_knownGene exon 2633925 2634039 0.000000 + . gene_id "NOP56"; transcript_id "BX647513:uc002wgi.3";
+chr20 hg19_knownGene exon 2635060 2635221 0.000000 + . gene_id "NOP56"; transcript_id "BX647513:uc002wgi.3";
+chr20 hg19_knownGene CDS 2635523 2635593 0.000000 + 0 gene_id "NOP56"; transcript_id "BX647513:uc002wgi.3";
+chr20 hg19_knownGene exon 2635395 2635593 0.000000 + . gene_id "NOP56"; transcript_id "BX647513:uc002wgi.3";
+chr20 hg19_knownGene CDS 2635971 2636158 0.000000 + 1 gene_id "NOP56"; transcript_id "BX647513:uc002wgi.3";
+chr20 hg19_knownGene exon 2635971 2636158 0.000000 + . gene_id "NOP56"; transcript_id "BX647513:uc002wgi.3";
+chr20 hg19_knownGene CDS 2636241 2636392 0.000000 + 2 gene_id "NOP56"; transcript_id "BX647513:uc002wgi.3";
+chr20 hg19_knownGene exon 2636241 2636392 0.000000 + . gene_id "NOP56"; transcript_id "BX647513:uc002wgi.3";
+chr20 hg19_knownGene CDS 2636580 2636680 0.000000 + 0 gene_id "NOP56"; transcript_id "BX647513:uc002wgi.3";
+chr20 hg19_knownGene exon 2636580 2636680 0.000000 + . gene_id "NOP56"; transcript_id "BX647513:uc002wgi.3";
+chr20 hg19_knownGene CDS 2637047 2637195 0.000000 + 1 gene_id "NOP56"; transcript_id "BX647513:uc002wgi.3";
+chr20 hg19_knownGene exon 2637047 2637195 0.000000 + . gene_id "NOP56"; transcript_id "BX647513:uc002wgi.3";
+chr20 hg19_knownGene CDS 2637420 2637541 0.000000 + 2 gene_id "NOP56"; transcript_id "BX647513:uc002wgi.3";
+chr20 hg19_knownGene exon 2637420 2637541 0.000000 + . gene_id "NOP56"; transcript_id "BX647513:uc002wgi.3";
+chr20 hg19_knownGene CDS 2637727 2637864 0.000000 + 0 gene_id "NOP56"; transcript_id "BX647513:uc002wgi.3";
+chr20 hg19_knownGene exon 2637727 2637864 0.000000 + . gene_id "NOP56"; transcript_id "BX647513:uc002wgi.3";
+chr20 hg19_knownGene CDS 2638575 2638937 0.000000 + 0 gene_id "NOP56"; transcript_id "BX647513:uc002wgi.3";
+chr20 hg19_knownGene exon 2638575 2639039 0.000000 + . gene_id "NOP56"; transcript_id "BX647513:uc002wgi.3";
+chr20 hg19_knownGene CDS 2639400 2639483 0.000000 - 0 gene_id "IDH3B"; transcript_id "NM_006899:uc002wgp.3";
+chr20 hg19_knownGene exon 2639041 2639483 0.000000 - . gene_id "IDH3B"; transcript_id "NM_006899:uc002wgp.3";
+chr20 hg19_knownGene CDS 2640171 2640231 0.000000 - 1 gene_id "IDH3B"; transcript_id "NM_006899:uc002wgp.3";
+chr20 hg19_knownGene exon 2640171 2640231 0.000000 - . gene_id "IDH3B"; transcript_id "NM_006899:uc002wgp.3";
+chr20 hg19_knownGene CDS 2640345 2640439 0.000000 - 0 gene_id "IDH3B"; transcript_id "NM_006899:uc002wgp.3";
+chr20 hg19_knownGene exon 2640345 2640439 0.000000 - . gene_id "IDH3B"; transcript_id "NM_006899:uc002wgp.3";
+chr20 hg19_knownGene CDS 2640676 2640822 0.000000 - 0 gene_id "IDH3B"; transcript_id "NM_006899:uc002wgp.3";
+chr20 hg19_knownGene exon 2640676 2640822 0.000000 - . gene_id "IDH3B"; transcript_id "NM_006899:uc002wgp.3";
+chr20 hg19_knownGene CDS 2640909 2641011 0.000000 - 1 gene_id "IDH3B"; transcript_id "NM_006899:uc002wgp.3";
+chr20 hg19_knownGene exon 2640909 2641011 0.000000 - . gene_id "IDH3B"; transcript_id "NM_006899:uc002wgp.3";
+chr20 hg19_knownGene CDS 2641103 2641236 0.000000 - 0 gene_id "IDH3B"; transcript_id "NM_006899:uc002wgp.3";
+chr20 hg19_knownGene exon 2641103 2641236 0.000000 - . gene_id "IDH3B"; transcript_id "NM_006899:uc002wgp.3";
+chr20 hg19_knownGene CDS 2641343 2641475 0.000000 - 1 gene_id "IDH3B"; transcript_id "NM_006899:uc002wgp.3";
+chr20 hg19_knownGene exon 2641343 2641475 0.000000 - . gene_id "IDH3B"; transcript_id "NM_006899:uc002wgp.3";
+chr20 hg19_knownGene CDS 2641555 2641615 0.000000 - 2 gene_id "IDH3B"; transcript_id "NM_006899:uc002wgp.3";
+chr20 hg19_knownGene exon 2641555 2641615 0.000000 - . gene_id "IDH3B"; transcript_id "NM_006899:uc002wgp.3";
+chr20 hg19_knownGene CDS 2644092 2644212 0.000000 - 0 gene_id "IDH3B"; transcript_id "NM_006899:uc002wgp.3";
+chr20 hg19_knownGene exon 2644092 2644212 0.000000 - . gene_id "IDH3B"; transcript_id "NM_006899:uc002wgp.3";
+chr20 hg19_knownGene CDS 2644306 2644404 0.000000 - 0 gene_id "IDH3B"; transcript_id "NM_006899:uc002wgp.3";
+chr20 hg19_knownGene exon 2644306 2644404 0.000000 - . gene_id "IDH3B"; transcript_id "NM_006899:uc002wgp.3";
+chr20 hg19_knownGene CDS 2644571 2644651 0.000000 - 0 gene_id "IDH3B"; transcript_id "NM_006899:uc002wgp.3";
+chr20 hg19_knownGene exon 2644571 2644651 0.000000 - . gene_id "IDH3B"; transcript_id "NM_006899:uc002wgp.3";
+chr20 hg19_knownGene CDS 2644799 2644834 0.000000 - 0 gene_id "IDH3B"; transcript_id "NM_006899:uc002wgp.3";
+chr20 hg19_knownGene exon 2644799 2644843 0.000000 - . gene_id "IDH3B"; transcript_id "NM_006899:uc002wgp.3";
+chr20 hg19_knownGene CDS 2639091 2639168 0.000000 - 0 gene_id "IDH3B"; transcript_id "NM_174855:uc002wgq.3";
+chr20 hg19_knownGene exon 2639041 2639168 0.000000 - . gene_id "IDH3B"; transcript_id "NM_174855:uc002wgq.3";
+chr20 hg19_knownGene CDS 2640171 2640231 0.000000 - 1 gene_id "IDH3B"; transcript_id "NM_174855:uc002wgq.3";
+chr20 hg19_knownGene exon 2640171 2640231 0.000000 - . gene_id "IDH3B"; transcript_id "NM_174855:uc002wgq.3";
+chr20 hg19_knownGene CDS 2640345 2640439 0.000000 - 0 gene_id "IDH3B"; transcript_id "NM_174855:uc002wgq.3";
+chr20 hg19_knownGene exon 2640345 2640439 0.000000 - . gene_id "IDH3B"; transcript_id "NM_174855:uc002wgq.3";
+chr20 hg19_knownGene CDS 2640676 2640822 0.000000 - 0 gene_id "IDH3B"; transcript_id "NM_174855:uc002wgq.3";
+chr20 hg19_knownGene exon 2640676 2640822 0.000000 - . gene_id "IDH3B"; transcript_id "NM_174855:uc002wgq.3";
+chr20 hg19_knownGene CDS 2640909 2641011 0.000000 - 1 gene_id "IDH3B"; transcript_id "NM_174855:uc002wgq.3";
+chr20 hg19_knownGene exon 2640909 2641011 0.000000 - . gene_id "IDH3B"; transcript_id "NM_174855:uc002wgq.3";
+chr20 hg19_knownGene CDS 2641103 2641236 0.000000 - 0 gene_id "IDH3B"; transcript_id "NM_174855:uc002wgq.3";
+chr20 hg19_knownGene exon 2641103 2641236 0.000000 - . gene_id "IDH3B"; transcript_id "NM_174855:uc002wgq.3";
+chr20 hg19_knownGene CDS 2641343 2641475 0.000000 - 1 gene_id "IDH3B"; transcript_id "NM_174855:uc002wgq.3";
+chr20 hg19_knownGene exon 2641343 2641475 0.000000 - . gene_id "IDH3B"; transcript_id "NM_174855:uc002wgq.3";
+chr20 hg19_knownGene CDS 2641555 2641615 0.000000 - 2 gene_id "IDH3B"; transcript_id "NM_174855:uc002wgq.3";
+chr20 hg19_knownGene exon 2641555 2641615 0.000000 - . gene_id "IDH3B"; transcript_id "NM_174855:uc002wgq.3";
+chr20 hg19_knownGene CDS 2644092 2644212 0.000000 - 0 gene_id "IDH3B"; transcript_id "NM_174855:uc002wgq.3";
+chr20 hg19_knownGene exon 2644092 2644212 0.000000 - . gene_id "IDH3B"; transcript_id "NM_174855:uc002wgq.3";
+chr20 hg19_knownGene CDS 2644306 2644404 0.000000 - 0 gene_id "IDH3B"; transcript_id "NM_174855:uc002wgq.3";
+chr20 hg19_knownGene exon 2644306 2644404 0.000000 - . gene_id "IDH3B"; transcript_id "NM_174855:uc002wgq.3";
+chr20 hg19_knownGene CDS 2644571 2644651 0.000000 - 0 gene_id "IDH3B"; transcript_id "NM_174855:uc002wgq.3";
+chr20 hg19_knownGene exon 2644571 2644651 0.000000 - . gene_id "IDH3B"; transcript_id "NM_174855:uc002wgq.3";
+chr20 hg19_knownGene CDS 2644799 2644834 0.000000 - 0 gene_id "IDH3B"; transcript_id "NM_174855:uc002wgq.3";
+chr20 hg19_knownGene exon 2644799 2644843 0.000000 - . gene_id "IDH3B"; transcript_id "NM_174855:uc002wgq.3";
+chr20 hg19_knownGene CDS 2639400 2639483 0.000000 - 0 gene_id "IDH3B"; transcript_id "NM_174856:uc002wgr.3";
+chr20 hg19_knownGene exon 2639041 2639483 0.000000 - . gene_id "IDH3B"; transcript_id "NM_174856:uc002wgr.3";
+chr20 hg19_knownGene CDS 2640171 2640231 0.000000 - 1 gene_id "IDH3B"; transcript_id "NM_174856:uc002wgr.3";
+chr20 hg19_knownGene exon 2640171 2640231 0.000000 - . gene_id "IDH3B"; transcript_id "NM_174856:uc002wgr.3";
+chr20 hg19_knownGene CDS 2640345 2640439 0.000000 - 0 gene_id "IDH3B"; transcript_id "NM_174856:uc002wgr.3";
+chr20 hg19_knownGene exon 2640345 2640439 0.000000 - . gene_id "IDH3B"; transcript_id "NM_174856:uc002wgr.3";
+chr20 hg19_knownGene CDS 2640676 2640822 0.000000 - 0 gene_id "IDH3B"; transcript_id "NM_174856:uc002wgr.3";
+chr20 hg19_knownGene exon 2640676 2640822 0.000000 - . gene_id "IDH3B"; transcript_id "NM_174856:uc002wgr.3";
+chr20 hg19_knownGene CDS 2640909 2641011 0.000000 - 1 gene_id "IDH3B"; transcript_id "NM_174856:uc002wgr.3";
+chr20 hg19_knownGene exon 2640909 2641011 0.000000 - . gene_id "IDH3B"; transcript_id "NM_174856:uc002wgr.3";
+chr20 hg19_knownGene CDS 2641103 2641311 0.000000 - 0 gene_id "IDH3B"; transcript_id "NM_174856:uc002wgr.3";
+chr20 hg19_knownGene exon 2641103 2641475 0.000000 - . gene_id "IDH3B"; transcript_id "NM_174856:uc002wgr.3";
+chr20 hg19_knownGene exon 2641555 2641615 0.000000 - . gene_id "IDH3B"; transcript_id "NM_174856:uc002wgr.3";
+chr20 hg19_knownGene exon 2644092 2644212 0.000000 - . gene_id "IDH3B"; transcript_id "NM_174856:uc002wgr.3";
+chr20 hg19_knownGene exon 2644306 2644404 0.000000 - . gene_id "IDH3B"; transcript_id "NM_174856:uc002wgr.3";
+chr20 hg19_knownGene exon 2644571 2644651 0.000000 - . gene_id "IDH3B"; transcript_id "NM_174856:uc002wgr.3";
+chr20 hg19_knownGene exon 2644799 2644843 0.000000 - . gene_id "IDH3B"; transcript_id "NM_174856:uc002wgr.3";
+chr20 hg19_knownGene CDS 2641554 2641615 0.000000 - 2 gene_id "IDH3B"; transcript_id "AK300485:uc010zpz.1";
+chr20 hg19_knownGene exon 2641112 2641615 0.000000 - . gene_id "IDH3B"; transcript_id "AK300485:uc010zpz.1";
+chr20 hg19_knownGene CDS 2644092 2644212 0.000000 - 0 gene_id "IDH3B"; transcript_id "AK300485:uc010zpz.1";
+chr20 hg19_knownGene exon 2644092 2644212 0.000000 - . gene_id "IDH3B"; transcript_id "AK300485:uc010zpz.1";
+chr20 hg19_knownGene CDS 2644306 2644404 0.000000 - 0 gene_id "IDH3B"; transcript_id "AK300485:uc010zpz.1";
+chr20 hg19_knownGene exon 2644306 2644404 0.000000 - . gene_id "IDH3B"; transcript_id "AK300485:uc010zpz.1";
+chr20 hg19_knownGene CDS 2644571 2644651 0.000000 - 0 gene_id "IDH3B"; transcript_id "AK300485:uc010zpz.1";
+chr20 hg19_knownGene exon 2644571 2644651 0.000000 - . gene_id "IDH3B"; transcript_id "AK300485:uc010zpz.1";
+chr20 hg19_knownGene CDS 2644799 2644834 0.000000 - 0 gene_id "IDH3B"; transcript_id "AK300485:uc010zpz.1";
+chr20 hg19_knownGene exon 2644799 2644843 0.000000 - . gene_id "IDH3B"; transcript_id "AK300485:uc010zpz.1";
+chr20 hg19_knownGene CDS 2673792 2673794 0.000000 + 0 gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene exon 2673524 2673794 0.000000 + . gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene CDS 2674307 2674428 0.000000 + 0 gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene exon 2674307 2674428 0.000000 + . gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene CDS 2686223 2686379 0.000000 + 1 gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene exon 2686223 2686379 0.000000 + . gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene CDS 2686620 2686683 0.000000 + 0 gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene exon 2686620 2686683 0.000000 + . gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene CDS 2686855 2686910 0.000000 + 2 gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene exon 2686855 2686910 0.000000 + . gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene CDS 2688593 2688666 0.000000 + 0 gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene exon 2688593 2688666 0.000000 + . gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene CDS 2690220 2690288 0.000000 + 1 gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene exon 2690220 2690288 0.000000 + . gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene CDS 2729195 2729276 0.000000 + 1 gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene exon 2729195 2729276 0.000000 + . gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene CDS 2730047 2730164 0.000000 + 0 gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene exon 2730047 2730164 0.000000 + . gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene CDS 2730266 2730399 0.000000 + 2 gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene exon 2730266 2730399 0.000000 + . gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene CDS 2730493 2730619 0.000000 + 0 gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene exon 2730493 2730619 0.000000 + . gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene CDS 2732346 2732434 0.000000 + 2 gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene exon 2732346 2732434 0.000000 + . gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene CDS 2732568 2732633 0.000000 + 0 gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene exon 2732568 2732633 0.000000 + . gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene CDS 2732732 2732909 0.000000 + 0 gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene exon 2732732 2732909 0.000000 + . gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene CDS 2733003 2733191 0.000000 + 2 gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene exon 2733003 2733191 0.000000 + . gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene CDS 2736273 2736470 0.000000 + 2 gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene exon 2736273 2736470 0.000000 + . gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene CDS 2739555 2739622 0.000000 + 2 gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene exon 2739555 2739630 0.000000 + . gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene exon 2739914 2740754 0.000000 + . gene_id "EBF4"; transcript_id "NM_001110514:uc002wgt.4";
+chr20 hg19_knownGene exon 2673524 2673794 0.000000 + . gene_id "EBF4"; transcript_id "AB037863:uc002wgs.4";
+chr20 hg19_knownGene exon 2674307 2674428 0.000000 + . gene_id "EBF4"; transcript_id "AB037863:uc002wgs.4";
+chr20 hg19_knownGene exon 2686223 2686379 0.000000 + . gene_id "EBF4"; transcript_id "AB037863:uc002wgs.4";
+chr20 hg19_knownGene exon 2686620 2686683 0.000000 + . gene_id "EBF4"; transcript_id "AB037863:uc002wgs.4";
+chr20 hg19_knownGene exon 2686855 2686910 0.000000 + . gene_id "EBF4"; transcript_id "AB037863:uc002wgs.4";
+chr20 hg19_knownGene exon 2688593 2688666 0.000000 + . gene_id "EBF4"; transcript_id "AB037863:uc002wgs.4";
+chr20 hg19_knownGene exon 2690220 2690288 0.000000 + . gene_id "EBF4"; transcript_id "AB037863:uc002wgs.4";
+chr20 hg19_knownGene exon 2729195 2729276 0.000000 + . gene_id "EBF4"; transcript_id "AB037863:uc002wgs.4";
+chr20 hg19_knownGene exon 2730047 2730164 0.000000 + . gene_id "EBF4"; transcript_id "AB037863:uc002wgs.4";
+chr20 hg19_knownGene exon 2730266 2730399 0.000000 + . gene_id "EBF4"; transcript_id "AB037863:uc002wgs.4";
+chr20 hg19_knownGene exon 2730493 2730619 0.000000 + . gene_id "EBF4"; transcript_id "AB037863:uc002wgs.4";
+chr20 hg19_knownGene exon 2732346 2732434 0.000000 + . gene_id "EBF4"; transcript_id "AB037863:uc002wgs.4";
+chr20 hg19_knownGene exon 2732568 2732633 0.000000 + . gene_id "EBF4"; transcript_id "AB037863:uc002wgs.4";
+chr20 hg19_knownGene exon 2732732 2732909 0.000000 + . gene_id "EBF4"; transcript_id "AB037863:uc002wgs.4";
+chr20 hg19_knownGene exon 2733003 2733191 0.000000 + . gene_id "EBF4"; transcript_id "AB037863:uc002wgs.4";
+chr20 hg19_knownGene exon 2736389 2736470 0.000000 + . gene_id "EBF4"; transcript_id "AB037863:uc002wgs.4";
+chr20 hg19_knownGene exon 2739555 2739630 0.000000 + . gene_id "EBF4"; transcript_id "AB037863:uc002wgs.4";
+chr20 hg19_knownGene exon 2739914 2740754 0.000000 + . gene_id "EBF4"; transcript_id "AB037863:uc002wgs.4";
+chr20 hg19_knownGene CDS 2774839 2775077 0.000000 - 2 gene_id "CPXM1"; transcript_id "NM_001184699:uc010gas.3";
+chr20 hg19_knownGene exon 2774715 2775077 0.000000 - . gene_id "CPXM1"; transcript_id "NM_001184699:uc010gas.3";
+chr20 hg19_knownGene CDS 2775183 2775285 0.000000 - 0 gene_id "CPXM1"; transcript_id "NM_001184699:uc010gas.3";
+chr20 hg19_knownGene exon 2775183 2775285 0.000000 - . gene_id "CPXM1"; transcript_id "NM_001184699:uc010gas.3";
+chr20 hg19_knownGene CDS 2775923 2776062 0.000000 - 2 gene_id "CPXM1"; transcript_id "NM_001184699:uc010gas.3";
+chr20 hg19_knownGene exon 2775923 2776062 0.000000 - . gene_id "CPXM1"; transcript_id "NM_001184699:uc010gas.3";
+chr20 hg19_knownGene CDS 2776467 2776542 0.000000 - 0 gene_id "CPXM1"; transcript_id "NM_001184699:uc010gas.3";
+chr20 hg19_knownGene exon 2776467 2776542 0.000000 - . gene_id "CPXM1"; transcript_id "NM_001184699:uc010gas.3";
+chr20 hg19_knownGene CDS 2776628 2776807 0.000000 - 0 gene_id "CPXM1"; transcript_id "NM_001184699:uc010gas.3";
+chr20 hg19_knownGene exon 2776628 2776807 0.000000 - . gene_id "CPXM1"; transcript_id "NM_001184699:uc010gas.3";
+chr20 hg19_knownGene CDS 2776893 2777089 0.000000 - 2 gene_id "CPXM1"; transcript_id "NM_001184699:uc010gas.3";
+chr20 hg19_knownGene exon 2776893 2777089 0.000000 - . gene_id "CPXM1"; transcript_id "NM_001184699:uc010gas.3";
+chr20 hg19_knownGene CDS 2777173 2777296 0.000000 - 0 gene_id "CPXM1"; transcript_id "NM_001184699:uc010gas.3";
+chr20 hg19_knownGene exon 2777173 2777296 0.000000 - . gene_id "CPXM1"; transcript_id "NM_001184699:uc010gas.3";
+chr20 hg19_knownGene CDS 2777652 2777740 0.000000 - 2 gene_id "CPXM1"; transcript_id "NM_001184699:uc010gas.3";
+chr20 hg19_knownGene exon 2777652 2777740 0.000000 - . gene_id "CPXM1"; transcript_id "NM_001184699:uc010gas.3";
+chr20 hg19_knownGene CDS 2777838 2777988 0.000000 - 0 gene_id "CPXM1"; transcript_id "NM_001184699:uc010gas.3";
+chr20 hg19_knownGene exon 2777838 2777988 0.000000 - . gene_id "CPXM1"; transcript_id "NM_001184699:uc010gas.3";
+chr20 hg19_knownGene CDS 2778614 2778704 0.000000 - 1 gene_id "CPXM1"; transcript_id "NM_001184699:uc010gas.3";
+chr20 hg19_knownGene exon 2778614 2778704 0.000000 - . gene_id "CPXM1"; transcript_id "NM_001184699:uc010gas.3";
+chr20 hg19_knownGene CDS 2778798 2778937 0.000000 - 0 gene_id "CPXM1"; transcript_id "NM_001184699:uc010gas.3";
+chr20 hg19_knownGene exon 2778798 2778937 0.000000 - . gene_id "CPXM1"; transcript_id "NM_001184699:uc010gas.3";
+chr20 hg19_knownGene CDS 2779074 2779183 0.000000 - 2 gene_id "CPXM1"; transcript_id "NM_001184699:uc010gas.3";
+chr20 hg19_knownGene exon 2779074 2779183 0.000000 - . gene_id "CPXM1"; transcript_id "NM_001184699:uc010gas.3";
+chr20 hg19_knownGene CDS 2779372 2779539 0.000000 - 2 gene_id "CPXM1"; transcript_id "NM_001184699:uc010gas.3";
+chr20 hg19_knownGene exon 2779372 2779539 0.000000 - . gene_id "CPXM1"; transcript_id "NM_001184699:uc010gas.3";
+chr20 hg19_knownGene CDS 2781047 2781218 0.000000 - 0 gene_id "CPXM1"; transcript_id "NM_001184699:uc010gas.3";
+chr20 hg19_knownGene exon 2781047 2781292 0.000000 - . gene_id "CPXM1"; transcript_id "NM_001184699:uc010gas.3";
+chr20 hg19_knownGene CDS 2774839 2775077 0.000000 - 2 gene_id "CPXM1"; transcript_id "NM_019609:uc002wgu.3";
+chr20 hg19_knownGene exon 2774715 2775077 0.000000 - . gene_id "CPXM1"; transcript_id "NM_019609:uc002wgu.3";
+chr20 hg19_knownGene CDS 2775183 2775285 0.000000 - 0 gene_id "CPXM1"; transcript_id "NM_019609:uc002wgu.3";
+chr20 hg19_knownGene exon 2775183 2775285 0.000000 - . gene_id "CPXM1"; transcript_id "NM_019609:uc002wgu.3";
+chr20 hg19_knownGene CDS 2775923 2776062 0.000000 - 2 gene_id "CPXM1"; transcript_id "NM_019609:uc002wgu.3";
+chr20 hg19_knownGene exon 2775923 2776062 0.000000 - . gene_id "CPXM1"; transcript_id "NM_019609:uc002wgu.3";
+chr20 hg19_knownGene CDS 2776245 2776542 0.000000 - 0 gene_id "CPXM1"; transcript_id "NM_019609:uc002wgu.3";
+chr20 hg19_knownGene exon 2776245 2776542 0.000000 - . gene_id "CPXM1"; transcript_id "NM_019609:uc002wgu.3";
+chr20 hg19_knownGene CDS 2776628 2776807 0.000000 - 0 gene_id "CPXM1"; transcript_id "NM_019609:uc002wgu.3";
+chr20 hg19_knownGene exon 2776628 2776807 0.000000 - . gene_id "CPXM1"; transcript_id "NM_019609:uc002wgu.3";
+chr20 hg19_knownGene CDS 2776893 2777089 0.000000 - 2 gene_id "CPXM1"; transcript_id "NM_019609:uc002wgu.3";
+chr20 hg19_knownGene exon 2776893 2777089 0.000000 - . gene_id "CPXM1"; transcript_id "NM_019609:uc002wgu.3";
+chr20 hg19_knownGene CDS 2777173 2777296 0.000000 - 0 gene_id "CPXM1"; transcript_id "NM_019609:uc002wgu.3";
+chr20 hg19_knownGene exon 2777173 2777296 0.000000 - . gene_id "CPXM1"; transcript_id "NM_019609:uc002wgu.3";
+chr20 hg19_knownGene CDS 2777652 2777740 0.000000 - 2 gene_id "CPXM1"; transcript_id "NM_019609:uc002wgu.3";
+chr20 hg19_knownGene exon 2777652 2777740 0.000000 - . gene_id "CPXM1"; transcript_id "NM_019609:uc002wgu.3";
+chr20 hg19_knownGene CDS 2777838 2777988 0.000000 - 0 gene_id "CPXM1"; transcript_id "NM_019609:uc002wgu.3";
+chr20 hg19_knownGene exon 2777838 2777988 0.000000 - . gene_id "CPXM1"; transcript_id "NM_019609:uc002wgu.3";
+chr20 hg19_knownGene CDS 2778614 2778704 0.000000 - 1 gene_id "CPXM1"; transcript_id "NM_019609:uc002wgu.3";
+chr20 hg19_knownGene exon 2778614 2778704 0.000000 - . gene_id "CPXM1"; transcript_id "NM_019609:uc002wgu.3";
+chr20 hg19_knownGene CDS 2778798 2778937 0.000000 - 0 gene_id "CPXM1"; transcript_id "NM_019609:uc002wgu.3";
+chr20 hg19_knownGene exon 2778798 2778937 0.000000 - . gene_id "CPXM1"; transcript_id "NM_019609:uc002wgu.3";
+chr20 hg19_knownGene CDS 2779074 2779183 0.000000 - 2 gene_id "CPXM1"; transcript_id "NM_019609:uc002wgu.3";
+chr20 hg19_knownGene exon 2779074 2779183 0.000000 - . gene_id "CPXM1"; transcript_id "NM_019609:uc002wgu.3";
+chr20 hg19_knownGene CDS 2779372 2779539 0.000000 - 2 gene_id "CPXM1"; transcript_id "NM_019609:uc002wgu.3";
+chr20 hg19_knownGene exon 2779372 2779539 0.000000 - . gene_id "CPXM1"; transcript_id "NM_019609:uc002wgu.3";
+chr20 hg19_knownGene CDS 2781047 2781218 0.000000 - 0 gene_id "CPXM1"; transcript_id "NM_019609:uc002wgu.3";
+chr20 hg19_knownGene exon 2781047 2781292 0.000000 - . gene_id "CPXM1"; transcript_id "NM_019609:uc002wgu.3";
+chr20 hg19_knownGene exon 2795614 2795663 0.000000 + . gene_id "C20orf141"; transcript_id "AK312218:uc010gat.3";
+chr20 hg19_knownGene CDS 2795831 2796090 0.000000 + 0 gene_id "C20orf141"; transcript_id "AK312218:uc010gat.3";
+chr20 hg19_knownGene exon 2795798 2796090 0.000000 + . gene_id "C20orf141"; transcript_id "AK312218:uc010gat.3";
+chr20 hg19_knownGene CDS 2796184 2796418 0.000000 + 1 gene_id "C20orf141"; transcript_id "AK312218:uc010gat.3";
+chr20 hg19_knownGene exon 2796184 2796476 0.000000 + . gene_id "C20orf141"; transcript_id "AK312218:uc010gat.3";
+chr20 hg19_knownGene CDS 2795831 2796090 0.000000 + 0 gene_id "C20orf141"; transcript_id "NM_080739:uc002wgw.3";
+chr20 hg19_knownGene exon 2795657 2796090 0.000000 + . gene_id "C20orf141"; transcript_id "NM_080739:uc002wgw.3";
+chr20 hg19_knownGene CDS 2796184 2796418 0.000000 + 1 gene_id "C20orf141"; transcript_id "NM_080739:uc002wgw.3";
+chr20 hg19_knownGene exon 2796184 2796476 0.000000 + . gene_id "C20orf141"; transcript_id "NM_080739:uc002wgw.3";
+chr20 hg19_knownGene CDS 2797201 2797656 0.000000 + 0 gene_id "TMEM239"; transcript_id "CCDS54444:uc021vzw.1";
+chr20 hg19_knownGene exon 2797201 2797659 0.000000 + . gene_id "TMEM239"; transcript_id "CCDS54444:uc021vzw.1";
+chr20 hg19_knownGene exon 2795614 2795663 0.000000 + . gene_id "TMEM239"; transcript_id "AK129653:uc002wgv.2";
+chr20 hg19_knownGene CDS 2795831 2796090 0.000000 + 0 gene_id "TMEM239"; transcript_id "AK129653:uc002wgv.2";
+chr20 hg19_knownGene exon 2795798 2796090 0.000000 + . gene_id "TMEM239"; transcript_id "AK129653:uc002wgv.2";
+chr20 hg19_knownGene CDS 2797190 2797691 0.000000 + 1 gene_id "TMEM239"; transcript_id "AK129653:uc002wgv.2";
+chr20 hg19_knownGene exon 2797190 2797804 0.000000 + . gene_id "TMEM239"; transcript_id "AK129653:uc002wgv.2";
+chr20 hg19_knownGene exon 2796976 2797061 0.000000 + . gene_id "TMEM239"; transcript_id "NM_001167670:uc002wgx.2";
+chr20 hg19_knownGene CDS 2797201 2797656 0.000000 + 0 gene_id "TMEM239"; transcript_id "NM_001167670:uc002wgx.2";
+chr20 hg19_knownGene exon 2797190 2797804 0.000000 + . gene_id "TMEM239"; transcript_id "NM_001167670:uc002wgx.2";
+chr20 hg19_knownGene CDS 2816111 2816355 0.000000 - 2 gene_id "FAM113A"; transcript_id "NM_022760:uc002wgz.1";
+chr20 hg19_knownGene exon 2815971 2816355 0.000000 - . gene_id "FAM113A"; transcript_id "NM_022760:uc002wgz.1";
+chr20 hg19_knownGene CDS 2816685 2816960 0.000000 - 2 gene_id "FAM113A"; transcript_id "NM_022760:uc002wgz.1";
+chr20 hg19_knownGene exon 2816685 2816960 0.000000 - . gene_id "FAM113A"; transcript_id "NM_022760:uc002wgz.1";
+chr20 hg19_knownGene CDS 2818878 2819124 0.000000 - 0 gene_id "FAM113A"; transcript_id "NM_022760:uc002wgz.1";
+chr20 hg19_knownGene exon 2818878 2819124 0.000000 - . gene_id "FAM113A"; transcript_id "NM_022760:uc002wgz.1";
+chr20 hg19_knownGene CDS 2819242 2819392 0.000000 - 1 gene_id "FAM113A"; transcript_id "NM_022760:uc002wgz.1";
+chr20 hg19_knownGene exon 2819242 2819392 0.000000 - . gene_id "FAM113A"; transcript_id "NM_022760:uc002wgz.1";
+chr20 hg19_knownGene CDS 2819490 2819728 0.000000 - 0 gene_id "FAM113A"; transcript_id "NM_022760:uc002wgz.1";
+chr20 hg19_knownGene exon 2819490 2819728 0.000000 - . gene_id "FAM113A"; transcript_id "NM_022760:uc002wgz.1";
+chr20 hg19_knownGene CDS 2819838 2819917 0.000000 - 2 gene_id "FAM113A"; transcript_id "NM_022760:uc002wgz.1";
+chr20 hg19_knownGene exon 2819838 2819917 0.000000 - . gene_id "FAM113A"; transcript_id "NM_022760:uc002wgz.1";
+chr20 hg19_knownGene CDS 2820435 2820558 0.000000 - 0 gene_id "FAM113A"; transcript_id "NM_022760:uc002wgz.1";
+chr20 hg19_knownGene exon 2820435 2820579 0.000000 - . gene_id "FAM113A"; transcript_id "NM_022760:uc002wgz.1";
+chr20 hg19_knownGene exon 2820857 2821332 0.000000 - . gene_id "FAM113A"; transcript_id "NM_022760:uc002wgz.1";
+chr20 hg19_knownGene CDS 2816111 2816355 0.000000 - 2 gene_id "FAM113A"; transcript_id "AK293638:uc010zqa.1";
+chr20 hg19_knownGene exon 2815971 2816355 0.000000 - . gene_id "FAM113A"; transcript_id "AK293638:uc010zqa.1";
+chr20 hg19_knownGene CDS 2816685 2816960 0.000000 - 2 gene_id "FAM113A"; transcript_id "AK293638:uc010zqa.1";
+chr20 hg19_knownGene exon 2816685 2816960 0.000000 - . gene_id "FAM113A"; transcript_id "AK293638:uc010zqa.1";
+chr20 hg19_knownGene CDS 2818878 2819124 0.000000 - 0 gene_id "FAM113A"; transcript_id "AK293638:uc010zqa.1";
+chr20 hg19_knownGene exon 2818878 2819124 0.000000 - . gene_id "FAM113A"; transcript_id "AK293638:uc010zqa.1";
+chr20 hg19_knownGene CDS 2819242 2819376 0.000000 - 0 gene_id "FAM113A"; transcript_id "AK293638:uc010zqa.1";
+chr20 hg19_knownGene exon 2819242 2819392 0.000000 - . gene_id "FAM113A"; transcript_id "AK293638:uc010zqa.1";
+chr20 hg19_knownGene exon 2819490 2819917 0.000000 - . gene_id "FAM113A"; transcript_id "AK293638:uc010zqa.1";
+chr20 hg19_knownGene exon 2820435 2820579 0.000000 - . gene_id "FAM113A"; transcript_id "AK293638:uc010zqa.1";
+chr20 hg19_knownGene exon 2820857 2821332 0.000000 - . gene_id "FAM113A"; transcript_id "AK293638:uc010zqa.1";
+chr20 hg19_knownGene CDS 2816111 2816355 0.000000 - 2 gene_id "FAM113A"; transcript_id "AK026029:uc002whc.1";
+chr20 hg19_knownGene exon 2815971 2816355 0.000000 - . gene_id "FAM113A"; transcript_id "AK026029:uc002whc.1";
+chr20 hg19_knownGene CDS 2816685 2816960 0.000000 - 2 gene_id "FAM113A"; transcript_id "AK026029:uc002whc.1";
+chr20 hg19_knownGene exon 2816685 2816960 0.000000 - . gene_id "FAM113A"; transcript_id "AK026029:uc002whc.1";
+chr20 hg19_knownGene CDS 2818878 2819124 0.000000 - 0 gene_id "FAM113A"; transcript_id "AK026029:uc002whc.1";
+chr20 hg19_knownGene exon 2818878 2819124 0.000000 - . gene_id "FAM113A"; transcript_id "AK026029:uc002whc.1";
+chr20 hg19_knownGene CDS 2819242 2819392 0.000000 - 1 gene_id "FAM113A"; transcript_id "AK026029:uc002whc.1";
+chr20 hg19_knownGene exon 2819242 2819392 0.000000 - . gene_id "FAM113A"; transcript_id "AK026029:uc002whc.1";
+chr20 hg19_knownGene CDS 2819490 2819575 0.000000 - 0 gene_id "FAM113A"; transcript_id "AK026029:uc002whc.1";
+chr20 hg19_knownGene exon 2819490 2819575 0.000000 - . gene_id "FAM113A"; transcript_id "AK026029:uc002whc.1";
+chr20 hg19_knownGene CDS 2819838 2819917 0.000000 - 2 gene_id "FAM113A"; transcript_id "AK026029:uc002whc.1";
+chr20 hg19_knownGene exon 2819838 2819917 0.000000 - . gene_id "FAM113A"; transcript_id "AK026029:uc002whc.1";
+chr20 hg19_knownGene CDS 2820435 2820558 0.000000 - 0 gene_id "FAM113A"; transcript_id "AK026029:uc002whc.1";
+chr20 hg19_knownGene exon 2820435 2820579 0.000000 - . gene_id "FAM113A"; transcript_id "AK026029:uc002whc.1";
+chr20 hg19_knownGene exon 2821512 2821797 0.000000 - . gene_id "FAM113A"; transcript_id "AK026029:uc002whc.1";
+chr20 hg19_knownGene CDS 2821421 2821473 0.000000 + 0 gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene exon 2821373 2821473 0.000000 + . gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene CDS 2840365 2840453 0.000000 + 1 gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene exon 2840365 2840453 0.000000 + . gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene CDS 2840700 2840797 0.000000 + 2 gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene exon 2840700 2840797 0.000000 + . gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene CDS 2840885 2841013 0.000000 + 0 gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene exon 2840885 2841013 0.000000 + . gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene CDS 2841095 2841239 0.000000 + 0 gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene exon 2841095 2841239 0.000000 + . gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene CDS 2841394 2841509 0.000000 + 2 gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene exon 2841394 2841509 0.000000 + . gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene CDS 2841616 2841738 0.000000 + 0 gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene exon 2841616 2841738 0.000000 + . gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene CDS 2841871 2841926 0.000000 + 0 gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene exon 2841871 2841926 0.000000 + . gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene CDS 2842261 2842350 0.000000 + 1 gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene exon 2842261 2842350 0.000000 + . gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene CDS 2842451 2842545 0.000000 + 1 gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene exon 2842451 2842545 0.000000 + . gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene CDS 2842700 2842776 0.000000 + 2 gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene exon 2842700 2842776 0.000000 + . gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene CDS 2843225 2843356 0.000000 + 0 gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene exon 2843225 2843356 0.000000 + . gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene CDS 2843453 2843580 0.000000 + 0 gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene exon 2843453 2843580 0.000000 + . gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene CDS 2843711 2843746 0.000000 + 1 gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene exon 2843711 2843746 0.000000 + . gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene CDS 2843936 2844044 0.000000 + 1 gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene exon 2843936 2844044 0.000000 + . gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene CDS 2844595 2844729 0.000000 + 0 gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene exon 2844595 2844729 0.000000 + . gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene CDS 2844825 2844933 0.000000 + 0 gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene exon 2844825 2844933 0.000000 + . gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene CDS 2845011 2845108 0.000000 + 2 gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene exon 2845011 2845108 0.000000 + . gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene CDS 2845193 2845300 0.000000 + 0 gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene exon 2845193 2845300 0.000000 + . gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene CDS 2845624 2845701 0.000000 + 0 gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene exon 2845624 2845701 0.000000 + . gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene CDS 2845794 2845963 0.000000 + 0 gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene exon 2845794 2845963 0.000000 + . gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene CDS 2846045 2846141 0.000000 + 1 gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene exon 2846045 2846141 0.000000 + . gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene CDS 2846858 2846961 0.000000 + 0 gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene exon 2846858 2846961 0.000000 + . gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene CDS 2847076 2847217 0.000000 + 1 gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene exon 2847076 2847378 0.000000 + . gene_id "VPS16"; transcript_id "NM_022575:uc002whe.3";
+chr20 hg19_knownGene CDS 2821421 2821473 0.000000 + 0 gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene exon 2821373 2821473 0.000000 + . gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene CDS 2840365 2840453 0.000000 + 1 gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene exon 2840365 2840453 0.000000 + . gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene CDS 2840700 2840797 0.000000 + 2 gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene exon 2840700 2840797 0.000000 + . gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene CDS 2840885 2841013 0.000000 + 0 gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene exon 2840885 2841013 0.000000 + . gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene CDS 2841095 2841239 0.000000 + 0 gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene exon 2841095 2841239 0.000000 + . gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene CDS 2841394 2841509 0.000000 + 2 gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene exon 2841394 2841509 0.000000 + . gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene CDS 2841616 2841738 0.000000 + 0 gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene exon 2841616 2841738 0.000000 + . gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene CDS 2841871 2841926 0.000000 + 0 gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene exon 2841871 2841926 0.000000 + . gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene CDS 2842261 2842350 0.000000 + 1 gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene exon 2842261 2842350 0.000000 + . gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene CDS 2843711 2843746 0.000000 + 1 gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene exon 2843711 2843746 0.000000 + . gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene CDS 2843936 2844044 0.000000 + 1 gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene exon 2843936 2844044 0.000000 + . gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene CDS 2844595 2844729 0.000000 + 0 gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene exon 2844595 2844729 0.000000 + . gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene CDS 2844825 2844933 0.000000 + 0 gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene exon 2844825 2844933 0.000000 + . gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene CDS 2845011 2845108 0.000000 + 2 gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene exon 2845011 2845108 0.000000 + . gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene CDS 2845193 2845300 0.000000 + 0 gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene exon 2845193 2845300 0.000000 + . gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene CDS 2845624 2845701 0.000000 + 0 gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene exon 2845624 2845701 0.000000 + . gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene CDS 2845794 2845963 0.000000 + 0 gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene exon 2845794 2845963 0.000000 + . gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene CDS 2846045 2846141 0.000000 + 1 gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene exon 2846045 2846141 0.000000 + . gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene CDS 2846858 2846961 0.000000 + 0 gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene exon 2846858 2846961 0.000000 + . gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene CDS 2847076 2847217 0.000000 + 1 gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene exon 2847076 2847378 0.000000 + . gene_id "VPS16"; transcript_id "NM_080413:uc002whf.3";
+chr20 hg19_knownGene CDS 2843192 2843580 0.000000 + 0 gene_id "VPS16"; transcript_id "BC073959:uc002whg.3";
+chr20 hg19_knownGene exon 2843102 2843580 0.000000 + . gene_id "VPS16"; transcript_id "BC073959:uc002whg.3";
+chr20 hg19_knownGene CDS 2843711 2843746 0.000000 + 1 gene_id "VPS16"; transcript_id "BC073959:uc002whg.3";
+chr20 hg19_knownGene exon 2843711 2843746 0.000000 + . gene_id "VPS16"; transcript_id "BC073959:uc002whg.3";
+chr20 hg19_knownGene CDS 2843936 2844044 0.000000 + 1 gene_id "VPS16"; transcript_id "BC073959:uc002whg.3";
+chr20 hg19_knownGene exon 2843936 2844044 0.000000 + . gene_id "VPS16"; transcript_id "BC073959:uc002whg.3";
+chr20 hg19_knownGene CDS 2844595 2844729 0.000000 + 0 gene_id "VPS16"; transcript_id "BC073959:uc002whg.3";
+chr20 hg19_knownGene exon 2844595 2844729 0.000000 + . gene_id "VPS16"; transcript_id "BC073959:uc002whg.3";
+chr20 hg19_knownGene CDS 2844825 2844933 0.000000 + 0 gene_id "VPS16"; transcript_id "BC073959:uc002whg.3";
+chr20 hg19_knownGene exon 2844825 2844933 0.000000 + . gene_id "VPS16"; transcript_id "BC073959:uc002whg.3";
+chr20 hg19_knownGene CDS 2845011 2845108 0.000000 + 2 gene_id "VPS16"; transcript_id "BC073959:uc002whg.3";
+chr20 hg19_knownGene exon 2845011 2845108 0.000000 + . gene_id "VPS16"; transcript_id "BC073959:uc002whg.3";
+chr20 hg19_knownGene CDS 2845193 2845300 0.000000 + 0 gene_id "VPS16"; transcript_id "BC073959:uc002whg.3";
+chr20 hg19_knownGene exon 2845193 2845300 0.000000 + . gene_id "VPS16"; transcript_id "BC073959:uc002whg.3";
+chr20 hg19_knownGene CDS 2845624 2845701 0.000000 + 0 gene_id "VPS16"; transcript_id "BC073959:uc002whg.3";
+chr20 hg19_knownGene exon 2845624 2845701 0.000000 + . gene_id "VPS16"; transcript_id "BC073959:uc002whg.3";
+chr20 hg19_knownGene CDS 2845794 2845963 0.000000 + 0 gene_id "VPS16"; transcript_id "BC073959:uc002whg.3";
+chr20 hg19_knownGene exon 2845794 2845963 0.000000 + . gene_id "VPS16"; transcript_id "BC073959:uc002whg.3";
+chr20 hg19_knownGene CDS 2846045 2846141 0.000000 + 1 gene_id "VPS16"; transcript_id "BC073959:uc002whg.3";
+chr20 hg19_knownGene exon 2846045 2846141 0.000000 + . gene_id "VPS16"; transcript_id "BC073959:uc002whg.3";
+chr20 hg19_knownGene CDS 2846858 2846961 0.000000 + 0 gene_id "VPS16"; transcript_id "BC073959:uc002whg.3";
+chr20 hg19_knownGene exon 2846858 2846961 0.000000 + . gene_id "VPS16"; transcript_id "BC073959:uc002whg.3";
+chr20 hg19_knownGene CDS 2847076 2847217 0.000000 + 1 gene_id "VPS16"; transcript_id "BC073959:uc002whg.3";
+chr20 hg19_knownGene exon 2847076 2847378 0.000000 + . gene_id "VPS16"; transcript_id "BC073959:uc002whg.3";
+chr20 hg19_knownGene exon 2854142 2854406 0.000000 + . gene_id "PTPRA"; transcript_id "AK294990:uc010zqb.1";
+chr20 hg19_knownGene exon 2903853 2903931 0.000000 + . gene_id "PTPRA"; transcript_id "AK294990:uc010zqb.1";
+chr20 hg19_knownGene exon 2928628 2928670 0.000000 + . gene_id "PTPRA"; transcript_id "AK294990:uc010zqb.1";
+chr20 hg19_knownGene CDS 2944924 2944996 0.000000 + 0 gene_id "PTPRA"; transcript_id "AK294990:uc010zqb.1";
+chr20 hg19_knownGene exon 2944918 2944996 0.000000 + . gene_id "PTPRA"; transcript_id "AK294990:uc010zqb.1";
+chr20 hg19_knownGene CDS 2945507 2945848 0.000000 + 2 gene_id "PTPRA"; transcript_id "AK294990:uc010zqb.1";
+chr20 hg19_knownGene exon 2945507 2945848 0.000000 + . gene_id "PTPRA"; transcript_id "AK294990:uc010zqb.1";
+chr20 hg19_knownGene CDS 2967411 2967496 0.000000 + 2 gene_id "PTPRA"; transcript_id "AK294990:uc010zqb.1";
+chr20 hg19_knownGene exon 2967411 2968751 0.000000 + . gene_id "PTPRA"; transcript_id "AK294990:uc010zqb.1";
+chr20 hg19_knownGene exon 2854142 2854406 0.000000 + . gene_id "PTPRA"; transcript_id "AK297293:uc010zqc.1";
+chr20 hg19_knownGene CDS 2903905 2903931 0.000000 + 0 gene_id "PTPRA"; transcript_id "AK297293:uc010zqc.1";
+chr20 hg19_knownGene exon 2903853 2903931 0.000000 + . gene_id "PTPRA"; transcript_id "AK297293:uc010zqc.1";
+chr20 hg19_knownGene CDS 2928628 2928670 0.000000 + 0 gene_id "PTPRA"; transcript_id "AK297293:uc010zqc.1";
+chr20 hg19_knownGene exon 2928628 2928670 0.000000 + . gene_id "PTPRA"; transcript_id "AK297293:uc010zqc.1";
+chr20 hg19_knownGene CDS 2955861 2955887 0.000000 + 2 gene_id "PTPRA"; transcript_id "AK297293:uc010zqc.1";
+chr20 hg19_knownGene exon 2955861 2955887 0.000000 + . gene_id "PTPRA"; transcript_id "AK297293:uc010zqc.1";
+chr20 hg19_knownGene CDS 2967411 2967495 0.000000 + 2 gene_id "PTPRA"; transcript_id "AK297293:uc010zqc.1";
+chr20 hg19_knownGene exon 2967411 2967495 0.000000 + . gene_id "PTPRA"; transcript_id "AK297293:uc010zqc.1";
+chr20 hg19_knownGene CDS 2968678 2968751 0.000000 + 1 gene_id "PTPRA"; transcript_id "AK297293:uc010zqc.1";
+chr20 hg19_knownGene exon 2968678 2968751 0.000000 + . gene_id "PTPRA"; transcript_id "AK297293:uc010zqc.1";
+chr20 hg19_knownGene CDS 2968984 2969120 0.000000 + 2 gene_id "PTPRA"; transcript_id "AK297293:uc010zqc.1";
+chr20 hg19_knownGene exon 2968984 2969120 0.000000 + . gene_id "PTPRA"; transcript_id "AK297293:uc010zqc.1";
+chr20 hg19_knownGene CDS 2985702 2985788 0.000000 + 0 gene_id "PTPRA"; transcript_id "AK297293:uc010zqc.1";
+chr20 hg19_knownGene exon 2985702 2985792 0.000000 + . gene_id "PTPRA"; transcript_id "AK297293:uc010zqc.1";
+chr20 hg19_knownGene exon 2844825 2844933 0.000000 + . gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene exon 2845011 2845108 0.000000 + . gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene exon 2845193 2845300 0.000000 + . gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene exon 2845624 2845701 0.000000 + . gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene exon 2845794 2845963 0.000000 + . gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene exon 2903853 2903931 0.000000 + . gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene exon 2928628 2928670 0.000000 + . gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene CDS 2944924 2944996 0.000000 + 0 gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene exon 2944918 2944996 0.000000 + . gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene CDS 2945507 2945848 0.000000 + 2 gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene exon 2945507 2945848 0.000000 + . gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene CDS 2955861 2955887 0.000000 + 2 gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene exon 2955861 2955887 0.000000 + . gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene CDS 2967411 2967495 0.000000 + 2 gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene exon 2967411 2967495 0.000000 + . gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene CDS 2968678 2968751 0.000000 + 1 gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene exon 2968678 2968751 0.000000 + . gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene CDS 2968984 2969120 0.000000 + 2 gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene exon 2968984 2969120 0.000000 + . gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene CDS 2985702 2985792 0.000000 + 0 gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene exon 2985702 2985792 0.000000 + . gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene CDS 2987990 2988066 0.000000 + 2 gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene exon 2987990 2988066 0.000000 + . gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene CDS 2996495 2996531 0.000000 + 0 gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene exon 2996495 2996531 0.000000 + . gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene CDS 2998462 2998559 0.000000 + 2 gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene exon 2998462 2998559 0.000000 + . gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene CDS 3001955 3002074 0.000000 + 0 gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene exon 3001955 3002074 0.000000 + . gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene CDS 3002700 3002866 0.000000 + 0 gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene exon 3002700 3002866 0.000000 + . gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene CDS 3003335 3003470 0.000000 + 1 gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene exon 3003335 3003470 0.000000 + . gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene CDS 3005118 3005267 0.000000 + 0 gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene exon 3005118 3005267 0.000000 + . gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene CDS 3007333 3007426 0.000000 + 0 gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene exon 3007333 3007426 0.000000 + . gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene CDS 3007767 3007843 0.000000 + 2 gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene exon 3007767 3007843 0.000000 + . gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene CDS 3008353 3008487 0.000000 + 0 gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene exon 3008353 3008487 0.000000 + . gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene CDS 3016231 3016356 0.000000 + 0 gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene exon 3016231 3016356 0.000000 + . gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene CDS 3016436 3016587 0.000000 + 0 gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene exon 3016436 3016587 0.000000 + . gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene CDS 3017800 3017935 0.000000 + 1 gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene exon 3017800 3017935 0.000000 + . gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene CDS 3018705 3018776 0.000000 + 0 gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene exon 3018705 3019315 0.000000 + . gene_id "PTPRA"; transcript_id "NM_002836:uc002whj.3";
+chr20 hg19_knownGene exon 2854142 2854406 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene exon 2903853 2903931 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene exon 2928628 2928670 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene CDS 2944924 2944996 0.000000 + 0 gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene exon 2944918 2944996 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene CDS 2945507 2945848 0.000000 + 2 gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene exon 2945507 2945848 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene CDS 2967411 2967495 0.000000 + 2 gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene exon 2967411 2967495 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene CDS 2968678 2968751 0.000000 + 1 gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene exon 2968678 2968751 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene CDS 2968984 2969120 0.000000 + 2 gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene exon 2968984 2969120 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene CDS 2985702 2985792 0.000000 + 0 gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene exon 2985702 2985792 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene CDS 2987990 2988066 0.000000 + 2 gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene exon 2987990 2988066 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene CDS 2996495 2996531 0.000000 + 0 gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene exon 2996495 2996531 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene CDS 2998462 2998559 0.000000 + 2 gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene exon 2998462 2998559 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene CDS 3001955 3002074 0.000000 + 0 gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene exon 3001955 3002074 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene CDS 3002700 3002866 0.000000 + 0 gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene exon 3002700 3002866 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene CDS 3003335 3003470 0.000000 + 1 gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene exon 3003335 3003470 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene CDS 3005118 3005267 0.000000 + 0 gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene exon 3005118 3005267 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene CDS 3007333 3007426 0.000000 + 0 gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene exon 3007333 3007426 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene CDS 3007767 3007843 0.000000 + 2 gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene exon 3007767 3007843 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene CDS 3008353 3008487 0.000000 + 0 gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene exon 3008353 3008487 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene CDS 3016231 3016356 0.000000 + 0 gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene exon 3016231 3016356 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene CDS 3016436 3016587 0.000000 + 0 gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene exon 3016436 3016587 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene CDS 3017800 3017935 0.000000 + 1 gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene exon 3017800 3017935 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene CDS 3018705 3018776 0.000000 + 0 gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene exon 3018705 3019315 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080840:uc002whk.3";
+chr20 hg19_knownGene exon 2854142 2854406 0.000000 + . gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene CDS 2903905 2903931 0.000000 + 0 gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene exon 2903853 2903931 0.000000 + . gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene CDS 2944918 2944996 0.000000 + 0 gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene exon 2944918 2944996 0.000000 + . gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene CDS 2945507 2945848 0.000000 + 2 gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene exon 2945507 2945848 0.000000 + . gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene CDS 2955861 2955887 0.000000 + 2 gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene exon 2955861 2955887 0.000000 + . gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene CDS 2967411 2967495 0.000000 + 2 gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene exon 2967411 2967495 0.000000 + . gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene CDS 2968678 2968751 0.000000 + 1 gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene exon 2968678 2968751 0.000000 + . gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene CDS 2968984 2969120 0.000000 + 2 gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene exon 2968984 2969120 0.000000 + . gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene CDS 2985702 2985792 0.000000 + 0 gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene exon 2985702 2985792 0.000000 + . gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene CDS 2987990 2988066 0.000000 + 2 gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene exon 2987990 2988066 0.000000 + . gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene CDS 2996495 2996531 0.000000 + 0 gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene exon 2996495 2996531 0.000000 + . gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene CDS 2998462 2998559 0.000000 + 2 gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene exon 2998462 2998559 0.000000 + . gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene CDS 3001955 3002074 0.000000 + 0 gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene exon 3001955 3002074 0.000000 + . gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene CDS 3002700 3002866 0.000000 + 0 gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene exon 3002700 3002866 0.000000 + . gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene CDS 3003335 3003470 0.000000 + 1 gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene exon 3003335 3003470 0.000000 + . gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene CDS 3005118 3005267 0.000000 + 0 gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene exon 3005118 3005267 0.000000 + . gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene CDS 3007333 3007426 0.000000 + 0 gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene exon 3007333 3007426 0.000000 + . gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene CDS 3007767 3007843 0.000000 + 2 gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene exon 3007767 3007843 0.000000 + . gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene CDS 3008353 3008487 0.000000 + 0 gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene exon 3008353 3008487 0.000000 + . gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene CDS 3016231 3016356 0.000000 + 0 gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene exon 3016231 3016356 0.000000 + . gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene CDS 3016436 3016587 0.000000 + 0 gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene exon 3016436 3016587 0.000000 + . gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene CDS 3017800 3017935 0.000000 + 1 gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene exon 3017800 3017935 0.000000 + . gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene CDS 3018705 3018776 0.000000 + 0 gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene exon 3018705 3019315 0.000000 + . gene_id "PTPRA"; transcript_id "AK294499:uc010zqd.2";
+chr20 hg19_knownGene exon 2854142 2854406 0.000000 + . gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene exon 2891587 2891679 0.000000 + . gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene exon 2903853 2903931 0.000000 + . gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene exon 2928628 2928670 0.000000 + . gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene CDS 2944924 2944996 0.000000 + 0 gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene exon 2944918 2944996 0.000000 + . gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene CDS 2945507 2945848 0.000000 + 2 gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene exon 2945507 2945848 0.000000 + . gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene CDS 2967411 2967495 0.000000 + 2 gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene exon 2967411 2967495 0.000000 + . gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene CDS 2968678 2968751 0.000000 + 1 gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene exon 2968678 2968751 0.000000 + . gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene CDS 2968984 2969120 0.000000 + 2 gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene exon 2968984 2969120 0.000000 + . gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene CDS 2985702 2985792 0.000000 + 0 gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene exon 2985702 2985792 0.000000 + . gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene CDS 2987990 2988066 0.000000 + 2 gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene exon 2987990 2988066 0.000000 + . gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene CDS 2996495 2996531 0.000000 + 0 gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene exon 2996495 2996531 0.000000 + . gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene CDS 2998462 2998559 0.000000 + 2 gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene exon 2998462 2998559 0.000000 + . gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene CDS 3001955 3002074 0.000000 + 0 gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene exon 3001955 3002074 0.000000 + . gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene CDS 3002700 3002866 0.000000 + 0 gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene exon 3002700 3002866 0.000000 + . gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene CDS 3003335 3003470 0.000000 + 1 gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene exon 3003335 3003470 0.000000 + . gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene CDS 3005118 3005267 0.000000 + 0 gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene exon 3005118 3005267 0.000000 + . gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene CDS 3007333 3007426 0.000000 + 0 gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene exon 3007333 3007426 0.000000 + . gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene CDS 3007767 3007843 0.000000 + 2 gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene exon 3007767 3007843 0.000000 + . gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene CDS 3008353 3008487 0.000000 + 0 gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene exon 3008353 3008487 0.000000 + . gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene CDS 3016231 3016356 0.000000 + 0 gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene exon 3016231 3016356 0.000000 + . gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene CDS 3016436 3016587 0.000000 + 0 gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene exon 3016436 3016587 0.000000 + . gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene CDS 3017800 3017935 0.000000 + 1 gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene exon 3017800 3017935 0.000000 + . gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene CDS 3018705 3018776 0.000000 + 0 gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene exon 3018705 3019315 0.000000 + . gene_id "PTPRA"; transcript_id "BX571753:uc002whl.3";
+chr20 hg19_knownGene exon 2854142 2854406 0.000000 + . gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene exon 2903853 2903931 0.000000 + . gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene exon 2928628 2928670 0.000000 + . gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene exon 2944918 2944996 0.000000 + . gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene exon 2945507 2945848 0.000000 + . gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene exon 2955861 2955887 0.000000 + . gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene exon 2967411 2968751 0.000000 + . gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene CDS 2969082 2969120 0.000000 + 0 gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene exon 2968984 2969120 0.000000 + . gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene CDS 2985702 2985792 0.000000 + 0 gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene exon 2985702 2985792 0.000000 + . gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene CDS 2987990 2988066 0.000000 + 2 gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene exon 2987990 2988066 0.000000 + . gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene CDS 2996495 2996531 0.000000 + 0 gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene exon 2996495 2996531 0.000000 + . gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene CDS 2998462 2998559 0.000000 + 2 gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene exon 2998462 2998559 0.000000 + . gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene CDS 3001955 3002074 0.000000 + 0 gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene exon 3001955 3002074 0.000000 + . gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene CDS 3002700 3002866 0.000000 + 0 gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene exon 3002700 3002866 0.000000 + . gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene CDS 3003335 3003470 0.000000 + 1 gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene exon 3003335 3003470 0.000000 + . gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene CDS 3005118 3005267 0.000000 + 0 gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene exon 3005118 3005267 0.000000 + . gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene CDS 3007333 3007426 0.000000 + 0 gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene exon 3007333 3007426 0.000000 + . gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene CDS 3007767 3007843 0.000000 + 2 gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene exon 3007767 3007843 0.000000 + . gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene CDS 3008353 3008487 0.000000 + 0 gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene exon 3008353 3008487 0.000000 + . gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene CDS 3016231 3016356 0.000000 + 0 gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene exon 3016231 3016356 0.000000 + . gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene CDS 3016436 3016587 0.000000 + 0 gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene exon 3016436 3016587 0.000000 + . gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene CDS 3017800 3017935 0.000000 + 1 gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene exon 3017800 3017935 0.000000 + . gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene CDS 3018705 3018776 0.000000 + 0 gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene exon 3018705 3019315 0.000000 + . gene_id "PTPRA"; transcript_id "AB209702:uc002whm.3";
+chr20 hg19_knownGene exon 2903853 2903931 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene exon 2928628 2928670 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene exon 2936255 2936344 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene CDS 2944924 2944996 0.000000 + 0 gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene exon 2944918 2944996 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene CDS 2945507 2945848 0.000000 + 2 gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene exon 2945507 2945848 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene CDS 2967411 2967495 0.000000 + 2 gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene exon 2967411 2967495 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene CDS 2968678 2968751 0.000000 + 1 gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene exon 2968678 2968751 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene CDS 2968984 2969120 0.000000 + 2 gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene exon 2968984 2969120 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene CDS 2985702 2985792 0.000000 + 0 gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene exon 2985702 2985792 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene CDS 2987990 2988066 0.000000 + 2 gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene exon 2987990 2988066 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene CDS 2996495 2996531 0.000000 + 0 gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene exon 2996495 2996531 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene CDS 2998462 2998559 0.000000 + 2 gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene exon 2998462 2998559 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene CDS 3001955 3002074 0.000000 + 0 gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene exon 3001955 3002074 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene CDS 3002700 3002866 0.000000 + 0 gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene exon 3002700 3002866 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene CDS 3003335 3003470 0.000000 + 1 gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene exon 3003335 3003470 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene CDS 3005118 3005267 0.000000 + 0 gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene exon 3005118 3005267 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene CDS 3007333 3007426 0.000000 + 0 gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene exon 3007333 3007426 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene CDS 3007767 3007843 0.000000 + 2 gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene exon 3007767 3007843 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene CDS 3008353 3008487 0.000000 + 0 gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene exon 3008353 3008487 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene CDS 3016231 3016356 0.000000 + 0 gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene exon 3016231 3016356 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene CDS 3016436 3016587 0.000000 + 0 gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene exon 3016436 3016587 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene CDS 3017800 3017935 0.000000 + 1 gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene exon 3017800 3017935 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene CDS 3018705 3018776 0.000000 + 0 gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene exon 3018705 3019315 0.000000 + . gene_id "PTPRA"; transcript_id "NM_080841:uc002whn.3";
+chr20 hg19_knownGene exon 2967411 2968751 0.000000 + . gene_id "PTPRA"; transcript_id "AX746597:uc002who.3";
+chr20 hg19_knownGene exon 2968984 2969120 0.000000 + . gene_id "PTPRA"; transcript_id "AX746597:uc002who.3";
+chr20 hg19_knownGene exon 2979977 2980071 0.000000 + . gene_id "PTPRA"; transcript_id "AX746597:uc002who.3";
+chr20 hg19_knownGene exon 2985702 2985792 0.000000 + . gene_id "PTPRA"; transcript_id "AX746597:uc002who.3";
+chr20 hg19_knownGene exon 2987990 2988066 0.000000 + . gene_id "PTPRA"; transcript_id "AX746597:uc002who.3";
+chr20 hg19_knownGene exon 2996495 2996531 0.000000 + . gene_id "PTPRA"; transcript_id "AX746597:uc002who.3";
+chr20 hg19_knownGene CDS 2998530 2998559 0.000000 + 0 gene_id "PTPRA"; transcript_id "AX746597:uc002who.3";
+chr20 hg19_knownGene exon 2998462 2998559 0.000000 + . gene_id "PTPRA"; transcript_id "AX746597:uc002who.3";
+chr20 hg19_knownGene CDS 3001955 3002074 0.000000 + 0 gene_id "PTPRA"; transcript_id "AX746597:uc002who.3";
+chr20 hg19_knownGene exon 3001955 3002074 0.000000 + . gene_id "PTPRA"; transcript_id "AX746597:uc002who.3";
+chr20 hg19_knownGene CDS 3002700 3002866 0.000000 + 0 gene_id "PTPRA"; transcript_id "AX746597:uc002who.3";
+chr20 hg19_knownGene exon 3002700 3002866 0.000000 + . gene_id "PTPRA"; transcript_id "AX746597:uc002who.3";
+chr20 hg19_knownGene CDS 3003335 3003470 0.000000 + 1 gene_id "PTPRA"; transcript_id "AX746597:uc002who.3";
+chr20 hg19_knownGene exon 3003335 3003470 0.000000 + . gene_id "PTPRA"; transcript_id "AX746597:uc002who.3";
+chr20 hg19_knownGene CDS 3005118 3005267 0.000000 + 0 gene_id "PTPRA"; transcript_id "AX746597:uc002who.3";
+chr20 hg19_knownGene exon 3005118 3005267 0.000000 + . gene_id "PTPRA"; transcript_id "AX746597:uc002who.3";
+chr20 hg19_knownGene CDS 3007333 3007426 0.000000 + 0 gene_id "PTPRA"; transcript_id "AX746597:uc002who.3";
+chr20 hg19_knownGene exon 3007333 3007426 0.000000 + . gene_id "PTPRA"; transcript_id "AX746597:uc002who.3";
+chr20 hg19_knownGene CDS 3007767 3007843 0.000000 + 2 gene_id "PTPRA"; transcript_id "AX746597:uc002who.3";
+chr20 hg19_knownGene exon 3007767 3007843 0.000000 + . gene_id "PTPRA"; transcript_id "AX746597:uc002who.3";
+chr20 hg19_knownGene CDS 3008353 3008487 0.000000 + 0 gene_id "PTPRA"; transcript_id "AX746597:uc002who.3";
+chr20 hg19_knownGene exon 3008353 3008487 0.000000 + . gene_id "PTPRA"; transcript_id "AX746597:uc002who.3";
+chr20 hg19_knownGene CDS 3016231 3016356 0.000000 + 0 gene_id "PTPRA"; transcript_id "AX746597:uc002who.3";
+chr20 hg19_knownGene exon 3016231 3016356 0.000000 + . gene_id "PTPRA"; transcript_id "AX746597:uc002who.3";
+chr20 hg19_knownGene CDS 3016436 3016587 0.000000 + 0 gene_id "PTPRA"; transcript_id "AX746597:uc002who.3";
+chr20 hg19_knownGene exon 3016436 3016587 0.000000 + . gene_id "PTPRA"; transcript_id "AX746597:uc002who.3";
+chr20 hg19_knownGene CDS 3017800 3017935 0.000000 + 1 gene_id "PTPRA"; transcript_id "AX746597:uc002who.3";
+chr20 hg19_knownGene exon 3017800 3017935 0.000000 + . gene_id "PTPRA"; transcript_id "AX746597:uc002who.3";
+chr20 hg19_knownGene CDS 3018705 3018776 0.000000 + 0 gene_id "PTPRA"; transcript_id "AX746597:uc002who.3";
+chr20 hg19_knownGene exon 3018705 3019315 0.000000 + . gene_id "PTPRA"; transcript_id "AX746597:uc002who.3";
+chr20 hg19_knownGene exon 3024268 3024311 0.000000 + . gene_id "GNRH2"; transcript_id "NM_178331:uc002whp.1";
+chr20 hg19_knownGene CDS 3025061 3025214 0.000000 + 0 gene_id "GNRH2"; transcript_id "NM_178331:uc002whp.1";
+chr20 hg19_knownGene exon 3025054 3025214 0.000000 + . gene_id "GNRH2"; transcript_id "NM_178331:uc002whp.1";
+chr20 hg19_knownGene CDS 3025346 3025482 0.000000 + 2 gene_id "GNRH2"; transcript_id "NM_178331:uc002whp.1";
+chr20 hg19_knownGene exon 3025346 3025482 0.000000 + . gene_id "GNRH2"; transcript_id "NM_178331:uc002whp.1";
+chr20 hg19_knownGene CDS 3026332 3026379 0.000000 + 0 gene_id "GNRH2"; transcript_id "NM_178331:uc002whp.1";
+chr20 hg19_knownGene exon 3026332 3026391 0.000000 + . gene_id "GNRH2"; transcript_id "NM_178331:uc002whp.1";
+chr20 hg19_knownGene exon 3024268 3024311 0.000000 + . gene_id "GNRH2"; transcript_id "NM_178332:uc002whq.1";
+chr20 hg19_knownGene CDS 3025061 3025214 0.000000 + 0 gene_id "GNRH2"; transcript_id "NM_178332:uc002whq.1";
+chr20 hg19_knownGene exon 3025054 3025214 0.000000 + . gene_id "GNRH2"; transcript_id "NM_178332:uc002whq.1";
+chr20 hg19_knownGene CDS 3025349 3025482 0.000000 + 2 gene_id "GNRH2"; transcript_id "NM_178332:uc002whq.1";
+chr20 hg19_knownGene exon 3025349 3025482 0.000000 + . gene_id "GNRH2"; transcript_id "NM_178332:uc002whq.1";
+chr20 hg19_knownGene CDS 3026332 3026379 0.000000 + 0 gene_id "GNRH2"; transcript_id "NM_178332:uc002whq.1";
+chr20 hg19_knownGene exon 3026332 3026391 0.000000 + . gene_id "GNRH2"; transcript_id "NM_178332:uc002whq.1";
+chr20 hg19_knownGene exon 3024268 3024311 0.000000 + . gene_id "GNRH2"; transcript_id "NM_001501:uc002whr.1";
+chr20 hg19_knownGene CDS 3025061 3025214 0.000000 + 0 gene_id "GNRH2"; transcript_id "NM_001501:uc002whr.1";
+chr20 hg19_knownGene exon 3025054 3025214 0.000000 + . gene_id "GNRH2"; transcript_id "NM_001501:uc002whr.1";
+chr20 hg19_knownGene CDS 3025325 3025482 0.000000 + 2 gene_id "GNRH2"; transcript_id "NM_001501:uc002whr.1";
+chr20 hg19_knownGene exon 3025325 3025482 0.000000 + . gene_id "GNRH2"; transcript_id "NM_001501:uc002whr.1";
+chr20 hg19_knownGene CDS 3026332 3026379 0.000000 + 0 gene_id "GNRH2"; transcript_id "NM_001501:uc002whr.1";
+chr20 hg19_knownGene exon 3026332 3026391 0.000000 + . gene_id "GNRH2"; transcript_id "NM_001501:uc002whr.1";
+chr20 hg19_knownGene exon 3024268 3024311 0.000000 + . gene_id "GNRH2"; transcript_id "BC115400:uc010gau.1";
+chr20 hg19_knownGene CDS 3025061 3025214 0.000000 + 0 gene_id "GNRH2"; transcript_id "BC115400:uc010gau.1";
+chr20 hg19_knownGene exon 3025059 3025214 0.000000 + . gene_id "GNRH2"; transcript_id "BC115400:uc010gau.1";
+chr20 hg19_knownGene CDS 3025325 3025482 0.000000 + 2 gene_id "GNRH2"; transcript_id "BC115400:uc010gau.1";
+chr20 hg19_knownGene exon 3025325 3025482 0.000000 + . gene_id "GNRH2"; transcript_id "BC115400:uc010gau.1";
+chr20 hg19_knownGene CDS 3026332 3026379 0.000000 + 0 gene_id "GNRH2"; transcript_id "BC115400:uc010gau.1";
+chr20 hg19_knownGene exon 3026332 3026391 0.000000 + . gene_id "GNRH2"; transcript_id "BC115400:uc010gau.1";
+chr20 hg19_knownGene CDS 3026715 3026926 0.000000 + 0 gene_id "MRPS26"; transcript_id "NM_030811:uc002whs.3";
+chr20 hg19_knownGene exon 3026675 3026926 0.000000 + . gene_id "MRPS26"; transcript_id "NM_030811:uc002whs.3";
+chr20 hg19_knownGene CDS 3027019 3027165 0.000000 + 1 gene_id "MRPS26"; transcript_id "NM_030811:uc002whs.3";
+chr20 hg19_knownGene exon 3027019 3027165 0.000000 + . gene_id "MRPS26"; transcript_id "NM_030811:uc002whs.3";
+chr20 hg19_knownGene CDS 3027260 3027383 0.000000 + 1 gene_id "MRPS26"; transcript_id "NM_030811:uc002whs.3";
+chr20 hg19_knownGene exon 3027260 3027383 0.000000 + . gene_id "MRPS26"; transcript_id "NM_030811:uc002whs.3";
+chr20 hg19_knownGene CDS 3028381 3028512 0.000000 + 0 gene_id "MRPS26"; transcript_id "NM_030811:uc002whs.3";
+chr20 hg19_knownGene exon 3028381 3028896 0.000000 + . gene_id "MRPS26"; transcript_id "NM_030811:uc002whs.3";
+chr20 hg19_knownGene CDS 3052302 3052421 0.000000 + 0 gene_id "OXT"; transcript_id "NM_000915:uc002wht.1";
+chr20 hg19_knownGene exon 3052266 3052421 0.000000 + . gene_id "OXT"; transcript_id "NM_000915:uc002wht.1";
+chr20 hg19_knownGene CDS 3052723 3052924 0.000000 + 0 gene_id "OXT"; transcript_id "NM_000915:uc002wht.1";
+chr20 hg19_knownGene exon 3052723 3052924 0.000000 + . gene_id "OXT"; transcript_id "NM_000915:uc002wht.1";
+chr20 hg19_knownGene CDS 3053009 3053061 0.000000 + 2 gene_id "OXT"; transcript_id "NM_000915:uc002wht.1";
+chr20 hg19_knownGene exon 3053009 3053162 0.000000 + . gene_id "OXT"; transcript_id "NM_000915:uc002wht.1";
+chr20 hg19_knownGene CDS 3063279 3063448 0.000000 - 2 gene_id "AVP"; transcript_id "NM_000490:uc002whu.3";
+chr20 hg19_knownGene exon 3063202 3063448 0.000000 - . gene_id "AVP"; transcript_id "NM_000490:uc002whu.3";
+chr20 hg19_knownGene CDS 3063623 3063824 0.000000 - 0 gene_id "AVP"; transcript_id "NM_000490:uc002whu.3";
+chr20 hg19_knownGene exon 3063623 3063824 0.000000 - . gene_id "AVP"; transcript_id "NM_000490:uc002whu.3";
+chr20 hg19_knownGene CDS 3065201 3065320 0.000000 - 0 gene_id "AVP"; transcript_id "NM_000490:uc002whu.3";
+chr20 hg19_knownGene exon 3065201 3065370 0.000000 - . gene_id "AVP"; transcript_id "NM_000490:uc002whu.3";
+chr20 hg19_knownGene CDS 3127425 3129716 0.000000 - 0 gene_id "FASTKD5"; transcript_id "CCDS13048:uc021vzx.1";
+chr20 hg19_knownGene exon 3127422 3129716 0.000000 - . gene_id "FASTKD5"; transcript_id "CCDS13048:uc021vzx.1";
+chr20 hg19_knownGene exon 3087557 3088217 0.000000 + . gene_id "LOC100134015"; transcript_id "NR_038395:uc002whv.1";
+chr20 hg19_knownGene exon 3090121 3090396 0.000000 + . gene_id "LOC100134015"; transcript_id "NR_038395:uc002whv.1";
+chr20 hg19_knownGene exon 3090924 3091099 0.000000 + . gene_id "LOC100134015"; transcript_id "NR_038395:uc002whv.1";
+chr20 hg19_knownGene exon 3091278 3091363 0.000000 + . gene_id "LOC100134015"; transcript_id "NR_038395:uc002whv.1";
+chr20 hg19_knownGene exon 3092290 3092398 0.000000 + . gene_id "LOC100134015"; transcript_id "NR_038395:uc002whv.1";
+chr20 hg19_knownGene exon 3116649 3116804 0.000000 + . gene_id "LOC100134015"; transcript_id "NR_038395:uc002whv.1";
+chr20 hg19_knownGene exon 3131184 3131513 0.000000 + . gene_id "LOC100134015"; transcript_id "NR_038395:uc002whv.1";
+chr20 hg19_knownGene CDS 3090755 3090960 0.000000 - 2 gene_id "UBOX5"; transcript_id "NM_014948:uc002whw.3";
+chr20 hg19_knownGene exon 3088219 3090960 0.000000 - . gene_id "UBOX5"; transcript_id "NM_014948:uc002whw.3";
+chr20 hg19_knownGene CDS 3095951 3096112 0.000000 - 2 gene_id "UBOX5"; transcript_id "NM_014948:uc002whw.3";
+chr20 hg19_knownGene exon 3095951 3096112 0.000000 - . gene_id "UBOX5"; transcript_id "NM_014948:uc002whw.3";
+chr20 hg19_knownGene CDS 3102030 3103230 0.000000 - 0 gene_id "UBOX5"; transcript_id "NM_014948:uc002whw.3";
+chr20 hg19_knownGene exon 3102030 3103230 0.000000 - . gene_id "UBOX5"; transcript_id "NM_014948:uc002whw.3";
+chr20 hg19_knownGene CDS 3103958 3104011 0.000000 - 0 gene_id "UBOX5"; transcript_id "NM_014948:uc002whw.3";
+chr20 hg19_knownGene exon 3103958 3104052 0.000000 - . gene_id "UBOX5"; transcript_id "NM_014948:uc002whw.3";
+chr20 hg19_knownGene exon 3140412 3140540 0.000000 - . gene_id "UBOX5"; transcript_id "NM_014948:uc002whw.3";
+chr20 hg19_knownGene CDS 3090755 3090960 0.000000 - 2 gene_id "UBOX5"; transcript_id "NM_199415:uc002whx.3";
+chr20 hg19_knownGene exon 3088219 3090960 0.000000 - . gene_id "UBOX5"; transcript_id "NM_199415:uc002whx.3";
+chr20 hg19_knownGene CDS 3102030 3103230 0.000000 - 0 gene_id "UBOX5"; transcript_id "NM_199415:uc002whx.3";
+chr20 hg19_knownGene exon 3102030 3103230 0.000000 - . gene_id "UBOX5"; transcript_id "NM_199415:uc002whx.3";
+chr20 hg19_knownGene CDS 3103958 3104011 0.000000 - 0 gene_id "UBOX5"; transcript_id "NM_199415:uc002whx.3";
+chr20 hg19_knownGene exon 3103958 3104052 0.000000 - . gene_id "UBOX5"; transcript_id "NM_199415:uc002whx.3";
+chr20 hg19_knownGene exon 3140412 3140540 0.000000 - . gene_id "UBOX5"; transcript_id "NM_199415:uc002whx.3";
+chr20 hg19_knownGene CDS 3090837 3090955 0.000000 - 2 gene_id "UBOX5"; transcript_id "BC064544:uc002why.1";
+chr20 hg19_knownGene exon 3090256 3090955 0.000000 - . gene_id "UBOX5"; transcript_id "BC064544:uc002why.1";
+chr20 hg19_knownGene CDS 3095951 3096112 0.000000 - 2 gene_id "UBOX5"; transcript_id "BC064544:uc002why.1";
+chr20 hg19_knownGene exon 3095951 3096112 0.000000 - . gene_id "UBOX5"; transcript_id "BC064544:uc002why.1";
+chr20 hg19_knownGene CDS 3102030 3103230 0.000000 - 0 gene_id "UBOX5"; transcript_id "BC064544:uc002why.1";
+chr20 hg19_knownGene exon 3102030 3103230 0.000000 - . gene_id "UBOX5"; transcript_id "BC064544:uc002why.1";
+chr20 hg19_knownGene CDS 3103958 3104011 0.000000 - 0 gene_id "UBOX5"; transcript_id "BC064544:uc002why.1";
+chr20 hg19_knownGene exon 3103958 3104052 0.000000 - . gene_id "UBOX5"; transcript_id "BC064544:uc002why.1";
+chr20 hg19_knownGene exon 3140412 3140540 0.000000 - . gene_id "UBOX5"; transcript_id "BC064544:uc002why.1";
+chr20 hg19_knownGene CDS 3127425 3129716 0.000000 - 0 gene_id "FASTKD5"; transcript_id "NM_021826:uc002whz.3";
+chr20 hg19_knownGene exon 3127165 3129906 0.000000 - . gene_id "FASTKD5"; transcript_id "NM_021826:uc002whz.3";
+chr20 hg19_knownGene exon 3140412 3140540 0.000000 - . gene_id "FASTKD5"; transcript_id "NM_021826:uc002whz.3";
+chr20 hg19_knownGene CDS 3145103 3145798 0.000000 - 0 gene_id "ProSAPiP1"; transcript_id "NM_014731:uc002wia.1";
+chr20 hg19_knownGene exon 3143273 3145798 0.000000 - . gene_id "ProSAPiP1"; transcript_id "NM_014731:uc002wia.1";
+chr20 hg19_knownGene CDS 3146143 3147006 0.000000 - 0 gene_id "ProSAPiP1"; transcript_id "NM_014731:uc002wia.1";
+chr20 hg19_knownGene exon 3146143 3147006 0.000000 - . gene_id "ProSAPiP1"; transcript_id "NM_014731:uc002wia.1";
+chr20 hg19_knownGene CDS 3147351 3147809 0.000000 - 0 gene_id "ProSAPiP1"; transcript_id "NM_014731:uc002wia.1";
+chr20 hg19_knownGene exon 3147351 3149207 0.000000 - . gene_id "ProSAPiP1"; transcript_id "NM_014731:uc002wia.1";
+chr20 hg19_knownGene CDS 3145103 3145798 0.000000 - 0 gene_id "ProSAPiP1"; transcript_id "BC038860:uc002wib.1";
+chr20 hg19_knownGene exon 3143273 3145798 0.000000 - . gene_id "ProSAPiP1"; transcript_id "BC038860:uc002wib.1";
+chr20 hg19_knownGene CDS 3146143 3146274 0.000000 - 0 gene_id "ProSAPiP1"; transcript_id "BC038860:uc002wib.1";
+chr20 hg19_knownGene exon 3146143 3146274 0.000000 - . gene_id "ProSAPiP1"; transcript_id "BC038860:uc002wib.1";
+chr20 hg19_knownGene CDS 3146413 3147006 0.000000 - 0 gene_id "ProSAPiP1"; transcript_id "BC038860:uc002wib.1";
+chr20 hg19_knownGene exon 3146413 3147006 0.000000 - . gene_id "ProSAPiP1"; transcript_id "BC038860:uc002wib.1";
+chr20 hg19_knownGene CDS 3147351 3147809 0.000000 - 0 gene_id "ProSAPiP1"; transcript_id "BC038860:uc002wib.1";
+chr20 hg19_knownGene exon 3147351 3147827 0.000000 - . gene_id "ProSAPiP1"; transcript_id "BC038860:uc002wib.1";
+chr20 hg19_knownGene exon 3148384 3148607 0.000000 - . gene_id "ProSAPiP1"; transcript_id "BC038860:uc002wib.1";
+chr20 hg19_knownGene exon 3154101 3154192 0.000000 - . gene_id "ProSAPiP1"; transcript_id "BC038860:uc002wib.1";
+chr20 hg19_knownGene CDS 3171302 3171465 0.000000 - 2 gene_id "DDRGK1"; transcript_id "NM_023935:uc002wic.3";
+chr20 hg19_knownGene exon 3171012 3171465 0.000000 - . gene_id "DDRGK1"; transcript_id "NM_023935:uc002wic.3";
+chr20 hg19_knownGene CDS 3171836 3171884 0.000000 - 0 gene_id "DDRGK1"; transcript_id "NM_023935:uc002wic.3";
+chr20 hg19_knownGene exon 3171836 3171884 0.000000 - . gene_id "DDRGK1"; transcript_id "NM_023935:uc002wic.3";
+chr20 hg19_knownGene CDS 3172411 3172467 0.000000 - 0 gene_id "DDRGK1"; transcript_id "NM_023935:uc002wic.3";
+chr20 hg19_knownGene exon 3172411 3172467 0.000000 - . gene_id "DDRGK1"; transcript_id "NM_023935:uc002wic.3";
+chr20 hg19_knownGene CDS 3175476 3175514 0.000000 - 0 gene_id "DDRGK1"; transcript_id "NM_023935:uc002wic.3";
+chr20 hg19_knownGene exon 3175476 3175514 0.000000 - . gene_id "DDRGK1"; transcript_id "NM_023935:uc002wic.3";
+chr20 hg19_knownGene CDS 3175877 3175999 0.000000 - 0 gene_id "DDRGK1"; transcript_id "NM_023935:uc002wic.3";
+chr20 hg19_knownGene exon 3175877 3175999 0.000000 - . gene_id "DDRGK1"; transcript_id "NM_023935:uc002wic.3";
+chr20 hg19_knownGene CDS 3180647 3180748 0.000000 - 0 gene_id "DDRGK1"; transcript_id "NM_023935:uc002wic.3";
+chr20 hg19_knownGene exon 3180647 3180748 0.000000 - . gene_id "DDRGK1"; transcript_id "NM_023935:uc002wic.3";
+chr20 hg19_knownGene CDS 3180988 3181100 0.000000 - 2 gene_id "DDRGK1"; transcript_id "NM_023935:uc002wic.3";
+chr20 hg19_knownGene exon 3180988 3181100 0.000000 - . gene_id "DDRGK1"; transcript_id "NM_023935:uc002wic.3";
+chr20 hg19_knownGene CDS 3183859 3184062 0.000000 - 2 gene_id "DDRGK1"; transcript_id "NM_023935:uc002wic.3";
+chr20 hg19_knownGene exon 3183859 3184062 0.000000 - . gene_id "DDRGK1"; transcript_id "NM_023935:uc002wic.3";
+chr20 hg19_knownGene CDS 3185183 3185273 0.000000 - 0 gene_id "DDRGK1"; transcript_id "NM_023935:uc002wic.3";
+chr20 hg19_knownGene exon 3185183 3185295 0.000000 - . gene_id "DDRGK1"; transcript_id "NM_023935:uc002wic.3";
+chr20 hg19_knownGene CDS 3175464 3175514 0.000000 - 0 gene_id "DDRGK1"; transcript_id "AK310809:uc010gax.1";
+chr20 hg19_knownGene exon 3174653 3175514 0.000000 - . gene_id "DDRGK1"; transcript_id "AK310809:uc010gax.1";
+chr20 hg19_knownGene CDS 3175877 3175999 0.000000 - 0 gene_id "DDRGK1"; transcript_id "AK310809:uc010gax.1";
+chr20 hg19_knownGene exon 3175877 3175999 0.000000 - . gene_id "DDRGK1"; transcript_id "AK310809:uc010gax.1";
+chr20 hg19_knownGene CDS 3180647 3180748 0.000000 - 0 gene_id "DDRGK1"; transcript_id "AK310809:uc010gax.1";
+chr20 hg19_knownGene exon 3180647 3180748 0.000000 - . gene_id "DDRGK1"; transcript_id "AK310809:uc010gax.1";
+chr20 hg19_knownGene CDS 3180988 3181100 0.000000 - 2 gene_id "DDRGK1"; transcript_id "AK310809:uc010gax.1";
+chr20 hg19_knownGene exon 3180988 3181100 0.000000 - . gene_id "DDRGK1"; transcript_id "AK310809:uc010gax.1";
+chr20 hg19_knownGene CDS 3183859 3184062 0.000000 - 2 gene_id "DDRGK1"; transcript_id "AK310809:uc010gax.1";
+chr20 hg19_knownGene exon 3183859 3184062 0.000000 - . gene_id "DDRGK1"; transcript_id "AK310809:uc010gax.1";
+chr20 hg19_knownGene CDS 3185183 3185273 0.000000 - 0 gene_id "DDRGK1"; transcript_id "AK310809:uc010gax.1";
+chr20 hg19_knownGene exon 3185183 3185295 0.000000 - . gene_id "DDRGK1"; transcript_id "AK310809:uc010gax.1";
+chr20 hg19_knownGene CDS 3190198 3190212 0.000000 + 0 gene_id "ITPA"; transcript_id "NM_181493:uc002wie.3";
+chr20 hg19_knownGene exon 3190056 3190212 0.000000 + . gene_id "ITPA"; transcript_id "NM_181493:uc002wie.3";
+chr20 hg19_knownGene CDS 3193815 3193872 0.000000 + 0 gene_id "ITPA"; transcript_id "NM_181493:uc002wie.3";
+chr20 hg19_knownGene exon 3193815 3193872 0.000000 + . gene_id "ITPA"; transcript_id "NM_181493:uc002wie.3";
+chr20 hg19_knownGene CDS 3193965 3194029 0.000000 + 2 gene_id "ITPA"; transcript_id "NM_181493:uc002wie.3";
+chr20 hg19_knownGene exon 3193965 3194029 0.000000 + . gene_id "ITPA"; transcript_id "NM_181493:uc002wie.3";
+chr20 hg19_knownGene CDS 3194631 3194704 0.000000 + 0 gene_id "ITPA"; transcript_id "NM_181493:uc002wie.3";
+chr20 hg19_knownGene exon 3194631 3194704 0.000000 + . gene_id "ITPA"; transcript_id "NM_181493:uc002wie.3";
+chr20 hg19_knownGene CDS 3195927 3195958 0.000000 + 1 gene_id "ITPA"; transcript_id "NM_181493:uc002wie.3";
+chr20 hg19_knownGene exon 3195927 3195958 0.000000 + . gene_id "ITPA"; transcript_id "NM_181493:uc002wie.3";
+chr20 hg19_knownGene CDS 3199163 3199278 0.000000 + 2 gene_id "ITPA"; transcript_id "NM_181493:uc002wie.3";
+chr20 hg19_knownGene exon 3199163 3199278 0.000000 + . gene_id "ITPA"; transcript_id "NM_181493:uc002wie.3";
+chr20 hg19_knownGene CDS 3202487 3202563 0.000000 + 0 gene_id "ITPA"; transcript_id "NM_181493:uc002wie.3";
+chr20 hg19_knownGene exon 3202487 3202563 0.000000 + . gene_id "ITPA"; transcript_id "NM_181493:uc002wie.3";
+chr20 hg19_knownGene CDS 3204012 3204105 0.000000 + 1 gene_id "ITPA"; transcript_id "NM_181493:uc002wie.3";
+chr20 hg19_knownGene exon 3204012 3204506 0.000000 + . gene_id "ITPA"; transcript_id "NM_181493:uc002wie.3";
+chr20 hg19_knownGene CDS 3190198 3190263 0.000000 + 0 gene_id "ITPA"; transcript_id "NM_033453:uc002wid.3";
+chr20 hg19_knownGene exon 3190056 3190263 0.000000 + . gene_id "ITPA"; transcript_id "NM_033453:uc002wid.3";
+chr20 hg19_knownGene CDS 3193815 3193872 0.000000 + 0 gene_id "ITPA"; transcript_id "NM_033453:uc002wid.3";
+chr20 hg19_knownGene exon 3193815 3193872 0.000000 + . gene_id "ITPA"; transcript_id "NM_033453:uc002wid.3";
+chr20 hg19_knownGene CDS 3193965 3194029 0.000000 + 2 gene_id "ITPA"; transcript_id "NM_033453:uc002wid.3";
+chr20 hg19_knownGene exon 3193965 3194029 0.000000 + . gene_id "ITPA"; transcript_id "NM_033453:uc002wid.3";
+chr20 hg19_knownGene CDS 3194631 3194704 0.000000 + 0 gene_id "ITPA"; transcript_id "NM_033453:uc002wid.3";
+chr20 hg19_knownGene exon 3194631 3194704 0.000000 + . gene_id "ITPA"; transcript_id "NM_033453:uc002wid.3";
+chr20 hg19_knownGene CDS 3195927 3195958 0.000000 + 1 gene_id "ITPA"; transcript_id "NM_033453:uc002wid.3";
+chr20 hg19_knownGene exon 3195927 3195958 0.000000 + . gene_id "ITPA"; transcript_id "NM_033453:uc002wid.3";
+chr20 hg19_knownGene CDS 3199163 3199278 0.000000 + 2 gene_id "ITPA"; transcript_id "NM_033453:uc002wid.3";
+chr20 hg19_knownGene exon 3199163 3199278 0.000000 + . gene_id "ITPA"; transcript_id "NM_033453:uc002wid.3";
+chr20 hg19_knownGene CDS 3202487 3202563 0.000000 + 0 gene_id "ITPA"; transcript_id "NM_033453:uc002wid.3";
+chr20 hg19_knownGene exon 3202487 3202563 0.000000 + . gene_id "ITPA"; transcript_id "NM_033453:uc002wid.3";
+chr20 hg19_knownGene CDS 3204012 3204105 0.000000 + 1 gene_id "ITPA"; transcript_id "NM_033453:uc002wid.3";
+chr20 hg19_knownGene exon 3204012 3204506 0.000000 + . gene_id "ITPA"; transcript_id "NM_033453:uc002wid.3";
+chr20 hg19_knownGene exon 3190135 3190181 0.000000 + . gene_id "ITPA"; transcript_id "AF334680:uc002wif.3";
+chr20 hg19_knownGene exon 3193904 3194029 0.000000 + . gene_id "ITPA"; transcript_id "AF334680:uc002wif.3";
+chr20 hg19_knownGene exon 3194631 3194704 0.000000 + . gene_id "ITPA"; transcript_id "AF334680:uc002wif.3";
+chr20 hg19_knownGene exon 3195927 3195958 0.000000 + . gene_id "ITPA"; transcript_id "AF334680:uc002wif.3";
+chr20 hg19_knownGene exon 3199163 3199278 0.000000 + . gene_id "ITPA"; transcript_id "AF334680:uc002wif.3";
+chr20 hg19_knownGene exon 3202487 3202563 0.000000 + . gene_id "ITPA"; transcript_id "AF334680:uc002wif.3";
+chr20 hg19_knownGene exon 3204012 3204506 0.000000 + . gene_id "ITPA"; transcript_id "AF334680:uc002wif.3";
+chr20 hg19_knownGene CDS 3208436 3208502 0.000000 - 1 gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene exon 3208063 3208502 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene CDS 3208905 3209074 0.000000 - 0 gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene exon 3208905 3209074 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene CDS 3209158 3209353 0.000000 - 1 gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene exon 3209158 3209353 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene CDS 3209484 3209657 0.000000 - 1 gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene exon 3209484 3209657 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene CDS 3209741 3209909 0.000000 - 2 gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene exon 3209741 3209909 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene CDS 3209992 3210098 0.000000 - 1 gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene exon 3209992 3210098 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene CDS 3210170 3210422 0.000000 - 2 gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene exon 3210170 3210422 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene CDS 3210833 3210906 0.000000 - 1 gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene exon 3210833 3210906 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene CDS 3211161 3211293 0.000000 - 2 gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene exon 3211161 3211293 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene CDS 3211378 3211491 0.000000 - 2 gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene exon 3211378 3211491 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene CDS 3211579 3211704 0.000000 - 2 gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene exon 3211579 3211704 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene CDS 3211795 3211888 0.000000 - 0 gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene exon 3211795 3211888 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene CDS 3211976 3212194 0.000000 - 0 gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene exon 3211976 3212194 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene CDS 3214160 3214283 0.000000 - 1 gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene exon 3214160 3214283 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene CDS 3214567 3214648 0.000000 - 2 gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene exon 3214567 3214648 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene CDS 3214729 3214960 0.000000 - 0 gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene exon 3214729 3214960 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene CDS 3215214 3215263 0.000000 - 2 gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene exon 3215214 3215263 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene CDS 3215388 3215540 0.000000 - 2 gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene exon 3215388 3215540 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene CDS 3218190 3218325 0.000000 - 0 gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene exon 3218190 3218373 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_032034:uc002wig.3";
+chr20 hg19_knownGene CDS 3208436 3208502 0.000000 - 1 gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene exon 3208063 3208502 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene CDS 3208905 3209074 0.000000 - 0 gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene exon 3208905 3209074 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene CDS 3209158 3209353 0.000000 - 1 gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene exon 3209158 3209353 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene CDS 3209484 3209657 0.000000 - 1 gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene exon 3209484 3209657 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene CDS 3209741 3209909 0.000000 - 2 gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene exon 3209741 3209909 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene CDS 3209992 3210098 0.000000 - 1 gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene exon 3209992 3210098 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene CDS 3210170 3210422 0.000000 - 2 gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene exon 3210170 3210422 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene CDS 3210833 3210906 0.000000 - 1 gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene exon 3210833 3210906 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene CDS 3211161 3211293 0.000000 - 2 gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene exon 3211161 3211293 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene CDS 3211378 3211491 0.000000 - 2 gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene exon 3211378 3211491 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene CDS 3211579 3211704 0.000000 - 2 gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene exon 3211579 3211704 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene CDS 3211795 3211888 0.000000 - 0 gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene exon 3211795 3211888 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene CDS 3211976 3212194 0.000000 - 0 gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene exon 3211976 3212194 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene CDS 3214160 3214283 0.000000 - 1 gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene exon 3214160 3214283 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene CDS 3214567 3214648 0.000000 - 2 gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene exon 3214567 3214648 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene CDS 3214729 3214960 0.000000 - 0 gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene exon 3214729 3214960 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene CDS 3215214 3215263 0.000000 - 2 gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene exon 3215214 3215263 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene CDS 3215388 3215540 0.000000 - 2 gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene exon 3215388 3215540 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene CDS 3218190 3218234 0.000000 - 2 gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene exon 3218190 3218234 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene CDS 3218539 3218710 0.000000 - 0 gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene exon 3218539 3218835 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174090:uc010zqe.2";
+chr20 hg19_knownGene exon 3208063 3208502 0.000000 - . gene_id "SLC4A11"; transcript_id "AX746815:uc002wih.3";
+chr20 hg19_knownGene exon 3208905 3209074 0.000000 - . gene_id "SLC4A11"; transcript_id "AX746815:uc002wih.3";
+chr20 hg19_knownGene exon 3209158 3209353 0.000000 - . gene_id "SLC4A11"; transcript_id "AX746815:uc002wih.3";
+chr20 hg19_knownGene exon 3209484 3209657 0.000000 - . gene_id "SLC4A11"; transcript_id "AX746815:uc002wih.3";
+chr20 hg19_knownGene exon 3209741 3209909 0.000000 - . gene_id "SLC4A11"; transcript_id "AX746815:uc002wih.3";
+chr20 hg19_knownGene exon 3209992 3210098 0.000000 - . gene_id "SLC4A11"; transcript_id "AX746815:uc002wih.3";
+chr20 hg19_knownGene exon 3210170 3210352 0.000000 - . gene_id "SLC4A11"; transcript_id "AX746815:uc002wih.3";
+chr20 hg19_knownGene exon 3210833 3210906 0.000000 - . gene_id "SLC4A11"; transcript_id "AX746815:uc002wih.3";
+chr20 hg19_knownGene exon 3211161 3211293 0.000000 - . gene_id "SLC4A11"; transcript_id "AX746815:uc002wih.3";
+chr20 hg19_knownGene exon 3211378 3211491 0.000000 - . gene_id "SLC4A11"; transcript_id "AX746815:uc002wih.3";
+chr20 hg19_knownGene exon 3211579 3211704 0.000000 - . gene_id "SLC4A11"; transcript_id "AX746815:uc002wih.3";
+chr20 hg19_knownGene exon 3211795 3211888 0.000000 - . gene_id "SLC4A11"; transcript_id "AX746815:uc002wih.3";
+chr20 hg19_knownGene exon 3211976 3212194 0.000000 - . gene_id "SLC4A11"; transcript_id "AX746815:uc002wih.3";
+chr20 hg19_knownGene exon 3214160 3214283 0.000000 - . gene_id "SLC4A11"; transcript_id "AX746815:uc002wih.3";
+chr20 hg19_knownGene exon 3214567 3214648 0.000000 - . gene_id "SLC4A11"; transcript_id "AX746815:uc002wih.3";
+chr20 hg19_knownGene exon 3214729 3214960 0.000000 - . gene_id "SLC4A11"; transcript_id "AX746815:uc002wih.3";
+chr20 hg19_knownGene exon 3215214 3215263 0.000000 - . gene_id "SLC4A11"; transcript_id "AX746815:uc002wih.3";
+chr20 hg19_knownGene exon 3215388 3215540 0.000000 - . gene_id "SLC4A11"; transcript_id "AX746815:uc002wih.3";
+chr20 hg19_knownGene exon 3218190 3218234 0.000000 - . gene_id "SLC4A11"; transcript_id "AX746815:uc002wih.3";
+chr20 hg19_knownGene exon 3219626 3219836 0.000000 - . gene_id "SLC4A11"; transcript_id "AX746815:uc002wih.3";
+chr20 hg19_knownGene CDS 3208436 3208502 0.000000 - 1 gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene exon 3208063 3208502 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene CDS 3208905 3209074 0.000000 - 0 gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene exon 3208905 3209074 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene CDS 3209158 3209353 0.000000 - 1 gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene exon 3209158 3209353 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene CDS 3209484 3209657 0.000000 - 1 gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene exon 3209484 3209657 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene CDS 3209741 3209909 0.000000 - 2 gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene exon 3209741 3209909 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene CDS 3209992 3210098 0.000000 - 1 gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene exon 3209992 3210098 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene CDS 3210170 3210422 0.000000 - 2 gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene exon 3210170 3210422 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene CDS 3210833 3210906 0.000000 - 1 gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene exon 3210833 3210906 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene CDS 3211161 3211293 0.000000 - 2 gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene exon 3211161 3211293 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene CDS 3211378 3211491 0.000000 - 2 gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene exon 3211378 3211491 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene CDS 3211579 3211704 0.000000 - 2 gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene exon 3211579 3211704 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene CDS 3211795 3211888 0.000000 - 0 gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene exon 3211795 3211888 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene CDS 3211976 3212194 0.000000 - 0 gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene exon 3211976 3212194 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene CDS 3214160 3214283 0.000000 - 1 gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene exon 3214160 3214283 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene CDS 3214567 3214648 0.000000 - 2 gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene exon 3214567 3214648 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene CDS 3214729 3214960 0.000000 - 0 gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene exon 3214729 3214960 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene CDS 3215214 3215263 0.000000 - 2 gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene exon 3215214 3215263 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene CDS 3215388 3215540 0.000000 - 2 gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene exon 3215388 3215540 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene CDS 3218190 3218234 0.000000 - 2 gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene exon 3218190 3218234 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene CDS 3219741 3219783 0.000000 - 0 gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene exon 3219741 3219887 0.000000 - . gene_id "SLC4A11"; transcript_id "NM_001174089:uc010zqf.2";
+chr20 hg19_knownGene CDS 3233221 3233330 0.000000 - 2 gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene exon 3229948 3233330 0.000000 - . gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene CDS 3234372 3234465 0.000000 - 0 gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene exon 3234372 3234465 0.000000 - . gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene CDS 3235865 3235930 0.000000 - 0 gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene exon 3235865 3235930 0.000000 - . gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene CDS 3236652 3236857 0.000000 - 2 gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene exon 3236652 3236857 0.000000 - . gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene CDS 3240126 3240200 0.000000 - 2 gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene exon 3240126 3240200 0.000000 - . gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene CDS 3240568 3240674 0.000000 - 1 gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene exon 3240568 3240674 0.000000 - . gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene CDS 3245084 3245170 0.000000 - 1 gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene exon 3245084 3245170 0.000000 - . gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene CDS 3251073 3251208 0.000000 - 2 gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene exon 3251073 3251208 0.000000 - . gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene CDS 3259558 3259595 0.000000 - 1 gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene exon 3259558 3259595 0.000000 - . gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene CDS 3262287 3262412 0.000000 - 1 gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene exon 3262287 3262412 0.000000 - . gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene CDS 3268278 3268436 0.000000 - 1 gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene exon 3268278 3268436 0.000000 - . gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene CDS 3270775 3270863 0.000000 - 0 gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene exon 3270775 3270863 0.000000 - . gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene CDS 3274785 3274902 0.000000 - 1 gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene exon 3274785 3274902 0.000000 - . gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene CDS 3275174 3275275 0.000000 - 1 gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene exon 3275174 3275275 0.000000 - . gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene CDS 3277508 3277596 0.000000 - 0 gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene exon 3277508 3277596 0.000000 - . gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene CDS 3278676 3278822 0.000000 - 0 gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene exon 3278676 3278822 0.000000 - . gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene CDS 3285087 3285190 0.000000 - 2 gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene exon 3285087 3285190 0.000000 - . gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene CDS 3295680 3295767 0.000000 - 0 gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene exon 3295680 3295767 0.000000 - . gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene CDS 3296382 3296432 0.000000 - 0 gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene exon 3296382 3296432 0.000000 - . gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene CDS 3297370 3297440 0.000000 - 2 gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene exon 3297370 3297440 0.000000 - . gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene CDS 3298936 3299047 0.000000 - 0 gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene exon 3298936 3299047 0.000000 - . gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene CDS 3302864 3302909 0.000000 - 1 gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene exon 3302864 3302909 0.000000 - . gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene CDS 3303299 3303343 0.000000 - 1 gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene exon 3303299 3303343 0.000000 - . gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene CDS 3305539 3305615 0.000000 - 0 gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene exon 3305539 3305615 0.000000 - . gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene CDS 3306844 3306931 0.000000 - 1 gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene exon 3306844 3306931 0.000000 - . gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene CDS 3311293 3311329 0.000000 - 2 gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene exon 3311293 3311329 0.000000 - . gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene CDS 3312927 3313008 0.000000 - 0 gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene exon 3312927 3313008 0.000000 - . gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene CDS 3321151 3321348 0.000000 - 0 gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene exon 3321151 3321608 0.000000 - . gene_id "C20orf194"; transcript_id "BC122529:uc002wij.3";
+chr20 hg19_knownGene exon 3340683 3340789 0.000000 + . gene_id "U6"; transcript_id ":uc021vzy.1";
+chr20 hg19_knownGene CDS 3233221 3233330 0.000000 - 2 gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene exon 3229948 3233330 0.000000 - . gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene CDS 3234372 3234465 0.000000 - 0 gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene exon 3234372 3234465 0.000000 - . gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene CDS 3235865 3235930 0.000000 - 0 gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene exon 3235865 3235930 0.000000 - . gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene CDS 3236652 3236857 0.000000 - 2 gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene exon 3236652 3236857 0.000000 - . gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene CDS 3240126 3240200 0.000000 - 2 gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene exon 3240126 3240200 0.000000 - . gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene CDS 3240568 3240674 0.000000 - 1 gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene exon 3240568 3240674 0.000000 - . gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene CDS 3245084 3245170 0.000000 - 1 gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene exon 3245084 3245170 0.000000 - . gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene CDS 3251073 3251208 0.000000 - 2 gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene exon 3251073 3251208 0.000000 - . gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene CDS 3259558 3259595 0.000000 - 1 gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene exon 3259558 3259595 0.000000 - . gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene CDS 3262287 3262412 0.000000 - 1 gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene exon 3262287 3262412 0.000000 - . gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene CDS 3268278 3268436 0.000000 - 1 gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene exon 3268278 3268436 0.000000 - . gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene CDS 3270775 3270863 0.000000 - 0 gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene exon 3270775 3270863 0.000000 - . gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene CDS 3274785 3274902 0.000000 - 1 gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene exon 3274785 3274902 0.000000 - . gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene CDS 3275174 3275275 0.000000 - 1 gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene exon 3275174 3275275 0.000000 - . gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene CDS 3277508 3277596 0.000000 - 0 gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene exon 3277508 3277596 0.000000 - . gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene CDS 3278676 3278822 0.000000 - 0 gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene exon 3278676 3278822 0.000000 - . gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene CDS 3285087 3285190 0.000000 - 2 gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene exon 3285087 3285190 0.000000 - . gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene CDS 3295680 3295767 0.000000 - 0 gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene exon 3295680 3295767 0.000000 - . gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene CDS 3296382 3296432 0.000000 - 0 gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene exon 3296382 3296432 0.000000 - . gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene CDS 3297370 3297440 0.000000 - 2 gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene exon 3297370 3297440 0.000000 - . gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene CDS 3298936 3299047 0.000000 - 0 gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene exon 3298936 3299047 0.000000 - . gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene CDS 3302864 3302909 0.000000 - 1 gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene exon 3302864 3302909 0.000000 - . gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene CDS 3303299 3303343 0.000000 - 1 gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene exon 3303299 3303343 0.000000 - . gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene CDS 3305539 3305615 0.000000 - 0 gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene exon 3305539 3305615 0.000000 - . gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene CDS 3306844 3306931 0.000000 - 1 gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene exon 3306844 3306931 0.000000 - . gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene CDS 3311293 3311329 0.000000 - 2 gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene exon 3311293 3311329 0.000000 - . gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene CDS 3312927 3313008 0.000000 - 0 gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene exon 3312927 3313008 0.000000 - . gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene CDS 3321151 3321153 0.000000 - 0 gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene exon 3321151 3321286 0.000000 - . gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene exon 3329172 3329270 0.000000 - . gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene exon 3340163 3340240 0.000000 - . gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene exon 3354695 3354801 0.000000 - . gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene exon 3355677 3355773 0.000000 - . gene_id "C20orf194"; transcript_id "AK226100:uc002wik.2";
+chr20 hg19_knownGene CDS 3233221 3233330 0.000000 - 2 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3229948 3233330 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3234372 3234465 0.000000 - 0 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3234372 3234465 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3235865 3235930 0.000000 - 0 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3235865 3235930 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3236652 3236857 0.000000 - 2 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3236652 3236857 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3240126 3240200 0.000000 - 2 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3240126 3240200 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3240568 3240674 0.000000 - 1 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3240568 3240674 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3245084 3245170 0.000000 - 1 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3245084 3245170 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3251073 3251208 0.000000 - 2 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3251073 3251208 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3259558 3259595 0.000000 - 1 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3259558 3259595 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3262287 3262412 0.000000 - 1 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3262287 3262412 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3268278 3268436 0.000000 - 1 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3268278 3268436 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3270775 3270863 0.000000 - 0 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3270775 3270863 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3274785 3274902 0.000000 - 1 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3274785 3274902 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3275174 3275275 0.000000 - 1 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3275174 3275275 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3277508 3277596 0.000000 - 0 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3277508 3277596 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3278676 3278822 0.000000 - 0 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3278676 3278822 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3285087 3285190 0.000000 - 2 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3285087 3285190 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3295680 3295767 0.000000 - 0 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3295680 3295767 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3296382 3296432 0.000000 - 0 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3296382 3296432 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3297370 3297440 0.000000 - 2 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3297370 3297440 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3298936 3299047 0.000000 - 0 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3298936 3299047 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3302864 3302909 0.000000 - 1 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3302864 3302909 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3303299 3303343 0.000000 - 1 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3303299 3303343 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3305539 3305615 0.000000 - 0 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3305539 3305615 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3306844 3306931 0.000000 - 1 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3306844 3306931 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3311293 3311329 0.000000 - 2 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3311293 3311329 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3312927 3313008 0.000000 - 0 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3312927 3313008 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3321151 3321286 0.000000 - 1 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3321151 3321286 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3324323 3324378 0.000000 - 0 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3324323 3324378 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3329172 3329270 0.000000 - 0 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3329172 3329270 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3340163 3340240 0.000000 - 0 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3340163 3340240 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3354695 3354801 0.000000 - 2 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3354695 3354801 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3355677 3355773 0.000000 - 0 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3355677 3355773 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3356825 3356949 0.000000 - 2 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3356825 3356949 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3362026 3362145 0.000000 - 2 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3362026 3362145 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3363074 3363153 0.000000 - 1 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3363074 3363153 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene CDS 3388122 3388204 0.000000 - 0 gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3388122 3388255 0.000000 - . gene_id "C20orf194"; transcript_id "NM_001009984:uc002wii.2";
+chr20 hg19_knownGene exon 3303299 3303343 0.000000 - . gene_id "C20orf194"; transcript_id "AK310540:uc010gay.1";
+chr20 hg19_knownGene exon 3305539 3305615 0.000000 - . gene_id "C20orf194"; transcript_id "AK310540:uc010gay.1";
+chr20 hg19_knownGene exon 3306231 3306406 0.000000 - . gene_id "C20orf194"; transcript_id "AK310540:uc010gay.1";
+chr20 hg19_knownGene exon 3306844 3306931 0.000000 - . gene_id "C20orf194"; transcript_id "AK310540:uc010gay.1";
+chr20 hg19_knownGene exon 3311293 3311329 0.000000 - . gene_id "C20orf194"; transcript_id "AK310540:uc010gay.1";
+chr20 hg19_knownGene exon 3312927 3313008 0.000000 - . gene_id "C20orf194"; transcript_id "AK310540:uc010gay.1";
+chr20 hg19_knownGene exon 3321151 3321286 0.000000 - . gene_id "C20orf194"; transcript_id "AK310540:uc010gay.1";
+chr20 hg19_knownGene exon 3324323 3324378 0.000000 - . gene_id "C20orf194"; transcript_id "AK310540:uc010gay.1";
+chr20 hg19_knownGene exon 3329172 3329270 0.000000 - . gene_id "C20orf194"; transcript_id "AK310540:uc010gay.1";
+chr20 hg19_knownGene exon 3340163 3340240 0.000000 - . gene_id "C20orf194"; transcript_id "AK310540:uc010gay.1";
+chr20 hg19_knownGene exon 3354695 3354801 0.000000 - . gene_id "C20orf194"; transcript_id "AK310540:uc010gay.1";
+chr20 hg19_knownGene exon 3355677 3355773 0.000000 - . gene_id "C20orf194"; transcript_id "AK310540:uc010gay.1";
+chr20 hg19_knownGene exon 3356825 3356949 0.000000 - . gene_id "C20orf194"; transcript_id "AK310540:uc010gay.1";
+chr20 hg19_knownGene exon 3362026 3362145 0.000000 - . gene_id "C20orf194"; transcript_id "AK310540:uc010gay.1";
+chr20 hg19_knownGene exon 3363074 3363153 0.000000 - . gene_id "C20orf194"; transcript_id "AK310540:uc010gay.1";
+chr20 hg19_knownGene exon 3388382 3388587 0.000000 - . gene_id "C20orf194"; transcript_id "AK310540:uc010gay.1";
+chr20 hg19_knownGene CDS 3451755 3452164 0.000000 + 0 gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene exon 3451665 3452164 0.000000 + . gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene CDS 3515900 3515983 0.000000 + 1 gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene exon 3515900 3515983 0.000000 + . gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene CDS 3520869 3520982 0.000000 + 1 gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene exon 3520869 3520982 0.000000 + . gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene CDS 3526409 3526537 0.000000 + 1 gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene exon 3526409 3526537 0.000000 + . gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene CDS 3527931 3528136 0.000000 + 1 gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene exon 3527931 3528136 0.000000 + . gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene CDS 3529817 3529985 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene exon 3529817 3529985 0.000000 + . gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene CDS 3540040 3540130 0.000000 + 1 gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene exon 3540040 3540130 0.000000 + . gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene CDS 3541309 3541552 0.000000 + 0 gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene exon 3541309 3541552 0.000000 + . gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene CDS 3542923 3543106 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene exon 3542923 3543106 0.000000 + . gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene CDS 3543856 3544010 0.000000 + 1 gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene exon 3543856 3544010 0.000000 + . gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene CDS 3545995 3546079 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene exon 3545995 3546079 0.000000 + . gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene CDS 3553378 3553598 0.000000 + 1 gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene exon 3553378 3553598 0.000000 + . gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene CDS 3556474 3556595 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene exon 3556474 3556595 0.000000 + . gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene CDS 3557506 3557644 0.000000 + 0 gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene exon 3557506 3557644 0.000000 + . gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene CDS 3559229 3559419 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene exon 3559229 3559419 0.000000 + . gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene CDS 3562782 3563001 0.000000 + 0 gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene exon 3562782 3563001 0.000000 + . gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene CDS 3564545 3564730 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene exon 3564545 3564730 0.000000 + . gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene CDS 3565294 3565527 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene exon 3565294 3565527 0.000000 + . gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene CDS 3571816 3571953 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene exon 3571816 3571953 0.000000 + . gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene CDS 3575126 3575219 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene exon 3575126 3575219 0.000000 + . gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene CDS 3577024 3577076 0.000000 + 1 gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene exon 3577024 3577076 0.000000 + . gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene CDS 3578553 3578647 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene exon 3578553 3578647 0.000000 + . gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene CDS 3581593 3581671 0.000000 + 0 gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene exon 3581593 3581671 0.000000 + . gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene CDS 3584752 3584909 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene exon 3584752 3584909 0.000000 + . gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene CDS 3596475 3596489 0.000000 + 0 gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene exon 3596475 3596550 0.000000 + . gene_id "ATRN"; transcript_id "NM_139322:uc002wil.2";
+chr20 hg19_knownGene CDS 3451720 3451781 0.000000 + 0 gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene exon 3451665 3451781 0.000000 + . gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene CDS 3515900 3515983 0.000000 + 1 gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene exon 3515900 3515983 0.000000 + . gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene CDS 3520869 3520982 0.000000 + 1 gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene exon 3520869 3520982 0.000000 + . gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene CDS 3526409 3526537 0.000000 + 1 gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene exon 3526409 3526537 0.000000 + . gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene CDS 3527931 3528136 0.000000 + 1 gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene exon 3527931 3528136 0.000000 + . gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene CDS 3529817 3529985 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene exon 3529817 3529985 0.000000 + . gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene CDS 3540040 3540130 0.000000 + 1 gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene exon 3540040 3540130 0.000000 + . gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene CDS 3541309 3541552 0.000000 + 0 gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene exon 3541309 3541552 0.000000 + . gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene CDS 3542923 3543106 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene exon 3542923 3543106 0.000000 + . gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene CDS 3543856 3544010 0.000000 + 1 gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene exon 3543856 3544010 0.000000 + . gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene CDS 3545995 3546079 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene exon 3545995 3546079 0.000000 + . gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene CDS 3553378 3553598 0.000000 + 1 gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene exon 3553378 3553598 0.000000 + . gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene CDS 3556474 3556595 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene exon 3556474 3556595 0.000000 + . gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene CDS 3557506 3557644 0.000000 + 0 gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene exon 3557506 3557644 0.000000 + . gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene CDS 3559229 3559419 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene exon 3559229 3559419 0.000000 + . gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene CDS 3562782 3563001 0.000000 + 0 gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene exon 3562782 3563001 0.000000 + . gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene CDS 3564545 3564730 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene exon 3564545 3564730 0.000000 + . gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene CDS 3565294 3565527 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene exon 3565294 3565527 0.000000 + . gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene CDS 3571816 3571953 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene exon 3571816 3571953 0.000000 + . gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene CDS 3575126 3575219 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene exon 3575126 3575219 0.000000 + . gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene CDS 3577024 3577076 0.000000 + 1 gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene exon 3577024 3577076 0.000000 + . gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene CDS 3578553 3578647 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene exon 3578553 3578647 0.000000 + . gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene CDS 3581593 3581671 0.000000 + 0 gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene exon 3581593 3581671 0.000000 + . gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene CDS 3584752 3584909 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene exon 3584752 3584909 0.000000 + . gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene CDS 3596475 3596489 0.000000 + 0 gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene exon 3596475 3596550 0.000000 + . gene_id "ATRN"; transcript_id "NM_001207047:uc021vzz.1";
+chr20 hg19_knownGene CDS 3451755 3452164 0.000000 + 0 gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene exon 3451665 3452164 0.000000 + . gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene CDS 3515900 3515983 0.000000 + 1 gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene exon 3515900 3515983 0.000000 + . gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene CDS 3520869 3520982 0.000000 + 1 gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene exon 3520869 3520982 0.000000 + . gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene CDS 3526409 3526537 0.000000 + 1 gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene exon 3526409 3526537 0.000000 + . gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene CDS 3527931 3528136 0.000000 + 1 gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene exon 3527931 3528136 0.000000 + . gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene CDS 3529817 3529985 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene exon 3529817 3529985 0.000000 + . gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene CDS 3540040 3540130 0.000000 + 1 gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene exon 3540040 3540130 0.000000 + . gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene CDS 3541309 3541552 0.000000 + 0 gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene exon 3541309 3541552 0.000000 + . gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene CDS 3542923 3543106 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene exon 3542923 3543106 0.000000 + . gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene CDS 3543856 3544010 0.000000 + 1 gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene exon 3543856 3544010 0.000000 + . gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene CDS 3545995 3546079 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene exon 3545995 3546079 0.000000 + . gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene CDS 3553378 3553598 0.000000 + 1 gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene exon 3553378 3553598 0.000000 + . gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene CDS 3556474 3556595 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene exon 3556474 3556595 0.000000 + . gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene CDS 3557506 3557644 0.000000 + 0 gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene exon 3557506 3557644 0.000000 + . gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene CDS 3559229 3559419 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene exon 3559229 3559419 0.000000 + . gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene CDS 3562782 3563001 0.000000 + 0 gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene exon 3562782 3563001 0.000000 + . gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene CDS 3564545 3564730 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene exon 3564545 3564730 0.000000 + . gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene CDS 3565294 3565527 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene exon 3565294 3565527 0.000000 + . gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene CDS 3571816 3571953 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene exon 3571816 3571953 0.000000 + . gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene CDS 3575126 3575219 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene exon 3575126 3575219 0.000000 + . gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene CDS 3577024 3577076 0.000000 + 1 gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene exon 3577024 3577076 0.000000 + . gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene CDS 3578553 3578647 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene exon 3578553 3578647 0.000000 + . gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene CDS 3581593 3581671 0.000000 + 0 gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene exon 3581593 3581671 0.000000 + . gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene CDS 3584752 3584909 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene exon 3584752 3584909 0.000000 + . gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene CDS 3605158 3605219 0.000000 + 0 gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene exon 3605158 3605219 0.000000 + . gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene CDS 3614958 3615036 0.000000 + 1 gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene exon 3614958 3615036 0.000000 + . gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene CDS 3619475 3619582 0.000000 + 0 gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene exon 3619475 3619582 0.000000 + . gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene CDS 3624801 3624915 0.000000 + 0 gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene exon 3624801 3624915 0.000000 + . gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene CDS 3627370 3627491 0.000000 + 2 gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene exon 3627370 3631769 0.000000 + . gene_id "ATRN"; transcript_id "NM_139321:uc002wim.2";
+chr20 hg19_knownGene CDS 3640559 3640636 0.000000 - 0 gene_id "GFRA4"; transcript_id "NM_022139:uc002win.3";
+chr20 hg19_knownGene exon 3639939 3640636 0.000000 - . gene_id "GFRA4"; transcript_id "NM_022139:uc002win.3";
+chr20 hg19_knownGene CDS 3640805 3640896 0.000000 - 2 gene_id "GFRA4"; transcript_id "NM_022139:uc002win.3";
+chr20 hg19_knownGene exon 3640805 3640896 0.000000 - . gene_id "GFRA4"; transcript_id "NM_022139:uc002win.3";
+chr20 hg19_knownGene CDS 3641173 3641307 0.000000 - 2 gene_id "GFRA4"; transcript_id "NM_022139:uc002win.3";
+chr20 hg19_knownGene exon 3641173 3641307 0.000000 - . gene_id "GFRA4"; transcript_id "NM_022139:uc002win.3";
+chr20 hg19_knownGene CDS 3641402 3641511 0.000000 - 1 gene_id "GFRA4"; transcript_id "NM_022139:uc002win.3";
+chr20 hg19_knownGene exon 3641402 3641511 0.000000 - . gene_id "GFRA4"; transcript_id "NM_022139:uc002win.3";
+chr20 hg19_knownGene CDS 3641591 3641936 0.000000 - 2 gene_id "GFRA4"; transcript_id "NM_022139:uc002win.3";
+chr20 hg19_knownGene exon 3641591 3641936 0.000000 - . gene_id "GFRA4"; transcript_id "NM_022139:uc002win.3";
+chr20 hg19_knownGene CDS 3644001 3644046 0.000000 - 0 gene_id "GFRA4"; transcript_id "NM_022139:uc002win.3";
+chr20 hg19_knownGene exon 3644001 3644046 0.000000 - . gene_id "GFRA4"; transcript_id "NM_022139:uc002win.3";
+chr20 hg19_knownGene CDS 3640559 3640636 0.000000 - 0 gene_id "GFRA4"; transcript_id "NM_145762:uc002wio.3";
+chr20 hg19_knownGene exon 3639939 3640636 0.000000 - . gene_id "GFRA4"; transcript_id "NM_145762:uc002wio.3";
+chr20 hg19_knownGene CDS 3640805 3640896 0.000000 - 2 gene_id "GFRA4"; transcript_id "NM_145762:uc002wio.3";
+chr20 hg19_knownGene exon 3640805 3640896 0.000000 - . gene_id "GFRA4"; transcript_id "NM_145762:uc002wio.3";
+chr20 hg19_knownGene CDS 3641173 3641318 0.000000 - 1 gene_id "GFRA4"; transcript_id "NM_145762:uc002wio.3";
+chr20 hg19_knownGene exon 3641173 3641318 0.000000 - . gene_id "GFRA4"; transcript_id "NM_145762:uc002wio.3";
+chr20 hg19_knownGene CDS 3641402 3641936 0.000000 - 2 gene_id "GFRA4"; transcript_id "NM_145762:uc002wio.3";
+chr20 hg19_knownGene exon 3641402 3641936 0.000000 - . gene_id "GFRA4"; transcript_id "NM_145762:uc002wio.3";
+chr20 hg19_knownGene CDS 3644001 3644046 0.000000 - 0 gene_id "GFRA4"; transcript_id "NM_145762:uc002wio.3";
+chr20 hg19_knownGene exon 3644001 3644046 0.000000 - . gene_id "GFRA4"; transcript_id "NM_145762:uc002wio.3";
+chr20 hg19_knownGene CDS 3641275 3641318 0.000000 - 2 gene_id "GFRA4"; transcript_id "AJ291675:uc002wip.1";
+chr20 hg19_knownGene exon 3641173 3641318 0.000000 - . gene_id "GFRA4"; transcript_id "AJ291675:uc002wip.1";
+chr20 hg19_knownGene CDS 3641402 3641511 0.000000 - 1 gene_id "GFRA4"; transcript_id "AJ291675:uc002wip.1";
+chr20 hg19_knownGene exon 3641402 3641511 0.000000 - . gene_id "GFRA4"; transcript_id "AJ291675:uc002wip.1";
+chr20 hg19_knownGene CDS 3641591 3641936 0.000000 - 2 gene_id "GFRA4"; transcript_id "AJ291675:uc002wip.1";
+chr20 hg19_knownGene exon 3641591 3641936 0.000000 - . gene_id "GFRA4"; transcript_id "AJ291675:uc002wip.1";
+chr20 hg19_knownGene CDS 3644001 3644046 0.000000 - 0 gene_id "GFRA4"; transcript_id "AJ291675:uc002wip.1";
+chr20 hg19_knownGene exon 3644001 3644046 0.000000 - . gene_id "GFRA4"; transcript_id "AJ291675:uc002wip.1";
+chr20 hg19_knownGene CDS 3649613 3649644 0.000000 - 2 gene_id "ADAM33"; transcript_id "AK095953:uc002wiq.1";
+chr20 hg19_knownGene exon 3648618 3649644 0.000000 - . gene_id "ADAM33"; transcript_id "AK095953:uc002wiq.1";
+chr20 hg19_knownGene CDS 3649946 3650017 0.000000 - 2 gene_id "ADAM33"; transcript_id "AK095953:uc002wiq.1";
+chr20 hg19_knownGene exon 3649946 3650017 0.000000 - . gene_id "ADAM33"; transcript_id "AK095953:uc002wiq.1";
+chr20 hg19_knownGene CDS 3650193 3650406 0.000000 - 0 gene_id "ADAM33"; transcript_id "AK095953:uc002wiq.1";
+chr20 hg19_knownGene exon 3650193 3650540 0.000000 - . gene_id "ADAM33"; transcript_id "AK095953:uc002wiq.1";
+chr20 hg19_knownGene exon 3650542 3651272 0.000000 - . gene_id "AX748440"; transcript_id "AX748440:uc002wiv.1";
+chr20 hg19_knownGene CDS 3649613 3649647 0.000000 - 2 gene_id "ADAM33"; transcript_id "AL117415:uc002wis.3";
+chr20 hg19_knownGene exon 3648620 3649647 0.000000 - . gene_id "ADAM33"; transcript_id "AL117415:uc002wis.3";
+chr20 hg19_knownGene CDS 3649946 3650017 0.000000 - 2 gene_id "ADAM33"; transcript_id "AL117415:uc002wis.3";
+chr20 hg19_knownGene exon 3649946 3650017 0.000000 - . gene_id "ADAM33"; transcript_id "AL117415:uc002wis.3";
+chr20 hg19_knownGene CDS 3650193 3650284 0.000000 - 1 gene_id "ADAM33"; transcript_id "AL117415:uc002wis.3";
+chr20 hg19_knownGene exon 3650193 3650284 0.000000 - . gene_id "ADAM33"; transcript_id "AL117415:uc002wis.3";
+chr20 hg19_knownGene CDS 3651653 3651800 0.000000 - 2 gene_id "ADAM33"; transcript_id "AL117415:uc002wis.3";
+chr20 hg19_knownGene exon 3651653 3651800 0.000000 - . gene_id "ADAM33"; transcript_id "AL117415:uc002wis.3";
+chr20 hg19_knownGene CDS 3651884 3651992 0.000000 - 0 gene_id "ADAM33"; transcript_id "AL117415:uc002wis.3";
+chr20 hg19_knownGene exon 3651884 3651992 0.000000 - . gene_id "ADAM33"; transcript_id "AL117415:uc002wis.3";
+chr20 hg19_knownGene CDS 3652228 3652426 0.000000 - 1 gene_id "ADAM33"; transcript_id "AL117415:uc002wis.3";
+chr20 hg19_knownGene exon 3652228 3652426 0.000000 - . gene_id "ADAM33"; transcript_id "AL117415:uc002wis.3";
+chr20 hg19_knownGene CDS 3652524 3652632 0.000000 - 2 gene_id "ADAM33"; transcript_id "AL117415:uc002wis.3";
+chr20 hg19_knownGene exon 3652524 3652632 0.000000 - . gene_id "ADAM33"; transcript_id "AL117415:uc002wis.3";
+chr20 hg19_knownGene CDS 3652781 3652943 0.000000 - 0 gene_id "ADAM33"; transcript_id "AL117415:uc002wis.3";
+chr20 hg19_knownGene exon 3652781 3652976 0.000000 - . gene_id "ADAM33"; transcript_id "AL117415:uc002wis.3";
+chr20 hg19_knownGene exon 3653184 3653273 0.000000 - . gene_id "ADAM33"; transcript_id "AL117415:uc002wis.3";
+chr20 hg19_knownGene exon 3653368 3654143 0.000000 - . gene_id "ADAM33"; transcript_id "AL117415:uc002wis.3";
+chr20 hg19_knownGene exon 3654221 3654394 0.000000 - . gene_id "ADAM33"; transcript_id "AL117415:uc002wis.3";
+chr20 hg19_knownGene CDS 3649613 3649644 0.000000 - 2 gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene exon 3648618 3649644 0.000000 - . gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene CDS 3649946 3650017 0.000000 - 2 gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene exon 3649946 3650017 0.000000 - . gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene CDS 3650193 3650284 0.000000 - 1 gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene exon 3650193 3650284 0.000000 - . gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene CDS 3651653 3651800 0.000000 - 2 gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene exon 3651653 3651800 0.000000 - . gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene CDS 3651884 3651992 0.000000 - 0 gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene exon 3651884 3651992 0.000000 - . gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene CDS 3652066 3652143 0.000000 - 0 gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene exon 3652066 3652143 0.000000 - . gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene CDS 3652228 3652426 0.000000 - 1 gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene exon 3652228 3652426 0.000000 - . gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene CDS 3652524 3652632 0.000000 - 2 gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene exon 3652524 3652632 0.000000 - . gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene CDS 3652781 3652976 0.000000 - 0 gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene exon 3652781 3652976 0.000000 - . gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene CDS 3653184 3653273 0.000000 - 0 gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene exon 3653184 3653273 0.000000 - . gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene CDS 3653368 3653545 0.000000 - 1 gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene exon 3653368 3653545 0.000000 - . gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene CDS 3654001 3654143 0.000000 - 0 gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene exon 3654001 3654143 0.000000 - . gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene CDS 3654221 3654305 0.000000 - 1 gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene exon 3654221 3654305 0.000000 - . gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene CDS 3654392 3654558 0.000000 - 0 gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene exon 3654392 3654558 0.000000 - . gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene CDS 3654711 3654782 0.000000 - 0 gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene exon 3654711 3654782 0.000000 - . gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene CDS 3654866 3654931 0.000000 - 0 gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene exon 3654866 3654931 0.000000 - . gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene CDS 3655151 3655340 0.000000 - 1 gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene exon 3655151 3655340 0.000000 - . gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene CDS 3655420 3655496 0.000000 - 0 gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene exon 3655420 3655496 0.000000 - . gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene CDS 3655674 3655752 0.000000 - 1 gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene exon 3655674 3655752 0.000000 - . gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene CDS 3657714 3657790 0.000000 - 0 gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene exon 3657714 3657790 0.000000 - . gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene CDS 3660139 3660218 0.000000 - 2 gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene exon 3660139 3660218 0.000000 - . gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene CDS 3662555 3662651 0.000000 - 0 gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene exon 3662555 3662738 0.000000 - . gene_id "ADAM33"; transcript_id "AF466287:uc002wir.1";
+chr20 hg19_knownGene CDS 3649613 3649647 0.000000 - 2 gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene exon 3648620 3649647 0.000000 - . gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene CDS 3649946 3650017 0.000000 - 2 gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene exon 3649946 3650017 0.000000 - . gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene CDS 3650193 3650284 0.000000 - 1 gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene exon 3650193 3650284 0.000000 - . gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene CDS 3651653 3651800 0.000000 - 2 gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene exon 3651653 3651800 0.000000 - . gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene CDS 3651884 3651992 0.000000 - 0 gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene exon 3651884 3651992 0.000000 - . gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene CDS 3652066 3652143 0.000000 - 0 gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene exon 3652066 3652143 0.000000 - . gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene CDS 3652228 3652426 0.000000 - 1 gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene exon 3652228 3652426 0.000000 - . gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene CDS 3652524 3652632 0.000000 - 2 gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene exon 3652524 3652632 0.000000 - . gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene CDS 3652781 3652976 0.000000 - 0 gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene exon 3652781 3652976 0.000000 - . gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene CDS 3653184 3653273 0.000000 - 0 gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene exon 3653184 3653273 0.000000 - . gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene CDS 3653368 3653545 0.000000 - 1 gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene exon 3653368 3653545 0.000000 - . gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene CDS 3654001 3654143 0.000000 - 0 gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene exon 3654001 3654143 0.000000 - . gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene CDS 3654221 3654305 0.000000 - 1 gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene exon 3654221 3654305 0.000000 - . gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene CDS 3654392 3654558 0.000000 - 0 gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene exon 3654392 3654558 0.000000 - . gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene CDS 3654711 3654782 0.000000 - 0 gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene exon 3654711 3654782 0.000000 - . gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene CDS 3654866 3654931 0.000000 - 0 gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene exon 3654866 3654931 0.000000 - . gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene CDS 3655151 3655340 0.000000 - 1 gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene exon 3655151 3655340 0.000000 - . gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene CDS 3655420 3655496 0.000000 - 0 gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene exon 3655420 3655496 0.000000 - . gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene CDS 3655674 3655752 0.000000 - 1 gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene exon 3655674 3655752 0.000000 - . gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene CDS 3657714 3657790 0.000000 - 0 gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene exon 3657714 3657790 0.000000 - . gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene CDS 3660139 3660218 0.000000 - 2 gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene exon 3660139 3660218 0.000000 - . gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene CDS 3662555 3662651 0.000000 - 0 gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene exon 3662555 3662738 0.000000 - . gene_id "ADAM33"; transcript_id "NM_025220:uc002wit.3";
+chr20 hg19_knownGene CDS 3649613 3649647 0.000000 - 2 gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene exon 3648620 3649647 0.000000 - . gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene CDS 3649946 3650017 0.000000 - 2 gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene exon 3649946 3650017 0.000000 - . gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene CDS 3650193 3650284 0.000000 - 1 gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene exon 3650193 3650284 0.000000 - . gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene CDS 3651653 3651800 0.000000 - 2 gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene exon 3651653 3651800 0.000000 - . gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene CDS 3651884 3651992 0.000000 - 0 gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene exon 3651884 3651992 0.000000 - . gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene CDS 3652228 3652426 0.000000 - 1 gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene exon 3652228 3652426 0.000000 - . gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene CDS 3652524 3652632 0.000000 - 2 gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene exon 3652524 3652632 0.000000 - . gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene CDS 3652781 3652976 0.000000 - 0 gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene exon 3652781 3652976 0.000000 - . gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene CDS 3653184 3653273 0.000000 - 0 gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene exon 3653184 3653273 0.000000 - . gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene CDS 3653368 3653545 0.000000 - 1 gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene exon 3653368 3653545 0.000000 - . gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene CDS 3654001 3654143 0.000000 - 0 gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene exon 3654001 3654143 0.000000 - . gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene CDS 3654221 3654305 0.000000 - 1 gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene exon 3654221 3654305 0.000000 - . gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene CDS 3654392 3654558 0.000000 - 0 gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene exon 3654392 3654558 0.000000 - . gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene CDS 3654711 3654782 0.000000 - 0 gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene exon 3654711 3654782 0.000000 - . gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene CDS 3654866 3654931 0.000000 - 0 gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene exon 3654866 3654931 0.000000 - . gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene CDS 3655151 3655340 0.000000 - 1 gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene exon 3655151 3655340 0.000000 - . gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene CDS 3655420 3655496 0.000000 - 0 gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene exon 3655420 3655496 0.000000 - . gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene CDS 3655674 3655752 0.000000 - 1 gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene exon 3655674 3655752 0.000000 - . gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene CDS 3657714 3657790 0.000000 - 0 gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene exon 3657714 3657790 0.000000 - . gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene CDS 3660139 3660218 0.000000 - 2 gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene exon 3660139 3660218 0.000000 - . gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene CDS 3662555 3662651 0.000000 - 0 gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene exon 3662555 3662738 0.000000 - . gene_id "ADAM33"; transcript_id "NM_153202:uc002wiu.3";
+chr20 hg19_knownGene exon 3650542 3650945 0.000000 - . gene_id "ADAM33"; transcript_id "AK095953:uc002wiw.1";
+chr20 hg19_knownGene exon 3651416 3651800 0.000000 - . gene_id "ADAM33"; transcript_id "AK095953:uc002wiw.1";
+chr20 hg19_knownGene exon 3651884 3651992 0.000000 - . gene_id "ADAM33"; transcript_id "AK095953:uc002wiw.1";
+chr20 hg19_knownGene exon 3652066 3652143 0.000000 - . gene_id "ADAM33"; transcript_id "AK095953:uc002wiw.1";
+chr20 hg19_knownGene exon 3652228 3652426 0.000000 - . gene_id "ADAM33"; transcript_id "AK095953:uc002wiw.1";
+chr20 hg19_knownGene exon 3654711 3654782 0.000000 - . gene_id "ADAM33"; transcript_id "AK095953:uc002wiw.1";
+chr20 hg19_knownGene exon 3654866 3654931 0.000000 - . gene_id "ADAM33"; transcript_id "AK095953:uc002wiw.1";
+chr20 hg19_knownGene exon 3655420 3655496 0.000000 - . gene_id "ADAM33"; transcript_id "AK095953:uc002wiw.1";
+chr20 hg19_knownGene exon 3655635 3655752 0.000000 - . gene_id "ADAM33"; transcript_id "AK095953:uc002wiw.1";
+chr20 hg19_knownGene exon 3657714 3657790 0.000000 - . gene_id "ADAM33"; transcript_id "AK095953:uc002wiw.1";
+chr20 hg19_knownGene exon 3660139 3660218 0.000000 - . gene_id "ADAM33"; transcript_id "AK095953:uc002wiw.1";
+chr20 hg19_knownGene exon 3662555 3662738 0.000000 - . gene_id "ADAM33"; transcript_id "AK095953:uc002wiw.1";
+chr20 hg19_knownGene CDS 3651887 3651992 0.000000 - 1 gene_id "ADAM33"; transcript_id "AY223851:uc010gba.1";
+chr20 hg19_knownGene exon 3651884 3651992 0.000000 - . gene_id "ADAM33"; transcript_id "AY223851:uc010gba.1";
+chr20 hg19_knownGene CDS 3657714 3657790 0.000000 - 0 gene_id "ADAM33"; transcript_id "AY223851:uc010gba.1";
+chr20 hg19_knownGene exon 3657714 3657790 0.000000 - . gene_id "ADAM33"; transcript_id "AY223851:uc010gba.1";
+chr20 hg19_knownGene CDS 3660139 3660218 0.000000 - 2 gene_id "ADAM33"; transcript_id "AY223851:uc010gba.1";
+chr20 hg19_knownGene exon 3660139 3660218 0.000000 - . gene_id "ADAM33"; transcript_id "AY223851:uc010gba.1";
+chr20 hg19_knownGene CDS 3662555 3662651 0.000000 - 0 gene_id "ADAM33"; transcript_id "AY223851:uc010gba.1";
+chr20 hg19_knownGene exon 3662555 3662738 0.000000 - . gene_id "ADAM33"; transcript_id "AY223851:uc010gba.1";
+chr20 hg19_knownGene CDS 3652231 3652426 0.000000 - 1 gene_id "ADAM33"; transcript_id "AY223850:uc010gbb.1";
+chr20 hg19_knownGene exon 3652228 3652426 0.000000 - . gene_id "ADAM33"; transcript_id "AY223850:uc010gbb.1";
+chr20 hg19_knownGene CDS 3657714 3657790 0.000000 - 0 gene_id "ADAM33"; transcript_id "AY223850:uc010gbb.1";
+chr20 hg19_knownGene exon 3657714 3657790 0.000000 - . gene_id "ADAM33"; transcript_id "AY223850:uc010gbb.1";
+chr20 hg19_knownGene CDS 3660139 3660218 0.000000 - 2 gene_id "ADAM33"; transcript_id "AY223850:uc010gbb.1";
+chr20 hg19_knownGene exon 3660139 3660218 0.000000 - . gene_id "ADAM33"; transcript_id "AY223850:uc010gbb.1";
+chr20 hg19_knownGene CDS 3662555 3662651 0.000000 - 0 gene_id "ADAM33"; transcript_id "AY223850:uc010gbb.1";
+chr20 hg19_knownGene exon 3662555 3662738 0.000000 - . gene_id "ADAM33"; transcript_id "AY223850:uc010gbb.1";
+chr20 hg19_knownGene CDS 3653187 3653273 0.000000 - 0 gene_id "ADAM33"; transcript_id "AY223854:uc002wix.1";
+chr20 hg19_knownGene exon 3653184 3653273 0.000000 - . gene_id "ADAM33"; transcript_id "AY223854:uc002wix.1";
+chr20 hg19_knownGene CDS 3654711 3654782 0.000000 - 0 gene_id "ADAM33"; transcript_id "AY223854:uc002wix.1";
+chr20 hg19_knownGene exon 3654711 3654782 0.000000 - . gene_id "ADAM33"; transcript_id "AY223854:uc002wix.1";
+chr20 hg19_knownGene CDS 3654866 3654931 0.000000 - 0 gene_id "ADAM33"; transcript_id "AY223854:uc002wix.1";
+chr20 hg19_knownGene exon 3654866 3654931 0.000000 - . gene_id "ADAM33"; transcript_id "AY223854:uc002wix.1";
+chr20 hg19_knownGene CDS 3655635 3655749 0.000000 - 1 gene_id "ADAM33"; transcript_id "AY223854:uc002wix.1";
+chr20 hg19_knownGene exon 3655635 3655749 0.000000 - . gene_id "ADAM33"; transcript_id "AY223854:uc002wix.1";
+chr20 hg19_knownGene CDS 3657714 3657790 0.000000 - 0 gene_id "ADAM33"; transcript_id "AY223854:uc002wix.1";
+chr20 hg19_knownGene exon 3657714 3657790 0.000000 - . gene_id "ADAM33"; transcript_id "AY223854:uc002wix.1";
+chr20 hg19_knownGene CDS 3660139 3660218 0.000000 - 2 gene_id "ADAM33"; transcript_id "AY223854:uc002wix.1";
+chr20 hg19_knownGene exon 3660139 3660218 0.000000 - . gene_id "ADAM33"; transcript_id "AY223854:uc002wix.1";
+chr20 hg19_knownGene CDS 3662555 3662651 0.000000 - 0 gene_id "ADAM33"; transcript_id "AY223854:uc002wix.1";
+chr20 hg19_knownGene exon 3662555 3662738 0.000000 - . gene_id "ADAM33"; transcript_id "AY223854:uc002wix.1";
+chr20 hg19_knownGene CDS 3653964 3654143 0.000000 - 0 gene_id "ADAM33"; transcript_id "AK304037:uc010zqg.1";
+chr20 hg19_knownGene exon 3653368 3654143 0.000000 - . gene_id "ADAM33"; transcript_id "AK304037:uc010zqg.1";
+chr20 hg19_knownGene CDS 3654221 3654305 0.000000 - 1 gene_id "ADAM33"; transcript_id "AK304037:uc010zqg.1";
+chr20 hg19_knownGene exon 3654221 3654305 0.000000 - . gene_id "ADAM33"; transcript_id "AK304037:uc010zqg.1";
+chr20 hg19_knownGene CDS 3654392 3654558 0.000000 - 0 gene_id "ADAM33"; transcript_id "AK304037:uc010zqg.1";
+chr20 hg19_knownGene exon 3654392 3654558 0.000000 - . gene_id "ADAM33"; transcript_id "AK304037:uc010zqg.1";
+chr20 hg19_knownGene CDS 3654711 3654782 0.000000 - 0 gene_id "ADAM33"; transcript_id "AK304037:uc010zqg.1";
+chr20 hg19_knownGene exon 3654711 3654782 0.000000 - . gene_id "ADAM33"; transcript_id "AK304037:uc010zqg.1";
+chr20 hg19_knownGene CDS 3654866 3654931 0.000000 - 0 gene_id "ADAM33"; transcript_id "AK304037:uc010zqg.1";
+chr20 hg19_knownGene exon 3654866 3654931 0.000000 - . gene_id "ADAM33"; transcript_id "AK304037:uc010zqg.1";
+chr20 hg19_knownGene CDS 3655151 3655340 0.000000 - 1 gene_id "ADAM33"; transcript_id "AK304037:uc010zqg.1";
+chr20 hg19_knownGene exon 3655151 3655340 0.000000 - . gene_id "ADAM33"; transcript_id "AK304037:uc010zqg.1";
+chr20 hg19_knownGene CDS 3655420 3655496 0.000000 - 0 gene_id "ADAM33"; transcript_id "AK304037:uc010zqg.1";
+chr20 hg19_knownGene exon 3655420 3655496 0.000000 - . gene_id "ADAM33"; transcript_id "AK304037:uc010zqg.1";
+chr20 hg19_knownGene CDS 3655635 3655749 0.000000 - 1 gene_id "ADAM33"; transcript_id "AK304037:uc010zqg.1";
+chr20 hg19_knownGene exon 3655635 3655749 0.000000 - . gene_id "ADAM33"; transcript_id "AK304037:uc010zqg.1";
+chr20 hg19_knownGene CDS 3657714 3657790 0.000000 - 0 gene_id "ADAM33"; transcript_id "AK304037:uc010zqg.1";
+chr20 hg19_knownGene exon 3657714 3657790 0.000000 - . gene_id "ADAM33"; transcript_id "AK304037:uc010zqg.1";
+chr20 hg19_knownGene CDS 3660139 3660218 0.000000 - 2 gene_id "ADAM33"; transcript_id "AK304037:uc010zqg.1";
+chr20 hg19_knownGene exon 3660139 3660218 0.000000 - . gene_id "ADAM33"; transcript_id "AK304037:uc010zqg.1";
+chr20 hg19_knownGene CDS 3662555 3662651 0.000000 - 0 gene_id "ADAM33"; transcript_id "AK304037:uc010zqg.1";
+chr20 hg19_knownGene exon 3662555 3662738 0.000000 - . gene_id "ADAM33"; transcript_id "AK304037:uc010zqg.1";
+chr20 hg19_knownGene CDS 3653906 3654143 0.000000 - 1 gene_id "ADAM33"; transcript_id "AK300429:uc010zqh.1";
+chr20 hg19_knownGene exon 3653368 3654143 0.000000 - . gene_id "ADAM33"; transcript_id "AK300429:uc010zqh.1";
+chr20 hg19_knownGene CDS 3654230 3654558 0.000000 - 0 gene_id "ADAM33"; transcript_id "AK300429:uc010zqh.1";
+chr20 hg19_knownGene exon 3654230 3654558 0.000000 - . gene_id "ADAM33"; transcript_id "AK300429:uc010zqh.1";
+chr20 hg19_knownGene CDS 3654711 3654782 0.000000 - 0 gene_id "ADAM33"; transcript_id "AK300429:uc010zqh.1";
+chr20 hg19_knownGene exon 3654711 3654782 0.000000 - . gene_id "ADAM33"; transcript_id "AK300429:uc010zqh.1";
+chr20 hg19_knownGene CDS 3654866 3654931 0.000000 - 0 gene_id "ADAM33"; transcript_id "AK300429:uc010zqh.1";
+chr20 hg19_knownGene exon 3654866 3654931 0.000000 - . gene_id "ADAM33"; transcript_id "AK300429:uc010zqh.1";
+chr20 hg19_knownGene CDS 3655151 3655340 0.000000 - 1 gene_id "ADAM33"; transcript_id "AK300429:uc010zqh.1";
+chr20 hg19_knownGene exon 3655151 3655340 0.000000 - . gene_id "ADAM33"; transcript_id "AK300429:uc010zqh.1";
+chr20 hg19_knownGene CDS 3655420 3655496 0.000000 - 0 gene_id "ADAM33"; transcript_id "AK300429:uc010zqh.1";
+chr20 hg19_knownGene exon 3655420 3655496 0.000000 - . gene_id "ADAM33"; transcript_id "AK300429:uc010zqh.1";
+chr20 hg19_knownGene CDS 3655674 3655752 0.000000 - 1 gene_id "ADAM33"; transcript_id "AK300429:uc010zqh.1";
+chr20 hg19_knownGene exon 3655674 3655752 0.000000 - . gene_id "ADAM33"; transcript_id "AK300429:uc010zqh.1";
+chr20 hg19_knownGene CDS 3657714 3657790 0.000000 - 0 gene_id "ADAM33"; transcript_id "AK300429:uc010zqh.1";
+chr20 hg19_knownGene exon 3657714 3657790 0.000000 - . gene_id "ADAM33"; transcript_id "AK300429:uc010zqh.1";
+chr20 hg19_knownGene CDS 3660139 3660218 0.000000 - 2 gene_id "ADAM33"; transcript_id "AK300429:uc010zqh.1";
+chr20 hg19_knownGene exon 3660139 3660218 0.000000 - . gene_id "ADAM33"; transcript_id "AK300429:uc010zqh.1";
+chr20 hg19_knownGene CDS 3662555 3662651 0.000000 - 0 gene_id "ADAM33"; transcript_id "AK300429:uc010zqh.1";
+chr20 hg19_knownGene exon 3662555 3662738 0.000000 - . gene_id "ADAM33"; transcript_id "AK300429:uc010zqh.1";
+chr20 hg19_knownGene CDS 3657713 3657790 0.000000 - 0 gene_id "ADAM33"; transcript_id "BC062663:uc002wiy.3";
+chr20 hg19_knownGene exon 3657083 3657790 0.000000 - . gene_id "ADAM33"; transcript_id "BC062663:uc002wiy.3";
+chr20 hg19_knownGene CDS 3660139 3660218 0.000000 - 2 gene_id "ADAM33"; transcript_id "BC062663:uc002wiy.3";
+chr20 hg19_knownGene exon 3660139 3660218 0.000000 - . gene_id "ADAM33"; transcript_id "BC062663:uc002wiy.3";
+chr20 hg19_knownGene CDS 3662555 3662651 0.000000 - 0 gene_id "ADAM33"; transcript_id "BC062663:uc002wiy.3";
+chr20 hg19_knownGene exon 3662555 3662738 0.000000 - . gene_id "ADAM33"; transcript_id "BC062663:uc002wiy.3";
+chr20 hg19_knownGene CDS 3670556 3670911 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "AK024479:uc002wjb.1";
+chr20 hg19_knownGene exon 3667619 3670911 0.000000 - . gene_id "SIGLEC1"; transcript_id "AK024479:uc002wjb.1";
+chr20 hg19_knownGene CDS 3671987 3672247 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "AK024479:uc002wjb.1";
+chr20 hg19_knownGene exon 3671987 3672247 0.000000 - . gene_id "SIGLEC1"; transcript_id "AK024479:uc002wjb.1";
+chr20 hg19_knownGene CDS 3672550 3672796 0.000000 - 0 gene_id "SIGLEC1"; transcript_id "AK024479:uc002wjb.1";
+chr20 hg19_knownGene exon 3672550 3672849 0.000000 - . gene_id "SIGLEC1"; transcript_id "AK024479:uc002wjb.1";
+chr20 hg19_knownGene exon 3673168 3673419 0.000000 - . gene_id "SIGLEC1"; transcript_id "AK024479:uc002wjb.1";
+chr20 hg19_knownGene exon 3673509 3673778 0.000000 - . gene_id "SIGLEC1"; transcript_id "AK024479:uc002wjb.1";
+chr20 hg19_knownGene CDS 3683713 3684098 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "AY927519:uc002wjc.3";
+chr20 hg19_knownGene exon 3683708 3684098 0.000000 - . gene_id "SIGLEC1"; transcript_id "AY927519:uc002wjc.3";
+chr20 hg19_knownGene CDS 3684472 3684738 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "AY927519:uc002wjc.3";
+chr20 hg19_knownGene exon 3684472 3684738 0.000000 - . gene_id "SIGLEC1"; transcript_id "AY927519:uc002wjc.3";
+chr20 hg19_knownGene CDS 3686391 3686687 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "AY927519:uc002wjc.3";
+chr20 hg19_knownGene exon 3686391 3686687 0.000000 - . gene_id "SIGLEC1"; transcript_id "AY927519:uc002wjc.3";
+chr20 hg19_knownGene CDS 3686994 3687135 0.000000 - 0 gene_id "SIGLEC1"; transcript_id "AY927519:uc002wjc.3";
+chr20 hg19_knownGene exon 3686994 3687353 0.000000 - . gene_id "SIGLEC1"; transcript_id "AY927519:uc002wjc.3";
+chr20 hg19_knownGene CDS 3669210 3669266 0.000000 - 0 gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene exon 3667617 3669266 0.000000 - . gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene CDS 3669802 3669874 0.000000 - 1 gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene exon 3669802 3669874 0.000000 - . gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene CDS 3670247 3670349 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene exon 3670247 3670349 0.000000 - . gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene CDS 3670609 3670911 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene exon 3670609 3670911 0.000000 - . gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene CDS 3671987 3672247 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene exon 3671987 3672247 0.000000 - . gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene CDS 3672550 3672849 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene exon 3672550 3672849 0.000000 - . gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene CDS 3673168 3673419 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene exon 3673168 3673419 0.000000 - . gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene CDS 3673509 3673778 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene exon 3673509 3673778 0.000000 - . gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene CDS 3674094 3674345 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene exon 3674094 3674345 0.000000 - . gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene CDS 3674868 3675179 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene exon 3674868 3675179 0.000000 - . gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene CDS 3675310 3675570 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene exon 3675310 3675570 0.000000 - . gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene CDS 3677233 3677535 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene exon 3677233 3677535 0.000000 - . gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene CDS 3677732 3677989 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene exon 3677732 3677989 0.000000 - . gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene CDS 3678445 3678780 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene exon 3678445 3678780 0.000000 - . gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene CDS 3679849 3680106 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene exon 3679849 3680106 0.000000 - . gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene CDS 3681989 3682288 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene exon 3681989 3682288 0.000000 - . gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene CDS 3683844 3684098 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene exon 3683844 3684098 0.000000 - . gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene CDS 3684472 3684738 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene exon 3684472 3684738 0.000000 - . gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene CDS 3686391 3686687 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene exon 3686391 3686687 0.000000 - . gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene CDS 3686994 3687353 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene exon 3686994 3687353 0.000000 - . gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene CDS 3687727 3687775 0.000000 - 0 gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene exon 3687727 3687775 0.000000 - . gene_id "SIGLEC1"; transcript_id "NM_023068:uc002wja.3";
+chr20 hg19_knownGene CDS 3669161 3669266 0.000000 - 1 gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene exon 3667617 3669266 0.000000 - . gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene CDS 3670247 3670349 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene exon 3670247 3670349 0.000000 - . gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene CDS 3670609 3670911 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene exon 3670609 3670911 0.000000 - . gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene CDS 3671987 3672247 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene exon 3671987 3672247 0.000000 - . gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene CDS 3672550 3672849 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene exon 3672550 3672849 0.000000 - . gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene CDS 3673168 3673419 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene exon 3673168 3673419 0.000000 - . gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene CDS 3673509 3673778 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene exon 3673509 3673778 0.000000 - . gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene CDS 3674094 3674345 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene exon 3674094 3674345 0.000000 - . gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene CDS 3674868 3675179 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene exon 3674868 3675179 0.000000 - . gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene CDS 3675310 3675570 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene exon 3675310 3675570 0.000000 - . gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene CDS 3677233 3677535 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene exon 3677233 3677535 0.000000 - . gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene CDS 3677732 3677989 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene exon 3677732 3677989 0.000000 - . gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene CDS 3678445 3678780 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene exon 3678445 3678780 0.000000 - . gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene CDS 3679849 3680106 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene exon 3679849 3680106 0.000000 - . gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene CDS 3681989 3682288 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene exon 3681989 3682288 0.000000 - . gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene CDS 3683844 3684098 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene exon 3683844 3684098 0.000000 - . gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene CDS 3684472 3684738 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene exon 3684472 3684738 0.000000 - . gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene CDS 3686391 3686687 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene exon 3686391 3686687 0.000000 - . gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene CDS 3686994 3687353 0.000000 - 2 gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene exon 3686994 3687353 0.000000 - . gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene CDS 3687727 3687775 0.000000 - 0 gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene exon 3687727 3687775 0.000000 - . gene_id "SIGLEC1"; transcript_id "BC141884:uc002wiz.4";
+chr20 hg19_knownGene exon 3713317 3713441 0.000000 + . gene_id "HSPA12B"; transcript_id "NM_052970:uc002wjd.3";
+chr20 hg19_knownGene CDS 3719322 3719364 0.000000 + 0 gene_id "HSPA12B"; transcript_id "NM_052970:uc002wjd.3";
+chr20 hg19_knownGene exon 3719305 3719364 0.000000 + . gene_id "HSPA12B"; transcript_id "NM_052970:uc002wjd.3";
+chr20 hg19_knownGene CDS 3721462 3721559 0.000000 + 2 gene_id "HSPA12B"; transcript_id "NM_052970:uc002wjd.3";
+chr20 hg19_knownGene exon 3721462 3721559 0.000000 + . gene_id "HSPA12B"; transcript_id "NM_052970:uc002wjd.3";
+chr20 hg19_knownGene CDS 3722931 3723055 0.000000 + 0 gene_id "HSPA12B"; transcript_id "NM_052970:uc002wjd.3";
+chr20 hg19_knownGene exon 3722931 3723055 0.000000 + . gene_id "HSPA12B"; transcript_id "NM_052970:uc002wjd.3";
+chr20 hg19_knownGene CDS 3725549 3725735 0.000000 + 1 gene_id "HSPA12B"; transcript_id "NM_052970:uc002wjd.3";
+chr20 hg19_knownGene exon 3725549 3725735 0.000000 + . gene_id "HSPA12B"; transcript_id "NM_052970:uc002wjd.3";
+chr20 hg19_knownGene CDS 3726140 3726244 0.000000 + 0 gene_id "HSPA12B"; transcript_id "NM_052970:uc002wjd.3";
+chr20 hg19_knownGene exon 3726140 3726244 0.000000 + . gene_id "HSPA12B"; transcript_id "NM_052970:uc002wjd.3";
+chr20 hg19_knownGene CDS 3726562 3726678 0.000000 + 0 gene_id "HSPA12B"; transcript_id "NM_052970:uc002wjd.3";
+chr20 hg19_knownGene exon 3726562 3726678 0.000000 + . gene_id "HSPA12B"; transcript_id "NM_052970:uc002wjd.3";
+chr20 hg19_knownGene CDS 3728864 3729038 0.000000 + 0 gene_id "HSPA12B"; transcript_id "NM_052970:uc002wjd.3";
+chr20 hg19_knownGene exon 3728864 3729038 0.000000 + . gene_id "HSPA12B"; transcript_id "NM_052970:uc002wjd.3";
+chr20 hg19_knownGene CDS 3729879 3729965 0.000000 + 2 gene_id "HSPA12B"; transcript_id "NM_052970:uc002wjd.3";
+chr20 hg19_knownGene exon 3729879 3729965 0.000000 + . gene_id "HSPA12B"; transcript_id "NM_052970:uc002wjd.3";
+chr20 hg19_knownGene CDS 3730397 3730501 0.000000 + 2 gene_id "HSPA12B"; transcript_id "NM_052970:uc002wjd.3";
+chr20 hg19_knownGene exon 3730397 3730501 0.000000 + . gene_id "HSPA12B"; transcript_id "NM_052970:uc002wjd.3";
+chr20 hg19_knownGene CDS 3730616 3730874 0.000000 + 2 gene_id "HSPA12B"; transcript_id "NM_052970:uc002wjd.3";
+chr20 hg19_knownGene exon 3730616 3730874 0.000000 + . gene_id "HSPA12B"; transcript_id "NM_052970:uc002wjd.3";
+chr20 hg19_knownGene CDS 3731451 3731554 0.000000 + 1 gene_id "HSPA12B"; transcript_id "NM_052970:uc002wjd.3";
+chr20 hg19_knownGene exon 3731451 3731554 0.000000 + . gene_id "HSPA12B"; transcript_id "NM_052970:uc002wjd.3";
+chr20 hg19_knownGene CDS 3732158 3732810 0.000000 + 2 gene_id "HSPA12B"; transcript_id "NM_052970:uc002wjd.3";
+chr20 hg19_knownGene exon 3732158 3733758 0.000000 + . gene_id "HSPA12B"; transcript_id "NM_052970:uc002wjd.3";
+chr20 hg19_knownGene exon 3713317 3713441 0.000000 + . gene_id "HSPA12B"; transcript_id "NM_001197327:uc010zqi.2";
+chr20 hg19_knownGene CDS 3719322 3719364 0.000000 + 0 gene_id "HSPA12B"; transcript_id "NM_001197327:uc010zqi.2";
+chr20 hg19_knownGene exon 3719305 3719364 0.000000 + . gene_id "HSPA12B"; transcript_id "NM_001197327:uc010zqi.2";
+chr20 hg19_knownGene CDS 3721462 3721559 0.000000 + 2 gene_id "HSPA12B"; transcript_id "NM_001197327:uc010zqi.2";
+chr20 hg19_knownGene exon 3721462 3721559 0.000000 + . gene_id "HSPA12B"; transcript_id "NM_001197327:uc010zqi.2";
+chr20 hg19_knownGene CDS 3722931 3723055 0.000000 + 0 gene_id "HSPA12B"; transcript_id "NM_001197327:uc010zqi.2";
+chr20 hg19_knownGene exon 3722931 3723055 0.000000 + . gene_id "HSPA12B"; transcript_id "NM_001197327:uc010zqi.2";
+chr20 hg19_knownGene CDS 3725549 3725735 0.000000 + 1 gene_id "HSPA12B"; transcript_id "NM_001197327:uc010zqi.2";
+chr20 hg19_knownGene exon 3725549 3725735 0.000000 + . gene_id "HSPA12B"; transcript_id "NM_001197327:uc010zqi.2";
+chr20 hg19_knownGene CDS 3726140 3726244 0.000000 + 0 gene_id "HSPA12B"; transcript_id "NM_001197327:uc010zqi.2";
+chr20 hg19_knownGene exon 3726140 3726244 0.000000 + . gene_id "HSPA12B"; transcript_id "NM_001197327:uc010zqi.2";
+chr20 hg19_knownGene CDS 3726565 3726678 0.000000 + 0 gene_id "HSPA12B"; transcript_id "NM_001197327:uc010zqi.2";
+chr20 hg19_knownGene exon 3726565 3726678 0.000000 + . gene_id "HSPA12B"; transcript_id "NM_001197327:uc010zqi.2";
+chr20 hg19_knownGene CDS 3728864 3729038 0.000000 + 0 gene_id "HSPA12B"; transcript_id "NM_001197327:uc010zqi.2";
+chr20 hg19_knownGene exon 3728864 3729038 0.000000 + . gene_id "HSPA12B"; transcript_id "NM_001197327:uc010zqi.2";
+chr20 hg19_knownGene CDS 3729879 3729965 0.000000 + 2 gene_id "HSPA12B"; transcript_id "NM_001197327:uc010zqi.2";
+chr20 hg19_knownGene exon 3729879 3729965 0.000000 + . gene_id "HSPA12B"; transcript_id "NM_001197327:uc010zqi.2";
+chr20 hg19_knownGene CDS 3730397 3730501 0.000000 + 2 gene_id "HSPA12B"; transcript_id "NM_001197327:uc010zqi.2";
+chr20 hg19_knownGene exon 3730397 3730501 0.000000 + . gene_id "HSPA12B"; transcript_id "NM_001197327:uc010zqi.2";
+chr20 hg19_knownGene CDS 3730616 3730874 0.000000 + 2 gene_id "HSPA12B"; transcript_id "NM_001197327:uc010zqi.2";
+chr20 hg19_knownGene exon 3730616 3730874 0.000000 + . gene_id "HSPA12B"; transcript_id "NM_001197327:uc010zqi.2";
+chr20 hg19_knownGene CDS 3731451 3731554 0.000000 + 1 gene_id "HSPA12B"; transcript_id "NM_001197327:uc010zqi.2";
+chr20 hg19_knownGene exon 3731451 3731554 0.000000 + . gene_id "HSPA12B"; transcript_id "NM_001197327:uc010zqi.2";
+chr20 hg19_knownGene CDS 3732158 3732810 0.000000 + 2 gene_id "HSPA12B"; transcript_id "NM_001197327:uc010zqi.2";
+chr20 hg19_knownGene exon 3732158 3733758 0.000000 + . gene_id "HSPA12B"; transcript_id "NM_001197327:uc010zqi.2";
+chr20 hg19_knownGene exon 3713317 3713441 0.000000 + . gene_id "HSPA12B"; transcript_id "BC090857:uc002wje.3";
+chr20 hg19_knownGene exon 3719305 3719364 0.000000 + . gene_id "HSPA12B"; transcript_id "BC090857:uc002wje.3";
+chr20 hg19_knownGene CDS 3723051 3723055 0.000000 + 0 gene_id "HSPA12B"; transcript_id "BC090857:uc002wje.3";
+chr20 hg19_knownGene exon 3722931 3723055 0.000000 + . gene_id "HSPA12B"; transcript_id "BC090857:uc002wje.3";
+chr20 hg19_knownGene CDS 3725549 3725735 0.000000 + 1 gene_id "HSPA12B"; transcript_id "BC090857:uc002wje.3";
+chr20 hg19_knownGene exon 3725549 3725735 0.000000 + . gene_id "HSPA12B"; transcript_id "BC090857:uc002wje.3";
+chr20 hg19_knownGene CDS 3726140 3726244 0.000000 + 0 gene_id "HSPA12B"; transcript_id "BC090857:uc002wje.3";
+chr20 hg19_knownGene exon 3726140 3726244 0.000000 + . gene_id "HSPA12B"; transcript_id "BC090857:uc002wje.3";
+chr20 hg19_knownGene CDS 3726562 3726678 0.000000 + 0 gene_id "HSPA12B"; transcript_id "BC090857:uc002wje.3";
+chr20 hg19_knownGene exon 3726562 3726678 0.000000 + . gene_id "HSPA12B"; transcript_id "BC090857:uc002wje.3";
+chr20 hg19_knownGene CDS 3728864 3729038 0.000000 + 0 gene_id "HSPA12B"; transcript_id "BC090857:uc002wje.3";
+chr20 hg19_knownGene exon 3728864 3729038 0.000000 + . gene_id "HSPA12B"; transcript_id "BC090857:uc002wje.3";
+chr20 hg19_knownGene CDS 3729879 3729965 0.000000 + 2 gene_id "HSPA12B"; transcript_id "BC090857:uc002wje.3";
+chr20 hg19_knownGene exon 3729879 3729965 0.000000 + . gene_id "HSPA12B"; transcript_id "BC090857:uc002wje.3";
+chr20 hg19_knownGene CDS 3730397 3730501 0.000000 + 2 gene_id "HSPA12B"; transcript_id "BC090857:uc002wje.3";
+chr20 hg19_knownGene exon 3730397 3730501 0.000000 + . gene_id "HSPA12B"; transcript_id "BC090857:uc002wje.3";
+chr20 hg19_knownGene CDS 3730616 3730874 0.000000 + 2 gene_id "HSPA12B"; transcript_id "BC090857:uc002wje.3";
+chr20 hg19_knownGene exon 3730616 3730874 0.000000 + . gene_id "HSPA12B"; transcript_id "BC090857:uc002wje.3";
+chr20 hg19_knownGene CDS 3731451 3731554 0.000000 + 1 gene_id "HSPA12B"; transcript_id "BC090857:uc002wje.3";
+chr20 hg19_knownGene exon 3731451 3731554 0.000000 + . gene_id "HSPA12B"; transcript_id "BC090857:uc002wje.3";
+chr20 hg19_knownGene CDS 3732158 3732810 0.000000 + 2 gene_id "HSPA12B"; transcript_id "BC090857:uc002wje.3";
+chr20 hg19_knownGene exon 3732158 3733758 0.000000 + . gene_id "HSPA12B"; transcript_id "BC090857:uc002wje.3";
+chr20 hg19_knownGene exon 3713317 3713441 0.000000 + . gene_id "HSPA12B"; transcript_id "AK297120:uc010zqj.2";
+chr20 hg19_knownGene exon 3719305 3719364 0.000000 + . gene_id "HSPA12B"; transcript_id "AK297120:uc010zqj.2";
+chr20 hg19_knownGene exon 3725549 3725735 0.000000 + . gene_id "HSPA12B"; transcript_id "AK297120:uc010zqj.2";
+chr20 hg19_knownGene CDS 3726185 3726244 0.000000 + 0 gene_id "HSPA12B"; transcript_id "AK297120:uc010zqj.2";
+chr20 hg19_knownGene exon 3726118 3726244 0.000000 + . gene_id "HSPA12B"; transcript_id "AK297120:uc010zqj.2";
+chr20 hg19_knownGene CDS 3726562 3726678 0.000000 + 0 gene_id "HSPA12B"; transcript_id "AK297120:uc010zqj.2";
+chr20 hg19_knownGene exon 3726562 3726678 0.000000 + . gene_id "HSPA12B"; transcript_id "AK297120:uc010zqj.2";
+chr20 hg19_knownGene CDS 3728864 3729038 0.000000 + 0 gene_id "HSPA12B"; transcript_id "AK297120:uc010zqj.2";
+chr20 hg19_knownGene exon 3728864 3729038 0.000000 + . gene_id "HSPA12B"; transcript_id "AK297120:uc010zqj.2";
+chr20 hg19_knownGene CDS 3729879 3729965 0.000000 + 2 gene_id "HSPA12B"; transcript_id "AK297120:uc010zqj.2";
+chr20 hg19_knownGene exon 3729879 3729965 0.000000 + . gene_id "HSPA12B"; transcript_id "AK297120:uc010zqj.2";
+chr20 hg19_knownGene CDS 3730397 3730501 0.000000 + 2 gene_id "HSPA12B"; transcript_id "AK297120:uc010zqj.2";
+chr20 hg19_knownGene exon 3730397 3730501 0.000000 + . gene_id "HSPA12B"; transcript_id "AK297120:uc010zqj.2";
+chr20 hg19_knownGene CDS 3730616 3730874 0.000000 + 2 gene_id "HSPA12B"; transcript_id "AK297120:uc010zqj.2";
+chr20 hg19_knownGene exon 3730616 3730874 0.000000 + . gene_id "HSPA12B"; transcript_id "AK297120:uc010zqj.2";
+chr20 hg19_knownGene CDS 3731451 3731554 0.000000 + 1 gene_id "HSPA12B"; transcript_id "AK297120:uc010zqj.2";
+chr20 hg19_knownGene exon 3731451 3731554 0.000000 + . gene_id "HSPA12B"; transcript_id "AK297120:uc010zqj.2";
+chr20 hg19_knownGene CDS 3732158 3732810 0.000000 + 2 gene_id "HSPA12B"; transcript_id "AK297120:uc010zqj.2";
+chr20 hg19_knownGene exon 3732158 3733758 0.000000 + . gene_id "HSPA12B"; transcript_id "AK297120:uc010zqj.2";
+chr20 hg19_knownGene CDS 3736075 3736254 0.000000 - 0 gene_id "C20orf27"; transcript_id "AK124341:uc002wjf.1";
+chr20 hg19_knownGene exon 3734156 3736254 0.000000 - . gene_id "C20orf27"; transcript_id "AK124341:uc002wjf.1";
+chr20 hg19_knownGene CDS 3739183 3739325 0.000000 - 2 gene_id "C20orf27"; transcript_id "AK124341:uc002wjf.1";
+chr20 hg19_knownGene exon 3739183 3739325 0.000000 - . gene_id "C20orf27"; transcript_id "AK124341:uc002wjf.1";
+chr20 hg19_knownGene CDS 3740654 3740747 0.000000 - 0 gene_id "C20orf27"; transcript_id "AK124341:uc002wjf.1";
+chr20 hg19_knownGene exon 3740654 3740833 0.000000 - . gene_id "C20orf27"; transcript_id "AK124341:uc002wjf.1";
+chr20 hg19_knownGene exon 3748310 3748452 0.000000 - . gene_id "C20orf27"; transcript_id "AK124341:uc002wjf.1";
+chr20 hg19_knownGene CDS 3734708 3734805 0.000000 - 2 gene_id "C20orf27"; transcript_id "NM_001039140:uc002wjh.1";
+chr20 hg19_knownGene exon 3734158 3734805 0.000000 - . gene_id "C20orf27"; transcript_id "NM_001039140:uc002wjh.1";
+chr20 hg19_knownGene CDS 3735044 3735166 0.000000 - 2 gene_id "C20orf27"; transcript_id "NM_001039140:uc002wjh.1";
+chr20 hg19_knownGene exon 3735044 3735166 0.000000 - . gene_id "C20orf27"; transcript_id "NM_001039140:uc002wjh.1";
+chr20 hg19_knownGene CDS 3736116 3736254 0.000000 - 0 gene_id "C20orf27"; transcript_id "NM_001039140:uc002wjh.1";
+chr20 hg19_knownGene exon 3736116 3736254 0.000000 - . gene_id "C20orf27"; transcript_id "NM_001039140:uc002wjh.1";
+chr20 hg19_knownGene CDS 3739183 3739325 0.000000 - 2 gene_id "C20orf27"; transcript_id "NM_001039140:uc002wjh.1";
+chr20 hg19_knownGene exon 3739183 3739325 0.000000 - . gene_id "C20orf27"; transcript_id "NM_001039140:uc002wjh.1";
+chr20 hg19_knownGene CDS 3740654 3740747 0.000000 - 0 gene_id "C20orf27"; transcript_id "NM_001039140:uc002wjh.1";
+chr20 hg19_knownGene exon 3740654 3740833 0.000000 - . gene_id "C20orf27"; transcript_id "NM_001039140:uc002wjh.1";
+chr20 hg19_knownGene exon 3748310 3748452 0.000000 - . gene_id "C20orf27"; transcript_id "NM_001039140:uc002wjh.1";
+chr20 hg19_knownGene CDS 3734708 3734805 0.000000 - 2 gene_id "C20orf27"; transcript_id "AK225109:uc002wji.1";
+chr20 hg19_knownGene exon 3734158 3734805 0.000000 - . gene_id "C20orf27"; transcript_id "AK225109:uc002wji.1";
+chr20 hg19_knownGene CDS 3735044 3735166 0.000000 - 2 gene_id "C20orf27"; transcript_id "AK225109:uc002wji.1";
+chr20 hg19_knownGene exon 3735044 3735166 0.000000 - . gene_id "C20orf27"; transcript_id "AK225109:uc002wji.1";
+chr20 hg19_knownGene CDS 3736116 3736254 0.000000 - 0 gene_id "C20orf27"; transcript_id "AK225109:uc002wji.1";
+chr20 hg19_knownGene exon 3736116 3736254 0.000000 - . gene_id "C20orf27"; transcript_id "AK225109:uc002wji.1";
+chr20 hg19_knownGene CDS 3739183 3739325 0.000000 - 2 gene_id "C20orf27"; transcript_id "AK225109:uc002wji.1";
+chr20 hg19_knownGene exon 3739183 3739325 0.000000 - . gene_id "C20orf27"; transcript_id "AK225109:uc002wji.1";
+chr20 hg19_knownGene CDS 3740729 3740747 0.000000 - 0 gene_id "C20orf27"; transcript_id "AK225109:uc002wji.1";
+chr20 hg19_knownGene exon 3740729 3740833 0.000000 - . gene_id "C20orf27"; transcript_id "AK225109:uc002wji.1";
+chr20 hg19_knownGene exon 3748310 3748452 0.000000 - . gene_id "C20orf27"; transcript_id "AK225109:uc002wji.1";
+chr20 hg19_knownGene CDS 3758862 3758966 0.000000 - 0 gene_id "SPEF1"; transcript_id "NM_015417:uc002wjj.3";
+chr20 hg19_knownGene exon 3758151 3758966 0.000000 - . gene_id "SPEF1"; transcript_id "NM_015417:uc002wjj.3";
+chr20 hg19_knownGene CDS 3759068 3759191 0.000000 - 1 gene_id "SPEF1"; transcript_id "NM_015417:uc002wjj.3";
+chr20 hg19_knownGene exon 3759068 3759191 0.000000 - . gene_id "SPEF1"; transcript_id "NM_015417:uc002wjj.3";
+chr20 hg19_knownGene CDS 3759393 3759453 0.000000 - 2 gene_id "SPEF1"; transcript_id "NM_015417:uc002wjj.3";
+chr20 hg19_knownGene exon 3759393 3759453 0.000000 - . gene_id "SPEF1"; transcript_id "NM_015417:uc002wjj.3";
+chr20 hg19_knownGene CDS 3759598 3759637 0.000000 - 0 gene_id "SPEF1"; transcript_id "NM_015417:uc002wjj.3";
+chr20 hg19_knownGene exon 3759598 3759637 0.000000 - . gene_id "SPEF1"; transcript_id "NM_015417:uc002wjj.3";
+chr20 hg19_knownGene CDS 3759843 3759999 0.000000 - 1 gene_id "SPEF1"; transcript_id "NM_015417:uc002wjj.3";
+chr20 hg19_knownGene exon 3759843 3759999 0.000000 - . gene_id "SPEF1"; transcript_id "NM_015417:uc002wjj.3";
+chr20 hg19_knownGene CDS 3760311 3760422 0.000000 - 2 gene_id "SPEF1"; transcript_id "NM_015417:uc002wjj.3";
+chr20 hg19_knownGene exon 3760311 3760422 0.000000 - . gene_id "SPEF1"; transcript_id "NM_015417:uc002wjj.3";
+chr20 hg19_knownGene CDS 3761826 3761934 0.000000 - 0 gene_id "SPEF1"; transcript_id "NM_015417:uc002wjj.3";
+chr20 hg19_knownGene exon 3761826 3762102 0.000000 - . gene_id "SPEF1"; transcript_id "NM_015417:uc002wjj.3";
+chr20 hg19_knownGene CDS 3765334 3767130 0.000000 - 0 gene_id "CENPB"; transcript_id "NM_001810:uc002wjk.3";
+chr20 hg19_knownGene exon 3764498 3767337 0.000000 - . gene_id "CENPB"; transcript_id "NM_001810:uc002wjk.3";
+chr20 hg19_knownGene CDS 3767779 3767786 0.000000 + 0 gene_id "CDC25B"; transcript_id "AK295573:uc010zqk.2";
+chr20 hg19_knownGene exon 3767578 3767786 0.000000 + . gene_id "CDC25B"; transcript_id "AK295573:uc010zqk.2";
+chr20 hg19_knownGene CDS 3778269 3778396 0.000000 + 1 gene_id "CDC25B"; transcript_id "AK295573:uc010zqk.2";
+chr20 hg19_knownGene exon 3778269 3778396 0.000000 + . gene_id "CDC25B"; transcript_id "AK295573:uc010zqk.2";
+chr20 hg19_knownGene CDS 3779059 3779110 0.000000 + 2 gene_id "CDC25B"; transcript_id "AK295573:uc010zqk.2";
+chr20 hg19_knownGene exon 3779059 3779110 0.000000 + . gene_id "CDC25B"; transcript_id "AK295573:uc010zqk.2";
+chr20 hg19_knownGene CDS 3780935 3780976 0.000000 + 1 gene_id "CDC25B"; transcript_id "AK295573:uc010zqk.2";
+chr20 hg19_knownGene exon 3780935 3780976 0.000000 + . gene_id "CDC25B"; transcript_id "AK295573:uc010zqk.2";
+chr20 hg19_knownGene CDS 3781109 3781145 0.000000 + 1 gene_id "CDC25B"; transcript_id "AK295573:uc010zqk.2";
+chr20 hg19_knownGene exon 3781109 3781145 0.000000 + . gene_id "CDC25B"; transcript_id "AK295573:uc010zqk.2";
+chr20 hg19_knownGene CDS 3781390 3781512 0.000000 + 0 gene_id "CDC25B"; transcript_id "AK295573:uc010zqk.2";
+chr20 hg19_knownGene exon 3781390 3781512 0.000000 + . gene_id "CDC25B"; transcript_id "AK295573:uc010zqk.2";
+chr20 hg19_knownGene CDS 3781618 3781740 0.000000 + 0 gene_id "CDC25B"; transcript_id "AK295573:uc010zqk.2";
+chr20 hg19_knownGene exon 3781618 3781740 0.000000 + . gene_id "CDC25B"; transcript_id "AK295573:uc010zqk.2";
+chr20 hg19_knownGene CDS 3781901 3782035 0.000000 + 0 gene_id "CDC25B"; transcript_id "AK295573:uc010zqk.2";
+chr20 hg19_knownGene exon 3781901 3782035 0.000000 + . gene_id "CDC25B"; transcript_id "AK295573:uc010zqk.2";
+chr20 hg19_knownGene CDS 3782369 3782449 0.000000 + 0 gene_id "CDC25B"; transcript_id "AK295573:uc010zqk.2";
+chr20 hg19_knownGene exon 3782369 3782449 0.000000 + . gene_id "CDC25B"; transcript_id "AK295573:uc010zqk.2";
+chr20 hg19_knownGene CDS 3782571 3782747 0.000000 + 0 gene_id "CDC25B"; transcript_id "AK295573:uc010zqk.2";
+chr20 hg19_knownGene exon 3782571 3782747 0.000000 + . gene_id "CDC25B"; transcript_id "AK295573:uc010zqk.2";
+chr20 hg19_knownGene CDS 3782928 3783023 0.000000 + 0 gene_id "CDC25B"; transcript_id "AK295573:uc010zqk.2";
+chr20 hg19_knownGene exon 3782928 3783023 0.000000 + . gene_id "CDC25B"; transcript_id "AK295573:uc010zqk.2";
+chr20 hg19_knownGene CDS 3783557 3783619 0.000000 + 0 gene_id "CDC25B"; transcript_id "AK295573:uc010zqk.2";
+chr20 hg19_knownGene exon 3783557 3783619 0.000000 + . gene_id "CDC25B"; transcript_id "AK295573:uc010zqk.2";
+chr20 hg19_knownGene CDS 3783755 3783853 0.000000 + 0 gene_id "CDC25B"; transcript_id "AK295573:uc010zqk.2";
+chr20 hg19_knownGene exon 3783755 3783853 0.000000 + . gene_id "CDC25B"; transcript_id "AK295573:uc010zqk.2";
+chr20 hg19_knownGene CDS 3784051 3784184 0.000000 + 0 gene_id "CDC25B"; transcript_id "AK295573:uc010zqk.2";
+chr20 hg19_knownGene exon 3784051 3784184 0.000000 + . gene_id "CDC25B"; transcript_id "AK295573:uc010zqk.2";
+chr20 hg19_knownGene CDS 3785216 3785327 0.000000 + 1 gene_id "CDC25B"; transcript_id "AK295573:uc010zqk.2";
+chr20 hg19_knownGene exon 3785216 3785327 0.000000 + . gene_id "CDC25B"; transcript_id "AK295573:uc010zqk.2";
+chr20 hg19_knownGene CDS 3785468 3785605 0.000000 + 0 gene_id "CDC25B"; transcript_id "AK295573:uc010zqk.2";
+chr20 hg19_knownGene exon 3785468 3786761 0.000000 + . gene_id "CDC25B"; transcript_id "AK295573:uc010zqk.2";
+chr20 hg19_knownGene CDS 3767779 3767786 0.000000 + 0 gene_id "CDC25B"; transcript_id "AK299192:uc010zql.2";
+chr20 hg19_knownGene exon 3767578 3767786 0.000000 + . gene_id "CDC25B"; transcript_id "AK299192:uc010zql.2";
+chr20 hg19_knownGene CDS 3778311 3778396 0.000000 + 1 gene_id "CDC25B"; transcript_id "AK299192:uc010zql.2";
+chr20 hg19_knownGene exon 3778311 3778396 0.000000 + . gene_id "CDC25B"; transcript_id "AK299192:uc010zql.2";
+chr20 hg19_knownGene CDS 3779059 3779110 0.000000 + 2 gene_id "CDC25B"; transcript_id "AK299192:uc010zql.2";
+chr20 hg19_knownGene exon 3779059 3779110 0.000000 + . gene_id "CDC25B"; transcript_id "AK299192:uc010zql.2";
+chr20 hg19_knownGene CDS 3780935 3780976 0.000000 + 1 gene_id "CDC25B"; transcript_id "AK299192:uc010zql.2";
+chr20 hg19_knownGene exon 3780935 3780976 0.000000 + . gene_id "CDC25B"; transcript_id "AK299192:uc010zql.2";
+chr20 hg19_knownGene CDS 3781109 3781145 0.000000 + 1 gene_id "CDC25B"; transcript_id "AK299192:uc010zql.2";
+chr20 hg19_knownGene exon 3781109 3781145 0.000000 + . gene_id "CDC25B"; transcript_id "AK299192:uc010zql.2";
+chr20 hg19_knownGene CDS 3781390 3781512 0.000000 + 0 gene_id "CDC25B"; transcript_id "AK299192:uc010zql.2";
+chr20 hg19_knownGene exon 3781390 3781512 0.000000 + . gene_id "CDC25B"; transcript_id "AK299192:uc010zql.2";
+chr20 hg19_knownGene CDS 3781618 3781740 0.000000 + 0 gene_id "CDC25B"; transcript_id "AK299192:uc010zql.2";
+chr20 hg19_knownGene exon 3781618 3781740 0.000000 + . gene_id "CDC25B"; transcript_id "AK299192:uc010zql.2";
+chr20 hg19_knownGene CDS 3781901 3782035 0.000000 + 0 gene_id "CDC25B"; transcript_id "AK299192:uc010zql.2";
+chr20 hg19_knownGene exon 3781901 3782035 0.000000 + . gene_id "CDC25B"; transcript_id "AK299192:uc010zql.2";
+chr20 hg19_knownGene CDS 3782369 3782449 0.000000 + 0 gene_id "CDC25B"; transcript_id "AK299192:uc010zql.2";
+chr20 hg19_knownGene exon 3782369 3782449 0.000000 + . gene_id "CDC25B"; transcript_id "AK299192:uc010zql.2";
+chr20 hg19_knownGene CDS 3782571 3782747 0.000000 + 0 gene_id "CDC25B"; transcript_id "AK299192:uc010zql.2";
+chr20 hg19_knownGene exon 3782571 3782747 0.000000 + . gene_id "CDC25B"; transcript_id "AK299192:uc010zql.2";
+chr20 hg19_knownGene CDS 3782928 3783023 0.000000 + 0 gene_id "CDC25B"; transcript_id "AK299192:uc010zql.2";
+chr20 hg19_knownGene exon 3782928 3783023 0.000000 + . gene_id "CDC25B"; transcript_id "AK299192:uc010zql.2";
+chr20 hg19_knownGene CDS 3783557 3783619 0.000000 + 0 gene_id "CDC25B"; transcript_id "AK299192:uc010zql.2";
+chr20 hg19_knownGene exon 3783557 3783619 0.000000 + . gene_id "CDC25B"; transcript_id "AK299192:uc010zql.2";
+chr20 hg19_knownGene CDS 3783755 3783853 0.000000 + 0 gene_id "CDC25B"; transcript_id "AK299192:uc010zql.2";
+chr20 hg19_knownGene exon 3783755 3783853 0.000000 + . gene_id "CDC25B"; transcript_id "AK299192:uc010zql.2";
+chr20 hg19_knownGene CDS 3784051 3784184 0.000000 + 0 gene_id "CDC25B"; transcript_id "AK299192:uc010zql.2";
+chr20 hg19_knownGene exon 3784051 3784184 0.000000 + . gene_id "CDC25B"; transcript_id "AK299192:uc010zql.2";
+chr20 hg19_knownGene CDS 3785216 3785327 0.000000 + 1 gene_id "CDC25B"; transcript_id "AK299192:uc010zql.2";
+chr20 hg19_knownGene exon 3785216 3785327 0.000000 + . gene_id "CDC25B"; transcript_id "AK299192:uc010zql.2";
+chr20 hg19_knownGene CDS 3785468 3785605 0.000000 + 0 gene_id "CDC25B"; transcript_id "AK299192:uc010zql.2";
+chr20 hg19_knownGene exon 3785468 3786761 0.000000 + . gene_id "CDC25B"; transcript_id "AK299192:uc010zql.2";
+chr20 hg19_knownGene CDS 3767779 3767786 0.000000 + 0 gene_id "CDC25B"; transcript_id "AK299028:uc010zqm.2";
+chr20 hg19_knownGene exon 3767578 3767786 0.000000 + . gene_id "CDC25B"; transcript_id "AK299028:uc010zqm.2";
+chr20 hg19_knownGene CDS 3778269 3778396 0.000000 + 1 gene_id "CDC25B"; transcript_id "AK299028:uc010zqm.2";
+chr20 hg19_knownGene exon 3778269 3778396 0.000000 + . gene_id "CDC25B"; transcript_id "AK299028:uc010zqm.2";
+chr20 hg19_knownGene CDS 3779059 3779110 0.000000 + 2 gene_id "CDC25B"; transcript_id "AK299028:uc010zqm.2";
+chr20 hg19_knownGene exon 3779059 3779110 0.000000 + . gene_id "CDC25B"; transcript_id "AK299028:uc010zqm.2";
+chr20 hg19_knownGene CDS 3780935 3780976 0.000000 + 1 gene_id "CDC25B"; transcript_id "AK299028:uc010zqm.2";
+chr20 hg19_knownGene exon 3780935 3780976 0.000000 + . gene_id "CDC25B"; transcript_id "AK299028:uc010zqm.2";
+chr20 hg19_knownGene CDS 3781109 3781145 0.000000 + 1 gene_id "CDC25B"; transcript_id "AK299028:uc010zqm.2";
+chr20 hg19_knownGene exon 3781109 3781145 0.000000 + . gene_id "CDC25B"; transcript_id "AK299028:uc010zqm.2";
+chr20 hg19_knownGene CDS 3781390 3781512 0.000000 + 0 gene_id "CDC25B"; transcript_id "AK299028:uc010zqm.2";
+chr20 hg19_knownGene exon 3781390 3781512 0.000000 + . gene_id "CDC25B"; transcript_id "AK299028:uc010zqm.2";
+chr20 hg19_knownGene CDS 3781618 3781740 0.000000 + 0 gene_id "CDC25B"; transcript_id "AK299028:uc010zqm.2";
+chr20 hg19_knownGene exon 3781618 3781740 0.000000 + . gene_id "CDC25B"; transcript_id "AK299028:uc010zqm.2";
+chr20 hg19_knownGene CDS 3781901 3782035 0.000000 + 0 gene_id "CDC25B"; transcript_id "AK299028:uc010zqm.2";
+chr20 hg19_knownGene exon 3781901 3782035 0.000000 + . gene_id "CDC25B"; transcript_id "AK299028:uc010zqm.2";
+chr20 hg19_knownGene CDS 3782571 3782747 0.000000 + 0 gene_id "CDC25B"; transcript_id "AK299028:uc010zqm.2";
+chr20 hg19_knownGene exon 3782571 3782747 0.000000 + . gene_id "CDC25B"; transcript_id "AK299028:uc010zqm.2";
+chr20 hg19_knownGene CDS 3782928 3783023 0.000000 + 0 gene_id "CDC25B"; transcript_id "AK299028:uc010zqm.2";
+chr20 hg19_knownGene exon 3782928 3783023 0.000000 + . gene_id "CDC25B"; transcript_id "AK299028:uc010zqm.2";
+chr20 hg19_knownGene CDS 3783557 3783619 0.000000 + 0 gene_id "CDC25B"; transcript_id "AK299028:uc010zqm.2";
+chr20 hg19_knownGene exon 3783557 3783619 0.000000 + . gene_id "CDC25B"; transcript_id "AK299028:uc010zqm.2";
+chr20 hg19_knownGene CDS 3783755 3783853 0.000000 + 0 gene_id "CDC25B"; transcript_id "AK299028:uc010zqm.2";
+chr20 hg19_knownGene exon 3783755 3783853 0.000000 + . gene_id "CDC25B"; transcript_id "AK299028:uc010zqm.2";
+chr20 hg19_knownGene CDS 3784051 3784184 0.000000 + 0 gene_id "CDC25B"; transcript_id "AK299028:uc010zqm.2";
+chr20 hg19_knownGene exon 3784051 3784184 0.000000 + . gene_id "CDC25B"; transcript_id "AK299028:uc010zqm.2";
+chr20 hg19_knownGene CDS 3785216 3785327 0.000000 + 1 gene_id "CDC25B"; transcript_id "AK299028:uc010zqm.2";
+chr20 hg19_knownGene exon 3785216 3785327 0.000000 + . gene_id "CDC25B"; transcript_id "AK299028:uc010zqm.2";
+chr20 hg19_knownGene CDS 3785468 3785605 0.000000 + 0 gene_id "CDC25B"; transcript_id "AK299028:uc010zqm.2";
+chr20 hg19_knownGene exon 3785468 3786761 0.000000 + . gene_id "CDC25B"; transcript_id "AK299028:uc010zqm.2";
+chr20 hg19_knownGene exon 3776386 3776526 0.000000 + . gene_id "CDC25B"; transcript_id "FR695900:uc002wjl.3";
+chr20 hg19_knownGene exon 3778269 3778396 0.000000 + . gene_id "CDC25B"; transcript_id "FR695900:uc002wjl.3";
+chr20 hg19_knownGene CDS 3779067 3779110 0.000000 + 0 gene_id "CDC25B"; transcript_id "FR695900:uc002wjl.3";
+chr20 hg19_knownGene exon 3779059 3779110 0.000000 + . gene_id "CDC25B"; transcript_id "FR695900:uc002wjl.3";
+chr20 hg19_knownGene CDS 3780935 3780976 0.000000 + 1 gene_id "CDC25B"; transcript_id "FR695900:uc002wjl.3";
+chr20 hg19_knownGene exon 3780935 3780976 0.000000 + . gene_id "CDC25B"; transcript_id "FR695900:uc002wjl.3";
+chr20 hg19_knownGene CDS 3781109 3781145 0.000000 + 1 gene_id "CDC25B"; transcript_id "FR695900:uc002wjl.3";
+chr20 hg19_knownGene exon 3781109 3781145 0.000000 + . gene_id "CDC25B"; transcript_id "FR695900:uc002wjl.3";
+chr20 hg19_knownGene CDS 3781390 3781512 0.000000 + 0 gene_id "CDC25B"; transcript_id "FR695900:uc002wjl.3";
+chr20 hg19_knownGene exon 3781390 3781512 0.000000 + . gene_id "CDC25B"; transcript_id "FR695900:uc002wjl.3";
+chr20 hg19_knownGene CDS 3781618 3781740 0.000000 + 0 gene_id "CDC25B"; transcript_id "FR695900:uc002wjl.3";
+chr20 hg19_knownGene exon 3781618 3781740 0.000000 + . gene_id "CDC25B"; transcript_id "FR695900:uc002wjl.3";
+chr20 hg19_knownGene CDS 3781901 3782035 0.000000 + 0 gene_id "CDC25B"; transcript_id "FR695900:uc002wjl.3";
+chr20 hg19_knownGene exon 3781901 3782035 0.000000 + . gene_id "CDC25B"; transcript_id "FR695900:uc002wjl.3";
+chr20 hg19_knownGene CDS 3782369 3782449 0.000000 + 0 gene_id "CDC25B"; transcript_id "FR695900:uc002wjl.3";
+chr20 hg19_knownGene exon 3782369 3782449 0.000000 + . gene_id "CDC25B"; transcript_id "FR695900:uc002wjl.3";
+chr20 hg19_knownGene CDS 3782571 3782747 0.000000 + 0 gene_id "CDC25B"; transcript_id "FR695900:uc002wjl.3";
+chr20 hg19_knownGene exon 3782571 3782747 0.000000 + . gene_id "CDC25B"; transcript_id "FR695900:uc002wjl.3";
+chr20 hg19_knownGene CDS 3782928 3783023 0.000000 + 0 gene_id "CDC25B"; transcript_id "FR695900:uc002wjl.3";
+chr20 hg19_knownGene exon 3782928 3783023 0.000000 + . gene_id "CDC25B"; transcript_id "FR695900:uc002wjl.3";
+chr20 hg19_knownGene CDS 3783557 3783619 0.000000 + 0 gene_id "CDC25B"; transcript_id "FR695900:uc002wjl.3";
+chr20 hg19_knownGene exon 3783557 3783619 0.000000 + . gene_id "CDC25B"; transcript_id "FR695900:uc002wjl.3";
+chr20 hg19_knownGene CDS 3783755 3783853 0.000000 + 0 gene_id "CDC25B"; transcript_id "FR695900:uc002wjl.3";
+chr20 hg19_knownGene exon 3783755 3783853 0.000000 + . gene_id "CDC25B"; transcript_id "FR695900:uc002wjl.3";
+chr20 hg19_knownGene CDS 3784051 3784184 0.000000 + 0 gene_id "CDC25B"; transcript_id "FR695900:uc002wjl.3";
+chr20 hg19_knownGene exon 3784051 3784184 0.000000 + . gene_id "CDC25B"; transcript_id "FR695900:uc002wjl.3";
+chr20 hg19_knownGene CDS 3785216 3785327 0.000000 + 1 gene_id "CDC25B"; transcript_id "FR695900:uc002wjl.3";
+chr20 hg19_knownGene exon 3785216 3785327 0.000000 + . gene_id "CDC25B"; transcript_id "FR695900:uc002wjl.3";
+chr20 hg19_knownGene CDS 3785468 3785605 0.000000 + 0 gene_id "CDC25B"; transcript_id "FR695900:uc002wjl.3";
+chr20 hg19_knownGene exon 3785468 3786761 0.000000 + . gene_id "CDC25B"; transcript_id "FR695900:uc002wjl.3";
+chr20 hg19_knownGene exon 3776386 3776526 0.000000 + . gene_id "CDC25B"; transcript_id "BX647988:uc002wjm.3";
+chr20 hg19_knownGene exon 3778311 3778396 0.000000 + . gene_id "CDC25B"; transcript_id "BX647988:uc002wjm.3";
+chr20 hg19_knownGene CDS 3779067 3779110 0.000000 + 0 gene_id "CDC25B"; transcript_id "BX647988:uc002wjm.3";
+chr20 hg19_knownGene exon 3779059 3779110 0.000000 + . gene_id "CDC25B"; transcript_id "BX647988:uc002wjm.3";
+chr20 hg19_knownGene CDS 3780935 3780976 0.000000 + 1 gene_id "CDC25B"; transcript_id "BX647988:uc002wjm.3";
+chr20 hg19_knownGene exon 3780935 3780976 0.000000 + . gene_id "CDC25B"; transcript_id "BX647988:uc002wjm.3";
+chr20 hg19_knownGene CDS 3781109 3781145 0.000000 + 1 gene_id "CDC25B"; transcript_id "BX647988:uc002wjm.3";
+chr20 hg19_knownGene exon 3781109 3781145 0.000000 + . gene_id "CDC25B"; transcript_id "BX647988:uc002wjm.3";
+chr20 hg19_knownGene CDS 3781390 3781512 0.000000 + 0 gene_id "CDC25B"; transcript_id "BX647988:uc002wjm.3";
+chr20 hg19_knownGene exon 3781390 3781512 0.000000 + . gene_id "CDC25B"; transcript_id "BX647988:uc002wjm.3";
+chr20 hg19_knownGene CDS 3781618 3781740 0.000000 + 0 gene_id "CDC25B"; transcript_id "BX647988:uc002wjm.3";
+chr20 hg19_knownGene exon 3781618 3781740 0.000000 + . gene_id "CDC25B"; transcript_id "BX647988:uc002wjm.3";
+chr20 hg19_knownGene CDS 3781901 3782035 0.000000 + 0 gene_id "CDC25B"; transcript_id "BX647988:uc002wjm.3";
+chr20 hg19_knownGene exon 3781901 3782035 0.000000 + . gene_id "CDC25B"; transcript_id "BX647988:uc002wjm.3";
+chr20 hg19_knownGene CDS 3782369 3782449 0.000000 + 0 gene_id "CDC25B"; transcript_id "BX647988:uc002wjm.3";
+chr20 hg19_knownGene exon 3782369 3782449 0.000000 + . gene_id "CDC25B"; transcript_id "BX647988:uc002wjm.3";
+chr20 hg19_knownGene CDS 3782571 3782747 0.000000 + 0 gene_id "CDC25B"; transcript_id "BX647988:uc002wjm.3";
+chr20 hg19_knownGene exon 3782571 3782747 0.000000 + . gene_id "CDC25B"; transcript_id "BX647988:uc002wjm.3";
+chr20 hg19_knownGene CDS 3782928 3783023 0.000000 + 0 gene_id "CDC25B"; transcript_id "BX647988:uc002wjm.3";
+chr20 hg19_knownGene exon 3782928 3783023 0.000000 + . gene_id "CDC25B"; transcript_id "BX647988:uc002wjm.3";
+chr20 hg19_knownGene CDS 3783557 3783619 0.000000 + 0 gene_id "CDC25B"; transcript_id "BX647988:uc002wjm.3";
+chr20 hg19_knownGene exon 3783557 3783619 0.000000 + . gene_id "CDC25B"; transcript_id "BX647988:uc002wjm.3";
+chr20 hg19_knownGene CDS 3783755 3783853 0.000000 + 0 gene_id "CDC25B"; transcript_id "BX647988:uc002wjm.3";
+chr20 hg19_knownGene exon 3783755 3783853 0.000000 + . gene_id "CDC25B"; transcript_id "BX647988:uc002wjm.3";
+chr20 hg19_knownGene CDS 3784051 3784184 0.000000 + 0 gene_id "CDC25B"; transcript_id "BX647988:uc002wjm.3";
+chr20 hg19_knownGene exon 3784051 3784184 0.000000 + . gene_id "CDC25B"; transcript_id "BX647988:uc002wjm.3";
+chr20 hg19_knownGene CDS 3785216 3785327 0.000000 + 1 gene_id "CDC25B"; transcript_id "BX647988:uc002wjm.3";
+chr20 hg19_knownGene exon 3785216 3785327 0.000000 + . gene_id "CDC25B"; transcript_id "BX647988:uc002wjm.3";
+chr20 hg19_knownGene CDS 3785468 3785605 0.000000 + 0 gene_id "CDC25B"; transcript_id "BX647988:uc002wjm.3";
+chr20 hg19_knownGene exon 3785468 3786761 0.000000 + . gene_id "CDC25B"; transcript_id "BX647988:uc002wjm.3";
+chr20 hg19_knownGene exon 3776386 3776526 0.000000 + . gene_id "CDC25B"; transcript_id "FR695901:uc021waa.1";
+chr20 hg19_knownGene exon 3778269 3778396 0.000000 + . gene_id "CDC25B"; transcript_id "FR695901:uc021waa.1";
+chr20 hg19_knownGene CDS 3779067 3779110 0.000000 + 0 gene_id "CDC25B"; transcript_id "FR695901:uc021waa.1";
+chr20 hg19_knownGene exon 3779059 3779110 0.000000 + . gene_id "CDC25B"; transcript_id "FR695901:uc021waa.1";
+chr20 hg19_knownGene CDS 3780935 3780976 0.000000 + 1 gene_id "CDC25B"; transcript_id "FR695901:uc021waa.1";
+chr20 hg19_knownGene exon 3780935 3780976 0.000000 + . gene_id "CDC25B"; transcript_id "FR695901:uc021waa.1";
+chr20 hg19_knownGene CDS 3781109 3781145 0.000000 + 1 gene_id "CDC25B"; transcript_id "FR695901:uc021waa.1";
+chr20 hg19_knownGene exon 3781109 3781145 0.000000 + . gene_id "CDC25B"; transcript_id "FR695901:uc021waa.1";
+chr20 hg19_knownGene CDS 3781618 3781740 0.000000 + 0 gene_id "CDC25B"; transcript_id "FR695901:uc021waa.1";
+chr20 hg19_knownGene exon 3781618 3781740 0.000000 + . gene_id "CDC25B"; transcript_id "FR695901:uc021waa.1";
+chr20 hg19_knownGene CDS 3781901 3782035 0.000000 + 0 gene_id "CDC25B"; transcript_id "FR695901:uc021waa.1";
+chr20 hg19_knownGene exon 3781901 3782035 0.000000 + . gene_id "CDC25B"; transcript_id "FR695901:uc021waa.1";
+chr20 hg19_knownGene CDS 3782369 3782449 0.000000 + 0 gene_id "CDC25B"; transcript_id "FR695901:uc021waa.1";
+chr20 hg19_knownGene exon 3782369 3782449 0.000000 + . gene_id "CDC25B"; transcript_id "FR695901:uc021waa.1";
+chr20 hg19_knownGene CDS 3782571 3782747 0.000000 + 0 gene_id "CDC25B"; transcript_id "FR695901:uc021waa.1";
+chr20 hg19_knownGene exon 3782571 3782747 0.000000 + . gene_id "CDC25B"; transcript_id "FR695901:uc021waa.1";
+chr20 hg19_knownGene CDS 3782928 3783023 0.000000 + 0 gene_id "CDC25B"; transcript_id "FR695901:uc021waa.1";
+chr20 hg19_knownGene exon 3782928 3783023 0.000000 + . gene_id "CDC25B"; transcript_id "FR695901:uc021waa.1";
+chr20 hg19_knownGene CDS 3783557 3783619 0.000000 + 0 gene_id "CDC25B"; transcript_id "FR695901:uc021waa.1";
+chr20 hg19_knownGene exon 3783557 3783619 0.000000 + . gene_id "CDC25B"; transcript_id "FR695901:uc021waa.1";
+chr20 hg19_knownGene CDS 3783755 3783853 0.000000 + 0 gene_id "CDC25B"; transcript_id "FR695901:uc021waa.1";
+chr20 hg19_knownGene exon 3783755 3783853 0.000000 + . gene_id "CDC25B"; transcript_id "FR695901:uc021waa.1";
+chr20 hg19_knownGene CDS 3784051 3784184 0.000000 + 0 gene_id "CDC25B"; transcript_id "FR695901:uc021waa.1";
+chr20 hg19_knownGene exon 3784051 3784184 0.000000 + . gene_id "CDC25B"; transcript_id "FR695901:uc021waa.1";
+chr20 hg19_knownGene CDS 3785216 3785327 0.000000 + 1 gene_id "CDC25B"; transcript_id "FR695901:uc021waa.1";
+chr20 hg19_knownGene exon 3785216 3785327 0.000000 + . gene_id "CDC25B"; transcript_id "FR695901:uc021waa.1";
+chr20 hg19_knownGene CDS 3785468 3785605 0.000000 + 0 gene_id "CDC25B"; transcript_id "FR695901:uc021waa.1";
+chr20 hg19_knownGene exon 3785468 3786761 0.000000 + . gene_id "CDC25B"; transcript_id "FR695901:uc021waa.1";
+chr20 hg19_knownGene CDS 3777179 3777378 0.000000 + 0 gene_id "CDC25B"; transcript_id "NM_021873:uc002wjn.3";
+chr20 hg19_knownGene exon 3776401 3777378 0.000000 + . gene_id "CDC25B"; transcript_id "NM_021873:uc002wjn.3";
+chr20 hg19_knownGene CDS 3778269 3778396 0.000000 + 1 gene_id "CDC25B"; transcript_id "NM_021873:uc002wjn.3";
+chr20 hg19_knownGene exon 3778269 3778396 0.000000 + . gene_id "CDC25B"; transcript_id "NM_021873:uc002wjn.3";
+chr20 hg19_knownGene CDS 3779059 3779110 0.000000 + 2 gene_id "CDC25B"; transcript_id "NM_021873:uc002wjn.3";
+chr20 hg19_knownGene exon 3779059 3779110 0.000000 + . gene_id "CDC25B"; transcript_id "NM_021873:uc002wjn.3";
+chr20 hg19_knownGene CDS 3780935 3780976 0.000000 + 1 gene_id "CDC25B"; transcript_id "NM_021873:uc002wjn.3";
+chr20 hg19_knownGene exon 3780935 3780976 0.000000 + . gene_id "CDC25B"; transcript_id "NM_021873:uc002wjn.3";
+chr20 hg19_knownGene CDS 3781109 3781145 0.000000 + 1 gene_id "CDC25B"; transcript_id "NM_021873:uc002wjn.3";
+chr20 hg19_knownGene exon 3781109 3781145 0.000000 + . gene_id "CDC25B"; transcript_id "NM_021873:uc002wjn.3";
+chr20 hg19_knownGene CDS 3781390 3781512 0.000000 + 0 gene_id "CDC25B"; transcript_id "NM_021873:uc002wjn.3";
+chr20 hg19_knownGene exon 3781390 3781512 0.000000 + . gene_id "CDC25B"; transcript_id "NM_021873:uc002wjn.3";
+chr20 hg19_knownGene CDS 3781618 3781740 0.000000 + 0 gene_id "CDC25B"; transcript_id "NM_021873:uc002wjn.3";
+chr20 hg19_knownGene exon 3781618 3781740 0.000000 + . gene_id "CDC25B"; transcript_id "NM_021873:uc002wjn.3";
+chr20 hg19_knownGene CDS 3781901 3782035 0.000000 + 0 gene_id "CDC25B"; transcript_id "NM_021873:uc002wjn.3";
+chr20 hg19_knownGene exon 3781901 3782035 0.000000 + . gene_id "CDC25B"; transcript_id "NM_021873:uc002wjn.3";
+chr20 hg19_knownGene CDS 3782369 3782449 0.000000 + 0 gene_id "CDC25B"; transcript_id "NM_021873:uc002wjn.3";
+chr20 hg19_knownGene exon 3782369 3782449 0.000000 + . gene_id "CDC25B"; transcript_id "NM_021873:uc002wjn.3";
+chr20 hg19_knownGene CDS 3782571 3782747 0.000000 + 0 gene_id "CDC25B"; transcript_id "NM_021873:uc002wjn.3";
+chr20 hg19_knownGene exon 3782571 3782747 0.000000 + . gene_id "CDC25B"; transcript_id "NM_021873:uc002wjn.3";
+chr20 hg19_knownGene CDS 3782928 3783023 0.000000 + 0 gene_id "CDC25B"; transcript_id "NM_021873:uc002wjn.3";
+chr20 hg19_knownGene exon 3782928 3783023 0.000000 + . gene_id "CDC25B"; transcript_id "NM_021873:uc002wjn.3";
+chr20 hg19_knownGene CDS 3783557 3783619 0.000000 + 0 gene_id "CDC25B"; transcript_id "NM_021873:uc002wjn.3";
+chr20 hg19_knownGene exon 3783557 3783619 0.000000 + . gene_id "CDC25B"; transcript_id "NM_021873:uc002wjn.3";
+chr20 hg19_knownGene CDS 3783755 3783853 0.000000 + 0 gene_id "CDC25B"; transcript_id "NM_021873:uc002wjn.3";
+chr20 hg19_knownGene exon 3783755 3783853 0.000000 + . gene_id "CDC25B"; transcript_id "NM_021873:uc002wjn.3";
+chr20 hg19_knownGene CDS 3784051 3784184 0.000000 + 0 gene_id "CDC25B"; transcript_id "NM_021873:uc002wjn.3";
+chr20 hg19_knownGene exon 3784051 3784184 0.000000 + . gene_id "CDC25B"; transcript_id "NM_021873:uc002wjn.3";
+chr20 hg19_knownGene CDS 3785216 3785327 0.000000 + 1 gene_id "CDC25B"; transcript_id "NM_021873:uc002wjn.3";
+chr20 hg19_knownGene exon 3785216 3785327 0.000000 + . gene_id "CDC25B"; transcript_id "NM_021873:uc002wjn.3";
+chr20 hg19_knownGene CDS 3785468 3785605 0.000000 + 0 gene_id "CDC25B"; transcript_id "NM_021873:uc002wjn.3";
+chr20 hg19_knownGene exon 3785468 3786761 0.000000 + . gene_id "CDC25B"; transcript_id "NM_021873:uc002wjn.3";
+chr20 hg19_knownGene CDS 3777179 3777378 0.000000 + 0 gene_id "CDC25B"; transcript_id "NM_004358:uc002wjo.3";
+chr20 hg19_knownGene exon 3776401 3777378 0.000000 + . gene_id "CDC25B"; transcript_id "NM_004358:uc002wjo.3";
+chr20 hg19_knownGene CDS 3778311 3778396 0.000000 + 1 gene_id "CDC25B"; transcript_id "NM_004358:uc002wjo.3";
+chr20 hg19_knownGene exon 3778311 3778396 0.000000 + . gene_id "CDC25B"; transcript_id "NM_004358:uc002wjo.3";
+chr20 hg19_knownGene CDS 3779059 3779110 0.000000 + 2 gene_id "CDC25B"; transcript_id "NM_004358:uc002wjo.3";
+chr20 hg19_knownGene exon 3779059 3779110 0.000000 + . gene_id "CDC25B"; transcript_id "NM_004358:uc002wjo.3";
+chr20 hg19_knownGene CDS 3780935 3780976 0.000000 + 1 gene_id "CDC25B"; transcript_id "NM_004358:uc002wjo.3";
+chr20 hg19_knownGene exon 3780935 3780976 0.000000 + . gene_id "CDC25B"; transcript_id "NM_004358:uc002wjo.3";
+chr20 hg19_knownGene CDS 3781109 3781145 0.000000 + 1 gene_id "CDC25B"; transcript_id "NM_004358:uc002wjo.3";
+chr20 hg19_knownGene exon 3781109 3781145 0.000000 + . gene_id "CDC25B"; transcript_id "NM_004358:uc002wjo.3";
+chr20 hg19_knownGene CDS 3781390 3781512 0.000000 + 0 gene_id "CDC25B"; transcript_id "NM_004358:uc002wjo.3";
+chr20 hg19_knownGene exon 3781390 3781512 0.000000 + . gene_id "CDC25B"; transcript_id "NM_004358:uc002wjo.3";
+chr20 hg19_knownGene CDS 3781618 3781740 0.000000 + 0 gene_id "CDC25B"; transcript_id "NM_004358:uc002wjo.3";
+chr20 hg19_knownGene exon 3781618 3781740 0.000000 + . gene_id "CDC25B"; transcript_id "NM_004358:uc002wjo.3";
+chr20 hg19_knownGene CDS 3781901 3782035 0.000000 + 0 gene_id "CDC25B"; transcript_id "NM_004358:uc002wjo.3";
+chr20 hg19_knownGene exon 3781901 3782035 0.000000 + . gene_id "CDC25B"; transcript_id "NM_004358:uc002wjo.3";
+chr20 hg19_knownGene CDS 3782369 3782449 0.000000 + 0 gene_id "CDC25B"; transcript_id "NM_004358:uc002wjo.3";
+chr20 hg19_knownGene exon 3782369 3782449 0.000000 + . gene_id "CDC25B"; transcript_id "NM_004358:uc002wjo.3";
+chr20 hg19_knownGene CDS 3782571 3782747 0.000000 + 0 gene_id "CDC25B"; transcript_id "NM_004358:uc002wjo.3";
+chr20 hg19_knownGene exon 3782571 3782747 0.000000 + . gene_id "CDC25B"; transcript_id "NM_004358:uc002wjo.3";
+chr20 hg19_knownGene CDS 3782928 3783023 0.000000 + 0 gene_id "CDC25B"; transcript_id "NM_004358:uc002wjo.3";
+chr20 hg19_knownGene exon 3782928 3783023 0.000000 + . gene_id "CDC25B"; transcript_id "NM_004358:uc002wjo.3";
+chr20 hg19_knownGene CDS 3783557 3783619 0.000000 + 0 gene_id "CDC25B"; transcript_id "NM_004358:uc002wjo.3";
+chr20 hg19_knownGene exon 3783557 3783619 0.000000 + . gene_id "CDC25B"; transcript_id "NM_004358:uc002wjo.3";
+chr20 hg19_knownGene CDS 3783755 3783853 0.000000 + 0 gene_id "CDC25B"; transcript_id "NM_004358:uc002wjo.3";
+chr20 hg19_knownGene exon 3783755 3783853 0.000000 + . gene_id "CDC25B"; transcript_id "NM_004358:uc002wjo.3";
+chr20 hg19_knownGene CDS 3784051 3784184 0.000000 + 0 gene_id "CDC25B"; transcript_id "NM_004358:uc002wjo.3";
+chr20 hg19_knownGene exon 3784051 3784184 0.000000 + . gene_id "CDC25B"; transcript_id "NM_004358:uc002wjo.3";
+chr20 hg19_knownGene CDS 3785216 3785327 0.000000 + 1 gene_id "CDC25B"; transcript_id "NM_004358:uc002wjo.3";
+chr20 hg19_knownGene exon 3785216 3785327 0.000000 + . gene_id "CDC25B"; transcript_id "NM_004358:uc002wjo.3";
+chr20 hg19_knownGene CDS 3785468 3785605 0.000000 + 0 gene_id "CDC25B"; transcript_id "NM_004358:uc002wjo.3";
+chr20 hg19_knownGene exon 3785468 3786761 0.000000 + . gene_id "CDC25B"; transcript_id "NM_004358:uc002wjo.3";
+chr20 hg19_knownGene CDS 3777179 3777378 0.000000 + 0 gene_id "CDC25B"; transcript_id "NM_021872:uc002wjp.3";
+chr20 hg19_knownGene exon 3776401 3777378 0.000000 + . gene_id "CDC25B"; transcript_id "NM_021872:uc002wjp.3";
+chr20 hg19_knownGene CDS 3778269 3778396 0.000000 + 1 gene_id "CDC25B"; transcript_id "NM_021872:uc002wjp.3";
+chr20 hg19_knownGene exon 3778269 3778396 0.000000 + . gene_id "CDC25B"; transcript_id "NM_021872:uc002wjp.3";
+chr20 hg19_knownGene CDS 3779059 3779110 0.000000 + 2 gene_id "CDC25B"; transcript_id "NM_021872:uc002wjp.3";
+chr20 hg19_knownGene exon 3779059 3779110 0.000000 + . gene_id "CDC25B"; transcript_id "NM_021872:uc002wjp.3";
+chr20 hg19_knownGene CDS 3780935 3780976 0.000000 + 1 gene_id "CDC25B"; transcript_id "NM_021872:uc002wjp.3";
+chr20 hg19_knownGene exon 3780935 3780976 0.000000 + . gene_id "CDC25B"; transcript_id "NM_021872:uc002wjp.3";
+chr20 hg19_knownGene CDS 3781109 3781145 0.000000 + 1 gene_id "CDC25B"; transcript_id "NM_021872:uc002wjp.3";
+chr20 hg19_knownGene exon 3781109 3781145 0.000000 + . gene_id "CDC25B"; transcript_id "NM_021872:uc002wjp.3";
+chr20 hg19_knownGene CDS 3781618 3781740 0.000000 + 0 gene_id "CDC25B"; transcript_id "NM_021872:uc002wjp.3";
+chr20 hg19_knownGene exon 3781618 3781740 0.000000 + . gene_id "CDC25B"; transcript_id "NM_021872:uc002wjp.3";
+chr20 hg19_knownGene CDS 3781901 3782035 0.000000 + 0 gene_id "CDC25B"; transcript_id "NM_021872:uc002wjp.3";
+chr20 hg19_knownGene exon 3781901 3782035 0.000000 + . gene_id "CDC25B"; transcript_id "NM_021872:uc002wjp.3";
+chr20 hg19_knownGene CDS 3782369 3782449 0.000000 + 0 gene_id "CDC25B"; transcript_id "NM_021872:uc002wjp.3";
+chr20 hg19_knownGene exon 3782369 3782449 0.000000 + . gene_id "CDC25B"; transcript_id "NM_021872:uc002wjp.3";
+chr20 hg19_knownGene CDS 3782571 3782747 0.000000 + 0 gene_id "CDC25B"; transcript_id "NM_021872:uc002wjp.3";
+chr20 hg19_knownGene exon 3782571 3782747 0.000000 + . gene_id "CDC25B"; transcript_id "NM_021872:uc002wjp.3";
+chr20 hg19_knownGene CDS 3782928 3783023 0.000000 + 0 gene_id "CDC25B"; transcript_id "NM_021872:uc002wjp.3";
+chr20 hg19_knownGene exon 3782928 3783023 0.000000 + . gene_id "CDC25B"; transcript_id "NM_021872:uc002wjp.3";
+chr20 hg19_knownGene CDS 3783557 3783619 0.000000 + 0 gene_id "CDC25B"; transcript_id "NM_021872:uc002wjp.3";
+chr20 hg19_knownGene exon 3783557 3783619 0.000000 + . gene_id "CDC25B"; transcript_id "NM_021872:uc002wjp.3";
+chr20 hg19_knownGene CDS 3783755 3783853 0.000000 + 0 gene_id "CDC25B"; transcript_id "NM_021872:uc002wjp.3";
+chr20 hg19_knownGene exon 3783755 3783853 0.000000 + . gene_id "CDC25B"; transcript_id "NM_021872:uc002wjp.3";
+chr20 hg19_knownGene CDS 3784051 3784184 0.000000 + 0 gene_id "CDC25B"; transcript_id "NM_021872:uc002wjp.3";
+chr20 hg19_knownGene exon 3784051 3784184 0.000000 + . gene_id "CDC25B"; transcript_id "NM_021872:uc002wjp.3";
+chr20 hg19_knownGene CDS 3785216 3785327 0.000000 + 1 gene_id "CDC25B"; transcript_id "NM_021872:uc002wjp.3";
+chr20 hg19_knownGene exon 3785216 3785327 0.000000 + . gene_id "CDC25B"; transcript_id "NM_021872:uc002wjp.3";
+chr20 hg19_knownGene CDS 3785468 3785605 0.000000 + 0 gene_id "CDC25B"; transcript_id "NM_021872:uc002wjp.3";
+chr20 hg19_knownGene exon 3785468 3786761 0.000000 + . gene_id "CDC25B"; transcript_id "NM_021872:uc002wjp.3";
+chr20 hg19_knownGene exon 3780717 3780976 0.000000 + . gene_id "CDC25B"; transcript_id "BX640836:uc002wjq.3";
+chr20 hg19_knownGene exon 3781109 3781145 0.000000 + . gene_id "CDC25B"; transcript_id "BX640836:uc002wjq.3";
+chr20 hg19_knownGene CDS 3781636 3781740 0.000000 + 0 gene_id "CDC25B"; transcript_id "BX640836:uc002wjq.3";
+chr20 hg19_knownGene exon 3781618 3781740 0.000000 + . gene_id "CDC25B"; transcript_id "BX640836:uc002wjq.3";
+chr20 hg19_knownGene CDS 3781901 3782035 0.000000 + 0 gene_id "CDC25B"; transcript_id "BX640836:uc002wjq.3";
+chr20 hg19_knownGene exon 3781901 3782035 0.000000 + . gene_id "CDC25B"; transcript_id "BX640836:uc002wjq.3";
+chr20 hg19_knownGene CDS 3782369 3782449 0.000000 + 0 gene_id "CDC25B"; transcript_id "BX640836:uc002wjq.3";
+chr20 hg19_knownGene exon 3782369 3782449 0.000000 + . gene_id "CDC25B"; transcript_id "BX640836:uc002wjq.3";
+chr20 hg19_knownGene CDS 3782571 3782747 0.000000 + 0 gene_id "CDC25B"; transcript_id "BX640836:uc002wjq.3";
+chr20 hg19_knownGene exon 3782571 3782747 0.000000 + . gene_id "CDC25B"; transcript_id "BX640836:uc002wjq.3";
+chr20 hg19_knownGene CDS 3782928 3783023 0.000000 + 0 gene_id "CDC25B"; transcript_id "BX640836:uc002wjq.3";
+chr20 hg19_knownGene exon 3782928 3783023 0.000000 + . gene_id "CDC25B"; transcript_id "BX640836:uc002wjq.3";
+chr20 hg19_knownGene CDS 3783557 3783619 0.000000 + 0 gene_id "CDC25B"; transcript_id "BX640836:uc002wjq.3";
+chr20 hg19_knownGene exon 3783557 3783619 0.000000 + . gene_id "CDC25B"; transcript_id "BX640836:uc002wjq.3";
+chr20 hg19_knownGene CDS 3783755 3783853 0.000000 + 0 gene_id "CDC25B"; transcript_id "BX640836:uc002wjq.3";
+chr20 hg19_knownGene exon 3783755 3783853 0.000000 + . gene_id "CDC25B"; transcript_id "BX640836:uc002wjq.3";
+chr20 hg19_knownGene CDS 3784051 3784184 0.000000 + 0 gene_id "CDC25B"; transcript_id "BX640836:uc002wjq.3";
+chr20 hg19_knownGene exon 3784051 3784184 0.000000 + . gene_id "CDC25B"; transcript_id "BX640836:uc002wjq.3";
+chr20 hg19_knownGene CDS 3785216 3785327 0.000000 + 1 gene_id "CDC25B"; transcript_id "BX640836:uc002wjq.3";
+chr20 hg19_knownGene exon 3785216 3785327 0.000000 + . gene_id "CDC25B"; transcript_id "BX640836:uc002wjq.3";
+chr20 hg19_knownGene CDS 3785468 3785605 0.000000 + 0 gene_id "CDC25B"; transcript_id "BX640836:uc002wjq.3";
+chr20 hg19_knownGene exon 3785468 3786761 0.000000 + . gene_id "CDC25B"; transcript_id "BX640836:uc002wjq.3";
+chr20 hg19_knownGene exon 3789141 3789249 0.000000 + . gene_id "BC042140"; transcript_id "BC042140:uc002wjr.3";
+chr20 hg19_knownGene exon 3790544 3790661 0.000000 + . gene_id "BC042140"; transcript_id "BC042140:uc002wjr.3";
+chr20 hg19_knownGene exon 3792177 3792388 0.000000 + . gene_id "BC042140"; transcript_id "BC042140:uc002wjr.3";
+chr20 hg19_knownGene exon 3792815 3793081 0.000000 + . gene_id "BC042140"; transcript_id "BC042140:uc002wjr.3";
+chr20 hg19_knownGene exon 3801171 3801405 0.000000 + . gene_id "C20orf29"; transcript_id "BC011985:uc002wjt.3";
+chr20 hg19_knownGene exon 3802749 3802940 0.000000 + . gene_id "C20orf29"; transcript_id "BC011985:uc002wjt.3";
+chr20 hg19_knownGene CDS 3804570 3804941 0.000000 + 0 gene_id "C20orf29"; transcript_id "BC011985:uc002wjt.3";
+chr20 hg19_knownGene exon 3804522 3805580 0.000000 + . gene_id "C20orf29"; transcript_id "BC011985:uc002wjt.3";
+chr20 hg19_knownGene exon 3801171 3801405 0.000000 + . gene_id "C20orf29"; transcript_id "NM_018347:uc002wju.2";
+chr20 hg19_knownGene CDS 3802765 3802940 0.000000 + 0 gene_id "C20orf29"; transcript_id "NM_018347:uc002wju.2";
+chr20 hg19_knownGene exon 3802749 3802940 0.000000 + . gene_id "C20orf29"; transcript_id "NM_018347:uc002wju.2";
+chr20 hg19_knownGene CDS 3804518 3804941 0.000000 + 1 gene_id "C20orf29"; transcript_id "NM_018347:uc002wju.2";
+chr20 hg19_knownGene exon 3804518 3805954 0.000000 + . gene_id "C20orf29"; transcript_id "NM_018347:uc002wju.2";
+chr20 hg19_knownGene exon 3801171 3801349 0.000000 + . gene_id "C20orf29"; transcript_id "NM_001204447:uc002wjs.2";
+chr20 hg19_knownGene CDS 3802765 3802940 0.000000 + 0 gene_id "C20orf29"; transcript_id "NM_001204447:uc002wjs.2";
+chr20 hg19_knownGene exon 3802749 3802940 0.000000 + . gene_id "C20orf29"; transcript_id "NM_001204447:uc002wjs.2";
+chr20 hg19_knownGene CDS 3804518 3804941 0.000000 + 1 gene_id "C20orf29"; transcript_id "NM_001204447:uc002wjs.2";
+chr20 hg19_knownGene exon 3804518 3805954 0.000000 + . gene_id "C20orf29"; transcript_id "NM_001204447:uc002wjs.2";
+chr20 hg19_knownGene exon 3801171 3801501 0.000000 + . gene_id "C20orf29"; transcript_id "NM_001204446:uc021wab.1";
+chr20 hg19_knownGene CDS 3802765 3802940 0.000000 + 0 gene_id "C20orf29"; transcript_id "NM_001204446:uc021wab.1";
+chr20 hg19_knownGene exon 3802749 3802940 0.000000 + . gene_id "C20orf29"; transcript_id "NM_001204446:uc021wab.1";
+chr20 hg19_knownGene CDS 3804518 3804941 0.000000 + 1 gene_id "C20orf29"; transcript_id "NM_001204446:uc021wab.1";
+chr20 hg19_knownGene exon 3804518 3805954 0.000000 + . gene_id "C20orf29"; transcript_id "NM_001204446:uc021wab.1";
+chr20 hg19_knownGene exon 3827446 3827550 0.000000 + . gene_id "MAVS"; transcript_id "AK130992:uc002wjv.3";
+chr20 hg19_knownGene CDS 3835272 3835388 0.000000 + 0 gene_id "MAVS"; transcript_id "AK130992:uc002wjv.3";
+chr20 hg19_knownGene exon 3835205 3835388 0.000000 + . gene_id "MAVS"; transcript_id "AK130992:uc002wjv.3";
+chr20 hg19_knownGene CDS 3838282 3838578 0.000000 + 0 gene_id "MAVS"; transcript_id "AK130992:uc002wjv.3";
+chr20 hg19_knownGene exon 3838282 3838615 0.000000 + . gene_id "MAVS"; transcript_id "AK130992:uc002wjv.3";
+chr20 hg19_knownGene exon 3827446 3827550 0.000000 + . gene_id "MAVS"; transcript_id "NM_001206491:uc002wjx.4";
+chr20 hg19_knownGene exon 3835205 3835388 0.000000 + . gene_id "MAVS"; transcript_id "NM_001206491:uc002wjx.4";
+chr20 hg19_knownGene CDS 3842110 3842151 0.000000 + 0 gene_id "MAVS"; transcript_id "NM_001206491:uc002wjx.4";
+chr20 hg19_knownGene exon 3841979 3842151 0.000000 + . gene_id "MAVS"; transcript_id "NM_001206491:uc002wjx.4";
+chr20 hg19_knownGene CDS 3842901 3843060 0.000000 + 0 gene_id "MAVS"; transcript_id "NM_001206491:uc002wjx.4";
+chr20 hg19_knownGene exon 3842901 3843060 0.000000 + . gene_id "MAVS"; transcript_id "NM_001206491:uc002wjx.4";
+chr20 hg19_knownGene CDS 3844903 3845435 0.000000 + 2 gene_id "MAVS"; transcript_id "NM_001206491:uc002wjx.4";
+chr20 hg19_knownGene exon 3844903 3845435 0.000000 + . gene_id "MAVS"; transcript_id "NM_001206491:uc002wjx.4";
+chr20 hg19_knownGene CDS 3846330 3846791 0.000000 + 0 gene_id "MAVS"; transcript_id "NM_001206491:uc002wjx.4";
+chr20 hg19_knownGene exon 3846330 3856770 0.000000 + . gene_id "MAVS"; transcript_id "NM_001206491:uc002wjx.4";
+chr20 hg19_knownGene exon 3827446 3827550 0.000000 + . gene_id "MAVS"; transcript_id "NM_020746:uc002wjw.4";
+chr20 hg19_knownGene CDS 3835272 3835388 0.000000 + 0 gene_id "MAVS"; transcript_id "NM_020746:uc002wjw.4";
+chr20 hg19_knownGene exon 3835205 3835388 0.000000 + . gene_id "MAVS"; transcript_id "NM_020746:uc002wjw.4";
+chr20 hg19_knownGene CDS 3838282 3838456 0.000000 + 0 gene_id "MAVS"; transcript_id "NM_020746:uc002wjw.4";
+chr20 hg19_knownGene exon 3838282 3838456 0.000000 + . gene_id "MAVS"; transcript_id "NM_020746:uc002wjw.4";
+chr20 hg19_knownGene CDS 3841979 3842151 0.000000 + 2 gene_id "MAVS"; transcript_id "NM_020746:uc002wjw.4";
+chr20 hg19_knownGene exon 3841979 3842151 0.000000 + . gene_id "MAVS"; transcript_id "NM_020746:uc002wjw.4";
+chr20 hg19_knownGene CDS 3842901 3843060 0.000000 + 0 gene_id "MAVS"; transcript_id "NM_020746:uc002wjw.4";
+chr20 hg19_knownGene exon 3842901 3843060 0.000000 + . gene_id "MAVS"; transcript_id "NM_020746:uc002wjw.4";
+chr20 hg19_knownGene CDS 3844903 3845435 0.000000 + 2 gene_id "MAVS"; transcript_id "NM_020746:uc002wjw.4";
+chr20 hg19_knownGene exon 3844903 3845435 0.000000 + . gene_id "MAVS"; transcript_id "NM_020746:uc002wjw.4";
+chr20 hg19_knownGene CDS 3846330 3846791 0.000000 + 0 gene_id "MAVS"; transcript_id "NM_020746:uc002wjw.4";
+chr20 hg19_knownGene exon 3846330 3856770 0.000000 + . gene_id "MAVS"; transcript_id "NM_020746:uc002wjw.4";
+chr20 hg19_knownGene exon 3827446 3827550 0.000000 + . gene_id "MAVS"; transcript_id "NR_037921:uc002wjy.4";
+chr20 hg19_knownGene exon 3835205 3835388 0.000000 + . gene_id "MAVS"; transcript_id "NR_037921:uc002wjy.4";
+chr20 hg19_knownGene exon 3838282 3838456 0.000000 + . gene_id "MAVS"; transcript_id "NR_037921:uc002wjy.4";
+chr20 hg19_knownGene exon 3842901 3843060 0.000000 + . gene_id "MAVS"; transcript_id "NR_037921:uc002wjy.4";
+chr20 hg19_knownGene CDS 3845184 3845435 0.000000 + 0 gene_id "MAVS"; transcript_id "NR_037921:uc002wjy.4";
+chr20 hg19_knownGene exon 3844903 3845435 0.000000 + . gene_id "MAVS"; transcript_id "NR_037921:uc002wjy.4";
+chr20 hg19_knownGene CDS 3846330 3846791 0.000000 + 0 gene_id "MAVS"; transcript_id "NR_037921:uc002wjy.4";
+chr20 hg19_knownGene exon 3846330 3856770 0.000000 + . gene_id "MAVS"; transcript_id "NR_037921:uc002wjy.4";
+chr20 hg19_knownGene exon 3867916 3869231 0.000000 - . gene_id "BC012193"; transcript_id "BC012193:uc002wjz.2";
+chr20 hg19_knownGene exon 3869232 3869724 0.000000 - . gene_id "BC012193"; transcript_id "BC012193:uc002wka.1";
+chr20 hg19_knownGene exon 3869742 3870375 0.000000 + . gene_id "PANK2"; transcript_id "AK310190:uc010gbd.1";
+chr20 hg19_knownGene exon 3871891 3872058 0.000000 + . gene_id "PANK2"; transcript_id "AK310190:uc010gbd.1";
+chr20 hg19_knownGene exon 3888573 3888925 0.000000 + . gene_id "PANK2"; transcript_id "AK310190:uc010gbd.1";
+chr20 hg19_knownGene exon 3891224 3891477 0.000000 + . gene_id "PANK2"; transcript_id "AK310190:uc010gbd.1";
+chr20 hg19_knownGene exon 3898149 3898210 0.000000 - . gene_id "MIR103B2"; transcript_id "NR_031722:uc021wac.1";
+chr20 hg19_knownGene exon 3898141 3898218 0.000000 + . gene_id "MIR103A2"; transcript_id "NR_029519:uc002wkg.3";
+chr20 hg19_knownGene exon 3869486 3869551 0.000000 + . gene_id "PANK2"; transcript_id "NM_024960:uc002wkb.3";
+chr20 hg19_knownGene CDS 3888818 3888925 0.000000 + 0 gene_id "PANK2"; transcript_id "NM_024960:uc002wkb.3";
+chr20 hg19_knownGene exon 3888573 3888925 0.000000 + . gene_id "PANK2"; transcript_id "NM_024960:uc002wkb.3";
+chr20 hg19_knownGene CDS 3891224 3891477 0.000000 + 0 gene_id "PANK2"; transcript_id "NM_024960:uc002wkb.3";
+chr20 hg19_knownGene exon 3891224 3891477 0.000000 + . gene_id "PANK2"; transcript_id "NM_024960:uc002wkb.3";
+chr20 hg19_knownGene CDS 3893105 3893281 0.000000 + 1 gene_id "PANK2"; transcript_id "NM_024960:uc002wkb.3";
+chr20 hg19_knownGene exon 3893105 3893281 0.000000 + . gene_id "PANK2"; transcript_id "NM_024960:uc002wkb.3";
+chr20 hg19_knownGene CDS 3897574 3897697 0.000000 + 1 gene_id "PANK2"; transcript_id "NM_024960:uc002wkb.3";
+chr20 hg19_knownGene exon 3897574 3897697 0.000000 + . gene_id "PANK2"; transcript_id "NM_024960:uc002wkb.3";
+chr20 hg19_knownGene CDS 3899318 3899443 0.000000 + 0 gene_id "PANK2"; transcript_id "NM_024960:uc002wkb.3";
+chr20 hg19_knownGene exon 3899318 3899443 0.000000 + . gene_id "PANK2"; transcript_id "NM_024960:uc002wkb.3";
+chr20 hg19_knownGene CDS 3903891 3903938 0.000000 + 0 gene_id "PANK2"; transcript_id "NM_024960:uc002wkb.3";
+chr20 hg19_knownGene exon 3903891 3904502 0.000000 + . gene_id "PANK2"; transcript_id "NM_024960:uc002wkb.3";
+chr20 hg19_knownGene CDS 3869748 3870375 0.000000 + 0 gene_id "PANK2"; transcript_id "NM_153638:uc002wkc.3";
+chr20 hg19_knownGene exon 3869742 3870375 0.000000 + . gene_id "PANK2"; transcript_id "NM_153638:uc002wkc.3";
+chr20 hg19_knownGene CDS 3888573 3888925 0.000000 + 2 gene_id "PANK2"; transcript_id "NM_153638:uc002wkc.3";
+chr20 hg19_knownGene exon 3888573 3888925 0.000000 + . gene_id "PANK2"; transcript_id "NM_153638:uc002wkc.3";
+chr20 hg19_knownGene CDS 3891224 3891477 0.000000 + 0 gene_id "PANK2"; transcript_id "NM_153638:uc002wkc.3";
+chr20 hg19_knownGene exon 3891224 3891477 0.000000 + . gene_id "PANK2"; transcript_id "NM_153638:uc002wkc.3";
+chr20 hg19_knownGene CDS 3893105 3893281 0.000000 + 1 gene_id "PANK2"; transcript_id "NM_153638:uc002wkc.3";
+chr20 hg19_knownGene exon 3893105 3893281 0.000000 + . gene_id "PANK2"; transcript_id "NM_153638:uc002wkc.3";
+chr20 hg19_knownGene CDS 3897574 3897697 0.000000 + 1 gene_id "PANK2"; transcript_id "NM_153638:uc002wkc.3";
+chr20 hg19_knownGene exon 3897574 3897697 0.000000 + . gene_id "PANK2"; transcript_id "NM_153638:uc002wkc.3";
+chr20 hg19_knownGene CDS 3899318 3899443 0.000000 + 0 gene_id "PANK2"; transcript_id "NM_153638:uc002wkc.3";
+chr20 hg19_knownGene exon 3899318 3899443 0.000000 + . gene_id "PANK2"; transcript_id "NM_153638:uc002wkc.3";
+chr20 hg19_knownGene CDS 3903891 3903938 0.000000 + 0 gene_id "PANK2"; transcript_id "NM_153638:uc002wkc.3";
+chr20 hg19_knownGene exon 3903891 3904502 0.000000 + . gene_id "PANK2"; transcript_id "NM_153638:uc002wkc.3";
+chr20 hg19_knownGene exon 3869742 3870375 0.000000 + . gene_id "PANK2"; transcript_id "BC009421:uc002wkd.3";
+chr20 hg19_knownGene exon 3888573 3888782 0.000000 + . gene_id "PANK2"; transcript_id "BC009421:uc002wkd.3";
+chr20 hg19_knownGene exon 3891224 3891477 0.000000 + . gene_id "PANK2"; transcript_id "BC009421:uc002wkd.3";
+chr20 hg19_knownGene exon 3893105 3893281 0.000000 + . gene_id "PANK2"; transcript_id "BC009421:uc002wkd.3";
+chr20 hg19_knownGene exon 3897574 3897697 0.000000 + . gene_id "PANK2"; transcript_id "BC009421:uc002wkd.3";
+chr20 hg19_knownGene exon 3899318 3899443 0.000000 + . gene_id "PANK2"; transcript_id "BC009421:uc002wkd.3";
+chr20 hg19_knownGene exon 3903891 3904502 0.000000 + . gene_id "PANK2"; transcript_id "BC009421:uc002wkd.3";
+chr20 hg19_knownGene exon 3870463 3870579 0.000000 + . gene_id "PANK2"; transcript_id "NM_153640:uc002wke.3";
+chr20 hg19_knownGene CDS 3888818 3888925 0.000000 + 0 gene_id "PANK2"; transcript_id "NM_153640:uc002wke.3";
+chr20 hg19_knownGene exon 3888573 3888925 0.000000 + . gene_id "PANK2"; transcript_id "NM_153640:uc002wke.3";
+chr20 hg19_knownGene CDS 3891224 3891477 0.000000 + 0 gene_id "PANK2"; transcript_id "NM_153640:uc002wke.3";
+chr20 hg19_knownGene exon 3891224 3891477 0.000000 + . gene_id "PANK2"; transcript_id "NM_153640:uc002wke.3";
+chr20 hg19_knownGene CDS 3893105 3893281 0.000000 + 1 gene_id "PANK2"; transcript_id "NM_153640:uc002wke.3";
+chr20 hg19_knownGene exon 3893105 3893281 0.000000 + . gene_id "PANK2"; transcript_id "NM_153640:uc002wke.3";
+chr20 hg19_knownGene CDS 3897574 3897697 0.000000 + 1 gene_id "PANK2"; transcript_id "NM_153640:uc002wke.3";
+chr20 hg19_knownGene exon 3897574 3897697 0.000000 + . gene_id "PANK2"; transcript_id "NM_153640:uc002wke.3";
+chr20 hg19_knownGene CDS 3899318 3899443 0.000000 + 0 gene_id "PANK2"; transcript_id "NM_153640:uc002wke.3";
+chr20 hg19_knownGene exon 3899318 3899443 0.000000 + . gene_id "PANK2"; transcript_id "NM_153640:uc002wke.3";
+chr20 hg19_knownGene CDS 3903891 3903938 0.000000 + 0 gene_id "PANK2"; transcript_id "NM_153640:uc002wke.3";
+chr20 hg19_knownGene exon 3903891 3904502 0.000000 + . gene_id "PANK2"; transcript_id "NM_153640:uc002wke.3";
+chr20 hg19_knownGene exon 3870463 3870579 0.000000 + . gene_id "PANK2"; transcript_id "BC107724:uc002wkf.3";
+chr20 hg19_knownGene exon 3888573 3888782 0.000000 + . gene_id "PANK2"; transcript_id "BC107724:uc002wkf.3";
+chr20 hg19_knownGene exon 3891224 3891477 0.000000 + . gene_id "PANK2"; transcript_id "BC107724:uc002wkf.3";
+chr20 hg19_knownGene CDS 3893178 3893281 0.000000 + 0 gene_id "PANK2"; transcript_id "BC107724:uc002wkf.3";
+chr20 hg19_knownGene exon 3893105 3893281 0.000000 + . gene_id "PANK2"; transcript_id "BC107724:uc002wkf.3";
+chr20 hg19_knownGene CDS 3897574 3897697 0.000000 + 1 gene_id "PANK2"; transcript_id "BC107724:uc002wkf.3";
+chr20 hg19_knownGene exon 3897574 3897697 0.000000 + . gene_id "PANK2"; transcript_id "BC107724:uc002wkf.3";
+chr20 hg19_knownGene CDS 3899318 3899443 0.000000 + 0 gene_id "PANK2"; transcript_id "BC107724:uc002wkf.3";
+chr20 hg19_knownGene exon 3899318 3899443 0.000000 + . gene_id "PANK2"; transcript_id "BC107724:uc002wkf.3";
+chr20 hg19_knownGene CDS 3903891 3903938 0.000000 + 0 gene_id "PANK2"; transcript_id "BC107724:uc002wkf.3";
+chr20 hg19_knownGene exon 3903891 3904502 0.000000 + . gene_id "PANK2"; transcript_id "BC107724:uc002wkf.3";
+chr20 hg19_knownGene CDS 3914713 3914848 0.000000 - 1 gene_id "RNF24"; transcript_id "NM_007219:uc002wkh.2";
+chr20 hg19_knownGene exon 3912069 3914848 0.000000 - . gene_id "RNF24"; transcript_id "NM_007219:uc002wkh.2";
+chr20 hg19_knownGene CDS 3915641 3915720 0.000000 - 0 gene_id "RNF24"; transcript_id "NM_007219:uc002wkh.2";
+chr20 hg19_knownGene exon 3915641 3915720 0.000000 - . gene_id "RNF24"; transcript_id "NM_007219:uc002wkh.2";
+chr20 hg19_knownGene CDS 3925824 3925865 0.000000 - 0 gene_id "RNF24"; transcript_id "NM_007219:uc002wkh.2";
+chr20 hg19_knownGene exon 3925824 3925865 0.000000 - . gene_id "RNF24"; transcript_id "NM_007219:uc002wkh.2";
+chr20 hg19_knownGene CDS 3928884 3928926 0.000000 - 1 gene_id "RNF24"; transcript_id "NM_007219:uc002wkh.2";
+chr20 hg19_knownGene exon 3928884 3928926 0.000000 - . gene_id "RNF24"; transcript_id "NM_007219:uc002wkh.2";
+chr20 hg19_knownGene CDS 3944522 3944664 0.000000 - 0 gene_id "RNF24"; transcript_id "NM_007219:uc002wkh.2";
+chr20 hg19_knownGene exon 3944522 3944671 0.000000 - . gene_id "RNF24"; transcript_id "NM_007219:uc002wkh.2";
+chr20 hg19_knownGene exon 3995792 3996054 0.000000 - . gene_id "RNF24"; transcript_id "NM_007219:uc002wkh.2";
+chr20 hg19_knownGene CDS 3914713 3914848 0.000000 - 1 gene_id "RNF24"; transcript_id "NM_001134338:uc002wki.2";
+chr20 hg19_knownGene exon 3912069 3914848 0.000000 - . gene_id "RNF24"; transcript_id "NM_001134338:uc002wki.2";
+chr20 hg19_knownGene CDS 3915641 3915720 0.000000 - 0 gene_id "RNF24"; transcript_id "NM_001134338:uc002wki.2";
+chr20 hg19_knownGene exon 3915641 3915720 0.000000 - . gene_id "RNF24"; transcript_id "NM_001134338:uc002wki.2";
+chr20 hg19_knownGene CDS 3925824 3925865 0.000000 - 0 gene_id "RNF24"; transcript_id "NM_001134338:uc002wki.2";
+chr20 hg19_knownGene exon 3925824 3925865 0.000000 - . gene_id "RNF24"; transcript_id "NM_001134338:uc002wki.2";
+chr20 hg19_knownGene CDS 3928884 3928926 0.000000 - 1 gene_id "RNF24"; transcript_id "NM_001134338:uc002wki.2";
+chr20 hg19_knownGene exon 3928884 3928926 0.000000 - . gene_id "RNF24"; transcript_id "NM_001134338:uc002wki.2";
+chr20 hg19_knownGene CDS 3944522 3944671 0.000000 - 1 gene_id "RNF24"; transcript_id "NM_001134338:uc002wki.2";
+chr20 hg19_knownGene exon 3944522 3944671 0.000000 - . gene_id "RNF24"; transcript_id "NM_001134338:uc002wki.2";
+chr20 hg19_knownGene CDS 3954979 3955034 0.000000 - 0 gene_id "RNF24"; transcript_id "NM_001134338:uc002wki.2";
+chr20 hg19_knownGene exon 3954979 3955047 0.000000 - . gene_id "RNF24"; transcript_id "NM_001134338:uc002wki.2";
+chr20 hg19_knownGene exon 3996084 3996216 0.000000 - . gene_id "RNF24"; transcript_id "NM_001134338:uc002wki.2";
+chr20 hg19_knownGene CDS 3914713 3914848 0.000000 - 1 gene_id "RNF24"; transcript_id "NM_001134337:uc002wkj.2";
+chr20 hg19_knownGene exon 3912069 3914848 0.000000 - . gene_id "RNF24"; transcript_id "NM_001134337:uc002wkj.2";
+chr20 hg19_knownGene CDS 3915641 3915720 0.000000 - 0 gene_id "RNF24"; transcript_id "NM_001134337:uc002wkj.2";
+chr20 hg19_knownGene exon 3915641 3915720 0.000000 - . gene_id "RNF24"; transcript_id "NM_001134337:uc002wkj.2";
+chr20 hg19_knownGene CDS 3925824 3925865 0.000000 - 0 gene_id "RNF24"; transcript_id "NM_001134337:uc002wkj.2";
+chr20 hg19_knownGene exon 3925824 3925865 0.000000 - . gene_id "RNF24"; transcript_id "NM_001134337:uc002wkj.2";
+chr20 hg19_knownGene CDS 3928884 3928926 0.000000 - 1 gene_id "RNF24"; transcript_id "NM_001134337:uc002wkj.2";
+chr20 hg19_knownGene exon 3928884 3928926 0.000000 - . gene_id "RNF24"; transcript_id "NM_001134337:uc002wkj.2";
+chr20 hg19_knownGene CDS 3944522 3944664 0.000000 - 0 gene_id "RNF24"; transcript_id "NM_001134337:uc002wkj.2";
+chr20 hg19_knownGene exon 3944522 3944671 0.000000 - . gene_id "RNF24"; transcript_id "NM_001134337:uc002wkj.2";
+chr20 hg19_knownGene exon 3996084 3996216 0.000000 - . gene_id "RNF24"; transcript_id "NM_001134337:uc002wkj.2";
+chr20 hg19_knownGene exon 4100589 4100738 0.000000 + . gene_id "BC027448"; transcript_id "BC027448:uc021wad.1";
+chr20 hg19_knownGene exon 4101627 4101824 0.000000 + . gene_id "BC027448"; transcript_id "BC027448:uc021wad.1";
+chr20 hg19_knownGene exon 4122911 4124836 0.000000 + . gene_id "BC027448"; transcript_id "BC027448:uc021wad.1";
+chr20 hg19_knownGene exon 4129450 4129624 0.000000 + . gene_id "SMOX"; transcript_id "NM_175842:uc002wkk.1";
+chr20 hg19_knownGene CDS 4155703 4155910 0.000000 + 0 gene_id "SMOX"; transcript_id "NM_175842:uc002wkk.1";
+chr20 hg19_knownGene exon 4155677 4155910 0.000000 + . gene_id "SMOX"; transcript_id "NM_175842:uc002wkk.1";
+chr20 hg19_knownGene CDS 4157998 4158224 0.000000 + 2 gene_id "SMOX"; transcript_id "NM_175842:uc002wkk.1";
+chr20 hg19_knownGene exon 4157998 4158224 0.000000 + . gene_id "SMOX"; transcript_id "NM_175842:uc002wkk.1";
+chr20 hg19_knownGene CDS 4162450 4162623 0.000000 + 0 gene_id "SMOX"; transcript_id "NM_175842:uc002wkk.1";
+chr20 hg19_knownGene exon 4162450 4162623 0.000000 + . gene_id "SMOX"; transcript_id "NM_175842:uc002wkk.1";
+chr20 hg19_knownGene CDS 4162736 4162970 0.000000 + 0 gene_id "SMOX"; transcript_id "NM_175842:uc002wkk.1";
+chr20 hg19_knownGene exon 4162736 4162970 0.000000 + . gene_id "SMOX"; transcript_id "NM_175842:uc002wkk.1";
+chr20 hg19_knownGene CDS 4163130 4163495 0.000000 + 2 gene_id "SMOX"; transcript_id "NM_175842:uc002wkk.1";
+chr20 hg19_knownGene exon 4163130 4163495 0.000000 + . gene_id "SMOX"; transcript_id "NM_175842:uc002wkk.1";
+chr20 hg19_knownGene CDS 4164141 4164301 0.000000 + 2 gene_id "SMOX"; transcript_id "NM_175842:uc002wkk.1";
+chr20 hg19_knownGene exon 4164141 4164301 0.000000 + . gene_id "SMOX"; transcript_id "NM_175842:uc002wkk.1";
+chr20 hg19_knownGene CDS 4167390 4167479 0.000000 + 0 gene_id "SMOX"; transcript_id "NM_175842:uc002wkk.1";
+chr20 hg19_knownGene exon 4167390 4167479 0.000000 + . gene_id "SMOX"; transcript_id "NM_175842:uc002wkk.1";
+chr20 hg19_knownGene CDS 4167917 4168051 0.000000 + 0 gene_id "SMOX"; transcript_id "NM_175842:uc002wkk.1";
+chr20 hg19_knownGene exon 4167917 4168369 0.000000 + . gene_id "SMOX"; transcript_id "NM_175842:uc002wkk.1";
+chr20 hg19_knownGene exon 4129450 4129624 0.000000 + . gene_id "SMOX"; transcript_id "NM_175840:uc002wkl.1";
+chr20 hg19_knownGene CDS 4155703 4155910 0.000000 + 0 gene_id "SMOX"; transcript_id "NM_175840:uc002wkl.1";
+chr20 hg19_knownGene exon 4155677 4155910 0.000000 + . gene_id "SMOX"; transcript_id "NM_175840:uc002wkl.1";
+chr20 hg19_knownGene CDS 4157998 4158224 0.000000 + 2 gene_id "SMOX"; transcript_id "NM_175840:uc002wkl.1";
+chr20 hg19_knownGene exon 4157998 4158224 0.000000 + . gene_id "SMOX"; transcript_id "NM_175840:uc002wkl.1";
+chr20 hg19_knownGene CDS 4162450 4162623 0.000000 + 0 gene_id "SMOX"; transcript_id "NM_175840:uc002wkl.1";
+chr20 hg19_knownGene exon 4162450 4162623 0.000000 + . gene_id "SMOX"; transcript_id "NM_175840:uc002wkl.1";
+chr20 hg19_knownGene CDS 4162736 4162970 0.000000 + 0 gene_id "SMOX"; transcript_id "NM_175840:uc002wkl.1";
+chr20 hg19_knownGene exon 4162736 4162970 0.000000 + . gene_id "SMOX"; transcript_id "NM_175840:uc002wkl.1";
+chr20 hg19_knownGene CDS 4163130 4163495 0.000000 + 2 gene_id "SMOX"; transcript_id "NM_175840:uc002wkl.1";
+chr20 hg19_knownGene exon 4163130 4163495 0.000000 + . gene_id "SMOX"; transcript_id "NM_175840:uc002wkl.1";
+chr20 hg19_knownGene CDS 4164141 4164301 0.000000 + 2 gene_id "SMOX"; transcript_id "NM_175840:uc002wkl.1";
+chr20 hg19_knownGene exon 4164141 4164301 0.000000 + . gene_id "SMOX"; transcript_id "NM_175840:uc002wkl.1";
+chr20 hg19_knownGene CDS 4167917 4168051 0.000000 + 0 gene_id "SMOX"; transcript_id "NM_175840:uc002wkl.1";
+chr20 hg19_knownGene exon 4167917 4168369 0.000000 + . gene_id "SMOX"; transcript_id "NM_175840:uc002wkl.1";
+chr20 hg19_knownGene exon 4129450 4129624 0.000000 + . gene_id "SMOX"; transcript_id "NM_175839:uc002wkm.1";
+chr20 hg19_knownGene CDS 4155703 4155910 0.000000 + 0 gene_id "SMOX"; transcript_id "NM_175839:uc002wkm.1";
+chr20 hg19_knownGene exon 4155677 4155910 0.000000 + . gene_id "SMOX"; transcript_id "NM_175839:uc002wkm.1";
+chr20 hg19_knownGene CDS 4157998 4158224 0.000000 + 2 gene_id "SMOX"; transcript_id "NM_175839:uc002wkm.1";
+chr20 hg19_knownGene exon 4157998 4158224 0.000000 + . gene_id "SMOX"; transcript_id "NM_175839:uc002wkm.1";
+chr20 hg19_knownGene CDS 4162450 4162623 0.000000 + 0 gene_id "SMOX"; transcript_id "NM_175839:uc002wkm.1";
+chr20 hg19_knownGene exon 4162450 4162623 0.000000 + . gene_id "SMOX"; transcript_id "NM_175839:uc002wkm.1";
+chr20 hg19_knownGene CDS 4162736 4163495 0.000000 + 0 gene_id "SMOX"; transcript_id "NM_175839:uc002wkm.1";
+chr20 hg19_knownGene exon 4162736 4163495 0.000000 + . gene_id "SMOX"; transcript_id "NM_175839:uc002wkm.1";
+chr20 hg19_knownGene CDS 4164141 4164301 0.000000 + 2 gene_id "SMOX"; transcript_id "NM_175839:uc002wkm.1";
+chr20 hg19_knownGene exon 4164141 4164301 0.000000 + . gene_id "SMOX"; transcript_id "NM_175839:uc002wkm.1";
+chr20 hg19_knownGene CDS 4167917 4168051 0.000000 + 0 gene_id "SMOX"; transcript_id "NM_175839:uc002wkm.1";
+chr20 hg19_knownGene exon 4167917 4168369 0.000000 + . gene_id "SMOX"; transcript_id "NM_175839:uc002wkm.1";
+chr20 hg19_knownGene exon 4129450 4129624 0.000000 + . gene_id "SMOX"; transcript_id "NM_175841:uc002wkn.1";
+chr20 hg19_knownGene CDS 4155703 4155910 0.000000 + 0 gene_id "SMOX"; transcript_id "NM_175841:uc002wkn.1";
+chr20 hg19_knownGene exon 4155677 4155910 0.000000 + . gene_id "SMOX"; transcript_id "NM_175841:uc002wkn.1";
+chr20 hg19_knownGene CDS 4157998 4158224 0.000000 + 2 gene_id "SMOX"; transcript_id "NM_175841:uc002wkn.1";
+chr20 hg19_knownGene exon 4157998 4158224 0.000000 + . gene_id "SMOX"; transcript_id "NM_175841:uc002wkn.1";
+chr20 hg19_knownGene CDS 4167917 4168051 0.000000 + 0 gene_id "SMOX"; transcript_id "NM_175841:uc002wkn.1";
+chr20 hg19_knownGene exon 4167917 4168369 0.000000 + . gene_id "SMOX"; transcript_id "NM_175841:uc002wkn.1";
+chr20 hg19_knownGene exon 4129450 4129624 0.000000 + . gene_id "SMOX"; transcript_id "EF032141:uc002wkp.2";
+chr20 hg19_knownGene CDS 4155703 4155910 0.000000 + 0 gene_id "SMOX"; transcript_id "EF032141:uc002wkp.2";
+chr20 hg19_knownGene exon 4155677 4155910 0.000000 + . gene_id "SMOX"; transcript_id "EF032141:uc002wkp.2";
+chr20 hg19_knownGene CDS 4157998 4158224 0.000000 + 2 gene_id "SMOX"; transcript_id "EF032141:uc002wkp.2";
+chr20 hg19_knownGene exon 4157998 4158224 0.000000 + . gene_id "SMOX"; transcript_id "EF032141:uc002wkp.2";
+chr20 hg19_knownGene CDS 4162450 4162623 0.000000 + 0 gene_id "SMOX"; transcript_id "EF032141:uc002wkp.2";
+chr20 hg19_knownGene exon 4162450 4162623 0.000000 + . gene_id "SMOX"; transcript_id "EF032141:uc002wkp.2";
+chr20 hg19_knownGene CDS 4162736 4163495 0.000000 + 0 gene_id "SMOX"; transcript_id "EF032141:uc002wkp.2";
+chr20 hg19_knownGene exon 4162736 4163495 0.000000 + . gene_id "SMOX"; transcript_id "EF032141:uc002wkp.2";
+chr20 hg19_knownGene CDS 4164141 4164301 0.000000 + 2 gene_id "SMOX"; transcript_id "EF032141:uc002wkp.2";
+chr20 hg19_knownGene exon 4164141 4164301 0.000000 + . gene_id "SMOX"; transcript_id "EF032141:uc002wkp.2";
+chr20 hg19_knownGene CDS 4167390 4167479 0.000000 + 0 gene_id "SMOX"; transcript_id "EF032141:uc002wkp.2";
+chr20 hg19_knownGene exon 4167390 4167479 0.000000 + . gene_id "SMOX"; transcript_id "EF032141:uc002wkp.2";
+chr20 hg19_knownGene CDS 4167917 4168051 0.000000 + 0 gene_id "SMOX"; transcript_id "EF032141:uc002wkp.2";
+chr20 hg19_knownGene exon 4167917 4168369 0.000000 + . gene_id "SMOX"; transcript_id "EF032141:uc002wkp.2";
+chr20 hg19_knownGene exon 4129450 4129624 0.000000 + . gene_id "SMOX"; transcript_id "AK293485:uc010zqo.1";
+chr20 hg19_knownGene CDS 4155703 4155910 0.000000 + 0 gene_id "SMOX"; transcript_id "AK293485:uc010zqo.1";
+chr20 hg19_knownGene exon 4155677 4155910 0.000000 + . gene_id "SMOX"; transcript_id "AK293485:uc010zqo.1";
+chr20 hg19_knownGene CDS 4158067 4158224 0.000000 + 2 gene_id "SMOX"; transcript_id "AK293485:uc010zqo.1";
+chr20 hg19_knownGene exon 4158067 4158224 0.000000 + . gene_id "SMOX"; transcript_id "AK293485:uc010zqo.1";
+chr20 hg19_knownGene CDS 4162450 4162623 0.000000 + 0 gene_id "SMOX"; transcript_id "AK293485:uc010zqo.1";
+chr20 hg19_knownGene exon 4162450 4162623 0.000000 + . gene_id "SMOX"; transcript_id "AK293485:uc010zqo.1";
+chr20 hg19_knownGene CDS 4162736 4162970 0.000000 + 0 gene_id "SMOX"; transcript_id "AK293485:uc010zqo.1";
+chr20 hg19_knownGene exon 4162736 4162970 0.000000 + . gene_id "SMOX"; transcript_id "AK293485:uc010zqo.1";
+chr20 hg19_knownGene CDS 4163130 4163495 0.000000 + 2 gene_id "SMOX"; transcript_id "AK293485:uc010zqo.1";
+chr20 hg19_knownGene exon 4163130 4163495 0.000000 + . gene_id "SMOX"; transcript_id "AK293485:uc010zqo.1";
+chr20 hg19_knownGene CDS 4164141 4164301 0.000000 + 2 gene_id "SMOX"; transcript_id "AK293485:uc010zqo.1";
+chr20 hg19_knownGene exon 4164141 4164301 0.000000 + . gene_id "SMOX"; transcript_id "AK293485:uc010zqo.1";
+chr20 hg19_knownGene CDS 4167917 4168051 0.000000 + 0 gene_id "SMOX"; transcript_id "AK293485:uc010zqo.1";
+chr20 hg19_knownGene exon 4167917 4168369 0.000000 + . gene_id "SMOX"; transcript_id "AK293485:uc010zqo.1";
+chr20 hg19_knownGene exon 4152357 4152552 0.000000 + . gene_id "SMOX"; transcript_id "AK000753:uc002wko.1";
+chr20 hg19_knownGene CDS 4155703 4155910 0.000000 + 0 gene_id "SMOX"; transcript_id "AK000753:uc002wko.1";
+chr20 hg19_knownGene exon 4155677 4155910 0.000000 + . gene_id "SMOX"; transcript_id "AK000753:uc002wko.1";
+chr20 hg19_knownGene CDS 4157998 4158224 0.000000 + 2 gene_id "SMOX"; transcript_id "AK000753:uc002wko.1";
+chr20 hg19_knownGene exon 4157998 4158224 0.000000 + . gene_id "SMOX"; transcript_id "AK000753:uc002wko.1";
+chr20 hg19_knownGene CDS 4162450 4162623 0.000000 + 0 gene_id "SMOX"; transcript_id "AK000753:uc002wko.1";
+chr20 hg19_knownGene exon 4162450 4162623 0.000000 + . gene_id "SMOX"; transcript_id "AK000753:uc002wko.1";
+chr20 hg19_knownGene CDS 4162736 4163495 0.000000 + 0 gene_id "SMOX"; transcript_id "AK000753:uc002wko.1";
+chr20 hg19_knownGene exon 4162736 4163495 0.000000 + . gene_id "SMOX"; transcript_id "AK000753:uc002wko.1";
+chr20 hg19_knownGene CDS 4164141 4164301 0.000000 + 2 gene_id "SMOX"; transcript_id "AK000753:uc002wko.1";
+chr20 hg19_knownGene exon 4164141 4164301 0.000000 + . gene_id "SMOX"; transcript_id "AK000753:uc002wko.1";
+chr20 hg19_knownGene CDS 4167917 4168051 0.000000 + 0 gene_id "SMOX"; transcript_id "AK000753:uc002wko.1";
+chr20 hg19_knownGene exon 4167917 4168369 0.000000 + . gene_id "SMOX"; transcript_id "AK000753:uc002wko.1";
+chr20 hg19_knownGene exon 4173737 4173893 0.000000 + . gene_id "LOC728228"; transcript_id "NR_033917:uc002wkq.3";
+chr20 hg19_knownGene exon 4175929 4176025 0.000000 + . gene_id "LOC728228"; transcript_id "NR_033917:uc002wkq.3";
+chr20 hg19_knownGene exon 4176173 4176600 0.000000 + . gene_id "LOC728228"; transcript_id "NR_033917:uc002wkq.3";
+chr20 hg19_knownGene CDS 4202173 4202777 0.000000 - 2 gene_id "ADRA1D"; transcript_id "NM_000678:uc002wkr.2";
+chr20 hg19_knownGene exon 4201278 4202777 0.000000 - . gene_id "ADRA1D"; transcript_id "NM_000678:uc002wkr.2";
+chr20 hg19_knownGene CDS 4228494 4229604 0.000000 - 0 gene_id "ADRA1D"; transcript_id "NM_000678:uc002wkr.2";
+chr20 hg19_knownGene exon 4228494 4229659 0.000000 - . gene_id "ADRA1D"; transcript_id "NM_000678:uc002wkr.2";
+chr20 hg19_knownGene exon 4409711 4410331 0.000000 - . gene_id "BC039673"; transcript_id "BC039673:uc002wks.3";
+chr20 hg19_knownGene exon 4411993 4412133 0.000000 - . gene_id "BC039673"; transcript_id "BC039673:uc002wks.3";
+chr20 hg19_knownGene exon 4412250 4412358 0.000000 - . gene_id "BC039673"; transcript_id "BC039673:uc002wks.3";
+chr20 hg19_knownGene CDS 4679867 4680625 0.000000 + 0 gene_id "PRNP"; transcript_id "CCDS13080:uc021wae.1";
+chr20 hg19_knownGene exon 4679867 4680628 0.000000 + . gene_id "PRNP"; transcript_id "CCDS13080:uc021wae.1";
+chr20 hg19_knownGene CDS 4679867 4680516 0.000000 + 0 gene_id "PRNP"; transcript_id "AB300826:uc010gbe.1";
+chr20 hg19_knownGene exon 4679857 4680516 0.000000 + . gene_id "PRNP"; transcript_id "AB300826:uc010gbe.1";
+chr20 hg19_knownGene CDS 4680749 4680788 0.000000 + 1 gene_id "PRNP"; transcript_id "AB300826:uc010gbe.1";
+chr20 hg19_knownGene exon 4680749 4681289 0.000000 + . gene_id "PRNP"; transcript_id "AB300826:uc010gbe.1";
+chr20 hg19_knownGene exon 4666797 4667154 0.000000 + . gene_id "PRNP"; transcript_id "AX746518:uc002wkt.1";
+chr20 hg19_knownGene CDS 4679867 4680125 0.000000 + 0 gene_id "PRNP"; transcript_id "AX746518:uc002wkt.1";
+chr20 hg19_knownGene exon 4679857 4680125 0.000000 + . gene_id "PRNP"; transcript_id "AX746518:uc002wkt.1";
+chr20 hg19_knownGene CDS 4680216 4680625 0.000000 + 2 gene_id "PRNP"; transcript_id "AX746518:uc002wkt.1";
+chr20 hg19_knownGene exon 4680216 4682233 0.000000 + . gene_id "PRNP"; transcript_id "AX746518:uc002wkt.1";
+chr20 hg19_knownGene exon 4666797 4667154 0.000000 + . gene_id "PRNP"; transcript_id "NM_001080122:uc002wku.3";
+chr20 hg19_knownGene CDS 4679867 4680625 0.000000 + 0 gene_id "PRNP"; transcript_id "NM_001080122:uc002wku.3";
+chr20 hg19_knownGene exon 4679862 4682234 0.000000 + . gene_id "PRNP"; transcript_id "NM_001080122:uc002wku.3";
+chr20 hg19_knownGene exon 4666797 4667158 0.000000 + . gene_id "PRNP"; transcript_id "NM_001080121:uc002wkv.3";
+chr20 hg19_knownGene CDS 4679867 4680625 0.000000 + 0 gene_id "PRNP"; transcript_id "NM_001080121:uc002wkv.3";
+chr20 hg19_knownGene exon 4679862 4682234 0.000000 + . gene_id "PRNP"; transcript_id "NM_001080121:uc002wkv.3";
+chr20 hg19_knownGene exon 4666797 4667158 0.000000 + . gene_id "PRNP"; transcript_id "NM_000311:uc002wkw.3";
+chr20 hg19_knownGene CDS 4679867 4680625 0.000000 + 0 gene_id "PRNP"; transcript_id "NM_000311:uc002wkw.3";
+chr20 hg19_knownGene exon 4679857 4682234 0.000000 + . gene_id "PRNP"; transcript_id "NM_000311:uc002wkw.3";
+chr20 hg19_knownGene exon 4666797 4667154 0.000000 + . gene_id "PRNP"; transcript_id "NM_183079:uc002wkx.3";
+chr20 hg19_knownGene CDS 4679867 4680625 0.000000 + 0 gene_id "PRNP"; transcript_id "NM_183079:uc002wkx.3";
+chr20 hg19_knownGene exon 4679857 4682234 0.000000 + . gene_id "PRNP"; transcript_id "NM_183079:uc002wkx.3";
+chr20 hg19_knownGene exon 4667157 4667382 0.000000 + . gene_id "PRNP"; transcript_id "NM_001080123:uc002wky.3";
+chr20 hg19_knownGene CDS 4679867 4680625 0.000000 + 0 gene_id "PRNP"; transcript_id "NM_001080123:uc002wky.3";
+chr20 hg19_knownGene exon 4679857 4682234 0.000000 + . gene_id "PRNP"; transcript_id "NM_001080123:uc002wky.3";
+chr20 hg19_knownGene CDS 4705198 4705725 0.000000 + 0 gene_id "PRND"; transcript_id "CCDS13081:uc021waf.1";
+chr20 hg19_knownGene exon 4705198 4705728 0.000000 + . gene_id "PRND"; transcript_id "CCDS13081:uc021waf.1";
+chr20 hg19_knownGene exon 4702556 4702615 0.000000 + . gene_id "PRND"; transcript_id "NM_012409:uc002wkz.3";
+chr20 hg19_knownGene CDS 4705198 4705725 0.000000 + 0 gene_id "PRND"; transcript_id "NM_012409:uc002wkz.3";
+chr20 hg19_knownGene exon 4705187 4709106 0.000000 + . gene_id "PRND"; transcript_id "NM_012409:uc002wkz.3";
+chr20 hg19_knownGene exon 4711928 4713731 0.000000 - . gene_id "PRNT"; transcript_id "NR_024268:uc002wlb.3";
+chr20 hg19_knownGene exon 4721023 4721314 0.000000 - . gene_id "PRNT"; transcript_id "NR_024268:uc002wlb.3";
+chr20 hg19_knownGene exon 4711928 4713731 0.000000 - . gene_id "PRNT"; transcript_id "NR_024269:uc010zqp.2";
+chr20 hg19_knownGene exon 4721246 4721314 0.000000 - . gene_id "PRNT"; transcript_id "NR_024269:uc010zqp.2";
+chr20 hg19_knownGene exon 4711928 4713731 0.000000 - . gene_id "PRNT"; transcript_id "NR_024267:uc010zqq.2";
+chr20 hg19_knownGene exon 4720786 4721314 0.000000 - . gene_id "PRNT"; transcript_id "NR_024267:uc010zqq.2";
+chr20 hg19_knownGene exon 4760669 4764988 0.000000 - . gene_id "RASSF2"; transcript_id "BC110385:uc002wlc.3";
+chr20 hg19_knownGene exon 4766877 4766974 0.000000 - . gene_id "RASSF2"; transcript_id "BC110385:uc002wlc.3";
+chr20 hg19_knownGene exon 4768279 4768347 0.000000 - . gene_id "RASSF2"; transcript_id "BC110385:uc002wlc.3";
+chr20 hg19_knownGene exon 4768863 4768914 0.000000 - . gene_id "RASSF2"; transcript_id "BC110385:uc002wlc.3";
+chr20 hg19_knownGene exon 4770242 4770343 0.000000 - . gene_id "RASSF2"; transcript_id "BC110385:uc002wlc.3";
+chr20 hg19_knownGene exon 4771097 4771257 0.000000 - . gene_id "RASSF2"; transcript_id "BC110385:uc002wlc.3";
+chr20 hg19_knownGene exon 4773185 4773273 0.000000 - . gene_id "RASSF2"; transcript_id "BC110385:uc002wlc.3";
+chr20 hg19_knownGene exon 4773640 4773700 0.000000 - . gene_id "RASSF2"; transcript_id "BC110385:uc002wlc.3";
+chr20 hg19_knownGene exon 4775902 4776150 0.000000 - . gene_id "RASSF2"; transcript_id "BC110385:uc002wlc.3";
+chr20 hg19_knownGene CDS 4764922 4764988 0.000000 - 1 gene_id "RASSF2"; transcript_id "NM_170774:uc002wld.3";
+chr20 hg19_knownGene exon 4760669 4764988 0.000000 - . gene_id "RASSF2"; transcript_id "NM_170774:uc002wld.3";
+chr20 hg19_knownGene CDS 4766877 4766974 0.000000 - 0 gene_id "RASSF2"; transcript_id "NM_170774:uc002wld.3";
+chr20 hg19_knownGene exon 4766877 4766974 0.000000 - . gene_id "RASSF2"; transcript_id "NM_170774:uc002wld.3";
+chr20 hg19_knownGene CDS 4768279 4768400 0.000000 - 2 gene_id "RASSF2"; transcript_id "NM_170774:uc002wld.3";
+chr20 hg19_knownGene exon 4768279 4768400 0.000000 - . gene_id "RASSF2"; transcript_id "NM_170774:uc002wld.3";
+chr20 hg19_knownGene CDS 4768863 4768914 0.000000 - 0 gene_id "RASSF2"; transcript_id "NM_170774:uc002wld.3";
+chr20 hg19_knownGene exon 4768863 4768914 0.000000 - . gene_id "RASSF2"; transcript_id "NM_170774:uc002wld.3";
+chr20 hg19_knownGene CDS 4770242 4770343 0.000000 - 0 gene_id "RASSF2"; transcript_id "NM_170774:uc002wld.3";
+chr20 hg19_knownGene exon 4770242 4770343 0.000000 - . gene_id "RASSF2"; transcript_id "NM_170774:uc002wld.3";
+chr20 hg19_knownGene CDS 4771097 4771257 0.000000 - 2 gene_id "RASSF2"; transcript_id "NM_170774:uc002wld.3";
+chr20 hg19_knownGene exon 4771097 4771257 0.000000 - . gene_id "RASSF2"; transcript_id "NM_170774:uc002wld.3";
+chr20 hg19_knownGene CDS 4773185 4773273 0.000000 - 1 gene_id "RASSF2"; transcript_id "NM_170774:uc002wld.3";
+chr20 hg19_knownGene exon 4773185 4773273 0.000000 - . gene_id "RASSF2"; transcript_id "NM_170774:uc002wld.3";
+chr20 hg19_knownGene CDS 4776461 4776612 0.000000 - 0 gene_id "RASSF2"; transcript_id "NM_170774:uc002wld.3";
+chr20 hg19_knownGene exon 4776461 4776612 0.000000 - . gene_id "RASSF2"; transcript_id "NM_170774:uc002wld.3";
+chr20 hg19_knownGene CDS 4778656 4778731 0.000000 - 1 gene_id "RASSF2"; transcript_id "NM_170774:uc002wld.3";
+chr20 hg19_knownGene exon 4778656 4778731 0.000000 - . gene_id "RASSF2"; transcript_id "NM_170774:uc002wld.3";
+chr20 hg19_knownGene CDS 4781618 4781676 0.000000 - 0 gene_id "RASSF2"; transcript_id "NM_170774:uc002wld.3";
+chr20 hg19_knownGene exon 4781618 4781708 0.000000 - . gene_id "RASSF2"; transcript_id "NM_170774:uc002wld.3";
+chr20 hg19_knownGene exon 4795748 4795769 0.000000 - . gene_id "RASSF2"; transcript_id "NM_170774:uc002wld.3";
+chr20 hg19_knownGene CDS 4764922 4764988 0.000000 - 1 gene_id "RASSF2"; transcript_id "NM_014737:uc002wlf.3";
+chr20 hg19_knownGene exon 4760669 4764988 0.000000 - . gene_id "RASSF2"; transcript_id "NM_014737:uc002wlf.3";
+chr20 hg19_knownGene CDS 4766877 4766974 0.000000 - 0 gene_id "RASSF2"; transcript_id "NM_014737:uc002wlf.3";
+chr20 hg19_knownGene exon 4766877 4766974 0.000000 - . gene_id "RASSF2"; transcript_id "NM_014737:uc002wlf.3";
+chr20 hg19_knownGene CDS 4768279 4768400 0.000000 - 2 gene_id "RASSF2"; transcript_id "NM_014737:uc002wlf.3";
+chr20 hg19_knownGene exon 4768279 4768400 0.000000 - . gene_id "RASSF2"; transcript_id "NM_014737:uc002wlf.3";
+chr20 hg19_knownGene CDS 4768863 4768914 0.000000 - 0 gene_id "RASSF2"; transcript_id "NM_014737:uc002wlf.3";
+chr20 hg19_knownGene exon 4768863 4768914 0.000000 - . gene_id "RASSF2"; transcript_id "NM_014737:uc002wlf.3";
+chr20 hg19_knownGene CDS 4770242 4770343 0.000000 - 0 gene_id "RASSF2"; transcript_id "NM_014737:uc002wlf.3";
+chr20 hg19_knownGene exon 4770242 4770343 0.000000 - . gene_id "RASSF2"; transcript_id "NM_014737:uc002wlf.3";
+chr20 hg19_knownGene CDS 4771097 4771257 0.000000 - 2 gene_id "RASSF2"; transcript_id "NM_014737:uc002wlf.3";
+chr20 hg19_knownGene exon 4771097 4771257 0.000000 - . gene_id "RASSF2"; transcript_id "NM_014737:uc002wlf.3";
+chr20 hg19_knownGene CDS 4773185 4773273 0.000000 - 1 gene_id "RASSF2"; transcript_id "NM_014737:uc002wlf.3";
+chr20 hg19_knownGene exon 4773185 4773273 0.000000 - . gene_id "RASSF2"; transcript_id "NM_014737:uc002wlf.3";
+chr20 hg19_knownGene CDS 4776461 4776612 0.000000 - 0 gene_id "RASSF2"; transcript_id "NM_014737:uc002wlf.3";
+chr20 hg19_knownGene exon 4776461 4776612 0.000000 - . gene_id "RASSF2"; transcript_id "NM_014737:uc002wlf.3";
+chr20 hg19_knownGene CDS 4778656 4778731 0.000000 - 1 gene_id "RASSF2"; transcript_id "NM_014737:uc002wlf.3";
+chr20 hg19_knownGene exon 4778656 4778731 0.000000 - . gene_id "RASSF2"; transcript_id "NM_014737:uc002wlf.3";
+chr20 hg19_knownGene CDS 4781618 4781676 0.000000 - 0 gene_id "RASSF2"; transcript_id "NM_014737:uc002wlf.3";
+chr20 hg19_knownGene exon 4781618 4781708 0.000000 - . gene_id "RASSF2"; transcript_id "NM_014737:uc002wlf.3";
+chr20 hg19_knownGene exon 4802975 4803049 0.000000 - . gene_id "RASSF2"; transcript_id "NM_014737:uc002wlf.3";
+chr20 hg19_knownGene exon 4804203 4804291 0.000000 - . gene_id "RASSF2"; transcript_id "NM_014737:uc002wlf.3";
+chr20 hg19_knownGene exon 4849630 4849764 0.000000 + . gene_id "SNORA31"; transcript_id ":uc021wag.1";
+chr20 hg19_knownGene CDS 4837621 4837850 0.000000 - 2 gene_id "SLC23A2"; transcript_id "NM_005116:uc002wlg.1";
+chr20 hg19_knownGene exon 4833002 4837850 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_005116:uc002wlg.1";
+chr20 hg19_knownGene CDS 4839935 4840030 0.000000 - 2 gene_id "SLC23A2"; transcript_id "NM_005116:uc002wlg.1";
+chr20 hg19_knownGene exon 4839935 4840030 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_005116:uc002wlg.1";
+chr20 hg19_knownGene CDS 4842594 4842731 0.000000 - 2 gene_id "SLC23A2"; transcript_id "NM_005116:uc002wlg.1";
+chr20 hg19_knownGene exon 4842594 4842731 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_005116:uc002wlg.1";
+chr20 hg19_knownGene CDS 4843424 4843553 0.000000 - 0 gene_id "SLC23A2"; transcript_id "NM_005116:uc002wlg.1";
+chr20 hg19_knownGene exon 4843424 4843553 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_005116:uc002wlg.1";
+chr20 hg19_knownGene CDS 4848416 4848521 0.000000 - 1 gene_id "SLC23A2"; transcript_id "NM_005116:uc002wlg.1";
+chr20 hg19_knownGene exon 4848416 4848521 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_005116:uc002wlg.1";
+chr20 hg19_knownGene CDS 4850552 4850699 0.000000 - 2 gene_id "SLC23A2"; transcript_id "NM_005116:uc002wlg.1";
+chr20 hg19_knownGene exon 4850552 4850699 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_005116:uc002wlg.1";
+chr20 hg19_knownGene CDS 4854582 4854738 0.000000 - 0 gene_id "SLC23A2"; transcript_id "NM_005116:uc002wlg.1";
+chr20 hg19_knownGene exon 4854582 4854738 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_005116:uc002wlg.1";
+chr20 hg19_knownGene CDS 4855222 4855342 0.000000 - 1 gene_id "SLC23A2"; transcript_id "NM_005116:uc002wlg.1";
+chr20 hg19_knownGene exon 4855222 4855342 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_005116:uc002wlg.1";
+chr20 hg19_knownGene CDS 4864288 4864469 0.000000 - 0 gene_id "SLC23A2"; transcript_id "NM_005116:uc002wlg.1";
+chr20 hg19_knownGene exon 4864288 4864469 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_005116:uc002wlg.1";
+chr20 hg19_knownGene CDS 4865399 4865469 0.000000 - 2 gene_id "SLC23A2"; transcript_id "NM_005116:uc002wlg.1";
+chr20 hg19_knownGene exon 4865399 4865469 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_005116:uc002wlg.1";
+chr20 hg19_knownGene CDS 4866467 4866555 0.000000 - 1 gene_id "SLC23A2"; transcript_id "NM_005116:uc002wlg.1";
+chr20 hg19_knownGene exon 4866467 4866555 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_005116:uc002wlg.1";
+chr20 hg19_knownGene CDS 4880201 4880358 0.000000 - 0 gene_id "SLC23A2"; transcript_id "NM_005116:uc002wlg.1";
+chr20 hg19_knownGene exon 4880201 4880358 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_005116:uc002wlg.1";
+chr20 hg19_knownGene CDS 4883088 4883204 0.000000 - 0 gene_id "SLC23A2"; transcript_id "NM_005116:uc002wlg.1";
+chr20 hg19_knownGene exon 4883088 4883204 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_005116:uc002wlg.1";
+chr20 hg19_knownGene CDS 4893526 4893624 0.000000 - 0 gene_id "SLC23A2"; transcript_id "NM_005116:uc002wlg.1";
+chr20 hg19_knownGene exon 4893526 4893624 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_005116:uc002wlg.1";
+chr20 hg19_knownGene CDS 4913101 4913208 0.000000 - 0 gene_id "SLC23A2"; transcript_id "NM_005116:uc002wlg.1";
+chr20 hg19_knownGene exon 4913101 4913362 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_005116:uc002wlg.1";
+chr20 hg19_knownGene exon 4951439 4951565 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_005116:uc002wlg.1";
+chr20 hg19_knownGene exon 4982052 4982145 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_005116:uc002wlg.1";
+chr20 hg19_knownGene CDS 4837621 4837850 0.000000 - 2 gene_id "SLC23A2"; transcript_id "AK296304:uc010zqr.1";
+chr20 hg19_knownGene exon 4833002 4837850 0.000000 - . gene_id "SLC23A2"; transcript_id "AK296304:uc010zqr.1";
+chr20 hg19_knownGene CDS 4839935 4840030 0.000000 - 2 gene_id "SLC23A2"; transcript_id "AK296304:uc010zqr.1";
+chr20 hg19_knownGene exon 4839935 4840030 0.000000 - . gene_id "SLC23A2"; transcript_id "AK296304:uc010zqr.1";
+chr20 hg19_knownGene CDS 4842594 4842731 0.000000 - 2 gene_id "SLC23A2"; transcript_id "AK296304:uc010zqr.1";
+chr20 hg19_knownGene exon 4842594 4842731 0.000000 - . gene_id "SLC23A2"; transcript_id "AK296304:uc010zqr.1";
+chr20 hg19_knownGene CDS 4843424 4843553 0.000000 - 0 gene_id "SLC23A2"; transcript_id "AK296304:uc010zqr.1";
+chr20 hg19_knownGene exon 4843424 4843553 0.000000 - . gene_id "SLC23A2"; transcript_id "AK296304:uc010zqr.1";
+chr20 hg19_knownGene CDS 4848416 4848521 0.000000 - 1 gene_id "SLC23A2"; transcript_id "AK296304:uc010zqr.1";
+chr20 hg19_knownGene exon 4848416 4848521 0.000000 - . gene_id "SLC23A2"; transcript_id "AK296304:uc010zqr.1";
+chr20 hg19_knownGene CDS 4850552 4850699 0.000000 - 2 gene_id "SLC23A2"; transcript_id "AK296304:uc010zqr.1";
+chr20 hg19_knownGene exon 4850552 4850699 0.000000 - . gene_id "SLC23A2"; transcript_id "AK296304:uc010zqr.1";
+chr20 hg19_knownGene CDS 4854582 4854738 0.000000 - 0 gene_id "SLC23A2"; transcript_id "AK296304:uc010zqr.1";
+chr20 hg19_knownGene exon 4854582 4854738 0.000000 - . gene_id "SLC23A2"; transcript_id "AK296304:uc010zqr.1";
+chr20 hg19_knownGene CDS 4855222 4855342 0.000000 - 1 gene_id "SLC23A2"; transcript_id "AK296304:uc010zqr.1";
+chr20 hg19_knownGene exon 4855222 4855342 0.000000 - . gene_id "SLC23A2"; transcript_id "AK296304:uc010zqr.1";
+chr20 hg19_knownGene CDS 4880201 4880358 0.000000 - 0 gene_id "SLC23A2"; transcript_id "AK296304:uc010zqr.1";
+chr20 hg19_knownGene exon 4880201 4880358 0.000000 - . gene_id "SLC23A2"; transcript_id "AK296304:uc010zqr.1";
+chr20 hg19_knownGene CDS 4883088 4883204 0.000000 - 0 gene_id "SLC23A2"; transcript_id "AK296304:uc010zqr.1";
+chr20 hg19_knownGene exon 4883088 4883204 0.000000 - . gene_id "SLC23A2"; transcript_id "AK296304:uc010zqr.1";
+chr20 hg19_knownGene CDS 4893526 4893624 0.000000 - 0 gene_id "SLC23A2"; transcript_id "AK296304:uc010zqr.1";
+chr20 hg19_knownGene exon 4893526 4893624 0.000000 - . gene_id "SLC23A2"; transcript_id "AK296304:uc010zqr.1";
+chr20 hg19_knownGene CDS 4913101 4913205 0.000000 - 0 gene_id "SLC23A2"; transcript_id "AK296304:uc010zqr.1";
+chr20 hg19_knownGene exon 4913101 4913362 0.000000 - . gene_id "SLC23A2"; transcript_id "AK296304:uc010zqr.1";
+chr20 hg19_knownGene exon 4951439 4951565 0.000000 - . gene_id "SLC23A2"; transcript_id "AK296304:uc010zqr.1";
+chr20 hg19_knownGene exon 4982052 4982145 0.000000 - . gene_id "SLC23A2"; transcript_id "AK296304:uc010zqr.1";
+chr20 hg19_knownGene exon 4913101 4913362 0.000000 - . gene_id "SLC23A2"; transcript_id "DQ011866:uc002wlj.1";
+chr20 hg19_knownGene exon 4951439 4951561 0.000000 - . gene_id "SLC23A2"; transcript_id "DQ011866:uc002wlj.1";
+chr20 hg19_knownGene exon 4982052 4982145 0.000000 - . gene_id "SLC23A2"; transcript_id "DQ011866:uc002wlj.1";
+chr20 hg19_knownGene CDS 4837621 4837850 0.000000 - 2 gene_id "SLC23A2"; transcript_id "NM_203327:uc002wlh.1";
+chr20 hg19_knownGene exon 4833002 4837850 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_203327:uc002wlh.1";
+chr20 hg19_knownGene CDS 4839935 4840030 0.000000 - 2 gene_id "SLC23A2"; transcript_id "NM_203327:uc002wlh.1";
+chr20 hg19_knownGene exon 4839935 4840030 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_203327:uc002wlh.1";
+chr20 hg19_knownGene CDS 4842594 4842731 0.000000 - 2 gene_id "SLC23A2"; transcript_id "NM_203327:uc002wlh.1";
+chr20 hg19_knownGene exon 4842594 4842731 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_203327:uc002wlh.1";
+chr20 hg19_knownGene CDS 4843424 4843553 0.000000 - 0 gene_id "SLC23A2"; transcript_id "NM_203327:uc002wlh.1";
+chr20 hg19_knownGene exon 4843424 4843553 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_203327:uc002wlh.1";
+chr20 hg19_knownGene CDS 4848416 4848521 0.000000 - 1 gene_id "SLC23A2"; transcript_id "NM_203327:uc002wlh.1";
+chr20 hg19_knownGene exon 4848416 4848521 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_203327:uc002wlh.1";
+chr20 hg19_knownGene CDS 4850552 4850699 0.000000 - 2 gene_id "SLC23A2"; transcript_id "NM_203327:uc002wlh.1";
+chr20 hg19_knownGene exon 4850552 4850699 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_203327:uc002wlh.1";
+chr20 hg19_knownGene CDS 4854582 4854738 0.000000 - 0 gene_id "SLC23A2"; transcript_id "NM_203327:uc002wlh.1";
+chr20 hg19_knownGene exon 4854582 4854738 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_203327:uc002wlh.1";
+chr20 hg19_knownGene CDS 4855222 4855342 0.000000 - 1 gene_id "SLC23A2"; transcript_id "NM_203327:uc002wlh.1";
+chr20 hg19_knownGene exon 4855222 4855342 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_203327:uc002wlh.1";
+chr20 hg19_knownGene CDS 4864288 4864469 0.000000 - 0 gene_id "SLC23A2"; transcript_id "NM_203327:uc002wlh.1";
+chr20 hg19_knownGene exon 4864288 4864469 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_203327:uc002wlh.1";
+chr20 hg19_knownGene CDS 4865399 4865469 0.000000 - 2 gene_id "SLC23A2"; transcript_id "NM_203327:uc002wlh.1";
+chr20 hg19_knownGene exon 4865399 4865469 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_203327:uc002wlh.1";
+chr20 hg19_knownGene CDS 4866467 4866555 0.000000 - 1 gene_id "SLC23A2"; transcript_id "NM_203327:uc002wlh.1";
+chr20 hg19_knownGene exon 4866467 4866555 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_203327:uc002wlh.1";
+chr20 hg19_knownGene CDS 4880201 4880358 0.000000 - 0 gene_id "SLC23A2"; transcript_id "NM_203327:uc002wlh.1";
+chr20 hg19_knownGene exon 4880201 4880358 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_203327:uc002wlh.1";
+chr20 hg19_knownGene CDS 4883088 4883204 0.000000 - 0 gene_id "SLC23A2"; transcript_id "NM_203327:uc002wlh.1";
+chr20 hg19_knownGene exon 4883088 4883204 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_203327:uc002wlh.1";
+chr20 hg19_knownGene CDS 4893526 4893624 0.000000 - 0 gene_id "SLC23A2"; transcript_id "NM_203327:uc002wlh.1";
+chr20 hg19_knownGene exon 4893526 4893624 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_203327:uc002wlh.1";
+chr20 hg19_knownGene CDS 4913101 4913208 0.000000 - 0 gene_id "SLC23A2"; transcript_id "NM_203327:uc002wlh.1";
+chr20 hg19_knownGene exon 4913101 4913362 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_203327:uc002wlh.1";
+chr20 hg19_knownGene exon 4951439 4951565 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_203327:uc002wlh.1";
+chr20 hg19_knownGene exon 4990828 4990939 0.000000 - . gene_id "SLC23A2"; transcript_id "NM_203327:uc002wlh.1";
+chr20 hg19_knownGene CDS 4850527 4850699 0.000000 - 2 gene_id "SLC23A2"; transcript_id "BC013112:uc002wli.3";
+chr20 hg19_knownGene exon 4850234 4850699 0.000000 - . gene_id "SLC23A2"; transcript_id "BC013112:uc002wli.3";
+chr20 hg19_knownGene CDS 4854582 4854738 0.000000 - 0 gene_id "SLC23A2"; transcript_id "BC013112:uc002wli.3";
+chr20 hg19_knownGene exon 4854582 4854738 0.000000 - . gene_id "SLC23A2"; transcript_id "BC013112:uc002wli.3";
+chr20 hg19_knownGene CDS 4855222 4855342 0.000000 - 1 gene_id "SLC23A2"; transcript_id "BC013112:uc002wli.3";
+chr20 hg19_knownGene exon 4855222 4855342 0.000000 - . gene_id "SLC23A2"; transcript_id "BC013112:uc002wli.3";
+chr20 hg19_knownGene CDS 4864288 4864469 0.000000 - 0 gene_id "SLC23A2"; transcript_id "BC013112:uc002wli.3";
+chr20 hg19_knownGene exon 4864288 4864469 0.000000 - . gene_id "SLC23A2"; transcript_id "BC013112:uc002wli.3";
+chr20 hg19_knownGene CDS 4865399 4865469 0.000000 - 2 gene_id "SLC23A2"; transcript_id "BC013112:uc002wli.3";
+chr20 hg19_knownGene exon 4865399 4865469 0.000000 - . gene_id "SLC23A2"; transcript_id "BC013112:uc002wli.3";
+chr20 hg19_knownGene CDS 4866467 4866555 0.000000 - 1 gene_id "SLC23A2"; transcript_id "BC013112:uc002wli.3";
+chr20 hg19_knownGene exon 4866467 4866555 0.000000 - . gene_id "SLC23A2"; transcript_id "BC013112:uc002wli.3";
+chr20 hg19_knownGene CDS 4880201 4880358 0.000000 - 0 gene_id "SLC23A2"; transcript_id "BC013112:uc002wli.3";
+chr20 hg19_knownGene exon 4880201 4880358 0.000000 - . gene_id "SLC23A2"; transcript_id "BC013112:uc002wli.3";
+chr20 hg19_knownGene CDS 4883088 4883204 0.000000 - 0 gene_id "SLC23A2"; transcript_id "BC013112:uc002wli.3";
+chr20 hg19_knownGene exon 4883088 4883204 0.000000 - . gene_id "SLC23A2"; transcript_id "BC013112:uc002wli.3";
+chr20 hg19_knownGene CDS 4893526 4893624 0.000000 - 0 gene_id "SLC23A2"; transcript_id "BC013112:uc002wli.3";
+chr20 hg19_knownGene exon 4893526 4893624 0.000000 - . gene_id "SLC23A2"; transcript_id "BC013112:uc002wli.3";
+chr20 hg19_knownGene CDS 4913101 4913205 0.000000 - 0 gene_id "SLC23A2"; transcript_id "BC013112:uc002wli.3";
+chr20 hg19_knownGene exon 4913101 4913362 0.000000 - . gene_id "SLC23A2"; transcript_id "BC013112:uc002wli.3";
+chr20 hg19_knownGene exon 4951439 4951561 0.000000 - . gene_id "SLC23A2"; transcript_id "BC013112:uc002wli.3";
+chr20 hg19_knownGene exon 4990828 4990939 0.000000 - . gene_id "SLC23A2"; transcript_id "BC013112:uc002wli.3";
+chr20 hg19_knownGene exon 5079033 5079122 0.000000 - . gene_id "5S_rRNA"; transcript_id ":uc021wah.1";
+chr20 hg19_knownGene CDS 5049837 5049995 0.000000 - 0 gene_id "C20orf30"; transcript_id "AK309823:uc010gbi.3";
+chr20 hg19_knownGene exon 5049129 5049995 0.000000 - . gene_id "C20orf30"; transcript_id "AK309823:uc010gbi.3";
+chr20 hg19_knownGene CDS 5086834 5086956 0.000000 - 0 gene_id "C20orf30"; transcript_id "AK309823:uc010gbi.3";
+chr20 hg19_knownGene exon 5086834 5086956 0.000000 - . gene_id "C20orf30"; transcript_id "AK309823:uc010gbi.3";
+chr20 hg19_knownGene CDS 5089978 5090076 0.000000 - 0 gene_id "C20orf30"; transcript_id "AK309823:uc010gbi.3";
+chr20 hg19_knownGene exon 5089978 5090091 0.000000 - . gene_id "C20orf30"; transcript_id "AK309823:uc010gbi.3";
+chr20 hg19_knownGene exon 5093607 5093733 0.000000 - . gene_id "C20orf30"; transcript_id "AK309823:uc010gbi.3";
+chr20 hg19_knownGene CDS 5081440 5081577 0.000000 - 0 gene_id "C20orf30"; transcript_id "NM_001009923:uc002wlk.3";
+chr20 hg19_knownGene exon 5080484 5081577 0.000000 - . gene_id "C20orf30"; transcript_id "NM_001009923:uc002wlk.3";
+chr20 hg19_knownGene CDS 5086834 5086956 0.000000 - 0 gene_id "C20orf30"; transcript_id "NM_001009923:uc002wlk.3";
+chr20 hg19_knownGene exon 5086834 5086956 0.000000 - . gene_id "C20orf30"; transcript_id "NM_001009923:uc002wlk.3";
+chr20 hg19_knownGene CDS 5089978 5090091 0.000000 - 0 gene_id "C20orf30"; transcript_id "NM_001009923:uc002wlk.3";
+chr20 hg19_knownGene exon 5089978 5090091 0.000000 - . gene_id "C20orf30"; transcript_id "NM_001009923:uc002wlk.3";
+chr20 hg19_knownGene CDS 5092146 5092251 0.000000 - 1 gene_id "C20orf30"; transcript_id "NM_001009923:uc002wlk.3";
+chr20 hg19_knownGene exon 5092146 5092251 0.000000 - . gene_id "C20orf30"; transcript_id "NM_001009923:uc002wlk.3";
+chr20 hg19_knownGene CDS 5093607 5093674 0.000000 - 0 gene_id "C20orf30"; transcript_id "NM_001009923:uc002wlk.3";
+chr20 hg19_knownGene exon 5093607 5093733 0.000000 - . gene_id "C20orf30"; transcript_id "NM_001009923:uc002wlk.3";
+chr20 hg19_knownGene CDS 5081440 5081577 0.000000 - 0 gene_id "C20orf30"; transcript_id "NM_001009924:uc002wll.3";
+chr20 hg19_knownGene exon 5080484 5081577 0.000000 - . gene_id "C20orf30"; transcript_id "NM_001009924:uc002wll.3";
+chr20 hg19_knownGene CDS 5086834 5086956 0.000000 - 0 gene_id "C20orf30"; transcript_id "NM_001009924:uc002wll.3";
+chr20 hg19_knownGene exon 5086834 5086956 0.000000 - . gene_id "C20orf30"; transcript_id "NM_001009924:uc002wll.3";
+chr20 hg19_knownGene CDS 5089978 5090076 0.000000 - 0 gene_id "C20orf30"; transcript_id "NM_001009924:uc002wll.3";
+chr20 hg19_knownGene exon 5089978 5090091 0.000000 - . gene_id "C20orf30"; transcript_id "NM_001009924:uc002wll.3";
+chr20 hg19_knownGene exon 5092146 5092251 0.000000 - . gene_id "C20orf30"; transcript_id "NM_001009924:uc002wll.3";
+chr20 hg19_knownGene exon 5093389 5093733 0.000000 - . gene_id "C20orf30"; transcript_id "NM_001009924:uc002wll.3";
+chr20 hg19_knownGene CDS 5081440 5081577 0.000000 - 0 gene_id "C20orf30"; transcript_id "NM_001009925:uc002wlm.3";
+chr20 hg19_knownGene exon 5080484 5081577 0.000000 - . gene_id "C20orf30"; transcript_id "NM_001009925:uc002wlm.3";
+chr20 hg19_knownGene CDS 5086834 5086956 0.000000 - 0 gene_id "C20orf30"; transcript_id "NM_001009925:uc002wlm.3";
+chr20 hg19_knownGene exon 5086834 5086956 0.000000 - . gene_id "C20orf30"; transcript_id "NM_001009925:uc002wlm.3";
+chr20 hg19_knownGene CDS 5089978 5090076 0.000000 - 0 gene_id "C20orf30"; transcript_id "NM_001009925:uc002wlm.3";
+chr20 hg19_knownGene exon 5089978 5090091 0.000000 - . gene_id "C20orf30"; transcript_id "NM_001009925:uc002wlm.3";
+chr20 hg19_knownGene exon 5093607 5093733 0.000000 - . gene_id "C20orf30"; transcript_id "NM_001009925:uc002wlm.3";
+chr20 hg19_knownGene CDS 5081440 5081577 0.000000 - 0 gene_id "C20orf30"; transcript_id "NM_014145:uc002wln.3";
+chr20 hg19_knownGene exon 5080484 5081577 0.000000 - . gene_id "C20orf30"; transcript_id "NM_014145:uc002wln.3";
+chr20 hg19_knownGene CDS 5086834 5086956 0.000000 - 0 gene_id "C20orf30"; transcript_id "NM_014145:uc002wln.3";
+chr20 hg19_knownGene exon 5086834 5086956 0.000000 - . gene_id "C20orf30"; transcript_id "NM_014145:uc002wln.3";
+chr20 hg19_knownGene CDS 5089978 5090076 0.000000 - 0 gene_id "C20orf30"; transcript_id "NM_014145:uc002wln.3";
+chr20 hg19_knownGene exon 5089978 5090091 0.000000 - . gene_id "C20orf30"; transcript_id "NM_014145:uc002wln.3";
+chr20 hg19_knownGene exon 5093376 5093733 0.000000 - . gene_id "C20orf30"; transcript_id "NM_014145:uc002wln.3";
+chr20 hg19_knownGene exon 5100232 5100615 0.000000 + . gene_id "PCNA-AS1"; transcript_id "NR_028370:uc021wai.1";
+chr20 hg19_knownGene CDS 5095932 5096008 0.000000 - 2 gene_id "PCNA"; transcript_id "NM_182649:uc002wlp.3";
+chr20 hg19_knownGene exon 5095599 5096008 0.000000 - . gene_id "PCNA"; transcript_id "NM_182649:uc002wlp.3";
+chr20 hg19_knownGene CDS 5096095 5096218 0.000000 - 0 gene_id "PCNA"; transcript_id "NM_182649:uc002wlp.3";
+chr20 hg19_knownGene exon 5096095 5096218 0.000000 - . gene_id "PCNA"; transcript_id "NM_182649:uc002wlp.3";
+chr20 hg19_knownGene CDS 5098116 5098310 0.000000 - 0 gene_id "PCNA"; transcript_id "NM_182649:uc002wlp.3";
+chr20 hg19_knownGene exon 5098116 5098310 0.000000 - . gene_id "PCNA"; transcript_id "NM_182649:uc002wlp.3";
+chr20 hg19_knownGene CDS 5099256 5099323 0.000000 - 2 gene_id "PCNA"; transcript_id "NM_182649:uc002wlp.3";
+chr20 hg19_knownGene exon 5099256 5099323 0.000000 - . gene_id "PCNA"; transcript_id "NM_182649:uc002wlp.3";
+chr20 hg19_knownGene CDS 5099415 5099512 0.000000 - 1 gene_id "PCNA"; transcript_id "NM_182649:uc002wlp.3";
+chr20 hg19_knownGene exon 5099415 5099512 0.000000 - . gene_id "PCNA"; transcript_id "NM_182649:uc002wlp.3";
+chr20 hg19_knownGene CDS 5100224 5100444 0.000000 - 0 gene_id "PCNA"; transcript_id "NM_182649:uc002wlp.3";
+chr20 hg19_knownGene exon 5100224 5100647 0.000000 - . gene_id "PCNA"; transcript_id "NM_182649:uc002wlp.3";
+chr20 hg19_knownGene CDS 5095932 5096008 0.000000 - 2 gene_id "PCNA"; transcript_id "NM_002592:uc002wlq.3";
+chr20 hg19_knownGene exon 5095599 5096008 0.000000 - . gene_id "PCNA"; transcript_id "NM_002592:uc002wlq.3";
+chr20 hg19_knownGene CDS 5096095 5096218 0.000000 - 0 gene_id "PCNA"; transcript_id "NM_002592:uc002wlq.3";
+chr20 hg19_knownGene exon 5096095 5096218 0.000000 - . gene_id "PCNA"; transcript_id "NM_002592:uc002wlq.3";
+chr20 hg19_knownGene CDS 5098116 5098310 0.000000 - 0 gene_id "PCNA"; transcript_id "NM_002592:uc002wlq.3";
+chr20 hg19_knownGene exon 5098116 5098310 0.000000 - . gene_id "PCNA"; transcript_id "NM_002592:uc002wlq.3";
+chr20 hg19_knownGene CDS 5099256 5099323 0.000000 - 2 gene_id "PCNA"; transcript_id "NM_002592:uc002wlq.3";
+chr20 hg19_knownGene exon 5099256 5099323 0.000000 - . gene_id "PCNA"; transcript_id "NM_002592:uc002wlq.3";
+chr20 hg19_knownGene CDS 5099415 5099512 0.000000 - 1 gene_id "PCNA"; transcript_id "NM_002592:uc002wlq.3";
+chr20 hg19_knownGene exon 5099415 5099512 0.000000 - . gene_id "PCNA"; transcript_id "NM_002592:uc002wlq.3";
+chr20 hg19_knownGene CDS 5100224 5100444 0.000000 - 0 gene_id "PCNA"; transcript_id "NM_002592:uc002wlq.3";
+chr20 hg19_knownGene exon 5100224 5100560 0.000000 - . gene_id "PCNA"; transcript_id "NM_002592:uc002wlq.3";
+chr20 hg19_knownGene exon 5107146 5107268 0.000000 - . gene_id "PCNA"; transcript_id "NM_002592:uc002wlq.3";
+chr20 hg19_knownGene CDS 5099302 5099512 0.000000 - 1 gene_id "PCNA"; transcript_id "AK300558:uc010zqs.1";
+chr20 hg19_knownGene exon 5098692 5099512 0.000000 - . gene_id "PCNA"; transcript_id "AK300558:uc010zqs.1";
+chr20 hg19_knownGene CDS 5100224 5100444 0.000000 - 0 gene_id "PCNA"; transcript_id "AK300558:uc010zqs.1";
+chr20 hg19_knownGene exon 5100224 5100560 0.000000 - . gene_id "PCNA"; transcript_id "AK300558:uc010zqs.1";
+chr20 hg19_knownGene exon 5107146 5107268 0.000000 - . gene_id "PCNA"; transcript_id "AK300558:uc010zqs.1";
+chr20 hg19_knownGene exon 5107407 5107795 0.000000 + . gene_id "CDS2"; transcript_id "AK091045:uc002wlr.2";
+chr20 hg19_knownGene exon 5108796 5109396 0.000000 + . gene_id "CDS2"; transcript_id "AK091045:uc002wlr.2";
+chr20 hg19_knownGene exon 5154169 5154305 0.000000 + . gene_id "CDS2"; transcript_id "AK091045:uc002wlr.2";
+chr20 hg19_knownGene CDS 5155869 5155925 0.000000 + 0 gene_id "CDS2"; transcript_id "AK091045:uc002wlr.2";
+chr20 hg19_knownGene exon 5155829 5155925 0.000000 + . gene_id "CDS2"; transcript_id "AK091045:uc002wlr.2";
+chr20 hg19_knownGene CDS 5157294 5157391 0.000000 + 0 gene_id "CDS2"; transcript_id "AK091045:uc002wlr.2";
+chr20 hg19_knownGene exon 5157294 5157391 0.000000 + . gene_id "CDS2"; transcript_id "AK091045:uc002wlr.2";
+chr20 hg19_knownGene CDS 5159463 5159602 0.000000 + 1 gene_id "CDS2"; transcript_id "AK091045:uc002wlr.2";
+chr20 hg19_knownGene exon 5159463 5159602 0.000000 + . gene_id "CDS2"; transcript_id "AK091045:uc002wlr.2";
+chr20 hg19_knownGene CDS 5163033 5163091 0.000000 + 2 gene_id "CDS2"; transcript_id "AK091045:uc002wlr.2";
+chr20 hg19_knownGene exon 5163033 5163091 0.000000 + . gene_id "CDS2"; transcript_id "AK091045:uc002wlr.2";
+chr20 hg19_knownGene CDS 5163707 5163789 0.000000 + 0 gene_id "CDS2"; transcript_id "AK091045:uc002wlr.2";
+chr20 hg19_knownGene exon 5163707 5163789 0.000000 + . gene_id "CDS2"; transcript_id "AK091045:uc002wlr.2";
+chr20 hg19_knownGene CDS 5165504 5165591 0.000000 + 1 gene_id "CDS2"; transcript_id "AK091045:uc002wlr.2";
+chr20 hg19_knownGene exon 5165504 5165591 0.000000 + . gene_id "CDS2"; transcript_id "AK091045:uc002wlr.2";
+chr20 hg19_knownGene CDS 5166404 5166472 0.000000 + 0 gene_id "CDS2"; transcript_id "AK091045:uc002wlr.2";
+chr20 hg19_knownGene exon 5166404 5166472 0.000000 + . gene_id "CDS2"; transcript_id "AK091045:uc002wlr.2";
+chr20 hg19_knownGene CDS 5167333 5167506 0.000000 + 0 gene_id "CDS2"; transcript_id "AK091045:uc002wlr.2";
+chr20 hg19_knownGene exon 5167333 5168525 0.000000 + . gene_id "CDS2"; transcript_id "AK091045:uc002wlr.2";
+chr20 hg19_knownGene CDS 5107739 5107795 0.000000 + 0 gene_id "CDS2"; transcript_id "NM_003818:uc002wls.3";
+chr20 hg19_knownGene exon 5107407 5107795 0.000000 + . gene_id "CDS2"; transcript_id "NM_003818:uc002wls.3";
+chr20 hg19_knownGene CDS 5154169 5154305 0.000000 + 0 gene_id "CDS2"; transcript_id "NM_003818:uc002wls.3";
+chr20 hg19_knownGene exon 5154169 5154305 0.000000 + . gene_id "CDS2"; transcript_id "NM_003818:uc002wls.3";
+chr20 hg19_knownGene CDS 5155829 5155925 0.000000 + 1 gene_id "CDS2"; transcript_id "NM_003818:uc002wls.3";
+chr20 hg19_knownGene exon 5155829 5155925 0.000000 + . gene_id "CDS2"; transcript_id "NM_003818:uc002wls.3";
+chr20 hg19_knownGene CDS 5157294 5157391 0.000000 + 0 gene_id "CDS2"; transcript_id "NM_003818:uc002wls.3";
+chr20 hg19_knownGene exon 5157294 5157391 0.000000 + . gene_id "CDS2"; transcript_id "NM_003818:uc002wls.3";
+chr20 hg19_knownGene CDS 5159463 5159602 0.000000 + 1 gene_id "CDS2"; transcript_id "NM_003818:uc002wls.3";
+chr20 hg19_knownGene exon 5159463 5159602 0.000000 + . gene_id "CDS2"; transcript_id "NM_003818:uc002wls.3";
+chr20 hg19_knownGene CDS 5163033 5163091 0.000000 + 2 gene_id "CDS2"; transcript_id "NM_003818:uc002wls.3";
+chr20 hg19_knownGene exon 5163033 5163091 0.000000 + . gene_id "CDS2"; transcript_id "NM_003818:uc002wls.3";
+chr20 hg19_knownGene CDS 5163707 5163789 0.000000 + 0 gene_id "CDS2"; transcript_id "NM_003818:uc002wls.3";
+chr20 hg19_knownGene exon 5163707 5163789 0.000000 + . gene_id "CDS2"; transcript_id "NM_003818:uc002wls.3";
+chr20 hg19_knownGene CDS 5165504 5165591 0.000000 + 1 gene_id "CDS2"; transcript_id "NM_003818:uc002wls.3";
+chr20 hg19_knownGene exon 5165504 5165591 0.000000 + . gene_id "CDS2"; transcript_id "NM_003818:uc002wls.3";
+chr20 hg19_knownGene CDS 5166404 5166472 0.000000 + 0 gene_id "CDS2"; transcript_id "NM_003818:uc002wls.3";
+chr20 hg19_knownGene exon 5166404 5166472 0.000000 + . gene_id "CDS2"; transcript_id "NM_003818:uc002wls.3";
+chr20 hg19_knownGene CDS 5167333 5167485 0.000000 + 0 gene_id "CDS2"; transcript_id "NM_003818:uc002wls.3";
+chr20 hg19_knownGene exon 5167333 5167485 0.000000 + . gene_id "CDS2"; transcript_id "NM_003818:uc002wls.3";
+chr20 hg19_knownGene CDS 5169713 5169832 0.000000 + 0 gene_id "CDS2"; transcript_id "NM_003818:uc002wls.3";
+chr20 hg19_knownGene exon 5169713 5169832 0.000000 + . gene_id "CDS2"; transcript_id "NM_003818:uc002wls.3";
+chr20 hg19_knownGene CDS 5170381 5170484 0.000000 + 0 gene_id "CDS2"; transcript_id "NM_003818:uc002wls.3";
+chr20 hg19_knownGene exon 5170381 5170484 0.000000 + . gene_id "CDS2"; transcript_id "NM_003818:uc002wls.3";
+chr20 hg19_knownGene CDS 5170748 5170877 0.000000 + 1 gene_id "CDS2"; transcript_id "NM_003818:uc002wls.3";
+chr20 hg19_knownGene exon 5170748 5178533 0.000000 + . gene_id "CDS2"; transcript_id "NM_003818:uc002wls.3";
+chr20 hg19_knownGene CDS 5107767 5107795 0.000000 + 0 gene_id "CDS2"; transcript_id "AK304763:uc002wlw.3";
+chr20 hg19_knownGene exon 5107407 5107795 0.000000 + . gene_id "CDS2"; transcript_id "AK304763:uc002wlw.3";
+chr20 hg19_knownGene CDS 5159463 5159602 0.000000 + 1 gene_id "CDS2"; transcript_id "AK304763:uc002wlw.3";
+chr20 hg19_knownGene exon 5159463 5159602 0.000000 + . gene_id "CDS2"; transcript_id "AK304763:uc002wlw.3";
+chr20 hg19_knownGene CDS 5163033 5163091 0.000000 + 2 gene_id "CDS2"; transcript_id "AK304763:uc002wlw.3";
+chr20 hg19_knownGene exon 5163033 5163091 0.000000 + . gene_id "CDS2"; transcript_id "AK304763:uc002wlw.3";
+chr20 hg19_knownGene CDS 5163707 5163789 0.000000 + 0 gene_id "CDS2"; transcript_id "AK304763:uc002wlw.3";
+chr20 hg19_knownGene exon 5163707 5163789 0.000000 + . gene_id "CDS2"; transcript_id "AK304763:uc002wlw.3";
+chr20 hg19_knownGene CDS 5165504 5165591 0.000000 + 1 gene_id "CDS2"; transcript_id "AK304763:uc002wlw.3";
+chr20 hg19_knownGene exon 5165504 5165591 0.000000 + . gene_id "CDS2"; transcript_id "AK304763:uc002wlw.3";
+chr20 hg19_knownGene CDS 5166404 5166472 0.000000 + 0 gene_id "CDS2"; transcript_id "AK304763:uc002wlw.3";
+chr20 hg19_knownGene exon 5166404 5166472 0.000000 + . gene_id "CDS2"; transcript_id "AK304763:uc002wlw.3";
+chr20 hg19_knownGene CDS 5167333 5167485 0.000000 + 0 gene_id "CDS2"; transcript_id "AK304763:uc002wlw.3";
+chr20 hg19_knownGene exon 5167333 5167485 0.000000 + . gene_id "CDS2"; transcript_id "AK304763:uc002wlw.3";
+chr20 hg19_knownGene CDS 5169713 5169832 0.000000 + 0 gene_id "CDS2"; transcript_id "AK304763:uc002wlw.3";
+chr20 hg19_knownGene exon 5169713 5169832 0.000000 + . gene_id "CDS2"; transcript_id "AK304763:uc002wlw.3";
+chr20 hg19_knownGene CDS 5170381 5170484 0.000000 + 0 gene_id "CDS2"; transcript_id "AK304763:uc002wlw.3";
+chr20 hg19_knownGene exon 5170381 5170484 0.000000 + . gene_id "CDS2"; transcript_id "AK304763:uc002wlw.3";
+chr20 hg19_knownGene CDS 5170748 5170877 0.000000 + 1 gene_id "CDS2"; transcript_id "AK304763:uc002wlw.3";
+chr20 hg19_knownGene exon 5170748 5178533 0.000000 + . gene_id "CDS2"; transcript_id "AK304763:uc002wlw.3";
+chr20 hg19_knownGene CDS 5157297 5157391 0.000000 + 0 gene_id "CDS2"; transcript_id "AK095430:uc002wlv.3";
+chr20 hg19_knownGene exon 5156748 5157391 0.000000 + . gene_id "CDS2"; transcript_id "AK095430:uc002wlv.3";
+chr20 hg19_knownGene CDS 5159463 5159602 0.000000 + 1 gene_id "CDS2"; transcript_id "AK095430:uc002wlv.3";
+chr20 hg19_knownGene exon 5159463 5159602 0.000000 + . gene_id "CDS2"; transcript_id "AK095430:uc002wlv.3";
+chr20 hg19_knownGene CDS 5163033 5163091 0.000000 + 2 gene_id "CDS2"; transcript_id "AK095430:uc002wlv.3";
+chr20 hg19_knownGene exon 5163033 5163091 0.000000 + . gene_id "CDS2"; transcript_id "AK095430:uc002wlv.3";
+chr20 hg19_knownGene CDS 5163707 5163789 0.000000 + 0 gene_id "CDS2"; transcript_id "AK095430:uc002wlv.3";
+chr20 hg19_knownGene exon 5163707 5163789 0.000000 + . gene_id "CDS2"; transcript_id "AK095430:uc002wlv.3";
+chr20 hg19_knownGene CDS 5165504 5165591 0.000000 + 1 gene_id "CDS2"; transcript_id "AK095430:uc002wlv.3";
+chr20 hg19_knownGene exon 5165504 5165591 0.000000 + . gene_id "CDS2"; transcript_id "AK095430:uc002wlv.3";
+chr20 hg19_knownGene CDS 5166404 5166472 0.000000 + 0 gene_id "CDS2"; transcript_id "AK095430:uc002wlv.3";
+chr20 hg19_knownGene exon 5166404 5166472 0.000000 + . gene_id "CDS2"; transcript_id "AK095430:uc002wlv.3";
+chr20 hg19_knownGene CDS 5167333 5167485 0.000000 + 0 gene_id "CDS2"; transcript_id "AK095430:uc002wlv.3";
+chr20 hg19_knownGene exon 5167333 5167485 0.000000 + . gene_id "CDS2"; transcript_id "AK095430:uc002wlv.3";
+chr20 hg19_knownGene CDS 5169713 5169832 0.000000 + 0 gene_id "CDS2"; transcript_id "AK095430:uc002wlv.3";
+chr20 hg19_knownGene exon 5169713 5169832 0.000000 + . gene_id "CDS2"; transcript_id "AK095430:uc002wlv.3";
+chr20 hg19_knownGene CDS 5170381 5170484 0.000000 + 0 gene_id "CDS2"; transcript_id "AK095430:uc002wlv.3";
+chr20 hg19_knownGene exon 5170381 5170484 0.000000 + . gene_id "CDS2"; transcript_id "AK095430:uc002wlv.3";
+chr20 hg19_knownGene CDS 5170748 5170877 0.000000 + 1 gene_id "CDS2"; transcript_id "AK095430:uc002wlv.3";
+chr20 hg19_knownGene exon 5170748 5178533 0.000000 + . gene_id "CDS2"; transcript_id "AK095430:uc002wlv.3";
+chr20 hg19_knownGene exon 5159463 5159602 0.000000 + . gene_id "CDS2"; transcript_id "AK303426:uc010zqv.2";
+chr20 hg19_knownGene CDS 5163041 5163091 0.000000 + 0 gene_id "CDS2"; transcript_id "AK303426:uc010zqv.2";
+chr20 hg19_knownGene exon 5163033 5163091 0.000000 + . gene_id "CDS2"; transcript_id "AK303426:uc010zqv.2";
+chr20 hg19_knownGene CDS 5163707 5163789 0.000000 + 0 gene_id "CDS2"; transcript_id "AK303426:uc010zqv.2";
+chr20 hg19_knownGene exon 5163707 5163789 0.000000 + . gene_id "CDS2"; transcript_id "AK303426:uc010zqv.2";
+chr20 hg19_knownGene CDS 5165504 5165591 0.000000 + 1 gene_id "CDS2"; transcript_id "AK303426:uc010zqv.2";
+chr20 hg19_knownGene exon 5165504 5165591 0.000000 + . gene_id "CDS2"; transcript_id "AK303426:uc010zqv.2";
+chr20 hg19_knownGene CDS 5166404 5166472 0.000000 + 0 gene_id "CDS2"; transcript_id "AK303426:uc010zqv.2";
+chr20 hg19_knownGene exon 5166404 5166472 0.000000 + . gene_id "CDS2"; transcript_id "AK303426:uc010zqv.2";
+chr20 hg19_knownGene CDS 5169713 5169832 0.000000 + 0 gene_id "CDS2"; transcript_id "AK303426:uc010zqv.2";
+chr20 hg19_knownGene exon 5169713 5169832 0.000000 + . gene_id "CDS2"; transcript_id "AK303426:uc010zqv.2";
+chr20 hg19_knownGene CDS 5170381 5170484 0.000000 + 0 gene_id "CDS2"; transcript_id "AK303426:uc010zqv.2";
+chr20 hg19_knownGene exon 5170381 5170484 0.000000 + . gene_id "CDS2"; transcript_id "AK303426:uc010zqv.2";
+chr20 hg19_knownGene CDS 5170748 5170877 0.000000 + 1 gene_id "CDS2"; transcript_id "AK303426:uc010zqv.2";
+chr20 hg19_knownGene exon 5170748 5178533 0.000000 + . gene_id "CDS2"; transcript_id "AK303426:uc010zqv.2";
+chr20 hg19_knownGene CDS 5282689 5283382 0.000000 - 1 gene_id "PROKR2"; transcript_id "NM_144773:uc010zqw.2";
+chr20 hg19_knownGene exon 5282686 5283382 0.000000 - . gene_id "PROKR2"; transcript_id "NM_144773:uc010zqw.2";
+chr20 hg19_knownGene CDS 5294558 5295015 0.000000 - 0 gene_id "PROKR2"; transcript_id "NM_144773:uc010zqw.2";
+chr20 hg19_knownGene exon 5294558 5295023 0.000000 - . gene_id "PROKR2"; transcript_id "NM_144773:uc010zqw.2";
+chr20 hg19_knownGene CDS 5282689 5283382 0.000000 - 1 gene_id "PROKR2"; transcript_id "BC104961:uc010zqx.2";
+chr20 hg19_knownGene exon 5282686 5283382 0.000000 - . gene_id "PROKR2"; transcript_id "BC104961:uc010zqx.2";
+chr20 hg19_knownGene CDS 5294558 5295015 0.000000 - 0 gene_id "PROKR2"; transcript_id "BC104961:uc010zqx.2";
+chr20 hg19_knownGene exon 5294558 5295059 0.000000 - . gene_id "PROKR2"; transcript_id "BC104961:uc010zqx.2";
+chr20 hg19_knownGene CDS 5282689 5283382 0.000000 - 1 gene_id "PROKR2"; transcript_id "AK289995:uc010zqy.2";
+chr20 hg19_knownGene exon 5282686 5283382 0.000000 - . gene_id "PROKR2"; transcript_id "AK289995:uc010zqy.2";
+chr20 hg19_knownGene CDS 5294558 5295015 0.000000 - 0 gene_id "PROKR2"; transcript_id "AK289995:uc010zqy.2";
+chr20 hg19_knownGene exon 5294558 5295023 0.000000 - . gene_id "PROKR2"; transcript_id "AK289995:uc010zqy.2";
+chr20 hg19_knownGene exon 5297140 5297378 0.000000 - . gene_id "PROKR2"; transcript_id "AK289995:uc010zqy.2";
+chr20 hg19_knownGene CDS 5296377 5297081 0.000000 + 0 gene_id "AX746654"; transcript_id "AX746654:uc002wly.1";
+chr20 hg19_knownGene exon 5296222 5298369 0.000000 + . gene_id "AX746654"; transcript_id "AX746654:uc002wly.1";
+chr20 hg19_knownGene exon 5412603 5413284 0.000000 - . gene_id "LOC100507629"; transcript_id "NR_038239:uc021waj.1";
+chr20 hg19_knownGene exon 5414435 5414738 0.000000 - . gene_id "LOC100507629"; transcript_id "NR_038239:uc021waj.1";
+chr20 hg19_knownGene exon 5414818 5415051 0.000000 - . gene_id "LOC100507629"; transcript_id "NR_038239:uc021waj.1";
+chr20 hg19_knownGene exon 5417746 5417919 0.000000 - . gene_id "LOC100507629"; transcript_id "NR_038239:uc021waj.1";
+chr20 hg19_knownGene exon 5426150 5426394 0.000000 - . gene_id "LOC100507629"; transcript_id "NR_038239:uc021waj.1";
+chr20 hg19_knownGene exon 5412603 5413284 0.000000 - . gene_id "LOC100507629"; transcript_id "NR_038240:uc010gbl.2";
+chr20 hg19_knownGene exon 5414435 5414716 0.000000 - . gene_id "LOC100507629"; transcript_id "NR_038240:uc010gbl.2";
+chr20 hg19_knownGene exon 5414818 5415051 0.000000 - . gene_id "LOC100507629"; transcript_id "NR_038240:uc010gbl.2";
+chr20 hg19_knownGene exon 5417746 5417919 0.000000 - . gene_id "LOC100507629"; transcript_id "NR_038240:uc010gbl.2";
+chr20 hg19_knownGene exon 5426150 5426394 0.000000 - . gene_id "LOC100507629"; transcript_id "NR_038240:uc010gbl.2";
+chr20 hg19_knownGene exon 5451842 5452139 0.000000 + . gene_id "LOC643406"; transcript_id "NR_029405:uc002wmb.2";
+chr20 hg19_knownGene CDS 5454289 5454582 0.000000 + 0 gene_id "LOC643406"; transcript_id "NR_029405:uc002wmb.2";
+chr20 hg19_knownGene exon 5454280 5457780 0.000000 + . gene_id "LOC643406"; transcript_id "NR_029405:uc002wmb.2";
+chr20 hg19_knownGene exon 5479218 5482509 0.000000 - . gene_id "LOC149837"; transcript_id "NR_015406:uc002wmc.3";
+chr20 hg19_knownGene exon 5484944 5485242 0.000000 - . gene_id "LOC149837"; transcript_id "NR_015406:uc002wmc.3";
+chr20 hg19_knownGene CDS 5528310 5528496 0.000000 - 1 gene_id "GPCPD1"; transcript_id "AL833069:uc002wmd.4";
+chr20 hg19_knownGene exon 5525080 5528496 0.000000 - . gene_id "GPCPD1"; transcript_id "AL833069:uc002wmd.4";
+chr20 hg19_knownGene CDS 5538591 5538751 0.000000 - 0 gene_id "GPCPD1"; transcript_id "AL833069:uc002wmd.4";
+chr20 hg19_knownGene exon 5538591 5538751 0.000000 - . gene_id "GPCPD1"; transcript_id "AL833069:uc002wmd.4";
+chr20 hg19_knownGene CDS 5539330 5539465 0.000000 - 1 gene_id "GPCPD1"; transcript_id "AL833069:uc002wmd.4";
+chr20 hg19_knownGene exon 5539330 5539465 0.000000 - . gene_id "GPCPD1"; transcript_id "AL833069:uc002wmd.4";
+chr20 hg19_knownGene CDS 5540586 5540722 0.000000 - 0 gene_id "GPCPD1"; transcript_id "AL833069:uc002wmd.4";
+chr20 hg19_knownGene exon 5540586 5540722 0.000000 - . gene_id "GPCPD1"; transcript_id "AL833069:uc002wmd.4";
+chr20 hg19_knownGene CDS 5542111 5542176 0.000000 - 0 gene_id "GPCPD1"; transcript_id "AL833069:uc002wmd.4";
+chr20 hg19_knownGene exon 5542111 5542176 0.000000 - . gene_id "GPCPD1"; transcript_id "AL833069:uc002wmd.4";
+chr20 hg19_knownGene CDS 5545663 5545724 0.000000 - 2 gene_id "GPCPD1"; transcript_id "AL833069:uc002wmd.4";
+chr20 hg19_knownGene exon 5545663 5545724 0.000000 - . gene_id "GPCPD1"; transcript_id "AL833069:uc002wmd.4";
+chr20 hg19_knownGene CDS 5547379 5547418 0.000000 - 0 gene_id "GPCPD1"; transcript_id "AL833069:uc002wmd.4";
+chr20 hg19_knownGene exon 5547379 5547418 0.000000 - . gene_id "GPCPD1"; transcript_id "AL833069:uc002wmd.4";
+chr20 hg19_knownGene CDS 5548129 5548206 0.000000 - 0 gene_id "GPCPD1"; transcript_id "AL833069:uc002wmd.4";
+chr20 hg19_knownGene exon 5548129 5548206 0.000000 - . gene_id "GPCPD1"; transcript_id "AL833069:uc002wmd.4";
+chr20 hg19_knownGene CDS 5550793 5550885 0.000000 - 0 gene_id "GPCPD1"; transcript_id "AL833069:uc002wmd.4";
+chr20 hg19_knownGene exon 5550793 5550885 0.000000 - . gene_id "GPCPD1"; transcript_id "AL833069:uc002wmd.4";
+chr20 hg19_knownGene CDS 5554561 5554615 0.000000 - 1 gene_id "GPCPD1"; transcript_id "AL833069:uc002wmd.4";
+chr20 hg19_knownGene exon 5554561 5554615 0.000000 - . gene_id "GPCPD1"; transcript_id "AL833069:uc002wmd.4";
+chr20 hg19_knownGene CDS 5556059 5556191 0.000000 - 2 gene_id "GPCPD1"; transcript_id "AL833069:uc002wmd.4";
+chr20 hg19_knownGene exon 5556059 5556191 0.000000 - . gene_id "GPCPD1"; transcript_id "AL833069:uc002wmd.4";
+chr20 hg19_knownGene CDS 5556462 5556624 0.000000 - 0 gene_id "GPCPD1"; transcript_id "AL833069:uc002wmd.4";
+chr20 hg19_knownGene exon 5556462 5556624 0.000000 - . gene_id "GPCPD1"; transcript_id "AL833069:uc002wmd.4";
+chr20 hg19_knownGene CDS 5559026 5559187 0.000000 - 0 gene_id "GPCPD1"; transcript_id "AL833069:uc002wmd.4";
+chr20 hg19_knownGene exon 5559026 5559257 0.000000 - . gene_id "GPCPD1"; transcript_id "AL833069:uc002wmd.4";
+chr20 hg19_knownGene exon 5560654 5560777 0.000000 - . gene_id "GPCPD1"; transcript_id "AL833069:uc002wmd.4";
+chr20 hg19_knownGene exon 5564927 5566683 0.000000 - . gene_id "GPCPD1"; transcript_id "AL833069:uc002wmd.4";
+chr20 hg19_knownGene CDS 5528310 5528496 0.000000 - 1 gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene exon 5525080 5528496 0.000000 - . gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene CDS 5538591 5538751 0.000000 - 0 gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene exon 5538591 5538751 0.000000 - . gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene CDS 5539330 5539465 0.000000 - 1 gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene exon 5539330 5539465 0.000000 - . gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene CDS 5540586 5540722 0.000000 - 0 gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene exon 5540586 5540722 0.000000 - . gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene CDS 5542111 5542176 0.000000 - 0 gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene exon 5542111 5542176 0.000000 - . gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene CDS 5545663 5545724 0.000000 - 2 gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene exon 5545663 5545724 0.000000 - . gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene CDS 5547379 5547418 0.000000 - 0 gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene exon 5547379 5547418 0.000000 - . gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene CDS 5548129 5548206 0.000000 - 0 gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene exon 5548129 5548206 0.000000 - . gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene CDS 5550793 5550885 0.000000 - 0 gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene exon 5550793 5550885 0.000000 - . gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene CDS 5554561 5554615 0.000000 - 1 gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene exon 5554561 5554615 0.000000 - . gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene CDS 5556059 5556191 0.000000 - 2 gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene exon 5556059 5556191 0.000000 - . gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene CDS 5556462 5556624 0.000000 - 0 gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene exon 5556462 5556624 0.000000 - . gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene CDS 5559026 5559257 0.000000 - 1 gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene exon 5559026 5559257 0.000000 - . gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene CDS 5560654 5560777 0.000000 - 2 gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene exon 5560654 5560777 0.000000 - . gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene CDS 5564927 5564968 0.000000 - 2 gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene exon 5564927 5564968 0.000000 - . gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene CDS 5566840 5566915 0.000000 - 0 gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene exon 5566840 5566915 0.000000 - . gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene CDS 5573973 5574057 0.000000 - 1 gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene exon 5573973 5574057 0.000000 - . gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene CDS 5579371 5579467 0.000000 - 2 gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene exon 5579371 5579467 0.000000 - . gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene CDS 5585010 5585058 0.000000 - 0 gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene exon 5585010 5585086 0.000000 - . gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene exon 5591488 5591672 0.000000 - . gene_id "GPCPD1"; transcript_id "NM_019593:uc002wme.4";
+chr20 hg19_knownGene exon 5731043 5731125 0.000000 + . gene_id "C20orf196"; transcript_id "NM_152504:uc002wmf.3";
+chr20 hg19_knownGene CDS 5753512 5753689 0.000000 + 0 gene_id "C20orf196"; transcript_id "NM_152504:uc002wmf.3";
+chr20 hg19_knownGene exon 5753508 5753689 0.000000 + . gene_id "C20orf196"; transcript_id "NM_152504:uc002wmf.3";
+chr20 hg19_knownGene CDS 5843670 5844106 0.000000 + 2 gene_id "C20orf196"; transcript_id "NM_152504:uc002wmf.3";
+chr20 hg19_knownGene exon 5843670 5844559 0.000000 + . gene_id "C20orf196"; transcript_id "NM_152504:uc002wmf.3";
+chr20 hg19_knownGene CDS 5892280 5892328 0.000000 + 0 gene_id "CHGB"; transcript_id "NM_001819:uc002wmg.3";
+chr20 hg19_knownGene exon 5891974 5892328 0.000000 + . gene_id "CHGB"; transcript_id "NM_001819:uc002wmg.3";
+chr20 hg19_knownGene CDS 5896972 5897018 0.000000 + 2 gene_id "CHGB"; transcript_id "NM_001819:uc002wmg.3";
+chr20 hg19_knownGene exon 5896972 5897018 0.000000 + . gene_id "CHGB"; transcript_id "NM_001819:uc002wmg.3";
+chr20 hg19_knownGene CDS 5897472 5897565 0.000000 + 0 gene_id "CHGB"; transcript_id "NM_001819:uc002wmg.3";
+chr20 hg19_knownGene exon 5897472 5897565 0.000000 + . gene_id "CHGB"; transcript_id "NM_001819:uc002wmg.3";
+chr20 hg19_knownGene CDS 5902981 5904746 0.000000 + 2 gene_id "CHGB"; transcript_id "NM_001819:uc002wmg.3";
+chr20 hg19_knownGene exon 5902981 5904746 0.000000 + . gene_id "CHGB"; transcript_id "NM_001819:uc002wmg.3";
+chr20 hg19_knownGene CDS 5905618 5905692 0.000000 + 0 gene_id "CHGB"; transcript_id "NM_001819:uc002wmg.3";
+chr20 hg19_knownGene exon 5905618 5906005 0.000000 + . gene_id "CHGB"; transcript_id "NM_001819:uc002wmg.3";
+chr20 hg19_knownGene exon 5891974 5892328 0.000000 + . gene_id "CHGB"; transcript_id "AK293536:uc010zqz.2";
+chr20 hg19_knownGene exon 5896972 5897018 0.000000 + . gene_id "CHGB"; transcript_id "AK293536:uc010zqz.2";
+chr20 hg19_knownGene exon 5897472 5897552 0.000000 + . gene_id "CHGB"; transcript_id "AK293536:uc010zqz.2";
+chr20 hg19_knownGene CDS 5903742 5904746 0.000000 + 0 gene_id "CHGB"; transcript_id "AK293536:uc010zqz.2";
+chr20 hg19_knownGene exon 5903233 5904746 0.000000 + . gene_id "CHGB"; transcript_id "AK293536:uc010zqz.2";
+chr20 hg19_knownGene CDS 5905618 5905692 0.000000 + 0 gene_id "CHGB"; transcript_id "AK293536:uc010zqz.2";
+chr20 hg19_knownGene exon 5905618 5906005 0.000000 + . gene_id "CHGB"; transcript_id "AK293536:uc010zqz.2";
+chr20 hg19_knownGene CDS 5919184 5919372 0.000000 - 0 gene_id "TRMT6"; transcript_id "NM_015939:uc002wmh.1";
+chr20 hg19_knownGene exon 5918486 5919372 0.000000 - . gene_id "TRMT6"; transcript_id "NM_015939:uc002wmh.1";
+chr20 hg19_knownGene CDS 5921699 5921785 0.000000 - 0 gene_id "TRMT6"; transcript_id "NM_015939:uc002wmh.1";
+chr20 hg19_knownGene exon 5921699 5921785 0.000000 - . gene_id "TRMT6"; transcript_id "NM_015939:uc002wmh.1";
+chr20 hg19_knownGene CDS 5921889 5921991 0.000000 - 1 gene_id "TRMT6"; transcript_id "NM_015939:uc002wmh.1";
+chr20 hg19_knownGene exon 5921889 5921991 0.000000 - . gene_id "TRMT6"; transcript_id "NM_015939:uc002wmh.1";
+chr20 hg19_knownGene CDS 5922597 5922682 0.000000 - 0 gene_id "TRMT6"; transcript_id "NM_015939:uc002wmh.1";
+chr20 hg19_knownGene exon 5922597 5922682 0.000000 - . gene_id "TRMT6"; transcript_id "NM_015939:uc002wmh.1";
+chr20 hg19_knownGene CDS 5923074 5923432 0.000000 - 2 gene_id "TRMT6"; transcript_id "NM_015939:uc002wmh.1";
+chr20 hg19_knownGene exon 5923074 5923432 0.000000 - . gene_id "TRMT6"; transcript_id "NM_015939:uc002wmh.1";
+chr20 hg19_knownGene CDS 5924205 5924329 0.000000 - 1 gene_id "TRMT6"; transcript_id "NM_015939:uc002wmh.1";
+chr20 hg19_knownGene exon 5924205 5924329 0.000000 - . gene_id "TRMT6"; transcript_id "NM_015939:uc002wmh.1";
+chr20 hg19_knownGene CDS 5924594 5924677 0.000000 - 1 gene_id "TRMT6"; transcript_id "NM_015939:uc002wmh.1";
+chr20 hg19_knownGene exon 5924594 5924677 0.000000 - . gene_id "TRMT6"; transcript_id "NM_015939:uc002wmh.1";
+chr20 hg19_knownGene CDS 5924808 5924899 0.000000 - 0 gene_id "TRMT6"; transcript_id "NM_015939:uc002wmh.1";
+chr20 hg19_knownGene exon 5924808 5924899 0.000000 - . gene_id "TRMT6"; transcript_id "NM_015939:uc002wmh.1";
+chr20 hg19_knownGene CDS 5925451 5925560 0.000000 - 2 gene_id "TRMT6"; transcript_id "NM_015939:uc002wmh.1";
+chr20 hg19_knownGene exon 5925451 5925560 0.000000 - . gene_id "TRMT6"; transcript_id "NM_015939:uc002wmh.1";
+chr20 hg19_knownGene CDS 5927052 5927179 0.000000 - 1 gene_id "TRMT6"; transcript_id "NM_015939:uc002wmh.1";
+chr20 hg19_knownGene exon 5927052 5927179 0.000000 - . gene_id "TRMT6"; transcript_id "NM_015939:uc002wmh.1";
+chr20 hg19_knownGene CDS 5930924 5931051 0.000000 - 0 gene_id "TRMT6"; transcript_id "NM_015939:uc002wmh.1";
+chr20 hg19_knownGene exon 5930924 5931173 0.000000 - . gene_id "TRMT6"; transcript_id "NM_015939:uc002wmh.1";
+chr20 hg19_knownGene CDS 5919184 5919372 0.000000 - 0 gene_id "TRMT6"; transcript_id "AK300812:uc010zra.1";
+chr20 hg19_knownGene exon 5918486 5919372 0.000000 - . gene_id "TRMT6"; transcript_id "AK300812:uc010zra.1";
+chr20 hg19_knownGene CDS 5921699 5921785 0.000000 - 0 gene_id "TRMT6"; transcript_id "AK300812:uc010zra.1";
+chr20 hg19_knownGene exon 5921699 5921785 0.000000 - . gene_id "TRMT6"; transcript_id "AK300812:uc010zra.1";
+chr20 hg19_knownGene CDS 5921889 5921991 0.000000 - 1 gene_id "TRMT6"; transcript_id "AK300812:uc010zra.1";
+chr20 hg19_knownGene exon 5921889 5921991 0.000000 - . gene_id "TRMT6"; transcript_id "AK300812:uc010zra.1";
+chr20 hg19_knownGene CDS 5922597 5922682 0.000000 - 0 gene_id "TRMT6"; transcript_id "AK300812:uc010zra.1";
+chr20 hg19_knownGene exon 5922597 5922682 0.000000 - . gene_id "TRMT6"; transcript_id "AK300812:uc010zra.1";
+chr20 hg19_knownGene CDS 5923074 5923432 0.000000 - 2 gene_id "TRMT6"; transcript_id "AK300812:uc010zra.1";
+chr20 hg19_knownGene exon 5923074 5923432 0.000000 - . gene_id "TRMT6"; transcript_id "AK300812:uc010zra.1";
+chr20 hg19_knownGene CDS 5924205 5924329 0.000000 - 1 gene_id "TRMT6"; transcript_id "AK300812:uc010zra.1";
+chr20 hg19_knownGene exon 5924205 5924329 0.000000 - . gene_id "TRMT6"; transcript_id "AK300812:uc010zra.1";
+chr20 hg19_knownGene CDS 5924594 5924625 0.000000 - 0 gene_id "TRMT6"; transcript_id "AK300812:uc010zra.1";
+chr20 hg19_knownGene exon 5924594 5924677 0.000000 - . gene_id "TRMT6"; transcript_id "AK300812:uc010zra.1";
+chr20 hg19_knownGene exon 5924808 5924899 0.000000 - . gene_id "TRMT6"; transcript_id "AK300812:uc010zra.1";
+chr20 hg19_knownGene exon 5927052 5927179 0.000000 - . gene_id "TRMT6"; transcript_id "AK300812:uc010zra.1";
+chr20 hg19_knownGene exon 5930924 5931173 0.000000 - . gene_id "TRMT6"; transcript_id "AK300812:uc010zra.1";
+chr20 hg19_knownGene CDS 5923008 5923432 0.000000 - 2 gene_id "TRMT6"; transcript_id "AK308648:uc010gbn.1";
+chr20 hg19_knownGene exon 5922499 5923432 0.000000 - . gene_id "TRMT6"; transcript_id "AK308648:uc010gbn.1";
+chr20 hg19_knownGene CDS 5924205 5924329 0.000000 - 1 gene_id "TRMT6"; transcript_id "AK308648:uc010gbn.1";
+chr20 hg19_knownGene exon 5924205 5924329 0.000000 - . gene_id "TRMT6"; transcript_id "AK308648:uc010gbn.1";
+chr20 hg19_knownGene CDS 5924594 5924625 0.000000 - 0 gene_id "TRMT6"; transcript_id "AK308648:uc010gbn.1";
+chr20 hg19_knownGene exon 5924594 5924677 0.000000 - . gene_id "TRMT6"; transcript_id "AK308648:uc010gbn.1";
+chr20 hg19_knownGene exon 5924808 5924899 0.000000 - . gene_id "TRMT6"; transcript_id "AK308648:uc010gbn.1";
+chr20 hg19_knownGene exon 5927052 5927179 0.000000 - . gene_id "TRMT6"; transcript_id "AK308648:uc010gbn.1";
+chr20 hg19_knownGene exon 5930924 5931173 0.000000 - . gene_id "TRMT6"; transcript_id "AK308648:uc010gbn.1";
+chr20 hg19_knownGene exon 5923074 5923432 0.000000 - . gene_id "TRMT6"; transcript_id "AK309205:uc010gbo.1";
+chr20 hg19_knownGene exon 5924205 5924329 0.000000 - . gene_id "TRMT6"; transcript_id "AK309205:uc010gbo.1";
+chr20 hg19_knownGene exon 5924473 5924677 0.000000 - . gene_id "TRMT6"; transcript_id "AK309205:uc010gbo.1";
+chr20 hg19_knownGene exon 5924808 5924899 0.000000 - . gene_id "TRMT6"; transcript_id "AK309205:uc010gbo.1";
+chr20 hg19_knownGene exon 5925451 5925560 0.000000 - . gene_id "TRMT6"; transcript_id "AK309205:uc010gbo.1";
+chr20 hg19_knownGene exon 5927052 5927179 0.000000 - . gene_id "TRMT6"; transcript_id "AK309205:uc010gbo.1";
+chr20 hg19_knownGene exon 5930924 5931173 0.000000 - . gene_id "TRMT6"; transcript_id "AK309205:uc010gbo.1";
+chr20 hg19_knownGene exon 5931298 5931669 0.000000 + . gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene CDS 5932662 5932809 0.000000 + 0 gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene exon 5932657 5932809 0.000000 + . gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene CDS 5933070 5933174 0.000000 + 2 gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene exon 5933070 5933174 0.000000 + . gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene CDS 5935254 5935336 0.000000 + 2 gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene exon 5935254 5935336 0.000000 + . gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene CDS 5935748 5935897 0.000000 + 0 gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene exon 5935748 5935897 0.000000 + . gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene CDS 5937772 5937875 0.000000 + 0 gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene exon 5937772 5937875 0.000000 + . gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene CDS 5939174 5939372 0.000000 + 1 gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene exon 5939174 5939372 0.000000 + . gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene CDS 5943920 5944005 0.000000 + 0 gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene exon 5943920 5944005 0.000000 + . gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene CDS 5948082 5948233 0.000000 + 1 gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene exon 5948082 5948233 0.000000 + . gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene CDS 5948476 5948671 0.000000 + 2 gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene exon 5948476 5948671 0.000000 + . gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene CDS 5952653 5952683 0.000000 + 1 gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene exon 5952653 5952683 0.000000 + . gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene CDS 5953702 5953842 0.000000 + 0 gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene exon 5953702 5953842 0.000000 + . gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene CDS 5958522 5958663 0.000000 + 0 gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene exon 5958522 5958663 0.000000 + . gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene CDS 5963616 5963811 0.000000 + 2 gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene exon 5963616 5963811 0.000000 + . gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene CDS 5965427 5965646 0.000000 + 1 gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene exon 5965427 5965646 0.000000 + . gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene CDS 5966568 5966777 0.000000 + 0 gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene exon 5966568 5966777 0.000000 + . gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene CDS 5967928 5968004 0.000000 + 0 gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene exon 5967928 5968004 0.000000 + . gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene CDS 5974152 5974341 0.000000 + 1 gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene exon 5974152 5974341 0.000000 + . gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene CDS 5974945 5975034 0.000000 + 0 gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene exon 5974945 5975831 0.000000 + . gene_id "MCM8"; transcript_id "NM_032485:uc002wmi.3";
+chr20 hg19_knownGene exon 5931298 5931723 0.000000 + . gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene CDS 5932662 5932809 0.000000 + 0 gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene exon 5932657 5932809 0.000000 + . gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene CDS 5933070 5933174 0.000000 + 2 gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene exon 5933070 5933174 0.000000 + . gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene CDS 5935254 5935336 0.000000 + 2 gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene exon 5935254 5935336 0.000000 + . gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene CDS 5935748 5935897 0.000000 + 0 gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene exon 5935748 5935897 0.000000 + . gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene CDS 5937772 5937875 0.000000 + 0 gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene exon 5937772 5937875 0.000000 + . gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene CDS 5939174 5939372 0.000000 + 1 gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene exon 5939174 5939372 0.000000 + . gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene CDS 5943920 5944005 0.000000 + 0 gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene exon 5943920 5944005 0.000000 + . gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene CDS 5948082 5948233 0.000000 + 1 gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene exon 5948082 5948233 0.000000 + . gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene CDS 5948524 5948671 0.000000 + 2 gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene exon 5948524 5948671 0.000000 + . gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene CDS 5952653 5952683 0.000000 + 1 gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene exon 5952653 5952683 0.000000 + . gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene CDS 5953702 5953842 0.000000 + 0 gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene exon 5953702 5953842 0.000000 + . gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene CDS 5958522 5958663 0.000000 + 0 gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene exon 5958522 5958663 0.000000 + . gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene CDS 5963616 5963811 0.000000 + 2 gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene exon 5963616 5963811 0.000000 + . gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene CDS 5965427 5965646 0.000000 + 1 gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene exon 5965427 5965646 0.000000 + . gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene CDS 5966568 5966777 0.000000 + 0 gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene exon 5966568 5966777 0.000000 + . gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene CDS 5967928 5968004 0.000000 + 0 gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene exon 5967928 5968004 0.000000 + . gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene CDS 5974152 5974341 0.000000 + 1 gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene exon 5974152 5974341 0.000000 + . gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene CDS 5974945 5975034 0.000000 + 0 gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene exon 5974945 5975831 0.000000 + . gene_id "MCM8"; transcript_id "NM_182802:uc002wmj.3";
+chr20 hg19_knownGene exon 5931298 5931669 0.000000 + . gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene CDS 5932662 5932809 0.000000 + 0 gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene exon 5932657 5932809 0.000000 + . gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene CDS 5933070 5933174 0.000000 + 2 gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene exon 5933070 5933174 0.000000 + . gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene CDS 5935254 5935336 0.000000 + 2 gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene exon 5935254 5935336 0.000000 + . gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene CDS 5935748 5935897 0.000000 + 0 gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene exon 5935748 5935897 0.000000 + . gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene CDS 5937772 5937875 0.000000 + 0 gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene exon 5937772 5937875 0.000000 + . gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene CDS 5939174 5939372 0.000000 + 1 gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene exon 5939174 5939372 0.000000 + . gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene CDS 5943920 5944005 0.000000 + 0 gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene exon 5943920 5944005 0.000000 + . gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene CDS 5948082 5948233 0.000000 + 1 gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene exon 5948082 5948233 0.000000 + . gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene CDS 5948476 5948671 0.000000 + 2 gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene exon 5948476 5948671 0.000000 + . gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene CDS 5953222 5953372 0.000000 + 1 gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene exon 5953222 5953372 0.000000 + . gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene CDS 5953702 5953842 0.000000 + 0 gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene exon 5953702 5953842 0.000000 + . gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene CDS 5958522 5958663 0.000000 + 0 gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene exon 5958522 5958663 0.000000 + . gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene CDS 5963616 5963811 0.000000 + 2 gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene exon 5963616 5963811 0.000000 + . gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene CDS 5965427 5965646 0.000000 + 1 gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene exon 5965427 5965646 0.000000 + . gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene CDS 5966568 5966777 0.000000 + 0 gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene exon 5966568 5966777 0.000000 + . gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene CDS 5967928 5968004 0.000000 + 0 gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene exon 5967928 5968004 0.000000 + . gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene CDS 5974152 5974341 0.000000 + 1 gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene exon 5974152 5974341 0.000000 + . gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene CDS 5974945 5975034 0.000000 + 0 gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene exon 5974945 5975831 0.000000 + . gene_id "MCM8"; transcript_id "BC101055:uc002wmk.3";
+chr20 hg19_knownGene exon 5931298 5931723 0.000000 + . gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene CDS 5932662 5932809 0.000000 + 0 gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene exon 5932657 5932809 0.000000 + . gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene CDS 5933070 5933174 0.000000 + 2 gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene exon 5933070 5933174 0.000000 + . gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene CDS 5935254 5935336 0.000000 + 2 gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene exon 5935254 5935336 0.000000 + . gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene CDS 5935748 5935897 0.000000 + 0 gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene exon 5935748 5935897 0.000000 + . gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene CDS 5937772 5937875 0.000000 + 0 gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene exon 5937772 5937875 0.000000 + . gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene CDS 5939174 5939372 0.000000 + 1 gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene exon 5939174 5939372 0.000000 + . gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene CDS 5943920 5944005 0.000000 + 0 gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene exon 5943920 5944005 0.000000 + . gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene CDS 5948082 5948233 0.000000 + 1 gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene exon 5948082 5948233 0.000000 + . gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene CDS 5948476 5948671 0.000000 + 2 gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene exon 5948476 5948671 0.000000 + . gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene CDS 5952653 5952683 0.000000 + 1 gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene exon 5952653 5952683 0.000000 + . gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene CDS 5953702 5953842 0.000000 + 0 gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene exon 5953702 5953842 0.000000 + . gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene CDS 5958522 5958663 0.000000 + 0 gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene exon 5958522 5958663 0.000000 + . gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene CDS 5963616 5963811 0.000000 + 2 gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene exon 5963616 5963811 0.000000 + . gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene CDS 5965427 5965646 0.000000 + 1 gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene exon 5965427 5965646 0.000000 + . gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene CDS 5966568 5966777 0.000000 + 0 gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene exon 5966568 5966777 0.000000 + . gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene CDS 5967928 5968004 0.000000 + 0 gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene exon 5967928 5968004 0.000000 + . gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene CDS 5974152 5974341 0.000000 + 1 gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene exon 5974152 5974341 0.000000 + . gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene CDS 5974945 5975034 0.000000 + 0 gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene exon 5974945 5975831 0.000000 + . gene_id "MCM8"; transcript_id "AK314654:uc002wml.3";
+chr20 hg19_knownGene exon 5931298 5931669 0.000000 + . gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene CDS 5932662 5932809 0.000000 + 0 gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene exon 5932657 5932809 0.000000 + . gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene CDS 5933070 5933174 0.000000 + 2 gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene exon 5933070 5933174 0.000000 + . gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene CDS 5935254 5935336 0.000000 + 2 gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene exon 5935254 5935336 0.000000 + . gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene CDS 5935748 5935897 0.000000 + 0 gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene exon 5935748 5935897 0.000000 + . gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene CDS 5937772 5937875 0.000000 + 0 gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene exon 5937772 5937875 0.000000 + . gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene CDS 5939174 5939372 0.000000 + 1 gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene exon 5939174 5939372 0.000000 + . gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene CDS 5943920 5944005 0.000000 + 0 gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene exon 5943920 5944005 0.000000 + . gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene CDS 5948082 5948233 0.000000 + 1 gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene exon 5948082 5948233 0.000000 + . gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene CDS 5948476 5948671 0.000000 + 2 gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene exon 5948476 5948671 0.000000 + . gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene CDS 5952653 5952683 0.000000 + 1 gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene exon 5952653 5952683 0.000000 + . gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene CDS 5958522 5958663 0.000000 + 0 gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene exon 5958522 5958663 0.000000 + . gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene CDS 5963616 5963811 0.000000 + 2 gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene exon 5963616 5963811 0.000000 + . gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene CDS 5965427 5965646 0.000000 + 1 gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene exon 5965427 5965646 0.000000 + . gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene CDS 5966568 5966777 0.000000 + 0 gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene exon 5966568 5966777 0.000000 + . gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene CDS 5967928 5968004 0.000000 + 0 gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene exon 5967928 5968004 0.000000 + . gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene CDS 5974152 5974341 0.000000 + 1 gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene exon 5974152 5974341 0.000000 + . gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene CDS 5974945 5975034 0.000000 + 0 gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene exon 5974945 5975831 0.000000 + . gene_id "MCM8"; transcript_id "BC101054:uc010gbp.3";
+chr20 hg19_knownGene CDS 5953834 5953842 0.000000 + 0 gene_id "MCM8"; transcript_id "AK160378:uc002wmm.3";
+chr20 hg19_knownGene exon 5951348 5953842 0.000000 + . gene_id "MCM8"; transcript_id "AK160378:uc002wmm.3";
+chr20 hg19_knownGene CDS 5958522 5958663 0.000000 + 0 gene_id "MCM8"; transcript_id "AK160378:uc002wmm.3";
+chr20 hg19_knownGene exon 5958522 5958663 0.000000 + . gene_id "MCM8"; transcript_id "AK160378:uc002wmm.3";
+chr20 hg19_knownGene CDS 5963616 5963811 0.000000 + 2 gene_id "MCM8"; transcript_id "AK160378:uc002wmm.3";
+chr20 hg19_knownGene exon 5963616 5963811 0.000000 + . gene_id "MCM8"; transcript_id "AK160378:uc002wmm.3";
+chr20 hg19_knownGene CDS 5965427 5965646 0.000000 + 1 gene_id "MCM8"; transcript_id "AK160378:uc002wmm.3";
+chr20 hg19_knownGene exon 5965427 5965646 0.000000 + . gene_id "MCM8"; transcript_id "AK160378:uc002wmm.3";
+chr20 hg19_knownGene CDS 5966568 5966777 0.000000 + 0 gene_id "MCM8"; transcript_id "AK160378:uc002wmm.3";
+chr20 hg19_knownGene exon 5966568 5966777 0.000000 + . gene_id "MCM8"; transcript_id "AK160378:uc002wmm.3";
+chr20 hg19_knownGene CDS 5967928 5968004 0.000000 + 0 gene_id "MCM8"; transcript_id "AK160378:uc002wmm.3";
+chr20 hg19_knownGene exon 5967928 5968004 0.000000 + . gene_id "MCM8"; transcript_id "AK160378:uc002wmm.3";
+chr20 hg19_knownGene CDS 5974152 5974341 0.000000 + 1 gene_id "MCM8"; transcript_id "AK160378:uc002wmm.3";
+chr20 hg19_knownGene exon 5974152 5974341 0.000000 + . gene_id "MCM8"; transcript_id "AK160378:uc002wmm.3";
+chr20 hg19_knownGene CDS 5974945 5975034 0.000000 + 0 gene_id "MCM8"; transcript_id "AK160378:uc002wmm.3";
+chr20 hg19_knownGene exon 5974945 5975831 0.000000 + . gene_id "MCM8"; transcript_id "AK160378:uc002wmm.3";
+chr20 hg19_knownGene exon 5987902 5988045 0.000000 + . gene_id "CRLS1"; transcript_id "AK310368:uc010gbs.1";
+chr20 hg19_knownGene CDS 5990448 5990558 0.000000 + 0 gene_id "CRLS1"; transcript_id "AK310368:uc010gbs.1";
+chr20 hg19_knownGene exon 5990421 5990558 0.000000 + . gene_id "CRLS1"; transcript_id "AK310368:uc010gbs.1";
+chr20 hg19_knownGene CDS 5996007 5996237 0.000000 + 0 gene_id "CRLS1"; transcript_id "AK310368:uc010gbs.1";
+chr20 hg19_knownGene exon 5996007 5996701 0.000000 + . gene_id "CRLS1"; transcript_id "AK310368:uc010gbs.1";
+chr20 hg19_knownGene CDS 5986893 5987198 0.000000 + 0 gene_id "CRLS1"; transcript_id "NM_019095:uc002wmn.4";
+chr20 hg19_knownGene exon 5986739 5987198 0.000000 + . gene_id "CRLS1"; transcript_id "NM_019095:uc002wmn.4";
+chr20 hg19_knownGene CDS 5990421 5990558 0.000000 + 0 gene_id "CRLS1"; transcript_id "NM_019095:uc002wmn.4";
+chr20 hg19_knownGene exon 5990421 5990558 0.000000 + . gene_id "CRLS1"; transcript_id "NM_019095:uc002wmn.4";
+chr20 hg19_knownGene CDS 5996007 5996136 0.000000 + 0 gene_id "CRLS1"; transcript_id "NM_019095:uc002wmn.4";
+chr20 hg19_knownGene exon 5996007 5996136 0.000000 + . gene_id "CRLS1"; transcript_id "NM_019095:uc002wmn.4";
+chr20 hg19_knownGene CDS 6011931 6012016 0.000000 + 2 gene_id "CRLS1"; transcript_id "NM_019095:uc002wmn.4";
+chr20 hg19_knownGene exon 6011931 6012016 0.000000 + . gene_id "CRLS1"; transcript_id "NM_019095:uc002wmn.4";
+chr20 hg19_knownGene CDS 6012658 6012726 0.000000 + 0 gene_id "CRLS1"; transcript_id "NM_019095:uc002wmn.4";
+chr20 hg19_knownGene exon 6012658 6012726 0.000000 + . gene_id "CRLS1"; transcript_id "NM_019095:uc002wmn.4";
+chr20 hg19_knownGene CDS 6015110 6015201 0.000000 + 0 gene_id "CRLS1"; transcript_id "NM_019095:uc002wmn.4";
+chr20 hg19_knownGene exon 6015110 6015201 0.000000 + . gene_id "CRLS1"; transcript_id "NM_019095:uc002wmn.4";
+chr20 hg19_knownGene CDS 6017720 6017801 0.000000 + 1 gene_id "CRLS1"; transcript_id "NM_019095:uc002wmn.4";
+chr20 hg19_knownGene exon 6017720 6020697 0.000000 + . gene_id "CRLS1"; transcript_id "NM_019095:uc002wmn.4";
+chr20 hg19_knownGene exon 5986739 5987198 0.000000 + . gene_id "CRLS1"; transcript_id "BC069010:uc010gbq.3";
+chr20 hg19_knownGene exon 5990421 5990558 0.000000 + . gene_id "CRLS1"; transcript_id "BC069010:uc010gbq.3";
+chr20 hg19_knownGene exon 5996007 5996136 0.000000 + . gene_id "CRLS1"; transcript_id "BC069010:uc010gbq.3";
+chr20 hg19_knownGene exon 6012658 6012726 0.000000 + . gene_id "CRLS1"; transcript_id "BC069010:uc010gbq.3";
+chr20 hg19_knownGene exon 6015110 6015201 0.000000 + . gene_id "CRLS1"; transcript_id "BC069010:uc010gbq.3";
+chr20 hg19_knownGene exon 6017720 6020697 0.000000 + . gene_id "CRLS1"; transcript_id "BC069010:uc010gbq.3";
+chr20 hg19_knownGene CDS 5988048 5988056 0.000000 + 0 gene_id "CRLS1"; transcript_id "NM_001127458:uc010gbr.3";
+chr20 hg19_knownGene exon 5987898 5988056 0.000000 + . gene_id "CRLS1"; transcript_id "NM_001127458:uc010gbr.3";
+chr20 hg19_knownGene CDS 5990421 5990558 0.000000 + 0 gene_id "CRLS1"; transcript_id "NM_001127458:uc010gbr.3";
+chr20 hg19_knownGene exon 5990421 5990558 0.000000 + . gene_id "CRLS1"; transcript_id "NM_001127458:uc010gbr.3";
+chr20 hg19_knownGene CDS 5996007 5996136 0.000000 + 0 gene_id "CRLS1"; transcript_id "NM_001127458:uc010gbr.3";
+chr20 hg19_knownGene exon 5996007 5996136 0.000000 + . gene_id "CRLS1"; transcript_id "NM_001127458:uc010gbr.3";
+chr20 hg19_knownGene CDS 6011931 6012016 0.000000 + 2 gene_id "CRLS1"; transcript_id "NM_001127458:uc010gbr.3";
+chr20 hg19_knownGene exon 6011931 6012016 0.000000 + . gene_id "CRLS1"; transcript_id "NM_001127458:uc010gbr.3";
+chr20 hg19_knownGene CDS 6012658 6012726 0.000000 + 0 gene_id "CRLS1"; transcript_id "NM_001127458:uc010gbr.3";
+chr20 hg19_knownGene exon 6012658 6012726 0.000000 + . gene_id "CRLS1"; transcript_id "NM_001127458:uc010gbr.3";
+chr20 hg19_knownGene CDS 6015110 6015201 0.000000 + 0 gene_id "CRLS1"; transcript_id "NM_001127458:uc010gbr.3";
+chr20 hg19_knownGene exon 6015110 6015201 0.000000 + . gene_id "CRLS1"; transcript_id "NM_001127458:uc010gbr.3";
+chr20 hg19_knownGene CDS 6017720 6017801 0.000000 + 1 gene_id "CRLS1"; transcript_id "NM_001127458:uc010gbr.3";
+chr20 hg19_knownGene exon 6017720 6020697 0.000000 + . gene_id "CRLS1"; transcript_id "NM_001127458:uc010gbr.3";
+chr20 hg19_knownGene CDS 6021671 6022892 0.000000 - 1 gene_id "LRRN4"; transcript_id "NM_152611:uc002wmo.2";
+chr20 hg19_knownGene exon 6021425 6022892 0.000000 - . gene_id "LRRN4"; transcript_id "NM_152611:uc002wmo.2";
+chr20 hg19_knownGene CDS 6025189 6025326 0.000000 - 1 gene_id "LRRN4"; transcript_id "NM_152611:uc002wmo.2";
+chr20 hg19_knownGene exon 6025189 6025326 0.000000 - . gene_id "LRRN4"; transcript_id "NM_152611:uc002wmo.2";
+chr20 hg19_knownGene CDS 6031425 6031629 0.000000 - 2 gene_id "LRRN4"; transcript_id "NM_152611:uc002wmo.2";
+chr20 hg19_knownGene exon 6031425 6031629 0.000000 - . gene_id "LRRN4"; transcript_id "NM_152611:uc002wmo.2";
+chr20 hg19_knownGene CDS 6032791 6033445 0.000000 - 0 gene_id "LRRN4"; transcript_id "NM_152611:uc002wmo.2";
+chr20 hg19_knownGene exon 6032791 6033450 0.000000 - . gene_id "LRRN4"; transcript_id "NM_152611:uc002wmo.2";
+chr20 hg19_knownGene exon 6034476 6034694 0.000000 - . gene_id "LRRN4"; transcript_id "NM_152611:uc002wmo.2";
+chr20 hg19_knownGene CDS 6031424 6031629 0.000000 - 2 gene_id "LRRN4"; transcript_id "AK172833:uc002wmp.3";
+chr20 hg19_knownGene exon 6030851 6031629 0.000000 - . gene_id "LRRN4"; transcript_id "AK172833:uc002wmp.3";
+chr20 hg19_knownGene CDS 6032791 6033445 0.000000 - 0 gene_id "LRRN4"; transcript_id "AK172833:uc002wmp.3";
+chr20 hg19_knownGene exon 6032791 6033450 0.000000 - . gene_id "LRRN4"; transcript_id "AK172833:uc002wmp.3";
+chr20 hg19_knownGene exon 6034476 6034694 0.000000 - . gene_id "LRRN4"; transcript_id "AK172833:uc002wmp.3";
+chr20 hg19_knownGene CDS 6057823 6057993 0.000000 - 0 gene_id "FERMT1"; transcript_id "AK225216:uc002wmq.3";
+chr20 hg19_knownGene exon 6055492 6057993 0.000000 - . gene_id "FERMT1"; transcript_id "AK225216:uc002wmq.3";
+chr20 hg19_knownGene CDS 6060083 6060224 0.000000 - 1 gene_id "FERMT1"; transcript_id "AK225216:uc002wmq.3";
+chr20 hg19_knownGene exon 6060083 6060224 0.000000 - . gene_id "FERMT1"; transcript_id "AK225216:uc002wmq.3";
+chr20 hg19_knownGene CDS 6064687 6064811 0.000000 - 0 gene_id "FERMT1"; transcript_id "AK225216:uc002wmq.3";
+chr20 hg19_knownGene exon 6064687 6064811 0.000000 - . gene_id "FERMT1"; transcript_id "AK225216:uc002wmq.3";
+chr20 hg19_knownGene CDS 6065713 6065934 0.000000 - 0 gene_id "FERMT1"; transcript_id "AK225216:uc002wmq.3";
+chr20 hg19_knownGene exon 6065713 6065934 0.000000 - . gene_id "FERMT1"; transcript_id "AK225216:uc002wmq.3";
+chr20 hg19_knownGene CDS 6068424 6068453 0.000000 - 0 gene_id "FERMT1"; transcript_id "AK225216:uc002wmq.3";
+chr20 hg19_knownGene exon 6068424 6068530 0.000000 - . gene_id "FERMT1"; transcript_id "AK225216:uc002wmq.3";
+chr20 hg19_knownGene exon 6069612 6069736 0.000000 - . gene_id "FERMT1"; transcript_id "AK225216:uc002wmq.3";
+chr20 hg19_knownGene exon 6074721 6074819 0.000000 - . gene_id "FERMT1"; transcript_id "AK225216:uc002wmq.3";
+chr20 hg19_knownGene CDS 6077546 6077680 0.000000 - 0 gene_id "FERMT1"; transcript_id "AK025365:uc002wmt.3";
+chr20 hg19_knownGene exon 6075976 6077680 0.000000 - . gene_id "FERMT1"; transcript_id "AK025365:uc002wmt.3";
+chr20 hg19_knownGene CDS 6078171 6078278 0.000000 - 0 gene_id "FERMT1"; transcript_id "AK025365:uc002wmt.3";
+chr20 hg19_knownGene exon 6078171 6078278 0.000000 - . gene_id "FERMT1"; transcript_id "AK025365:uc002wmt.3";
+chr20 hg19_knownGene CDS 6088179 6088256 0.000000 - 0 gene_id "FERMT1"; transcript_id "AK025365:uc002wmt.3";
+chr20 hg19_knownGene exon 6088179 6088281 0.000000 - . gene_id "FERMT1"; transcript_id "AK025365:uc002wmt.3";
+chr20 hg19_knownGene CDS 6057823 6057993 0.000000 - 0 gene_id "FERMT1"; transcript_id "NM_017671:uc002wmr.3";
+chr20 hg19_knownGene exon 6055492 6057993 0.000000 - . gene_id "FERMT1"; transcript_id "NM_017671:uc002wmr.3";
+chr20 hg19_knownGene CDS 6060083 6060224 0.000000 - 1 gene_id "FERMT1"; transcript_id "NM_017671:uc002wmr.3";
+chr20 hg19_knownGene exon 6060083 6060224 0.000000 - . gene_id "FERMT1"; transcript_id "NM_017671:uc002wmr.3";
+chr20 hg19_knownGene CDS 6064687 6064811 0.000000 - 0 gene_id "FERMT1"; transcript_id "NM_017671:uc002wmr.3";
+chr20 hg19_knownGene exon 6064687 6064811 0.000000 - . gene_id "FERMT1"; transcript_id "NM_017671:uc002wmr.3";
+chr20 hg19_knownGene CDS 6065713 6065934 0.000000 - 0 gene_id "FERMT1"; transcript_id "NM_017671:uc002wmr.3";
+chr20 hg19_knownGene exon 6065713 6065934 0.000000 - . gene_id "FERMT1"; transcript_id "NM_017671:uc002wmr.3";
+chr20 hg19_knownGene CDS 6068424 6068530 0.000000 - 2 gene_id "FERMT1"; transcript_id "NM_017671:uc002wmr.3";
+chr20 hg19_knownGene exon 6068424 6068530 0.000000 - . gene_id "FERMT1"; transcript_id "NM_017671:uc002wmr.3";
+chr20 hg19_knownGene CDS 6069612 6069736 0.000000 - 1 gene_id "FERMT1"; transcript_id "NM_017671:uc002wmr.3";
+chr20 hg19_knownGene exon 6069612 6069736 0.000000 - . gene_id "FERMT1"; transcript_id "NM_017671:uc002wmr.3";
+chr20 hg19_knownGene CDS 6075586 6075635 0.000000 - 0 gene_id "FERMT1"; transcript_id "NM_017671:uc002wmr.3";
+chr20 hg19_knownGene exon 6075586 6075635 0.000000 - . gene_id "FERMT1"; transcript_id "NM_017671:uc002wmr.3";
+chr20 hg19_knownGene CDS 6077549 6077680 0.000000 - 0 gene_id "FERMT1"; transcript_id "NM_017671:uc002wmr.3";
+chr20 hg19_knownGene exon 6077549 6077680 0.000000 - . gene_id "FERMT1"; transcript_id "NM_017671:uc002wmr.3";
+chr20 hg19_knownGene CDS 6078171 6078278 0.000000 - 0 gene_id "FERMT1"; transcript_id "NM_017671:uc002wmr.3";
+chr20 hg19_knownGene exon 6078171 6078278 0.000000 - . gene_id "FERMT1"; transcript_id "NM_017671:uc002wmr.3";
+chr20 hg19_knownGene CDS 6088179 6088281 0.000000 - 1 gene_id "FERMT1"; transcript_id "NM_017671:uc002wmr.3";
+chr20 hg19_knownGene exon 6088179 6088281 0.000000 - . gene_id "FERMT1"; transcript_id "NM_017671:uc002wmr.3";
+chr20 hg19_knownGene CDS 6090945 6091158 0.000000 - 2 gene_id "FERMT1"; transcript_id "NM_017671:uc002wmr.3";
+chr20 hg19_knownGene exon 6090945 6091158 0.000000 - . gene_id "FERMT1"; transcript_id "NM_017671:uc002wmr.3";
+chr20 hg19_knownGene CDS 6093124 6093270 0.000000 - 2 gene_id "FERMT1"; transcript_id "NM_017671:uc002wmr.3";
+chr20 hg19_knownGene exon 6093124 6093270 0.000000 - . gene_id "FERMT1"; transcript_id "NM_017671:uc002wmr.3";
+chr20 hg19_knownGene CDS 6096458 6096691 0.000000 - 2 gene_id "FERMT1"; transcript_id "NM_017671:uc002wmr.3";
+chr20 hg19_knownGene exon 6096458 6096691 0.000000 - . gene_id "FERMT1"; transcript_id "NM_017671:uc002wmr.3";
+chr20 hg19_knownGene CDS 6100051 6100201 0.000000 - 0 gene_id "FERMT1"; transcript_id "NM_017671:uc002wmr.3";
+chr20 hg19_knownGene exon 6100051 6100219 0.000000 - . gene_id "FERMT1"; transcript_id "NM_017671:uc002wmr.3";
+chr20 hg19_knownGene exon 6103421 6104191 0.000000 - . gene_id "FERMT1"; transcript_id "NM_017671:uc002wmr.3";
+chr20 hg19_knownGene CDS 6057823 6057993 0.000000 - 0 gene_id "FERMT1"; transcript_id "BC040545:uc010gbt.3";
+chr20 hg19_knownGene exon 6055492 6057993 0.000000 - . gene_id "FERMT1"; transcript_id "BC040545:uc010gbt.3";
+chr20 hg19_knownGene CDS 6060083 6060224 0.000000 - 1 gene_id "FERMT1"; transcript_id "BC040545:uc010gbt.3";
+chr20 hg19_knownGene exon 6060083 6060224 0.000000 - . gene_id "FERMT1"; transcript_id "BC040545:uc010gbt.3";
+chr20 hg19_knownGene CDS 6064687 6064811 0.000000 - 0 gene_id "FERMT1"; transcript_id "BC040545:uc010gbt.3";
+chr20 hg19_knownGene exon 6064687 6064811 0.000000 - . gene_id "FERMT1"; transcript_id "BC040545:uc010gbt.3";
+chr20 hg19_knownGene CDS 6065713 6065934 0.000000 - 0 gene_id "FERMT1"; transcript_id "BC040545:uc010gbt.3";
+chr20 hg19_knownGene exon 6065713 6065934 0.000000 - . gene_id "FERMT1"; transcript_id "BC040545:uc010gbt.3";
+chr20 hg19_knownGene CDS 6068424 6068530 0.000000 - 2 gene_id "FERMT1"; transcript_id "BC040545:uc010gbt.3";
+chr20 hg19_knownGene exon 6068424 6068530 0.000000 - . gene_id "FERMT1"; transcript_id "BC040545:uc010gbt.3";
+chr20 hg19_knownGene CDS 6069612 6069736 0.000000 - 1 gene_id "FERMT1"; transcript_id "BC040545:uc010gbt.3";
+chr20 hg19_knownGene exon 6069612 6069736 0.000000 - . gene_id "FERMT1"; transcript_id "BC040545:uc010gbt.3";
+chr20 hg19_knownGene CDS 6075586 6075635 0.000000 - 0 gene_id "FERMT1"; transcript_id "BC040545:uc010gbt.3";
+chr20 hg19_knownGene exon 6075586 6075635 0.000000 - . gene_id "FERMT1"; transcript_id "BC040545:uc010gbt.3";
+chr20 hg19_knownGene CDS 6077549 6077680 0.000000 - 0 gene_id "FERMT1"; transcript_id "BC040545:uc010gbt.3";
+chr20 hg19_knownGene exon 6077549 6077680 0.000000 - . gene_id "FERMT1"; transcript_id "BC040545:uc010gbt.3";
+chr20 hg19_knownGene CDS 6078171 6078278 0.000000 - 0 gene_id "FERMT1"; transcript_id "BC040545:uc010gbt.3";
+chr20 hg19_knownGene exon 6078171 6078278 0.000000 - . gene_id "FERMT1"; transcript_id "BC040545:uc010gbt.3";
+chr20 hg19_knownGene CDS 6088179 6088256 0.000000 - 0 gene_id "FERMT1"; transcript_id "BC040545:uc010gbt.3";
+chr20 hg19_knownGene exon 6088179 6088281 0.000000 - . gene_id "FERMT1"; transcript_id "BC040545:uc010gbt.3";
+chr20 hg19_knownGene exon 6093124 6093270 0.000000 - . gene_id "FERMT1"; transcript_id "BC040545:uc010gbt.3";
+chr20 hg19_knownGene exon 6096458 6096691 0.000000 - . gene_id "FERMT1"; transcript_id "BC040545:uc010gbt.3";
+chr20 hg19_knownGene exon 6100068 6100219 0.000000 - . gene_id "FERMT1"; transcript_id "BC040545:uc010gbt.3";
+chr20 hg19_knownGene exon 6103421 6104191 0.000000 - . gene_id "FERMT1"; transcript_id "BC040545:uc010gbt.3";
+chr20 hg19_knownGene CDS 6068310 6068530 0.000000 - 2 gene_id "FERMT1"; transcript_id "BC035882:uc002wms.3";
+chr20 hg19_knownGene exon 6067966 6068530 0.000000 - . gene_id "FERMT1"; transcript_id "BC035882:uc002wms.3";
+chr20 hg19_knownGene CDS 6069612 6069736 0.000000 - 1 gene_id "FERMT1"; transcript_id "BC035882:uc002wms.3";
+chr20 hg19_knownGene exon 6069612 6069736 0.000000 - . gene_id "FERMT1"; transcript_id "BC035882:uc002wms.3";
+chr20 hg19_knownGene CDS 6075586 6075635 0.000000 - 0 gene_id "FERMT1"; transcript_id "BC035882:uc002wms.3";
+chr20 hg19_knownGene exon 6075586 6075635 0.000000 - . gene_id "FERMT1"; transcript_id "BC035882:uc002wms.3";
+chr20 hg19_knownGene CDS 6077549 6077680 0.000000 - 0 gene_id "FERMT1"; transcript_id "BC035882:uc002wms.3";
+chr20 hg19_knownGene exon 6077549 6077680 0.000000 - . gene_id "FERMT1"; transcript_id "BC035882:uc002wms.3";
+chr20 hg19_knownGene CDS 6078171 6078278 0.000000 - 0 gene_id "FERMT1"; transcript_id "BC035882:uc002wms.3";
+chr20 hg19_knownGene exon 6078171 6078278 0.000000 - . gene_id "FERMT1"; transcript_id "BC035882:uc002wms.3";
+chr20 hg19_knownGene CDS 6088179 6088281 0.000000 - 1 gene_id "FERMT1"; transcript_id "BC035882:uc002wms.3";
+chr20 hg19_knownGene exon 6088179 6088281 0.000000 - . gene_id "FERMT1"; transcript_id "BC035882:uc002wms.3";
+chr20 hg19_knownGene CDS 6090945 6091158 0.000000 - 2 gene_id "FERMT1"; transcript_id "BC035882:uc002wms.3";
+chr20 hg19_knownGene exon 6090945 6091158 0.000000 - . gene_id "FERMT1"; transcript_id "BC035882:uc002wms.3";
+chr20 hg19_knownGene CDS 6093124 6093270 0.000000 - 2 gene_id "FERMT1"; transcript_id "BC035882:uc002wms.3";
+chr20 hg19_knownGene exon 6093124 6093270 0.000000 - . gene_id "FERMT1"; transcript_id "BC035882:uc002wms.3";
+chr20 hg19_knownGene CDS 6096458 6096691 0.000000 - 2 gene_id "FERMT1"; transcript_id "BC035882:uc002wms.3";
+chr20 hg19_knownGene exon 6096458 6096691 0.000000 - . gene_id "FERMT1"; transcript_id "BC035882:uc002wms.3";
+chr20 hg19_knownGene CDS 6100051 6100201 0.000000 - 0 gene_id "FERMT1"; transcript_id "BC035882:uc002wms.3";
+chr20 hg19_knownGene exon 6100051 6100222 0.000000 - . gene_id "FERMT1"; transcript_id "BC035882:uc002wms.3";
+chr20 hg19_knownGene exon 6103421 6104191 0.000000 - . gene_id "FERMT1"; transcript_id "BC035882:uc002wms.3";
+chr20 hg19_knownGene exon 6748745 6749522 0.000000 + . gene_id "BMP2"; transcript_id "NM_001200:uc002wmu.1";
+chr20 hg19_knownGene CDS 6750774 6751119 0.000000 + 0 gene_id "BMP2"; transcript_id "NM_001200:uc002wmu.1";
+chr20 hg19_knownGene exon 6750767 6751119 0.000000 + . gene_id "BMP2"; transcript_id "NM_001200:uc002wmu.1";
+chr20 hg19_knownGene CDS 6758892 6759733 0.000000 + 2 gene_id "BMP2"; transcript_id "NM_001200:uc002wmu.1";
+chr20 hg19_knownGene exon 6758892 6760910 0.000000 + . gene_id "BMP2"; transcript_id "NM_001200:uc002wmu.1";
+chr20 hg19_knownGene exon 7328114 7328323 0.000000 + . gene_id "BC043288"; transcript_id "BC043288:uc002wmv.3";
+chr20 hg19_knownGene exon 7341268 7341452 0.000000 + . gene_id "BC043288"; transcript_id "BC043288:uc002wmv.3";
+chr20 hg19_knownGene exon 7347927 7349146 0.000000 + . gene_id "BC043288"; transcript_id "BC043288:uc002wmv.3";
+chr20 hg19_knownGene exon 7614208 7614498 0.000000 - . gene_id "Metazoa_SRP"; transcript_id ":uc021wak.1";
+chr20 hg19_knownGene CDS 7864243 7864310 0.000000 - 2 gene_id "HAO1"; transcript_id "NM_017545:uc002wmw.1";
+chr20 hg19_knownGene exon 7863631 7864310 0.000000 - . gene_id "HAO1"; transcript_id "NM_017545:uc002wmw.1";
+chr20 hg19_knownGene CDS 7866168 7866237 0.000000 - 0 gene_id "HAO1"; transcript_id "NM_017545:uc002wmw.1";
+chr20 hg19_knownGene exon 7866168 7866237 0.000000 - . gene_id "HAO1"; transcript_id "NM_017545:uc002wmw.1";
+chr20 hg19_knownGene CDS 7866353 7866511 0.000000 - 0 gene_id "HAO1"; transcript_id "NM_017545:uc002wmw.1";
+chr20 hg19_knownGene exon 7866353 7866511 0.000000 - . gene_id "HAO1"; transcript_id "NM_017545:uc002wmw.1";
+chr20 hg19_knownGene CDS 7875780 7875871 0.000000 - 2 gene_id "HAO1"; transcript_id "NM_017545:uc002wmw.1";
+chr20 hg19_knownGene exon 7875780 7875871 0.000000 - . gene_id "HAO1"; transcript_id "NM_017545:uc002wmw.1";
+chr20 hg19_knownGene CDS 7886801 7886976 0.000000 - 1 gene_id "HAO1"; transcript_id "NM_017545:uc002wmw.1";
+chr20 hg19_knownGene exon 7886801 7886976 0.000000 - . gene_id "HAO1"; transcript_id "NM_017545:uc002wmw.1";
+chr20 hg19_knownGene CDS 7894811 7895066 0.000000 - 2 gene_id "HAO1"; transcript_id "NM_017545:uc002wmw.1";
+chr20 hg19_knownGene exon 7894811 7895066 0.000000 - . gene_id "HAO1"; transcript_id "NM_017545:uc002wmw.1";
+chr20 hg19_knownGene CDS 7915131 7915282 0.000000 - 1 gene_id "HAO1"; transcript_id "NM_017545:uc002wmw.1";
+chr20 hg19_knownGene exon 7915131 7915282 0.000000 - . gene_id "HAO1"; transcript_id "NM_017545:uc002wmw.1";
+chr20 hg19_knownGene CDS 7920933 7921069 0.000000 - 0 gene_id "HAO1"; transcript_id "NM_017545:uc002wmw.1";
+chr20 hg19_knownGene exon 7920933 7921093 0.000000 - . gene_id "HAO1"; transcript_id "NM_017545:uc002wmw.1";
+chr20 hg19_knownGene CDS 7866130 7866237 0.000000 - 0 gene_id "HAO1"; transcript_id "AK308963:uc010gbu.3";
+chr20 hg19_knownGene exon 7866021 7866237 0.000000 - . gene_id "HAO1"; transcript_id "AK308963:uc010gbu.3";
+chr20 hg19_knownGene CDS 7866353 7866511 0.000000 - 0 gene_id "HAO1"; transcript_id "AK308963:uc010gbu.3";
+chr20 hg19_knownGene exon 7866353 7866511 0.000000 - . gene_id "HAO1"; transcript_id "AK308963:uc010gbu.3";
+chr20 hg19_knownGene CDS 7875780 7875871 0.000000 - 2 gene_id "HAO1"; transcript_id "AK308963:uc010gbu.3";
+chr20 hg19_knownGene exon 7875780 7875871 0.000000 - . gene_id "HAO1"; transcript_id "AK308963:uc010gbu.3";
+chr20 hg19_knownGene CDS 7886801 7886976 0.000000 - 1 gene_id "HAO1"; transcript_id "AK308963:uc010gbu.3";
+chr20 hg19_knownGene exon 7886801 7886976 0.000000 - . gene_id "HAO1"; transcript_id "AK308963:uc010gbu.3";
+chr20 hg19_knownGene CDS 7894811 7895066 0.000000 - 2 gene_id "HAO1"; transcript_id "AK308963:uc010gbu.3";
+chr20 hg19_knownGene exon 7894811 7895066 0.000000 - . gene_id "HAO1"; transcript_id "AK308963:uc010gbu.3";
+chr20 hg19_knownGene CDS 7915131 7915282 0.000000 - 1 gene_id "HAO1"; transcript_id "AK308963:uc010gbu.3";
+chr20 hg19_knownGene exon 7915131 7915282 0.000000 - . gene_id "HAO1"; transcript_id "AK308963:uc010gbu.3";
+chr20 hg19_knownGene CDS 7920933 7921069 0.000000 - 0 gene_id "HAO1"; transcript_id "AK308963:uc010gbu.3";
+chr20 hg19_knownGene exon 7920933 7921093 0.000000 - . gene_id "HAO1"; transcript_id "AK308963:uc010gbu.3";
+chr20 hg19_knownGene CDS 7962901 7963268 0.000000 - 2 gene_id "TMX4"; transcript_id "NM_021156:uc002wmx.1";
+chr20 hg19_knownGene exon 7961716 7963268 0.000000 - . gene_id "TMX4"; transcript_id "NM_021156:uc002wmx.1";
+chr20 hg19_knownGene CDS 7964441 7964504 0.000000 - 0 gene_id "TMX4"; transcript_id "NM_021156:uc002wmx.1";
+chr20 hg19_knownGene exon 7964441 7964504 0.000000 - . gene_id "TMX4"; transcript_id "NM_021156:uc002wmx.1";
+chr20 hg19_knownGene CDS 7967935 7968036 0.000000 - 0 gene_id "TMX4"; transcript_id "NM_021156:uc002wmx.1";
+chr20 hg19_knownGene exon 7967935 7968036 0.000000 - . gene_id "TMX4"; transcript_id "NM_021156:uc002wmx.1";
+chr20 hg19_knownGene CDS 7976673 7976718 0.000000 - 1 gene_id "TMX4"; transcript_id "NM_021156:uc002wmx.1";
+chr20 hg19_knownGene exon 7976673 7976718 0.000000 - . gene_id "TMX4"; transcript_id "NM_021156:uc002wmx.1";
+chr20 hg19_knownGene CDS 7980379 7980507 0.000000 - 1 gene_id "TMX4"; transcript_id "NM_021156:uc002wmx.1";
+chr20 hg19_knownGene exon 7980379 7980507 0.000000 - . gene_id "TMX4"; transcript_id "NM_021156:uc002wmx.1";
+chr20 hg19_knownGene CDS 7982143 7982188 0.000000 - 2 gene_id "TMX4"; transcript_id "NM_021156:uc002wmx.1";
+chr20 hg19_knownGene exon 7982143 7982188 0.000000 - . gene_id "TMX4"; transcript_id "NM_021156:uc002wmx.1";
+chr20 hg19_knownGene CDS 7990847 7990962 0.000000 - 1 gene_id "TMX4"; transcript_id "NM_021156:uc002wmx.1";
+chr20 hg19_knownGene exon 7990847 7990962 0.000000 - . gene_id "TMX4"; transcript_id "NM_021156:uc002wmx.1";
+chr20 hg19_knownGene CDS 8000085 8000260 0.000000 - 0 gene_id "TMX4"; transcript_id "NM_021156:uc002wmx.1";
+chr20 hg19_knownGene exon 8000085 8000393 0.000000 - . gene_id "TMX4"; transcript_id "NM_021156:uc002wmx.1";
+chr20 hg19_knownGene exon 8000549 8000751 0.000000 + . gene_id "AK097836"; transcript_id "AK097836:uc002wmy.1";
+chr20 hg19_knownGene exon 8001038 8001908 0.000000 + . gene_id "AK097836"; transcript_id "AK097836:uc002wmy.1";
+chr20 hg19_knownGene exon 8002706 8002802 0.000000 + . gene_id "AK097836"; transcript_id "AK097836:uc002wmy.1";
+chr20 hg19_knownGene exon 8003028 8003096 0.000000 + . gene_id "AK097836"; transcript_id "AK097836:uc002wmy.1";
+chr20 hg19_knownGene exon 8003204 8003414 0.000000 + . gene_id "AK097836"; transcript_id "AK097836:uc002wmy.1";
+chr20 hg19_knownGene exon 8003918 8004099 0.000000 + . gene_id "AK097836"; transcript_id "AK097836:uc002wmy.1";
+chr20 hg19_knownGene exon 8008308 8008603 0.000000 + . gene_id "AK097836"; transcript_id "AK097836:uc002wmy.1";
+chr20 hg19_knownGene CDS 8113299 8113397 0.000000 + 0 gene_id "PLCB1"; transcript_id "AK310597:uc010gbv.1";
+chr20 hg19_knownGene exon 8113296 8113397 0.000000 + . gene_id "PLCB1"; transcript_id "AK310597:uc010gbv.1";
+chr20 hg19_knownGene CDS 8130941 8131018 0.000000 + 0 gene_id "PLCB1"; transcript_id "AK310597:uc010gbv.1";
+chr20 hg19_knownGene exon 8130941 8131018 0.000000 + . gene_id "PLCB1"; transcript_id "AK310597:uc010gbv.1";
+chr20 hg19_knownGene CDS 8352029 8352097 0.000000 + 0 gene_id "PLCB1"; transcript_id "AK310597:uc010gbv.1";
+chr20 hg19_knownGene exon 8352029 8352097 0.000000 + . gene_id "PLCB1"; transcript_id "AK310597:uc010gbv.1";
+chr20 hg19_knownGene CDS 8608941 8609078 0.000000 + 0 gene_id "PLCB1"; transcript_id "AK310597:uc010gbv.1";
+chr20 hg19_knownGene exon 8608941 8609078 0.000000 + . gene_id "PLCB1"; transcript_id "AK310597:uc010gbv.1";
+chr20 hg19_knownGene CDS 8626749 8626828 0.000000 + 0 gene_id "PLCB1"; transcript_id "AK310597:uc010gbv.1";
+chr20 hg19_knownGene exon 8626749 8626828 0.000000 + . gene_id "PLCB1"; transcript_id "AK310597:uc010gbv.1";
+chr20 hg19_knownGene CDS 8628547 8628600 0.000000 + 1 gene_id "PLCB1"; transcript_id "AK310597:uc010gbv.1";
+chr20 hg19_knownGene exon 8628547 8628600 0.000000 + . gene_id "PLCB1"; transcript_id "AK310597:uc010gbv.1";
+chr20 hg19_knownGene CDS 8630021 8630117 0.000000 + 1 gene_id "PLCB1"; transcript_id "AK310597:uc010gbv.1";
+chr20 hg19_knownGene exon 8630021 8630636 0.000000 + . gene_id "PLCB1"; transcript_id "AK310597:uc010gbv.1";
+chr20 hg19_knownGene CDS 8113299 8113397 0.000000 + 0 gene_id "PLCB1"; transcript_id "AX721082:uc002wmz.1";
+chr20 hg19_knownGene exon 8113296 8113397 0.000000 + . gene_id "PLCB1"; transcript_id "AX721082:uc002wmz.1";
+chr20 hg19_knownGene CDS 8130941 8131018 0.000000 + 0 gene_id "PLCB1"; transcript_id "AX721082:uc002wmz.1";
+chr20 hg19_knownGene exon 8130941 8131018 0.000000 + . gene_id "PLCB1"; transcript_id "AX721082:uc002wmz.1";
+chr20 hg19_knownGene CDS 8352029 8352097 0.000000 + 0 gene_id "PLCB1"; transcript_id "AX721082:uc002wmz.1";
+chr20 hg19_knownGene exon 8352029 8352097 0.000000 + . gene_id "PLCB1"; transcript_id "AX721082:uc002wmz.1";
+chr20 hg19_knownGene CDS 8608941 8609078 0.000000 + 0 gene_id "PLCB1"; transcript_id "AX721082:uc002wmz.1";
+chr20 hg19_knownGene exon 8608941 8609078 0.000000 + . gene_id "PLCB1"; transcript_id "AX721082:uc002wmz.1";
+chr20 hg19_knownGene CDS 8626749 8626828 0.000000 + 0 gene_id "PLCB1"; transcript_id "AX721082:uc002wmz.1";
+chr20 hg19_knownGene exon 8626749 8626828 0.000000 + . gene_id "PLCB1"; transcript_id "AX721082:uc002wmz.1";
+chr20 hg19_knownGene CDS 8628547 8628600 0.000000 + 1 gene_id "PLCB1"; transcript_id "AX721082:uc002wmz.1";
+chr20 hg19_knownGene exon 8628547 8628600 0.000000 + . gene_id "PLCB1"; transcript_id "AX721082:uc002wmz.1";
+chr20 hg19_knownGene CDS 8630021 8630096 0.000000 + 1 gene_id "PLCB1"; transcript_id "AX721082:uc002wmz.1";
+chr20 hg19_knownGene exon 8630021 8630096 0.000000 + . gene_id "PLCB1"; transcript_id "AX721082:uc002wmz.1";
+chr20 hg19_knownGene CDS 8632060 8632161 0.000000 + 0 gene_id "PLCB1"; transcript_id "AX721082:uc002wmz.1";
+chr20 hg19_knownGene exon 8632060 8632165 0.000000 + . gene_id "PLCB1"; transcript_id "AX721082:uc002wmz.1";
+chr20 hg19_knownGene exon 8095100 8095220 0.000000 + . gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene exon 8130941 8131018 0.000000 + . gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene exon 8352029 8352097 0.000000 + . gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene CDS 8608998 8609078 0.000000 + 0 gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene exon 8608941 8609078 0.000000 + . gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene CDS 8626749 8626828 0.000000 + 0 gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene exon 8626749 8626828 0.000000 + . gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene CDS 8628547 8628600 0.000000 + 1 gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene exon 8628547 8628600 0.000000 + . gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene CDS 8630021 8630096 0.000000 + 1 gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene exon 8630021 8630096 0.000000 + . gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene CDS 8637831 8637931 0.000000 + 0 gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene exon 8637831 8637931 0.000000 + . gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene CDS 8639185 8639351 0.000000 + 1 gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene exon 8639185 8639351 0.000000 + . gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene CDS 8665579 8665725 0.000000 + 2 gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene exon 8665579 8665725 0.000000 + . gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene CDS 8678273 8678430 0.000000 + 2 gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene exon 8678273 8678430 0.000000 + . gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene CDS 8689317 8689399 0.000000 + 0 gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene exon 8689317 8689399 0.000000 + . gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene CDS 8696911 8696995 0.000000 + 1 gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene exon 8696911 8696995 0.000000 + . gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene CDS 8698318 8698495 0.000000 + 0 gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene exon 8698318 8698495 0.000000 + . gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene CDS 8703001 8703068 0.000000 + 2 gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene exon 8703001 8703068 0.000000 + . gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene CDS 8705303 8705399 0.000000 + 0 gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene exon 8705303 8705399 0.000000 + . gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene CDS 8707956 8708040 0.000000 + 2 gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene exon 8707956 8708040 0.000000 + . gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene CDS 8709697 8709821 0.000000 + 1 gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene exon 8709697 8709821 0.000000 + . gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene CDS 8713885 8714039 0.000000 + 2 gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene exon 8713885 8714039 0.000000 + . gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene CDS 8717675 8717839 0.000000 + 0 gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene exon 8717675 8717839 0.000000 + . gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene CDS 8719908 8720007 0.000000 + 0 gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene exon 8719908 8720007 0.000000 + . gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene CDS 8720991 8721095 0.000000 + 2 gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene exon 8720991 8721095 0.000000 + . gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene CDS 8722111 8722220 0.000000 + 2 gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene exon 8722111 8722220 0.000000 + . gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene CDS 8737693 8737825 0.000000 + 0 gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene exon 8737693 8737825 0.000000 + . gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene CDS 8741054 8741107 0.000000 + 2 gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene exon 8741054 8741107 0.000000 + . gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene CDS 8745786 8746005 0.000000 + 2 gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene exon 8745786 8746005 0.000000 + . gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene CDS 8755186 8755366 0.000000 + 1 gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene exon 8755186 8755366 0.000000 + . gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene CDS 8769096 8769167 0.000000 + 0 gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene exon 8769096 8769172 0.000000 + . gene_id "PLCB1"; transcript_id "AK299195:uc010zrb.1";
+chr20 hg19_knownGene exon 8581381 8581428 0.000000 + . gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene CDS 8608998 8609078 0.000000 + 0 gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene exon 8608941 8609078 0.000000 + . gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene CDS 8626749 8626828 0.000000 + 0 gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene exon 8626749 8626828 0.000000 + . gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene CDS 8628547 8628600 0.000000 + 1 gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene exon 8628547 8628600 0.000000 + . gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene CDS 8630021 8630096 0.000000 + 1 gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene exon 8630021 8630096 0.000000 + . gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene CDS 8637831 8637931 0.000000 + 0 gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene exon 8637831 8637931 0.000000 + . gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene CDS 8639185 8639351 0.000000 + 1 gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene exon 8639185 8639351 0.000000 + . gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene CDS 8665579 8665725 0.000000 + 2 gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene exon 8665579 8665725 0.000000 + . gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene CDS 8678273 8678430 0.000000 + 2 gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene exon 8678273 8678430 0.000000 + . gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene CDS 8689317 8689399 0.000000 + 0 gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene exon 8689317 8689399 0.000000 + . gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene CDS 8696911 8696995 0.000000 + 1 gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene exon 8696911 8696995 0.000000 + . gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene CDS 8698318 8698495 0.000000 + 0 gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene exon 8698318 8698495 0.000000 + . gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene CDS 8703001 8703068 0.000000 + 2 gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene exon 8703001 8703068 0.000000 + . gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene CDS 8705303 8705399 0.000000 + 0 gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene exon 8705303 8705399 0.000000 + . gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene CDS 8707956 8708040 0.000000 + 2 gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene exon 8707956 8708040 0.000000 + . gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene CDS 8709697 8709821 0.000000 + 1 gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene exon 8709697 8709821 0.000000 + . gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene CDS 8713885 8714039 0.000000 + 2 gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene exon 8713885 8714039 0.000000 + . gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene CDS 8717675 8717839 0.000000 + 0 gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene exon 8717675 8717839 0.000000 + . gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene CDS 8719908 8720007 0.000000 + 0 gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene exon 8719908 8720007 0.000000 + . gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene CDS 8720991 8721095 0.000000 + 2 gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene exon 8720991 8721095 0.000000 + . gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene CDS 8722111 8722220 0.000000 + 2 gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene exon 8722111 8722220 0.000000 + . gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene CDS 8737693 8737825 0.000000 + 0 gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene exon 8737693 8737825 0.000000 + . gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene CDS 8741054 8741107 0.000000 + 2 gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene exon 8741054 8741107 0.000000 + . gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene CDS 8745786 8746005 0.000000 + 2 gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene exon 8745786 8746005 0.000000 + . gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene CDS 8755186 8755366 0.000000 + 1 gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene exon 8755186 8755366 0.000000 + . gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene CDS 8769096 8769167 0.000000 + 0 gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene exon 8769096 8769172 0.000000 + . gene_id "PLCB1"; transcript_id "AK127693:uc002wnc.1";
+chr20 hg19_knownGene CDS 8696930 8696995 0.000000 + 0 gene_id "PLCB1"; transcript_id "AK023689:uc002wnd.1";
+chr20 hg19_knownGene exon 8696509 8696995 0.000000 + . gene_id "PLCB1"; transcript_id "AK023689:uc002wnd.1";
+chr20 hg19_knownGene CDS 8698318 8698495 0.000000 + 0 gene_id "PLCB1"; transcript_id "AK023689:uc002wnd.1";
+chr20 hg19_knownGene exon 8698318 8698495 0.000000 + . gene_id "PLCB1"; transcript_id "AK023689:uc002wnd.1";
+chr20 hg19_knownGene CDS 8703001 8703068 0.000000 + 2 gene_id "PLCB1"; transcript_id "AK023689:uc002wnd.1";
+chr20 hg19_knownGene exon 8703001 8703068 0.000000 + . gene_id "PLCB1"; transcript_id "AK023689:uc002wnd.1";
+chr20 hg19_knownGene CDS 8705303 8705399 0.000000 + 0 gene_id "PLCB1"; transcript_id "AK023689:uc002wnd.1";
+chr20 hg19_knownGene exon 8705303 8705399 0.000000 + . gene_id "PLCB1"; transcript_id "AK023689:uc002wnd.1";
+chr20 hg19_knownGene CDS 8707956 8708040 0.000000 + 2 gene_id "PLCB1"; transcript_id "AK023689:uc002wnd.1";
+chr20 hg19_knownGene exon 8707956 8708040 0.000000 + . gene_id "PLCB1"; transcript_id "AK023689:uc002wnd.1";
+chr20 hg19_knownGene CDS 8709697 8709821 0.000000 + 1 gene_id "PLCB1"; transcript_id "AK023689:uc002wnd.1";
+chr20 hg19_knownGene exon 8709697 8709821 0.000000 + . gene_id "PLCB1"; transcript_id "AK023689:uc002wnd.1";
+chr20 hg19_knownGene CDS 8713885 8714039 0.000000 + 2 gene_id "PLCB1"; transcript_id "AK023689:uc002wnd.1";
+chr20 hg19_knownGene exon 8713885 8714039 0.000000 + . gene_id "PLCB1"; transcript_id "AK023689:uc002wnd.1";
+chr20 hg19_knownGene CDS 8717675 8717839 0.000000 + 0 gene_id "PLCB1"; transcript_id "AK023689:uc002wnd.1";
+chr20 hg19_knownGene exon 8717675 8717839 0.000000 + . gene_id "PLCB1"; transcript_id "AK023689:uc002wnd.1";
+chr20 hg19_knownGene CDS 8719908 8720007 0.000000 + 0 gene_id "PLCB1"; transcript_id "AK023689:uc002wnd.1";
+chr20 hg19_knownGene exon 8719908 8720007 0.000000 + . gene_id "PLCB1"; transcript_id "AK023689:uc002wnd.1";
+chr20 hg19_knownGene CDS 8720991 8721095 0.000000 + 2 gene_id "PLCB1"; transcript_id "AK023689:uc002wnd.1";
+chr20 hg19_knownGene exon 8720991 8721095 0.000000 + . gene_id "PLCB1"; transcript_id "AK023689:uc002wnd.1";
+chr20 hg19_knownGene CDS 8722111 8722220 0.000000 + 2 gene_id "PLCB1"; transcript_id "AK023689:uc002wnd.1";
+chr20 hg19_knownGene exon 8722111 8722220 0.000000 + . gene_id "PLCB1"; transcript_id "AK023689:uc002wnd.1";
+chr20 hg19_knownGene CDS 8737693 8737825 0.000000 + 0 gene_id "PLCB1"; transcript_id "AK023689:uc002wnd.1";
+chr20 hg19_knownGene exon 8737693 8737825 0.000000 + . gene_id "PLCB1"; transcript_id "AK023689:uc002wnd.1";
+chr20 hg19_knownGene CDS 8741054 8741107 0.000000 + 2 gene_id "PLCB1"; transcript_id "AK023689:uc002wnd.1";
+chr20 hg19_knownGene exon 8741054 8741107 0.000000 + . gene_id "PLCB1"; transcript_id "AK023689:uc002wnd.1";
+chr20 hg19_knownGene CDS 8745786 8746005 0.000000 + 2 gene_id "PLCB1"; transcript_id "AK023689:uc002wnd.1";
+chr20 hg19_knownGene exon 8745786 8746005 0.000000 + . gene_id "PLCB1"; transcript_id "AK023689:uc002wnd.1";
+chr20 hg19_knownGene CDS 8755186 8755366 0.000000 + 1 gene_id "PLCB1"; transcript_id "AK023689:uc002wnd.1";
+chr20 hg19_knownGene exon 8755186 8755366 0.000000 + . gene_id "PLCB1"; transcript_id "AK023689:uc002wnd.1";
+chr20 hg19_knownGene CDS 8769096 8769167 0.000000 + 0 gene_id "PLCB1"; transcript_id "AK023689:uc002wnd.1";
+chr20 hg19_knownGene exon 8769096 8769172 0.000000 + . gene_id "PLCB1"; transcript_id "AK023689:uc002wnd.1";
+chr20 hg19_knownGene CDS 8113299 8113397 0.000000 + 0 gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene exon 8113296 8113397 0.000000 + . gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene CDS 8130941 8131018 0.000000 + 0 gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene exon 8130941 8131018 0.000000 + . gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene CDS 8352029 8352097 0.000000 + 0 gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene exon 8352029 8352097 0.000000 + . gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene CDS 8608941 8609078 0.000000 + 0 gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene exon 8608941 8609078 0.000000 + . gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene CDS 8626749 8626828 0.000000 + 0 gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene exon 8626749 8626828 0.000000 + . gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene CDS 8628547 8628600 0.000000 + 1 gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene exon 8628547 8628600 0.000000 + . gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene CDS 8630021 8630096 0.000000 + 1 gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene exon 8630021 8630096 0.000000 + . gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene CDS 8637831 8637931 0.000000 + 0 gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene exon 8637831 8637931 0.000000 + . gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene CDS 8639185 8639351 0.000000 + 1 gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene exon 8639185 8639351 0.000000 + . gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene CDS 8665579 8665725 0.000000 + 2 gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene exon 8665579 8665725 0.000000 + . gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene CDS 8678273 8678430 0.000000 + 2 gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene exon 8678273 8678430 0.000000 + . gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene CDS 8689317 8689399 0.000000 + 0 gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene exon 8689317 8689399 0.000000 + . gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene CDS 8696911 8696995 0.000000 + 1 gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene exon 8696911 8696995 0.000000 + . gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene CDS 8698318 8698495 0.000000 + 0 gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene exon 8698318 8698495 0.000000 + . gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene CDS 8703001 8703068 0.000000 + 2 gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene exon 8703001 8703068 0.000000 + . gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene CDS 8705303 8705399 0.000000 + 0 gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene exon 8705303 8705399 0.000000 + . gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene CDS 8707956 8708040 0.000000 + 2 gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene exon 8707956 8708040 0.000000 + . gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene CDS 8709697 8709821 0.000000 + 1 gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene exon 8709697 8709821 0.000000 + . gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene CDS 8713885 8714039 0.000000 + 2 gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene exon 8713885 8714039 0.000000 + . gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene CDS 8717675 8717839 0.000000 + 0 gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene exon 8717675 8717839 0.000000 + . gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene CDS 8719908 8720007 0.000000 + 0 gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene exon 8719908 8720007 0.000000 + . gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene CDS 8720991 8721095 0.000000 + 2 gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene exon 8720991 8721095 0.000000 + . gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene CDS 8722111 8722220 0.000000 + 2 gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene exon 8722111 8722220 0.000000 + . gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene CDS 8737693 8737825 0.000000 + 0 gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene exon 8737693 8737825 0.000000 + . gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene CDS 8741054 8741107 0.000000 + 2 gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene exon 8741054 8741107 0.000000 + . gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene CDS 8745786 8746005 0.000000 + 2 gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene exon 8745786 8746005 0.000000 + . gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene CDS 8755186 8755366 0.000000 + 1 gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene exon 8755186 8755366 0.000000 + . gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene CDS 8769096 8769172 0.000000 + 0 gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene exon 8769096 8769172 0.000000 + . gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene CDS 8769280 8769369 0.000000 + 1 gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene exon 8769280 8769369 0.000000 + . gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene CDS 8770165 8770222 0.000000 + 1 gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene exon 8770165 8770222 0.000000 + . gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene CDS 8770822 8770908 0.000000 + 0 gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene exon 8770822 8770908 0.000000 + . gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene CDS 8782703 8782798 0.000000 + 0 gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene exon 8782703 8782820 0.000000 + . gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene exon 8862269 8865547 0.000000 + . gene_id "PLCB1"; transcript_id "NM_182734:uc002wna.3";
+chr20 hg19_knownGene CDS 8113299 8113397 0.000000 + 0 gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene exon 8113296 8113397 0.000000 + . gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene CDS 8130941 8131018 0.000000 + 0 gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene exon 8130941 8131018 0.000000 + . gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene CDS 8352029 8352097 0.000000 + 0 gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene exon 8352029 8352097 0.000000 + . gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene CDS 8608941 8609078 0.000000 + 0 gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene exon 8608941 8609078 0.000000 + . gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene CDS 8626749 8626828 0.000000 + 0 gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene exon 8626749 8626828 0.000000 + . gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene CDS 8628547 8628600 0.000000 + 1 gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene exon 8628547 8628600 0.000000 + . gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene CDS 8630021 8630096 0.000000 + 1 gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene exon 8630021 8630096 0.000000 + . gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene CDS 8637831 8637931 0.000000 + 0 gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene exon 8637831 8637931 0.000000 + . gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene CDS 8639185 8639351 0.000000 + 1 gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene exon 8639185 8639351 0.000000 + . gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene CDS 8665579 8665725 0.000000 + 2 gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene exon 8665579 8665725 0.000000 + . gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene CDS 8678273 8678430 0.000000 + 2 gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene exon 8678273 8678430 0.000000 + . gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene CDS 8689317 8689399 0.000000 + 0 gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene exon 8689317 8689399 0.000000 + . gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene CDS 8696911 8696995 0.000000 + 1 gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene exon 8696911 8696995 0.000000 + . gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene CDS 8698318 8698495 0.000000 + 0 gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene exon 8698318 8698495 0.000000 + . gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene CDS 8703001 8703068 0.000000 + 2 gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene exon 8703001 8703068 0.000000 + . gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene CDS 8705303 8705399 0.000000 + 0 gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene exon 8705303 8705399 0.000000 + . gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene CDS 8707956 8708040 0.000000 + 2 gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene exon 8707956 8708040 0.000000 + . gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene CDS 8709697 8709821 0.000000 + 1 gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene exon 8709697 8709821 0.000000 + . gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene CDS 8713885 8714039 0.000000 + 2 gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene exon 8713885 8714039 0.000000 + . gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene CDS 8717675 8717839 0.000000 + 0 gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene exon 8717675 8717839 0.000000 + . gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene CDS 8719908 8720007 0.000000 + 0 gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene exon 8719908 8720007 0.000000 + . gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene CDS 8720991 8721095 0.000000 + 2 gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene exon 8720991 8721095 0.000000 + . gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene CDS 8722111 8722220 0.000000 + 2 gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene exon 8722111 8722220 0.000000 + . gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene CDS 8737693 8737825 0.000000 + 0 gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene exon 8737693 8737825 0.000000 + . gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene CDS 8741054 8741107 0.000000 + 2 gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene exon 8741054 8741107 0.000000 + . gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene CDS 8745786 8746005 0.000000 + 2 gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene exon 8745786 8746005 0.000000 + . gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene CDS 8755186 8755366 0.000000 + 1 gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene exon 8755186 8755366 0.000000 + . gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene CDS 8769096 8769172 0.000000 + 0 gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene exon 8769096 8769172 0.000000 + . gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene CDS 8769280 8769369 0.000000 + 1 gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene exon 8769280 8769369 0.000000 + . gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene CDS 8770165 8770222 0.000000 + 1 gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene exon 8770165 8770222 0.000000 + . gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene CDS 8770822 8770908 0.000000 + 0 gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene exon 8770822 8770908 0.000000 + . gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene CDS 8862269 8862493 0.000000 + 0 gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene exon 8862269 8865547 0.000000 + . gene_id "PLCB1"; transcript_id "NM_015192:uc002wnb.3";
+chr20 hg19_knownGene exon 9049701 9049853 0.000000 + . gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene exon 9198037 9198099 0.000000 + . gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene CDS 9288462 9288545 0.000000 + 0 gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene exon 9288447 9288545 0.000000 + . gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene CDS 9317773 9317853 0.000000 + 0 gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene exon 9317773 9317853 0.000000 + . gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene CDS 9318655 9318714 0.000000 + 0 gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene exon 9318655 9318714 0.000000 + . gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene CDS 9319541 9319684 0.000000 + 0 gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene exon 9319541 9319684 0.000000 + . gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene CDS 9343543 9343622 0.000000 + 0 gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene exon 9343543 9343622 0.000000 + . gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene CDS 9346108 9346161 0.000000 + 1 gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene exon 9346108 9346161 0.000000 + . gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene CDS 9351861 9351942 0.000000 + 1 gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene exon 9351861 9351942 0.000000 + . gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene CDS 9352950 9353050 0.000000 + 0 gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene exon 9352950 9353050 0.000000 + . gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene CDS 9353694 9353751 0.000000 + 1 gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene exon 9353694 9353751 0.000000 + . gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene CDS 9360701 9360809 0.000000 + 0 gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene exon 9360701 9360809 0.000000 + . gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene CDS 9364848 9365058 0.000000 + 2 gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene exon 9364848 9365058 0.000000 + . gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene CDS 9368110 9368203 0.000000 + 1 gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene exon 9368110 9368203 0.000000 + . gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene CDS 9370526 9370605 0.000000 + 0 gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene exon 9370526 9370605 0.000000 + . gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene CDS 9371178 9371262 0.000000 + 1 gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene exon 9371178 9371262 0.000000 + . gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene CDS 9374235 9374325 0.000000 + 0 gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene exon 9374235 9374325 0.000000 + . gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene CDS 9376170 9376265 0.000000 + 2 gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene exon 9376170 9376265 0.000000 + . gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene CDS 9382137 9382237 0.000000 + 2 gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene exon 9382137 9382237 0.000000 + . gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene CDS 9388564 9388705 0.000000 + 0 gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene exon 9388564 9388705 0.000000 + . gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene CDS 9389280 9389364 0.000000 + 2 gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene exon 9389280 9389364 0.000000 + . gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene CDS 9389704 9389828 0.000000 + 1 gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene exon 9389704 9389828 0.000000 + . gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene CDS 9391684 9391735 0.000000 + 2 gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene exon 9391684 9391735 0.000000 + . gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene CDS 9400454 9400556 0.000000 + 1 gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene exon 9400454 9400556 0.000000 + . gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene CDS 9401944 9402108 0.000000 + 0 gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene exon 9401944 9402108 0.000000 + . gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene CDS 9404395 9404599 0.000000 + 0 gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene exon 9404395 9404599 0.000000 + . gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene CDS 9416207 9416295 0.000000 + 2 gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene exon 9416207 9416295 0.000000 + . gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene CDS 9417649 9417799 0.000000 + 0 gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene exon 9417649 9417799 0.000000 + . gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene CDS 9424628 9424677 0.000000 + 2 gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene exon 9424628 9424677 0.000000 + . gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene CDS 9424825 9424890 0.000000 + 0 gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene exon 9424825 9424890 0.000000 + . gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene CDS 9433994 9434109 0.000000 + 0 gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene exon 9433994 9434109 0.000000 + . gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene CDS 9438061 9438133 0.000000 + 1 gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene exon 9438061 9438136 0.000000 + . gene_id "PLCB4"; transcript_id "AK307482:uc010gbw.1";
+chr20 hg19_knownGene exon 9049701 9049853 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9198037 9198099 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9288462 9288545 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9288447 9288545 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9317773 9317853 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9317773 9317853 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9318655 9318714 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9318655 9318714 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9319541 9319684 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9319541 9319684 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9343543 9343622 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9343543 9343622 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9346108 9346161 0.000000 + 1 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9346108 9346161 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9351861 9351942 0.000000 + 1 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9351861 9351942 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9352950 9353050 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9352950 9353050 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9353694 9353751 0.000000 + 1 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9353694 9353751 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9360701 9360809 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9360701 9360809 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9364848 9365058 0.000000 + 2 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9364848 9365058 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9368110 9368203 0.000000 + 1 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9368110 9368203 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9370526 9370605 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9370526 9370605 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9371178 9371262 0.000000 + 1 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9371178 9371262 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9374235 9374325 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9374235 9374325 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9376170 9376265 0.000000 + 2 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9376170 9376265 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9382137 9382237 0.000000 + 2 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9382137 9382237 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9385960 9385995 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9385960 9385995 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9388564 9388705 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9388564 9388705 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9389280 9389364 0.000000 + 2 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9389280 9389364 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9389704 9389828 0.000000 + 1 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9389704 9389828 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9391684 9391735 0.000000 + 2 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9391684 9391735 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9400454 9400556 0.000000 + 1 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9400454 9400556 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9401944 9402108 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9401944 9402108 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9404395 9404599 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9404395 9404599 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9416207 9416295 0.000000 + 2 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9416207 9416295 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9417649 9417799 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9417649 9417799 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9424628 9424677 0.000000 + 2 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9424628 9424677 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9424825 9424890 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9424825 9424890 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9433994 9434109 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9433994 9434109 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9438061 9438136 0.000000 + 1 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9438061 9438136 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9440282 9440457 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9440282 9440457 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9449218 9449319 0.000000 + 1 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9449218 9449319 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9453437 9453494 0.000000 + 1 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9453437 9453494 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9453926 9454012 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9453926 9454012 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene CDS 9459568 9459633 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9459568 9461462 0.000000 + . gene_id "PLCB4"; transcript_id "NM_001172646:uc010gbx.3";
+chr20 hg19_knownGene exon 9198037 9198099 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9288462 9288545 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9288447 9288545 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9317773 9317853 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9317773 9317853 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9318655 9318714 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9318655 9318714 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9319541 9319684 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9319541 9319684 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9343543 9343622 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9343543 9343622 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9346108 9346161 0.000000 + 1 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9346108 9346161 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9351861 9351942 0.000000 + 1 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9351861 9351942 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9352950 9353050 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9352950 9353050 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9353694 9353751 0.000000 + 1 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9353694 9353751 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9360701 9360809 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9360701 9360809 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9364848 9365058 0.000000 + 2 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9364848 9365058 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9368110 9368203 0.000000 + 1 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9368110 9368203 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9370526 9370605 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9370526 9370605 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9371178 9371262 0.000000 + 1 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9371178 9371262 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9374235 9374325 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9374235 9374325 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9376170 9376265 0.000000 + 2 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9376170 9376265 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9382137 9382237 0.000000 + 2 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9382137 9382237 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9388564 9388705 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9388564 9388705 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9389280 9389364 0.000000 + 2 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9389280 9389364 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9389704 9389828 0.000000 + 1 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9389704 9389828 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9391684 9391735 0.000000 + 2 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9391684 9391735 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9400454 9400556 0.000000 + 1 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9400454 9400556 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9401944 9402108 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9401944 9402108 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9404395 9404599 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9404395 9404599 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9416207 9416295 0.000000 + 2 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9416207 9416295 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9417649 9417799 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9417649 9417799 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9424628 9424677 0.000000 + 2 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9424628 9424677 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9424825 9424890 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9424825 9424890 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9433994 9434109 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9433994 9434109 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9438061 9438136 0.000000 + 1 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9438061 9438136 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9440282 9440457 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9440282 9440457 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9449218 9449319 0.000000 + 1 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9449218 9449319 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9453437 9453494 0.000000 + 1 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9453437 9453494 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9453926 9454012 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9453926 9454012 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9459568 9459633 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene exon 9459568 9461462 0.000000 + . gene_id "PLCB4"; transcript_id "NM_182797:uc021wal.1";
+chr20 hg19_knownGene CDS 9288462 9288545 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9288447 9288545 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9317773 9317853 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9317773 9317853 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9318655 9318714 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9318655 9318714 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9319541 9319684 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9319541 9319684 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9343543 9343622 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9343543 9343622 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9346108 9346161 0.000000 + 1 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9346108 9346161 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9351861 9351942 0.000000 + 1 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9351861 9351942 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9352950 9353050 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9352950 9353050 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9353694 9353751 0.000000 + 1 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9353694 9353751 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9360701 9360809 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9360701 9360809 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9364848 9365058 0.000000 + 2 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9364848 9365058 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9368110 9368203 0.000000 + 1 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9368110 9368203 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9370526 9370605 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9370526 9370605 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9371178 9371262 0.000000 + 1 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9371178 9371262 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9374235 9374325 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9374235 9374325 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9376170 9376265 0.000000 + 2 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9376170 9376265 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9382137 9382237 0.000000 + 2 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9382137 9382237 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9388564 9388705 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9388564 9388705 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9389280 9389364 0.000000 + 2 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9389280 9389364 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9389704 9389828 0.000000 + 1 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9389704 9389828 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9391684 9391735 0.000000 + 2 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9391684 9391735 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9400454 9400556 0.000000 + 1 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9400454 9400556 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9401944 9402108 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9401944 9402108 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9404395 9404599 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9404395 9404599 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9416207 9416295 0.000000 + 2 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9416207 9416295 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9417649 9417799 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9417649 9417799 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9424628 9424677 0.000000 + 2 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9424628 9424677 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9424825 9424890 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9424825 9424890 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9433994 9434109 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9433994 9434109 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9438061 9438136 0.000000 + 1 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9438061 9438136 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9440282 9440457 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9440282 9440457 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9449218 9449319 0.000000 + 1 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9449218 9449319 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9453437 9453494 0.000000 + 1 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9453437 9453494 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9453926 9454012 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9453926 9454012 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9457364 9457400 0.000000 + 0 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9457364 9457400 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9459568 9459653 0.000000 + 2 gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene exon 9459568 9461462 0.000000 + . gene_id "PLCB4"; transcript_id "NM_000933:uc021wam.1";
+chr20 hg19_knownGene CDS 9351817 9351942 0.000000 + 0 gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene exon 9351581 9351942 0.000000 + . gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene CDS 9352950 9353050 0.000000 + 0 gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene exon 9352950 9353050 0.000000 + . gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene CDS 9353694 9353751 0.000000 + 1 gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene exon 9353694 9353751 0.000000 + . gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene CDS 9360701 9360809 0.000000 + 0 gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene exon 9360701 9360809 0.000000 + . gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene CDS 9364848 9365058 0.000000 + 2 gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene exon 9364848 9365058 0.000000 + . gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene CDS 9368110 9368203 0.000000 + 1 gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene exon 9368110 9368203 0.000000 + . gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene CDS 9370526 9370605 0.000000 + 0 gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene exon 9370526 9370605 0.000000 + . gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene CDS 9371178 9371262 0.000000 + 1 gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene exon 9371178 9371262 0.000000 + . gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene CDS 9374235 9374325 0.000000 + 0 gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene exon 9374235 9374325 0.000000 + . gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene CDS 9376170 9376265 0.000000 + 2 gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene exon 9376170 9376265 0.000000 + . gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene CDS 9382137 9382237 0.000000 + 2 gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene exon 9382137 9382237 0.000000 + . gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene CDS 9388564 9388705 0.000000 + 0 gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene exon 9388564 9388705 0.000000 + . gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene CDS 9389280 9389364 0.000000 + 2 gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene exon 9389280 9389364 0.000000 + . gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene CDS 9389704 9389828 0.000000 + 1 gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene exon 9389704 9389828 0.000000 + . gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene CDS 9391684 9391735 0.000000 + 2 gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene exon 9391684 9391735 0.000000 + . gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene CDS 9400454 9400556 0.000000 + 1 gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene exon 9400454 9400556 0.000000 + . gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene CDS 9401944 9402108 0.000000 + 0 gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene exon 9401944 9402108 0.000000 + . gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene CDS 9404395 9404599 0.000000 + 0 gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene exon 9404395 9404599 0.000000 + . gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene CDS 9416207 9416295 0.000000 + 2 gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene exon 9416207 9416295 0.000000 + . gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene CDS 9417649 9417799 0.000000 + 0 gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene exon 9417649 9417799 0.000000 + . gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene CDS 9424628 9424677 0.000000 + 2 gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene exon 9424628 9424677 0.000000 + . gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene CDS 9424825 9424890 0.000000 + 0 gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene exon 9424825 9424890 0.000000 + . gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene CDS 9433994 9434109 0.000000 + 0 gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene exon 9433994 9434109 0.000000 + . gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene CDS 9438061 9438136 0.000000 + 1 gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene exon 9438061 9438136 0.000000 + . gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene CDS 9440282 9440457 0.000000 + 0 gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene exon 9440282 9440457 0.000000 + . gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene CDS 9449218 9449319 0.000000 + 1 gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene exon 9449218 9449319 0.000000 + . gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene CDS 9453437 9453494 0.000000 + 1 gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene exon 9453437 9453494 0.000000 + . gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene CDS 9453926 9454012 0.000000 + 0 gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene exon 9453926 9454012 0.000000 + . gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene CDS 9459568 9459633 0.000000 + 0 gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene exon 9459568 9461462 0.000000 + . gene_id "PLCB4"; transcript_id "L41349:uc002wnh.3";
+chr20 hg19_knownGene CDS 9495500 9495563 0.000000 + 0 gene_id "LAMP5"; transcript_id "NM_012261:uc002wni.2";
+chr20 hg19_knownGene exon 9495005 9495563 0.000000 + . gene_id "LAMP5"; transcript_id "NM_012261:uc002wni.2";
+chr20 hg19_knownGene CDS 9496100 9496272 0.000000 + 2 gene_id "LAMP5"; transcript_id "NM_012261:uc002wni.2";
+chr20 hg19_knownGene exon 9496100 9496272 0.000000 + . gene_id "LAMP5"; transcript_id "NM_012261:uc002wni.2";
+chr20 hg19_knownGene CDS 9496647 9496778 0.000000 + 0 gene_id "LAMP5"; transcript_id "NM_012261:uc002wni.2";
+chr20 hg19_knownGene exon 9496647 9496778 0.000000 + . gene_id "LAMP5"; transcript_id "NM_012261:uc002wni.2";
+chr20 hg19_knownGene CDS 9496903 9497008 0.000000 + 0 gene_id "LAMP5"; transcript_id "NM_012261:uc002wni.2";
+chr20 hg19_knownGene exon 9496903 9497008 0.000000 + . gene_id "LAMP5"; transcript_id "NM_012261:uc002wni.2";
+chr20 hg19_knownGene CDS 9498687 9498875 0.000000 + 2 gene_id "LAMP5"; transcript_id "NM_012261:uc002wni.2";
+chr20 hg19_knownGene exon 9498687 9498875 0.000000 + . gene_id "LAMP5"; transcript_id "NM_012261:uc002wni.2";
+chr20 hg19_knownGene CDS 9510289 9510464 0.000000 + 2 gene_id "LAMP5"; transcript_id "NM_012261:uc002wni.2";
+chr20 hg19_knownGene exon 9510289 9511171 0.000000 + . gene_id "LAMP5"; transcript_id "NM_012261:uc002wni.2";
+chr20 hg19_knownGene CDS 9495500 9495563 0.000000 + 0 gene_id "LAMP5"; transcript_id "NM_001199897:uc010zrc.2";
+chr20 hg19_knownGene exon 9495005 9495563 0.000000 + . gene_id "LAMP5"; transcript_id "NM_001199897:uc010zrc.2";
+chr20 hg19_knownGene CDS 9496100 9496272 0.000000 + 2 gene_id "LAMP5"; transcript_id "NM_001199897:uc010zrc.2";
+chr20 hg19_knownGene exon 9496100 9496272 0.000000 + . gene_id "LAMP5"; transcript_id "NM_001199897:uc010zrc.2";
+chr20 hg19_knownGene CDS 9496903 9497008 0.000000 + 0 gene_id "LAMP5"; transcript_id "NM_001199897:uc010zrc.2";
+chr20 hg19_knownGene exon 9496903 9497008 0.000000 + . gene_id "LAMP5"; transcript_id "NM_001199897:uc010zrc.2";
+chr20 hg19_knownGene CDS 9498687 9498875 0.000000 + 2 gene_id "LAMP5"; transcript_id "NM_001199897:uc010zrc.2";
+chr20 hg19_knownGene exon 9498687 9498875 0.000000 + . gene_id "LAMP5"; transcript_id "NM_001199897:uc010zrc.2";
+chr20 hg19_knownGene CDS 9510289 9510464 0.000000 + 2 gene_id "LAMP5"; transcript_id "NM_001199897:uc010zrc.2";
+chr20 hg19_knownGene exon 9510289 9511171 0.000000 + . gene_id "LAMP5"; transcript_id "NM_001199897:uc010zrc.2";
+chr20 hg19_knownGene exon 9748764 9751753 0.000000 - . gene_id "AX747070"; transcript_id "AX747070:uc002wnm.1";
+chr20 hg19_knownGene CDS 9520112 9520264 0.000000 - 0 gene_id "PAK7"; transcript_id "NM_020341:uc002wnl.2";
+chr20 hg19_knownGene exon 9518037 9520264 0.000000 - . gene_id "PAK7"; transcript_id "NM_020341:uc002wnl.2";
+chr20 hg19_knownGene CDS 9523233 9523367 0.000000 - 0 gene_id "PAK7"; transcript_id "NM_020341:uc002wnl.2";
+chr20 hg19_knownGene exon 9523233 9523367 0.000000 - . gene_id "PAK7"; transcript_id "NM_020341:uc002wnl.2";
+chr20 hg19_knownGene CDS 9525016 9525141 0.000000 - 0 gene_id "PAK7"; transcript_id "NM_020341:uc002wnl.2";
+chr20 hg19_knownGene exon 9525016 9525141 0.000000 - . gene_id "PAK7"; transcript_id "NM_020341:uc002wnl.2";
+chr20 hg19_knownGene CDS 9538255 9538381 0.000000 - 1 gene_id "PAK7"; transcript_id "NM_020341:uc002wnl.2";
+chr20 hg19_knownGene exon 9538255 9538381 0.000000 - . gene_id "PAK7"; transcript_id "NM_020341:uc002wnl.2";
+chr20 hg19_knownGene CDS 9543538 9543671 0.000000 - 0 gene_id "PAK7"; transcript_id "NM_020341:uc002wnl.2";
+chr20 hg19_knownGene exon 9543538 9543671 0.000000 - . gene_id "PAK7"; transcript_id "NM_020341:uc002wnl.2";
+chr20 hg19_knownGene CDS 9546540 9547031 0.000000 - 0 gene_id "PAK7"; transcript_id "NM_020341:uc002wnl.2";
+chr20 hg19_knownGene exon 9546540 9547031 0.000000 - . gene_id "PAK7"; transcript_id "NM_020341:uc002wnl.2";
+chr20 hg19_knownGene CDS 9560792 9561577 0.000000 - 0 gene_id "PAK7"; transcript_id "NM_020341:uc002wnl.2";
+chr20 hg19_knownGene exon 9560792 9561577 0.000000 - . gene_id "PAK7"; transcript_id "NM_020341:uc002wnl.2";
+chr20 hg19_knownGene CDS 9624773 9624976 0.000000 - 0 gene_id "PAK7"; transcript_id "NM_020341:uc002wnl.2";
+chr20 hg19_knownGene exon 9624773 9624987 0.000000 - . gene_id "PAK7"; transcript_id "NM_020341:uc002wnl.2";
+chr20 hg19_knownGene exon 9691934 9692083 0.000000 - . gene_id "PAK7"; transcript_id "NM_020341:uc002wnl.2";
+chr20 hg19_knownGene exon 9799328 9799433 0.000000 - . gene_id "PAK7"; transcript_id "NM_020341:uc002wnl.2";
+chr20 hg19_knownGene exon 9819410 9819687 0.000000 - . gene_id "PAK7"; transcript_id "NM_020341:uc002wnl.2";
+chr20 hg19_knownGene CDS 9520112 9520264 0.000000 - 0 gene_id "PAK7"; transcript_id "NM_177990:uc002wnk.2";
+chr20 hg19_knownGene exon 9518037 9520264 0.000000 - . gene_id "PAK7"; transcript_id "NM_177990:uc002wnk.2";
+chr20 hg19_knownGene CDS 9523233 9523367 0.000000 - 0 gene_id "PAK7"; transcript_id "NM_177990:uc002wnk.2";
+chr20 hg19_knownGene exon 9523233 9523367 0.000000 - . gene_id "PAK7"; transcript_id "NM_177990:uc002wnk.2";
+chr20 hg19_knownGene CDS 9525016 9525141 0.000000 - 0 gene_id "PAK7"; transcript_id "NM_177990:uc002wnk.2";
+chr20 hg19_knownGene exon 9525016 9525141 0.000000 - . gene_id "PAK7"; transcript_id "NM_177990:uc002wnk.2";
+chr20 hg19_knownGene CDS 9538255 9538381 0.000000 - 1 gene_id "PAK7"; transcript_id "NM_177990:uc002wnk.2";
+chr20 hg19_knownGene exon 9538255 9538381 0.000000 - . gene_id "PAK7"; transcript_id "NM_177990:uc002wnk.2";
+chr20 hg19_knownGene CDS 9543538 9543671 0.000000 - 0 gene_id "PAK7"; transcript_id "NM_177990:uc002wnk.2";
+chr20 hg19_knownGene exon 9543538 9543671 0.000000 - . gene_id "PAK7"; transcript_id "NM_177990:uc002wnk.2";
+chr20 hg19_knownGene CDS 9546540 9547031 0.000000 - 0 gene_id "PAK7"; transcript_id "NM_177990:uc002wnk.2";
+chr20 hg19_knownGene exon 9546540 9547031 0.000000 - . gene_id "PAK7"; transcript_id "NM_177990:uc002wnk.2";
+chr20 hg19_knownGene CDS 9560792 9561577 0.000000 - 0 gene_id "PAK7"; transcript_id "NM_177990:uc002wnk.2";
+chr20 hg19_knownGene exon 9560792 9561577 0.000000 - . gene_id "PAK7"; transcript_id "NM_177990:uc002wnk.2";
+chr20 hg19_knownGene CDS 9624773 9624976 0.000000 - 0 gene_id "PAK7"; transcript_id "NM_177990:uc002wnk.2";
+chr20 hg19_knownGene exon 9624773 9624987 0.000000 - . gene_id "PAK7"; transcript_id "NM_177990:uc002wnk.2";
+chr20 hg19_knownGene exon 9691934 9692083 0.000000 - . gene_id "PAK7"; transcript_id "NM_177990:uc002wnk.2";
+chr20 hg19_knownGene exon 9819410 9819687 0.000000 - . gene_id "PAK7"; transcript_id "NM_177990:uc002wnk.2";
+chr20 hg19_knownGene CDS 9520112 9520264 0.000000 - 0 gene_id "PAK7"; transcript_id "AB040812:uc002wnj.2";
+chr20 hg19_knownGene exon 9518037 9520264 0.000000 - . gene_id "PAK7"; transcript_id "AB040812:uc002wnj.2";
+chr20 hg19_knownGene CDS 9523233 9523367 0.000000 - 0 gene_id "PAK7"; transcript_id "AB040812:uc002wnj.2";
+chr20 hg19_knownGene exon 9523233 9523367 0.000000 - . gene_id "PAK7"; transcript_id "AB040812:uc002wnj.2";
+chr20 hg19_knownGene CDS 9525016 9525141 0.000000 - 0 gene_id "PAK7"; transcript_id "AB040812:uc002wnj.2";
+chr20 hg19_knownGene exon 9525016 9525141 0.000000 - . gene_id "PAK7"; transcript_id "AB040812:uc002wnj.2";
+chr20 hg19_knownGene CDS 9538255 9538381 0.000000 - 1 gene_id "PAK7"; transcript_id "AB040812:uc002wnj.2";
+chr20 hg19_knownGene exon 9538255 9538381 0.000000 - . gene_id "PAK7"; transcript_id "AB040812:uc002wnj.2";
+chr20 hg19_knownGene CDS 9543538 9543671 0.000000 - 0 gene_id "PAK7"; transcript_id "AB040812:uc002wnj.2";
+chr20 hg19_knownGene exon 9543538 9543671 0.000000 - . gene_id "PAK7"; transcript_id "AB040812:uc002wnj.2";
+chr20 hg19_knownGene CDS 9546540 9547031 0.000000 - 0 gene_id "PAK7"; transcript_id "AB040812:uc002wnj.2";
+chr20 hg19_knownGene exon 9546540 9547031 0.000000 - . gene_id "PAK7"; transcript_id "AB040812:uc002wnj.2";
+chr20 hg19_knownGene CDS 9560792 9561577 0.000000 - 0 gene_id "PAK7"; transcript_id "AB040812:uc002wnj.2";
+chr20 hg19_knownGene exon 9560792 9561577 0.000000 - . gene_id "PAK7"; transcript_id "AB040812:uc002wnj.2";
+chr20 hg19_knownGene CDS 9624773 9624976 0.000000 - 0 gene_id "PAK7"; transcript_id "AB040812:uc002wnj.2";
+chr20 hg19_knownGene exon 9624773 9624987 0.000000 - . gene_id "PAK7"; transcript_id "AB040812:uc002wnj.2";
+chr20 hg19_knownGene exon 9691934 9692083 0.000000 - . gene_id "PAK7"; transcript_id "AB040812:uc002wnj.2";
+chr20 hg19_knownGene exon 9765006 9765154 0.000000 - . gene_id "PAK7"; transcript_id "AB040812:uc002wnj.2";
+chr20 hg19_knownGene exon 9819410 9819687 0.000000 - . gene_id "PAK7"; transcript_id "AB040812:uc002wnj.2";
+chr20 hg19_knownGene CDS 9520112 9520264 0.000000 - 0 gene_id "PAK7"; transcript_id "AK095674:uc010gby.1";
+chr20 hg19_knownGene exon 9518037 9520264 0.000000 - . gene_id "PAK7"; transcript_id "AK095674:uc010gby.1";
+chr20 hg19_knownGene CDS 9538255 9538381 0.000000 - 1 gene_id "PAK7"; transcript_id "AK095674:uc010gby.1";
+chr20 hg19_knownGene exon 9538255 9538381 0.000000 - . gene_id "PAK7"; transcript_id "AK095674:uc010gby.1";
+chr20 hg19_knownGene CDS 9543538 9543671 0.000000 - 0 gene_id "PAK7"; transcript_id "AK095674:uc010gby.1";
+chr20 hg19_knownGene exon 9543538 9543671 0.000000 - . gene_id "PAK7"; transcript_id "AK095674:uc010gby.1";
+chr20 hg19_knownGene CDS 9546540 9547031 0.000000 - 0 gene_id "PAK7"; transcript_id "AK095674:uc010gby.1";
+chr20 hg19_knownGene exon 9546540 9547031 0.000000 - . gene_id "PAK7"; transcript_id "AK095674:uc010gby.1";
+chr20 hg19_knownGene CDS 9560792 9561577 0.000000 - 0 gene_id "PAK7"; transcript_id "AK095674:uc010gby.1";
+chr20 hg19_knownGene exon 9560792 9561577 0.000000 - . gene_id "PAK7"; transcript_id "AK095674:uc010gby.1";
+chr20 hg19_knownGene CDS 9624773 9624976 0.000000 - 0 gene_id "PAK7"; transcript_id "AK095674:uc010gby.1";
+chr20 hg19_knownGene exon 9624773 9624987 0.000000 - . gene_id "PAK7"; transcript_id "AK095674:uc010gby.1";
+chr20 hg19_knownGene exon 9691934 9692083 0.000000 - . gene_id "PAK7"; transcript_id "AK095674:uc010gby.1";
+chr20 hg19_knownGene exon 9819410 9819687 0.000000 - . gene_id "PAK7"; transcript_id "AK095674:uc010gby.1";
+chr20 hg19_knownGene exon 10015697 10015981 0.000000 + . gene_id "ANKRD5"; transcript_id "NM_022096:uc002wno.3";
+chr20 hg19_knownGene exon 10016227 10016290 0.000000 + . gene_id "ANKRD5"; transcript_id "NM_022096:uc002wno.3";
+chr20 hg19_knownGene CDS 10018950 10019295 0.000000 + 0 gene_id "ANKRD5"; transcript_id "NM_022096:uc002wno.3";
+chr20 hg19_knownGene exon 10018906 10019295 0.000000 + . gene_id "ANKRD5"; transcript_id "NM_022096:uc002wno.3";
+chr20 hg19_knownGene CDS 10023770 10023969 0.000000 + 2 gene_id "ANKRD5"; transcript_id "NM_022096:uc002wno.3";
+chr20 hg19_knownGene exon 10023770 10023969 0.000000 + . gene_id "ANKRD5"; transcript_id "NM_022096:uc002wno.3";
+chr20 hg19_knownGene CDS 10025042 10025191 0.000000 + 0 gene_id "ANKRD5"; transcript_id "NM_022096:uc002wno.3";
+chr20 hg19_knownGene exon 10025042 10025191 0.000000 + . gene_id "ANKRD5"; transcript_id "NM_022096:uc002wno.3";
+chr20 hg19_knownGene CDS 10026222 10026345 0.000000 + 0 gene_id "ANKRD5"; transcript_id "NM_022096:uc002wno.3";
+chr20 hg19_knownGene exon 10026222 10026345 0.000000 + . gene_id "ANKRD5"; transcript_id "NM_022096:uc002wno.3";
+chr20 hg19_knownGene CDS 10030038 10030860 0.000000 + 2 gene_id "ANKRD5"; transcript_id "NM_022096:uc002wno.3";
+chr20 hg19_knownGene exon 10030038 10030860 0.000000 + . gene_id "ANKRD5"; transcript_id "NM_022096:uc002wno.3";
+chr20 hg19_knownGene CDS 10032311 10032537 0.000000 + 1 gene_id "ANKRD5"; transcript_id "NM_022096:uc002wno.3";
+chr20 hg19_knownGene exon 10032311 10032537 0.000000 + . gene_id "ANKRD5"; transcript_id "NM_022096:uc002wno.3";
+chr20 hg19_knownGene CDS 10033760 10033923 0.000000 + 2 gene_id "ANKRD5"; transcript_id "NM_022096:uc002wno.3";
+chr20 hg19_knownGene exon 10033760 10033923 0.000000 + . gene_id "ANKRD5"; transcript_id "NM_022096:uc002wno.3";
+chr20 hg19_knownGene CDS 10035110 10035247 0.000000 + 0 gene_id "ANKRD5"; transcript_id "NM_022096:uc002wno.3";
+chr20 hg19_knownGene exon 10035110 10035247 0.000000 + . gene_id "ANKRD5"; transcript_id "NM_022096:uc002wno.3";
+chr20 hg19_knownGene CDS 10036150 10036305 0.000000 + 0 gene_id "ANKRD5"; transcript_id "NM_022096:uc002wno.3";
+chr20 hg19_knownGene exon 10036150 10037407 0.000000 + . gene_id "ANKRD5"; transcript_id "NM_022096:uc002wno.3";
+chr20 hg19_knownGene exon 10015697 10015981 0.000000 + . gene_id "ANKRD5"; transcript_id "NM_198798:uc002wnp.3";
+chr20 hg19_knownGene CDS 10018950 10019295 0.000000 + 0 gene_id "ANKRD5"; transcript_id "NM_198798:uc002wnp.3";
+chr20 hg19_knownGene exon 10018906 10019295 0.000000 + . gene_id "ANKRD5"; transcript_id "NM_198798:uc002wnp.3";
+chr20 hg19_knownGene CDS 10023770 10023969 0.000000 + 2 gene_id "ANKRD5"; transcript_id "NM_198798:uc002wnp.3";
+chr20 hg19_knownGene exon 10023770 10023969 0.000000 + . gene_id "ANKRD5"; transcript_id "NM_198798:uc002wnp.3";
+chr20 hg19_knownGene CDS 10025042 10025191 0.000000 + 0 gene_id "ANKRD5"; transcript_id "NM_198798:uc002wnp.3";
+chr20 hg19_knownGene exon 10025042 10025191 0.000000 + . gene_id "ANKRD5"; transcript_id "NM_198798:uc002wnp.3";
+chr20 hg19_knownGene CDS 10026222 10026345 0.000000 + 0 gene_id "ANKRD5"; transcript_id "NM_198798:uc002wnp.3";
+chr20 hg19_knownGene exon 10026222 10026345 0.000000 + . gene_id "ANKRD5"; transcript_id "NM_198798:uc002wnp.3";
+chr20 hg19_knownGene CDS 10030038 10030860 0.000000 + 2 gene_id "ANKRD5"; transcript_id "NM_198798:uc002wnp.3";
+chr20 hg19_knownGene exon 10030038 10030860 0.000000 + . gene_id "ANKRD5"; transcript_id "NM_198798:uc002wnp.3";
+chr20 hg19_knownGene CDS 10032311 10032537 0.000000 + 1 gene_id "ANKRD5"; transcript_id "NM_198798:uc002wnp.3";
+chr20 hg19_knownGene exon 10032311 10032537 0.000000 + . gene_id "ANKRD5"; transcript_id "NM_198798:uc002wnp.3";
+chr20 hg19_knownGene CDS 10033760 10033923 0.000000 + 2 gene_id "ANKRD5"; transcript_id "NM_198798:uc002wnp.3";
+chr20 hg19_knownGene exon 10033760 10033923 0.000000 + . gene_id "ANKRD5"; transcript_id "NM_198798:uc002wnp.3";
+chr20 hg19_knownGene CDS 10035110 10035247 0.000000 + 0 gene_id "ANKRD5"; transcript_id "NM_198798:uc002wnp.3";
+chr20 hg19_knownGene exon 10035110 10035247 0.000000 + . gene_id "ANKRD5"; transcript_id "NM_198798:uc002wnp.3";
+chr20 hg19_knownGene CDS 10036150 10036305 0.000000 + 0 gene_id "ANKRD5"; transcript_id "NM_198798:uc002wnp.3";
+chr20 hg19_knownGene exon 10036150 10037407 0.000000 + . gene_id "ANKRD5"; transcript_id "NM_198798:uc002wnp.3";
+chr20 hg19_knownGene exon 10015697 10015981 0.000000 + . gene_id "ANKRD5"; transcript_id "BC028189:uc010gbz.3";
+chr20 hg19_knownGene exon 10018906 10019295 0.000000 + . gene_id "ANKRD5"; transcript_id "BC028189:uc010gbz.3";
+chr20 hg19_knownGene exon 10021273 10021318 0.000000 + . gene_id "ANKRD5"; transcript_id "BC028189:uc010gbz.3";
+chr20 hg19_knownGene exon 10023770 10023969 0.000000 + . gene_id "ANKRD5"; transcript_id "BC028189:uc010gbz.3";
+chr20 hg19_knownGene CDS 10025063 10025191 0.000000 + 0 gene_id "ANKRD5"; transcript_id "BC028189:uc010gbz.3";
+chr20 hg19_knownGene exon 10025042 10025191 0.000000 + . gene_id "ANKRD5"; transcript_id "BC028189:uc010gbz.3";
+chr20 hg19_knownGene CDS 10026222 10026345 0.000000 + 0 gene_id "ANKRD5"; transcript_id "BC028189:uc010gbz.3";
+chr20 hg19_knownGene exon 10026222 10026345 0.000000 + . gene_id "ANKRD5"; transcript_id "BC028189:uc010gbz.3";
+chr20 hg19_knownGene CDS 10030038 10030860 0.000000 + 2 gene_id "ANKRD5"; transcript_id "BC028189:uc010gbz.3";
+chr20 hg19_knownGene exon 10030038 10030860 0.000000 + . gene_id "ANKRD5"; transcript_id "BC028189:uc010gbz.3";
+chr20 hg19_knownGene CDS 10032311 10032537 0.000000 + 1 gene_id "ANKRD5"; transcript_id "BC028189:uc010gbz.3";
+chr20 hg19_knownGene exon 10032311 10032537 0.000000 + . gene_id "ANKRD5"; transcript_id "BC028189:uc010gbz.3";
+chr20 hg19_knownGene CDS 10033760 10033923 0.000000 + 2 gene_id "ANKRD5"; transcript_id "BC028189:uc010gbz.3";
+chr20 hg19_knownGene exon 10033760 10033923 0.000000 + . gene_id "ANKRD5"; transcript_id "BC028189:uc010gbz.3";
+chr20 hg19_knownGene CDS 10035110 10035247 0.000000 + 0 gene_id "ANKRD5"; transcript_id "BC028189:uc010gbz.3";
+chr20 hg19_knownGene exon 10035110 10035247 0.000000 + . gene_id "ANKRD5"; transcript_id "BC028189:uc010gbz.3";
+chr20 hg19_knownGene CDS 10036150 10036305 0.000000 + 0 gene_id "ANKRD5"; transcript_id "BC028189:uc010gbz.3";
+chr20 hg19_knownGene exon 10036150 10037407 0.000000 + . gene_id "ANKRD5"; transcript_id "BC028189:uc010gbz.3";
+chr20 hg19_knownGene exon 10004460 10006814 0.000000 - . gene_id "LOC100131208"; transcript_id "NR_040710:uc002wnn.2";
+chr20 hg19_knownGene exon 10007192 10007296 0.000000 - . gene_id "LOC100131208"; transcript_id "NR_040710:uc002wnn.2";
+chr20 hg19_knownGene exon 10084934 10085042 0.000000 - . gene_id "LOC100131208"; transcript_id "NR_040710:uc002wnn.2";
+chr20 hg19_knownGene exon 10177466 10177585 0.000000 - . gene_id "LOC100131208"; transcript_id "NR_040710:uc002wnn.2";
+chr20 hg19_knownGene exon 10199885 10200154 0.000000 - . gene_id "LOC100131208"; transcript_id "NR_040710:uc002wnn.2";
+chr20 hg19_knownGene exon 10199477 10199625 0.000000 + . gene_id "SNAP25"; transcript_id "NM_130811:uc002wnq.2";
+chr20 hg19_knownGene CDS 10256140 10256211 0.000000 + 0 gene_id "SNAP25"; transcript_id "NM_130811:uc002wnq.2";
+chr20 hg19_knownGene exon 10256077 10256211 0.000000 + . gene_id "SNAP25"; transcript_id "NM_130811:uc002wnq.2";
+chr20 hg19_knownGene CDS 10258333 10258374 0.000000 + 0 gene_id "SNAP25"; transcript_id "NM_130811:uc002wnq.2";
+chr20 hg19_knownGene exon 10258333 10258374 0.000000 + . gene_id "SNAP25"; transcript_id "NM_130811:uc002wnq.2";
+chr20 hg19_knownGene CDS 10265372 10265420 0.000000 + 0 gene_id "SNAP25"; transcript_id "NM_130811:uc002wnq.2";
+chr20 hg19_knownGene exon 10265372 10265420 0.000000 + . gene_id "SNAP25"; transcript_id "NM_130811:uc002wnq.2";
+chr20 hg19_knownGene CDS 10273809 10273926 0.000000 + 2 gene_id "SNAP25"; transcript_id "NM_130811:uc002wnq.2";
+chr20 hg19_knownGene exon 10273809 10273926 0.000000 + . gene_id "SNAP25"; transcript_id "NM_130811:uc002wnq.2";
+chr20 hg19_knownGene CDS 10277573 10277698 0.000000 + 1 gene_id "SNAP25"; transcript_id "NM_130811:uc002wnq.2";
+chr20 hg19_knownGene exon 10277573 10277698 0.000000 + . gene_id "SNAP25"; transcript_id "NM_130811:uc002wnq.2";
+chr20 hg19_knownGene CDS 10279916 10280060 0.000000 + 1 gene_id "SNAP25"; transcript_id "NM_130811:uc002wnq.2";
+chr20 hg19_knownGene exon 10279916 10280060 0.000000 + . gene_id "SNAP25"; transcript_id "NM_130811:uc002wnq.2";
+chr20 hg19_knownGene CDS 10286777 10286842 0.000000 + 0 gene_id "SNAP25"; transcript_id "NM_130811:uc002wnq.2";
+chr20 hg19_knownGene exon 10286777 10288066 0.000000 + . gene_id "SNAP25"; transcript_id "NM_130811:uc002wnq.2";
+chr20 hg19_knownGene exon 10199477 10199625 0.000000 + . gene_id "SNAP25"; transcript_id "NM_003081:uc002wnr.2";
+chr20 hg19_knownGene CDS 10256140 10256211 0.000000 + 0 gene_id "SNAP25"; transcript_id "NM_003081:uc002wnr.2";
+chr20 hg19_knownGene exon 10256077 10256211 0.000000 + . gene_id "SNAP25"; transcript_id "NM_003081:uc002wnr.2";
+chr20 hg19_knownGene CDS 10258333 10258374 0.000000 + 0 gene_id "SNAP25"; transcript_id "NM_003081:uc002wnr.2";
+chr20 hg19_knownGene exon 10258333 10258374 0.000000 + . gene_id "SNAP25"; transcript_id "NM_003081:uc002wnr.2";
+chr20 hg19_knownGene CDS 10265372 10265420 0.000000 + 0 gene_id "SNAP25"; transcript_id "NM_003081:uc002wnr.2";
+chr20 hg19_knownGene exon 10265372 10265420 0.000000 + . gene_id "SNAP25"; transcript_id "NM_003081:uc002wnr.2";
+chr20 hg19_knownGene CDS 10273530 10273647 0.000000 + 2 gene_id "SNAP25"; transcript_id "NM_003081:uc002wnr.2";
+chr20 hg19_knownGene exon 10273530 10273647 0.000000 + . gene_id "SNAP25"; transcript_id "NM_003081:uc002wnr.2";
+chr20 hg19_knownGene CDS 10277573 10277698 0.000000 + 1 gene_id "SNAP25"; transcript_id "NM_003081:uc002wnr.2";
+chr20 hg19_knownGene exon 10277573 10277698 0.000000 + . gene_id "SNAP25"; transcript_id "NM_003081:uc002wnr.2";
+chr20 hg19_knownGene CDS 10279916 10280060 0.000000 + 1 gene_id "SNAP25"; transcript_id "NM_003081:uc002wnr.2";
+chr20 hg19_knownGene exon 10279916 10280060 0.000000 + . gene_id "SNAP25"; transcript_id "NM_003081:uc002wnr.2";
+chr20 hg19_knownGene CDS 10286777 10286842 0.000000 + 0 gene_id "SNAP25"; transcript_id "NM_003081:uc002wnr.2";
+chr20 hg19_knownGene exon 10286777 10288066 0.000000 + . gene_id "SNAP25"; transcript_id "NM_003081:uc002wnr.2";
+chr20 hg19_knownGene exon 10199477 10199625 0.000000 + . gene_id "SNAP25"; transcript_id "AK094560:uc002wns.2";
+chr20 hg19_knownGene exon 10256077 10256211 0.000000 + . gene_id "SNAP25"; transcript_id "AK094560:uc002wns.2";
+chr20 hg19_knownGene exon 10258333 10258374 0.000000 + . gene_id "SNAP25"; transcript_id "AK094560:uc002wns.2";
+chr20 hg19_knownGene exon 10265372 10265420 0.000000 + . gene_id "SNAP25"; transcript_id "AK094560:uc002wns.2";
+chr20 hg19_knownGene exon 10273530 10273647 0.000000 + . gene_id "SNAP25"; transcript_id "AK094560:uc002wns.2";
+chr20 hg19_knownGene CDS 10273835 10273926 0.000000 + 0 gene_id "SNAP25"; transcript_id "AK094560:uc002wns.2";
+chr20 hg19_knownGene exon 10273809 10273926 0.000000 + . gene_id "SNAP25"; transcript_id "AK094560:uc002wns.2";
+chr20 hg19_knownGene CDS 10277573 10277698 0.000000 + 1 gene_id "SNAP25"; transcript_id "AK094560:uc002wns.2";
+chr20 hg19_knownGene exon 10277573 10277698 0.000000 + . gene_id "SNAP25"; transcript_id "AK094560:uc002wns.2";
+chr20 hg19_knownGene CDS 10279916 10280060 0.000000 + 1 gene_id "SNAP25"; transcript_id "AK094560:uc002wns.2";
+chr20 hg19_knownGene exon 10279916 10280060 0.000000 + . gene_id "SNAP25"; transcript_id "AK094560:uc002wns.2";
+chr20 hg19_knownGene CDS 10286777 10286842 0.000000 + 0 gene_id "SNAP25"; transcript_id "AK094560:uc002wns.2";
+chr20 hg19_knownGene exon 10286777 10288066 0.000000 + . gene_id "SNAP25"; transcript_id "AK094560:uc002wns.2";
+chr20 hg19_knownGene exon 10199477 10199625 0.000000 + . gene_id "SNAP25"; transcript_id "AK289647:uc010gca.2";
+chr20 hg19_knownGene exon 10207326 10207428 0.000000 + . gene_id "SNAP25"; transcript_id "AK289647:uc010gca.2";
+chr20 hg19_knownGene exon 10207935 10208086 0.000000 + . gene_id "SNAP25"; transcript_id "AK289647:uc010gca.2";
+chr20 hg19_knownGene CDS 10256140 10256211 0.000000 + 0 gene_id "SNAP25"; transcript_id "AK289647:uc010gca.2";
+chr20 hg19_knownGene exon 10256077 10256211 0.000000 + . gene_id "SNAP25"; transcript_id "AK289647:uc010gca.2";
+chr20 hg19_knownGene CDS 10258333 10258374 0.000000 + 0 gene_id "SNAP25"; transcript_id "AK289647:uc010gca.2";
+chr20 hg19_knownGene exon 10258333 10258374 0.000000 + . gene_id "SNAP25"; transcript_id "AK289647:uc010gca.2";
+chr20 hg19_knownGene CDS 10265372 10265420 0.000000 + 0 gene_id "SNAP25"; transcript_id "AK289647:uc010gca.2";
+chr20 hg19_knownGene exon 10265372 10265420 0.000000 + . gene_id "SNAP25"; transcript_id "AK289647:uc010gca.2";
+chr20 hg19_knownGene CDS 10273530 10273647 0.000000 + 2 gene_id "SNAP25"; transcript_id "AK289647:uc010gca.2";
+chr20 hg19_knownGene exon 10273530 10273647 0.000000 + . gene_id "SNAP25"; transcript_id "AK289647:uc010gca.2";
+chr20 hg19_knownGene CDS 10277573 10277698 0.000000 + 1 gene_id "SNAP25"; transcript_id "AK289647:uc010gca.2";
+chr20 hg19_knownGene exon 10277573 10277698 0.000000 + . gene_id "SNAP25"; transcript_id "AK289647:uc010gca.2";
+chr20 hg19_knownGene CDS 10279916 10280060 0.000000 + 1 gene_id "SNAP25"; transcript_id "AK289647:uc010gca.2";
+chr20 hg19_knownGene exon 10279916 10280060 0.000000 + . gene_id "SNAP25"; transcript_id "AK289647:uc010gca.2";
+chr20 hg19_knownGene CDS 10286777 10286842 0.000000 + 0 gene_id "SNAP25"; transcript_id "AK289647:uc010gca.2";
+chr20 hg19_knownGene exon 10286777 10288066 0.000000 + . gene_id "SNAP25"; transcript_id "AK289647:uc010gca.2";
+chr20 hg19_knownGene CDS 10385898 10386335 0.000000 - 0 gene_id "MKKS"; transcript_id "NM_018848:uc002wnt.1";
+chr20 hg19_knownGene exon 10385833 10386335 0.000000 - . gene_id "MKKS"; transcript_id "NM_018848:uc002wnt.1";
+chr20 hg19_knownGene CDS 10388264 10388374 0.000000 - 0 gene_id "MKKS"; transcript_id "NM_018848:uc002wnt.1";
+chr20 hg19_knownGene exon 10388264 10388374 0.000000 - . gene_id "MKKS"; transcript_id "NM_018848:uc002wnt.1";
+chr20 hg19_knownGene CDS 10389276 10389451 0.000000 - 2 gene_id "MKKS"; transcript_id "NM_018848:uc002wnt.1";
+chr20 hg19_knownGene exon 10389276 10389451 0.000000 - . gene_id "MKKS"; transcript_id "NM_018848:uc002wnt.1";
+chr20 hg19_knownGene CDS 10393178 10394162 0.000000 - 0 gene_id "MKKS"; transcript_id "NM_018848:uc002wnt.1";
+chr20 hg19_knownGene exon 10393178 10394579 0.000000 - . gene_id "MKKS"; transcript_id "NM_018848:uc002wnt.1";
+chr20 hg19_knownGene exon 10401176 10401406 0.000000 - . gene_id "MKKS"; transcript_id "NM_018848:uc002wnt.1";
+chr20 hg19_knownGene exon 10412332 10412570 0.000000 - . gene_id "MKKS"; transcript_id "NM_018848:uc002wnt.1";
+chr20 hg19_knownGene CDS 10385898 10386335 0.000000 - 0 gene_id "MKKS"; transcript_id "NM_170784:uc002wnu.1";
+chr20 hg19_knownGene exon 10385833 10386335 0.000000 - . gene_id "MKKS"; transcript_id "NM_170784:uc002wnu.1";
+chr20 hg19_knownGene CDS 10388264 10388374 0.000000 - 0 gene_id "MKKS"; transcript_id "NM_170784:uc002wnu.1";
+chr20 hg19_knownGene exon 10388264 10388374 0.000000 - . gene_id "MKKS"; transcript_id "NM_170784:uc002wnu.1";
+chr20 hg19_knownGene CDS 10389276 10389451 0.000000 - 2 gene_id "MKKS"; transcript_id "NM_170784:uc002wnu.1";
+chr20 hg19_knownGene exon 10389276 10389451 0.000000 - . gene_id "MKKS"; transcript_id "NM_170784:uc002wnu.1";
+chr20 hg19_knownGene CDS 10393178 10394162 0.000000 - 0 gene_id "MKKS"; transcript_id "NM_170784:uc002wnu.1";
+chr20 hg19_knownGene exon 10393178 10394579 0.000000 - . gene_id "MKKS"; transcript_id "NM_170784:uc002wnu.1";
+chr20 hg19_knownGene exon 10401176 10401406 0.000000 - . gene_id "MKKS"; transcript_id "NM_170784:uc002wnu.1";
+chr20 hg19_knownGene exon 10414756 10414866 0.000000 - . gene_id "MKKS"; transcript_id "NM_170784:uc002wnu.1";
+chr20 hg19_knownGene exon 10385833 10386335 0.000000 - . gene_id "MKKS"; transcript_id "AK296439:uc010zrd.1";
+chr20 hg19_knownGene exon 10388264 10388374 0.000000 - . gene_id "MKKS"; transcript_id "AK296439:uc010zrd.1";
+chr20 hg19_knownGene exon 10389276 10389451 0.000000 - . gene_id "MKKS"; transcript_id "AK296439:uc010zrd.1";
+chr20 hg19_knownGene exon 10401176 10401406 0.000000 - . gene_id "MKKS"; transcript_id "AK296439:uc010zrd.1";
+chr20 hg19_knownGene exon 10414756 10414866 0.000000 - . gene_id "MKKS"; transcript_id "AK296439:uc010zrd.1";
+chr20 hg19_knownGene exon 10415951 10416101 0.000000 + . gene_id "C20orf94"; transcript_id "NM_001009608:uc010zre.2";
+chr20 hg19_knownGene CDS 10438853 10438879 0.000000 + 0 gene_id "C20orf94"; transcript_id "NM_001009608:uc010zre.2";
+chr20 hg19_knownGene exon 10438824 10438879 0.000000 + . gene_id "C20orf94"; transcript_id "NM_001009608:uc010zre.2";
+chr20 hg19_knownGene CDS 10536879 10536968 0.000000 + 0 gene_id "C20orf94"; transcript_id "NM_001009608:uc010zre.2";
+chr20 hg19_knownGene exon 10536879 10536968 0.000000 + . gene_id "C20orf94"; transcript_id "NM_001009608:uc010zre.2";
+chr20 hg19_knownGene CDS 10541348 10541468 0.000000 + 0 gene_id "C20orf94"; transcript_id "NM_001009608:uc010zre.2";
+chr20 hg19_knownGene exon 10541348 10541468 0.000000 + . gene_id "C20orf94"; transcript_id "NM_001009608:uc010zre.2";
+chr20 hg19_knownGene CDS 10579323 10579400 0.000000 + 2 gene_id "C20orf94"; transcript_id "NM_001009608:uc010zre.2";
+chr20 hg19_knownGene exon 10579323 10579400 0.000000 + . gene_id "C20orf94"; transcript_id "NM_001009608:uc010zre.2";
+chr20 hg19_knownGene CDS 10582379 10582467 0.000000 + 2 gene_id "C20orf94"; transcript_id "NM_001009608:uc010zre.2";
+chr20 hg19_knownGene exon 10582379 10582467 0.000000 + . gene_id "C20orf94"; transcript_id "NM_001009608:uc010zre.2";
+chr20 hg19_knownGene CDS 10601962 10602062 0.000000 + 0 gene_id "C20orf94"; transcript_id "NM_001009608:uc010zre.2";
+chr20 hg19_knownGene exon 10601962 10602062 0.000000 + . gene_id "C20orf94"; transcript_id "NM_001009608:uc010zre.2";
+chr20 hg19_knownGene CDS 10603307 10604024 0.000000 + 1 gene_id "C20orf94"; transcript_id "NM_001009608:uc010zre.2";
+chr20 hg19_knownGene exon 10603307 10604027 0.000000 + . gene_id "C20orf94"; transcript_id "NM_001009608:uc010zre.2";
+chr20 hg19_knownGene CDS 10622111 10622341 0.000000 - 0 gene_id "JAG1"; transcript_id "BC111753:uc010gcd.1";
+chr20 hg19_knownGene exon 10622108 10622341 0.000000 - . gene_id "JAG1"; transcript_id "BC111753:uc010gcd.1";
+chr20 hg19_knownGene CDS 10622431 10622540 0.000000 - 2 gene_id "JAG1"; transcript_id "BC111753:uc010gcd.1";
+chr20 hg19_knownGene exon 10622431 10622540 0.000000 - . gene_id "JAG1"; transcript_id "BC111753:uc010gcd.1";
+chr20 hg19_knownGene CDS 10623136 10623249 0.000000 - 2 gene_id "JAG1"; transcript_id "BC111753:uc010gcd.1";
+chr20 hg19_knownGene exon 10623136 10623249 0.000000 - . gene_id "JAG1"; transcript_id "BC111753:uc010gcd.1";
+chr20 hg19_knownGene CDS 10624426 10624511 0.000000 - 1 gene_id "JAG1"; transcript_id "BC111753:uc010gcd.1";
+chr20 hg19_knownGene exon 10624426 10624511 0.000000 - . gene_id "JAG1"; transcript_id "BC111753:uc010gcd.1";
+chr20 hg19_knownGene CDS 10625005 10625032 0.000000 - 2 gene_id "JAG1"; transcript_id "BC111753:uc010gcd.1";
+chr20 hg19_knownGene exon 10625005 10625032 0.000000 - . gene_id "JAG1"; transcript_id "BC111753:uc010gcd.1";
+chr20 hg19_knownGene CDS 10625511 10625627 0.000000 - 2 gene_id "JAG1"; transcript_id "BC111753:uc010gcd.1";
+chr20 hg19_knownGene exon 10625511 10625627 0.000000 - . gene_id "JAG1"; transcript_id "BC111753:uc010gcd.1";
+chr20 hg19_knownGene CDS 10625791 10625904 0.000000 - 2 gene_id "JAG1"; transcript_id "BC111753:uc010gcd.1";
+chr20 hg19_knownGene exon 10625791 10625904 0.000000 - . gene_id "JAG1"; transcript_id "BC111753:uc010gcd.1";
+chr20 hg19_knownGene CDS 10626004 10626117 0.000000 - 2 gene_id "JAG1"; transcript_id "BC111753:uc010gcd.1";
+chr20 hg19_knownGene exon 10626004 10626117 0.000000 - . gene_id "JAG1"; transcript_id "BC111753:uc010gcd.1";
+chr20 hg19_knownGene CDS 10626619 10626732 0.000000 - 2 gene_id "JAG1"; transcript_id "BC111753:uc010gcd.1";
+chr20 hg19_knownGene exon 10626619 10626732 0.000000 - . gene_id "JAG1"; transcript_id "BC111753:uc010gcd.1";
+chr20 hg19_knownGene CDS 10627587 10627751 0.000000 - 2 gene_id "JAG1"; transcript_id "BC111753:uc010gcd.1";
+chr20 hg19_knownGene exon 10627587 10627751 0.000000 - . gene_id "JAG1"; transcript_id "BC111753:uc010gcd.1";
+chr20 hg19_knownGene CDS 10628608 10628758 0.000000 - 0 gene_id "JAG1"; transcript_id "BC111753:uc010gcd.1";
+chr20 hg19_knownGene exon 10628608 10628758 0.000000 - . gene_id "JAG1"; transcript_id "BC111753:uc010gcd.1";
+chr20 hg19_knownGene CDS 10629197 10629370 0.000000 - 0 gene_id "JAG1"; transcript_id "BC111753:uc010gcd.1";
+chr20 hg19_knownGene exon 10629197 10629370 0.000000 - . gene_id "JAG1"; transcript_id "BC111753:uc010gcd.1";
+chr20 hg19_knownGene CDS 10629709 10629755 0.000000 - 2 gene_id "JAG1"; transcript_id "BC111753:uc010gcd.1";
+chr20 hg19_knownGene exon 10629709 10629755 0.000000 - . gene_id "JAG1"; transcript_id "BC111753:uc010gcd.1";
+chr20 hg19_knownGene CDS 10630170 10630191 0.000000 - 0 gene_id "JAG1"; transcript_id "BC111753:uc010gcd.1";
+chr20 hg19_knownGene exon 10630170 10630283 0.000000 - . gene_id "JAG1"; transcript_id "BC111753:uc010gcd.1";
+chr20 hg19_knownGene exon 10630895 10632062 0.000000 - . gene_id "JAG1"; transcript_id "BC111753:uc010gcd.1";
+chr20 hg19_knownGene CDS 10620149 10620603 0.000000 - 2 gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene exon 10618332 10620603 0.000000 - . gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene CDS 10621431 10621581 0.000000 - 0 gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene exon 10621431 10621581 0.000000 - . gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene CDS 10621761 10621892 0.000000 - 0 gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene exon 10621761 10621892 0.000000 - . gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene CDS 10622108 10622341 0.000000 - 0 gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene exon 10622108 10622341 0.000000 - . gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene CDS 10622431 10622540 0.000000 - 2 gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene exon 10622431 10622540 0.000000 - . gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene CDS 10623136 10623249 0.000000 - 2 gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene exon 10623136 10623249 0.000000 - . gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene CDS 10624426 10624511 0.000000 - 1 gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene exon 10624426 10624511 0.000000 - . gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene CDS 10625005 10625032 0.000000 - 2 gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene exon 10625005 10625032 0.000000 - . gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene CDS 10625511 10625627 0.000000 - 2 gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene exon 10625511 10625627 0.000000 - . gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene CDS 10625791 10625904 0.000000 - 2 gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene exon 10625791 10625904 0.000000 - . gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene CDS 10626004 10626117 0.000000 - 2 gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene exon 10626004 10626117 0.000000 - . gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene CDS 10626619 10626732 0.000000 - 2 gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene exon 10626619 10626732 0.000000 - . gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene CDS 10627587 10627751 0.000000 - 2 gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene exon 10627587 10627751 0.000000 - . gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene CDS 10628608 10628758 0.000000 - 0 gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene exon 10628608 10628758 0.000000 - . gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene CDS 10629197 10629370 0.000000 - 0 gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene exon 10629197 10629370 0.000000 - . gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene CDS 10629709 10629755 0.000000 - 2 gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene exon 10629709 10629755 0.000000 - . gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene CDS 10630170 10630283 0.000000 - 2 gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene exon 10630170 10630283 0.000000 - . gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene CDS 10630895 10631008 0.000000 - 2 gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene exon 10630895 10631008 0.000000 - . gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene CDS 10632229 10632342 0.000000 - 2 gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene exon 10632229 10632342 0.000000 - . gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene CDS 10632779 10632898 0.000000 - 2 gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene exon 10632779 10632898 0.000000 - . gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene CDS 10633116 10633246 0.000000 - 1 gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene exon 10633116 10633246 0.000000 - . gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene CDS 10637046 10637106 0.000000 - 2 gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene exon 10637046 10637106 0.000000 - . gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene CDS 10639116 10639370 0.000000 - 2 gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene exon 10639116 10639370 0.000000 - . gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene CDS 10644611 10644662 0.000000 - 0 gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene exon 10644611 10644662 0.000000 - . gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene CDS 10653349 10653654 0.000000 - 0 gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene exon 10653349 10653654 0.000000 - . gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene CDS 10654098 10654178 0.000000 - 0 gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene exon 10654098 10654694 0.000000 - . gene_id "JAG1"; transcript_id "NM_000214:uc002wnw.2";
+chr20 hg19_knownGene exon 11036257 11036493 0.000000 - . gene_id "7SK"; transcript_id ":uc021wan.1";
+chr20 hg19_knownGene exon 11247307 11249530 0.000000 - . gene_id "LOC339593"; transcript_id "NR_038972:uc002wnx.3";
+chr20 hg19_knownGene exon 11253982 11254031 0.000000 - . gene_id "LOC339593"; transcript_id "NR_038972:uc002wnx.3";
+chr20 hg19_knownGene exon 11871477 11871602 0.000000 + . gene_id "BTBD3"; transcript_id "NM_181443:uc002wny.3";
+chr20 hg19_knownGene CDS 11899107 11899249 0.000000 + 0 gene_id "BTBD3"; transcript_id "NM_181443:uc002wny.3";
+chr20 hg19_knownGene exon 11898982 11899249 0.000000 + . gene_id "BTBD3"; transcript_id "NM_181443:uc002wny.3";
+chr20 hg19_knownGene CDS 11899734 11899824 0.000000 + 1 gene_id "BTBD3"; transcript_id "NM_181443:uc002wny.3";
+chr20 hg19_knownGene exon 11899734 11899824 0.000000 + . gene_id "BTBD3"; transcript_id "NM_181443:uc002wny.3";
+chr20 hg19_knownGene CDS 11900366 11900484 0.000000 + 0 gene_id "BTBD3"; transcript_id "NM_181443:uc002wny.3";
+chr20 hg19_knownGene exon 11900366 11900484 0.000000 + . gene_id "BTBD3"; transcript_id "NM_181443:uc002wny.3";
+chr20 hg19_knownGene CDS 11903282 11904311 0.000000 + 1 gene_id "BTBD3"; transcript_id "NM_181443:uc002wny.3";
+chr20 hg19_knownGene exon 11903282 11907243 0.000000 + . gene_id "BTBD3"; transcript_id "NM_181443:uc002wny.3";
+chr20 hg19_knownGene exon 11898537 11898659 0.000000 + . gene_id "BTBD3"; transcript_id "BC109316:uc002woa.3";
+chr20 hg19_knownGene CDS 11899107 11899249 0.000000 + 0 gene_id "BTBD3"; transcript_id "BC109316:uc002woa.3";
+chr20 hg19_knownGene exon 11898982 11899249 0.000000 + . gene_id "BTBD3"; transcript_id "BC109316:uc002woa.3";
+chr20 hg19_knownGene CDS 11899734 11899824 0.000000 + 1 gene_id "BTBD3"; transcript_id "BC109316:uc002woa.3";
+chr20 hg19_knownGene exon 11899734 11899824 0.000000 + . gene_id "BTBD3"; transcript_id "BC109316:uc002woa.3";
+chr20 hg19_knownGene CDS 11900366 11900484 0.000000 + 0 gene_id "BTBD3"; transcript_id "BC109316:uc002woa.3";
+chr20 hg19_knownGene exon 11900366 11900484 0.000000 + . gene_id "BTBD3"; transcript_id "BC109316:uc002woa.3";
+chr20 hg19_knownGene CDS 11903282 11904311 0.000000 + 1 gene_id "BTBD3"; transcript_id "BC109316:uc002woa.3";
+chr20 hg19_knownGene exon 11903282 11907243 0.000000 + . gene_id "BTBD3"; transcript_id "BC109316:uc002woa.3";
+chr20 hg19_knownGene exon 11898537 11898659 0.000000 + . gene_id "BTBD3"; transcript_id "AK316256:uc010zrf.2";
+chr20 hg19_knownGene exon 11898982 11899249 0.000000 + . gene_id "BTBD3"; transcript_id "AK316256:uc010zrf.2";
+chr20 hg19_knownGene CDS 11900402 11900484 0.000000 + 0 gene_id "BTBD3"; transcript_id "AK316256:uc010zrf.2";
+chr20 hg19_knownGene exon 11900366 11900484 0.000000 + . gene_id "BTBD3"; transcript_id "AK316256:uc010zrf.2";
+chr20 hg19_knownGene CDS 11903282 11904311 0.000000 + 1 gene_id "BTBD3"; transcript_id "AK316256:uc010zrf.2";
+chr20 hg19_knownGene exon 11903282 11907243 0.000000 + . gene_id "BTBD3"; transcript_id "AK316256:uc010zrf.2";
+chr20 hg19_knownGene CDS 11898924 11899249 0.000000 + 0 gene_id "BTBD3"; transcript_id "NM_014962:uc002wnz.3";
+chr20 hg19_knownGene exon 11898565 11899249 0.000000 + . gene_id "BTBD3"; transcript_id "NM_014962:uc002wnz.3";
+chr20 hg19_knownGene CDS 11899734 11899824 0.000000 + 1 gene_id "BTBD3"; transcript_id "NM_014962:uc002wnz.3";
+chr20 hg19_knownGene exon 11899734 11899824 0.000000 + . gene_id "BTBD3"; transcript_id "NM_014962:uc002wnz.3";
+chr20 hg19_knownGene CDS 11900366 11900484 0.000000 + 0 gene_id "BTBD3"; transcript_id "NM_014962:uc002wnz.3";
+chr20 hg19_knownGene exon 11900366 11900484 0.000000 + . gene_id "BTBD3"; transcript_id "NM_014962:uc002wnz.3";
+chr20 hg19_knownGene CDS 11903282 11904311 0.000000 + 1 gene_id "BTBD3"; transcript_id "NM_014962:uc002wnz.3";
+chr20 hg19_knownGene exon 11903282 11907243 0.000000 + . gene_id "BTBD3"; transcript_id "NM_014962:uc002wnz.3";
+chr20 hg19_knownGene exon 11899925 11900258 0.000000 + . gene_id "BTBD3"; transcript_id "AK316519:uc010zrg.2";
+chr20 hg19_knownGene CDS 11900402 11900484 0.000000 + 0 gene_id "BTBD3"; transcript_id "AK316519:uc010zrg.2";
+chr20 hg19_knownGene exon 11900366 11900484 0.000000 + . gene_id "BTBD3"; transcript_id "AK316519:uc010zrg.2";
+chr20 hg19_knownGene CDS 11903282 11904311 0.000000 + 1 gene_id "BTBD3"; transcript_id "AK316519:uc010zrg.2";
+chr20 hg19_knownGene exon 11903282 11907243 0.000000 + . gene_id "BTBD3"; transcript_id "AK316519:uc010zrg.2";
+chr20 hg19_knownGene exon 11900018 11900071 0.000000 + . gene_id "BTBD3"; transcript_id "AK296364:uc010zrh.2";
+chr20 hg19_knownGene CDS 11900402 11900484 0.000000 + 0 gene_id "BTBD3"; transcript_id "AK296364:uc010zrh.2";
+chr20 hg19_knownGene exon 11900366 11900484 0.000000 + . gene_id "BTBD3"; transcript_id "AK296364:uc010zrh.2";
+chr20 hg19_knownGene CDS 11903282 11904311 0.000000 + 1 gene_id "BTBD3"; transcript_id "AK296364:uc010zrh.2";
+chr20 hg19_knownGene exon 11903282 11907243 0.000000 + . gene_id "BTBD3"; transcript_id "AK296364:uc010zrh.2";
+chr20 hg19_knownGene CDS 12989916 12990032 0.000000 + 0 gene_id "SPTLC3"; transcript_id "CU676611:uc002woc.3";
+chr20 hg19_knownGene exon 12989627 12990032 0.000000 + . gene_id "SPTLC3"; transcript_id "CU676611:uc002woc.3";
+chr20 hg19_knownGene CDS 13029593 13030000 0.000000 + 0 gene_id "SPTLC3"; transcript_id "CU676611:uc002woc.3";
+chr20 hg19_knownGene exon 13029593 13030816 0.000000 + . gene_id "SPTLC3"; transcript_id "CU676611:uc002woc.3";
+chr20 hg19_knownGene CDS 12989916 12990032 0.000000 + 0 gene_id "SPTLC3"; transcript_id "NM_018327:uc002wod.1";
+chr20 hg19_knownGene exon 12989627 12990032 0.000000 + . gene_id "SPTLC3"; transcript_id "NM_018327:uc002wod.1";
+chr20 hg19_knownGene CDS 13029593 13029778 0.000000 + 0 gene_id "SPTLC3"; transcript_id "NM_018327:uc002wod.1";
+chr20 hg19_knownGene exon 13029593 13029778 0.000000 + . gene_id "SPTLC3"; transcript_id "NM_018327:uc002wod.1";
+chr20 hg19_knownGene CDS 13052904 13053058 0.000000 + 0 gene_id "SPTLC3"; transcript_id "NM_018327:uc002wod.1";
+chr20 hg19_knownGene exon 13052904 13053058 0.000000 + . gene_id "SPTLC3"; transcript_id "NM_018327:uc002wod.1";
+chr20 hg19_knownGene CDS 13054997 13055145 0.000000 + 1 gene_id "SPTLC3"; transcript_id "NM_018327:uc002wod.1";
+chr20 hg19_knownGene exon 13054997 13055145 0.000000 + . gene_id "SPTLC3"; transcript_id "NM_018327:uc002wod.1";
+chr20 hg19_knownGene CDS 13071731 13071855 0.000000 + 2 gene_id "SPTLC3"; transcript_id "NM_018327:uc002wod.1";
+chr20 hg19_knownGene exon 13071731 13071855 0.000000 + . gene_id "SPTLC3"; transcript_id "NM_018327:uc002wod.1";
+chr20 hg19_knownGene CDS 13074131 13074224 0.000000 + 0 gene_id "SPTLC3"; transcript_id "NM_018327:uc002wod.1";
+chr20 hg19_knownGene exon 13074131 13074224 0.000000 + . gene_id "SPTLC3"; transcript_id "NM_018327:uc002wod.1";
+chr20 hg19_knownGene CDS 13090759 13090864 0.000000 + 2 gene_id "SPTLC3"; transcript_id "NM_018327:uc002wod.1";
+chr20 hg19_knownGene exon 13090759 13090864 0.000000 + . gene_id "SPTLC3"; transcript_id "NM_018327:uc002wod.1";
+chr20 hg19_knownGene CDS 13098153 13098372 0.000000 + 1 gene_id "SPTLC3"; transcript_id "NM_018327:uc002wod.1";
+chr20 hg19_knownGene exon 13098153 13098372 0.000000 + . gene_id "SPTLC3"; transcript_id "NM_018327:uc002wod.1";
+chr20 hg19_knownGene CDS 13107238 13107364 0.000000 + 0 gene_id "SPTLC3"; transcript_id "NM_018327:uc002wod.1";
+chr20 hg19_knownGene exon 13107238 13107364 0.000000 + . gene_id "SPTLC3"; transcript_id "NM_018327:uc002wod.1";
+chr20 hg19_knownGene CDS 13134650 13134785 0.000000 + 2 gene_id "SPTLC3"; transcript_id "NM_018327:uc002wod.1";
+chr20 hg19_knownGene exon 13134650 13134785 0.000000 + . gene_id "SPTLC3"; transcript_id "NM_018327:uc002wod.1";
+chr20 hg19_knownGene CDS 13140650 13140779 0.000000 + 1 gene_id "SPTLC3"; transcript_id "NM_018327:uc002wod.1";
+chr20 hg19_knownGene exon 13140650 13140779 0.000000 + . gene_id "SPTLC3"; transcript_id "NM_018327:uc002wod.1";
+chr20 hg19_knownGene CDS 13145401 13145511 0.000000 + 0 gene_id "SPTLC3"; transcript_id "NM_018327:uc002wod.1";
+chr20 hg19_knownGene exon 13145401 13147411 0.000000 + . gene_id "SPTLC3"; transcript_id "NM_018327:uc002wod.1";
+chr20 hg19_knownGene exon 13200350 13200970 0.000000 + . gene_id "AY927515"; transcript_id "AY927515:uc002woe.1";
+chr20 hg19_knownGene exon 13218067 13218756 0.000000 - . gene_id "LOC100505536"; transcript_id "NR_040043:uc002wof.2";
+chr20 hg19_knownGene exon 13219631 13219751 0.000000 - . gene_id "LOC100505536"; transcript_id "NR_040043:uc002wof.2";
+chr20 hg19_knownGene exon 13220100 13220334 0.000000 - . gene_id "LOC100505536"; transcript_id "NR_040043:uc002wof.2";
+chr20 hg19_knownGene CDS 13202424 13202561 0.000000 + 0 gene_id "ISM1"; transcript_id "NM_080826:uc010gce.1";
+chr20 hg19_knownGene exon 13202418 13202561 0.000000 + . gene_id "ISM1"; transcript_id "NM_080826:uc010gce.1";
+chr20 hg19_knownGene CDS 13251151 13251390 0.000000 + 0 gene_id "ISM1"; transcript_id "NM_080826:uc010gce.1";
+chr20 hg19_knownGene exon 13251151 13251390 0.000000 + . gene_id "ISM1"; transcript_id "NM_080826:uc010gce.1";
+chr20 hg19_knownGene CDS 13260281 13260545 0.000000 + 0 gene_id "ISM1"; transcript_id "NM_080826:uc010gce.1";
+chr20 hg19_knownGene exon 13260281 13260545 0.000000 + . gene_id "ISM1"; transcript_id "NM_080826:uc010gce.1";
+chr20 hg19_knownGene CDS 13269187 13269330 0.000000 + 2 gene_id "ISM1"; transcript_id "NM_080826:uc010gce.1";
+chr20 hg19_knownGene exon 13269187 13269330 0.000000 + . gene_id "ISM1"; transcript_id "NM_080826:uc010gce.1";
+chr20 hg19_knownGene CDS 13273021 13273110 0.000000 + 2 gene_id "ISM1"; transcript_id "NM_080826:uc010gce.1";
+chr20 hg19_knownGene exon 13273021 13273110 0.000000 + . gene_id "ISM1"; transcript_id "NM_080826:uc010gce.1";
+chr20 hg19_knownGene CDS 13279589 13280103 0.000000 + 2 gene_id "ISM1"; transcript_id "NM_080826:uc010gce.1";
+chr20 hg19_knownGene exon 13279589 13281297 0.000000 + . gene_id "ISM1"; transcript_id "NM_080826:uc010gce.1";
+chr20 hg19_knownGene exon 13246709 13246829 0.000000 - . gene_id "TASP1"; transcript_id "AK299940:uc010zri.1";
+chr20 hg19_knownGene exon 13296617 13296702 0.000000 - . gene_id "TASP1"; transcript_id "AK299940:uc010zri.1";
+chr20 hg19_knownGene exon 13371042 13371099 0.000000 - . gene_id "TASP1"; transcript_id "AK299940:uc010zri.1";
+chr20 hg19_knownGene exon 13398095 13398168 0.000000 - . gene_id "TASP1"; transcript_id "AK299940:uc010zri.1";
+chr20 hg19_knownGene exon 13415691 13415801 0.000000 - . gene_id "TASP1"; transcript_id "AK299940:uc010zri.1";
+chr20 hg19_knownGene exon 13463874 13463984 0.000000 - . gene_id "TASP1"; transcript_id "AK299940:uc010zri.1";
+chr20 hg19_knownGene exon 13604093 13604161 0.000000 - . gene_id "TASP1"; transcript_id "AK299940:uc010zri.1";
+chr20 hg19_knownGene exon 13605832 13605899 0.000000 - . gene_id "TASP1"; transcript_id "AK299940:uc010zri.1";
+chr20 hg19_knownGene exon 13610581 13610799 0.000000 - . gene_id "TASP1"; transcript_id "AK299940:uc010zri.1";
+chr20 hg19_knownGene exon 13619541 13619583 0.000000 - . gene_id "TASP1"; transcript_id "AK299940:uc010zri.1";
+chr20 hg19_knownGene CDS 13371010 13371099 0.000000 - 0 gene_id "TASP1"; transcript_id "NM_017714:uc002woi.3";
+chr20 hg19_knownGene exon 13370036 13371099 0.000000 - . gene_id "TASP1"; transcript_id "NM_017714:uc002woi.3";
+chr20 hg19_knownGene CDS 13398095 13398168 0.000000 - 2 gene_id "TASP1"; transcript_id "NM_017714:uc002woi.3";
+chr20 hg19_knownGene exon 13398095 13398168 0.000000 - . gene_id "TASP1"; transcript_id "NM_017714:uc002woi.3";
+chr20 hg19_knownGene CDS 13415691 13415801 0.000000 - 2 gene_id "TASP1"; transcript_id "NM_017714:uc002woi.3";
+chr20 hg19_knownGene exon 13415691 13415801 0.000000 - . gene_id "TASP1"; transcript_id "NM_017714:uc002woi.3";
+chr20 hg19_knownGene CDS 13463874 13463984 0.000000 - 2 gene_id "TASP1"; transcript_id "NM_017714:uc002woi.3";
+chr20 hg19_knownGene exon 13463874 13463984 0.000000 - . gene_id "TASP1"; transcript_id "NM_017714:uc002woi.3";
+chr20 hg19_knownGene CDS 13509080 13509158 0.000000 - 0 gene_id "TASP1"; transcript_id "NM_017714:uc002woi.3";
+chr20 hg19_knownGene exon 13509080 13509158 0.000000 - . gene_id "TASP1"; transcript_id "NM_017714:uc002woi.3";
+chr20 hg19_knownGene CDS 13514669 13514788 0.000000 - 0 gene_id "TASP1"; transcript_id "NM_017714:uc002woi.3";
+chr20 hg19_knownGene exon 13514669 13514788 0.000000 - . gene_id "TASP1"; transcript_id "NM_017714:uc002woi.3";
+chr20 hg19_knownGene CDS 13539655 13539761 0.000000 - 2 gene_id "TASP1"; transcript_id "NM_017714:uc002woi.3";
+chr20 hg19_knownGene exon 13539655 13539761 0.000000 - . gene_id "TASP1"; transcript_id "NM_017714:uc002woi.3";
+chr20 hg19_knownGene CDS 13550154 13550233 0.000000 - 1 gene_id "TASP1"; transcript_id "NM_017714:uc002woi.3";
+chr20 hg19_knownGene exon 13550154 13550233 0.000000 - . gene_id "TASP1"; transcript_id "NM_017714:uc002woi.3";
+chr20 hg19_knownGene CDS 13561544 13561628 0.000000 - 2 gene_id "TASP1"; transcript_id "NM_017714:uc002woi.3";
+chr20 hg19_knownGene exon 13561544 13561628 0.000000 - . gene_id "TASP1"; transcript_id "NM_017714:uc002woi.3";
+chr20 hg19_knownGene CDS 13567897 13568017 0.000000 - 0 gene_id "TASP1"; transcript_id "NM_017714:uc002woi.3";
+chr20 hg19_knownGene exon 13567897 13568017 0.000000 - . gene_id "TASP1"; transcript_id "NM_017714:uc002woi.3";
+chr20 hg19_knownGene CDS 13604093 13604161 0.000000 - 0 gene_id "TASP1"; transcript_id "NM_017714:uc002woi.3";
+chr20 hg19_knownGene exon 13604093 13604161 0.000000 - . gene_id "TASP1"; transcript_id "NM_017714:uc002woi.3";
+chr20 hg19_knownGene CDS 13605832 13605899 0.000000 - 2 gene_id "TASP1"; transcript_id "NM_017714:uc002woi.3";
+chr20 hg19_knownGene exon 13605832 13605899 0.000000 - . gene_id "TASP1"; transcript_id "NM_017714:uc002woi.3";
+chr20 hg19_knownGene CDS 13610581 13610725 0.000000 - 0 gene_id "TASP1"; transcript_id "NM_017714:uc002woi.3";
+chr20 hg19_knownGene exon 13610581 13610799 0.000000 - . gene_id "TASP1"; transcript_id "NM_017714:uc002woi.3";
+chr20 hg19_knownGene exon 13619541 13619583 0.000000 - . gene_id "TASP1"; transcript_id "NM_017714:uc002woi.3";
+chr20 hg19_knownGene exon 13463874 13463984 0.000000 - . gene_id "TASP1"; transcript_id "AK304488:uc010zrj.1";
+chr20 hg19_knownGene exon 13509093 13509158 0.000000 - . gene_id "TASP1"; transcript_id "AK304488:uc010zrj.1";
+chr20 hg19_knownGene exon 13514669 13514788 0.000000 - . gene_id "TASP1"; transcript_id "AK304488:uc010zrj.1";
+chr20 hg19_knownGene exon 13539655 13539761 0.000000 - . gene_id "TASP1"; transcript_id "AK304488:uc010zrj.1";
+chr20 hg19_knownGene exon 13561544 13561628 0.000000 - . gene_id "TASP1"; transcript_id "AK304488:uc010zrj.1";
+chr20 hg19_knownGene exon 13567897 13568017 0.000000 - . gene_id "TASP1"; transcript_id "AK304488:uc010zrj.1";
+chr20 hg19_knownGene exon 13597504 13597770 0.000000 - . gene_id "TASP1"; transcript_id "AK304488:uc010zrj.1";
+chr20 hg19_knownGene exon 13604093 13604161 0.000000 - . gene_id "TASP1"; transcript_id "AK304488:uc010zrj.1";
+chr20 hg19_knownGene exon 13605832 13605899 0.000000 - . gene_id "TASP1"; transcript_id "AK304488:uc010zrj.1";
+chr20 hg19_knownGene exon 13610581 13610799 0.000000 - . gene_id "TASP1"; transcript_id "AK304488:uc010zrj.1";
+chr20 hg19_knownGene exon 13619541 13619583 0.000000 - . gene_id "TASP1"; transcript_id "AK304488:uc010zrj.1";
+chr20 hg19_knownGene CDS 13597666 13597770 0.000000 - 0 gene_id "TASP1"; transcript_id "AK316311:uc010zrk.2";
+chr20 hg19_knownGene exon 13597251 13597770 0.000000 - . gene_id "TASP1"; transcript_id "AK316311:uc010zrk.2";
+chr20 hg19_knownGene CDS 13604093 13604161 0.000000 - 0 gene_id "TASP1"; transcript_id "AK316311:uc010zrk.2";
+chr20 hg19_knownGene exon 13604093 13604161 0.000000 - . gene_id "TASP1"; transcript_id "AK316311:uc010zrk.2";
+chr20 hg19_knownGene CDS 13605832 13605899 0.000000 - 2 gene_id "TASP1"; transcript_id "AK316311:uc010zrk.2";
+chr20 hg19_knownGene exon 13605832 13605899 0.000000 - . gene_id "TASP1"; transcript_id "AK316311:uc010zrk.2";
+chr20 hg19_knownGene CDS 13610581 13610725 0.000000 - 0 gene_id "TASP1"; transcript_id "AK316311:uc010zrk.2";
+chr20 hg19_knownGene exon 13610581 13610799 0.000000 - . gene_id "TASP1"; transcript_id "AK316311:uc010zrk.2";
+chr20 hg19_knownGene exon 13619541 13619583 0.000000 - . gene_id "TASP1"; transcript_id "AK316311:uc010zrk.2";
+chr20 hg19_knownGene CDS 13695524 13695814 0.000000 - 0 gene_id "ESF1"; transcript_id "NM_016649:uc002woj.3";
+chr20 hg19_knownGene exon 13694969 13695814 0.000000 - . gene_id "ESF1"; transcript_id "NM_016649:uc002woj.3";
+chr20 hg19_knownGene CDS 13698015 13698161 0.000000 - 0 gene_id "ESF1"; transcript_id "NM_016649:uc002woj.3";
+chr20 hg19_knownGene exon 13698015 13698161 0.000000 - . gene_id "ESF1"; transcript_id "NM_016649:uc002woj.3";
+chr20 hg19_knownGene CDS 13699555 13699631 0.000000 - 2 gene_id "ESF1"; transcript_id "NM_016649:uc002woj.3";
+chr20 hg19_knownGene exon 13699555 13699631 0.000000 - . gene_id "ESF1"; transcript_id "NM_016649:uc002woj.3";
+chr20 hg19_knownGene CDS 13709025 13709112 0.000000 - 0 gene_id "ESF1"; transcript_id "NM_016649:uc002woj.3";
+chr20 hg19_knownGene exon 13709025 13709112 0.000000 - . gene_id "ESF1"; transcript_id "NM_016649:uc002woj.3";
+chr20 hg19_knownGene CDS 13714368 13714489 0.000000 - 2 gene_id "ESF1"; transcript_id "NM_016649:uc002woj.3";
+chr20 hg19_knownGene exon 13714368 13714489 0.000000 - . gene_id "ESF1"; transcript_id "NM_016649:uc002woj.3";
+chr20 hg19_knownGene CDS 13740339 13740500 0.000000 - 2 gene_id "ESF1"; transcript_id "NM_016649:uc002woj.3";
+chr20 hg19_knownGene exon 13740339 13740500 0.000000 - . gene_id "ESF1"; transcript_id "NM_016649:uc002woj.3";
+chr20 hg19_knownGene CDS 13747424 13747571 0.000000 - 0 gene_id "ESF1"; transcript_id "NM_016649:uc002woj.3";
+chr20 hg19_knownGene exon 13747424 13747571 0.000000 - . gene_id "ESF1"; transcript_id "NM_016649:uc002woj.3";
+chr20 hg19_knownGene CDS 13750553 13750667 0.000000 - 1 gene_id "ESF1"; transcript_id "NM_016649:uc002woj.3";
+chr20 hg19_knownGene exon 13750553 13750667 0.000000 - . gene_id "ESF1"; transcript_id "NM_016649:uc002woj.3";
+chr20 hg19_knownGene CDS 13751977 13752129 0.000000 - 1 gene_id "ESF1"; transcript_id "NM_016649:uc002woj.3";
+chr20 hg19_knownGene exon 13751977 13752129 0.000000 - . gene_id "ESF1"; transcript_id "NM_016649:uc002woj.3";
+chr20 hg19_knownGene CDS 13753161 13753261 0.000000 - 0 gene_id "ESF1"; transcript_id "NM_016649:uc002woj.3";
+chr20 hg19_knownGene exon 13753161 13753261 0.000000 - . gene_id "ESF1"; transcript_id "NM_016649:uc002woj.3";
+chr20 hg19_knownGene CDS 13755803 13755916 0.000000 - 0 gene_id "ESF1"; transcript_id "NM_016649:uc002woj.3";
+chr20 hg19_knownGene exon 13755803 13755916 0.000000 - . gene_id "ESF1"; transcript_id "NM_016649:uc002woj.3";
+chr20 hg19_knownGene CDS 13756519 13756916 0.000000 - 2 gene_id "ESF1"; transcript_id "NM_016649:uc002woj.3";
+chr20 hg19_knownGene exon 13756519 13756916 0.000000 - . gene_id "ESF1"; transcript_id "NM_016649:uc002woj.3";
+chr20 hg19_knownGene CDS 13763150 13763786 0.000000 - 0 gene_id "ESF1"; transcript_id "NM_016649:uc002woj.3";
+chr20 hg19_knownGene exon 13763150 13763829 0.000000 - . gene_id "ESF1"; transcript_id "NM_016649:uc002woj.3";
+chr20 hg19_knownGene exon 13765468 13765532 0.000000 - . gene_id "ESF1"; transcript_id "NM_016649:uc002woj.3";
+chr20 hg19_knownGene CDS 13740343 13740500 0.000000 - 2 gene_id "ESF1"; transcript_id "AK022369:uc002wok.1";
+chr20 hg19_knownGene exon 13740339 13740500 0.000000 - . gene_id "ESF1"; transcript_id "AK022369:uc002wok.1";
+chr20 hg19_knownGene CDS 13747424 13747571 0.000000 - 0 gene_id "ESF1"; transcript_id "AK022369:uc002wok.1";
+chr20 hg19_knownGene exon 13747424 13747571 0.000000 - . gene_id "ESF1"; transcript_id "AK022369:uc002wok.1";
+chr20 hg19_knownGene CDS 13750553 13750667 0.000000 - 1 gene_id "ESF1"; transcript_id "AK022369:uc002wok.1";
+chr20 hg19_knownGene exon 13750553 13750667 0.000000 - . gene_id "ESF1"; transcript_id "AK022369:uc002wok.1";
+chr20 hg19_knownGene CDS 13751977 13752129 0.000000 - 1 gene_id "ESF1"; transcript_id "AK022369:uc002wok.1";
+chr20 hg19_knownGene exon 13751977 13752129 0.000000 - . gene_id "ESF1"; transcript_id "AK022369:uc002wok.1";
+chr20 hg19_knownGene CDS 13753161 13753261 0.000000 - 0 gene_id "ESF1"; transcript_id "AK022369:uc002wok.1";
+chr20 hg19_knownGene exon 13753161 13753261 0.000000 - . gene_id "ESF1"; transcript_id "AK022369:uc002wok.1";
+chr20 hg19_knownGene CDS 13755803 13755916 0.000000 - 0 gene_id "ESF1"; transcript_id "AK022369:uc002wok.1";
+chr20 hg19_knownGene exon 13755803 13755916 0.000000 - . gene_id "ESF1"; transcript_id "AK022369:uc002wok.1";
+chr20 hg19_knownGene CDS 13756519 13756916 0.000000 - 2 gene_id "ESF1"; transcript_id "AK022369:uc002wok.1";
+chr20 hg19_knownGene exon 13756519 13756916 0.000000 - . gene_id "ESF1"; transcript_id "AK022369:uc002wok.1";
+chr20 hg19_knownGene CDS 13763150 13763786 0.000000 - 0 gene_id "ESF1"; transcript_id "AK022369:uc002wok.1";
+chr20 hg19_knownGene exon 13763150 13763829 0.000000 - . gene_id "ESF1"; transcript_id "AK022369:uc002wok.1";
+chr20 hg19_knownGene exon 13765526 13765565 0.000000 - . gene_id "ESF1"; transcript_id "AK022369:uc002wok.1";
+chr20 hg19_knownGene exon 13765672 13765936 0.000000 + . gene_id "C20orf7"; transcript_id "NR_029377:uc002woo.3";
+chr20 hg19_knownGene exon 13767958 13767998 0.000000 + . gene_id "C20orf7"; transcript_id "NR_029377:uc002woo.3";
+chr20 hg19_knownGene exon 13769235 13769298 0.000000 + . gene_id "C20orf7"; transcript_id "NR_029377:uc002woo.3";
+chr20 hg19_knownGene exon 13773826 13773873 0.000000 + . gene_id "C20orf7"; transcript_id "NR_029377:uc002woo.3";
+chr20 hg19_knownGene exon 13775484 13775587 0.000000 + . gene_id "C20orf7"; transcript_id "NR_029377:uc002woo.3";
+chr20 hg19_knownGene exon 13779107 13779146 0.000000 + . gene_id "C20orf7"; transcript_id "NR_029377:uc002woo.3";
+chr20 hg19_knownGene exon 13782132 13782329 0.000000 + . gene_id "C20orf7"; transcript_id "NR_029377:uc002woo.3";
+chr20 hg19_knownGene exon 13789488 13789548 0.000000 + . gene_id "C20orf7"; transcript_id "NR_029377:uc002woo.3";
+chr20 hg19_knownGene exon 13795064 13795161 0.000000 + . gene_id "C20orf7"; transcript_id "NR_029377:uc002woo.3";
+chr20 hg19_knownGene exon 13797109 13797192 0.000000 + . gene_id "C20orf7"; transcript_id "NR_029377:uc002woo.3";
+chr20 hg19_knownGene exon 13797521 13797603 0.000000 + . gene_id "C20orf7"; transcript_id "NR_029377:uc002woo.3";
+chr20 hg19_knownGene exon 13797764 13799067 0.000000 + . gene_id "C20orf7"; transcript_id "NR_029377:uc002woo.3";
+chr20 hg19_knownGene CDS 13765715 13765936 0.000000 + 0 gene_id "C20orf7"; transcript_id "NM_024120:uc002wom.3";
+chr20 hg19_knownGene exon 13765672 13765936 0.000000 + . gene_id "C20orf7"; transcript_id "NM_024120:uc002wom.3";
+chr20 hg19_knownGene CDS 13767958 13767998 0.000000 + 0 gene_id "C20orf7"; transcript_id "NM_024120:uc002wom.3";
+chr20 hg19_knownGene exon 13767958 13767998 0.000000 + . gene_id "C20orf7"; transcript_id "NM_024120:uc002wom.3";
+chr20 hg19_knownGene CDS 13769235 13769298 0.000000 + 1 gene_id "C20orf7"; transcript_id "NM_024120:uc002wom.3";
+chr20 hg19_knownGene exon 13769235 13769298 0.000000 + . gene_id "C20orf7"; transcript_id "NM_024120:uc002wom.3";
+chr20 hg19_knownGene CDS 13773826 13773873 0.000000 + 0 gene_id "C20orf7"; transcript_id "NM_024120:uc002wom.3";
+chr20 hg19_knownGene exon 13773826 13773873 0.000000 + . gene_id "C20orf7"; transcript_id "NM_024120:uc002wom.3";
+chr20 hg19_knownGene CDS 13775484 13775587 0.000000 + 0 gene_id "C20orf7"; transcript_id "NM_024120:uc002wom.3";
+chr20 hg19_knownGene exon 13775484 13775587 0.000000 + . gene_id "C20orf7"; transcript_id "NM_024120:uc002wom.3";
+chr20 hg19_knownGene CDS 13779107 13779146 0.000000 + 1 gene_id "C20orf7"; transcript_id "NM_024120:uc002wom.3";
+chr20 hg19_knownGene exon 13779107 13779146 0.000000 + . gene_id "C20orf7"; transcript_id "NM_024120:uc002wom.3";
+chr20 hg19_knownGene CDS 13782132 13782329 0.000000 + 0 gene_id "C20orf7"; transcript_id "NM_024120:uc002wom.3";
+chr20 hg19_knownGene exon 13782132 13782329 0.000000 + . gene_id "C20orf7"; transcript_id "NM_024120:uc002wom.3";
+chr20 hg19_knownGene CDS 13789488 13789548 0.000000 + 0 gene_id "C20orf7"; transcript_id "NM_024120:uc002wom.3";
+chr20 hg19_knownGene exon 13789488 13789548 0.000000 + . gene_id "C20orf7"; transcript_id "NM_024120:uc002wom.3";
+chr20 hg19_knownGene CDS 13797109 13797192 0.000000 + 2 gene_id "C20orf7"; transcript_id "NM_024120:uc002wom.3";
+chr20 hg19_knownGene exon 13797109 13797192 0.000000 + . gene_id "C20orf7"; transcript_id "NM_024120:uc002wom.3";
+chr20 hg19_knownGene CDS 13797521 13797603 0.000000 + 2 gene_id "C20orf7"; transcript_id "NM_024120:uc002wom.3";
+chr20 hg19_knownGene exon 13797521 13797603 0.000000 + . gene_id "C20orf7"; transcript_id "NM_024120:uc002wom.3";
+chr20 hg19_knownGene CDS 13797764 13797853 0.000000 + 0 gene_id "C20orf7"; transcript_id "NM_024120:uc002wom.3";
+chr20 hg19_knownGene exon 13797764 13799067 0.000000 + . gene_id "C20orf7"; transcript_id "NM_024120:uc002wom.3";
+chr20 hg19_knownGene CDS 13765715 13765936 0.000000 + 0 gene_id "C20orf7"; transcript_id "NM_001039375:uc002won.3";
+chr20 hg19_knownGene exon 13765672 13765936 0.000000 + . gene_id "C20orf7"; transcript_id "NM_001039375:uc002won.3";
+chr20 hg19_knownGene CDS 13767958 13767998 0.000000 + 0 gene_id "C20orf7"; transcript_id "NM_001039375:uc002won.3";
+chr20 hg19_knownGene exon 13767958 13767998 0.000000 + . gene_id "C20orf7"; transcript_id "NM_001039375:uc002won.3";
+chr20 hg19_knownGene CDS 13769235 13769298 0.000000 + 1 gene_id "C20orf7"; transcript_id "NM_001039375:uc002won.3";
+chr20 hg19_knownGene exon 13769235 13769298 0.000000 + . gene_id "C20orf7"; transcript_id "NM_001039375:uc002won.3";
+chr20 hg19_knownGene CDS 13773806 13773873 0.000000 + 0 gene_id "C20orf7"; transcript_id "NM_001039375:uc002won.3";
+chr20 hg19_knownGene exon 13773806 13773873 0.000000 + . gene_id "C20orf7"; transcript_id "NM_001039375:uc002won.3";
+chr20 hg19_knownGene CDS 13779107 13779146 0.000000 + 1 gene_id "C20orf7"; transcript_id "NM_001039375:uc002won.3";
+chr20 hg19_knownGene exon 13779107 13779146 0.000000 + . gene_id "C20orf7"; transcript_id "NM_001039375:uc002won.3";
+chr20 hg19_knownGene CDS 13782132 13782329 0.000000 + 0 gene_id "C20orf7"; transcript_id "NM_001039375:uc002won.3";
+chr20 hg19_knownGene exon 13782132 13782329 0.000000 + . gene_id "C20orf7"; transcript_id "NM_001039375:uc002won.3";
+chr20 hg19_knownGene CDS 13789488 13789548 0.000000 + 0 gene_id "C20orf7"; transcript_id "NM_001039375:uc002won.3";
+chr20 hg19_knownGene exon 13789488 13789548 0.000000 + . gene_id "C20orf7"; transcript_id "NM_001039375:uc002won.3";
+chr20 hg19_knownGene CDS 13797109 13797192 0.000000 + 2 gene_id "C20orf7"; transcript_id "NM_001039375:uc002won.3";
+chr20 hg19_knownGene exon 13797109 13797192 0.000000 + . gene_id "C20orf7"; transcript_id "NM_001039375:uc002won.3";
+chr20 hg19_knownGene CDS 13797521 13797603 0.000000 + 2 gene_id "C20orf7"; transcript_id "NM_001039375:uc002won.3";
+chr20 hg19_knownGene exon 13797521 13797603 0.000000 + . gene_id "C20orf7"; transcript_id "NM_001039375:uc002won.3";
+chr20 hg19_knownGene CDS 13797764 13797853 0.000000 + 0 gene_id "C20orf7"; transcript_id "NM_001039375:uc002won.3";
+chr20 hg19_knownGene exon 13797764 13799067 0.000000 + . gene_id "C20orf7"; transcript_id "NM_001039375:uc002won.3";
+chr20 hg19_knownGene exon 13953962 13954070 0.000000 - . gene_id "U6"; transcript_id ":uc021wao.1";
+chr20 hg19_knownGene exon 13970470 13970541 0.000000 - . gene_id "TRNA_Pseudo"; transcript_id ":uc021wap.1";
+chr20 hg19_knownGene CDS 13830134 13830250 0.000000 - 0 gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene exon 13830050 13830250 0.000000 - . gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene CDS 13830837 13830965 0.000000 - 0 gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene exon 13830837 13830965 0.000000 - . gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene CDS 13839908 13840080 0.000000 - 2 gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene exon 13839908 13840080 0.000000 - . gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene CDS 13845813 13845887 0.000000 - 2 gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene exon 13845813 13845887 0.000000 - . gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene CDS 13845995 13846160 0.000000 - 0 gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene exon 13845995 13846160 0.000000 - . gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene CDS 13847348 13847496 0.000000 - 2 gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene exon 13847348 13847496 0.000000 - . gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene CDS 13850149 13850236 0.000000 - 0 gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene exon 13850149 13850236 0.000000 - . gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene CDS 13850787 13850849 0.000000 - 0 gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene exon 13850787 13850849 0.000000 - . gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene CDS 13856684 13856761 0.000000 - 0 gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene exon 13856684 13856761 0.000000 - . gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene CDS 13858166 13858234 0.000000 - 0 gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene exon 13858166 13858234 0.000000 - . gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene CDS 13865993 13866049 0.000000 - 0 gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene exon 13865993 13866049 0.000000 - . gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene CDS 13866934 13867088 0.000000 - 2 gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene exon 13866934 13867088 0.000000 - . gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene CDS 13868415 13868496 0.000000 - 0 gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene exon 13868415 13868496 0.000000 - . gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene CDS 13868588 13868647 0.000000 - 0 gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene exon 13868588 13868647 0.000000 - . gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene CDS 13869105 13869158 0.000000 - 0 gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene exon 13869105 13869158 0.000000 - . gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene CDS 13894428 13894590 0.000000 - 1 gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene exon 13894428 13894590 0.000000 - . gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene CDS 13899667 13899769 0.000000 - 2 gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene exon 13899667 13899769 0.000000 - . gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene CDS 13912249 13912417 0.000000 - 0 gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene exon 13912249 13912417 0.000000 - . gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene CDS 13936722 13936777 0.000000 - 2 gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene exon 13936722 13936777 0.000000 - . gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene CDS 13971123 13971180 0.000000 - 0 gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene exon 13971123 13971262 0.000000 - . gene_id "SEL1L2"; transcript_id "NM_025229:uc010gcf.3";
+chr20 hg19_knownGene CDS 13830134 13830250 0.000000 - 0 gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene exon 13830050 13830250 0.000000 - . gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene CDS 13830837 13830965 0.000000 - 0 gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene exon 13830837 13830965 0.000000 - . gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene CDS 13839908 13840080 0.000000 - 2 gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene exon 13839908 13840080 0.000000 - . gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene CDS 13845813 13845887 0.000000 - 2 gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene exon 13845813 13845887 0.000000 - . gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene CDS 13845995 13846160 0.000000 - 0 gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene exon 13845995 13846160 0.000000 - . gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene CDS 13847348 13847496 0.000000 - 2 gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene exon 13847348 13847496 0.000000 - . gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene CDS 13850149 13850236 0.000000 - 0 gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene exon 13850149 13850236 0.000000 - . gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene CDS 13850787 13850849 0.000000 - 0 gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene exon 13850787 13850849 0.000000 - . gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene CDS 13856684 13856761 0.000000 - 0 gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene exon 13856684 13856761 0.000000 - . gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene CDS 13858166 13858234 0.000000 - 0 gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene exon 13858166 13858234 0.000000 - . gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene CDS 13865993 13866049 0.000000 - 0 gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene exon 13865993 13866049 0.000000 - . gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene CDS 13866934 13867088 0.000000 - 2 gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene exon 13866934 13867088 0.000000 - . gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene CDS 13868415 13868496 0.000000 - 0 gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene exon 13868415 13868496 0.000000 - . gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene CDS 13868588 13868647 0.000000 - 0 gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene exon 13868588 13868647 0.000000 - . gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene CDS 13869105 13869158 0.000000 - 0 gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene exon 13869105 13869158 0.000000 - . gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene CDS 13894428 13894559 0.000000 - 0 gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene exon 13894428 13894590 0.000000 - . gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene exon 13895767 13895887 0.000000 - . gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene exon 13899667 13899769 0.000000 - . gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene exon 13912249 13912417 0.000000 - . gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene exon 13936722 13936777 0.000000 - . gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene exon 13971123 13971262 0.000000 - . gene_id "SEL1L2"; transcript_id "BC035741:uc002woq.4";
+chr20 hg19_knownGene CDS 13830134 13830250 0.000000 - 0 gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene exon 13830050 13830250 0.000000 - . gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene CDS 13830837 13830965 0.000000 - 0 gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene exon 13830837 13830965 0.000000 - . gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene CDS 13845813 13845887 0.000000 - 0 gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene exon 13845813 13845887 0.000000 - . gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene CDS 13847348 13847496 0.000000 - 2 gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene exon 13847348 13847496 0.000000 - . gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene CDS 13850149 13850236 0.000000 - 0 gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene exon 13850149 13850236 0.000000 - . gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene CDS 13850787 13850849 0.000000 - 0 gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene exon 13850787 13850849 0.000000 - . gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene CDS 13856684 13856761 0.000000 - 0 gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene exon 13856684 13856761 0.000000 - . gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene CDS 13858166 13858234 0.000000 - 0 gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene exon 13858166 13858234 0.000000 - . gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene CDS 13865993 13866049 0.000000 - 0 gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene exon 13865993 13866049 0.000000 - . gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene CDS 13866934 13867088 0.000000 - 2 gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene exon 13866934 13867088 0.000000 - . gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene CDS 13868415 13868496 0.000000 - 0 gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene exon 13868415 13868496 0.000000 - . gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene CDS 13868588 13868647 0.000000 - 0 gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene exon 13868588 13868647 0.000000 - . gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene CDS 13869105 13869158 0.000000 - 0 gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene exon 13869105 13869158 0.000000 - . gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene CDS 13894428 13894590 0.000000 - 1 gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene exon 13894428 13894590 0.000000 - . gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene CDS 13899667 13899769 0.000000 - 2 gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene exon 13899667 13899769 0.000000 - . gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene CDS 13912249 13912417 0.000000 - 0 gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene exon 13912249 13912417 0.000000 - . gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene CDS 13936722 13936777 0.000000 - 2 gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene exon 13936722 13936777 0.000000 - . gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene CDS 13971123 13971180 0.000000 - 0 gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene exon 13971123 13971262 0.000000 - . gene_id "SEL1L2"; transcript_id "AK302170:uc010zrl.2";
+chr20 hg19_knownGene exon 13830050 13830250 0.000000 - . gene_id "SEL1L2"; transcript_id "AL137678:uc002wor.3";
+chr20 hg19_knownGene exon 13830837 13830965 0.000000 - . gene_id "SEL1L2"; transcript_id "AL137678:uc002wor.3";
+chr20 hg19_knownGene exon 13839908 13840080 0.000000 - . gene_id "SEL1L2"; transcript_id "AL137678:uc002wor.3";
+chr20 hg19_knownGene exon 13845813 13845887 0.000000 - . gene_id "SEL1L2"; transcript_id "AL137678:uc002wor.3";
+chr20 hg19_knownGene exon 13847348 13847496 0.000000 - . gene_id "SEL1L2"; transcript_id "AL137678:uc002wor.3";
+chr20 hg19_knownGene exon 13850149 13850236 0.000000 - . gene_id "SEL1L2"; transcript_id "AL137678:uc002wor.3";
+chr20 hg19_knownGene exon 13850787 13850849 0.000000 - . gene_id "SEL1L2"; transcript_id "AL137678:uc002wor.3";
+chr20 hg19_knownGene exon 13856684 13856761 0.000000 - . gene_id "SEL1L2"; transcript_id "AL137678:uc002wor.3";
+chr20 hg19_knownGene exon 13858166 13858234 0.000000 - . gene_id "SEL1L2"; transcript_id "AL137678:uc002wor.3";
+chr20 hg19_knownGene exon 13865993 13866049 0.000000 - . gene_id "SEL1L2"; transcript_id "AL137678:uc002wor.3";
+chr20 hg19_knownGene exon 13866934 13867088 0.000000 - . gene_id "SEL1L2"; transcript_id "AL137678:uc002wor.3";
+chr20 hg19_knownGene exon 13868415 13868496 0.000000 - . gene_id "SEL1L2"; transcript_id "AL137678:uc002wor.3";
+chr20 hg19_knownGene exon 13868588 13868647 0.000000 - . gene_id "SEL1L2"; transcript_id "AL137678:uc002wor.3";
+chr20 hg19_knownGene exon 13869105 13869158 0.000000 - . gene_id "SEL1L2"; transcript_id "AL137678:uc002wor.3";
+chr20 hg19_knownGene exon 13894428 13894590 0.000000 - . gene_id "SEL1L2"; transcript_id "AL137678:uc002wor.3";
+chr20 hg19_knownGene exon 13899667 13899769 0.000000 - . gene_id "SEL1L2"; transcript_id "AL137678:uc002wor.3";
+chr20 hg19_knownGene exon 13912249 13912417 0.000000 - . gene_id "SEL1L2"; transcript_id "AL137678:uc002wor.3";
+chr20 hg19_knownGene exon 13936722 13936777 0.000000 - . gene_id "SEL1L2"; transcript_id "AL137678:uc002wor.3";
+chr20 hg19_knownGene exon 13975669 13975863 0.000000 - . gene_id "SEL1L2"; transcript_id "AL137678:uc002wor.3";
+chr20 hg19_knownGene exon 13976146 13976455 0.000000 + . gene_id "MACROD2"; transcript_id "BC128036:uc002wos.3";
+chr20 hg19_knownGene exon 13982934 13983050 0.000000 + . gene_id "MACROD2"; transcript_id "BC128036:uc002wos.3";
+chr20 hg19_knownGene exon 14032568 14032666 0.000000 + . gene_id "MACROD2"; transcript_id "BC128036:uc002wos.3";
+chr20 hg19_knownGene exon 14033745 14034092 0.000000 + . gene_id "MACROD2"; transcript_id "BC128036:uc002wos.3";
+chr20 hg19_knownGene exon 14203691 14203973 0.000000 + . gene_id "Metazoa_SRP"; transcript_id ":uc021waq.1";
+chr20 hg19_knownGene CDS 14306206 14308152 0.000000 - 0 gene_id "FLRT3"; transcript_id "CCDS13121:uc021war.1";
+chr20 hg19_knownGene exon 14306203 14308152 0.000000 - . gene_id "FLRT3"; transcript_id "CCDS13121:uc021war.1";
+chr20 hg19_knownGene CDS 14306206 14308152 0.000000 - 0 gene_id "FLRT3"; transcript_id "NM_198391:uc002wov.2";
+chr20 hg19_knownGene exon 14304639 14308204 0.000000 - . gene_id "FLRT3"; transcript_id "NM_198391:uc002wov.2";
+chr20 hg19_knownGene exon 14309780 14309973 0.000000 - . gene_id "FLRT3"; transcript_id "NM_198391:uc002wov.2";
+chr20 hg19_knownGene exon 14318050 14318313 0.000000 - . gene_id "FLRT3"; transcript_id "NM_198391:uc002wov.2";
+chr20 hg19_knownGene CDS 14306206 14308152 0.000000 - 0 gene_id "FLRT3"; transcript_id "NM_013281:uc002wow.2";
+chr20 hg19_knownGene exon 14304639 14308204 0.000000 - . gene_id "FLRT3"; transcript_id "NM_013281:uc002wow.2";
+chr20 hg19_knownGene exon 14318050 14318313 0.000000 - . gene_id "FLRT3"; transcript_id "NM_013281:uc002wow.2";
+chr20 hg19_knownGene exon 14504037 14504100 0.000000 + . gene_id "MACROD2"; transcript_id "BC036403:uc002wox.3";
+chr20 hg19_knownGene exon 14665489 14665605 0.000000 + . gene_id "MACROD2"; transcript_id "BC036403:uc002wox.3";
+chr20 hg19_knownGene exon 14873349 14876227 0.000000 + . gene_id "MACROD2"; transcript_id "BC036403:uc002wox.3";
+chr20 hg19_knownGene exon 14864899 14865240 0.000000 - . gene_id "MACROD2-AS1"; transcript_id "NR_037841:uc002woy.3";
+chr20 hg19_knownGene exon 14868742 14868950 0.000000 - . gene_id "MACROD2-AS1"; transcript_id "NR_037841:uc002woy.3";
+chr20 hg19_knownGene exon 14910021 14910142 0.000000 - . gene_id "MACROD2-AS1"; transcript_id "NR_037841:uc002woy.3";
+chr20 hg19_knownGene exon 15002199 15002305 0.000000 - . gene_id "U6"; transcript_id ":uc021was.1";
+chr20 hg19_knownGene CDS 15874286 15874657 0.000000 - 0 gene_id "AK125594"; transcript_id "AK125594:uc002wpc.3";
+chr20 hg19_knownGene exon 15872979 15874922 0.000000 - . gene_id "AK125594"; transcript_id "AK125594:uc002wpc.3";
+chr20 hg19_knownGene exon 15903877 15903959 0.000000 - . gene_id "AK125594"; transcript_id "AK125594:uc002wpc.3";
+chr20 hg19_knownGene exon 15966433 15966607 0.000000 + . gene_id "MACROD2"; transcript_id "BC035876:uc002wpd.3";
+chr20 hg19_knownGene CDS 15967434 15967446 0.000000 + 0 gene_id "MACROD2"; transcript_id "BC035876:uc002wpd.3";
+chr20 hg19_knownGene exon 15967372 15967446 0.000000 + . gene_id "MACROD2"; transcript_id "BC035876:uc002wpd.3";
+chr20 hg19_knownGene CDS 15967711 15967803 0.000000 + 2 gene_id "MACROD2"; transcript_id "BC035876:uc002wpd.3";
+chr20 hg19_knownGene exon 15967711 15967803 0.000000 + . gene_id "MACROD2"; transcript_id "BC035876:uc002wpd.3";
+chr20 hg19_knownGene CDS 16021846 16021923 0.000000 + 2 gene_id "MACROD2"; transcript_id "BC035876:uc002wpd.3";
+chr20 hg19_knownGene exon 16021846 16021923 0.000000 + . gene_id "MACROD2"; transcript_id "BC035876:uc002wpd.3";
+chr20 hg19_knownGene CDS 16025216 16025284 0.000000 + 2 gene_id "MACROD2"; transcript_id "BC035876:uc002wpd.3";
+chr20 hg19_knownGene exon 16025216 16025284 0.000000 + . gene_id "MACROD2"; transcript_id "BC035876:uc002wpd.3";
+chr20 hg19_knownGene CDS 16030478 16030518 0.000000 + 2 gene_id "MACROD2"; transcript_id "BC035876:uc002wpd.3";
+chr20 hg19_knownGene exon 16030478 16030707 0.000000 + . gene_id "MACROD2"; transcript_id "BC035876:uc002wpd.3";
+chr20 hg19_knownGene CDS 13976410 13976455 0.000000 + 0 gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene exon 13976146 13976455 0.000000 + . gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene CDS 13982934 13983050 0.000000 + 2 gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene exon 13982934 13983050 0.000000 + . gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene CDS 14066267 14066374 0.000000 + 2 gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene exon 14066267 14066374 0.000000 + . gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene CDS 14474125 14474154 0.000000 + 2 gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene exon 14474125 14474154 0.000000 + . gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene CDS 14665489 14665605 0.000000 + 2 gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene exon 14665489 14665605 0.000000 + . gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene CDS 15210586 15210707 0.000000 + 2 gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene exon 15210586 15210707 0.000000 + . gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene CDS 15412050 15412080 0.000000 + 0 gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene exon 15412050 15412080 0.000000 + . gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene CDS 15480419 15480492 0.000000 + 2 gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene exon 15480419 15480492 0.000000 + . gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene CDS 15843390 15843471 0.000000 + 0 gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene exon 15843390 15843471 0.000000 + . gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene CDS 15866409 15866456 0.000000 + 2 gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene exon 15866409 15866456 0.000000 + . gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene CDS 15913921 15913983 0.000000 + 2 gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene exon 15913921 15913983 0.000000 + . gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene CDS 15918121 15918189 0.000000 + 2 gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene exon 15918121 15918189 0.000000 + . gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene CDS 15948198 15948275 0.000000 + 2 gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene exon 15948198 15948275 0.000000 + . gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene CDS 15967372 15967446 0.000000 + 2 gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene exon 15967372 15967446 0.000000 + . gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene CDS 15967711 15967803 0.000000 + 2 gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene exon 15967711 15967803 0.000000 + . gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene CDS 16021846 16021923 0.000000 + 2 gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene exon 16021846 16021923 0.000000 + . gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene CDS 16030475 16030518 0.000000 + 2 gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene exon 16030475 16033841 0.000000 + . gene_id "MACROD2"; transcript_id "NM_080676:uc002wot.3";
+chr20 hg19_knownGene CDS 13976410 13976455 0.000000 + 0 gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene exon 13976146 13976455 0.000000 + . gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene CDS 13982934 13983050 0.000000 + 2 gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene exon 13982934 13983050 0.000000 + . gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene CDS 14066267 14066374 0.000000 + 2 gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene exon 14066267 14066374 0.000000 + . gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene CDS 14474125 14474154 0.000000 + 2 gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene exon 14474125 14474154 0.000000 + . gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene CDS 14665489 14665605 0.000000 + 2 gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene exon 14665489 14665605 0.000000 + . gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene CDS 15210586 15210707 0.000000 + 2 gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene exon 15210586 15210707 0.000000 + . gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene CDS 15412050 15412080 0.000000 + 0 gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene exon 15412050 15412080 0.000000 + . gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene CDS 15480419 15480492 0.000000 + 2 gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene exon 15480419 15480492 0.000000 + . gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene CDS 15843390 15843471 0.000000 + 0 gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene exon 15843390 15843471 0.000000 + . gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene CDS 15866409 15866456 0.000000 + 2 gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene exon 15866409 15866456 0.000000 + . gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene CDS 15913921 15913983 0.000000 + 2 gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene exon 15913921 15913983 0.000000 + . gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene CDS 15918121 15918189 0.000000 + 2 gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene exon 15918121 15918189 0.000000 + . gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene CDS 15948198 15948275 0.000000 + 2 gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene exon 15948198 15948275 0.000000 + . gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene CDS 15967372 15967446 0.000000 + 2 gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene exon 15967372 15967446 0.000000 + . gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene CDS 15967711 15967803 0.000000 + 2 gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene exon 15967711 15967803 0.000000 + . gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene CDS 16021846 16021923 0.000000 + 2 gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene exon 16021846 16021923 0.000000 + . gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene CDS 16025216 16025284 0.000000 + 2 gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene exon 16025216 16025284 0.000000 + . gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene CDS 16030475 16030518 0.000000 + 2 gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene exon 16030475 16033841 0.000000 + . gene_id "MACROD2"; transcript_id "EF159161:uc002wou.3";
+chr20 hg19_knownGene exon 15177504 15177678 0.000000 + . gene_id "MACROD2"; transcript_id "NM_001033087:uc002woz.3";
+chr20 hg19_knownGene exon 15210586 15210707 0.000000 + . gene_id "MACROD2"; transcript_id "NM_001033087:uc002woz.3";
+chr20 hg19_knownGene exon 15412050 15412080 0.000000 + . gene_id "MACROD2"; transcript_id "NM_001033087:uc002woz.3";
+chr20 hg19_knownGene exon 15480419 15480492 0.000000 + . gene_id "MACROD2"; transcript_id "NM_001033087:uc002woz.3";
+chr20 hg19_knownGene CDS 15843450 15843471 0.000000 + 0 gene_id "MACROD2"; transcript_id "NM_001033087:uc002woz.3";
+chr20 hg19_knownGene exon 15843390 15843471 0.000000 + . gene_id "MACROD2"; transcript_id "NM_001033087:uc002woz.3";
+chr20 hg19_knownGene CDS 15866409 15866456 0.000000 + 2 gene_id "MACROD2"; transcript_id "NM_001033087:uc002woz.3";
+chr20 hg19_knownGene exon 15866409 15866456 0.000000 + . gene_id "MACROD2"; transcript_id "NM_001033087:uc002woz.3";
+chr20 hg19_knownGene CDS 15913921 15913983 0.000000 + 2 gene_id "MACROD2"; transcript_id "NM_001033087:uc002woz.3";
+chr20 hg19_knownGene exon 15913921 15913983 0.000000 + . gene_id "MACROD2"; transcript_id "NM_001033087:uc002woz.3";
+chr20 hg19_knownGene CDS 15918121 15918189 0.000000 + 2 gene_id "MACROD2"; transcript_id "NM_001033087:uc002woz.3";
+chr20 hg19_knownGene exon 15918121 15918189 0.000000 + . gene_id "MACROD2"; transcript_id "NM_001033087:uc002woz.3";
+chr20 hg19_knownGene CDS 15948198 15948275 0.000000 + 2 gene_id "MACROD2"; transcript_id "NM_001033087:uc002woz.3";
+chr20 hg19_knownGene exon 15948198 15948275 0.000000 + . gene_id "MACROD2"; transcript_id "NM_001033087:uc002woz.3";
+chr20 hg19_knownGene CDS 15967372 15967446 0.000000 + 2 gene_id "MACROD2"; transcript_id "NM_001033087:uc002woz.3";
+chr20 hg19_knownGene exon 15967372 15967446 0.000000 + . gene_id "MACROD2"; transcript_id "NM_001033087:uc002woz.3";
+chr20 hg19_knownGene CDS 15967711 15967803 0.000000 + 2 gene_id "MACROD2"; transcript_id "NM_001033087:uc002woz.3";
+chr20 hg19_knownGene exon 15967711 15967803 0.000000 + . gene_id "MACROD2"; transcript_id "NM_001033087:uc002woz.3";
+chr20 hg19_knownGene CDS 16021846 16021923 0.000000 + 2 gene_id "MACROD2"; transcript_id "NM_001033087:uc002woz.3";
+chr20 hg19_knownGene exon 16021846 16021923 0.000000 + . gene_id "MACROD2"; transcript_id "NM_001033087:uc002woz.3";
+chr20 hg19_knownGene CDS 16025216 16025284 0.000000 + 2 gene_id "MACROD2"; transcript_id "NM_001033087:uc002woz.3";
+chr20 hg19_knownGene exon 16025216 16025284 0.000000 + . gene_id "MACROD2"; transcript_id "NM_001033087:uc002woz.3";
+chr20 hg19_knownGene CDS 16030475 16030518 0.000000 + 2 gene_id "MACROD2"; transcript_id "NM_001033087:uc002woz.3";
+chr20 hg19_knownGene exon 16030475 16033841 0.000000 + . gene_id "MACROD2"; transcript_id "NM_001033087:uc002woz.3";
+chr20 hg19_knownGene exon 15680501 15680636 0.000000 + . gene_id "MACROD2"; transcript_id "AK125899:uc002wpb.3";
+chr20 hg19_knownGene CDS 15843450 15843471 0.000000 + 0 gene_id "MACROD2"; transcript_id "AK125899:uc002wpb.3";
+chr20 hg19_knownGene exon 15843390 15843471 0.000000 + . gene_id "MACROD2"; transcript_id "AK125899:uc002wpb.3";
+chr20 hg19_knownGene CDS 15866409 15866456 0.000000 + 2 gene_id "MACROD2"; transcript_id "AK125899:uc002wpb.3";
+chr20 hg19_knownGene exon 15866409 15866456 0.000000 + . gene_id "MACROD2"; transcript_id "AK125899:uc002wpb.3";
+chr20 hg19_knownGene CDS 15913921 15913983 0.000000 + 2 gene_id "MACROD2"; transcript_id "AK125899:uc002wpb.3";
+chr20 hg19_knownGene exon 15913921 15913983 0.000000 + . gene_id "MACROD2"; transcript_id "AK125899:uc002wpb.3";
+chr20 hg19_knownGene CDS 15918121 15918189 0.000000 + 2 gene_id "MACROD2"; transcript_id "AK125899:uc002wpb.3";
+chr20 hg19_knownGene exon 15918121 15918189 0.000000 + . gene_id "MACROD2"; transcript_id "AK125899:uc002wpb.3";
+chr20 hg19_knownGene CDS 15948198 15948275 0.000000 + 2 gene_id "MACROD2"; transcript_id "AK125899:uc002wpb.3";
+chr20 hg19_knownGene exon 15948198 15948275 0.000000 + . gene_id "MACROD2"; transcript_id "AK125899:uc002wpb.3";
+chr20 hg19_knownGene CDS 15967372 15967446 0.000000 + 2 gene_id "MACROD2"; transcript_id "AK125899:uc002wpb.3";
+chr20 hg19_knownGene exon 15967372 15967446 0.000000 + . gene_id "MACROD2"; transcript_id "AK125899:uc002wpb.3";
+chr20 hg19_knownGene CDS 15967711 15967803 0.000000 + 2 gene_id "MACROD2"; transcript_id "AK125899:uc002wpb.3";
+chr20 hg19_knownGene exon 15967711 15967803 0.000000 + . gene_id "MACROD2"; transcript_id "AK125899:uc002wpb.3";
+chr20 hg19_knownGene CDS 16021846 16021923 0.000000 + 2 gene_id "MACROD2"; transcript_id "AK125899:uc002wpb.3";
+chr20 hg19_knownGene exon 16021846 16021923 0.000000 + . gene_id "MACROD2"; transcript_id "AK125899:uc002wpb.3";
+chr20 hg19_knownGene CDS 16030475 16030518 0.000000 + 2 gene_id "MACROD2"; transcript_id "AK125899:uc002wpb.3";
+chr20 hg19_knownGene exon 16030475 16033841 0.000000 + . gene_id "MACROD2"; transcript_id "AK125899:uc002wpb.3";
+chr20 hg19_knownGene exon 16336618 16336736 0.000000 + . gene_id "Mir_584"; transcript_id ":uc021wat.1";
+chr20 hg19_knownGene CDS 16253901 16254056 0.000000 - 0 gene_id "KIF16B"; transcript_id "BC034984:uc002wpe.1";
+chr20 hg19_knownGene exon 16252749 16254056 0.000000 - . gene_id "KIF16B"; transcript_id "BC034984:uc002wpe.1";
+chr20 hg19_knownGene CDS 16292980 16293063 0.000000 - 0 gene_id "KIF16B"; transcript_id "BC034984:uc002wpe.1";
+chr20 hg19_knownGene exon 16292980 16293063 0.000000 - . gene_id "KIF16B"; transcript_id "BC034984:uc002wpe.1";
+chr20 hg19_knownGene CDS 16336975 16337097 0.000000 - 0 gene_id "KIF16B"; transcript_id "BC034984:uc002wpe.1";
+chr20 hg19_knownGene exon 16336975 16337097 0.000000 - . gene_id "KIF16B"; transcript_id "BC034984:uc002wpe.1";
+chr20 hg19_knownGene CDS 16351231 16351281 0.000000 - 0 gene_id "KIF16B"; transcript_id "BC034984:uc002wpe.1";
+chr20 hg19_knownGene exon 16351231 16351281 0.000000 - . gene_id "KIF16B"; transcript_id "BC034984:uc002wpe.1";
+chr20 hg19_knownGene CDS 16352310 16352406 0.000000 - 1 gene_id "KIF16B"; transcript_id "BC034984:uc002wpe.1";
+chr20 hg19_knownGene exon 16352310 16352406 0.000000 - . gene_id "KIF16B"; transcript_id "BC034984:uc002wpe.1";
+chr20 hg19_knownGene CDS 16354902 16355054 0.000000 - 1 gene_id "KIF16B"; transcript_id "BC034984:uc002wpe.1";
+chr20 hg19_knownGene exon 16354902 16355054 0.000000 - . gene_id "KIF16B"; transcript_id "BC034984:uc002wpe.1";
+chr20 hg19_knownGene CDS 16359450 16360792 0.000000 - 0 gene_id "KIF16B"; transcript_id "BC034984:uc002wpe.1";
+chr20 hg19_knownGene exon 16359450 16360808 0.000000 - . gene_id "KIF16B"; transcript_id "BC034984:uc002wpe.1";
+chr20 hg19_knownGene CDS 16253901 16254056 0.000000 - 0 gene_id "KIF16B"; transcript_id "BC110317:uc002wpf.1";
+chr20 hg19_knownGene exon 16252749 16254056 0.000000 - . gene_id "KIF16B"; transcript_id "BC110317:uc002wpf.1";
+chr20 hg19_knownGene CDS 16292980 16293063 0.000000 - 0 gene_id "KIF16B"; transcript_id "BC110317:uc002wpf.1";
+chr20 hg19_knownGene exon 16292980 16293063 0.000000 - . gene_id "KIF16B"; transcript_id "BC110317:uc002wpf.1";
+chr20 hg19_knownGene CDS 16316571 16316660 0.000000 - 0 gene_id "KIF16B"; transcript_id "BC110317:uc002wpf.1";
+chr20 hg19_knownGene exon 16316571 16316660 0.000000 - . gene_id "KIF16B"; transcript_id "BC110317:uc002wpf.1";
+chr20 hg19_knownGene CDS 16351231 16351281 0.000000 - 0 gene_id "KIF16B"; transcript_id "BC110317:uc002wpf.1";
+chr20 hg19_knownGene exon 16351231 16351281 0.000000 - . gene_id "KIF16B"; transcript_id "BC110317:uc002wpf.1";
+chr20 hg19_knownGene CDS 16352310 16352406 0.000000 - 1 gene_id "KIF16B"; transcript_id "BC110317:uc002wpf.1";
+chr20 hg19_knownGene exon 16352310 16352406 0.000000 - . gene_id "KIF16B"; transcript_id "BC110317:uc002wpf.1";
+chr20 hg19_knownGene CDS 16354902 16355054 0.000000 - 1 gene_id "KIF16B"; transcript_id "BC110317:uc002wpf.1";
+chr20 hg19_knownGene exon 16354902 16355054 0.000000 - . gene_id "KIF16B"; transcript_id "BC110317:uc002wpf.1";
+chr20 hg19_knownGene CDS 16359450 16360792 0.000000 - 0 gene_id "KIF16B"; transcript_id "BC110317:uc002wpf.1";
+chr20 hg19_knownGene exon 16359450 16360808 0.000000 - . gene_id "KIF16B"; transcript_id "BC110317:uc002wpf.1";
+chr20 hg19_knownGene CDS 16253901 16254056 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene exon 16252749 16254056 0.000000 - . gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene CDS 16292980 16293063 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene exon 16292980 16293063 0.000000 - . gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene CDS 16316571 16316660 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene exon 16316571 16316660 0.000000 - . gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene CDS 16336975 16337097 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene exon 16336975 16337097 0.000000 - . gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene CDS 16351231 16351281 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene exon 16351231 16351281 0.000000 - . gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene CDS 16352310 16352406 0.000000 - 1 gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene exon 16352310 16352406 0.000000 - . gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene CDS 16354902 16355054 0.000000 - 1 gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene exon 16354902 16355054 0.000000 - . gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene CDS 16359450 16360808 0.000000 - 1 gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene exon 16359450 16360808 0.000000 - . gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene CDS 16362339 16362392 0.000000 - 1 gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene exon 16362339 16362392 0.000000 - . gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene CDS 16385458 16385546 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene exon 16385458 16385546 0.000000 - . gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene CDS 16387019 16387101 0.000000 - 2 gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene exon 16387019 16387101 0.000000 - . gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene CDS 16407749 16407886 0.000000 - 2 gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene exon 16407749 16407886 0.000000 - . gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene CDS 16409598 16409649 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene exon 16409598 16409649 0.000000 - . gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene CDS 16410508 16410627 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene exon 16410508 16410627 0.000000 - . gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene CDS 16474936 16474995 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene exon 16474936 16474995 0.000000 - . gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene CDS 16478258 16478323 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene exon 16478258 16478323 0.000000 - . gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene CDS 16485017 16485192 0.000000 - 2 gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene exon 16485017 16485192 0.000000 - . gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene CDS 16486367 16486498 0.000000 - 2 gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene exon 16486367 16486498 0.000000 - . gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene CDS 16486667 16486835 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene exon 16486667 16486835 0.000000 - . gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene CDS 16488603 16488745 0.000000 - 2 gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene exon 16488603 16488745 0.000000 - . gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene CDS 16492063 16492172 0.000000 - 1 gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene exon 16492063 16492172 0.000000 - . gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene CDS 16493471 16493568 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene exon 16493471 16493568 0.000000 - . gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene CDS 16496193 16496309 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene exon 16496193 16496309 0.000000 - . gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene CDS 16506737 16506850 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene exon 16506737 16506850 0.000000 - . gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene CDS 16509016 16509085 0.000000 - 1 gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene exon 16509016 16509085 0.000000 - . gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene CDS 16553874 16553920 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene exon 16553874 16554079 0.000000 - . gene_id "KIF16B"; transcript_id "NM_024704:uc002wpg.2";
+chr20 hg19_knownGene CDS 16253901 16254056 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene exon 16252749 16254056 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene CDS 16292980 16293063 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene exon 16292980 16293063 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene CDS 16316571 16316660 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene exon 16316571 16316660 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene CDS 16336975 16337097 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene exon 16336975 16337097 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene CDS 16351231 16351281 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene exon 16351231 16351281 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene CDS 16352310 16352406 0.000000 - 1 gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene exon 16352310 16352406 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene CDS 16359450 16360808 0.000000 - 1 gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene exon 16359450 16360808 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene CDS 16362339 16362392 0.000000 - 1 gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene exon 16362339 16362392 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene CDS 16385458 16385546 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene exon 16385458 16385546 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene CDS 16387019 16387101 0.000000 - 2 gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene exon 16387019 16387101 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene CDS 16407749 16407886 0.000000 - 2 gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene exon 16407749 16407886 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene CDS 16409598 16409649 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene exon 16409598 16409649 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene CDS 16410508 16410627 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene exon 16410508 16410627 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene CDS 16474936 16474995 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene exon 16474936 16474995 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene CDS 16478258 16478323 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene exon 16478258 16478323 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene CDS 16485017 16485192 0.000000 - 2 gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene exon 16485017 16485192 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene CDS 16486367 16486498 0.000000 - 2 gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene exon 16486367 16486498 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene CDS 16486667 16486835 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene exon 16486667 16486835 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene CDS 16488603 16488745 0.000000 - 2 gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene exon 16488603 16488745 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene CDS 16492063 16492172 0.000000 - 1 gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene exon 16492063 16492172 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene CDS 16493471 16493568 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene exon 16493471 16493568 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene CDS 16496193 16496309 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene exon 16496193 16496309 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene CDS 16506737 16506850 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene exon 16506737 16506850 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene CDS 16509016 16509085 0.000000 - 1 gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene exon 16509016 16509085 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene CDS 16553874 16553920 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene exon 16553874 16554079 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199865:uc010gch.2";
+chr20 hg19_knownGene CDS 16347794 16348471 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene exon 16347488 16348471 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene CDS 16351231 16351281 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene exon 16351231 16351281 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene CDS 16352310 16352406 0.000000 - 1 gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene exon 16352310 16352406 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene CDS 16354902 16355054 0.000000 - 1 gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene exon 16354902 16355054 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene CDS 16359450 16360808 0.000000 - 1 gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene exon 16359450 16360808 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene CDS 16362339 16362392 0.000000 - 1 gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene exon 16362339 16362392 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene CDS 16385458 16385546 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene exon 16385458 16385546 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene CDS 16387019 16387101 0.000000 - 2 gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene exon 16387019 16387101 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene CDS 16407749 16407886 0.000000 - 2 gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene exon 16407749 16407886 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene CDS 16409598 16409649 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene exon 16409598 16409649 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene CDS 16410508 16410627 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene exon 16410508 16410627 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene CDS 16474936 16474995 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene exon 16474936 16474995 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene CDS 16478258 16478323 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene exon 16478258 16478323 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene CDS 16485017 16485192 0.000000 - 2 gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene exon 16485017 16485192 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene CDS 16486367 16486498 0.000000 - 2 gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene exon 16486367 16486498 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene CDS 16486667 16486835 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene exon 16486667 16486835 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene CDS 16488603 16488745 0.000000 - 2 gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene exon 16488603 16488745 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene CDS 16492063 16492172 0.000000 - 1 gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene exon 16492063 16492172 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene CDS 16493471 16493568 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene exon 16493471 16493568 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene CDS 16496193 16496309 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene exon 16496193 16496309 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene CDS 16506737 16506850 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene exon 16506737 16506850 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene CDS 16509016 16509085 0.000000 - 1 gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene exon 16509016 16509085 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene CDS 16553874 16553920 0.000000 - 0 gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene exon 16553874 16554079 0.000000 - . gene_id "KIF16B"; transcript_id "NM_001199866:uc010gci.2";
+chr20 hg19_knownGene CDS 16359455 16360808 0.000000 - 1 gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene exon 16359450 16360808 0.000000 - . gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene CDS 16362339 16362392 0.000000 - 1 gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene exon 16362339 16362392 0.000000 - . gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene CDS 16362743 16362775 0.000000 - 1 gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene exon 16362743 16362775 0.000000 - . gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene CDS 16385458 16385546 0.000000 - 0 gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene exon 16385458 16385546 0.000000 - . gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene CDS 16387019 16387101 0.000000 - 2 gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene exon 16387019 16387101 0.000000 - . gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene CDS 16407749 16407886 0.000000 - 2 gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene exon 16407749 16407886 0.000000 - . gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene CDS 16409598 16409649 0.000000 - 0 gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene exon 16409598 16409649 0.000000 - . gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene CDS 16410508 16410627 0.000000 - 0 gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene exon 16410508 16410627 0.000000 - . gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene CDS 16474936 16474995 0.000000 - 0 gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene exon 16474936 16474995 0.000000 - . gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene CDS 16478258 16478323 0.000000 - 0 gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene exon 16478258 16478323 0.000000 - . gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene CDS 16485017 16485192 0.000000 - 2 gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene exon 16485017 16485192 0.000000 - . gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene CDS 16486367 16486498 0.000000 - 2 gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene exon 16486367 16486498 0.000000 - . gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene CDS 16486667 16486835 0.000000 - 0 gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene exon 16486667 16486835 0.000000 - . gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene CDS 16488603 16488745 0.000000 - 2 gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene exon 16488603 16488745 0.000000 - . gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene CDS 16492063 16492172 0.000000 - 1 gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene exon 16492063 16492172 0.000000 - . gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene CDS 16493471 16493568 0.000000 - 0 gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene exon 16493471 16493568 0.000000 - . gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene CDS 16496193 16496309 0.000000 - 0 gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene exon 16496193 16496309 0.000000 - . gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene CDS 16506737 16506850 0.000000 - 0 gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene exon 16506737 16506850 0.000000 - . gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene CDS 16509016 16509085 0.000000 - 1 gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene exon 16509016 16509085 0.000000 - . gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene CDS 16553874 16553920 0.000000 - 0 gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene exon 16553874 16554079 0.000000 - . gene_id "KIF16B"; transcript_id "AK307399:uc010gcj.2";
+chr20 hg19_knownGene exon 16674398 16674516 0.000000 + . gene_id "Mir_584"; transcript_id ":uc021wau.1";
+chr20 hg19_knownGene exon 16710609 16710809 0.000000 + . gene_id "SNRPB2"; transcript_id "NM_003092:uc002wph.2";
+chr20 hg19_knownGene CDS 16712348 16712411 0.000000 + 0 gene_id "SNRPB2"; transcript_id "NM_003092:uc002wph.2";
+chr20 hg19_knownGene exon 16712313 16712411 0.000000 + . gene_id "SNRPB2"; transcript_id "NM_003092:uc002wph.2";
+chr20 hg19_knownGene CDS 16712809 16712981 0.000000 + 2 gene_id "SNRPB2"; transcript_id "NM_003092:uc002wph.2";
+chr20 hg19_knownGene exon 16712809 16712981 0.000000 + . gene_id "SNRPB2"; transcript_id "NM_003092:uc002wph.2";
+chr20 hg19_knownGene CDS 16717906 16718046 0.000000 + 0 gene_id "SNRPB2"; transcript_id "NM_003092:uc002wph.2";
+chr20 hg19_knownGene exon 16717906 16718046 0.000000 + . gene_id "SNRPB2"; transcript_id "NM_003092:uc002wph.2";
+chr20 hg19_knownGene CDS 16719497 16719547 0.000000 + 0 gene_id "SNRPB2"; transcript_id "NM_003092:uc002wph.2";
+chr20 hg19_knownGene exon 16719497 16719547 0.000000 + . gene_id "SNRPB2"; transcript_id "NM_003092:uc002wph.2";
+chr20 hg19_knownGene CDS 16720970 16721058 0.000000 + 0 gene_id "SNRPB2"; transcript_id "NM_003092:uc002wph.2";
+chr20 hg19_knownGene exon 16720970 16721058 0.000000 + . gene_id "SNRPB2"; transcript_id "NM_003092:uc002wph.2";
+chr20 hg19_knownGene CDS 16721491 16721647 0.000000 + 1 gene_id "SNRPB2"; transcript_id "NM_003092:uc002wph.2";
+chr20 hg19_knownGene exon 16721491 16722417 0.000000 + . gene_id "SNRPB2"; transcript_id "NM_003092:uc002wph.2";
+chr20 hg19_knownGene exon 16710609 16710709 0.000000 + . gene_id "SNRPB2"; transcript_id "NM_198220:uc002wpi.2";
+chr20 hg19_knownGene CDS 16712348 16712411 0.000000 + 0 gene_id "SNRPB2"; transcript_id "NM_198220:uc002wpi.2";
+chr20 hg19_knownGene exon 16712313 16712411 0.000000 + . gene_id "SNRPB2"; transcript_id "NM_198220:uc002wpi.2";
+chr20 hg19_knownGene CDS 16712809 16712981 0.000000 + 2 gene_id "SNRPB2"; transcript_id "NM_198220:uc002wpi.2";
+chr20 hg19_knownGene exon 16712809 16712981 0.000000 + . gene_id "SNRPB2"; transcript_id "NM_198220:uc002wpi.2";
+chr20 hg19_knownGene CDS 16717906 16718046 0.000000 + 0 gene_id "SNRPB2"; transcript_id "NM_198220:uc002wpi.2";
+chr20 hg19_knownGene exon 16717906 16718046 0.000000 + . gene_id "SNRPB2"; transcript_id "NM_198220:uc002wpi.2";
+chr20 hg19_knownGene CDS 16719497 16719547 0.000000 + 0 gene_id "SNRPB2"; transcript_id "NM_198220:uc002wpi.2";
+chr20 hg19_knownGene exon 16719497 16719547 0.000000 + . gene_id "SNRPB2"; transcript_id "NM_198220:uc002wpi.2";
+chr20 hg19_knownGene CDS 16720970 16721058 0.000000 + 0 gene_id "SNRPB2"; transcript_id "NM_198220:uc002wpi.2";
+chr20 hg19_knownGene exon 16720970 16721058 0.000000 + . gene_id "SNRPB2"; transcript_id "NM_198220:uc002wpi.2";
+chr20 hg19_knownGene CDS 16721491 16721647 0.000000 + 1 gene_id "SNRPB2"; transcript_id "NM_198220:uc002wpi.2";
+chr20 hg19_knownGene exon 16721491 16722417 0.000000 + . gene_id "SNRPB2"; transcript_id "NM_198220:uc002wpi.2";
+chr20 hg19_knownGene CDS 16729047 16729161 0.000000 + 0 gene_id "OTOR"; transcript_id "NM_020157:uc002wpj.3";
+chr20 hg19_knownGene exon 16729003 16729161 0.000000 + . gene_id "OTOR"; transcript_id "NM_020157:uc002wpj.3";
+chr20 hg19_knownGene CDS 16729512 16729651 0.000000 + 2 gene_id "OTOR"; transcript_id "NM_020157:uc002wpj.3";
+chr20 hg19_knownGene exon 16729512 16729651 0.000000 + . gene_id "OTOR"; transcript_id "NM_020157:uc002wpj.3";
+chr20 hg19_knownGene CDS 16730548 16730655 0.000000 + 0 gene_id "OTOR"; transcript_id "NM_020157:uc002wpj.3";
+chr20 hg19_knownGene exon 16730548 16730655 0.000000 + . gene_id "OTOR"; transcript_id "NM_020157:uc002wpj.3";
+chr20 hg19_knownGene CDS 16731740 16731760 0.000000 + 0 gene_id "OTOR"; transcript_id "NM_020157:uc002wpj.3";
+chr20 hg19_knownGene exon 16731740 16732809 0.000000 + . gene_id "OTOR"; transcript_id "NM_020157:uc002wpj.3";
+chr20 hg19_knownGene exon 17206752 17207024 0.000000 + . gene_id "PCSK2"; transcript_id "NM_001201528:uc002wpl.3";
+chr20 hg19_knownGene CDS 17208008 17208127 0.000000 + 0 gene_id "PCSK2"; transcript_id "NM_001201528:uc002wpl.3";
+chr20 hg19_knownGene exon 17207975 17208127 0.000000 + . gene_id "PCSK2"; transcript_id "NM_001201528:uc002wpl.3";
+chr20 hg19_knownGene CDS 17240885 17240989 0.000000 + 0 gene_id "PCSK2"; transcript_id "NM_001201528:uc002wpl.3";
+chr20 hg19_knownGene exon 17240885 17240989 0.000000 + . gene_id "PCSK2"; transcript_id "NM_001201528:uc002wpl.3";
+chr20 hg19_knownGene CDS 17338972 17339085 0.000000 + 0 gene_id "PCSK2"; transcript_id "NM_001201528:uc002wpl.3";
+chr20 hg19_knownGene exon 17338972 17339085 0.000000 + . gene_id "PCSK2"; transcript_id "NM_001201528:uc002wpl.3";
+chr20 hg19_knownGene CDS 17341177 17341285 0.000000 + 0 gene_id "PCSK2"; transcript_id "NM_001201528:uc002wpl.3";
+chr20 hg19_knownGene exon 17341177 17341285 0.000000 + . gene_id "PCSK2"; transcript_id "NM_001201528:uc002wpl.3";
+chr20 hg19_knownGene CDS 17349885 17349922 0.000000 + 2 gene_id "PCSK2"; transcript_id "NM_001201528:uc002wpl.3";
+chr20 hg19_knownGene exon 17349885 17349922 0.000000 + . gene_id "PCSK2"; transcript_id "NM_001201528:uc002wpl.3";
+chr20 hg19_knownGene CDS 17389908 17389984 0.000000 + 0 gene_id "PCSK2"; transcript_id "NM_001201528:uc002wpl.3";
+chr20 hg19_knownGene exon 17389908 17389984 0.000000 + . gene_id "PCSK2"; transcript_id "NM_001201528:uc002wpl.3";
+chr20 hg19_knownGene CDS 17410080 17410168 0.000000 + 1 gene_id "PCSK2"; transcript_id "NM_001201528:uc002wpl.3";
+chr20 hg19_knownGene exon 17410080 17410168 0.000000 + . gene_id "PCSK2"; transcript_id "NM_001201528:uc002wpl.3";
+chr20 hg19_knownGene CDS 17417353 17417528 0.000000 + 2 gene_id "PCSK2"; transcript_id "NM_001201528:uc002wpl.3";
+chr20 hg19_knownGene exon 17417353 17417528 0.000000 + . gene_id "PCSK2"; transcript_id "NM_001201528:uc002wpl.3";
+chr20 hg19_knownGene CDS 17434387 17434602 0.000000 + 0 gene_id "PCSK2"; transcript_id "NM_001201528:uc002wpl.3";
+chr20 hg19_knownGene exon 17434387 17434602 0.000000 + . gene_id "PCSK2"; transcript_id "NM_001201528:uc002wpl.3";
+chr20 hg19_knownGene CDS 17436993 17437093 0.000000 + 0 gene_id "PCSK2"; transcript_id "NM_001201528:uc002wpl.3";
+chr20 hg19_knownGene exon 17436993 17437093 0.000000 + . gene_id "PCSK2"; transcript_id "NM_001201528:uc002wpl.3";
+chr20 hg19_knownGene CDS 17445971 17446198 0.000000 + 1 gene_id "PCSK2"; transcript_id "NM_001201528:uc002wpl.3";
+chr20 hg19_knownGene exon 17445971 17446198 0.000000 + . gene_id "PCSK2"; transcript_id "NM_001201528:uc002wpl.3";
+chr20 hg19_knownGene CDS 17462229 17462712 0.000000 + 1 gene_id "PCSK2"; transcript_id "NM_001201528:uc002wpl.3";
+chr20 hg19_knownGene exon 17462229 17465222 0.000000 + . gene_id "PCSK2"; transcript_id "NM_001201528:uc002wpl.3";
+chr20 hg19_knownGene CDS 17207951 17208127 0.000000 + 0 gene_id "PCSK2"; transcript_id "NM_002594:uc002wpm.3";
+chr20 hg19_knownGene exon 17207597 17208127 0.000000 + . gene_id "PCSK2"; transcript_id "NM_002594:uc002wpm.3";
+chr20 hg19_knownGene CDS 17240885 17240989 0.000000 + 0 gene_id "PCSK2"; transcript_id "NM_002594:uc002wpm.3";
+chr20 hg19_knownGene exon 17240885 17240989 0.000000 + . gene_id "PCSK2"; transcript_id "NM_002594:uc002wpm.3";
+chr20 hg19_knownGene CDS 17338972 17339085 0.000000 + 0 gene_id "PCSK2"; transcript_id "NM_002594:uc002wpm.3";
+chr20 hg19_knownGene exon 17338972 17339085 0.000000 + . gene_id "PCSK2"; transcript_id "NM_002594:uc002wpm.3";
+chr20 hg19_knownGene CDS 17341177 17341285 0.000000 + 0 gene_id "PCSK2"; transcript_id "NM_002594:uc002wpm.3";
+chr20 hg19_knownGene exon 17341177 17341285 0.000000 + . gene_id "PCSK2"; transcript_id "NM_002594:uc002wpm.3";
+chr20 hg19_knownGene CDS 17349885 17349922 0.000000 + 2 gene_id "PCSK2"; transcript_id "NM_002594:uc002wpm.3";
+chr20 hg19_knownGene exon 17349885 17349922 0.000000 + . gene_id "PCSK2"; transcript_id "NM_002594:uc002wpm.3";
+chr20 hg19_knownGene CDS 17389908 17389984 0.000000 + 0 gene_id "PCSK2"; transcript_id "NM_002594:uc002wpm.3";
+chr20 hg19_knownGene exon 17389908 17389984 0.000000 + . gene_id "PCSK2"; transcript_id "NM_002594:uc002wpm.3";
+chr20 hg19_knownGene CDS 17410080 17410168 0.000000 + 1 gene_id "PCSK2"; transcript_id "NM_002594:uc002wpm.3";
+chr20 hg19_knownGene exon 17410080 17410168 0.000000 + . gene_id "PCSK2"; transcript_id "NM_002594:uc002wpm.3";
+chr20 hg19_knownGene CDS 17417353 17417528 0.000000 + 2 gene_id "PCSK2"; transcript_id "NM_002594:uc002wpm.3";
+chr20 hg19_knownGene exon 17417353 17417528 0.000000 + . gene_id "PCSK2"; transcript_id "NM_002594:uc002wpm.3";
+chr20 hg19_knownGene CDS 17434387 17434602 0.000000 + 0 gene_id "PCSK2"; transcript_id "NM_002594:uc002wpm.3";
+chr20 hg19_knownGene exon 17434387 17434602 0.000000 + . gene_id "PCSK2"; transcript_id "NM_002594:uc002wpm.3";
+chr20 hg19_knownGene CDS 17436993 17437093 0.000000 + 0 gene_id "PCSK2"; transcript_id "NM_002594:uc002wpm.3";
+chr20 hg19_knownGene exon 17436993 17437093 0.000000 + . gene_id "PCSK2"; transcript_id "NM_002594:uc002wpm.3";
+chr20 hg19_knownGene CDS 17445971 17446198 0.000000 + 1 gene_id "PCSK2"; transcript_id "NM_002594:uc002wpm.3";
+chr20 hg19_knownGene exon 17445971 17446198 0.000000 + . gene_id "PCSK2"; transcript_id "NM_002594:uc002wpm.3";
+chr20 hg19_knownGene CDS 17462229 17462712 0.000000 + 1 gene_id "PCSK2"; transcript_id "NM_002594:uc002wpm.3";
+chr20 hg19_knownGene exon 17462229 17465222 0.000000 + . gene_id "PCSK2"; transcript_id "NM_002594:uc002wpm.3";
+chr20 hg19_knownGene CDS 17207951 17208127 0.000000 + 0 gene_id "PCSK2"; transcript_id "NM_001201529:uc010zrm.2";
+chr20 hg19_knownGene exon 17207597 17208127 0.000000 + . gene_id "PCSK2"; transcript_id "NM_001201529:uc010zrm.2";
+chr20 hg19_knownGene CDS 17338972 17339085 0.000000 + 0 gene_id "PCSK2"; transcript_id "NM_001201529:uc010zrm.2";
+chr20 hg19_knownGene exon 17338972 17339085 0.000000 + . gene_id "PCSK2"; transcript_id "NM_001201529:uc010zrm.2";
+chr20 hg19_knownGene CDS 17341177 17341285 0.000000 + 0 gene_id "PCSK2"; transcript_id "NM_001201529:uc010zrm.2";
+chr20 hg19_knownGene exon 17341177 17341285 0.000000 + . gene_id "PCSK2"; transcript_id "NM_001201529:uc010zrm.2";
+chr20 hg19_knownGene CDS 17349885 17349922 0.000000 + 2 gene_id "PCSK2"; transcript_id "NM_001201529:uc010zrm.2";
+chr20 hg19_knownGene exon 17349885 17349922 0.000000 + . gene_id "PCSK2"; transcript_id "NM_001201529:uc010zrm.2";
+chr20 hg19_knownGene CDS 17389908 17389984 0.000000 + 0 gene_id "PCSK2"; transcript_id "NM_001201529:uc010zrm.2";
+chr20 hg19_knownGene exon 17389908 17389984 0.000000 + . gene_id "PCSK2"; transcript_id "NM_001201529:uc010zrm.2";
+chr20 hg19_knownGene CDS 17410080 17410168 0.000000 + 1 gene_id "PCSK2"; transcript_id "NM_001201529:uc010zrm.2";
+chr20 hg19_knownGene exon 17410080 17410168 0.000000 + . gene_id "PCSK2"; transcript_id "NM_001201529:uc010zrm.2";
+chr20 hg19_knownGene CDS 17417353 17417528 0.000000 + 2 gene_id "PCSK2"; transcript_id "NM_001201529:uc010zrm.2";
+chr20 hg19_knownGene exon 17417353 17417528 0.000000 + . gene_id "PCSK2"; transcript_id "NM_001201529:uc010zrm.2";
+chr20 hg19_knownGene CDS 17434387 17434602 0.000000 + 0 gene_id "PCSK2"; transcript_id "NM_001201529:uc010zrm.2";
+chr20 hg19_knownGene exon 17434387 17434602 0.000000 + . gene_id "PCSK2"; transcript_id "NM_001201529:uc010zrm.2";
+chr20 hg19_knownGene CDS 17436993 17437093 0.000000 + 0 gene_id "PCSK2"; transcript_id "NM_001201529:uc010zrm.2";
+chr20 hg19_knownGene exon 17436993 17437093 0.000000 + . gene_id "PCSK2"; transcript_id "NM_001201529:uc010zrm.2";
+chr20 hg19_knownGene CDS 17445971 17446198 0.000000 + 1 gene_id "PCSK2"; transcript_id "NM_001201529:uc010zrm.2";
+chr20 hg19_knownGene exon 17445971 17446198 0.000000 + . gene_id "PCSK2"; transcript_id "NM_001201529:uc010zrm.2";
+chr20 hg19_knownGene CDS 17462229 17462712 0.000000 + 1 gene_id "PCSK2"; transcript_id "NM_001201529:uc010zrm.2";
+chr20 hg19_knownGene exon 17462229 17465222 0.000000 + . gene_id "PCSK2"; transcript_id "NM_001201529:uc010zrm.2";
+chr20 hg19_knownGene CDS 17445807 17446198 0.000000 + 0 gene_id "PCSK2"; transcript_id "AX747025:uc002wpn.3";
+chr20 hg19_knownGene exon 17444078 17446198 0.000000 + . gene_id "PCSK2"; transcript_id "AX747025:uc002wpn.3";
+chr20 hg19_knownGene CDS 17462229 17462712 0.000000 + 1 gene_id "PCSK2"; transcript_id "AX747025:uc002wpn.3";
+chr20 hg19_knownGene exon 17462229 17465222 0.000000 + . gene_id "PCSK2"; transcript_id "AX747025:uc002wpn.3";
+chr20 hg19_knownGene CDS 17474722 17475674 0.000000 - 2 gene_id "BFSP1"; transcript_id "NM_001195:uc002wpo.3";
+chr20 hg19_knownGene exon 17474550 17475674 0.000000 - . gene_id "BFSP1"; transcript_id "NM_001195:uc002wpo.3";
+chr20 hg19_knownGene CDS 17477583 17477668 0.000000 - 1 gene_id "BFSP1"; transcript_id "NM_001195:uc002wpo.3";
+chr20 hg19_knownGene exon 17477583 17477668 0.000000 - . gene_id "BFSP1"; transcript_id "NM_001195:uc002wpo.3";
+chr20 hg19_knownGene CDS 17479465 17479685 0.000000 - 0 gene_id "BFSP1"; transcript_id "NM_001195:uc002wpo.3";
+chr20 hg19_knownGene exon 17479465 17479685 0.000000 - . gene_id "BFSP1"; transcript_id "NM_001195:uc002wpo.3";
+chr20 hg19_knownGene CDS 17489534 17489641 0.000000 - 0 gene_id "BFSP1"; transcript_id "NM_001195:uc002wpo.3";
+chr20 hg19_knownGene exon 17489534 17489641 0.000000 - . gene_id "BFSP1"; transcript_id "NM_001195:uc002wpo.3";
+chr20 hg19_knownGene CDS 17492621 17492713 0.000000 - 0 gene_id "BFSP1"; transcript_id "NM_001195:uc002wpo.3";
+chr20 hg19_knownGene exon 17492621 17492713 0.000000 - . gene_id "BFSP1"; transcript_id "NM_001195:uc002wpo.3";
+chr20 hg19_knownGene CDS 17495366 17495461 0.000000 - 0 gene_id "BFSP1"; transcript_id "NM_001195:uc002wpo.3";
+chr20 hg19_knownGene exon 17495366 17495461 0.000000 - . gene_id "BFSP1"; transcript_id "NM_001195:uc002wpo.3";
+chr20 hg19_knownGene CDS 17505493 17505553 0.000000 - 1 gene_id "BFSP1"; transcript_id "NM_001195:uc002wpo.3";
+chr20 hg19_knownGene exon 17505493 17505553 0.000000 - . gene_id "BFSP1"; transcript_id "NM_001195:uc002wpo.3";
+chr20 hg19_knownGene CDS 17511598 17511974 0.000000 - 0 gene_id "BFSP1"; transcript_id "NM_001195:uc002wpo.3";
+chr20 hg19_knownGene exon 17511598 17512013 0.000000 - . gene_id "BFSP1"; transcript_id "NM_001195:uc002wpo.3";
+chr20 hg19_knownGene CDS 17474722 17475674 0.000000 - 2 gene_id "BFSP1"; transcript_id "NM_001161705:uc002wpp.3";
+chr20 hg19_knownGene exon 17474550 17475674 0.000000 - . gene_id "BFSP1"; transcript_id "NM_001161705:uc002wpp.3";
+chr20 hg19_knownGene CDS 17477583 17477668 0.000000 - 1 gene_id "BFSP1"; transcript_id "NM_001161705:uc002wpp.3";
+chr20 hg19_knownGene exon 17477583 17477668 0.000000 - . gene_id "BFSP1"; transcript_id "NM_001161705:uc002wpp.3";
+chr20 hg19_knownGene CDS 17479465 17479685 0.000000 - 0 gene_id "BFSP1"; transcript_id "NM_001161705:uc002wpp.3";
+chr20 hg19_knownGene exon 17479465 17479685 0.000000 - . gene_id "BFSP1"; transcript_id "NM_001161705:uc002wpp.3";
+chr20 hg19_knownGene CDS 17489534 17489641 0.000000 - 0 gene_id "BFSP1"; transcript_id "NM_001161705:uc002wpp.3";
+chr20 hg19_knownGene exon 17489534 17489641 0.000000 - . gene_id "BFSP1"; transcript_id "NM_001161705:uc002wpp.3";
+chr20 hg19_knownGene CDS 17492621 17492713 0.000000 - 0 gene_id "BFSP1"; transcript_id "NM_001161705:uc002wpp.3";
+chr20 hg19_knownGene exon 17492621 17492713 0.000000 - . gene_id "BFSP1"; transcript_id "NM_001161705:uc002wpp.3";
+chr20 hg19_knownGene CDS 17495366 17495461 0.000000 - 0 gene_id "BFSP1"; transcript_id "NM_001161705:uc002wpp.3";
+chr20 hg19_knownGene exon 17495366 17495461 0.000000 - . gene_id "BFSP1"; transcript_id "NM_001161705:uc002wpp.3";
+chr20 hg19_knownGene CDS 17505493 17505553 0.000000 - 1 gene_id "BFSP1"; transcript_id "NM_001161705:uc002wpp.3";
+chr20 hg19_knownGene exon 17505493 17505553 0.000000 - . gene_id "BFSP1"; transcript_id "NM_001161705:uc002wpp.3";
+chr20 hg19_knownGene CDS 17539333 17539334 0.000000 - 0 gene_id "BFSP1"; transcript_id "NM_001161705:uc002wpp.3";
+chr20 hg19_knownGene exon 17539333 17539605 0.000000 - . gene_id "BFSP1"; transcript_id "NM_001161705:uc002wpp.3";
+chr20 hg19_knownGene CDS 17474722 17475674 0.000000 - 2 gene_id "BFSP1"; transcript_id "AK316247:uc010zrn.2";
+chr20 hg19_knownGene exon 17474550 17475674 0.000000 - . gene_id "BFSP1"; transcript_id "AK316247:uc010zrn.2";
+chr20 hg19_knownGene CDS 17477583 17477668 0.000000 - 1 gene_id "BFSP1"; transcript_id "AK316247:uc010zrn.2";
+chr20 hg19_knownGene exon 17477583 17477668 0.000000 - . gene_id "BFSP1"; transcript_id "AK316247:uc010zrn.2";
+chr20 hg19_knownGene CDS 17479465 17479685 0.000000 - 0 gene_id "BFSP1"; transcript_id "AK316247:uc010zrn.2";
+chr20 hg19_knownGene exon 17479465 17479685 0.000000 - . gene_id "BFSP1"; transcript_id "AK316247:uc010zrn.2";
+chr20 hg19_knownGene CDS 17489534 17489641 0.000000 - 0 gene_id "BFSP1"; transcript_id "AK316247:uc010zrn.2";
+chr20 hg19_knownGene exon 17489534 17489641 0.000000 - . gene_id "BFSP1"; transcript_id "AK316247:uc010zrn.2";
+chr20 hg19_knownGene CDS 17492621 17492713 0.000000 - 0 gene_id "BFSP1"; transcript_id "AK316247:uc010zrn.2";
+chr20 hg19_knownGene exon 17492621 17492713 0.000000 - . gene_id "BFSP1"; transcript_id "AK316247:uc010zrn.2";
+chr20 hg19_knownGene CDS 17495366 17495461 0.000000 - 0 gene_id "BFSP1"; transcript_id "AK316247:uc010zrn.2";
+chr20 hg19_knownGene exon 17495366 17495461 0.000000 - . gene_id "BFSP1"; transcript_id "AK316247:uc010zrn.2";
+chr20 hg19_knownGene CDS 17505493 17505513 0.000000 - 0 gene_id "BFSP1"; transcript_id "AK316247:uc010zrn.2";
+chr20 hg19_knownGene exon 17505493 17505553 0.000000 - . gene_id "BFSP1"; transcript_id "AK316247:uc010zrn.2";
+chr20 hg19_knownGene exon 17521710 17521844 0.000000 - . gene_id "BFSP1"; transcript_id "AK316247:uc010zrn.2";
+chr20 hg19_knownGene exon 17539333 17539605 0.000000 - . gene_id "BFSP1"; transcript_id "AK316247:uc010zrn.2";
+chr20 hg19_knownGene CDS 17474722 17475674 0.000000 - 2 gene_id "BFSP1"; transcript_id "AK304673:uc010zro.2";
+chr20 hg19_knownGene exon 17474550 17475674 0.000000 - . gene_id "BFSP1"; transcript_id "AK304673:uc010zro.2";
+chr20 hg19_knownGene CDS 17477583 17477668 0.000000 - 1 gene_id "BFSP1"; transcript_id "AK304673:uc010zro.2";
+chr20 hg19_knownGene exon 17477583 17477668 0.000000 - . gene_id "BFSP1"; transcript_id "AK304673:uc010zro.2";
+chr20 hg19_knownGene CDS 17479465 17479685 0.000000 - 0 gene_id "BFSP1"; transcript_id "AK304673:uc010zro.2";
+chr20 hg19_knownGene exon 17479465 17479685 0.000000 - . gene_id "BFSP1"; transcript_id "AK304673:uc010zro.2";
+chr20 hg19_knownGene CDS 17489534 17489641 0.000000 - 0 gene_id "BFSP1"; transcript_id "AK304673:uc010zro.2";
+chr20 hg19_knownGene exon 17489534 17489641 0.000000 - . gene_id "BFSP1"; transcript_id "AK304673:uc010zro.2";
+chr20 hg19_knownGene CDS 17492621 17492713 0.000000 - 0 gene_id "BFSP1"; transcript_id "AK304673:uc010zro.2";
+chr20 hg19_knownGene exon 17492621 17492713 0.000000 - . gene_id "BFSP1"; transcript_id "AK304673:uc010zro.2";
+chr20 hg19_knownGene CDS 17495366 17495461 0.000000 - 0 gene_id "BFSP1"; transcript_id "AK304673:uc010zro.2";
+chr20 hg19_knownGene exon 17495366 17495461 0.000000 - . gene_id "BFSP1"; transcript_id "AK304673:uc010zro.2";
+chr20 hg19_knownGene CDS 17505493 17505513 0.000000 - 0 gene_id "BFSP1"; transcript_id "AK304673:uc010zro.2";
+chr20 hg19_knownGene exon 17505493 17505553 0.000000 - . gene_id "BFSP1"; transcript_id "AK304673:uc010zro.2";
+chr20 hg19_knownGene exon 17541002 17541223 0.000000 - . gene_id "BFSP1"; transcript_id "AK304673:uc010zro.2";
+chr20 hg19_knownGene exon 17543619 17543740 0.000000 - . gene_id "BFSP1"; transcript_id "AK304673:uc010zro.2";
+chr20 hg19_knownGene exon 17549816 17549865 0.000000 - . gene_id "BFSP1"; transcript_id "AK304673:uc010zro.2";
+chr20 hg19_knownGene exon 17556851 17557155 0.000000 - . gene_id "7SK"; transcript_id ":uc021wav.1";
+chr20 hg19_knownGene exon 17550599 17550856 0.000000 + . gene_id "DSTN"; transcript_id "NM_001011546:uc002wpq.3";
+chr20 hg19_knownGene exon 17572577 17572708 0.000000 + . gene_id "DSTN"; transcript_id "NM_001011546:uc002wpq.3";
+chr20 hg19_knownGene CDS 17581431 17581690 0.000000 + 0 gene_id "DSTN"; transcript_id "NM_001011546:uc002wpq.3";
+chr20 hg19_knownGene exon 17581383 17581690 0.000000 + . gene_id "DSTN"; transcript_id "NM_001011546:uc002wpq.3";
+chr20 hg19_knownGene CDS 17585200 17585276 0.000000 + 1 gene_id "DSTN"; transcript_id "NM_001011546:uc002wpq.3";
+chr20 hg19_knownGene exon 17585200 17585276 0.000000 + . gene_id "DSTN"; transcript_id "NM_001011546:uc002wpq.3";
+chr20 hg19_knownGene CDS 17587682 17587788 0.000000 + 2 gene_id "DSTN"; transcript_id "NM_001011546:uc002wpq.3";
+chr20 hg19_knownGene exon 17587682 17588652 0.000000 + . gene_id "DSTN"; transcript_id "NM_001011546:uc002wpq.3";
+chr20 hg19_knownGene CDS 17550854 17550856 0.000000 + 0 gene_id "DSTN"; transcript_id "NM_006870:uc002wpr.3";
+chr20 hg19_knownGene exon 17550599 17550856 0.000000 + . gene_id "DSTN"; transcript_id "NM_006870:uc002wpr.3";
+chr20 hg19_knownGene CDS 17581383 17581690 0.000000 + 0 gene_id "DSTN"; transcript_id "NM_006870:uc002wpr.3";
+chr20 hg19_knownGene exon 17581383 17581690 0.000000 + . gene_id "DSTN"; transcript_id "NM_006870:uc002wpr.3";
+chr20 hg19_knownGene CDS 17585200 17585276 0.000000 + 1 gene_id "DSTN"; transcript_id "NM_006870:uc002wpr.3";
+chr20 hg19_knownGene exon 17585200 17585276 0.000000 + . gene_id "DSTN"; transcript_id "NM_006870:uc002wpr.3";
+chr20 hg19_knownGene CDS 17587682 17587788 0.000000 + 2 gene_id "DSTN"; transcript_id "NM_006870:uc002wpr.3";
+chr20 hg19_knownGene exon 17587682 17588652 0.000000 + . gene_id "DSTN"; transcript_id "NM_006870:uc002wpr.3";
+chr20 hg19_knownGene exon 17577343 17577435 0.000000 + . gene_id "DSTN"; transcript_id "AK308562:uc010gck.3";
+chr20 hg19_knownGene CDS 17581431 17581690 0.000000 + 0 gene_id "DSTN"; transcript_id "AK308562:uc010gck.3";
+chr20 hg19_knownGene exon 17581383 17581690 0.000000 + . gene_id "DSTN"; transcript_id "AK308562:uc010gck.3";
+chr20 hg19_knownGene CDS 17585200 17585276 0.000000 + 1 gene_id "DSTN"; transcript_id "AK308562:uc010gck.3";
+chr20 hg19_knownGene exon 17585200 17585276 0.000000 + . gene_id "DSTN"; transcript_id "AK308562:uc010gck.3";
+chr20 hg19_knownGene CDS 17587682 17587788 0.000000 + 2 gene_id "DSTN"; transcript_id "AK308562:uc010gck.3";
+chr20 hg19_knownGene exon 17587682 17588652 0.000000 + . gene_id "DSTN"; transcript_id "AK308562:uc010gck.3";
+chr20 hg19_knownGene CDS 17594830 17594865 0.000000 - 0 gene_id "RRBP1"; transcript_id "AK098319:uc010zrp.1";
+chr20 hg19_knownGene exon 17594323 17594865 0.000000 - . gene_id "RRBP1"; transcript_id "AK098319:uc010zrp.1";
+chr20 hg19_knownGene CDS 17595382 17595525 0.000000 - 0 gene_id "RRBP1"; transcript_id "AK098319:uc010zrp.1";
+chr20 hg19_knownGene exon 17595382 17595525 0.000000 - . gene_id "RRBP1"; transcript_id "AK098319:uc010zrp.1";
+chr20 hg19_knownGene CDS 17596076 17596174 0.000000 - 0 gene_id "RRBP1"; transcript_id "AK098319:uc010zrp.1";
+chr20 hg19_knownGene exon 17596076 17596174 0.000000 - . gene_id "RRBP1"; transcript_id "AK098319:uc010zrp.1";
+chr20 hg19_knownGene CDS 17596571 17596654 0.000000 - 0 gene_id "RRBP1"; transcript_id "AK098319:uc010zrp.1";
+chr20 hg19_knownGene exon 17596571 17596654 0.000000 - . gene_id "RRBP1"; transcript_id "AK098319:uc010zrp.1";
+chr20 hg19_knownGene CDS 17597377 17597463 0.000000 - 0 gene_id "RRBP1"; transcript_id "AK098319:uc010zrp.1";
+chr20 hg19_knownGene exon 17597377 17597484 0.000000 - . gene_id "RRBP1"; transcript_id "AK098319:uc010zrp.1";
+chr20 hg19_knownGene exon 17599241 17600462 0.000000 - . gene_id "RRBP1"; transcript_id "AK098319:uc010zrp.1";
+chr20 hg19_knownGene CDS 17594830 17594865 0.000000 - 0 gene_id "RRBP1"; transcript_id "AK093465:uc002wpt.1";
+chr20 hg19_knownGene exon 17594323 17594865 0.000000 - . gene_id "RRBP1"; transcript_id "AK093465:uc002wpt.1";
+chr20 hg19_knownGene CDS 17595385 17595525 0.000000 - 0 gene_id "RRBP1"; transcript_id "AK093465:uc002wpt.1";
+chr20 hg19_knownGene exon 17595385 17595525 0.000000 - . gene_id "RRBP1"; transcript_id "AK093465:uc002wpt.1";
+chr20 hg19_knownGene CDS 17596076 17596174 0.000000 - 0 gene_id "RRBP1"; transcript_id "AK093465:uc002wpt.1";
+chr20 hg19_knownGene exon 17596076 17596174 0.000000 - . gene_id "RRBP1"; transcript_id "AK093465:uc002wpt.1";
+chr20 hg19_knownGene CDS 17596571 17596654 0.000000 - 0 gene_id "RRBP1"; transcript_id "AK093465:uc002wpt.1";
+chr20 hg19_knownGene exon 17596571 17596654 0.000000 - . gene_id "RRBP1"; transcript_id "AK093465:uc002wpt.1";
+chr20 hg19_knownGene CDS 17597377 17597484 0.000000 - 0 gene_id "RRBP1"; transcript_id "AK093465:uc002wpt.1";
+chr20 hg19_knownGene exon 17597377 17597484 0.000000 - . gene_id "RRBP1"; transcript_id "AK093465:uc002wpt.1";
+chr20 hg19_knownGene CDS 17599241 17599324 0.000000 - 0 gene_id "RRBP1"; transcript_id "AK093465:uc002wpt.1";
+chr20 hg19_knownGene exon 17599241 17599324 0.000000 - . gene_id "RRBP1"; transcript_id "AK093465:uc002wpt.1";
+chr20 hg19_knownGene CDS 17600278 17600373 0.000000 - 0 gene_id "RRBP1"; transcript_id "AK093465:uc002wpt.1";
+chr20 hg19_knownGene exon 17600278 17600373 0.000000 - . gene_id "RRBP1"; transcript_id "AK093465:uc002wpt.1";
+chr20 hg19_knownGene CDS 17600944 17601015 0.000000 - 0 gene_id "RRBP1"; transcript_id "AK093465:uc002wpt.1";
+chr20 hg19_knownGene exon 17600944 17601015 0.000000 - . gene_id "RRBP1"; transcript_id "AK093465:uc002wpt.1";
+chr20 hg19_knownGene CDS 17601360 17601452 0.000000 - 0 gene_id "RRBP1"; transcript_id "AK093465:uc002wpt.1";
+chr20 hg19_knownGene exon 17601360 17601452 0.000000 - . gene_id "RRBP1"; transcript_id "AK093465:uc002wpt.1";
+chr20 hg19_knownGene CDS 17602103 17602192 0.000000 - 0 gene_id "RRBP1"; transcript_id "AK093465:uc002wpt.1";
+chr20 hg19_knownGene exon 17602103 17602192 0.000000 - . gene_id "RRBP1"; transcript_id "AK093465:uc002wpt.1";
+chr20 hg19_knownGene CDS 17602335 17602418 0.000000 - 0 gene_id "RRBP1"; transcript_id "AK093465:uc002wpt.1";
+chr20 hg19_knownGene exon 17602335 17602418 0.000000 - . gene_id "RRBP1"; transcript_id "AK093465:uc002wpt.1";
+chr20 hg19_knownGene CDS 17602500 17602550 0.000000 - 0 gene_id "RRBP1"; transcript_id "AK093465:uc002wpt.1";
+chr20 hg19_knownGene exon 17602500 17602592 0.000000 - . gene_id "RRBP1"; transcript_id "AK093465:uc002wpt.1";
+chr20 hg19_knownGene exon 17603493 17603975 0.000000 - . gene_id "RRBP1"; transcript_id "AK093465:uc002wpt.1";
+chr20 hg19_knownGene CDS 17601153 17601452 0.000000 - 0 gene_id "RRBP1"; transcript_id "AK309197:uc010gcm.1";
+chr20 hg19_knownGene exon 17600883 17601452 0.000000 - . gene_id "RRBP1"; transcript_id "AK309197:uc010gcm.1";
+chr20 hg19_knownGene CDS 17602103 17602192 0.000000 - 0 gene_id "RRBP1"; transcript_id "AK309197:uc010gcm.1";
+chr20 hg19_knownGene exon 17602103 17602192 0.000000 - . gene_id "RRBP1"; transcript_id "AK309197:uc010gcm.1";
+chr20 hg19_knownGene CDS 17602335 17602418 0.000000 - 0 gene_id "RRBP1"; transcript_id "AK309197:uc010gcm.1";
+chr20 hg19_knownGene exon 17602335 17602418 0.000000 - . gene_id "RRBP1"; transcript_id "AK309197:uc010gcm.1";
+chr20 hg19_knownGene CDS 17602500 17602592 0.000000 - 0 gene_id "RRBP1"; transcript_id "AK309197:uc010gcm.1";
+chr20 hg19_knownGene exon 17602500 17602592 0.000000 - . gene_id "RRBP1"; transcript_id "AK309197:uc010gcm.1";
+chr20 hg19_knownGene CDS 17610468 17610606 0.000000 - 1 gene_id "RRBP1"; transcript_id "AK309197:uc010gcm.1";
+chr20 hg19_knownGene exon 17610468 17610606 0.000000 - . gene_id "RRBP1"; transcript_id "AK309197:uc010gcm.1";
+chr20 hg19_knownGene CDS 17614105 17614172 0.000000 - 0 gene_id "RRBP1"; transcript_id "AK309197:uc010gcm.1";
+chr20 hg19_knownGene exon 17614105 17614258 0.000000 - . gene_id "RRBP1"; transcript_id "AK309197:uc010gcm.1";
+chr20 hg19_knownGene exon 17616191 17616309 0.000000 - . gene_id "RRBP1"; transcript_id "AK309197:uc010gcm.1";
+chr20 hg19_knownGene exon 17617222 17617374 0.000000 - . gene_id "RRBP1"; transcript_id "AK309197:uc010gcm.1";
+chr20 hg19_knownGene CDS 17594830 17594865 0.000000 - 0 gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene exon 17594323 17594865 0.000000 - . gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene CDS 17595382 17595525 0.000000 - 0 gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene exon 17595382 17595525 0.000000 - . gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene CDS 17596076 17596174 0.000000 - 0 gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene exon 17596076 17596174 0.000000 - . gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene CDS 17596571 17596654 0.000000 - 0 gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene exon 17596571 17596654 0.000000 - . gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene CDS 17597377 17597484 0.000000 - 0 gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene exon 17597377 17597484 0.000000 - . gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene CDS 17599241 17599324 0.000000 - 0 gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene exon 17599241 17599324 0.000000 - . gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene CDS 17600278 17600373 0.000000 - 0 gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene exon 17600278 17600373 0.000000 - . gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene CDS 17600944 17601015 0.000000 - 0 gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene exon 17600944 17601015 0.000000 - . gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene CDS 17601360 17601452 0.000000 - 0 gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene exon 17601360 17601452 0.000000 - . gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene CDS 17602103 17602192 0.000000 - 0 gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene exon 17602103 17602192 0.000000 - . gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene CDS 17602335 17602418 0.000000 - 0 gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene exon 17602335 17602418 0.000000 - . gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene CDS 17602500 17602592 0.000000 - 0 gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene exon 17602500 17602592 0.000000 - . gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene CDS 17605221 17605313 0.000000 - 0 gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene exon 17605221 17605313 0.000000 - . gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene CDS 17606157 17606247 0.000000 - 1 gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene exon 17606157 17606247 0.000000 - . gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene CDS 17607993 17608027 0.000000 - 0 gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene exon 17607993 17608027 0.000000 - . gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene CDS 17608149 17608327 0.000000 - 2 gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene exon 17608149 17608327 0.000000 - . gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene CDS 17610468 17610606 0.000000 - 0 gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene exon 17610468 17610606 0.000000 - . gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene CDS 17614105 17614258 0.000000 - 1 gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene exon 17614105 17614258 0.000000 - . gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene CDS 17616191 17616309 0.000000 - 0 gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene exon 17616191 17616309 0.000000 - . gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene CDS 17617222 17617374 0.000000 - 0 gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene exon 17617222 17617374 0.000000 - . gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene CDS 17622442 17622564 0.000000 - 0 gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene exon 17622442 17622564 0.000000 - . gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene CDS 17623624 17623707 0.000000 - 0 gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene exon 17623624 17623772 0.000000 - . gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene exon 17639241 17639743 0.000000 - . gene_id "RRBP1"; transcript_id "AB384598:uc002wpu.3";
+chr20 hg19_knownGene CDS 17639338 17641152 0.000000 - 0 gene_id "RRBP1"; transcript_id "AB384598:uc021waw.1";
+chr20 hg19_knownGene exon 17639335 17641152 0.000000 - . gene_id "RRBP1"; transcript_id "AB384598:uc021waw.1";
+chr20 hg19_knownGene CDS 17594830 17594865 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene exon 17594323 17594865 0.000000 - . gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene CDS 17595382 17595525 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene exon 17595382 17595525 0.000000 - . gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene CDS 17596076 17596174 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene exon 17596076 17596174 0.000000 - . gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene CDS 17596571 17596654 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene exon 17596571 17596654 0.000000 - . gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene CDS 17597377 17597484 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene exon 17597377 17597484 0.000000 - . gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene CDS 17599241 17599324 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene exon 17599241 17599324 0.000000 - . gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene CDS 17600278 17600373 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene exon 17600278 17600373 0.000000 - . gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene CDS 17600944 17601015 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene exon 17600944 17601015 0.000000 - . gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene CDS 17601360 17601452 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene exon 17601360 17601452 0.000000 - . gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene CDS 17602103 17602192 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene exon 17602103 17602192 0.000000 - . gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene CDS 17602335 17602418 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene exon 17602335 17602418 0.000000 - . gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene CDS 17602500 17602592 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene exon 17602500 17602592 0.000000 - . gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene CDS 17605221 17605313 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene exon 17605221 17605313 0.000000 - . gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene CDS 17606157 17606247 0.000000 - 1 gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene exon 17606157 17606247 0.000000 - . gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene CDS 17607993 17608027 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene exon 17607993 17608027 0.000000 - . gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene CDS 17608149 17608327 0.000000 - 2 gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene exon 17608149 17608327 0.000000 - . gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene CDS 17610468 17610606 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene exon 17610468 17610606 0.000000 - . gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene CDS 17614105 17614258 0.000000 - 1 gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene exon 17614105 17614258 0.000000 - . gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene CDS 17616191 17616309 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene exon 17616191 17616309 0.000000 - . gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene CDS 17617222 17617374 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene exon 17617222 17617374 0.000000 - . gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene CDS 17622442 17622564 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene exon 17622442 17622564 0.000000 - . gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene CDS 17623624 17623772 0.000000 - 2 gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene exon 17623624 17623772 0.000000 - . gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene CDS 17639250 17639334 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene exon 17639250 17639334 0.000000 - . gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene CDS 17640625 17641152 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene exon 17640625 17641173 0.000000 - . gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene exon 17660644 17660720 0.000000 - . gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene exon 17662673 17662928 0.000000 - . gene_id "RRBP1"; transcript_id "NM_001042576:uc002wpv.1";
+chr20 hg19_knownGene CDS 17594830 17594865 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene exon 17594323 17594865 0.000000 - . gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene CDS 17595382 17595525 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene exon 17595382 17595525 0.000000 - . gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene CDS 17596076 17596174 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene exon 17596076 17596174 0.000000 - . gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene CDS 17596571 17596654 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene exon 17596571 17596654 0.000000 - . gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene CDS 17597377 17597484 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene exon 17597377 17597484 0.000000 - . gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene CDS 17599241 17599324 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene exon 17599241 17599324 0.000000 - . gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene CDS 17600278 17600373 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene exon 17600278 17600373 0.000000 - . gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene CDS 17600944 17601015 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene exon 17600944 17601015 0.000000 - . gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene CDS 17601360 17601452 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene exon 17601360 17601452 0.000000 - . gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene CDS 17602103 17602192 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene exon 17602103 17602192 0.000000 - . gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene CDS 17602335 17602418 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene exon 17602335 17602418 0.000000 - . gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene CDS 17602500 17602592 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene exon 17602500 17602592 0.000000 - . gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene CDS 17605221 17605313 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene exon 17605221 17605313 0.000000 - . gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene CDS 17606157 17606247 0.000000 - 1 gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene exon 17606157 17606247 0.000000 - . gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene CDS 17607993 17608027 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene exon 17607993 17608027 0.000000 - . gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene CDS 17608149 17608327 0.000000 - 2 gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene exon 17608149 17608327 0.000000 - . gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene CDS 17610468 17610606 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene exon 17610468 17610606 0.000000 - . gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene CDS 17614105 17614258 0.000000 - 1 gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene exon 17614105 17614258 0.000000 - . gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene CDS 17616191 17616309 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene exon 17616191 17616309 0.000000 - . gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene CDS 17617222 17617374 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene exon 17617222 17617374 0.000000 - . gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene CDS 17622442 17622564 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene exon 17622442 17622564 0.000000 - . gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene CDS 17623624 17623772 0.000000 - 2 gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene exon 17623624 17623772 0.000000 - . gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene CDS 17639250 17639334 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene exon 17639250 17639334 0.000000 - . gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene CDS 17640625 17641152 0.000000 - 0 gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene exon 17640625 17641173 0.000000 - . gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene exon 17662673 17662928 0.000000 - . gene_id "RRBP1"; transcript_id "NM_004587:uc002wpw.1";
+chr20 hg19_knownGene CDS 17594830 17594865 0.000000 - 0 gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene exon 17594323 17594865 0.000000 - . gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene CDS 17595382 17595525 0.000000 - 0 gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene exon 17595382 17595525 0.000000 - . gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene CDS 17596076 17596174 0.000000 - 0 gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene exon 17596076 17596174 0.000000 - . gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene CDS 17596571 17596654 0.000000 - 0 gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene exon 17596571 17596654 0.000000 - . gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene CDS 17597377 17597484 0.000000 - 0 gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene exon 17597377 17597484 0.000000 - . gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene CDS 17599241 17599324 0.000000 - 0 gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene exon 17599241 17599324 0.000000 - . gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene CDS 17600278 17600373 0.000000 - 0 gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene exon 17600278 17600373 0.000000 - . gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene CDS 17600944 17601015 0.000000 - 0 gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene exon 17600944 17601015 0.000000 - . gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene CDS 17601360 17601452 0.000000 - 0 gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene exon 17601360 17601452 0.000000 - . gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene CDS 17602103 17602192 0.000000 - 0 gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene exon 17602103 17602192 0.000000 - . gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene CDS 17602335 17602418 0.000000 - 0 gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene exon 17602335 17602418 0.000000 - . gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene CDS 17602500 17602592 0.000000 - 0 gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene exon 17602500 17602592 0.000000 - . gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene CDS 17605221 17605313 0.000000 - 0 gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene exon 17605221 17605313 0.000000 - . gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene CDS 17606157 17606247 0.000000 - 1 gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene exon 17606157 17606247 0.000000 - . gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene CDS 17607993 17608027 0.000000 - 0 gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene exon 17607993 17608027 0.000000 - . gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene CDS 17608149 17608327 0.000000 - 2 gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene exon 17608149 17608327 0.000000 - . gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene CDS 17610468 17610606 0.000000 - 0 gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene exon 17610468 17610606 0.000000 - . gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene CDS 17614105 17614258 0.000000 - 1 gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene exon 17614105 17614258 0.000000 - . gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene CDS 17616191 17616309 0.000000 - 0 gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene exon 17616191 17616309 0.000000 - . gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene CDS 17617222 17617374 0.000000 - 0 gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene exon 17617222 17617374 0.000000 - . gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene CDS 17622442 17622564 0.000000 - 0 gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene exon 17622442 17622564 0.000000 - . gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene CDS 17623624 17623707 0.000000 - 0 gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene exon 17623624 17623772 0.000000 - . gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene exon 17660644 17660720 0.000000 - . gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene exon 17662673 17662928 0.000000 - . gene_id "RRBP1"; transcript_id "BC128578:uc010gcl.1";
+chr20 hg19_knownGene CDS 17639986 17641152 0.000000 - 0 gene_id "RRBP1"; transcript_id "AB037819:uc010zrq.1";
+chr20 hg19_knownGene exon 17639981 17641173 0.000000 - . gene_id "RRBP1"; transcript_id "AB037819:uc010zrq.1";
+chr20 hg19_knownGene exon 17660644 17660720 0.000000 - . gene_id "RRBP1"; transcript_id "AB037819:uc010zrq.1";
+chr20 hg19_knownGene exon 17662673 17662928 0.000000 - . gene_id "RRBP1"; transcript_id "AB037819:uc010zrq.1";
+chr20 hg19_knownGene CDS 17639986 17641152 0.000000 - 0 gene_id "RRBP1"; transcript_id "BC128577:uc010zrr.1";
+chr20 hg19_knownGene exon 17639981 17641173 0.000000 - . gene_id "RRBP1"; transcript_id "BC128577:uc010zrr.1";
+chr20 hg19_knownGene exon 17662673 17662928 0.000000 - . gene_id "RRBP1"; transcript_id "BC128577:uc010zrr.1";
+chr20 hg19_knownGene CDS 17674334 17674351 0.000000 + 0 gene_id "BANF2"; transcript_id "NM_001159495:uc010zrs.1";
+chr20 hg19_knownGene exon 17674320 17674351 0.000000 + . gene_id "BANF2"; transcript_id "NM_001159495:uc010zrs.1";
+chr20 hg19_knownGene CDS 17705668 17705796 0.000000 + 0 gene_id "BANF2"; transcript_id "NM_001159495:uc010zrs.1";
+chr20 hg19_knownGene exon 17705668 17705796 0.000000 + . gene_id "BANF2"; transcript_id "NM_001159495:uc010zrs.1";
+chr20 hg19_knownGene CDS 17716310 17716453 0.000000 + 0 gene_id "BANF2"; transcript_id "NM_001159495:uc010zrs.1";
+chr20 hg19_knownGene exon 17716310 17716517 0.000000 + . gene_id "BANF2"; transcript_id "NM_001159495:uc010zrs.1";
+chr20 hg19_knownGene exon 17680593 17680700 0.000000 + . gene_id "BANF2"; transcript_id "NM_178477:uc002wpz.2";
+chr20 hg19_knownGene exon 17703361 17703523 0.000000 + . gene_id "BANF2"; transcript_id "NM_178477:uc002wpz.2";
+chr20 hg19_knownGene CDS 17705671 17705796 0.000000 + 0 gene_id "BANF2"; transcript_id "NM_178477:uc002wpz.2";
+chr20 hg19_knownGene exon 17705668 17705796 0.000000 + . gene_id "BANF2"; transcript_id "NM_178477:uc002wpz.2";
+chr20 hg19_knownGene CDS 17716310 17716453 0.000000 + 0 gene_id "BANF2"; transcript_id "NM_178477:uc002wpz.2";
+chr20 hg19_knownGene exon 17716310 17716517 0.000000 + . gene_id "BANF2"; transcript_id "NM_178477:uc002wpz.2";
+chr20 hg19_knownGene exon 17680593 17680700 0.000000 + . gene_id "BANF2"; transcript_id "NM_001014977:uc002wqa.2";
+chr20 hg19_knownGene CDS 17705671 17705796 0.000000 + 0 gene_id "BANF2"; transcript_id "NM_001014977:uc002wqa.2";
+chr20 hg19_knownGene exon 17705668 17705796 0.000000 + . gene_id "BANF2"; transcript_id "NM_001014977:uc002wqa.2";
+chr20 hg19_knownGene CDS 17716310 17716453 0.000000 + 0 gene_id "BANF2"; transcript_id "NM_001014977:uc002wqa.2";
+chr20 hg19_knownGene exon 17716310 17716517 0.000000 + . gene_id "BANF2"; transcript_id "NM_001014977:uc002wqa.2";
+chr20 hg19_knownGene exon 17855142 17855219 0.000000 + . gene_id "TRNA_Gln"; transcript_id ":uc021wax.1";
+chr20 hg19_knownGene exon 17922244 17923051 0.000000 - . gene_id "SNX5"; transcript_id "AK054634:uc002wqb.3";
+chr20 hg19_knownGene exon 17923754 17923839 0.000000 - . gene_id "SNX5"; transcript_id "AK054634:uc002wqb.3";
+chr20 hg19_knownGene exon 17928130 17928289 0.000000 - . gene_id "SNX5"; transcript_id "AK054634:uc002wqb.3";
+chr20 hg19_knownGene exon 17929534 17929620 0.000000 - . gene_id "SNX5"; transcript_id "AK054634:uc002wqb.3";
+chr20 hg19_knownGene exon 17929708 17929747 0.000000 - . gene_id "SNX5"; transcript_id "AK054634:uc002wqb.3";
+chr20 hg19_knownGene exon 17930776 17930851 0.000000 - . gene_id "SNX5"; transcript_id "AK054634:uc002wqb.3";
+chr20 hg19_knownGene exon 17930935 17931040 0.000000 - . gene_id "SNX5"; transcript_id "AK054634:uc002wqb.3";
+chr20 hg19_knownGene exon 17931665 17931971 0.000000 - . gene_id "SNX5"; transcript_id "AK054634:uc002wqb.3";
+chr20 hg19_knownGene exon 17932144 17932239 0.000000 - . gene_id "SNX5"; transcript_id "AK054634:uc002wqb.3";
+chr20 hg19_knownGene exon 17933231 17933354 0.000000 - . gene_id "SNX5"; transcript_id "AK054634:uc002wqb.3";
+chr20 hg19_knownGene exon 17934640 17934761 0.000000 - . gene_id "SNX5"; transcript_id "AK054634:uc002wqb.3";
+chr20 hg19_knownGene exon 17936009 17936119 0.000000 - . gene_id "SNX5"; transcript_id "AK054634:uc002wqb.3";
+chr20 hg19_knownGene exon 17937577 17937681 0.000000 - . gene_id "SNX5"; transcript_id "AK054634:uc002wqb.3";
+chr20 hg19_knownGene exon 17941783 17942638 0.000000 - . gene_id "SNX5"; transcript_id "AK054634:uc002wqb.3";
+chr20 hg19_knownGene exon 17943353 17943589 0.000000 - . gene_id "SNORD17"; transcript_id "NR_003045:uc002wqf.1";
+chr20 hg19_knownGene CDS 17923004 17923051 0.000000 - 0 gene_id "SNX5"; transcript_id "NM_014426:uc002wqc.3";
+chr20 hg19_knownGene exon 17922244 17923051 0.000000 - . gene_id "SNX5"; transcript_id "NM_014426:uc002wqc.3";
+chr20 hg19_knownGene CDS 17923754 17923839 0.000000 - 2 gene_id "SNX5"; transcript_id "NM_014426:uc002wqc.3";
+chr20 hg19_knownGene exon 17923754 17923839 0.000000 - . gene_id "SNX5"; transcript_id "NM_014426:uc002wqc.3";
+chr20 hg19_knownGene CDS 17928130 17928289 0.000000 - 0 gene_id "SNX5"; transcript_id "NM_014426:uc002wqc.3";
+chr20 hg19_knownGene exon 17928130 17928289 0.000000 - . gene_id "SNX5"; transcript_id "NM_014426:uc002wqc.3";
+chr20 hg19_knownGene CDS 17929534 17929620 0.000000 - 0 gene_id "SNX5"; transcript_id "NM_014426:uc002wqc.3";
+chr20 hg19_knownGene exon 17929534 17929620 0.000000 - . gene_id "SNX5"; transcript_id "NM_014426:uc002wqc.3";
+chr20 hg19_knownGene CDS 17929708 17929747 0.000000 - 1 gene_id "SNX5"; transcript_id "NM_014426:uc002wqc.3";
+chr20 hg19_knownGene exon 17929708 17929747 0.000000 - . gene_id "SNX5"; transcript_id "NM_014426:uc002wqc.3";
+chr20 hg19_knownGene CDS 17930776 17930851 0.000000 - 2 gene_id "SNX5"; transcript_id "NM_014426:uc002wqc.3";
+chr20 hg19_knownGene exon 17930776 17930851 0.000000 - . gene_id "SNX5"; transcript_id "NM_014426:uc002wqc.3";
+chr20 hg19_knownGene CDS 17930935 17931040 0.000000 - 0 gene_id "SNX5"; transcript_id "NM_014426:uc002wqc.3";
+chr20 hg19_knownGene exon 17930935 17931040 0.000000 - . gene_id "SNX5"; transcript_id "NM_014426:uc002wqc.3";
+chr20 hg19_knownGene CDS 17932144 17932239 0.000000 - 0 gene_id "SNX5"; transcript_id "NM_014426:uc002wqc.3";
+chr20 hg19_knownGene exon 17932144 17932239 0.000000 - . gene_id "SNX5"; transcript_id "NM_014426:uc002wqc.3";
+chr20 hg19_knownGene CDS 17933231 17933354 0.000000 - 1 gene_id "SNX5"; transcript_id "NM_014426:uc002wqc.3";
+chr20 hg19_knownGene exon 17933231 17933354 0.000000 - . gene_id "SNX5"; transcript_id "NM_014426:uc002wqc.3";
+chr20 hg19_knownGene CDS 17934640 17934761 0.000000 - 0 gene_id "SNX5"; transcript_id "NM_014426:uc002wqc.3";
+chr20 hg19_knownGene exon 17934640 17934761 0.000000 - . gene_id "SNX5"; transcript_id "NM_014426:uc002wqc.3";
+chr20 hg19_knownGene CDS 17936009 17936119 0.000000 - 0 gene_id "SNX5"; transcript_id "NM_014426:uc002wqc.3";
+chr20 hg19_knownGene exon 17936009 17936119 0.000000 - . gene_id "SNX5"; transcript_id "NM_014426:uc002wqc.3";
+chr20 hg19_knownGene CDS 17937577 17937681 0.000000 - 0 gene_id "SNX5"; transcript_id "NM_014426:uc002wqc.3";
+chr20 hg19_knownGene exon 17937577 17937681 0.000000 - . gene_id "SNX5"; transcript_id "NM_014426:uc002wqc.3";
+chr20 hg19_knownGene CDS 17949018 17949068 0.000000 - 0 gene_id "SNX5"; transcript_id "NM_014426:uc002wqc.3";
+chr20 hg19_knownGene exon 17949018 17949154 0.000000 - . gene_id "SNX5"; transcript_id "NM_014426:uc002wqc.3";
+chr20 hg19_knownGene CDS 17928128 17928289 0.000000 - 0 gene_id "SNX5"; transcript_id "AK296947:uc010zrt.1";
+chr20 hg19_knownGene exon 17927812 17928289 0.000000 - . gene_id "SNX5"; transcript_id "AK296947:uc010zrt.1";
+chr20 hg19_knownGene CDS 17929534 17929620 0.000000 - 0 gene_id "SNX5"; transcript_id "AK296947:uc010zrt.1";
+chr20 hg19_knownGene exon 17929534 17929620 0.000000 - . gene_id "SNX5"; transcript_id "AK296947:uc010zrt.1";
+chr20 hg19_knownGene CDS 17929708 17929747 0.000000 - 1 gene_id "SNX5"; transcript_id "AK296947:uc010zrt.1";
+chr20 hg19_knownGene exon 17929708 17929747 0.000000 - . gene_id "SNX5"; transcript_id "AK296947:uc010zrt.1";
+chr20 hg19_knownGene CDS 17930776 17930851 0.000000 - 2 gene_id "SNX5"; transcript_id "AK296947:uc010zrt.1";
+chr20 hg19_knownGene exon 17930776 17930851 0.000000 - . gene_id "SNX5"; transcript_id "AK296947:uc010zrt.1";
+chr20 hg19_knownGene CDS 17930935 17931040 0.000000 - 0 gene_id "SNX5"; transcript_id "AK296947:uc010zrt.1";
+chr20 hg19_knownGene exon 17930935 17931040 0.000000 - . gene_id "SNX5"; transcript_id "AK296947:uc010zrt.1";
+chr20 hg19_knownGene CDS 17932144 17932239 0.000000 - 0 gene_id "SNX5"; transcript_id "AK296947:uc010zrt.1";
+chr20 hg19_knownGene exon 17932144 17932239 0.000000 - . gene_id "SNX5"; transcript_id "AK296947:uc010zrt.1";
+chr20 hg19_knownGene CDS 17933231 17933354 0.000000 - 1 gene_id "SNX5"; transcript_id "AK296947:uc010zrt.1";
+chr20 hg19_knownGene exon 17933231 17933354 0.000000 - . gene_id "SNX5"; transcript_id "AK296947:uc010zrt.1";
+chr20 hg19_knownGene CDS 17934640 17934761 0.000000 - 0 gene_id "SNX5"; transcript_id "AK296947:uc010zrt.1";
+chr20 hg19_knownGene exon 17934640 17934761 0.000000 - . gene_id "SNX5"; transcript_id "AK296947:uc010zrt.1";
+chr20 hg19_knownGene CDS 17936009 17936119 0.000000 - 0 gene_id "SNX5"; transcript_id "AK296947:uc010zrt.1";
+chr20 hg19_knownGene exon 17936009 17936119 0.000000 - . gene_id "SNX5"; transcript_id "AK296947:uc010zrt.1";
+chr20 hg19_knownGene CDS 17937577 17937681 0.000000 - 0 gene_id "SNX5"; transcript_id "AK296947:uc010zrt.1";
+chr20 hg19_knownGene exon 17937577 17937681 0.000000 - . gene_id "SNX5"; transcript_id "AK296947:uc010zrt.1";
+chr20 hg19_knownGene CDS 17949018 17949068 0.000000 - 0 gene_id "SNX5"; transcript_id "AK296947:uc010zrt.1";
+chr20 hg19_knownGene exon 17949018 17949154 0.000000 - . gene_id "SNX5"; transcript_id "AK296947:uc010zrt.1";
+chr20 hg19_knownGene CDS 17949017 17949307 0.000000 - 0 gene_id "AK296947"; transcript_id "AK296947:uc021way.1";
+chr20 hg19_knownGene exon 17948333 17949436 0.000000 - . gene_id "AK296947"; transcript_id "AK296947:uc021way.1";
+chr20 hg19_knownGene CDS 17923004 17923051 0.000000 - 0 gene_id "SNX5"; transcript_id "NM_152227:uc002wqd.3";
+chr20 hg19_knownGene exon 17922244 17923051 0.000000 - . gene_id "SNX5"; transcript_id "NM_152227:uc002wqd.3";
+chr20 hg19_knownGene CDS 17923754 17923839 0.000000 - 2 gene_id "SNX5"; transcript_id "NM_152227:uc002wqd.3";
+chr20 hg19_knownGene exon 17923754 17923839 0.000000 - . gene_id "SNX5"; transcript_id "NM_152227:uc002wqd.3";
+chr20 hg19_knownGene CDS 17928130 17928289 0.000000 - 0 gene_id "SNX5"; transcript_id "NM_152227:uc002wqd.3";
+chr20 hg19_knownGene exon 17928130 17928289 0.000000 - . gene_id "SNX5"; transcript_id "NM_152227:uc002wqd.3";
+chr20 hg19_knownGene CDS 17929534 17929620 0.000000 - 0 gene_id "SNX5"; transcript_id "NM_152227:uc002wqd.3";
+chr20 hg19_knownGene exon 17929534 17929620 0.000000 - . gene_id "SNX5"; transcript_id "NM_152227:uc002wqd.3";
+chr20 hg19_knownGene CDS 17929708 17929747 0.000000 - 1 gene_id "SNX5"; transcript_id "NM_152227:uc002wqd.3";
+chr20 hg19_knownGene exon 17929708 17929747 0.000000 - . gene_id "SNX5"; transcript_id "NM_152227:uc002wqd.3";
+chr20 hg19_knownGene CDS 17930776 17930851 0.000000 - 2 gene_id "SNX5"; transcript_id "NM_152227:uc002wqd.3";
+chr20 hg19_knownGene exon 17930776 17930851 0.000000 - . gene_id "SNX5"; transcript_id "NM_152227:uc002wqd.3";
+chr20 hg19_knownGene CDS 17930935 17931040 0.000000 - 0 gene_id "SNX5"; transcript_id "NM_152227:uc002wqd.3";
+chr20 hg19_knownGene exon 17930935 17931040 0.000000 - . gene_id "SNX5"; transcript_id "NM_152227:uc002wqd.3";
+chr20 hg19_knownGene CDS 17932144 17932239 0.000000 - 0 gene_id "SNX5"; transcript_id "NM_152227:uc002wqd.3";
+chr20 hg19_knownGene exon 17932144 17932239 0.000000 - . gene_id "SNX5"; transcript_id "NM_152227:uc002wqd.3";
+chr20 hg19_knownGene CDS 17933231 17933354 0.000000 - 1 gene_id "SNX5"; transcript_id "NM_152227:uc002wqd.3";
+chr20 hg19_knownGene exon 17933231 17933354 0.000000 - . gene_id "SNX5"; transcript_id "NM_152227:uc002wqd.3";
+chr20 hg19_knownGene CDS 17934640 17934761 0.000000 - 0 gene_id "SNX5"; transcript_id "NM_152227:uc002wqd.3";
+chr20 hg19_knownGene exon 17934640 17934761 0.000000 - . gene_id "SNX5"; transcript_id "NM_152227:uc002wqd.3";
+chr20 hg19_knownGene CDS 17936009 17936119 0.000000 - 0 gene_id "SNX5"; transcript_id "NM_152227:uc002wqd.3";
+chr20 hg19_knownGene exon 17936009 17936119 0.000000 - . gene_id "SNX5"; transcript_id "NM_152227:uc002wqd.3";
+chr20 hg19_knownGene CDS 17937577 17937681 0.000000 - 0 gene_id "SNX5"; transcript_id "NM_152227:uc002wqd.3";
+chr20 hg19_knownGene exon 17937577 17937681 0.000000 - . gene_id "SNX5"; transcript_id "NM_152227:uc002wqd.3";
+chr20 hg19_knownGene CDS 17949018 17949068 0.000000 - 0 gene_id "SNX5"; transcript_id "NM_152227:uc002wqd.3";
+chr20 hg19_knownGene exon 17949018 17949100 0.000000 - . gene_id "SNX5"; transcript_id "NM_152227:uc002wqd.3";
+chr20 hg19_knownGene exon 17949343 17949490 0.000000 - . gene_id "SNX5"; transcript_id "NM_152227:uc002wqd.3";
+chr20 hg19_knownGene CDS 17923004 17923051 0.000000 - 0 gene_id "SNX5"; transcript_id "BC062638:uc002wqe.3";
+chr20 hg19_knownGene exon 17922244 17923051 0.000000 - . gene_id "SNX5"; transcript_id "BC062638:uc002wqe.3";
+chr20 hg19_knownGene CDS 17923754 17923839 0.000000 - 2 gene_id "SNX5"; transcript_id "BC062638:uc002wqe.3";
+chr20 hg19_knownGene exon 17923754 17923839 0.000000 - . gene_id "SNX5"; transcript_id "BC062638:uc002wqe.3";
+chr20 hg19_knownGene CDS 17928130 17928289 0.000000 - 0 gene_id "SNX5"; transcript_id "BC062638:uc002wqe.3";
+chr20 hg19_knownGene exon 17928130 17928289 0.000000 - . gene_id "SNX5"; transcript_id "BC062638:uc002wqe.3";
+chr20 hg19_knownGene CDS 17929534 17929620 0.000000 - 0 gene_id "SNX5"; transcript_id "BC062638:uc002wqe.3";
+chr20 hg19_knownGene exon 17929534 17929620 0.000000 - . gene_id "SNX5"; transcript_id "BC062638:uc002wqe.3";
+chr20 hg19_knownGene CDS 17929708 17929747 0.000000 - 1 gene_id "SNX5"; transcript_id "BC062638:uc002wqe.3";
+chr20 hg19_knownGene exon 17929708 17929747 0.000000 - . gene_id "SNX5"; transcript_id "BC062638:uc002wqe.3";
+chr20 hg19_knownGene CDS 17930776 17930851 0.000000 - 2 gene_id "SNX5"; transcript_id "BC062638:uc002wqe.3";
+chr20 hg19_knownGene exon 17930776 17930851 0.000000 - . gene_id "SNX5"; transcript_id "BC062638:uc002wqe.3";
+chr20 hg19_knownGene CDS 17930935 17931040 0.000000 - 0 gene_id "SNX5"; transcript_id "BC062638:uc002wqe.3";
+chr20 hg19_knownGene exon 17930935 17931040 0.000000 - . gene_id "SNX5"; transcript_id "BC062638:uc002wqe.3";
+chr20 hg19_knownGene CDS 17932144 17932239 0.000000 - 0 gene_id "SNX5"; transcript_id "BC062638:uc002wqe.3";
+chr20 hg19_knownGene exon 17932144 17932239 0.000000 - . gene_id "SNX5"; transcript_id "BC062638:uc002wqe.3";
+chr20 hg19_knownGene CDS 17933231 17933354 0.000000 - 1 gene_id "SNX5"; transcript_id "BC062638:uc002wqe.3";
+chr20 hg19_knownGene exon 17933231 17933354 0.000000 - . gene_id "SNX5"; transcript_id "BC062638:uc002wqe.3";
+chr20 hg19_knownGene CDS 17934640 17934713 0.000000 - 0 gene_id "SNX5"; transcript_id "BC062638:uc002wqe.3";
+chr20 hg19_knownGene exon 17934640 17934761 0.000000 - . gene_id "SNX5"; transcript_id "BC062638:uc002wqe.3";
+chr20 hg19_knownGene exon 17936009 17936119 0.000000 - . gene_id "SNX5"; transcript_id "BC062638:uc002wqe.3";
+chr20 hg19_knownGene exon 17937577 17937681 0.000000 - . gene_id "SNX5"; transcript_id "BC062638:uc002wqe.3";
+chr20 hg19_knownGene exon 17949343 17949490 0.000000 - . gene_id "SNX5"; transcript_id "BC062638:uc002wqe.3";
+chr20 hg19_knownGene exon 17949762 17949784 0.000000 + . gene_id "C20orf72"; transcript_id "NM_052865:uc002wqh.3";
+chr20 hg19_knownGene CDS 17950503 17951013 0.000000 + 0 gene_id "C20orf72"; transcript_id "NM_052865:uc002wqh.3";
+chr20 hg19_knownGene exon 17950444 17951013 0.000000 + . gene_id "C20orf72"; transcript_id "NM_052865:uc002wqh.3";
+chr20 hg19_knownGene CDS 17956327 17956546 0.000000 + 2 gene_id "C20orf72"; transcript_id "NM_052865:uc002wqh.3";
+chr20 hg19_knownGene exon 17956327 17956546 0.000000 + . gene_id "C20orf72"; transcript_id "NM_052865:uc002wqh.3";
+chr20 hg19_knownGene CDS 17968809 17968941 0.000000 + 1 gene_id "C20orf72"; transcript_id "NM_052865:uc002wqh.3";
+chr20 hg19_knownGene exon 17968809 17968941 0.000000 + . gene_id "C20orf72"; transcript_id "NM_052865:uc002wqh.3";
+chr20 hg19_knownGene CDS 17970582 17970749 0.000000 + 0 gene_id "C20orf72"; transcript_id "NM_052865:uc002wqh.3";
+chr20 hg19_knownGene exon 17970582 17971762 0.000000 + . gene_id "C20orf72"; transcript_id "NM_052865:uc002wqh.3";
+chr20 hg19_knownGene exon 17950444 17951013 0.000000 + . gene_id "C20orf72"; transcript_id "AK309995:uc010gco.3";
+chr20 hg19_knownGene exon 17968809 17968941 0.000000 + . gene_id "C20orf72"; transcript_id "AK309995:uc010gco.3";
+chr20 hg19_knownGene exon 17970582 17971762 0.000000 + . gene_id "C20orf72"; transcript_id "AK309995:uc010gco.3";
+chr20 hg19_knownGene exon 17950637 17950773 0.000000 + . gene_id "C20orf72"; transcript_id "AK310282:uc010gcp.3";
+chr20 hg19_knownGene exon 17956327 17956546 0.000000 + . gene_id "C20orf72"; transcript_id "AK310282:uc010gcp.3";
+chr20 hg19_knownGene exon 17968809 17968941 0.000000 + . gene_id "C20orf72"; transcript_id "AK310282:uc010gcp.3";
+chr20 hg19_knownGene exon 17970582 17971762 0.000000 + . gene_id "C20orf72"; transcript_id "AK310282:uc010gcp.3";
+chr20 hg19_knownGene exon 17993521 17993546 0.000000 + . gene_id "JA429722"; transcript_id "JA429722:uc021waz.1";
+chr20 hg19_knownGene CDS 18005283 18005596 0.000000 - 2 gene_id "OVOL2"; transcript_id "NM_021220:uc002wqi.1";
+chr20 hg19_knownGene exon 18004796 18005596 0.000000 - . gene_id "OVOL2"; transcript_id "NM_021220:uc002wqi.1";
+chr20 hg19_knownGene CDS 18022178 18022367 0.000000 - 0 gene_id "OVOL2"; transcript_id "NM_021220:uc002wqi.1";
+chr20 hg19_knownGene exon 18022178 18022367 0.000000 - . gene_id "OVOL2"; transcript_id "NM_021220:uc002wqi.1";
+chr20 hg19_knownGene CDS 18037301 18037521 0.000000 - 2 gene_id "OVOL2"; transcript_id "NM_021220:uc002wqi.1";
+chr20 hg19_knownGene exon 18037301 18037521 0.000000 - . gene_id "OVOL2"; transcript_id "NM_021220:uc002wqi.1";
+chr20 hg19_knownGene CDS 18038179 18038278 0.000000 - 0 gene_id "OVOL2"; transcript_id "NM_021220:uc002wqi.1";
+chr20 hg19_knownGene exon 18038179 18038521 0.000000 - . gene_id "OVOL2"; transcript_id "NM_021220:uc002wqi.1";
+chr20 hg19_knownGene CDS 18118600 18118695 0.000000 + 0 gene_id "PET117"; transcript_id "NM_001164811:uc021wba.1";
+chr20 hg19_knownGene exon 18118499 18118695 0.000000 + . gene_id "PET117"; transcript_id "NM_001164811:uc021wba.1";
+chr20 hg19_knownGene CDS 18122852 18122998 0.000000 + 0 gene_id "PET117"; transcript_id "NM_001164811:uc021wba.1";
+chr20 hg19_knownGene exon 18122852 18123812 0.000000 + . gene_id "PET117"; transcript_id "NM_001164811:uc021wba.1";
+chr20 hg19_knownGene CDS 18123305 18123563 0.000000 + 0 gene_id "CSRP2BP"; transcript_id "NM_020536:uc021wbb.1";
+chr20 hg19_knownGene exon 18122868 18123563 0.000000 + . gene_id "CSRP2BP"; transcript_id "NM_020536:uc021wbb.1";
+chr20 hg19_knownGene CDS 18125877 18125995 0.000000 + 2 gene_id "CSRP2BP"; transcript_id "NM_020536:uc021wbb.1";
+chr20 hg19_knownGene exon 18125877 18125995 0.000000 + . gene_id "CSRP2BP"; transcript_id "NM_020536:uc021wbb.1";
+chr20 hg19_knownGene CDS 18131465 18131586 0.000000 + 0 gene_id "CSRP2BP"; transcript_id "NM_020536:uc021wbb.1";
+chr20 hg19_knownGene exon 18131465 18131586 0.000000 + . gene_id "CSRP2BP"; transcript_id "NM_020536:uc021wbb.1";
+chr20 hg19_knownGene CDS 18139728 18139909 0.000000 + 1 gene_id "CSRP2BP"; transcript_id "NM_020536:uc021wbb.1";
+chr20 hg19_knownGene exon 18139728 18139909 0.000000 + . gene_id "CSRP2BP"; transcript_id "NM_020536:uc021wbb.1";
+chr20 hg19_knownGene CDS 18142464 18142883 0.000000 + 2 gene_id "CSRP2BP"; transcript_id "NM_020536:uc021wbb.1";
+chr20 hg19_knownGene exon 18142464 18142883 0.000000 + . gene_id "CSRP2BP"; transcript_id "NM_020536:uc021wbb.1";
+chr20 hg19_knownGene CDS 18143021 18143589 0.000000 + 2 gene_id "CSRP2BP"; transcript_id "NM_020536:uc021wbb.1";
+chr20 hg19_knownGene exon 18143021 18143589 0.000000 + . gene_id "CSRP2BP"; transcript_id "NM_020536:uc021wbb.1";
+chr20 hg19_knownGene CDS 18162354 18162490 0.000000 + 0 gene_id "CSRP2BP"; transcript_id "NM_020536:uc021wbb.1";
+chr20 hg19_knownGene exon 18162354 18162490 0.000000 + . gene_id "CSRP2BP"; transcript_id "NM_020536:uc021wbb.1";
+chr20 hg19_knownGene CDS 18163767 18163942 0.000000 + 1 gene_id "CSRP2BP"; transcript_id "NM_020536:uc021wbb.1";
+chr20 hg19_knownGene exon 18163767 18163942 0.000000 + . gene_id "CSRP2BP"; transcript_id "NM_020536:uc021wbb.1";
+chr20 hg19_knownGene CDS 18165246 18165436 0.000000 + 2 gene_id "CSRP2BP"; transcript_id "NM_020536:uc021wbb.1";
+chr20 hg19_knownGene exon 18165246 18165436 0.000000 + . gene_id "CSRP2BP"; transcript_id "NM_020536:uc021wbb.1";
+chr20 hg19_knownGene CDS 18167930 18168100 0.000000 + 0 gene_id "CSRP2BP"; transcript_id "NM_020536:uc021wbb.1";
+chr20 hg19_knownGene exon 18167930 18169031 0.000000 + . gene_id "CSRP2BP"; transcript_id "NM_020536:uc021wbb.1";
+chr20 hg19_knownGene exon 18125743 18125995 0.000000 + . gene_id "CSRP2BP"; transcript_id "NR_028402:uc002wqk.3";
+chr20 hg19_knownGene CDS 18131471 18131586 0.000000 + 0 gene_id "CSRP2BP"; transcript_id "NR_028402:uc002wqk.3";
+chr20 hg19_knownGene exon 18131465 18131586 0.000000 + . gene_id "CSRP2BP"; transcript_id "NR_028402:uc002wqk.3";
+chr20 hg19_knownGene CDS 18139728 18139909 0.000000 + 1 gene_id "CSRP2BP"; transcript_id "NR_028402:uc002wqk.3";
+chr20 hg19_knownGene exon 18139728 18139909 0.000000 + . gene_id "CSRP2BP"; transcript_id "NR_028402:uc002wqk.3";
+chr20 hg19_knownGene CDS 18142464 18142883 0.000000 + 2 gene_id "CSRP2BP"; transcript_id "NR_028402:uc002wqk.3";
+chr20 hg19_knownGene exon 18142464 18142883 0.000000 + . gene_id "CSRP2BP"; transcript_id "NR_028402:uc002wqk.3";
+chr20 hg19_knownGene CDS 18143021 18143589 0.000000 + 2 gene_id "CSRP2BP"; transcript_id "NR_028402:uc002wqk.3";
+chr20 hg19_knownGene exon 18143021 18143589 0.000000 + . gene_id "CSRP2BP"; transcript_id "NR_028402:uc002wqk.3";
+chr20 hg19_knownGene CDS 18162354 18162490 0.000000 + 0 gene_id "CSRP2BP"; transcript_id "NR_028402:uc002wqk.3";
+chr20 hg19_knownGene exon 18162354 18162490 0.000000 + . gene_id "CSRP2BP"; transcript_id "NR_028402:uc002wqk.3";
+chr20 hg19_knownGene CDS 18163767 18163942 0.000000 + 1 gene_id "CSRP2BP"; transcript_id "NR_028402:uc002wqk.3";
+chr20 hg19_knownGene exon 18163767 18163942 0.000000 + . gene_id "CSRP2BP"; transcript_id "NR_028402:uc002wqk.3";
+chr20 hg19_knownGene CDS 18165246 18165436 0.000000 + 2 gene_id "CSRP2BP"; transcript_id "NR_028402:uc002wqk.3";
+chr20 hg19_knownGene exon 18165246 18165436 0.000000 + . gene_id "CSRP2BP"; transcript_id "NR_028402:uc002wqk.3";
+chr20 hg19_knownGene CDS 18167930 18168100 0.000000 + 0 gene_id "CSRP2BP"; transcript_id "NR_028402:uc002wqk.3";
+chr20 hg19_knownGene exon 18167930 18169031 0.000000 + . gene_id "CSRP2BP"; transcript_id "NR_028402:uc002wqk.3";
+chr20 hg19_knownGene CDS 18131471 18131586 0.000000 + 0 gene_id "CSRP2BP"; transcript_id "AK297597:uc010zru.2";
+chr20 hg19_knownGene exon 18131465 18131586 0.000000 + . gene_id "CSRP2BP"; transcript_id "AK297597:uc010zru.2";
+chr20 hg19_knownGene CDS 18139728 18139909 0.000000 + 1 gene_id "CSRP2BP"; transcript_id "AK297597:uc010zru.2";
+chr20 hg19_knownGene exon 18139728 18139909 0.000000 + . gene_id "CSRP2BP"; transcript_id "AK297597:uc010zru.2";
+chr20 hg19_knownGene CDS 18142467 18142883 0.000000 + 2 gene_id "CSRP2BP"; transcript_id "AK297597:uc010zru.2";
+chr20 hg19_knownGene exon 18142467 18142883 0.000000 + . gene_id "CSRP2BP"; transcript_id "AK297597:uc010zru.2";
+chr20 hg19_knownGene CDS 18143021 18143589 0.000000 + 2 gene_id "CSRP2BP"; transcript_id "AK297597:uc010zru.2";
+chr20 hg19_knownGene exon 18143021 18143589 0.000000 + . gene_id "CSRP2BP"; transcript_id "AK297597:uc010zru.2";
+chr20 hg19_knownGene CDS 18162354 18162490 0.000000 + 0 gene_id "CSRP2BP"; transcript_id "AK297597:uc010zru.2";
+chr20 hg19_knownGene exon 18162354 18162490 0.000000 + . gene_id "CSRP2BP"; transcript_id "AK297597:uc010zru.2";
+chr20 hg19_knownGene CDS 18163767 18163942 0.000000 + 1 gene_id "CSRP2BP"; transcript_id "AK297597:uc010zru.2";
+chr20 hg19_knownGene exon 18163767 18163942 0.000000 + . gene_id "CSRP2BP"; transcript_id "AK297597:uc010zru.2";
+chr20 hg19_knownGene CDS 18165246 18165436 0.000000 + 2 gene_id "CSRP2BP"; transcript_id "AK297597:uc010zru.2";
+chr20 hg19_knownGene exon 18165246 18165436 0.000000 + . gene_id "CSRP2BP"; transcript_id "AK297597:uc010zru.2";
+chr20 hg19_knownGene CDS 18167930 18168100 0.000000 + 0 gene_id "CSRP2BP"; transcript_id "AK297597:uc010zru.2";
+chr20 hg19_knownGene exon 18167930 18169031 0.000000 + . gene_id "CSRP2BP"; transcript_id "AK297597:uc010zru.2";
+chr20 hg19_knownGene exon 18269121 18269248 0.000000 + . gene_id "ZNF133"; transcript_id "AK291389:uc010gcq.2";
+chr20 hg19_knownGene exon 18285652 18285822 0.000000 + . gene_id "ZNF133"; transcript_id "AK291389:uc010gcq.2";
+chr20 hg19_knownGene CDS 18286331 18286451 0.000000 + 0 gene_id "ZNF133"; transcript_id "AK291389:uc010gcq.2";
+chr20 hg19_knownGene exon 18286325 18286451 0.000000 + . gene_id "ZNF133"; transcript_id "AK291389:uc010gcq.2";
+chr20 hg19_knownGene CDS 18286942 18287037 0.000000 + 2 gene_id "ZNF133"; transcript_id "AK291389:uc010gcq.2";
+chr20 hg19_knownGene exon 18286942 18287037 0.000000 + . gene_id "ZNF133"; transcript_id "AK291389:uc010gcq.2";
+chr20 hg19_knownGene CDS 18295713 18297457 0.000000 + 2 gene_id "ZNF133"; transcript_id "AK291389:uc010gcq.2";
+chr20 hg19_knownGene exon 18295713 18297635 0.000000 + . gene_id "ZNF133"; transcript_id "AK291389:uc010gcq.2";
+chr20 hg19_knownGene exon 18269121 18269248 0.000000 + . gene_id "ZNF133"; transcript_id "AK295273:uc010zrv.1";
+chr20 hg19_knownGene CDS 18278704 18278706 0.000000 + 0 gene_id "ZNF133"; transcript_id "AK295273:uc010zrv.1";
+chr20 hg19_knownGene exon 18278629 18278706 0.000000 + . gene_id "ZNF133"; transcript_id "AK295273:uc010zrv.1";
+chr20 hg19_knownGene CDS 18286325 18286451 0.000000 + 0 gene_id "ZNF133"; transcript_id "AK295273:uc010zrv.1";
+chr20 hg19_knownGene exon 18286325 18286451 0.000000 + . gene_id "ZNF133"; transcript_id "AK295273:uc010zrv.1";
+chr20 hg19_knownGene CDS 18286942 18287037 0.000000 + 2 gene_id "ZNF133"; transcript_id "AK295273:uc010zrv.1";
+chr20 hg19_knownGene exon 18286942 18287037 0.000000 + . gene_id "ZNF133"; transcript_id "AK295273:uc010zrv.1";
+chr20 hg19_knownGene CDS 18295713 18297457 0.000000 + 2 gene_id "ZNF133"; transcript_id "AK295273:uc010zrv.1";
+chr20 hg19_knownGene exon 18295713 18297635 0.000000 + . gene_id "ZNF133"; transcript_id "AK295273:uc010zrv.1";
+chr20 hg19_knownGene exon 18269121 18269248 0.000000 + . gene_id "ZNF133"; transcript_id "AK295513:uc010zrw.1";
+chr20 hg19_knownGene exon 18286312 18286451 0.000000 + . gene_id "ZNF133"; transcript_id "AK295513:uc010zrw.1";
+chr20 hg19_knownGene exon 18286942 18287037 0.000000 + . gene_id "ZNF133"; transcript_id "AK295513:uc010zrw.1";
+chr20 hg19_knownGene CDS 18290923 18290950 0.000000 + 0 gene_id "ZNF133"; transcript_id "AK295513:uc010zrw.1";
+chr20 hg19_knownGene exon 18290813 18290950 0.000000 + . gene_id "ZNF133"; transcript_id "AK295513:uc010zrw.1";
+chr20 hg19_knownGene CDS 18295713 18297457 0.000000 + 2 gene_id "ZNF133"; transcript_id "AK295513:uc010zrw.1";
+chr20 hg19_knownGene exon 18295713 18297635 0.000000 + . gene_id "ZNF133"; transcript_id "AK295513:uc010zrw.1";
+chr20 hg19_knownGene exon 18269121 18269248 0.000000 + . gene_id "ZNF133"; transcript_id "AK313525:uc010gcr.2";
+chr20 hg19_knownGene CDS 18286331 18286451 0.000000 + 0 gene_id "ZNF133"; transcript_id "AK313525:uc010gcr.2";
+chr20 hg19_knownGene exon 18286325 18286451 0.000000 + . gene_id "ZNF133"; transcript_id "AK313525:uc010gcr.2";
+chr20 hg19_knownGene CDS 18286942 18287037 0.000000 + 2 gene_id "ZNF133"; transcript_id "AK313525:uc010gcr.2";
+chr20 hg19_knownGene exon 18286942 18287037 0.000000 + . gene_id "ZNF133"; transcript_id "AK313525:uc010gcr.2";
+chr20 hg19_knownGene CDS 18295713 18297457 0.000000 + 2 gene_id "ZNF133"; transcript_id "AK313525:uc010gcr.2";
+chr20 hg19_knownGene exon 18295713 18297635 0.000000 + . gene_id "ZNF133"; transcript_id "AK313525:uc010gcr.2";
+chr20 hg19_knownGene exon 18269121 18269248 0.000000 + . gene_id "ZNF133"; transcript_id "AK294263:uc010zrx.1";
+chr20 hg19_knownGene exon 18286963 18287037 0.000000 + . gene_id "ZNF133"; transcript_id "AK294263:uc010zrx.1";
+chr20 hg19_knownGene CDS 18295781 18297457 0.000000 + 0 gene_id "ZNF133"; transcript_id "AK294263:uc010zrx.1";
+chr20 hg19_knownGene exon 18295713 18297635 0.000000 + . gene_id "ZNF133"; transcript_id "AK294263:uc010zrx.1";
+chr20 hg19_knownGene exon 18278629 18278706 0.000000 + . gene_id "ZNF133"; transcript_id "U09366:uc002wqm.2";
+chr20 hg19_knownGene CDS 18286331 18286451 0.000000 + 0 gene_id "ZNF133"; transcript_id "U09366:uc002wqm.2";
+chr20 hg19_knownGene exon 18286312 18286451 0.000000 + . gene_id "ZNF133"; transcript_id "U09366:uc002wqm.2";
+chr20 hg19_knownGene CDS 18286942 18287037 0.000000 + 2 gene_id "ZNF133"; transcript_id "U09366:uc002wqm.2";
+chr20 hg19_knownGene exon 18286942 18287037 0.000000 + . gene_id "ZNF133"; transcript_id "U09366:uc002wqm.2";
+chr20 hg19_knownGene CDS 18295713 18297457 0.000000 + 2 gene_id "ZNF133"; transcript_id "U09366:uc002wqm.2";
+chr20 hg19_knownGene exon 18295713 18297635 0.000000 + . gene_id "ZNF133"; transcript_id "U09366:uc002wqm.2";
+chr20 hg19_knownGene exon 18269121 18269248 0.000000 + . gene_id "ZNF133"; transcript_id "NM_003434:uc002wql.4";
+chr20 hg19_knownGene exon 18278629 18278706 0.000000 + . gene_id "ZNF133"; transcript_id "NM_003434:uc002wql.4";
+chr20 hg19_knownGene exon 18278933 18279108 0.000000 + . gene_id "ZNF133"; transcript_id "NM_003434:uc002wql.4";
+chr20 hg19_knownGene exon 18285652 18285822 0.000000 + . gene_id "ZNF133"; transcript_id "NM_003434:uc002wql.4";
+chr20 hg19_knownGene CDS 18286331 18286451 0.000000 + 0 gene_id "ZNF133"; transcript_id "NM_003434:uc002wql.4";
+chr20 hg19_knownGene exon 18286325 18286451 0.000000 + . gene_id "ZNF133"; transcript_id "NM_003434:uc002wql.4";
+chr20 hg19_knownGene CDS 18286942 18287037 0.000000 + 2 gene_id "ZNF133"; transcript_id "NM_003434:uc002wql.4";
+chr20 hg19_knownGene exon 18286942 18287037 0.000000 + . gene_id "ZNF133"; transcript_id "NM_003434:uc002wql.4";
+chr20 hg19_knownGene CDS 18295716 18297457 0.000000 + 2 gene_id "ZNF133"; transcript_id "NM_003434:uc002wql.4";
+chr20 hg19_knownGene exon 18295716 18297640 0.000000 + . gene_id "ZNF133"; transcript_id "NM_003434:uc002wql.4";
+chr20 hg19_knownGene exon 18269121 18269248 0.000000 + . gene_id "ZNF133"; transcript_id "NM_001083330:uc010gcs.3";
+chr20 hg19_knownGene CDS 18286331 18286451 0.000000 + 0 gene_id "ZNF133"; transcript_id "NM_001083330:uc010gcs.3";
+chr20 hg19_knownGene exon 18286312 18286451 0.000000 + . gene_id "ZNF133"; transcript_id "NM_001083330:uc010gcs.3";
+chr20 hg19_knownGene CDS 18286942 18287037 0.000000 + 2 gene_id "ZNF133"; transcript_id "NM_001083330:uc010gcs.3";
+chr20 hg19_knownGene exon 18286942 18287037 0.000000 + . gene_id "ZNF133"; transcript_id "NM_001083330:uc010gcs.3";
+chr20 hg19_knownGene CDS 18295716 18297457 0.000000 + 2 gene_id "ZNF133"; transcript_id "NM_001083330:uc010gcs.3";
+chr20 hg19_knownGene exon 18295716 18297640 0.000000 + . gene_id "ZNF133"; transcript_id "NM_001083330:uc010gcs.3";
+chr20 hg19_knownGene exon 18269121 18269248 0.000000 + . gene_id "ZNF133"; transcript_id "AK316386:uc010zry.2";
+chr20 hg19_knownGene CDS 18295781 18297457 0.000000 + 0 gene_id "ZNF133"; transcript_id "AK316386:uc010zry.2";
+chr20 hg19_knownGene exon 18295716 18297640 0.000000 + . gene_id "ZNF133"; transcript_id "AK316386:uc010zry.2";
+chr20 hg19_knownGene exon 18303196 18303623 0.000000 - . gene_id "BC043266"; transcript_id "BC043266:uc002wqn.3";
+chr20 hg19_knownGene exon 18304288 18305878 0.000000 - . gene_id "BC043266"; transcript_id "BC043266:uc002wqn.3";
+chr20 hg19_knownGene exon 18309342 18309619 0.000000 - . gene_id "BC043266"; transcript_id "BC043266:uc002wqn.3";
+chr20 hg19_knownGene exon 18326134 18326190 0.000000 - . gene_id "BC043266"; transcript_id "BC043266:uc002wqn.3";
+chr20 hg19_knownGene exon 18339809 18339944 0.000000 - . gene_id "BC043266"; transcript_id "BC043266:uc002wqn.3";
+chr20 hg19_knownGene exon 18359693 18359713 0.000000 + . gene_id "DZANK1-AS1"; transcript_id "NR_034167:uc021wbc.1";
+chr20 hg19_knownGene CDS 18361515 18362009 0.000000 + 0 gene_id "DZANK1-AS1"; transcript_id "NR_034167:uc021wbc.1";
+chr20 hg19_knownGene exon 18361423 18362127 0.000000 + . gene_id "DZANK1-AS1"; transcript_id "NR_034167:uc021wbc.1";
+chr20 hg19_knownGene CDS 18365046 18365208 0.000000 - 1 gene_id "DZANK1"; transcript_id "AK295073:uc010zrz.2";
+chr20 hg19_knownGene exon 18364011 18365208 0.000000 - . gene_id "DZANK1"; transcript_id "AK295073:uc010zrz.2";
+chr20 hg19_knownGene CDS 18365660 18365734 0.000000 - 1 gene_id "DZANK1"; transcript_id "AK295073:uc010zrz.2";
+chr20 hg19_knownGene exon 18365660 18365734 0.000000 - . gene_id "DZANK1"; transcript_id "AK295073:uc010zrz.2";
+chr20 hg19_knownGene CDS 18370345 18370472 0.000000 - 0 gene_id "DZANK1"; transcript_id "AK295073:uc010zrz.2";
+chr20 hg19_knownGene exon 18370345 18370472 0.000000 - . gene_id "DZANK1"; transcript_id "AK295073:uc010zrz.2";
+chr20 hg19_knownGene CDS 18371023 18371103 0.000000 - 0 gene_id "DZANK1"; transcript_id "AK295073:uc010zrz.2";
+chr20 hg19_knownGene exon 18371023 18371103 0.000000 - . gene_id "DZANK1"; transcript_id "AK295073:uc010zrz.2";
+chr20 hg19_knownGene CDS 18374355 18374455 0.000000 - 2 gene_id "DZANK1"; transcript_id "AK295073:uc010zrz.2";
+chr20 hg19_knownGene exon 18374355 18374455 0.000000 - . gene_id "DZANK1"; transcript_id "AK295073:uc010zrz.2";
+chr20 hg19_knownGene CDS 18374898 18374994 0.000000 - 0 gene_id "DZANK1"; transcript_id "AK295073:uc010zrz.2";
+chr20 hg19_knownGene exon 18374898 18374994 0.000000 - . gene_id "DZANK1"; transcript_id "AK295073:uc010zrz.2";
+chr20 hg19_knownGene CDS 18377116 18377190 0.000000 - 0 gene_id "DZANK1"; transcript_id "AK295073:uc010zrz.2";
+chr20 hg19_knownGene exon 18377116 18377190 0.000000 - . gene_id "DZANK1"; transcript_id "AK295073:uc010zrz.2";
+chr20 hg19_knownGene CDS 18379167 18379270 0.000000 - 2 gene_id "DZANK1"; transcript_id "AK295073:uc010zrz.2";
+chr20 hg19_knownGene exon 18379167 18379270 0.000000 - . gene_id "DZANK1"; transcript_id "AK295073:uc010zrz.2";
+chr20 hg19_knownGene CDS 18393290 18393335 0.000000 - 0 gene_id "DZANK1"; transcript_id "AK295073:uc010zrz.2";
+chr20 hg19_knownGene exon 18393290 18393497 0.000000 - . gene_id "DZANK1"; transcript_id "AK295073:uc010zrz.2";
+chr20 hg19_knownGene CDS 18365046 18365208 0.000000 - 1 gene_id "DZANK1"; transcript_id "DQ104738:uc002wqp.4";
+chr20 hg19_knownGene exon 18364011 18365208 0.000000 - . gene_id "DZANK1"; transcript_id "DQ104738:uc002wqp.4";
+chr20 hg19_knownGene CDS 18365660 18365734 0.000000 - 1 gene_id "DZANK1"; transcript_id "DQ104738:uc002wqp.4";
+chr20 hg19_knownGene exon 18365660 18365734 0.000000 - . gene_id "DZANK1"; transcript_id "DQ104738:uc002wqp.4";
+chr20 hg19_knownGene CDS 18370345 18370472 0.000000 - 0 gene_id "DZANK1"; transcript_id "DQ104738:uc002wqp.4";
+chr20 hg19_knownGene exon 18370345 18370472 0.000000 - . gene_id "DZANK1"; transcript_id "DQ104738:uc002wqp.4";
+chr20 hg19_knownGene CDS 18371023 18371103 0.000000 - 0 gene_id "DZANK1"; transcript_id "DQ104738:uc002wqp.4";
+chr20 hg19_knownGene exon 18371023 18371103 0.000000 - . gene_id "DZANK1"; transcript_id "DQ104738:uc002wqp.4";
+chr20 hg19_knownGene CDS 18374355 18374455 0.000000 - 2 gene_id "DZANK1"; transcript_id "DQ104738:uc002wqp.4";
+chr20 hg19_knownGene exon 18374355 18374455 0.000000 - . gene_id "DZANK1"; transcript_id "DQ104738:uc002wqp.4";
+chr20 hg19_knownGene CDS 18374898 18374994 0.000000 - 0 gene_id "DZANK1"; transcript_id "DQ104738:uc002wqp.4";
+chr20 hg19_knownGene exon 18374898 18374994 0.000000 - . gene_id "DZANK1"; transcript_id "DQ104738:uc002wqp.4";
+chr20 hg19_knownGene CDS 18377116 18377190 0.000000 - 0 gene_id "DZANK1"; transcript_id "DQ104738:uc002wqp.4";
+chr20 hg19_knownGene exon 18377116 18377190 0.000000 - . gene_id "DZANK1"; transcript_id "DQ104738:uc002wqp.4";
+chr20 hg19_knownGene CDS 18379167 18379270 0.000000 - 2 gene_id "DZANK1"; transcript_id "DQ104738:uc002wqp.4";
+chr20 hg19_knownGene exon 18379167 18379270 0.000000 - . gene_id "DZANK1"; transcript_id "DQ104738:uc002wqp.4";
+chr20 hg19_knownGene CDS 18393290 18393479 0.000000 - 0 gene_id "DZANK1"; transcript_id "DQ104738:uc002wqp.4";
+chr20 hg19_knownGene exon 18393290 18393479 0.000000 - . gene_id "DZANK1"; transcript_id "DQ104738:uc002wqp.4";
+chr20 hg19_knownGene CDS 18394992 18395156 0.000000 - 0 gene_id "DZANK1"; transcript_id "DQ104738:uc002wqp.4";
+chr20 hg19_knownGene exon 18394992 18395156 0.000000 - . gene_id "DZANK1"; transcript_id "DQ104738:uc002wqp.4";
+chr20 hg19_knownGene CDS 18407711 18407803 0.000000 - 0 gene_id "DZANK1"; transcript_id "DQ104738:uc002wqp.4";
+chr20 hg19_knownGene exon 18407711 18407803 0.000000 - . gene_id "DZANK1"; transcript_id "DQ104738:uc002wqp.4";
+chr20 hg19_knownGene CDS 18414296 18414409 0.000000 - 0 gene_id "DZANK1"; transcript_id "DQ104738:uc002wqp.4";
+chr20 hg19_knownGene exon 18414296 18414409 0.000000 - . gene_id "DZANK1"; transcript_id "DQ104738:uc002wqp.4";
+chr20 hg19_knownGene exon 18364011 18365208 0.000000 - . gene_id "DZANK1"; transcript_id "AK131451:uc002wqr.4";
+chr20 hg19_knownGene exon 18365660 18365734 0.000000 - . gene_id "DZANK1"; transcript_id "AK131451:uc002wqr.4";
+chr20 hg19_knownGene exon 18370345 18370472 0.000000 - . gene_id "DZANK1"; transcript_id "AK131451:uc002wqr.4";
+chr20 hg19_knownGene exon 18371023 18371103 0.000000 - . gene_id "DZANK1"; transcript_id "AK131451:uc002wqr.4";
+chr20 hg19_knownGene exon 18374355 18374455 0.000000 - . gene_id "DZANK1"; transcript_id "AK131451:uc002wqr.4";
+chr20 hg19_knownGene exon 18374898 18374994 0.000000 - . gene_id "DZANK1"; transcript_id "AK131451:uc002wqr.4";
+chr20 hg19_knownGene exon 18375319 18375502 0.000000 - . gene_id "DZANK1"; transcript_id "AK131451:uc002wqr.4";
+chr20 hg19_knownGene exon 18377116 18377190 0.000000 - . gene_id "DZANK1"; transcript_id "AK131451:uc002wqr.4";
+chr20 hg19_knownGene exon 18379167 18379270 0.000000 - . gene_id "DZANK1"; transcript_id "AK131451:uc002wqr.4";
+chr20 hg19_knownGene exon 18393290 18393479 0.000000 - . gene_id "DZANK1"; transcript_id "AK131451:uc002wqr.4";
+chr20 hg19_knownGene exon 18394992 18395156 0.000000 - . gene_id "DZANK1"; transcript_id "AK131451:uc002wqr.4";
+chr20 hg19_knownGene exon 18395971 18396093 0.000000 - . gene_id "DZANK1"; transcript_id "AK131451:uc002wqr.4";
+chr20 hg19_knownGene exon 18407711 18407803 0.000000 - . gene_id "DZANK1"; transcript_id "AK131451:uc002wqr.4";
+chr20 hg19_knownGene exon 18414296 18414409 0.000000 - . gene_id "DZANK1"; transcript_id "AK131451:uc002wqr.4";
+chr20 hg19_knownGene exon 18423991 18424108 0.000000 - . gene_id "DZANK1"; transcript_id "AK131451:uc002wqr.4";
+chr20 hg19_knownGene exon 18429628 18429713 0.000000 - . gene_id "DZANK1"; transcript_id "AK131451:uc002wqr.4";
+chr20 hg19_knownGene exon 18433259 18433326 0.000000 - . gene_id "DZANK1"; transcript_id "AK131451:uc002wqr.4";
+chr20 hg19_knownGene exon 18434375 18434471 0.000000 - . gene_id "DZANK1"; transcript_id "AK131451:uc002wqr.4";
+chr20 hg19_knownGene exon 18435891 18436005 0.000000 - . gene_id "DZANK1"; transcript_id "AK131451:uc002wqr.4";
+chr20 hg19_knownGene exon 18440797 18440950 0.000000 - . gene_id "DZANK1"; transcript_id "AK131451:uc002wqr.4";
+chr20 hg19_knownGene exon 18445894 18446050 0.000000 - . gene_id "DZANK1"; transcript_id "AK131451:uc002wqr.4";
+chr20 hg19_knownGene exon 18394992 18395156 0.000000 - . gene_id "DZANK1"; transcript_id "BC036231:uc002wqu.1";
+chr20 hg19_knownGene exon 18395971 18396093 0.000000 - . gene_id "DZANK1"; transcript_id "BC036231:uc002wqu.1";
+chr20 hg19_knownGene exon 18407711 18407803 0.000000 - . gene_id "DZANK1"; transcript_id "BC036231:uc002wqu.1";
+chr20 hg19_knownGene exon 18409264 18409363 0.000000 - . gene_id "DZANK1"; transcript_id "BC036231:uc002wqu.1";
+chr20 hg19_knownGene exon 18413139 18414409 0.000000 - . gene_id "DZANK1"; transcript_id "BC036231:uc002wqu.1";
+chr20 hg19_knownGene exon 18423991 18424108 0.000000 - . gene_id "DZANK1"; transcript_id "BC036231:uc002wqu.1";
+chr20 hg19_knownGene exon 18429628 18429713 0.000000 - . gene_id "DZANK1"; transcript_id "BC036231:uc002wqu.1";
+chr20 hg19_knownGene exon 18434375 18434471 0.000000 - . gene_id "DZANK1"; transcript_id "BC036231:uc002wqu.1";
+chr20 hg19_knownGene exon 18435891 18436005 0.000000 - . gene_id "DZANK1"; transcript_id "BC036231:uc002wqu.1";
+chr20 hg19_knownGene exon 18440797 18440950 0.000000 - . gene_id "DZANK1"; transcript_id "BC036231:uc002wqu.1";
+chr20 hg19_knownGene exon 18445894 18446050 0.000000 - . gene_id "DZANK1"; transcript_id "BC036231:uc002wqu.1";
+chr20 hg19_knownGene CDS 18365046 18365208 0.000000 - 1 gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene exon 18364011 18365208 0.000000 - . gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene CDS 18365660 18365734 0.000000 - 1 gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene exon 18365660 18365734 0.000000 - . gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene CDS 18370345 18370472 0.000000 - 0 gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene exon 18370345 18370472 0.000000 - . gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene CDS 18371023 18371103 0.000000 - 0 gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene exon 18371023 18371103 0.000000 - . gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene CDS 18374355 18374455 0.000000 - 2 gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene exon 18374355 18374455 0.000000 - . gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene CDS 18374898 18374994 0.000000 - 0 gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene exon 18374898 18374994 0.000000 - . gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene CDS 18377116 18377190 0.000000 - 0 gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene exon 18377116 18377190 0.000000 - . gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene CDS 18379167 18379270 0.000000 - 2 gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene exon 18379167 18379270 0.000000 - . gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene CDS 18393290 18393479 0.000000 - 0 gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene exon 18393290 18393479 0.000000 - . gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene CDS 18394992 18395156 0.000000 - 0 gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene exon 18394992 18395156 0.000000 - . gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene CDS 18395971 18396093 0.000000 - 0 gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene exon 18395971 18396093 0.000000 - . gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene CDS 18407711 18407803 0.000000 - 0 gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene exon 18407711 18407803 0.000000 - . gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene CDS 18414296 18414409 0.000000 - 0 gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene exon 18414296 18414409 0.000000 - . gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene CDS 18423991 18424108 0.000000 - 1 gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene exon 18423991 18424108 0.000000 - . gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene CDS 18429628 18429713 0.000000 - 0 gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene exon 18429628 18429713 0.000000 - . gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene CDS 18432498 18432606 0.000000 - 1 gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene exon 18432498 18432606 0.000000 - . gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene CDS 18433259 18433326 0.000000 - 0 gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene exon 18433259 18433326 0.000000 - . gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene CDS 18434375 18434398 0.000000 - 0 gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene exon 18434375 18434471 0.000000 - . gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene exon 18435891 18436005 0.000000 - . gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene exon 18440797 18440950 0.000000 - . gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene exon 18445894 18446021 0.000000 - . gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene exon 18447506 18447645 0.000000 - . gene_id "DZANK1"; transcript_id "CR749327:uc002wqs.4";
+chr20 hg19_knownGene CDS 18365046 18365208 0.000000 - 1 gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene exon 18364011 18365208 0.000000 - . gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene CDS 18365660 18365734 0.000000 - 1 gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene exon 18365660 18365734 0.000000 - . gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene CDS 18370345 18370472 0.000000 - 0 gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene exon 18370345 18370472 0.000000 - . gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene CDS 18371023 18371103 0.000000 - 0 gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene exon 18371023 18371103 0.000000 - . gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene CDS 18374355 18374455 0.000000 - 2 gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene exon 18374355 18374455 0.000000 - . gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene CDS 18374898 18374994 0.000000 - 0 gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene exon 18374898 18374994 0.000000 - . gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene CDS 18377116 18377190 0.000000 - 0 gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene exon 18377116 18377190 0.000000 - . gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene CDS 18379167 18379270 0.000000 - 2 gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene exon 18379167 18379270 0.000000 - . gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene CDS 18393290 18393479 0.000000 - 0 gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene exon 18393290 18393479 0.000000 - . gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene CDS 18394992 18395156 0.000000 - 0 gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene exon 18394992 18395156 0.000000 - . gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene CDS 18395971 18396093 0.000000 - 0 gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene exon 18395971 18396093 0.000000 - . gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene CDS 18407711 18407803 0.000000 - 0 gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene exon 18407711 18407803 0.000000 - . gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene CDS 18414296 18414409 0.000000 - 0 gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene exon 18414296 18414409 0.000000 - . gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene CDS 18423991 18424108 0.000000 - 1 gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene exon 18423991 18424108 0.000000 - . gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene CDS 18429628 18429713 0.000000 - 0 gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene exon 18429628 18429713 0.000000 - . gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene CDS 18433259 18433326 0.000000 - 2 gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene exon 18433259 18433326 0.000000 - . gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene CDS 18434375 18434471 0.000000 - 0 gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene exon 18434375 18434471 0.000000 - . gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene CDS 18435891 18436005 0.000000 - 1 gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene exon 18435891 18436005 0.000000 - . gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene CDS 18440797 18440950 0.000000 - 2 gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene exon 18440797 18440950 0.000000 - . gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene CDS 18445894 18446002 0.000000 - 0 gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene exon 18445894 18446021 0.000000 - . gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene exon 18447640 18447829 0.000000 - . gene_id "DZANK1"; transcript_id "NM_001099407:uc002wqq.4";
+chr20 hg19_knownGene CDS 18365046 18365208 0.000000 - 1 gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene exon 18364011 18365208 0.000000 - . gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene CDS 18365660 18365734 0.000000 - 1 gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene exon 18365660 18365734 0.000000 - . gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene CDS 18370345 18370472 0.000000 - 0 gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene exon 18370345 18370472 0.000000 - . gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene CDS 18371023 18371103 0.000000 - 0 gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene exon 18371023 18371103 0.000000 - . gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene CDS 18374355 18374455 0.000000 - 2 gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene exon 18374355 18374455 0.000000 - . gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene CDS 18374898 18374994 0.000000 - 0 gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene exon 18374898 18374994 0.000000 - . gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene CDS 18377116 18377190 0.000000 - 0 gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene exon 18377116 18377190 0.000000 - . gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene CDS 18379167 18379270 0.000000 - 2 gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene exon 18379167 18379270 0.000000 - . gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene CDS 18393290 18393479 0.000000 - 0 gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene exon 18393290 18393479 0.000000 - . gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene CDS 18394992 18395156 0.000000 - 0 gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene exon 18394992 18395156 0.000000 - . gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene CDS 18395971 18396093 0.000000 - 0 gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene exon 18395971 18396093 0.000000 - . gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene CDS 18407711 18407803 0.000000 - 0 gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene exon 18407711 18407803 0.000000 - . gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene CDS 18414296 18414409 0.000000 - 0 gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene exon 18414296 18414409 0.000000 - . gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene CDS 18423991 18424108 0.000000 - 1 gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene exon 18423991 18424108 0.000000 - . gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene CDS 18429628 18429713 0.000000 - 0 gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene exon 18429628 18429713 0.000000 - . gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene CDS 18433259 18433383 0.000000 - 2 gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene exon 18433259 18433383 0.000000 - . gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene CDS 18434375 18434471 0.000000 - 0 gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene exon 18434375 18434471 0.000000 - . gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene CDS 18435891 18436005 0.000000 - 1 gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene exon 18435891 18436005 0.000000 - . gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene CDS 18440797 18440950 0.000000 - 2 gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene exon 18440797 18440950 0.000000 - . gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene CDS 18445894 18446002 0.000000 - 0 gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene exon 18445894 18446021 0.000000 - . gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene exon 18447640 18447829 0.000000 - . gene_id "DZANK1"; transcript_id "AK299746:uc010zsa.2";
+chr20 hg19_knownGene exon 18394992 18395156 0.000000 - . gene_id "DZANK1"; transcript_id "AK055544:uc010gct.1";
+chr20 hg19_knownGene exon 18395971 18396093 0.000000 - . gene_id "DZANK1"; transcript_id "AK055544:uc010gct.1";
+chr20 hg19_knownGene exon 18407711 18407803 0.000000 - . gene_id "DZANK1"; transcript_id "AK055544:uc010gct.1";
+chr20 hg19_knownGene exon 18414296 18414409 0.000000 - . gene_id "DZANK1"; transcript_id "AK055544:uc010gct.1";
+chr20 hg19_knownGene exon 18423991 18424108 0.000000 - . gene_id "DZANK1"; transcript_id "AK055544:uc010gct.1";
+chr20 hg19_knownGene exon 18429628 18429713 0.000000 - . gene_id "DZANK1"; transcript_id "AK055544:uc010gct.1";
+chr20 hg19_knownGene exon 18434375 18434471 0.000000 - . gene_id "DZANK1"; transcript_id "AK055544:uc010gct.1";
+chr20 hg19_knownGene exon 18435891 18436005 0.000000 - . gene_id "DZANK1"; transcript_id "AK055544:uc010gct.1";
+chr20 hg19_knownGene exon 18440797 18440950 0.000000 - . gene_id "DZANK1"; transcript_id "AK055544:uc010gct.1";
+chr20 hg19_knownGene exon 18445894 18446021 0.000000 - . gene_id "DZANK1"; transcript_id "AK055544:uc010gct.1";
+chr20 hg19_knownGene exon 18447640 18447829 0.000000 - . gene_id "DZANK1"; transcript_id "AK055544:uc010gct.1";
+chr20 hg19_knownGene exon 18451259 18451335 0.000000 + . gene_id "MIR3192"; transcript_id "NR_036160:uc021wbd.1";
+chr20 hg19_knownGene CDS 18448151 18448212 0.000000 + 0 gene_id "POLR3F"; transcript_id "NM_006466:uc002wqv.3";
+chr20 hg19_knownGene exon 18448033 18448212 0.000000 + . gene_id "POLR3F"; transcript_id "NM_006466:uc002wqv.3";
+chr20 hg19_knownGene CDS 18449588 18449705 0.000000 + 1 gene_id "POLR3F"; transcript_id "NM_006466:uc002wqv.3";
+chr20 hg19_knownGene exon 18449588 18449705 0.000000 + . gene_id "POLR3F"; transcript_id "NM_006466:uc002wqv.3";
+chr20 hg19_knownGene CDS 18453486 18453553 0.000000 + 0 gene_id "POLR3F"; transcript_id "NM_006466:uc002wqv.3";
+chr20 hg19_knownGene exon 18453486 18453553 0.000000 + . gene_id "POLR3F"; transcript_id "NM_006466:uc002wqv.3";
+chr20 hg19_knownGene CDS 18454035 18454102 0.000000 + 1 gene_id "POLR3F"; transcript_id "NM_006466:uc002wqv.3";
+chr20 hg19_knownGene exon 18454035 18454102 0.000000 + . gene_id "POLR3F"; transcript_id "NM_006466:uc002wqv.3";
+chr20 hg19_knownGene CDS 18455719 18455831 0.000000 + 2 gene_id "POLR3F"; transcript_id "NM_006466:uc002wqv.3";
+chr20 hg19_knownGene exon 18455719 18455831 0.000000 + . gene_id "POLR3F"; transcript_id "NM_006466:uc002wqv.3";
+chr20 hg19_knownGene CDS 18460682 18460825 0.000000 + 0 gene_id "POLR3F"; transcript_id "NM_006466:uc002wqv.3";
+chr20 hg19_knownGene exon 18460682 18460825 0.000000 + . gene_id "POLR3F"; transcript_id "NM_006466:uc002wqv.3";
+chr20 hg19_knownGene CDS 18461046 18461153 0.000000 + 0 gene_id "POLR3F"; transcript_id "NM_006466:uc002wqv.3";
+chr20 hg19_knownGene exon 18461046 18461153 0.000000 + . gene_id "POLR3F"; transcript_id "NM_006466:uc002wqv.3";
+chr20 hg19_knownGene CDS 18462263 18462454 0.000000 + 0 gene_id "POLR3F"; transcript_id "NM_006466:uc002wqv.3";
+chr20 hg19_knownGene exon 18462263 18462454 0.000000 + . gene_id "POLR3F"; transcript_id "NM_006466:uc002wqv.3";
+chr20 hg19_knownGene CDS 18464125 18464199 0.000000 + 0 gene_id "POLR3F"; transcript_id "NM_006466:uc002wqv.3";
+chr20 hg19_knownGene exon 18464125 18465286 0.000000 + . gene_id "POLR3F"; transcript_id "NM_006466:uc002wqv.3";
+chr20 hg19_knownGene exon 18448033 18448212 0.000000 + . gene_id "POLR3F"; transcript_id "AK096684:uc002wqw.3";
+chr20 hg19_knownGene exon 18449588 18449705 0.000000 + . gene_id "POLR3F"; transcript_id "AK096684:uc002wqw.3";
+chr20 hg19_knownGene exon 18451948 18452009 0.000000 + . gene_id "POLR3F"; transcript_id "AK096684:uc002wqw.3";
+chr20 hg19_knownGene exon 18453486 18453553 0.000000 + . gene_id "POLR3F"; transcript_id "AK096684:uc002wqw.3";
+chr20 hg19_knownGene exon 18454035 18454102 0.000000 + . gene_id "POLR3F"; transcript_id "AK096684:uc002wqw.3";
+chr20 hg19_knownGene exon 18455719 18455831 0.000000 + . gene_id "POLR3F"; transcript_id "AK096684:uc002wqw.3";
+chr20 hg19_knownGene exon 18460682 18460825 0.000000 + . gene_id "POLR3F"; transcript_id "AK096684:uc002wqw.3";
+chr20 hg19_knownGene exon 18461046 18461153 0.000000 + . gene_id "POLR3F"; transcript_id "AK096684:uc002wqw.3";
+chr20 hg19_knownGene exon 18462267 18462454 0.000000 + . gene_id "POLR3F"; transcript_id "AK096684:uc002wqw.3";
+chr20 hg19_knownGene exon 18464125 18465286 0.000000 + . gene_id "POLR3F"; transcript_id "AK096684:uc002wqw.3";
+chr20 hg19_knownGene exon 18448033 18448315 0.000000 + . gene_id "POLR3F"; transcript_id "AK314838:uc002wqx.3";
+chr20 hg19_knownGene CDS 18449649 18449705 0.000000 + 0 gene_id "POLR3F"; transcript_id "AK314838:uc002wqx.3";
+chr20 hg19_knownGene exon 18449588 18449705 0.000000 + . gene_id "POLR3F"; transcript_id "AK314838:uc002wqx.3";
+chr20 hg19_knownGene CDS 18453486 18453553 0.000000 + 0 gene_id "POLR3F"; transcript_id "AK314838:uc002wqx.3";
+chr20 hg19_knownGene exon 18453486 18453553 0.000000 + . gene_id "POLR3F"; transcript_id "AK314838:uc002wqx.3";
+chr20 hg19_knownGene CDS 18454035 18454102 0.000000 + 1 gene_id "POLR3F"; transcript_id "AK314838:uc002wqx.3";
+chr20 hg19_knownGene exon 18454035 18454102 0.000000 + . gene_id "POLR3F"; transcript_id "AK314838:uc002wqx.3";
+chr20 hg19_knownGene CDS 18455719 18455831 0.000000 + 2 gene_id "POLR3F"; transcript_id "AK314838:uc002wqx.3";
+chr20 hg19_knownGene exon 18455719 18455831 0.000000 + . gene_id "POLR3F"; transcript_id "AK314838:uc002wqx.3";
+chr20 hg19_knownGene CDS 18460682 18460825 0.000000 + 0 gene_id "POLR3F"; transcript_id "AK314838:uc002wqx.3";
+chr20 hg19_knownGene exon 18460682 18460825 0.000000 + . gene_id "POLR3F"; transcript_id "AK314838:uc002wqx.3";
+chr20 hg19_knownGene CDS 18461046 18461153 0.000000 + 0 gene_id "POLR3F"; transcript_id "AK314838:uc002wqx.3";
+chr20 hg19_knownGene exon 18461046 18461153 0.000000 + . gene_id "POLR3F"; transcript_id "AK314838:uc002wqx.3";
+chr20 hg19_knownGene CDS 18462263 18462454 0.000000 + 0 gene_id "POLR3F"; transcript_id "AK314838:uc002wqx.3";
+chr20 hg19_knownGene exon 18462263 18462454 0.000000 + . gene_id "POLR3F"; transcript_id "AK314838:uc002wqx.3";
+chr20 hg19_knownGene CDS 18464125 18464199 0.000000 + 0 gene_id "POLR3F"; transcript_id "AK314838:uc002wqx.3";
+chr20 hg19_knownGene exon 18464125 18465286 0.000000 + . gene_id "POLR3F"; transcript_id "AK314838:uc002wqx.3";
+chr20 hg19_knownGene CDS 18470411 18470634 0.000000 - 2 gene_id "RBBP9"; transcript_id "NM_006606:uc002wqy.3";
+chr20 hg19_knownGene exon 18467188 18470634 0.000000 - . gene_id "RBBP9"; transcript_id "NM_006606:uc002wqy.3";
+chr20 hg19_knownGene CDS 18471039 18471124 0.000000 - 1 gene_id "RBBP9"; transcript_id "NM_006606:uc002wqy.3";
+chr20 hg19_knownGene exon 18471039 18471124 0.000000 - . gene_id "RBBP9"; transcript_id "NM_006606:uc002wqy.3";
+chr20 hg19_knownGene CDS 18474602 18474707 0.000000 - 2 gene_id "RBBP9"; transcript_id "NM_006606:uc002wqy.3";
+chr20 hg19_knownGene exon 18474602 18474707 0.000000 - . gene_id "RBBP9"; transcript_id "NM_006606:uc002wqy.3";
+chr20 hg19_knownGene CDS 18476482 18476524 0.000000 - 0 gene_id "RBBP9"; transcript_id "NM_006606:uc002wqy.3";
+chr20 hg19_knownGene exon 18476482 18476524 0.000000 - . gene_id "RBBP9"; transcript_id "NM_006606:uc002wqy.3";
+chr20 hg19_knownGene CDS 18477713 18477811 0.000000 - 0 gene_id "RBBP9"; transcript_id "NM_006606:uc002wqy.3";
+chr20 hg19_knownGene exon 18477713 18477887 0.000000 - . gene_id "RBBP9"; transcript_id "NM_006606:uc002wqy.3";
+chr20 hg19_knownGene exon 18488188 18488634 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene CDS 18491480 18491700 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene exon 18491466 18491700 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene CDS 18492869 18492926 0.000000 + 1 gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene exon 18492869 18492926 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene CDS 18496294 18496380 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene exon 18496294 18496380 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene CDS 18505131 18505313 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene exon 18505131 18505313 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene CDS 18505579 18505664 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene exon 18505579 18505664 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene CDS 18506432 18506576 0.000000 + 1 gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene exon 18506432 18506576 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene CDS 18507017 18507175 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene exon 18507017 18507175 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene CDS 18508140 18508255 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene exon 18508140 18508255 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene CDS 18511324 18511447 0.000000 + 1 gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene exon 18511324 18511447 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene CDS 18513308 18513388 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene exon 18513308 18513388 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene CDS 18516297 18516386 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene exon 18516297 18516386 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene CDS 18522940 18523046 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene exon 18522940 18523046 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene CDS 18523663 18523816 0.000000 + 1 gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene exon 18523663 18523816 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene CDS 18526600 18526677 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene exon 18526600 18526677 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene CDS 18529253 18529414 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene exon 18529253 18529414 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene CDS 18531733 18531819 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene exon 18531733 18531819 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene CDS 18534879 18535034 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene exon 18534879 18535034 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene CDS 18535752 18535817 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene exon 18535752 18535817 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene CDS 18541295 18541381 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene exon 18541295 18542059 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172746:uc010zsb.2";
+chr20 hg19_knownGene exon 18488188 18488634 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene CDS 18491480 18491700 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene exon 18491466 18491700 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene CDS 18492869 18492926 0.000000 + 1 gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene exon 18492869 18492926 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene CDS 18496294 18496380 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene exon 18496294 18496380 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene CDS 18505077 18505313 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene exon 18505077 18505313 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene CDS 18505579 18505664 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene exon 18505579 18505664 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene CDS 18506432 18506576 0.000000 + 1 gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene exon 18506432 18506576 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene CDS 18507017 18507175 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene exon 18507017 18507175 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene CDS 18508140 18508255 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene exon 18508140 18508255 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene CDS 18511324 18511447 0.000000 + 1 gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene exon 18511324 18511447 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene CDS 18513308 18513388 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene exon 18513308 18513388 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene CDS 18516297 18516386 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene exon 18516297 18516386 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene CDS 18522940 18523046 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene exon 18522940 18523046 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene CDS 18523663 18523816 0.000000 + 1 gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene exon 18523663 18523816 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene CDS 18526600 18526677 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene exon 18526600 18526677 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene CDS 18529253 18529414 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene exon 18529253 18529414 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene CDS 18531733 18531819 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene exon 18531733 18531819 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene CDS 18534879 18535034 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene exon 18534879 18535034 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene CDS 18535752 18535817 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene exon 18535752 18535817 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene CDS 18541295 18541381 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene exon 18541295 18542059 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032985:uc002wra.2";
+chr20 hg19_knownGene exon 18488188 18488313 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene CDS 18491480 18491700 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene exon 18491466 18491700 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene CDS 18492869 18492926 0.000000 + 1 gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene exon 18492869 18492926 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene CDS 18496294 18496380 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene exon 18496294 18496380 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene CDS 18505077 18505313 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene exon 18505077 18505313 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene CDS 18505579 18505664 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene exon 18505579 18505664 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene CDS 18506432 18506576 0.000000 + 1 gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene exon 18506432 18506576 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene CDS 18507017 18507175 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene exon 18507017 18507175 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene CDS 18508140 18508255 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene exon 18508140 18508255 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene CDS 18511324 18511447 0.000000 + 1 gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene exon 18511324 18511447 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene CDS 18513308 18513388 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene exon 18513308 18513388 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene CDS 18516297 18516386 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene exon 18516297 18516386 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene CDS 18522940 18523046 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene exon 18522940 18523046 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene CDS 18523663 18523816 0.000000 + 1 gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene exon 18523663 18523816 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene CDS 18526600 18526677 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene exon 18526600 18526677 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene CDS 18529253 18529414 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene exon 18529253 18529414 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene CDS 18531733 18531819 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene exon 18531733 18531819 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene CDS 18534879 18535034 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene exon 18534879 18535034 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene CDS 18535752 18535817 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene exon 18535752 18535817 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene CDS 18541295 18541381 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene exon 18541295 18542059 0.000000 + . gene_id "SEC23B"; transcript_id "NM_032986:uc002wrb.2";
+chr20 hg19_knownGene exon 18488188 18488616 0.000000 + . gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene CDS 18491480 18491700 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene exon 18491466 18491700 0.000000 + . gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene CDS 18492869 18492926 0.000000 + 1 gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene exon 18492869 18492926 0.000000 + . gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene CDS 18496294 18496380 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene exon 18496294 18496380 0.000000 + . gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene CDS 18505077 18505313 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene exon 18505077 18505313 0.000000 + . gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene CDS 18505579 18505664 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene exon 18505579 18505664 0.000000 + . gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene CDS 18506432 18506576 0.000000 + 1 gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene exon 18506432 18506576 0.000000 + . gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene CDS 18507017 18507175 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene exon 18507017 18507175 0.000000 + . gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene CDS 18508140 18508255 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene exon 18508140 18508255 0.000000 + . gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene CDS 18511324 18511447 0.000000 + 1 gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene exon 18511324 18511447 0.000000 + . gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene CDS 18513308 18513388 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene exon 18513308 18513388 0.000000 + . gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene CDS 18516297 18516386 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene exon 18516297 18516386 0.000000 + . gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene CDS 18522940 18523046 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene exon 18522940 18523046 0.000000 + . gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene CDS 18523663 18523816 0.000000 + 1 gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene exon 18523663 18523816 0.000000 + . gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene CDS 18526600 18526677 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene exon 18526600 18526677 0.000000 + . gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene CDS 18529253 18529414 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene exon 18529253 18529414 0.000000 + . gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene CDS 18531733 18531819 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene exon 18531733 18531819 0.000000 + . gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene CDS 18534879 18535034 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene exon 18534879 18535034 0.000000 + . gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene CDS 18535752 18535817 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene exon 18535752 18535817 0.000000 + . gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene CDS 18541295 18541381 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene exon 18541295 18542059 0.000000 + . gene_id "SEC23B"; transcript_id "NM_006363:uc002wqz.2";
+chr20 hg19_knownGene exon 18488607 18488941 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene CDS 18491480 18491700 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene exon 18491466 18491700 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene CDS 18492869 18492926 0.000000 + 1 gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene exon 18492869 18492926 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene CDS 18496294 18496380 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene exon 18496294 18496380 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene CDS 18505077 18505313 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene exon 18505077 18505313 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene CDS 18505579 18505664 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene exon 18505579 18505664 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene CDS 18506432 18506576 0.000000 + 1 gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene exon 18506432 18506576 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene CDS 18507017 18507175 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene exon 18507017 18507175 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene CDS 18508140 18508255 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene exon 18508140 18508255 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene CDS 18511324 18511447 0.000000 + 1 gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene exon 18511324 18511447 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene CDS 18513308 18513388 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene exon 18513308 18513388 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene CDS 18516297 18516386 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene exon 18516297 18516386 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene CDS 18522940 18523046 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene exon 18522940 18523046 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene CDS 18523663 18523816 0.000000 + 1 gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene exon 18523663 18523816 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene CDS 18526600 18526677 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene exon 18526600 18526677 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene CDS 18529253 18529414 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene exon 18529253 18529414 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene CDS 18531733 18531819 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene exon 18531733 18531819 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene CDS 18534879 18535034 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene exon 18534879 18535034 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene CDS 18535752 18535817 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene exon 18535752 18535817 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene CDS 18541295 18541381 0.000000 + 0 gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene exon 18541295 18542059 0.000000 + . gene_id "SEC23B"; transcript_id "NM_001172745:uc002wrc.2";
+chr20 hg19_knownGene CDS 18548123 18548240 0.000000 + 0 gene_id "LINC00493"; transcript_id "NR_015432:uc002wrd.4";
+chr20 hg19_knownGene exon 18548073 18548240 0.000000 + . gene_id "LINC00493"; transcript_id "NR_015432:uc002wrd.4";
+chr20 hg19_knownGene CDS 18549880 18550046 0.000000 + 2 gene_id "LINC00493"; transcript_id "NR_015432:uc002wrd.4";
+chr20 hg19_knownGene exon 18549880 18550203 0.000000 + . gene_id "LINC00493"; transcript_id "NR_015432:uc002wrd.4";
+chr20 hg19_knownGene CDS 18548133 18548240 0.000000 + 0 gene_id "LINC00493"; transcript_id "AF147354:uc002wre.4";
+chr20 hg19_knownGene exon 18548073 18548240 0.000000 + . gene_id "LINC00493"; transcript_id "AF147354:uc002wre.4";
+chr20 hg19_knownGene CDS 18549883 18550128 0.000000 + 0 gene_id "LINC00493"; transcript_id "AF147354:uc002wre.4";
+chr20 hg19_knownGene exon 18549883 18550203 0.000000 + . gene_id "LINC00493"; transcript_id "AF147354:uc002wre.4";
+chr20 hg19_knownGene CDS 18568717 18568759 0.000000 + 0 gene_id "DTD1"; transcript_id "NM_080820:uc002wrf.4";
+chr20 hg19_knownGene exon 18568556 18568759 0.000000 + . gene_id "DTD1"; transcript_id "NM_080820:uc002wrf.4";
+chr20 hg19_knownGene CDS 18574375 18574465 0.000000 + 2 gene_id "DTD1"; transcript_id "NM_080820:uc002wrf.4";
+chr20 hg19_knownGene exon 18574375 18574465 0.000000 + . gene_id "DTD1"; transcript_id "NM_080820:uc002wrf.4";
+chr20 hg19_knownGene CDS 18576650 18576885 0.000000 + 1 gene_id "DTD1"; transcript_id "NM_080820:uc002wrf.4";
+chr20 hg19_knownGene exon 18576650 18576885 0.000000 + . gene_id "DTD1"; transcript_id "NM_080820:uc002wrf.4";
+chr20 hg19_knownGene CDS 18608771 18608877 0.000000 + 2 gene_id "DTD1"; transcript_id "NM_080820:uc002wrf.4";
+chr20 hg19_knownGene exon 18608771 18608877 0.000000 + . gene_id "DTD1"; transcript_id "NM_080820:uc002wrf.4";
+chr20 hg19_knownGene CDS 18724744 18724893 0.000000 + 0 gene_id "DTD1"; transcript_id "NM_080820:uc002wrf.4";
+chr20 hg19_knownGene exon 18724744 18724915 0.000000 + . gene_id "DTD1"; transcript_id "NM_080820:uc002wrf.4";
+chr20 hg19_knownGene exon 18744004 18744560 0.000000 + . gene_id "DTD1"; transcript_id "NM_080820:uc002wrf.4";
+chr20 hg19_knownGene exon 18768615 18769542 0.000000 - . gene_id "HSPC072"; transcript_id "NR_026884:uc002wrg.2";
+chr20 hg19_knownGene exon 18770218 18770353 0.000000 - . gene_id "HSPC072"; transcript_id "NR_026884:uc002wrg.2";
+chr20 hg19_knownGene exon 18774309 18774626 0.000000 - . gene_id "HSPC072"; transcript_id "NR_026884:uc002wrg.2";
+chr20 hg19_knownGene exon 18768615 18769481 0.000000 - . gene_id "HSPC072"; transcript_id "NR_026883:uc002wri.3";
+chr20 hg19_knownGene exon 18770218 18770353 0.000000 - . gene_id "HSPC072"; transcript_id "NR_026883:uc002wri.3";
+chr20 hg19_knownGene exon 18774309 18774447 0.000000 - . gene_id "HSPC072"; transcript_id "NR_026883:uc002wri.3";
+chr20 hg19_knownGene exon 18774812 18775228 0.000000 - . gene_id "HSPC072"; transcript_id "NR_026883:uc002wri.3";
+chr20 hg19_knownGene exon 18768615 18769481 0.000000 - . gene_id "HSPC072"; transcript_id "AF161557:uc002wrh.3";
+chr20 hg19_knownGene exon 18770218 18770353 0.000000 - . gene_id "HSPC072"; transcript_id "AF161557:uc002wrh.3";
+chr20 hg19_knownGene exon 18772386 18772777 0.000000 - . gene_id "HSPC072"; transcript_id "AF161557:uc002wrh.3";
+chr20 hg19_knownGene exon 18774309 18774447 0.000000 - . gene_id "HSPC072"; transcript_id "AF161557:uc002wrh.3";
+chr20 hg19_knownGene exon 18774812 18775228 0.000000 - . gene_id "HSPC072"; transcript_id "AF161557:uc002wrh.3";
+chr20 hg19_knownGene exon 18774693 18776709 0.000000 + . gene_id "LOC100270804"; transcript_id "NR_026885:uc010zsc.2";
+chr20 hg19_knownGene CDS 18794460 18794927 0.000000 + 0 gene_id "C20orf79"; transcript_id "NM_178483:uc002wrk.3";
+chr20 hg19_knownGene exon 18794370 18795035 0.000000 + . gene_id "C20orf79"; transcript_id "NM_178483:uc002wrk.3";
+chr20 hg19_knownGene CDS 18790423 18790759 0.000000 - 1 gene_id "LOC100128496"; transcript_id "NM_001242671:uc002wrj.2";
+chr20 hg19_knownGene exon 18790372 18790759 0.000000 - . gene_id "LOC100128496"; transcript_id "NM_001242671:uc002wrj.2";
+chr20 hg19_knownGene CDS 18805910 18805992 0.000000 - 0 gene_id "LOC100128496"; transcript_id "NM_001242671:uc002wrj.2";
+chr20 hg19_knownGene exon 18805910 18805992 0.000000 - . gene_id "LOC100128496"; transcript_id "NM_001242671:uc002wrj.2";
+chr20 hg19_knownGene CDS 18810663 18810695 0.000000 - 0 gene_id "LOC100128496"; transcript_id "NM_001242671:uc002wrj.2";
+chr20 hg19_knownGene exon 18810663 18810839 0.000000 - . gene_id "LOC100128496"; transcript_id "NM_001242671:uc002wrj.2";
+chr20 hg19_knownGene exon 19222946 19223218 0.000000 - . gene_id "LOC100130264"; transcript_id "NR_024564:uc010zsd.1";
+chr20 hg19_knownGene exon 19224521 19224932 0.000000 - . gene_id "LOC100130264"; transcript_id "NR_024564:uc010zsd.1";
+chr20 hg19_knownGene exon 19238273 19238339 0.000000 - . gene_id "LOC100130264"; transcript_id "NR_024564:uc010zsd.1";
+chr20 hg19_knownGene exon 19242353 19242517 0.000000 - . gene_id "LOC100130264"; transcript_id "NR_024564:uc010zsd.1";
+chr20 hg19_knownGene exon 19244722 19244797 0.000000 - . gene_id "LOC100130264"; transcript_id "NR_024564:uc010zsd.1";
+chr20 hg19_knownGene exon 19246377 19246643 0.000000 - . gene_id "LOC100130264"; transcript_id "NR_024564:uc010zsd.1";
+chr20 hg19_knownGene exon 19263783 19263859 0.000000 - . gene_id "LOC100130264"; transcript_id "NR_024564:uc010zsd.1";
+chr20 hg19_knownGene exon 19264789 19265240 0.000000 - . gene_id "LOC100130264"; transcript_id "NR_024564:uc010zsd.1";
+chr20 hg19_knownGene exon 19570748 19570831 0.000000 + . gene_id "Mir_548"; transcript_id ":uc021wbe.1";
+chr20 hg19_knownGene CDS 19193487 19193628 0.000000 + 0 gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene exon 19193290 19193628 0.000000 + . gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene CDS 19261603 19261731 0.000000 + 2 gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene exon 19261603 19261731 0.000000 + . gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene CDS 19496132 19496208 0.000000 + 2 gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene exon 19496132 19496208 0.000000 + . gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene CDS 19560644 19560718 0.000000 + 0 gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene exon 19560644 19560718 0.000000 + . gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene CDS 19565615 19565699 0.000000 + 0 gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene exon 19565615 19565699 0.000000 + . gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene CDS 19566085 19566188 0.000000 + 2 gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene exon 19566085 19566188 0.000000 + . gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene CDS 19634706 19634780 0.000000 + 0 gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene exon 19634706 19634780 0.000000 + . gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene CDS 19646508 19646533 0.000000 + 0 gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene exon 19646508 19646533 0.000000 + . gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene CDS 19654245 19654298 0.000000 + 1 gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene exon 19654245 19654298 0.000000 + . gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene CDS 19662502 19662635 0.000000 + 1 gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene exon 19662502 19662635 0.000000 + . gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene CDS 19664820 19664980 0.000000 + 2 gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene exon 19664820 19664980 0.000000 + . gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene CDS 19665744 19666005 0.000000 + 0 gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene exon 19665744 19666005 0.000000 + . gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene CDS 19673903 19674069 0.000000 + 2 gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene exon 19673903 19674069 0.000000 + . gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene CDS 19677441 19677555 0.000000 + 0 gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene exon 19677441 19677555 0.000000 + . gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene CDS 19679212 19679324 0.000000 + 2 gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene exon 19679212 19679324 0.000000 + . gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene CDS 19698172 19698237 0.000000 + 0 gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene exon 19698172 19698237 0.000000 + . gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene CDS 19701635 19701781 0.000000 + 0 gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene exon 19701635 19703541 0.000000 + . gene_id "SLC24A3"; transcript_id "NM_020689:uc002wrl.3";
+chr20 hg19_knownGene exon 19789172 19789201 0.000000 - . gene_id "DQ594620"; transcript_id "DQ594620:uc021wbf.1";
+chr20 hg19_knownGene exon 19789763 19789790 0.000000 - . gene_id "DQ573663"; transcript_id "DQ573663:uc002wrn.1";
+chr20 hg19_knownGene exon 19780218 19780391 0.000000 + . gene_id "BC090059"; transcript_id "BC090059:uc002wrm.1";
+chr20 hg19_knownGene exon 19789818 19790937 0.000000 + . gene_id "BC090059"; transcript_id "BC090059:uc002wrm.1";
+chr20 hg19_knownGene CDS 19867314 19867424 0.000000 + 0 gene_id "RIN2"; transcript_id "NM_001242581:uc002wro.2";
+chr20 hg19_knownGene exon 19867165 19867424 0.000000 + . gene_id "RIN2"; transcript_id "NM_001242581:uc002wro.2";
+chr20 hg19_knownGene CDS 19870210 19870302 0.000000 + 0 gene_id "RIN2"; transcript_id "NM_001242581:uc002wro.2";
+chr20 hg19_knownGene exon 19870210 19870302 0.000000 + . gene_id "RIN2"; transcript_id "NM_001242581:uc002wro.2";
+chr20 hg19_knownGene CDS 19915743 19915843 0.000000 + 0 gene_id "RIN2"; transcript_id "NM_001242581:uc002wro.2";
+chr20 hg19_knownGene exon 19915743 19915843 0.000000 + . gene_id "RIN2"; transcript_id "NM_001242581:uc002wro.2";
+chr20 hg19_knownGene CDS 19937259 19937451 0.000000 + 1 gene_id "RIN2"; transcript_id "NM_001242581:uc002wro.2";
+chr20 hg19_knownGene exon 19937259 19937451 0.000000 + . gene_id "RIN2"; transcript_id "NM_001242581:uc002wro.2";
+chr20 hg19_knownGene CDS 19941344 19941455 0.000000 + 0 gene_id "RIN2"; transcript_id "NM_001242581:uc002wro.2";
+chr20 hg19_knownGene exon 19941344 19941455 0.000000 + . gene_id "RIN2"; transcript_id "NM_001242581:uc002wro.2";
+chr20 hg19_knownGene CDS 19945596 19945668 0.000000 + 2 gene_id "RIN2"; transcript_id "NM_001242581:uc002wro.2";
+chr20 hg19_knownGene exon 19945596 19945668 0.000000 + . gene_id "RIN2"; transcript_id "NM_001242581:uc002wro.2";
+chr20 hg19_knownGene CDS 19951482 19951573 0.000000 + 1 gene_id "RIN2"; transcript_id "NM_001242581:uc002wro.2";
+chr20 hg19_knownGene exon 19951482 19951573 0.000000 + . gene_id "RIN2"; transcript_id "NM_001242581:uc002wro.2";
+chr20 hg19_knownGene CDS 19955298 19956431 0.000000 + 2 gene_id "RIN2"; transcript_id "NM_001242581:uc002wro.2";
+chr20 hg19_knownGene exon 19955298 19956431 0.000000 + . gene_id "RIN2"; transcript_id "NM_001242581:uc002wro.2";
+chr20 hg19_knownGene CDS 19970650 19970955 0.000000 + 2 gene_id "RIN2"; transcript_id "NM_001242581:uc002wro.2";
+chr20 hg19_knownGene exon 19970650 19970955 0.000000 + . gene_id "RIN2"; transcript_id "NM_001242581:uc002wro.2";
+chr20 hg19_knownGene CDS 19972812 19972943 0.000000 + 2 gene_id "RIN2"; transcript_id "NM_001242581:uc002wro.2";
+chr20 hg19_knownGene exon 19972812 19972943 0.000000 + . gene_id "RIN2"; transcript_id "NM_001242581:uc002wro.2";
+chr20 hg19_knownGene CDS 19977323 19977486 0.000000 + 2 gene_id "RIN2"; transcript_id "NM_001242581:uc002wro.2";
+chr20 hg19_knownGene exon 19977323 19977486 0.000000 + . gene_id "RIN2"; transcript_id "NM_001242581:uc002wro.2";
+chr20 hg19_knownGene CDS 19981257 19981577 0.000000 + 0 gene_id "RIN2"; transcript_id "NM_001242581:uc002wro.2";
+chr20 hg19_knownGene exon 19981257 19983103 0.000000 + . gene_id "RIN2"; transcript_id "NM_001242581:uc002wro.2";
+chr20 hg19_knownGene CDS 19870246 19870302 0.000000 + 0 gene_id "RIN2"; transcript_id "BC128065:uc010gcu.2";
+chr20 hg19_knownGene exon 19870210 19870302 0.000000 + . gene_id "RIN2"; transcript_id "BC128065:uc010gcu.2";
+chr20 hg19_knownGene CDS 19915743 19915843 0.000000 + 0 gene_id "RIN2"; transcript_id "BC128065:uc010gcu.2";
+chr20 hg19_knownGene exon 19915743 19915843 0.000000 + . gene_id "RIN2"; transcript_id "BC128065:uc010gcu.2";
+chr20 hg19_knownGene CDS 19937259 19937451 0.000000 + 1 gene_id "RIN2"; transcript_id "BC128065:uc010gcu.2";
+chr20 hg19_knownGene exon 19937259 19937451 0.000000 + . gene_id "RIN2"; transcript_id "BC128065:uc010gcu.2";
+chr20 hg19_knownGene CDS 19941344 19941455 0.000000 + 0 gene_id "RIN2"; transcript_id "BC128065:uc010gcu.2";
+chr20 hg19_knownGene exon 19941344 19941455 0.000000 + . gene_id "RIN2"; transcript_id "BC128065:uc010gcu.2";
+chr20 hg19_knownGene CDS 19970650 19970955 0.000000 + 2 gene_id "RIN2"; transcript_id "BC128065:uc010gcu.2";
+chr20 hg19_knownGene exon 19970650 19970955 0.000000 + . gene_id "RIN2"; transcript_id "BC128065:uc010gcu.2";
+chr20 hg19_knownGene CDS 19972812 19972943 0.000000 + 2 gene_id "RIN2"; transcript_id "BC128065:uc010gcu.2";
+chr20 hg19_knownGene exon 19972812 19972943 0.000000 + . gene_id "RIN2"; transcript_id "BC128065:uc010gcu.2";
+chr20 hg19_knownGene CDS 19977323 19977486 0.000000 + 2 gene_id "RIN2"; transcript_id "BC128065:uc010gcu.2";
+chr20 hg19_knownGene exon 19977323 19977486 0.000000 + . gene_id "RIN2"; transcript_id "BC128065:uc010gcu.2";
+chr20 hg19_knownGene CDS 19981257 19981577 0.000000 + 0 gene_id "RIN2"; transcript_id "BC128065:uc010gcu.2";
+chr20 hg19_knownGene exon 19981257 19983103 0.000000 + . gene_id "RIN2"; transcript_id "BC128065:uc010gcu.2";
+chr20 hg19_knownGene exon 19915743 19915843 0.000000 + . gene_id "RIN2"; transcript_id "BC034698:uc010gcv.2";
+chr20 hg19_knownGene exon 19937259 19937451 0.000000 + . gene_id "RIN2"; transcript_id "BC034698:uc010gcv.2";
+chr20 hg19_knownGene exon 19941344 19941455 0.000000 + . gene_id "RIN2"; transcript_id "BC034698:uc010gcv.2";
+chr20 hg19_knownGene CDS 19951564 19951573 0.000000 + 0 gene_id "RIN2"; transcript_id "BC034698:uc010gcv.2";
+chr20 hg19_knownGene exon 19951482 19951573 0.000000 + . gene_id "RIN2"; transcript_id "BC034698:uc010gcv.2";
+chr20 hg19_knownGene CDS 19955298 19956431 0.000000 + 2 gene_id "RIN2"; transcript_id "BC034698:uc010gcv.2";
+chr20 hg19_knownGene exon 19955298 19956431 0.000000 + . gene_id "RIN2"; transcript_id "BC034698:uc010gcv.2";
+chr20 hg19_knownGene CDS 19970650 19970955 0.000000 + 2 gene_id "RIN2"; transcript_id "BC034698:uc010gcv.2";
+chr20 hg19_knownGene exon 19970650 19970955 0.000000 + . gene_id "RIN2"; transcript_id "BC034698:uc010gcv.2";
+chr20 hg19_knownGene CDS 19972812 19972943 0.000000 + 2 gene_id "RIN2"; transcript_id "BC034698:uc010gcv.2";
+chr20 hg19_knownGene exon 19972812 19972943 0.000000 + . gene_id "RIN2"; transcript_id "BC034698:uc010gcv.2";
+chr20 hg19_knownGene CDS 19977323 19977486 0.000000 + 2 gene_id "RIN2"; transcript_id "BC034698:uc010gcv.2";
+chr20 hg19_knownGene exon 19977323 19977486 0.000000 + . gene_id "RIN2"; transcript_id "BC034698:uc010gcv.2";
+chr20 hg19_knownGene CDS 19981257 19981577 0.000000 + 0 gene_id "RIN2"; transcript_id "BC034698:uc010gcv.2";
+chr20 hg19_knownGene exon 19981257 19983103 0.000000 + . gene_id "RIN2"; transcript_id "BC034698:uc010gcv.2";
+chr20 hg19_knownGene CDS 19998041 19998093 0.000000 + 0 gene_id "NAA20"; transcript_id "NM_016100:uc002wrp.3";
+chr20 hg19_knownGene exon 19997934 19998093 0.000000 + . gene_id "NAA20"; transcript_id "NM_016100:uc002wrp.3";
+chr20 hg19_knownGene CDS 20003100 20003124 0.000000 + 1 gene_id "NAA20"; transcript_id "NM_016100:uc002wrp.3";
+chr20 hg19_knownGene exon 20003100 20003124 0.000000 + . gene_id "NAA20"; transcript_id "NM_016100:uc002wrp.3";
+chr20 hg19_knownGene CDS 20006321 20006411 0.000000 + 0 gene_id "NAA20"; transcript_id "NM_016100:uc002wrp.3";
+chr20 hg19_knownGene exon 20006321 20006411 0.000000 + . gene_id "NAA20"; transcript_id "NM_016100:uc002wrp.3";
+chr20 hg19_knownGene CDS 20007428 20007563 0.000000 + 2 gene_id "NAA20"; transcript_id "NM_016100:uc002wrp.3";
+chr20 hg19_knownGene exon 20007428 20007563 0.000000 + . gene_id "NAA20"; transcript_id "NM_016100:uc002wrp.3";
+chr20 hg19_knownGene CDS 20013152 20013297 0.000000 + 1 gene_id "NAA20"; transcript_id "NM_016100:uc002wrp.3";
+chr20 hg19_knownGene exon 20013152 20013297 0.000000 + . gene_id "NAA20"; transcript_id "NM_016100:uc002wrp.3";
+chr20 hg19_knownGene CDS 20013746 20013828 0.000000 + 2 gene_id "NAA20"; transcript_id "NM_016100:uc002wrp.3";
+chr20 hg19_knownGene exon 20013746 20014273 0.000000 + . gene_id "NAA20"; transcript_id "NM_016100:uc002wrp.3";
+chr20 hg19_knownGene CDS 19998041 19998093 0.000000 + 0 gene_id "NAA20"; transcript_id "NM_181528:uc002wrq.3";
+chr20 hg19_knownGene exon 19997934 19998093 0.000000 + . gene_id "NAA20"; transcript_id "NM_181528:uc002wrq.3";
+chr20 hg19_knownGene CDS 20003100 20003124 0.000000 + 1 gene_id "NAA20"; transcript_id "NM_181528:uc002wrq.3";
+chr20 hg19_knownGene exon 20003100 20003124 0.000000 + . gene_id "NAA20"; transcript_id "NM_181528:uc002wrq.3";
+chr20 hg19_knownGene CDS 20006321 20006411 0.000000 + 0 gene_id "NAA20"; transcript_id "NM_181528:uc002wrq.3";
+chr20 hg19_knownGene exon 20006321 20006411 0.000000 + . gene_id "NAA20"; transcript_id "NM_181528:uc002wrq.3";
+chr20 hg19_knownGene CDS 20007428 20007563 0.000000 + 2 gene_id "NAA20"; transcript_id "NM_181528:uc002wrq.3";
+chr20 hg19_knownGene exon 20007428 20007563 0.000000 + . gene_id "NAA20"; transcript_id "NM_181528:uc002wrq.3";
+chr20 hg19_knownGene CDS 20013746 20013773 0.000000 + 1 gene_id "NAA20"; transcript_id "NM_181528:uc002wrq.3";
+chr20 hg19_knownGene exon 20013746 20014273 0.000000 + . gene_id "NAA20"; transcript_id "NM_181528:uc002wrq.3";
+chr20 hg19_knownGene CDS 19998669 19998685 0.000000 + 0 gene_id "NAA20"; transcript_id "NM_181527:uc002wrr.3";
+chr20 hg19_knownGene exon 19998439 19998685 0.000000 + . gene_id "NAA20"; transcript_id "NM_181527:uc002wrr.3";
+chr20 hg19_knownGene CDS 20003100 20003124 0.000000 + 1 gene_id "NAA20"; transcript_id "NM_181527:uc002wrr.3";
+chr20 hg19_knownGene exon 20003100 20003124 0.000000 + . gene_id "NAA20"; transcript_id "NM_181527:uc002wrr.3";
+chr20 hg19_knownGene CDS 20006321 20006411 0.000000 + 0 gene_id "NAA20"; transcript_id "NM_181527:uc002wrr.3";
+chr20 hg19_knownGene exon 20006321 20006411 0.000000 + . gene_id "NAA20"; transcript_id "NM_181527:uc002wrr.3";
+chr20 hg19_knownGene CDS 20007428 20007563 0.000000 + 2 gene_id "NAA20"; transcript_id "NM_181527:uc002wrr.3";
+chr20 hg19_knownGene exon 20007428 20007563 0.000000 + . gene_id "NAA20"; transcript_id "NM_181527:uc002wrr.3";
+chr20 hg19_knownGene CDS 20013152 20013297 0.000000 + 1 gene_id "NAA20"; transcript_id "NM_181527:uc002wrr.3";
+chr20 hg19_knownGene exon 20013152 20013297 0.000000 + . gene_id "NAA20"; transcript_id "NM_181527:uc002wrr.3";
+chr20 hg19_knownGene CDS 20013746 20013828 0.000000 + 2 gene_id "NAA20"; transcript_id "NM_181527:uc002wrr.3";
+chr20 hg19_knownGene exon 20013746 20014273 0.000000 + . gene_id "NAA20"; transcript_id "NM_181527:uc002wrr.3";
+chr20 hg19_knownGene CDS 20016842 20017006 0.000000 - 0 gene_id "CRNKL1"; transcript_id "NM_016652:uc002wrs.3";
+chr20 hg19_knownGene exon 20015012 20017006 0.000000 - . gene_id "CRNKL1"; transcript_id "NM_016652:uc002wrs.3";
+chr20 hg19_knownGene CDS 20017967 20018215 0.000000 - 0 gene_id "CRNKL1"; transcript_id "NM_016652:uc002wrs.3";
+chr20 hg19_knownGene exon 20017967 20018215 0.000000 - . gene_id "CRNKL1"; transcript_id "NM_016652:uc002wrs.3";
+chr20 hg19_knownGene CDS 20018993 20019094 0.000000 - 0 gene_id "CRNKL1"; transcript_id "NM_016652:uc002wrs.3";
+chr20 hg19_knownGene exon 20018993 20019094 0.000000 - . gene_id "CRNKL1"; transcript_id "NM_016652:uc002wrs.3";
+chr20 hg19_knownGene CDS 20020253 20020492 0.000000 - 0 gene_id "CRNKL1"; transcript_id "NM_016652:uc002wrs.3";
+chr20 hg19_knownGene exon 20020253 20020492 0.000000 - . gene_id "CRNKL1"; transcript_id "NM_016652:uc002wrs.3";
+chr20 hg19_knownGene CDS 20021330 20021410 0.000000 - 0 gene_id "CRNKL1"; transcript_id "NM_016652:uc002wrs.3";
+chr20 hg19_knownGene exon 20021330 20021410 0.000000 - . gene_id "CRNKL1"; transcript_id "NM_016652:uc002wrs.3";
+chr20 hg19_knownGene CDS 20022210 20022269 0.000000 - 0 gene_id "CRNKL1"; transcript_id "NM_016652:uc002wrs.3";
+chr20 hg19_knownGene exon 20022210 20022269 0.000000 - . gene_id "CRNKL1"; transcript_id "NM_016652:uc002wrs.3";
+chr20 hg19_knownGene CDS 20022969 20023160 0.000000 - 0 gene_id "CRNKL1"; transcript_id "NM_016652:uc002wrs.3";
+chr20 hg19_knownGene exon 20022969 20023160 0.000000 - . gene_id "CRNKL1"; transcript_id "NM_016652:uc002wrs.3";
+chr20 hg19_knownGene CDS 20024136 20024306 0.000000 - 0 gene_id "CRNKL1"; transcript_id "NM_016652:uc002wrs.3";
+chr20 hg19_knownGene exon 20024136 20024306 0.000000 - . gene_id "CRNKL1"; transcript_id "NM_016652:uc002wrs.3";
+chr20 hg19_knownGene CDS 20025952 20026130 0.000000 - 2 gene_id "CRNKL1"; transcript_id "NM_016652:uc002wrs.3";
+chr20 hg19_knownGene exon 20025952 20026130 0.000000 - . gene_id "CRNKL1"; transcript_id "NM_016652:uc002wrs.3";
+chr20 hg19_knownGene CDS 20028409 20028575 0.000000 - 1 gene_id "CRNKL1"; transcript_id "NM_016652:uc002wrs.3";
+chr20 hg19_knownGene exon 20028409 20028575 0.000000 - . gene_id "CRNKL1"; transcript_id "NM_016652:uc002wrs.3";
+chr20 hg19_knownGene CDS 20028987 20029145 0.000000 - 1 gene_id "CRNKL1"; transcript_id "NM_016652:uc002wrs.3";
+chr20 hg19_knownGene exon 20028987 20029145 0.000000 - . gene_id "CRNKL1"; transcript_id "NM_016652:uc002wrs.3";
+chr20 hg19_knownGene CDS 20029984 20030075 0.000000 - 0 gene_id "CRNKL1"; transcript_id "NM_016652:uc002wrs.3";
+chr20 hg19_knownGene exon 20029984 20030075 0.000000 - . gene_id "CRNKL1"; transcript_id "NM_016652:uc002wrs.3";
+chr20 hg19_knownGene CDS 20031114 20031266 0.000000 - 0 gene_id "CRNKL1"; transcript_id "NM_016652:uc002wrs.3";
+chr20 hg19_knownGene exon 20031114 20031266 0.000000 - . gene_id "CRNKL1"; transcript_id "NM_016652:uc002wrs.3";
+chr20 hg19_knownGene CDS 20032936 20033402 0.000000 - 2 gene_id "CRNKL1"; transcript_id "NM_016652:uc002wrs.3";
+chr20 hg19_knownGene exon 20032936 20033402 0.000000 - . gene_id "CRNKL1"; transcript_id "NM_016652:uc002wrs.3";
+chr20 hg19_knownGene CDS 20036592 20036658 0.000000 - 0 gene_id "CRNKL1"; transcript_id "NM_016652:uc002wrs.3";
+chr20 hg19_knownGene exon 20036592 20036690 0.000000 - . gene_id "CRNKL1"; transcript_id "NM_016652:uc002wrs.3";
+chr20 hg19_knownGene CDS 20028413 20028575 0.000000 - 1 gene_id "CRNKL1"; transcript_id "AF255443:uc002wrt.1";
+chr20 hg19_knownGene exon 20028409 20028575 0.000000 - . gene_id "CRNKL1"; transcript_id "AF255443:uc002wrt.1";
+chr20 hg19_knownGene CDS 20028987 20029145 0.000000 - 1 gene_id "CRNKL1"; transcript_id "AF255443:uc002wrt.1";
+chr20 hg19_knownGene exon 20028987 20029145 0.000000 - . gene_id "CRNKL1"; transcript_id "AF255443:uc002wrt.1";
+chr20 hg19_knownGene CDS 20029984 20030075 0.000000 - 0 gene_id "CRNKL1"; transcript_id "AF255443:uc002wrt.1";
+chr20 hg19_knownGene exon 20029984 20030075 0.000000 - . gene_id "CRNKL1"; transcript_id "AF255443:uc002wrt.1";
+chr20 hg19_knownGene CDS 20031114 20031266 0.000000 - 0 gene_id "CRNKL1"; transcript_id "AF255443:uc002wrt.1";
+chr20 hg19_knownGene exon 20031114 20031266 0.000000 - . gene_id "CRNKL1"; transcript_id "AF255443:uc002wrt.1";
+chr20 hg19_knownGene CDS 20032936 20033366 0.000000 - 2 gene_id "CRNKL1"; transcript_id "AF255443:uc002wrt.1";
+chr20 hg19_knownGene exon 20032936 20033366 0.000000 - . gene_id "CRNKL1"; transcript_id "AF255443:uc002wrt.1";
+chr20 hg19_knownGene CDS 20036592 20036658 0.000000 - 0 gene_id "CRNKL1"; transcript_id "AF255443:uc002wrt.1";
+chr20 hg19_knownGene exon 20036592 20036690 0.000000 - . gene_id "CRNKL1"; transcript_id "AF255443:uc002wrt.1";
+chr20 hg19_knownGene CDS 20033231 20033235 0.000000 + 0 gene_id "C20orf26"; transcript_id "AK307817:uc010gcw.2";
+chr20 hg19_knownGene exon 20033158 20033235 0.000000 + . gene_id "C20orf26"; transcript_id "AK307817:uc010gcw.2";
+chr20 hg19_knownGene CDS 20051498 20051648 0.000000 + 1 gene_id "C20orf26"; transcript_id "AK307817:uc010gcw.2";
+chr20 hg19_knownGene exon 20051498 20051648 0.000000 + . gene_id "C20orf26"; transcript_id "AK307817:uc010gcw.2";
+chr20 hg19_knownGene CDS 20054946 20055022 0.000000 + 0 gene_id "C20orf26"; transcript_id "AK307817:uc010gcw.2";
+chr20 hg19_knownGene exon 20054946 20055022 0.000000 + . gene_id "C20orf26"; transcript_id "AK307817:uc010gcw.2";
+chr20 hg19_knownGene CDS 20055833 20055900 0.000000 + 1 gene_id "C20orf26"; transcript_id "AK307817:uc010gcw.2";
+chr20 hg19_knownGene exon 20055833 20055900 0.000000 + . gene_id "C20orf26"; transcript_id "AK307817:uc010gcw.2";
+chr20 hg19_knownGene CDS 20056133 20056259 0.000000 + 2 gene_id "C20orf26"; transcript_id "AK307817:uc010gcw.2";
+chr20 hg19_knownGene exon 20056133 20056259 0.000000 + . gene_id "C20orf26"; transcript_id "AK307817:uc010gcw.2";
+chr20 hg19_knownGene CDS 20071488 20071620 0.000000 + 1 gene_id "C20orf26"; transcript_id "AK307817:uc010gcw.2";
+chr20 hg19_knownGene exon 20071488 20071620 0.000000 + . gene_id "C20orf26"; transcript_id "AK307817:uc010gcw.2";
+chr20 hg19_knownGene CDS 20079299 20079458 0.000000 + 0 gene_id "C20orf26"; transcript_id "AK307817:uc010gcw.2";
+chr20 hg19_knownGene exon 20079299 20079458 0.000000 + . gene_id "C20orf26"; transcript_id "AK307817:uc010gcw.2";
+chr20 hg19_knownGene CDS 20123501 20123592 0.000000 + 2 gene_id "C20orf26"; transcript_id "AK307817:uc010gcw.2";
+chr20 hg19_knownGene exon 20123501 20123592 0.000000 + . gene_id "C20orf26"; transcript_id "AK307817:uc010gcw.2";
+chr20 hg19_knownGene CDS 20140014 20140088 0.000000 + 0 gene_id "C20orf26"; transcript_id "AK307817:uc010gcw.2";
+chr20 hg19_knownGene exon 20140014 20140088 0.000000 + . gene_id "C20orf26"; transcript_id "AK307817:uc010gcw.2";
+chr20 hg19_knownGene CDS 20144694 20144872 0.000000 + 0 gene_id "C20orf26"; transcript_id "AK307817:uc010gcw.2";
+chr20 hg19_knownGene exon 20144694 20144872 0.000000 + . gene_id "C20orf26"; transcript_id "AK307817:uc010gcw.2";
+chr20 hg19_knownGene CDS 20147041 20147077 0.000000 + 1 gene_id "C20orf26"; transcript_id "AK307817:uc010gcw.2";
+chr20 hg19_knownGene exon 20147041 20147080 0.000000 + . gene_id "C20orf26"; transcript_id "AK307817:uc010gcw.2";
+chr20 hg19_knownGene CDS 20037298 20037440 0.000000 + 0 gene_id "C20orf26"; transcript_id "NM_001167816:uc010zsf.1";
+chr20 hg19_knownGene exon 20037290 20037440 0.000000 + . gene_id "C20orf26"; transcript_id "NM_001167816:uc010zsf.1";
+chr20 hg19_knownGene CDS 20051498 20051648 0.000000 + 1 gene_id "C20orf26"; transcript_id "NM_001167816:uc010zsf.1";
+chr20 hg19_knownGene exon 20051498 20051648 0.000000 + . gene_id "C20orf26"; transcript_id "NM_001167816:uc010zsf.1";
+chr20 hg19_knownGene CDS 20054946 20055022 0.000000 + 0 gene_id "C20orf26"; transcript_id "NM_001167816:uc010zsf.1";
+chr20 hg19_knownGene exon 20054946 20055022 0.000000 + . gene_id "C20orf26"; transcript_id "NM_001167816:uc010zsf.1";
+chr20 hg19_knownGene CDS 20055833 20055900 0.000000 + 1 gene_id "C20orf26"; transcript_id "NM_001167816:uc010zsf.1";
+chr20 hg19_knownGene exon 20055833 20055900 0.000000 + . gene_id "C20orf26"; transcript_id "NM_001167816:uc010zsf.1";
+chr20 hg19_knownGene CDS 20056133 20056259 0.000000 + 2 gene_id "C20orf26"; transcript_id "NM_001167816:uc010zsf.1";
+chr20 hg19_knownGene exon 20056133 20056259 0.000000 + . gene_id "C20orf26"; transcript_id "NM_001167816:uc010zsf.1";
+chr20 hg19_knownGene CDS 20071488 20071620 0.000000 + 1 gene_id "C20orf26"; transcript_id "NM_001167816:uc010zsf.1";
+chr20 hg19_knownGene exon 20071488 20071620 0.000000 + . gene_id "C20orf26"; transcript_id "NM_001167816:uc010zsf.1";
+chr20 hg19_knownGene CDS 20079299 20079458 0.000000 + 0 gene_id "C20orf26"; transcript_id "NM_001167816:uc010zsf.1";
+chr20 hg19_knownGene exon 20079299 20079458 0.000000 + . gene_id "C20orf26"; transcript_id "NM_001167816:uc010zsf.1";
+chr20 hg19_knownGene CDS 20123501 20123592 0.000000 + 2 gene_id "C20orf26"; transcript_id "NM_001167816:uc010zsf.1";
+chr20 hg19_knownGene exon 20123501 20123592 0.000000 + . gene_id "C20orf26"; transcript_id "NM_001167816:uc010zsf.1";
+chr20 hg19_knownGene CDS 20140014 20140088 0.000000 + 0 gene_id "C20orf26"; transcript_id "NM_001167816:uc010zsf.1";
+chr20 hg19_knownGene exon 20140014 20140088 0.000000 + . gene_id "C20orf26"; transcript_id "NM_001167816:uc010zsf.1";
+chr20 hg19_knownGene CDS 20144694 20144872 0.000000 + 0 gene_id "C20orf26"; transcript_id "NM_001167816:uc010zsf.1";
+chr20 hg19_knownGene exon 20144694 20144872 0.000000 + . gene_id "C20orf26"; transcript_id "NM_001167816:uc010zsf.1";
+chr20 hg19_knownGene CDS 20147041 20147080 0.000000 + 1 gene_id "C20orf26"; transcript_id "NM_001167816:uc010zsf.1";
+chr20 hg19_knownGene exon 20147041 20147080 0.000000 + . gene_id "C20orf26"; transcript_id "NM_001167816:uc010zsf.1";
+chr20 hg19_knownGene CDS 20149965 20150104 0.000000 + 0 gene_id "C20orf26"; transcript_id "NM_001167816:uc010zsf.1";
+chr20 hg19_knownGene exon 20149965 20150104 0.000000 + . gene_id "C20orf26"; transcript_id "NM_001167816:uc010zsf.1";
+chr20 hg19_knownGene CDS 20152425 20152449 0.000000 + 1 gene_id "C20orf26"; transcript_id "NM_001167816:uc010zsf.1";
+chr20 hg19_knownGene exon 20152425 20152977 0.000000 + . gene_id "C20orf26"; transcript_id "NM_001167816:uc010zsf.1";
+chr20 hg19_knownGene exon 20202584 20202652 0.000000 + . gene_id "C20orf26"; transcript_id "BC031674:uc002wrv.3";
+chr20 hg19_knownGene CDS 20208893 20209020 0.000000 + 0 gene_id "C20orf26"; transcript_id "BC031674:uc002wrv.3";
+chr20 hg19_knownGene exon 20208893 20209020 0.000000 + . gene_id "C20orf26"; transcript_id "BC031674:uc002wrv.3";
+chr20 hg19_knownGene CDS 20226761 20226859 0.000000 + 1 gene_id "C20orf26"; transcript_id "BC031674:uc002wrv.3";
+chr20 hg19_knownGene exon 20226761 20226859 0.000000 + . gene_id "C20orf26"; transcript_id "BC031674:uc002wrv.3";
+chr20 hg19_knownGene CDS 20232239 20232407 0.000000 + 1 gene_id "C20orf26"; transcript_id "BC031674:uc002wrv.3";
+chr20 hg19_knownGene exon 20232239 20232407 0.000000 + . gene_id "C20orf26"; transcript_id "BC031674:uc002wrv.3";
+chr20 hg19_knownGene CDS 20243600 20243774 0.000000 + 0 gene_id "C20orf26"; transcript_id "BC031674:uc002wrv.3";
+chr20 hg19_knownGene exon 20243600 20243774 0.000000 + . gene_id "C20orf26"; transcript_id "BC031674:uc002wrv.3";
+chr20 hg19_knownGene CDS 20246059 20246087 0.000000 + 2 gene_id "C20orf26"; transcript_id "BC031674:uc002wrv.3";
+chr20 hg19_knownGene exon 20246059 20246261 0.000000 + . gene_id "C20orf26"; transcript_id "BC031674:uc002wrv.3";
+chr20 hg19_knownGene exon 20033158 20033235 0.000000 + . gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene CDS 20037298 20037440 0.000000 + 0 gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene exon 20037290 20037440 0.000000 + . gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene CDS 20051498 20051648 0.000000 + 1 gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene exon 20051498 20051648 0.000000 + . gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene CDS 20054946 20055022 0.000000 + 0 gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene exon 20054946 20055022 0.000000 + . gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene CDS 20055833 20055900 0.000000 + 1 gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene exon 20055833 20055900 0.000000 + . gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene CDS 20056133 20056259 0.000000 + 2 gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene exon 20056133 20056259 0.000000 + . gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene CDS 20071488 20071620 0.000000 + 1 gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene exon 20071488 20071620 0.000000 + . gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene CDS 20079299 20079458 0.000000 + 0 gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene exon 20079299 20079458 0.000000 + . gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene CDS 20123501 20123592 0.000000 + 2 gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene exon 20123501 20123592 0.000000 + . gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene CDS 20140014 20140088 0.000000 + 0 gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene exon 20140014 20140088 0.000000 + . gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene CDS 20144694 20144872 0.000000 + 0 gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene exon 20144694 20144872 0.000000 + . gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene CDS 20147041 20147080 0.000000 + 1 gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene exon 20147041 20147080 0.000000 + . gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene CDS 20150025 20150104 0.000000 + 0 gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene exon 20150025 20150104 0.000000 + . gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene CDS 20168574 20168700 0.000000 + 1 gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene exon 20168574 20168700 0.000000 + . gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene CDS 20171986 20172063 0.000000 + 0 gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene exon 20171986 20172063 0.000000 + . gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene CDS 20177214 20177420 0.000000 + 0 gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene exon 20177214 20177420 0.000000 + . gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene CDS 20180412 20180546 0.000000 + 0 gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene exon 20180412 20180546 0.000000 + . gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene CDS 20208893 20209020 0.000000 + 0 gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene exon 20208893 20209020 0.000000 + . gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene CDS 20226761 20226859 0.000000 + 1 gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene exon 20226761 20226859 0.000000 + . gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene CDS 20232239 20232407 0.000000 + 1 gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene exon 20232239 20232407 0.000000 + . gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene CDS 20243600 20243774 0.000000 + 0 gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene exon 20243600 20243774 0.000000 + . gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene CDS 20257810 20258099 0.000000 + 2 gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene exon 20257810 20258102 0.000000 + . gene_id "C20orf26"; transcript_id "AK304174:uc010zse.2";
+chr20 hg19_knownGene exon 20033158 20033235 0.000000 + . gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene CDS 20037298 20037440 0.000000 + 0 gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene exon 20037262 20037440 0.000000 + . gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene CDS 20051498 20051648 0.000000 + 1 gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene exon 20051498 20051648 0.000000 + . gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene CDS 20054946 20055022 0.000000 + 0 gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene exon 20054946 20055022 0.000000 + . gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene CDS 20055833 20055900 0.000000 + 1 gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene exon 20055833 20055900 0.000000 + . gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene CDS 20056133 20056259 0.000000 + 2 gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene exon 20056133 20056259 0.000000 + . gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene CDS 20071488 20071620 0.000000 + 1 gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene exon 20071488 20071620 0.000000 + . gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene CDS 20079299 20079458 0.000000 + 0 gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene exon 20079299 20079458 0.000000 + . gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene CDS 20123501 20123592 0.000000 + 2 gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene exon 20123501 20123592 0.000000 + . gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene CDS 20140014 20140088 0.000000 + 0 gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene exon 20140014 20140088 0.000000 + . gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene CDS 20144694 20144872 0.000000 + 0 gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene exon 20144694 20144872 0.000000 + . gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene CDS 20147041 20147080 0.000000 + 1 gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene exon 20147041 20147080 0.000000 + . gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene CDS 20149965 20150104 0.000000 + 0 gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene exon 20149965 20150104 0.000000 + . gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene CDS 20168574 20168700 0.000000 + 1 gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene exon 20168574 20168700 0.000000 + . gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene CDS 20171986 20172063 0.000000 + 0 gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene exon 20171986 20172063 0.000000 + . gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene CDS 20177214 20177420 0.000000 + 0 gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene exon 20177214 20177420 0.000000 + . gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene CDS 20180412 20180546 0.000000 + 0 gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene exon 20180412 20180546 0.000000 + . gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene CDS 20208893 20209020 0.000000 + 0 gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene exon 20208893 20209020 0.000000 + . gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene CDS 20226761 20226859 0.000000 + 1 gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene exon 20226761 20226859 0.000000 + . gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene CDS 20232239 20232407 0.000000 + 1 gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene exon 20232239 20232407 0.000000 + . gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene CDS 20243600 20243774 0.000000 + 0 gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene exon 20243600 20243774 0.000000 + . gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene CDS 20257810 20258102 0.000000 + 2 gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene exon 20257810 20258102 0.000000 + . gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene CDS 20269253 20269580 0.000000 + 0 gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene exon 20269253 20269580 0.000000 + . gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene CDS 20270944 20271035 0.000000 + 2 gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene exon 20270944 20271035 0.000000 + . gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene CDS 20278825 20279030 0.000000 + 0 gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene exon 20278825 20279030 0.000000 + . gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene CDS 20322475 20322565 0.000000 + 1 gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene exon 20322475 20322565 0.000000 + . gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene CDS 20340854 20341051 0.000000 + 0 gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene exon 20340854 20341346 0.000000 + . gene_id "C20orf26"; transcript_id "NM_015585:uc002wru.3";
+chr20 hg19_knownGene exon 20206175 20206233 0.000000 + . gene_id "C20orf26"; transcript_id "AK057364:uc002wrw.3";
+chr20 hg19_knownGene exon 20208893 20209020 0.000000 + . gene_id "C20orf26"; transcript_id "AK057364:uc002wrw.3";
+chr20 hg19_knownGene exon 20226761 20226859 0.000000 + . gene_id "C20orf26"; transcript_id "AK057364:uc002wrw.3";
+chr20 hg19_knownGene exon 20232239 20232407 0.000000 + . gene_id "C20orf26"; transcript_id "AK057364:uc002wrw.3";
+chr20 hg19_knownGene exon 20243600 20243774 0.000000 + . gene_id "C20orf26"; transcript_id "AK057364:uc002wrw.3";
+chr20 hg19_knownGene exon 20257810 20258102 0.000000 + . gene_id "C20orf26"; transcript_id "AK057364:uc002wrw.3";
+chr20 hg19_knownGene exon 20270944 20271035 0.000000 + . gene_id "C20orf26"; transcript_id "AK057364:uc002wrw.3";
+chr20 hg19_knownGene exon 20278825 20279030 0.000000 + . gene_id "C20orf26"; transcript_id "AK057364:uc002wrw.3";
+chr20 hg19_knownGene exon 20322475 20322565 0.000000 + . gene_id "C20orf26"; transcript_id "AK057364:uc002wrw.3";
+chr20 hg19_knownGene exon 20340854 20341346 0.000000 + . gene_id "C20orf26"; transcript_id "AK057364:uc002wrw.3";
+chr20 hg19_knownGene CDS 20348912 20350441 0.000000 + 0 gene_id "INSM1"; transcript_id "NM_002196:uc002wrx.3";
+chr20 hg19_knownGene exon 20348765 20351592 0.000000 + . gene_id "INSM1"; transcript_id "NM_002196:uc002wrx.3";
+chr20 hg19_knownGene CDS 20453451 20453600 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "AK127228:uc002wsa.1";
+chr20 hg19_knownGene exon 20452081 20453600 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK127228:uc002wsa.1";
+chr20 hg19_knownGene CDS 20475761 20475919 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "AK127228:uc002wsa.1";
+chr20 hg19_knownGene exon 20475761 20475919 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK127228:uc002wsa.1";
+chr20 hg19_knownGene CDS 20483995 20484150 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "AK127228:uc002wsa.1";
+chr20 hg19_knownGene exon 20483995 20484150 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK127228:uc002wsa.1";
+chr20 hg19_knownGene CDS 20486055 20486178 0.000000 - 1 gene_id "RALGAPA2"; transcript_id "AK127228:uc002wsa.1";
+chr20 hg19_knownGene exon 20486055 20486178 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK127228:uc002wsa.1";
+chr20 hg19_knownGene CDS 20491898 20491969 0.000000 - 1 gene_id "RALGAPA2"; transcript_id "AK127228:uc002wsa.1";
+chr20 hg19_knownGene exon 20491898 20491969 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK127228:uc002wsa.1";
+chr20 hg19_knownGene CDS 20493157 20493928 0.000000 - 2 gene_id "RALGAPA2"; transcript_id "AK127228:uc002wsa.1";
+chr20 hg19_knownGene exon 20493157 20493928 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK127228:uc002wsa.1";
+chr20 hg19_knownGene CDS 20501561 20501744 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "AK127228:uc002wsa.1";
+chr20 hg19_knownGene exon 20501561 20501744 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK127228:uc002wsa.1";
+chr20 hg19_knownGene CDS 20505050 20505187 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "AK127228:uc002wsa.1";
+chr20 hg19_knownGene exon 20505050 20505187 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK127228:uc002wsa.1";
+chr20 hg19_knownGene CDS 20505474 20505542 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "AK127228:uc002wsa.1";
+chr20 hg19_knownGene exon 20505474 20505542 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK127228:uc002wsa.1";
+chr20 hg19_knownGene CDS 20506896 20506904 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "AK127228:uc002wsa.1";
+chr20 hg19_knownGene exon 20506896 20508902 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK127228:uc002wsa.1";
+chr20 hg19_knownGene CDS 20373746 20373897 0.000000 - 2 gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene exon 20370272 20373897 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene CDS 20392671 20392792 0.000000 - 1 gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene exon 20392671 20392792 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene CDS 20453473 20453600 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene exon 20453473 20453600 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene CDS 20475761 20475919 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene exon 20475761 20475919 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene CDS 20483995 20484150 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene exon 20483995 20484150 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene CDS 20486055 20486178 0.000000 - 1 gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene exon 20486055 20486178 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene CDS 20491898 20491969 0.000000 - 1 gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene exon 20491898 20491969 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene CDS 20493157 20493928 0.000000 - 2 gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene exon 20493157 20493928 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene CDS 20501561 20501744 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene exon 20501561 20501744 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene CDS 20505050 20505187 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene exon 20505050 20505187 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene CDS 20505474 20505542 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene exon 20505474 20505542 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene CDS 20506896 20507006 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene exon 20506896 20507006 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene CDS 20512331 20512439 0.000000 - 1 gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene exon 20512331 20512439 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene CDS 20516389 20516447 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene exon 20516389 20516447 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene CDS 20517300 20517428 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene exon 20517300 20517428 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene CDS 20527348 20527476 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene exon 20527348 20527476 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene CDS 20552102 20552257 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene exon 20552102 20552257 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene CDS 20552492 20552590 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene exon 20552492 20552590 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene CDS 20553519 20553712 0.000000 - 2 gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene exon 20553519 20553712 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene CDS 20563694 20563870 0.000000 - 2 gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene exon 20563694 20563870 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene CDS 20565509 20565599 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene exon 20565509 20565599 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene CDS 20569912 20570009 0.000000 - 2 gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene exon 20569912 20570009 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene CDS 20571821 20571958 0.000000 - 2 gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene exon 20571821 20571958 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene CDS 20582326 20582490 0.000000 - 2 gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene exon 20582326 20582490 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene CDS 20585819 20586056 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene exon 20585819 20586056 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene CDS 20591959 20592070 0.000000 - 1 gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene exon 20591959 20592070 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene CDS 20596687 20596835 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene exon 20596687 20596835 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene CDS 20599921 20600058 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene exon 20599921 20600058 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene CDS 20601107 20601274 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene exon 20601107 20601274 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene CDS 20610007 20610084 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene exon 20610007 20610234 0.000000 - . gene_id "RALGAPA2"; transcript_id "AK002211:uc002wry.3";
+chr20 hg19_knownGene exon 20370272 20373897 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20377377 20377378 0.000000 - 2 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20377339 20377378 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20392671 20392792 0.000000 - 1 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20392671 20392792 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20453473 20453600 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20453473 20453600 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20475761 20475919 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20475761 20475919 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20483995 20484150 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20483995 20484150 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20486055 20486178 0.000000 - 1 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20486055 20486178 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20491898 20491969 0.000000 - 1 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20491898 20491969 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20493157 20493928 0.000000 - 2 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20493157 20493928 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20501561 20501744 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20501561 20501744 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20505050 20505187 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20505050 20505187 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20505474 20505542 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20505474 20505542 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20506896 20507006 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20506896 20507006 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20512331 20512439 0.000000 - 1 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20512331 20512439 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20516389 20516447 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20516389 20516447 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20517300 20517428 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20517300 20517428 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20527348 20527476 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20527348 20527476 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20552102 20552257 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20552102 20552257 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20552492 20552590 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20552492 20552590 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20553519 20553712 0.000000 - 2 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20553519 20553712 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20563694 20563870 0.000000 - 2 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20563694 20563870 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20565509 20565599 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20565509 20565599 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20569912 20570009 0.000000 - 2 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20569912 20570009 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20571821 20571958 0.000000 - 2 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20571821 20571958 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20582326 20582490 0.000000 - 2 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20582326 20582490 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20585819 20586056 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20585819 20586056 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20591959 20592070 0.000000 - 1 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20591959 20592070 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20596687 20596835 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20596687 20596835 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20599921 20600058 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20599921 20600058 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20601107 20601274 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20601107 20601274 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20610007 20610234 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20610007 20610234 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20616062 20616261 0.000000 - 2 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20616062 20616261 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20618007 20618145 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20618007 20618145 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20620429 20620544 0.000000 - 2 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20620429 20620544 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20621345 20621522 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20621345 20621522 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20624150 20624193 0.000000 - 2 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20624150 20624193 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20634174 20634231 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20634174 20634231 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20656880 20656932 0.000000 - 2 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20656880 20656932 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20661335 20661445 0.000000 - 2 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20661335 20661445 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene CDS 20693018 20693123 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20693018 20693266 0.000000 - . gene_id "RALGAPA2"; transcript_id "NM_020343:uc002wrz.3";
+chr20 hg19_knownGene exon 20370272 20373897 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene CDS 20377377 20377378 0.000000 - 2 gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20377339 20377378 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene CDS 20392671 20392792 0.000000 - 1 gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20392671 20392792 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene CDS 20453473 20453600 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20453473 20453600 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene CDS 20475761 20475919 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20475761 20475919 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene CDS 20483995 20484150 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20483995 20484150 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene CDS 20486055 20486178 0.000000 - 1 gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20486055 20486178 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene CDS 20491898 20491969 0.000000 - 1 gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20491898 20491969 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene CDS 20493157 20493928 0.000000 - 2 gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20493157 20493928 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene CDS 20501561 20501744 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20501561 20501744 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene CDS 20505050 20505187 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20505050 20505187 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene CDS 20505474 20505542 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20505474 20505542 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene CDS 20506896 20507006 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20506896 20507006 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene CDS 20512331 20512439 0.000000 - 1 gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20512331 20512439 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene CDS 20516389 20516447 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20516389 20516447 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene CDS 20517300 20517428 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20517300 20517428 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene CDS 20527348 20527476 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20527348 20527476 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene CDS 20552102 20552257 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20552102 20552257 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene CDS 20552492 20552590 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20552492 20552590 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene CDS 20553519 20553712 0.000000 - 2 gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20553519 20553712 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene CDS 20563694 20563870 0.000000 - 2 gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20563694 20563870 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene CDS 20565509 20565599 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20565509 20565599 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene CDS 20569912 20570009 0.000000 - 2 gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20569912 20570009 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene CDS 20571821 20571958 0.000000 - 2 gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20571821 20571958 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene CDS 20579323 20579463 0.000000 - 2 gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20579323 20579463 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene CDS 20582326 20582490 0.000000 - 2 gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20582326 20582490 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene CDS 20585819 20586056 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20585819 20586056 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene CDS 20596687 20596689 0.000000 - 0 gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20596687 20596835 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20599921 20600058 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20601107 20601274 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20610007 20610234 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20616062 20616261 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20618007 20618145 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20620429 20620544 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20621345 20621522 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20624150 20624193 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20634174 20634231 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 20693018 20693266 0.000000 - . gene_id "RALGAPA2"; transcript_id "BC171842:uc010zsg.2";
+chr20 hg19_knownGene exon 21134667 21134835 0.000000 - . gene_id "BC042893"; transcript_id "BC042893:uc002wsc.3";
+chr20 hg19_knownGene exon 21141535 21141589 0.000000 - . gene_id "BC042893"; transcript_id "BC042893:uc002wsc.3";
+chr20 hg19_knownGene exon 21143437 21143527 0.000000 - . gene_id "BC042893"; transcript_id "BC042893:uc002wsc.3";
+chr20 hg19_knownGene exon 21174683 21179443 0.000000 - . gene_id "BC042893"; transcript_id "BC042893:uc002wsc.3";
+chr20 hg19_knownGene exon 21182953 21183011 0.000000 - . gene_id "BC042893"; transcript_id "BC042893:uc002wsc.3";
+chr20 hg19_knownGene exon 21194549 21194660 0.000000 - . gene_id "BC042893"; transcript_id "BC042893:uc002wsc.3";
+chr20 hg19_knownGene exon 21198785 21198927 0.000000 - . gene_id "BC042893"; transcript_id "BC042893:uc002wsc.3";
+chr20 hg19_knownGene exon 21175044 21175595 0.000000 - . gene_id "BC034426"; transcript_id "BC034426:uc002wse.3";
+chr20 hg19_knownGene exon 21176077 21176157 0.000000 - . gene_id "BC034426"; transcript_id "BC034426:uc002wse.3";
+chr20 hg19_knownGene exon 21176611 21176730 0.000000 - . gene_id "BC034426"; transcript_id "BC034426:uc002wse.3";
+chr20 hg19_knownGene exon 21178179 21178215 0.000000 - . gene_id "BC034426"; transcript_id "BC034426:uc002wse.3";
+chr20 hg19_knownGene exon 21182953 21183011 0.000000 - . gene_id "BC034426"; transcript_id "BC034426:uc002wse.3";
+chr20 hg19_knownGene exon 21194174 21194230 0.000000 - . gene_id "BC034426"; transcript_id "BC034426:uc002wse.3";
+chr20 hg19_knownGene exon 21194549 21194660 0.000000 - . gene_id "BC034426"; transcript_id "BC034426:uc002wse.3";
+chr20 hg19_knownGene exon 21198785 21198927 0.000000 - . gene_id "BC034426"; transcript_id "BC034426:uc002wse.3";
+chr20 hg19_knownGene CDS 21106757 21106845 0.000000 + 0 gene_id "PLK1S1"; transcript_id "NM_018474:uc002wsb.3";
+chr20 hg19_knownGene exon 21106624 21106845 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_018474:uc002wsb.3";
+chr20 hg19_knownGene CDS 21112738 21112800 0.000000 + 1 gene_id "PLK1S1"; transcript_id "NM_018474:uc002wsb.3";
+chr20 hg19_knownGene exon 21112738 21112800 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_018474:uc002wsb.3";
+chr20 hg19_knownGene CDS 21117031 21117193 0.000000 + 1 gene_id "PLK1S1"; transcript_id "NM_018474:uc002wsb.3";
+chr20 hg19_knownGene exon 21117031 21117193 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_018474:uc002wsb.3";
+chr20 hg19_knownGene CDS 21126206 21126295 0.000000 + 0 gene_id "PLK1S1"; transcript_id "NM_018474:uc002wsb.3";
+chr20 hg19_knownGene exon 21126206 21126295 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_018474:uc002wsb.3";
+chr20 hg19_knownGene CDS 21142512 21143148 0.000000 + 0 gene_id "PLK1S1"; transcript_id "NM_018474:uc002wsb.3";
+chr20 hg19_knownGene exon 21142512 21143148 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_018474:uc002wsb.3";
+chr20 hg19_knownGene CDS 21143491 21143800 0.000000 + 2 gene_id "PLK1S1"; transcript_id "NM_018474:uc002wsb.3";
+chr20 hg19_knownGene exon 21143491 21143800 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_018474:uc002wsb.3";
+chr20 hg19_knownGene CDS 21186130 21186160 0.000000 + 1 gene_id "PLK1S1"; transcript_id "NM_018474:uc002wsb.3";
+chr20 hg19_knownGene exon 21186130 21186160 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_018474:uc002wsb.3";
+chr20 hg19_knownGene CDS 21186163 21186222 0.000000 + 0 gene_id "PLK1S1"; transcript_id "NM_018474:uc002wsb.3";
+chr20 hg19_knownGene exon 21186163 21186222 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_018474:uc002wsb.3";
+chr20 hg19_knownGene CDS 21195173 21195338 0.000000 + 0 gene_id "PLK1S1"; transcript_id "NM_018474:uc002wsb.3";
+chr20 hg19_knownGene exon 21195173 21195338 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_018474:uc002wsb.3";
+chr20 hg19_knownGene CDS 21196221 21196286 0.000000 + 2 gene_id "PLK1S1"; transcript_id "NM_018474:uc002wsb.3";
+chr20 hg19_knownGene exon 21196221 21196286 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_018474:uc002wsb.3";
+chr20 hg19_knownGene CDS 21209649 21209753 0.000000 + 2 gene_id "PLK1S1"; transcript_id "NM_018474:uc002wsb.3";
+chr20 hg19_knownGene exon 21209649 21209753 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_018474:uc002wsb.3";
+chr20 hg19_knownGene CDS 21213372 21213468 0.000000 + 2 gene_id "PLK1S1"; transcript_id "NM_018474:uc002wsb.3";
+chr20 hg19_knownGene exon 21213372 21213468 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_018474:uc002wsb.3";
+chr20 hg19_knownGene CDS 21224883 21224926 0.000000 + 1 gene_id "PLK1S1"; transcript_id "NM_018474:uc002wsb.3";
+chr20 hg19_knownGene exon 21224883 21224926 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_018474:uc002wsb.3";
+chr20 hg19_knownGene CDS 21227117 21227211 0.000000 + 2 gene_id "PLK1S1"; transcript_id "NM_018474:uc002wsb.3";
+chr20 hg19_knownGene exon 21227117 21227258 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_018474:uc002wsb.3";
+chr20 hg19_knownGene exon 21106624 21106845 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_001163022:uc010zsh.2";
+chr20 hg19_knownGene CDS 21112795 21112800 0.000000 + 0 gene_id "PLK1S1"; transcript_id "NM_001163022:uc010zsh.2";
+chr20 hg19_knownGene exon 21112738 21112800 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_001163022:uc010zsh.2";
+chr20 hg19_knownGene CDS 21126206 21126295 0.000000 + 0 gene_id "PLK1S1"; transcript_id "NM_001163022:uc010zsh.2";
+chr20 hg19_knownGene exon 21126206 21126295 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_001163022:uc010zsh.2";
+chr20 hg19_knownGene CDS 21142512 21143148 0.000000 + 0 gene_id "PLK1S1"; transcript_id "NM_001163022:uc010zsh.2";
+chr20 hg19_knownGene exon 21142512 21143148 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_001163022:uc010zsh.2";
+chr20 hg19_knownGene CDS 21143491 21143800 0.000000 + 2 gene_id "PLK1S1"; transcript_id "NM_001163022:uc010zsh.2";
+chr20 hg19_knownGene exon 21143491 21143800 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_001163022:uc010zsh.2";
+chr20 hg19_knownGene CDS 21186130 21186160 0.000000 + 1 gene_id "PLK1S1"; transcript_id "NM_001163022:uc010zsh.2";
+chr20 hg19_knownGene exon 21186130 21186160 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_001163022:uc010zsh.2";
+chr20 hg19_knownGene CDS 21186163 21186222 0.000000 + 0 gene_id "PLK1S1"; transcript_id "NM_001163022:uc010zsh.2";
+chr20 hg19_knownGene exon 21186163 21186222 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_001163022:uc010zsh.2";
+chr20 hg19_knownGene CDS 21195173 21195338 0.000000 + 0 gene_id "PLK1S1"; transcript_id "NM_001163022:uc010zsh.2";
+chr20 hg19_knownGene exon 21195173 21195338 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_001163022:uc010zsh.2";
+chr20 hg19_knownGene CDS 21196221 21196286 0.000000 + 2 gene_id "PLK1S1"; transcript_id "NM_001163022:uc010zsh.2";
+chr20 hg19_knownGene exon 21196221 21196286 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_001163022:uc010zsh.2";
+chr20 hg19_knownGene CDS 21209649 21209753 0.000000 + 2 gene_id "PLK1S1"; transcript_id "NM_001163022:uc010zsh.2";
+chr20 hg19_knownGene exon 21209649 21209753 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_001163022:uc010zsh.2";
+chr20 hg19_knownGene CDS 21213372 21213468 0.000000 + 2 gene_id "PLK1S1"; transcript_id "NM_001163022:uc010zsh.2";
+chr20 hg19_knownGene exon 21213372 21213468 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_001163022:uc010zsh.2";
+chr20 hg19_knownGene CDS 21224883 21224926 0.000000 + 1 gene_id "PLK1S1"; transcript_id "NM_001163022:uc010zsh.2";
+chr20 hg19_knownGene exon 21224883 21224926 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_001163022:uc010zsh.2";
+chr20 hg19_knownGene CDS 21227117 21227211 0.000000 + 2 gene_id "PLK1S1"; transcript_id "NM_001163022:uc010zsh.2";
+chr20 hg19_knownGene exon 21227117 21227258 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_001163022:uc010zsh.2";
+chr20 hg19_knownGene exon 21106624 21106845 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_001163023:uc010zsi.2";
+chr20 hg19_knownGene CDS 21112795 21112800 0.000000 + 0 gene_id "PLK1S1"; transcript_id "NM_001163023:uc010zsi.2";
+chr20 hg19_knownGene exon 21112738 21112800 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_001163023:uc010zsi.2";
+chr20 hg19_knownGene CDS 21142512 21143148 0.000000 + 0 gene_id "PLK1S1"; transcript_id "NM_001163023:uc010zsi.2";
+chr20 hg19_knownGene exon 21142512 21143148 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_001163023:uc010zsi.2";
+chr20 hg19_knownGene CDS 21143491 21143800 0.000000 + 2 gene_id "PLK1S1"; transcript_id "NM_001163023:uc010zsi.2";
+chr20 hg19_knownGene exon 21143491 21143800 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_001163023:uc010zsi.2";
+chr20 hg19_knownGene CDS 21186130 21186160 0.000000 + 1 gene_id "PLK1S1"; transcript_id "NM_001163023:uc010zsi.2";
+chr20 hg19_knownGene exon 21186130 21186160 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_001163023:uc010zsi.2";
+chr20 hg19_knownGene CDS 21186163 21186222 0.000000 + 0 gene_id "PLK1S1"; transcript_id "NM_001163023:uc010zsi.2";
+chr20 hg19_knownGene exon 21186163 21186222 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_001163023:uc010zsi.2";
+chr20 hg19_knownGene CDS 21195173 21195338 0.000000 + 0 gene_id "PLK1S1"; transcript_id "NM_001163023:uc010zsi.2";
+chr20 hg19_knownGene exon 21195173 21195338 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_001163023:uc010zsi.2";
+chr20 hg19_knownGene CDS 21196221 21196286 0.000000 + 2 gene_id "PLK1S1"; transcript_id "NM_001163023:uc010zsi.2";
+chr20 hg19_knownGene exon 21196221 21196286 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_001163023:uc010zsi.2";
+chr20 hg19_knownGene CDS 21209649 21209753 0.000000 + 2 gene_id "PLK1S1"; transcript_id "NM_001163023:uc010zsi.2";
+chr20 hg19_knownGene exon 21209649 21209753 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_001163023:uc010zsi.2";
+chr20 hg19_knownGene CDS 21213372 21213468 0.000000 + 2 gene_id "PLK1S1"; transcript_id "NM_001163023:uc010zsi.2";
+chr20 hg19_knownGene exon 21213372 21213468 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_001163023:uc010zsi.2";
+chr20 hg19_knownGene CDS 21224883 21224926 0.000000 + 1 gene_id "PLK1S1"; transcript_id "NM_001163023:uc010zsi.2";
+chr20 hg19_knownGene exon 21224883 21224926 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_001163023:uc010zsi.2";
+chr20 hg19_knownGene CDS 21227117 21227211 0.000000 + 2 gene_id "PLK1S1"; transcript_id "NM_001163023:uc010zsi.2";
+chr20 hg19_knownGene exon 21227117 21227258 0.000000 + . gene_id "PLK1S1"; transcript_id "NM_001163023:uc010zsi.2";
+chr20 hg19_knownGene exon 21106624 21106845 0.000000 + . gene_id "PLK1S1"; transcript_id "AK293567:uc010zsj.2";
+chr20 hg19_knownGene exon 21126206 21126295 0.000000 + . gene_id "PLK1S1"; transcript_id "AK293567:uc010zsj.2";
+chr20 hg19_knownGene exon 21142512 21143148 0.000000 + . gene_id "PLK1S1"; transcript_id "AK293567:uc010zsj.2";
+chr20 hg19_knownGene exon 21143491 21143800 0.000000 + . gene_id "PLK1S1"; transcript_id "AK293567:uc010zsj.2";
+chr20 hg19_knownGene exon 21186130 21186222 0.000000 + . gene_id "PLK1S1"; transcript_id "AK293567:uc010zsj.2";
+chr20 hg19_knownGene exon 21195173 21195338 0.000000 + . gene_id "PLK1S1"; transcript_id "AK293567:uc010zsj.2";
+chr20 hg19_knownGene exon 21196221 21196286 0.000000 + . gene_id "PLK1S1"; transcript_id "AK293567:uc010zsj.2";
+chr20 hg19_knownGene exon 21209649 21209753 0.000000 + . gene_id "PLK1S1"; transcript_id "AK293567:uc010zsj.2";
+chr20 hg19_knownGene exon 21213372 21213468 0.000000 + . gene_id "PLK1S1"; transcript_id "AK293567:uc010zsj.2";
+chr20 hg19_knownGene exon 21224883 21224926 0.000000 + . gene_id "PLK1S1"; transcript_id "AK293567:uc010zsj.2";
+chr20 hg19_knownGene exon 21227117 21227258 0.000000 + . gene_id "PLK1S1"; transcript_id "AK293567:uc010zsj.2";
+chr20 hg19_knownGene exon 21142512 21143148 0.000000 + . gene_id "PLK1S1"; transcript_id "AL110196:uc002wsd.3";
+chr20 hg19_knownGene exon 21143491 21143800 0.000000 + . gene_id "PLK1S1"; transcript_id "AL110196:uc002wsd.3";
+chr20 hg19_knownGene exon 21186130 21186168 0.000000 + . gene_id "PLK1S1"; transcript_id "AL110196:uc002wsd.3";
+chr20 hg19_knownGene exon 21195173 21195338 0.000000 + . gene_id "PLK1S1"; transcript_id "AL110196:uc002wsd.3";
+chr20 hg19_knownGene exon 21196221 21196286 0.000000 + . gene_id "PLK1S1"; transcript_id "AL110196:uc002wsd.3";
+chr20 hg19_knownGene exon 21209649 21209753 0.000000 + . gene_id "PLK1S1"; transcript_id "AL110196:uc002wsd.3";
+chr20 hg19_knownGene exon 21213372 21213468 0.000000 + . gene_id "PLK1S1"; transcript_id "AL110196:uc002wsd.3";
+chr20 hg19_knownGene exon 21224883 21224926 0.000000 + . gene_id "PLK1S1"; transcript_id "AL110196:uc002wsd.3";
+chr20 hg19_knownGene exon 21227117 21227258 0.000000 + . gene_id "PLK1S1"; transcript_id "AL110196:uc002wsd.3";
+chr20 hg19_knownGene CDS 21284037 21284111 0.000000 + 0 gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene exon 21283942 21284111 0.000000 + . gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene CDS 21306917 21307044 0.000000 + 0 gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene exon 21306917 21307044 0.000000 + . gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene CDS 21307128 21307239 0.000000 + 1 gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene exon 21307128 21307239 0.000000 + . gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene CDS 21309197 21309308 0.000000 + 0 gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene exon 21309197 21309308 0.000000 + . gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene CDS 21311119 21311177 0.000000 + 2 gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene exon 21311119 21311177 0.000000 + . gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene CDS 21311254 21311343 0.000000 + 0 gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene exon 21311254 21311343 0.000000 + . gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene CDS 21312199 21312271 0.000000 + 0 gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene exon 21312199 21312271 0.000000 + . gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene CDS 21312406 21312456 0.000000 + 2 gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene exon 21312406 21312456 0.000000 + . gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene CDS 21312921 21313078 0.000000 + 2 gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene exon 21312921 21313078 0.000000 + . gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene CDS 21314182 21314256 0.000000 + 0 gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene exon 21314182 21314256 0.000000 + . gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene CDS 21314342 21314475 0.000000 + 0 gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene exon 21314342 21314475 0.000000 + . gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene CDS 21314575 21314632 0.000000 + 1 gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene exon 21314575 21314632 0.000000 + . gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene CDS 21314716 21314823 0.000000 + 0 gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene exon 21314716 21314823 0.000000 + . gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene CDS 21319682 21319726 0.000000 + 0 gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene exon 21319682 21319726 0.000000 + . gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene CDS 21321359 21321490 0.000000 + 0 gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene exon 21321359 21321490 0.000000 + . gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene CDS 21324728 21324846 0.000000 + 0 gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene exon 21324728 21324846 0.000000 + . gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene CDS 21327053 21327188 0.000000 + 1 gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene exon 21327053 21327188 0.000000 + . gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene CDS 21328784 21328891 0.000000 + 0 gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene exon 21328784 21328891 0.000000 + . gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene CDS 21328979 21329068 0.000000 + 0 gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene exon 21328979 21329068 0.000000 + . gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene CDS 21330027 21330099 0.000000 + 0 gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene exon 21330027 21330099 0.000000 + . gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene CDS 21335427 21335510 0.000000 + 2 gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene exon 21335427 21335510 0.000000 + . gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene CDS 21336718 21336815 0.000000 + 2 gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene exon 21336718 21336815 0.000000 + . gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene CDS 21337224 21337303 0.000000 + 0 gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene exon 21337224 21337303 0.000000 + . gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene CDS 21338374 21338430 0.000000 + 1 gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene exon 21338374 21338430 0.000000 + . gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene CDS 21346059 21346127 0.000000 + 1 gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene exon 21346059 21346127 0.000000 + . gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene CDS 21346211 21346342 0.000000 + 1 gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene exon 21346211 21346342 0.000000 + . gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene CDS 21349101 21349228 0.000000 + 1 gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene exon 21349101 21349228 0.000000 + . gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene CDS 21362632 21362695 0.000000 + 2 gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene exon 21362632 21362695 0.000000 + . gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene CDS 21367506 21367644 0.000000 + 1 gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene exon 21367506 21367644 0.000000 + . gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene CDS 21369911 21369973 0.000000 + 0 gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene exon 21369911 21370463 0.000000 + . gene_id "XRN2"; transcript_id "NM_012255:uc002wsf.1";
+chr20 hg19_knownGene exon 21283942 21284111 0.000000 + . gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene CDS 21307153 21307239 0.000000 + 0 gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene exon 21307128 21307239 0.000000 + . gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene CDS 21309197 21309308 0.000000 + 0 gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene exon 21309197 21309308 0.000000 + . gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene CDS 21311119 21311177 0.000000 + 2 gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene exon 21311119 21311177 0.000000 + . gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene CDS 21311254 21311343 0.000000 + 0 gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene exon 21311254 21311343 0.000000 + . gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene CDS 21312199 21312271 0.000000 + 0 gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene exon 21312199 21312271 0.000000 + . gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene CDS 21312406 21312456 0.000000 + 2 gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene exon 21312406 21312456 0.000000 + . gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene CDS 21312921 21313078 0.000000 + 2 gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene exon 21312921 21313078 0.000000 + . gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene CDS 21314182 21314256 0.000000 + 0 gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene exon 21314182 21314256 0.000000 + . gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene CDS 21314342 21314475 0.000000 + 0 gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene exon 21314342 21314475 0.000000 + . gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene CDS 21314575 21314632 0.000000 + 1 gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene exon 21314575 21314632 0.000000 + . gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene CDS 21314716 21314823 0.000000 + 0 gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene exon 21314716 21314823 0.000000 + . gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene CDS 21319682 21319726 0.000000 + 0 gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene exon 21319682 21319726 0.000000 + . gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene CDS 21321359 21321490 0.000000 + 0 gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene exon 21321359 21321490 0.000000 + . gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene CDS 21324728 21324846 0.000000 + 0 gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene exon 21324728 21324846 0.000000 + . gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene CDS 21327053 21327188 0.000000 + 1 gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene exon 21327053 21327188 0.000000 + . gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene CDS 21328784 21328891 0.000000 + 0 gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene exon 21328784 21328891 0.000000 + . gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene CDS 21328979 21329068 0.000000 + 0 gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene exon 21328979 21329068 0.000000 + . gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene CDS 21330027 21330099 0.000000 + 0 gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene exon 21330027 21330099 0.000000 + . gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene CDS 21335427 21335510 0.000000 + 2 gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene exon 21335427 21335510 0.000000 + . gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene CDS 21336718 21336815 0.000000 + 2 gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene exon 21336718 21336815 0.000000 + . gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene CDS 21337224 21337303 0.000000 + 0 gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene exon 21337224 21337303 0.000000 + . gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene CDS 21338374 21338430 0.000000 + 1 gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene exon 21338374 21338430 0.000000 + . gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene CDS 21346059 21346127 0.000000 + 1 gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene exon 21346059 21346127 0.000000 + . gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene CDS 21346211 21346342 0.000000 + 1 gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene exon 21346211 21346342 0.000000 + . gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene CDS 21349101 21349228 0.000000 + 1 gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene exon 21349101 21349228 0.000000 + . gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene CDS 21362632 21362695 0.000000 + 2 gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene exon 21362632 21362695 0.000000 + . gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene CDS 21367506 21367644 0.000000 + 1 gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene exon 21367506 21367644 0.000000 + . gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene CDS 21369911 21369973 0.000000 + 0 gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene exon 21369911 21370463 0.000000 + . gene_id "XRN2"; transcript_id "AK303312:uc002wsg.1";
+chr20 hg19_knownGene exon 21284432 21284485 0.000000 + . gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene CDS 21307004 21307044 0.000000 + 0 gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene exon 21306917 21307044 0.000000 + . gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene CDS 21307128 21307239 0.000000 + 1 gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene exon 21307128 21307239 0.000000 + . gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene CDS 21309197 21309308 0.000000 + 0 gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene exon 21309197 21309308 0.000000 + . gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene CDS 21311119 21311177 0.000000 + 2 gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene exon 21311119 21311177 0.000000 + . gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene CDS 21311254 21311343 0.000000 + 0 gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene exon 21311254 21311343 0.000000 + . gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene CDS 21312199 21312271 0.000000 + 0 gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene exon 21312199 21312271 0.000000 + . gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene CDS 21312406 21312456 0.000000 + 2 gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene exon 21312406 21312456 0.000000 + . gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene CDS 21312921 21313078 0.000000 + 2 gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene exon 21312921 21313078 0.000000 + . gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene CDS 21314182 21314256 0.000000 + 0 gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene exon 21314182 21314256 0.000000 + . gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene CDS 21314342 21314475 0.000000 + 0 gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene exon 21314342 21314475 0.000000 + . gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene CDS 21314575 21314632 0.000000 + 1 gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene exon 21314575 21314632 0.000000 + . gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene CDS 21314716 21314823 0.000000 + 0 gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene exon 21314716 21314823 0.000000 + . gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene CDS 21319682 21319726 0.000000 + 0 gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene exon 21319682 21319726 0.000000 + . gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene CDS 21321359 21321490 0.000000 + 0 gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene exon 21321359 21321490 0.000000 + . gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene CDS 21324728 21324846 0.000000 + 0 gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene exon 21324728 21324846 0.000000 + . gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene CDS 21327053 21327188 0.000000 + 1 gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene exon 21327053 21327188 0.000000 + . gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene CDS 21328784 21328891 0.000000 + 0 gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene exon 21328784 21328891 0.000000 + . gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene CDS 21328979 21329068 0.000000 + 0 gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene exon 21328979 21329068 0.000000 + . gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene CDS 21330027 21330099 0.000000 + 0 gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene exon 21330027 21330099 0.000000 + . gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene CDS 21335427 21335510 0.000000 + 2 gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene exon 21335427 21335510 0.000000 + . gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene CDS 21336718 21336815 0.000000 + 2 gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene exon 21336718 21336815 0.000000 + . gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene CDS 21337224 21337303 0.000000 + 0 gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene exon 21337224 21337303 0.000000 + . gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene CDS 21338374 21338430 0.000000 + 1 gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene exon 21338374 21338430 0.000000 + . gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene CDS 21346059 21346127 0.000000 + 1 gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene exon 21346059 21346127 0.000000 + . gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene CDS 21346211 21346342 0.000000 + 1 gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene exon 21346211 21346342 0.000000 + . gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene CDS 21349101 21349228 0.000000 + 1 gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene exon 21349101 21349228 0.000000 + . gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene CDS 21362632 21362695 0.000000 + 2 gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene exon 21362632 21362695 0.000000 + . gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene CDS 21367506 21367644 0.000000 + 1 gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene exon 21367506 21367644 0.000000 + . gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene CDS 21369911 21369973 0.000000 + 0 gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene exon 21369911 21370463 0.000000 + . gene_id "XRN2"; transcript_id "AK302846:uc010zsk.1";
+chr20 hg19_knownGene CDS 21362634 21362695 0.000000 + 0 gene_id "XRN2"; transcript_id "AK172858:uc002wsh.1";
+chr20 hg19_knownGene exon 21362358 21362695 0.000000 + . gene_id "XRN2"; transcript_id "AK172858:uc002wsh.1";
+chr20 hg19_knownGene CDS 21367506 21367644 0.000000 + 1 gene_id "XRN2"; transcript_id "AK172858:uc002wsh.1";
+chr20 hg19_knownGene exon 21367506 21367644 0.000000 + . gene_id "XRN2"; transcript_id "AK172858:uc002wsh.1";
+chr20 hg19_knownGene CDS 21369911 21369973 0.000000 + 0 gene_id "XRN2"; transcript_id "AK172858:uc002wsh.1";
+chr20 hg19_knownGene exon 21369911 21370463 0.000000 + . gene_id "XRN2"; transcript_id "AK172858:uc002wsh.1";
+chr20 hg19_knownGene CDS 21376552 21377171 0.000000 - 2 gene_id "NKX2-4"; transcript_id "NM_033176:uc010gcz.3";
+chr20 hg19_knownGene exon 21376005 21377171 0.000000 - . gene_id "NKX2-4"; transcript_id "NM_033176:uc010gcz.3";
+chr20 hg19_knownGene CDS 21377596 21378037 0.000000 - 0 gene_id "NKX2-4"; transcript_id "NM_033176:uc010gcz.3";
+chr20 hg19_knownGene exon 21377596 21378047 0.000000 - . gene_id "NKX2-4"; transcript_id "NM_033176:uc010gcz.3";
+chr20 hg19_knownGene CDS 21492564 21493123 0.000000 - 2 gene_id "NKX2-2"; transcript_id "NM_002509:uc002wsi.3";
+chr20 hg19_knownGene exon 21491660 21493123 0.000000 - . gene_id "NKX2-2"; transcript_id "NM_002509:uc002wsi.3";
+chr20 hg19_knownGene CDS 21494049 21494307 0.000000 - 0 gene_id "NKX2-2"; transcript_id "NM_002509:uc002wsi.3";
+chr20 hg19_knownGene exon 21494049 21494664 0.000000 - . gene_id "NKX2-2"; transcript_id "NM_002509:uc002wsi.3";
+chr20 hg19_knownGene exon 21595616 21596073 0.000000 + . gene_id "Nkx2_2as"; transcript_id ":uc021wbg.1";
+chr20 hg19_knownGene CDS 21686351 21686636 0.000000 + 0 gene_id "PAX1"; transcript_id "BC143793:uc010zsl.2";
+chr20 hg19_knownGene exon 21686297 21686636 0.000000 + . gene_id "PAX1"; transcript_id "BC143793:uc010zsl.2";
+chr20 hg19_knownGene CDS 21687076 21687705 0.000000 + 2 gene_id "PAX1"; transcript_id "BC143793:uc010zsl.2";
+chr20 hg19_knownGene exon 21687076 21687705 0.000000 + . gene_id "PAX1"; transcript_id "BC143793:uc010zsl.2";
+chr20 hg19_knownGene CDS 21689196 21689338 0.000000 + 2 gene_id "PAX1"; transcript_id "BC143793:uc010zsl.2";
+chr20 hg19_knownGene exon 21689196 21689338 0.000000 + . gene_id "PAX1"; transcript_id "BC143793:uc010zsl.2";
+chr20 hg19_knownGene CDS 21689860 21690082 0.000000 + 0 gene_id "PAX1"; transcript_id "BC143793:uc010zsl.2";
+chr20 hg19_knownGene exon 21689860 21690082 0.000000 + . gene_id "PAX1"; transcript_id "BC143793:uc010zsl.2";
+chr20 hg19_knownGene CDS 21695109 21695197 0.000000 + 2 gene_id "PAX1"; transcript_id "BC143793:uc010zsl.2";
+chr20 hg19_knownGene exon 21695109 21695747 0.000000 + . gene_id "PAX1"; transcript_id "BC143793:uc010zsl.2";
+chr20 hg19_knownGene CDS 21686862 21687705 0.000000 + 0 gene_id "PAX1"; transcript_id "AK303335:uc010zsm.2";
+chr20 hg19_knownGene exon 21686861 21687705 0.000000 + . gene_id "PAX1"; transcript_id "AK303335:uc010zsm.2";
+chr20 hg19_knownGene CDS 21689196 21689338 0.000000 + 2 gene_id "PAX1"; transcript_id "AK303335:uc010zsm.2";
+chr20 hg19_knownGene exon 21689196 21689338 0.000000 + . gene_id "PAX1"; transcript_id "AK303335:uc010zsm.2";
+chr20 hg19_knownGene CDS 21689860 21690082 0.000000 + 0 gene_id "PAX1"; transcript_id "AK303335:uc010zsm.2";
+chr20 hg19_knownGene exon 21689860 21690082 0.000000 + . gene_id "PAX1"; transcript_id "AK303335:uc010zsm.2";
+chr20 hg19_knownGene CDS 21695109 21695197 0.000000 + 2 gene_id "PAX1"; transcript_id "AK303335:uc010zsm.2";
+chr20 hg19_knownGene exon 21695109 21695747 0.000000 + . gene_id "PAX1"; transcript_id "AK303335:uc010zsm.2";
+chr20 hg19_knownGene CDS 21686351 21686636 0.000000 + 0 gene_id "PAX1"; transcript_id "NM_006192:uc002wsj.2";
+chr20 hg19_knownGene exon 21686297 21686636 0.000000 + . gene_id "PAX1"; transcript_id "NM_006192:uc002wsj.2";
+chr20 hg19_knownGene CDS 21687076 21687705 0.000000 + 2 gene_id "PAX1"; transcript_id "NM_006192:uc002wsj.2";
+chr20 hg19_knownGene exon 21687076 21687705 0.000000 + . gene_id "PAX1"; transcript_id "NM_006192:uc002wsj.2";
+chr20 hg19_knownGene CDS 21689196 21689338 0.000000 + 2 gene_id "PAX1"; transcript_id "NM_006192:uc002wsj.2";
+chr20 hg19_knownGene exon 21689196 21689338 0.000000 + . gene_id "PAX1"; transcript_id "NM_006192:uc002wsj.2";
+chr20 hg19_knownGene CDS 21689860 21690082 0.000000 + 0 gene_id "PAX1"; transcript_id "NM_006192:uc002wsj.2";
+chr20 hg19_knownGene exon 21689860 21690082 0.000000 + . gene_id "PAX1"; transcript_id "NM_006192:uc002wsj.2";
+chr20 hg19_knownGene CDS 21695119 21695438 0.000000 + 2 gene_id "PAX1"; transcript_id "NM_006192:uc002wsj.2";
+chr20 hg19_knownGene exon 21695119 21696620 0.000000 + . gene_id "PAX1"; transcript_id "NM_006192:uc002wsj.2";
+chr20 hg19_knownGene exon 22034728 22034922 0.000000 + . gene_id "LOC100270679"; transcript_id "NR_038394:uc021wbh.1";
+chr20 hg19_knownGene exon 22049077 22049326 0.000000 + . gene_id "LOC100270679"; transcript_id "NR_038394:uc021wbh.1";
+chr20 hg19_knownGene exon 22054026 22054104 0.000000 + . gene_id "LOC100270679"; transcript_id "NR_038394:uc021wbh.1";
+chr20 hg19_knownGene exon 22055140 22055292 0.000000 + . gene_id "LOC100270679"; transcript_id "NR_038394:uc021wbh.1";
+chr20 hg19_knownGene exon 22255046 22255184 0.000000 - . gene_id "CR627206"; transcript_id "CR627206:uc002wsk.1";
+chr20 hg19_knownGene exon 22257059 22261178 0.000000 - . gene_id "CR627206"; transcript_id "CR627206:uc002wsk.1";
+chr20 hg19_knownGene exon 22262992 22263124 0.000000 - . gene_id "CR627206"; transcript_id "CR627206:uc002wsk.1";
+chr20 hg19_knownGene exon 22380971 22381749 0.000000 - . gene_id "LOC284788"; transcript_id "NR_027089:uc010zsn.1";
+chr20 hg19_knownGene exon 22381964 22382100 0.000000 - . gene_id "LOC284788"; transcript_id "NR_027089:uc010zsn.1";
+chr20 hg19_knownGene exon 22387267 22387350 0.000000 - . gene_id "LOC284788"; transcript_id "NR_027089:uc010zsn.1";
+chr20 hg19_knownGene exon 22400598 22401281 0.000000 - . gene_id "LOC284788"; transcript_id "NR_027089:uc010zsn.1";
+chr20 hg19_knownGene exon 22380971 22381749 0.000000 - . gene_id "LOC284788"; transcript_id "NR_027090:uc010zso.1";
+chr20 hg19_knownGene exon 22381964 22382100 0.000000 - . gene_id "LOC284788"; transcript_id "NR_027090:uc010zso.1";
+chr20 hg19_knownGene exon 22400598 22401281 0.000000 - . gene_id "LOC284788"; transcript_id "NR_027090:uc010zso.1";
+chr20 hg19_knownGene exon 22541192 22545754 0.000000 - . gene_id "LINC00261"; transcript_id "NR_001558:uc010zsp.2";
+chr20 hg19_knownGene exon 22547321 22547443 0.000000 - . gene_id "LINC00261"; transcript_id "NR_001558:uc010zsp.2";
+chr20 hg19_knownGene exon 22548432 22548523 0.000000 - . gene_id "LINC00261"; transcript_id "NR_001558:uc010zsp.2";
+chr20 hg19_knownGene exon 22559148 22559280 0.000000 - . gene_id "LINC00261"; transcript_id "NR_001558:uc010zsp.2";
+chr20 hg19_knownGene CDS 22562491 22563792 0.000000 - 0 gene_id "FOXA2"; transcript_id "NM_021784:uc002wsm.3";
+chr20 hg19_knownGene exon 22561642 22563792 0.000000 - . gene_id "FOXA2"; transcript_id "NM_021784:uc002wsm.3";
+chr20 hg19_knownGene CDS 22564830 22564916 0.000000 - 0 gene_id "FOXA2"; transcript_id "NM_021784:uc002wsm.3";
+chr20 hg19_knownGene exon 22564830 22565101 0.000000 - . gene_id "FOXA2"; transcript_id "NM_021784:uc002wsm.3";
+chr20 hg19_knownGene CDS 22562491 22563792 0.000000 - 0 gene_id "FOXA2"; transcript_id "NM_153675:uc002wsn.3";
+chr20 hg19_knownGene exon 22561642 22563792 0.000000 - . gene_id "FOXA2"; transcript_id "NM_153675:uc002wsn.3";
+chr20 hg19_knownGene CDS 22564830 22564898 0.000000 - 0 gene_id "FOXA2"; transcript_id "NM_153675:uc002wsn.3";
+chr20 hg19_knownGene exon 22564830 22564899 0.000000 - . gene_id "FOXA2"; transcript_id "NM_153675:uc002wsn.3";
+chr20 hg19_knownGene exon 22565913 22566101 0.000000 - . gene_id "FOXA2"; transcript_id "NM_153675:uc002wsn.3";
+chr20 hg19_knownGene exon 22656710 22658895 0.000000 - . gene_id "AK055550"; transcript_id "AK055550:uc002wso.1";
+chr20 hg19_knownGene exon 22665383 22665514 0.000000 - . gene_id "AK055550"; transcript_id "AK055550:uc002wso.1";
+chr20 hg19_knownGene exon 22989742 22990906 0.000000 - . gene_id "BC045663"; transcript_id "BC045663:uc002wsq.2";
+chr20 hg19_knownGene exon 22991221 22991533 0.000000 - . gene_id "BC045663"; transcript_id "BC045663:uc002wsq.2";
+chr20 hg19_knownGene exon 22997393 22997495 0.000000 - . gene_id "BC045663"; transcript_id "BC045663:uc002wsq.2";
+chr20 hg19_knownGene exon 23011181 23011422 0.000000 - . gene_id "BC045663"; transcript_id "BC045663:uc002wsq.2";
+chr20 hg19_knownGene CDS 23016121 23017284 0.000000 + 0 gene_id "SSTR4"; transcript_id "NM_001052:uc002wsr.2";
+chr20 hg19_knownGene exon 23016057 23017314 0.000000 + . gene_id "SSTR4"; transcript_id "NM_001052:uc002wsr.2";
+chr20 hg19_knownGene exon 23026628 23027446 0.000000 - . gene_id "AX747264"; transcript_id "AX747264:uc002wst.1";
+chr20 hg19_knownGene exon 23027933 23028780 0.000000 - . gene_id "AX747264"; transcript_id "AX747264:uc002wst.1";
+chr20 hg19_knownGene CDS 23028597 23029964 0.000000 - 0 gene_id "THBD"; transcript_id "E38847:uc002wsu.1";
+chr20 hg19_knownGene exon 23028594 23030045 0.000000 - . gene_id "THBD"; transcript_id "E38847:uc002wsu.1";
+chr20 hg19_knownGene exon 23030095 23030141 0.000000 - . gene_id "THBD"; transcript_id "E38847:uc002wsu.1";
+chr20 hg19_knownGene CDS 23028417 23030141 0.000000 - 0 gene_id "THBD"; transcript_id "NM_000361:uc002wss.3";
+chr20 hg19_knownGene exon 23026270 23030301 0.000000 - . gene_id "THBD"; transcript_id "NM_000361:uc002wss.3";
+chr20 hg19_knownGene CDS 23064590 23064611 0.000000 - 1 gene_id "CD93"; transcript_id "NM_012072:uc002wsv.3";
+chr20 hg19_knownGene exon 23059993 23064611 0.000000 - . gene_id "CD93"; transcript_id "NM_012072:uc002wsv.3";
+chr20 hg19_knownGene CDS 23064896 23066829 0.000000 - 0 gene_id "CD93"; transcript_id "NM_012072:uc002wsv.3";
+chr20 hg19_knownGene exon 23064896 23066977 0.000000 - . gene_id "CD93"; transcript_id "NM_012072:uc002wsv.3";
+chr20 hg19_knownGene exon 23105705 23107175 0.000000 - . gene_id "LOC200261"; transcript_id "NR_034149:uc021wbi.1";
+chr20 hg19_knownGene exon 23109266 23109366 0.000000 - . gene_id "LOC200261"; transcript_id "NR_034149:uc021wbi.1";
+chr20 hg19_knownGene exon 23109602 23109802 0.000000 - . gene_id "LOC200261"; transcript_id "NR_034149:uc021wbi.1";
+chr20 hg19_knownGene exon 23113136 23113273 0.000000 - . gene_id "LOC200261"; transcript_id "NR_034149:uc021wbi.1";
+chr20 hg19_knownGene exon 23168598 23170942 0.000000 + . gene_id "AX747171"; transcript_id "AX747171:uc002wsw.1";
+chr20 hg19_knownGene CDS 23334679 23335098 0.000000 + 0 gene_id "NXT1"; transcript_id "CCDS13150:uc021wbj.1";
+chr20 hg19_knownGene exon 23334679 23335101 0.000000 + . gene_id "NXT1"; transcript_id "CCDS13150:uc021wbj.1";
+chr20 hg19_knownGene exon 23331373 23331698 0.000000 + . gene_id "NXT1"; transcript_id "NM_013248:uc002wsx.1";
+chr20 hg19_knownGene CDS 23334679 23335098 0.000000 + 0 gene_id "NXT1"; transcript_id "NM_013248:uc002wsx.1";
+chr20 hg19_knownGene exon 23334618 23335408 0.000000 + . gene_id "NXT1"; transcript_id "NM_013248:uc002wsx.1";
+chr20 hg19_knownGene exon 23342819 23342874 0.000000 + . gene_id "GZF1"; transcript_id "AK289814:uc010gdb.3";
+chr20 hg19_knownGene exon 23343858 23343954 0.000000 + . gene_id "GZF1"; transcript_id "AK289814:uc010gdb.3";
+chr20 hg19_knownGene CDS 23345021 23346384 0.000000 + 0 gene_id "GZF1"; transcript_id "AK289814:uc010gdb.3";
+chr20 hg19_knownGene exon 23345000 23346384 0.000000 + . gene_id "GZF1"; transcript_id "AK289814:uc010gdb.3";
+chr20 hg19_knownGene CDS 23347640 23347734 0.000000 + 1 gene_id "GZF1"; transcript_id "AK289814:uc010gdb.3";
+chr20 hg19_knownGene exon 23347640 23347734 0.000000 + . gene_id "GZF1"; transcript_id "AK289814:uc010gdb.3";
+chr20 hg19_knownGene CDS 23349399 23349566 0.000000 + 2 gene_id "GZF1"; transcript_id "AK289814:uc010gdb.3";
+chr20 hg19_knownGene exon 23349399 23349566 0.000000 + . gene_id "GZF1"; transcript_id "AK289814:uc010gdb.3";
+chr20 hg19_knownGene CDS 23350221 23350378 0.000000 + 2 gene_id "GZF1"; transcript_id "AK289814:uc010gdb.3";
+chr20 hg19_knownGene exon 23350221 23350378 0.000000 + . gene_id "GZF1"; transcript_id "AK289814:uc010gdb.3";
+chr20 hg19_knownGene CDS 23350728 23351075 0.000000 + 0 gene_id "GZF1"; transcript_id "AK289814:uc010gdb.3";
+chr20 hg19_knownGene exon 23350728 23353683 0.000000 + . gene_id "GZF1"; transcript_id "AK289814:uc010gdb.3";
+chr20 hg19_knownGene exon 23342819 23342874 0.000000 + . gene_id "GZF1"; transcript_id "AK056477:uc002wsy.3";
+chr20 hg19_knownGene CDS 23345021 23346384 0.000000 + 0 gene_id "GZF1"; transcript_id "AK056477:uc002wsy.3";
+chr20 hg19_knownGene exon 23345000 23346384 0.000000 + . gene_id "GZF1"; transcript_id "AK056477:uc002wsy.3";
+chr20 hg19_knownGene CDS 23347640 23347734 0.000000 + 1 gene_id "GZF1"; transcript_id "AK056477:uc002wsy.3";
+chr20 hg19_knownGene exon 23347640 23347734 0.000000 + . gene_id "GZF1"; transcript_id "AK056477:uc002wsy.3";
+chr20 hg19_knownGene CDS 23349399 23349566 0.000000 + 2 gene_id "GZF1"; transcript_id "AK056477:uc002wsy.3";
+chr20 hg19_knownGene exon 23349399 23349566 0.000000 + . gene_id "GZF1"; transcript_id "AK056477:uc002wsy.3";
+chr20 hg19_knownGene CDS 23350221 23350378 0.000000 + 2 gene_id "GZF1"; transcript_id "AK056477:uc002wsy.3";
+chr20 hg19_knownGene exon 23350221 23350378 0.000000 + . gene_id "GZF1"; transcript_id "AK056477:uc002wsy.3";
+chr20 hg19_knownGene CDS 23350728 23351075 0.000000 + 0 gene_id "GZF1"; transcript_id "AK056477:uc002wsy.3";
+chr20 hg19_knownGene exon 23350728 23353683 0.000000 + . gene_id "GZF1"; transcript_id "AK056477:uc002wsy.3";
+chr20 hg19_knownGene exon 23342819 23342874 0.000000 + . gene_id "GZF1"; transcript_id "AK295362:uc010zsq.2";
+chr20 hg19_knownGene CDS 23347704 23347734 0.000000 + 0 gene_id "GZF1"; transcript_id "AK295362:uc010zsq.2";
+chr20 hg19_knownGene exon 23347640 23347734 0.000000 + . gene_id "GZF1"; transcript_id "AK295362:uc010zsq.2";
+chr20 hg19_knownGene CDS 23349399 23349566 0.000000 + 2 gene_id "GZF1"; transcript_id "AK295362:uc010zsq.2";
+chr20 hg19_knownGene exon 23349399 23349566 0.000000 + . gene_id "GZF1"; transcript_id "AK295362:uc010zsq.2";
+chr20 hg19_knownGene CDS 23350221 23350378 0.000000 + 2 gene_id "GZF1"; transcript_id "AK295362:uc010zsq.2";
+chr20 hg19_knownGene exon 23350221 23350378 0.000000 + . gene_id "GZF1"; transcript_id "AK295362:uc010zsq.2";
+chr20 hg19_knownGene CDS 23350728 23351075 0.000000 + 0 gene_id "GZF1"; transcript_id "AK295362:uc010zsq.2";
+chr20 hg19_knownGene exon 23350728 23353683 0.000000 + . gene_id "GZF1"; transcript_id "AK295362:uc010zsq.2";
+chr20 hg19_knownGene exon 23342819 23342874 0.000000 + . gene_id "GZF1"; transcript_id "AK293942:uc010zsr.2";
+chr20 hg19_knownGene CDS 23349413 23349566 0.000000 + 0 gene_id "GZF1"; transcript_id "AK293942:uc010zsr.2";
+chr20 hg19_knownGene exon 23349399 23349566 0.000000 + . gene_id "GZF1"; transcript_id "AK293942:uc010zsr.2";
+chr20 hg19_knownGene CDS 23350221 23350378 0.000000 + 2 gene_id "GZF1"; transcript_id "AK293942:uc010zsr.2";
+chr20 hg19_knownGene exon 23350221 23350378 0.000000 + . gene_id "GZF1"; transcript_id "AK293942:uc010zsr.2";
+chr20 hg19_knownGene CDS 23350728 23351075 0.000000 + 0 gene_id "GZF1"; transcript_id "AK293942:uc010zsr.2";
+chr20 hg19_knownGene exon 23350728 23353683 0.000000 + . gene_id "GZF1"; transcript_id "AK293942:uc010zsr.2";
+chr20 hg19_knownGene CDS 23345021 23346384 0.000000 + 0 gene_id "GZF1"; transcript_id "NM_022482:uc002wsz.3";
+chr20 hg19_knownGene exon 23345000 23346384 0.000000 + . gene_id "GZF1"; transcript_id "NM_022482:uc002wsz.3";
+chr20 hg19_knownGene CDS 23347640 23347734 0.000000 + 1 gene_id "GZF1"; transcript_id "NM_022482:uc002wsz.3";
+chr20 hg19_knownGene exon 23347640 23347734 0.000000 + . gene_id "GZF1"; transcript_id "NM_022482:uc002wsz.3";
+chr20 hg19_knownGene CDS 23349399 23349566 0.000000 + 2 gene_id "GZF1"; transcript_id "NM_022482:uc002wsz.3";
+chr20 hg19_knownGene exon 23349399 23349566 0.000000 + . gene_id "GZF1"; transcript_id "NM_022482:uc002wsz.3";
+chr20 hg19_knownGene CDS 23350221 23350378 0.000000 + 2 gene_id "GZF1"; transcript_id "NM_022482:uc002wsz.3";
+chr20 hg19_knownGene exon 23350221 23350378 0.000000 + . gene_id "GZF1"; transcript_id "NM_022482:uc002wsz.3";
+chr20 hg19_knownGene CDS 23350728 23351075 0.000000 + 0 gene_id "GZF1"; transcript_id "NM_022482:uc002wsz.3";
+chr20 hg19_knownGene exon 23350728 23353683 0.000000 + . gene_id "GZF1"; transcript_id "NM_022482:uc002wsz.3";
+chr20 hg19_knownGene CDS 23358016 23358123 0.000000 - 0 gene_id "NAPB"; transcript_id "AK295791:uc010zss.1";
+chr20 hg19_knownGene exon 23356710 23358123 0.000000 - . gene_id "NAPB"; transcript_id "AK295791:uc010zss.1";
+chr20 hg19_knownGene CDS 23360082 23360132 0.000000 - 0 gene_id "NAPB"; transcript_id "AK295791:uc010zss.1";
+chr20 hg19_knownGene exon 23360082 23360132 0.000000 - . gene_id "NAPB"; transcript_id "AK295791:uc010zss.1";
+chr20 hg19_knownGene CDS 23360504 23360572 0.000000 - 0 gene_id "NAPB"; transcript_id "AK295791:uc010zss.1";
+chr20 hg19_knownGene exon 23360504 23360572 0.000000 - . gene_id "NAPB"; transcript_id "AK295791:uc010zss.1";
+chr20 hg19_knownGene CDS 23361850 23361954 0.000000 - 0 gene_id "NAPB"; transcript_id "AK295791:uc010zss.1";
+chr20 hg19_knownGene exon 23361850 23361954 0.000000 - . gene_id "NAPB"; transcript_id "AK295791:uc010zss.1";
+chr20 hg19_knownGene CDS 23370583 23370667 0.000000 - 1 gene_id "NAPB"; transcript_id "AK295791:uc010zss.1";
+chr20 hg19_knownGene exon 23370583 23370667 0.000000 - . gene_id "NAPB"; transcript_id "AK295791:uc010zss.1";
+chr20 hg19_knownGene CDS 23370846 23370901 0.000000 - 0 gene_id "NAPB"; transcript_id "AK295791:uc010zss.1";
+chr20 hg19_knownGene exon 23370846 23370901 0.000000 - . gene_id "NAPB"; transcript_id "AK295791:uc010zss.1";
+chr20 hg19_knownGene CDS 23375559 23375636 0.000000 - 0 gene_id "NAPB"; transcript_id "AK295791:uc010zss.1";
+chr20 hg19_knownGene exon 23375559 23375636 0.000000 - . gene_id "NAPB"; transcript_id "AK295791:uc010zss.1";
+chr20 hg19_knownGene CDS 23375776 23375778 0.000000 - 0 gene_id "NAPB"; transcript_id "AK295791:uc010zss.1";
+chr20 hg19_knownGene exon 23375776 23375834 0.000000 - . gene_id "NAPB"; transcript_id "AK295791:uc010zss.1";
+chr20 hg19_knownGene CDS 23358016 23358123 0.000000 - 0 gene_id "NAPB"; transcript_id "NM_022080:uc002wta.3";
+chr20 hg19_knownGene exon 23355156 23358123 0.000000 - . gene_id "NAPB"; transcript_id "NM_022080:uc002wta.3";
+chr20 hg19_knownGene CDS 23360082 23360132 0.000000 - 0 gene_id "NAPB"; transcript_id "NM_022080:uc002wta.3";
+chr20 hg19_knownGene exon 23360082 23360132 0.000000 - . gene_id "NAPB"; transcript_id "NM_022080:uc002wta.3";
+chr20 hg19_knownGene CDS 23360504 23360572 0.000000 - 0 gene_id "NAPB"; transcript_id "NM_022080:uc002wta.3";
+chr20 hg19_knownGene exon 23360504 23360572 0.000000 - . gene_id "NAPB"; transcript_id "NM_022080:uc002wta.3";
+chr20 hg19_knownGene CDS 23361850 23361954 0.000000 - 0 gene_id "NAPB"; transcript_id "NM_022080:uc002wta.3";
+chr20 hg19_knownGene exon 23361850 23361954 0.000000 - . gene_id "NAPB"; transcript_id "NM_022080:uc002wta.3";
+chr20 hg19_knownGene CDS 23370583 23370667 0.000000 - 1 gene_id "NAPB"; transcript_id "NM_022080:uc002wta.3";
+chr20 hg19_knownGene exon 23370583 23370667 0.000000 - . gene_id "NAPB"; transcript_id "NM_022080:uc002wta.3";
+chr20 hg19_knownGene CDS 23370846 23370901 0.000000 - 0 gene_id "NAPB"; transcript_id "NM_022080:uc002wta.3";
+chr20 hg19_knownGene exon 23370846 23370901 0.000000 - . gene_id "NAPB"; transcript_id "NM_022080:uc002wta.3";
+chr20 hg19_knownGene CDS 23375559 23375636 0.000000 - 0 gene_id "NAPB"; transcript_id "NM_022080:uc002wta.3";
+chr20 hg19_knownGene exon 23375559 23375636 0.000000 - . gene_id "NAPB"; transcript_id "NM_022080:uc002wta.3";
+chr20 hg19_knownGene CDS 23375776 23375822 0.000000 - 2 gene_id "NAPB"; transcript_id "NM_022080:uc002wta.3";
+chr20 hg19_knownGene exon 23375776 23375822 0.000000 - . gene_id "NAPB"; transcript_id "NM_022080:uc002wta.3";
+chr20 hg19_knownGene CDS 23377709 23377825 0.000000 - 2 gene_id "NAPB"; transcript_id "NM_022080:uc002wta.3";
+chr20 hg19_knownGene exon 23377709 23377825 0.000000 - . gene_id "NAPB"; transcript_id "NM_022080:uc002wta.3";
+chr20 hg19_knownGene CDS 23383630 23383709 0.000000 - 1 gene_id "NAPB"; transcript_id "NM_022080:uc002wta.3";
+chr20 hg19_knownGene exon 23383630 23383709 0.000000 - . gene_id "NAPB"; transcript_id "NM_022080:uc002wta.3";
+chr20 hg19_knownGene CDS 23401942 23402039 0.000000 - 0 gene_id "NAPB"; transcript_id "NM_022080:uc002wta.3";
+chr20 hg19_knownGene exon 23401942 23402156 0.000000 - . gene_id "NAPB"; transcript_id "NM_022080:uc002wta.3";
+chr20 hg19_knownGene CDS 23358016 23358123 0.000000 - 0 gene_id "NAPB"; transcript_id "BC047426:uc002wtc.3";
+chr20 hg19_knownGene exon 23355156 23358123 0.000000 - . gene_id "NAPB"; transcript_id "BC047426:uc002wtc.3";
+chr20 hg19_knownGene CDS 23360082 23360132 0.000000 - 0 gene_id "NAPB"; transcript_id "BC047426:uc002wtc.3";
+chr20 hg19_knownGene exon 23360082 23360132 0.000000 - . gene_id "NAPB"; transcript_id "BC047426:uc002wtc.3";
+chr20 hg19_knownGene CDS 23360504 23360572 0.000000 - 0 gene_id "NAPB"; transcript_id "BC047426:uc002wtc.3";
+chr20 hg19_knownGene exon 23360504 23360572 0.000000 - . gene_id "NAPB"; transcript_id "BC047426:uc002wtc.3";
+chr20 hg19_knownGene CDS 23361850 23361954 0.000000 - 0 gene_id "NAPB"; transcript_id "BC047426:uc002wtc.3";
+chr20 hg19_knownGene exon 23361850 23361954 0.000000 - . gene_id "NAPB"; transcript_id "BC047426:uc002wtc.3";
+chr20 hg19_knownGene CDS 23370583 23370667 0.000000 - 1 gene_id "NAPB"; transcript_id "BC047426:uc002wtc.3";
+chr20 hg19_knownGene exon 23370583 23370667 0.000000 - . gene_id "NAPB"; transcript_id "BC047426:uc002wtc.3";
+chr20 hg19_knownGene CDS 23370846 23370901 0.000000 - 0 gene_id "NAPB"; transcript_id "BC047426:uc002wtc.3";
+chr20 hg19_knownGene exon 23370846 23370901 0.000000 - . gene_id "NAPB"; transcript_id "BC047426:uc002wtc.3";
+chr20 hg19_knownGene CDS 23375559 23375636 0.000000 - 0 gene_id "NAPB"; transcript_id "BC047426:uc002wtc.3";
+chr20 hg19_knownGene exon 23375559 23375636 0.000000 - . gene_id "NAPB"; transcript_id "BC047426:uc002wtc.3";
+chr20 hg19_knownGene CDS 23377709 23377768 0.000000 - 0 gene_id "NAPB"; transcript_id "BC047426:uc002wtc.3";
+chr20 hg19_knownGene exon 23377709 23377825 0.000000 - . gene_id "NAPB"; transcript_id "BC047426:uc002wtc.3";
+chr20 hg19_knownGene exon 23383630 23383709 0.000000 - . gene_id "NAPB"; transcript_id "BC047426:uc002wtc.3";
+chr20 hg19_knownGene exon 23401942 23402156 0.000000 - . gene_id "NAPB"; transcript_id "BC047426:uc002wtc.3";
+chr20 hg19_knownGene CDS 23358016 23358123 0.000000 - 0 gene_id "NAPB"; transcript_id "AK124876:uc002wtb.3";
+chr20 hg19_knownGene exon 23355156 23358123 0.000000 - . gene_id "NAPB"; transcript_id "AK124876:uc002wtb.3";
+chr20 hg19_knownGene CDS 23360082 23360132 0.000000 - 0 gene_id "NAPB"; transcript_id "AK124876:uc002wtb.3";
+chr20 hg19_knownGene exon 23360082 23360132 0.000000 - . gene_id "NAPB"; transcript_id "AK124876:uc002wtb.3";
+chr20 hg19_knownGene CDS 23360504 23360572 0.000000 - 0 gene_id "NAPB"; transcript_id "AK124876:uc002wtb.3";
+chr20 hg19_knownGene exon 23360504 23360572 0.000000 - . gene_id "NAPB"; transcript_id "AK124876:uc002wtb.3";
+chr20 hg19_knownGene CDS 23361850 23361954 0.000000 - 0 gene_id "NAPB"; transcript_id "AK124876:uc002wtb.3";
+chr20 hg19_knownGene exon 23361850 23361954 0.000000 - . gene_id "NAPB"; transcript_id "AK124876:uc002wtb.3";
+chr20 hg19_knownGene CDS 23370583 23370667 0.000000 - 1 gene_id "NAPB"; transcript_id "AK124876:uc002wtb.3";
+chr20 hg19_knownGene exon 23370583 23370667 0.000000 - . gene_id "NAPB"; transcript_id "AK124876:uc002wtb.3";
+chr20 hg19_knownGene CDS 23370846 23370901 0.000000 - 0 gene_id "NAPB"; transcript_id "AK124876:uc002wtb.3";
+chr20 hg19_knownGene exon 23370846 23370901 0.000000 - . gene_id "NAPB"; transcript_id "AK124876:uc002wtb.3";
+chr20 hg19_knownGene CDS 23375559 23375636 0.000000 - 0 gene_id "NAPB"; transcript_id "AK124876:uc002wtb.3";
+chr20 hg19_knownGene exon 23375559 23375636 0.000000 - . gene_id "NAPB"; transcript_id "AK124876:uc002wtb.3";
+chr20 hg19_knownGene CDS 23375776 23375822 0.000000 - 2 gene_id "NAPB"; transcript_id "AK124876:uc002wtb.3";
+chr20 hg19_knownGene exon 23375776 23375822 0.000000 - . gene_id "NAPB"; transcript_id "AK124876:uc002wtb.3";
+chr20 hg19_knownGene CDS 23377709 23377837 0.000000 - 2 gene_id "NAPB"; transcript_id "AK124876:uc002wtb.3";
+chr20 hg19_knownGene exon 23377709 23377837 0.000000 - . gene_id "NAPB"; transcript_id "AK124876:uc002wtb.3";
+chr20 hg19_knownGene CDS 23383630 23383709 0.000000 - 1 gene_id "NAPB"; transcript_id "AK124876:uc002wtb.3";
+chr20 hg19_knownGene exon 23383630 23383709 0.000000 - . gene_id "NAPB"; transcript_id "AK124876:uc002wtb.3";
+chr20 hg19_knownGene CDS 23401942 23402039 0.000000 - 0 gene_id "NAPB"; transcript_id "AK124876:uc002wtb.3";
+chr20 hg19_knownGene exon 23401942 23402156 0.000000 - . gene_id "NAPB"; transcript_id "AK124876:uc002wtb.3";
+chr20 hg19_knownGene exon 23355829 23356289 0.000000 - . gene_id "NAPB"; transcript_id "BX648330:uc002wtd.4";
+chr20 hg19_knownGene exon 23356710 23358123 0.000000 - . gene_id "NAPB"; transcript_id "BX648330:uc002wtd.4";
+chr20 hg19_knownGene exon 23360082 23360132 0.000000 - . gene_id "NAPB"; transcript_id "BX648330:uc002wtd.4";
+chr20 hg19_knownGene exon 23360504 23360572 0.000000 - . gene_id "NAPB"; transcript_id "BX648330:uc002wtd.4";
+chr20 hg19_knownGene exon 23361850 23361954 0.000000 - . gene_id "NAPB"; transcript_id "BX648330:uc002wtd.4";
+chr20 hg19_knownGene exon 23370583 23370667 0.000000 - . gene_id "NAPB"; transcript_id "BX648330:uc002wtd.4";
+chr20 hg19_knownGene exon 23370846 23370901 0.000000 - . gene_id "NAPB"; transcript_id "BX648330:uc002wtd.4";
+chr20 hg19_knownGene exon 23375559 23375636 0.000000 - . gene_id "NAPB"; transcript_id "BX648330:uc002wtd.4";
+chr20 hg19_knownGene exon 23377709 23377819 0.000000 - . gene_id "NAPB"; transcript_id "BX648330:uc002wtd.4";
+chr20 hg19_knownGene exon 23383630 23383709 0.000000 - . gene_id "NAPB"; transcript_id "BX648330:uc002wtd.4";
+chr20 hg19_knownGene exon 23401942 23402156 0.000000 - . gene_id "NAPB"; transcript_id "BX648330:uc002wtd.4";
+chr20 hg19_knownGene CDS 23358016 23358123 0.000000 - 0 gene_id "NAPB"; transcript_id "AK296385:uc010zst.1";
+chr20 hg19_knownGene exon 23356710 23358123 0.000000 - . gene_id "NAPB"; transcript_id "AK296385:uc010zst.1";
+chr20 hg19_knownGene CDS 23360082 23360132 0.000000 - 0 gene_id "NAPB"; transcript_id "AK296385:uc010zst.1";
+chr20 hg19_knownGene exon 23360082 23360132 0.000000 - . gene_id "NAPB"; transcript_id "AK296385:uc010zst.1";
+chr20 hg19_knownGene CDS 23360504 23360572 0.000000 - 0 gene_id "NAPB"; transcript_id "AK296385:uc010zst.1";
+chr20 hg19_knownGene exon 23360504 23360572 0.000000 - . gene_id "NAPB"; transcript_id "AK296385:uc010zst.1";
+chr20 hg19_knownGene CDS 23361850 23361954 0.000000 - 0 gene_id "NAPB"; transcript_id "AK296385:uc010zst.1";
+chr20 hg19_knownGene exon 23361850 23361954 0.000000 - . gene_id "NAPB"; transcript_id "AK296385:uc010zst.1";
+chr20 hg19_knownGene CDS 23370583 23370667 0.000000 - 1 gene_id "NAPB"; transcript_id "AK296385:uc010zst.1";
+chr20 hg19_knownGene exon 23370583 23370667 0.000000 - . gene_id "NAPB"; transcript_id "AK296385:uc010zst.1";
+chr20 hg19_knownGene CDS 23370846 23370901 0.000000 - 0 gene_id "NAPB"; transcript_id "AK296385:uc010zst.1";
+chr20 hg19_knownGene exon 23370846 23370901 0.000000 - . gene_id "NAPB"; transcript_id "AK296385:uc010zst.1";
+chr20 hg19_knownGene CDS 23375559 23375636 0.000000 - 0 gene_id "NAPB"; transcript_id "AK296385:uc010zst.1";
+chr20 hg19_knownGene exon 23375559 23375636 0.000000 - . gene_id "NAPB"; transcript_id "AK296385:uc010zst.1";
+chr20 hg19_knownGene CDS 23375776 23375822 0.000000 - 2 gene_id "NAPB"; transcript_id "AK296385:uc010zst.1";
+chr20 hg19_knownGene exon 23375776 23375822 0.000000 - . gene_id "NAPB"; transcript_id "AK296385:uc010zst.1";
+chr20 hg19_knownGene CDS 23383630 23383709 0.000000 - 1 gene_id "NAPB"; transcript_id "AK296385:uc010zst.1";
+chr20 hg19_knownGene exon 23383630 23383709 0.000000 - . gene_id "NAPB"; transcript_id "AK296385:uc010zst.1";
+chr20 hg19_knownGene CDS 23401942 23402039 0.000000 - 0 gene_id "NAPB"; transcript_id "AK296385:uc010zst.1";
+chr20 hg19_knownGene exon 23401942 23402156 0.000000 - . gene_id "NAPB"; transcript_id "AK296385:uc010zst.1";
+chr20 hg19_knownGene exon 23420322 23420443 0.000000 + . gene_id "CSTL1"; transcript_id "NM_138283:uc002wte.3";
+chr20 hg19_knownGene CDS 23420905 23421123 0.000000 + 0 gene_id "CSTL1"; transcript_id "NM_138283:uc002wte.3";
+chr20 hg19_knownGene exon 23420781 23421123 0.000000 + . gene_id "CSTL1"; transcript_id "NM_138283:uc002wte.3";
+chr20 hg19_knownGene CDS 23424571 23424681 0.000000 + 0 gene_id "CSTL1"; transcript_id "NM_138283:uc002wte.3";
+chr20 hg19_knownGene exon 23424571 23424681 0.000000 + . gene_id "CSTL1"; transcript_id "NM_138283:uc002wte.3";
+chr20 hg19_knownGene CDS 23425408 23425512 0.000000 + 0 gene_id "CSTL1"; transcript_id "NM_138283:uc002wte.3";
+chr20 hg19_knownGene exon 23425408 23425567 0.000000 + . gene_id "CSTL1"; transcript_id "NM_138283:uc002wte.3";
+chr20 hg19_knownGene exon 23420781 23421123 0.000000 + . gene_id "CSTL1"; transcript_id "FJ895879:uc010zsu.2";
+chr20 hg19_knownGene exon 23421414 23421536 0.000000 + . gene_id "CSTL1"; transcript_id "FJ895879:uc010zsu.2";
+chr20 hg19_knownGene exon 23424571 23424681 0.000000 + . gene_id "CSTL1"; transcript_id "FJ895879:uc010zsu.2";
+chr20 hg19_knownGene exon 23425408 23425567 0.000000 + . gene_id "CSTL1"; transcript_id "FJ895879:uc010zsu.2";
+chr20 hg19_knownGene exon 23420781 23421123 0.000000 + . gene_id "CSTL1"; transcript_id "FJ895880:uc010zsv.2";
+chr20 hg19_knownGene exon 23421489 23421536 0.000000 + . gene_id "CSTL1"; transcript_id "FJ895880:uc010zsv.2";
+chr20 hg19_knownGene exon 23424571 23424681 0.000000 + . gene_id "CSTL1"; transcript_id "FJ895880:uc010zsv.2";
+chr20 hg19_knownGene exon 23425408 23425567 0.000000 + . gene_id "CSTL1"; transcript_id "FJ895880:uc010zsv.2";
+chr20 hg19_knownGene CDS 23431146 23431226 0.000000 - 0 gene_id "CST11"; transcript_id "NM_130794:uc002wtf.1";
+chr20 hg19_knownGene exon 23431041 23431226 0.000000 - . gene_id "CST11"; transcript_id "NM_130794:uc002wtf.1";
+chr20 hg19_knownGene CDS 23432453 23432557 0.000000 - 0 gene_id "CST11"; transcript_id "NM_130794:uc002wtf.1";
+chr20 hg19_knownGene exon 23432453 23432557 0.000000 - . gene_id "CST11"; transcript_id "NM_130794:uc002wtf.1";
+chr20 hg19_knownGene CDS 23433221 23433448 0.000000 - 0 gene_id "CST11"; transcript_id "NM_130794:uc002wtf.1";
+chr20 hg19_knownGene exon 23433221 23433482 0.000000 - . gene_id "CST11"; transcript_id "NM_130794:uc002wtf.1";
+chr20 hg19_knownGene CDS 23431146 23431226 0.000000 - 0 gene_id "CST11"; transcript_id "NM_080830:uc002wtg.1";
+chr20 hg19_knownGene exon 23431041 23431226 0.000000 - . gene_id "CST11"; transcript_id "NM_080830:uc002wtg.1";
+chr20 hg19_knownGene CDS 23433221 23433448 0.000000 - 0 gene_id "CST11"; transcript_id "NM_080830:uc002wtg.1";
+chr20 hg19_knownGene exon 23433221 23433482 0.000000 - . gene_id "CST11"; transcript_id "NM_080830:uc002wtg.1";
+chr20 hg19_knownGene exon 23471766 23471979 0.000000 + . gene_id "CST8"; transcript_id "NM_005492:uc002wth.1";
+chr20 hg19_knownGene CDS 23472305 23472535 0.000000 + 0 gene_id "CST8"; transcript_id "NM_005492:uc002wth.1";
+chr20 hg19_knownGene exon 23472162 23472535 0.000000 + . gene_id "CST8"; transcript_id "NM_005492:uc002wth.1";
+chr20 hg19_knownGene CDS 23473595 23473708 0.000000 + 0 gene_id "CST8"; transcript_id "NM_005492:uc002wth.1";
+chr20 hg19_knownGene exon 23473595 23473708 0.000000 + . gene_id "CST8"; transcript_id "NM_005492:uc002wth.1";
+chr20 hg19_knownGene CDS 23476468 23476548 0.000000 + 0 gene_id "CST8"; transcript_id "NM_005492:uc002wth.1";
+chr20 hg19_knownGene exon 23476468 23476655 0.000000 + . gene_id "CST8"; transcript_id "NM_005492:uc002wth.1";
+chr20 hg19_knownGene exon 23499783 23500121 0.000000 + . gene_id "CSTT"; transcript_id "NR_001279:uc002wti.3";
+chr20 hg19_knownGene exon 23501384 23501745 0.000000 + . gene_id "CSTT"; transcript_id "NR_001279:uc002wti.3";
+chr20 hg19_knownGene exon 23514835 23514945 0.000000 + . gene_id "CSTT"; transcript_id "NR_001279:uc002wti.3";
+chr20 hg19_knownGene exon 23522311 23522655 0.000000 + . gene_id "CSTT"; transcript_id "NR_001279:uc002wti.3";
+chr20 hg19_knownGene exon 23499783 23500121 0.000000 + . gene_id "CSTT"; transcript_id "BC041171:uc002wtj.3";
+chr20 hg19_knownGene exon 23501387 23501745 0.000000 + . gene_id "CSTT"; transcript_id "BC041171:uc002wtj.3";
+chr20 hg19_knownGene exon 23514835 23514945 0.000000 + . gene_id "CSTT"; transcript_id "BC041171:uc002wtj.3";
+chr20 hg19_knownGene exon 23522311 23522655 0.000000 + . gene_id "CSTT"; transcript_id "BC041171:uc002wtj.3";
+chr20 hg19_knownGene CDS 23545588 23545674 0.000000 - 0 gene_id "CST9L"; transcript_id "NM_080610:uc002wtk.4";
+chr20 hg19_knownGene exon 23545370 23545674 0.000000 - . gene_id "CST9L"; transcript_id "NM_080610:uc002wtk.4";
+chr20 hg19_knownGene CDS 23546611 23546724 0.000000 - 0 gene_id "CST9L"; transcript_id "NM_080610:uc002wtk.4";
+chr20 hg19_knownGene exon 23546611 23546724 0.000000 - . gene_id "CST9L"; transcript_id "NM_080610:uc002wtk.4";
+chr20 hg19_knownGene CDS 23548848 23549087 0.000000 - 0 gene_id "CST9L"; transcript_id "NM_080610:uc002wtk.4";
+chr20 hg19_knownGene exon 23548848 23549386 0.000000 - . gene_id "CST9L"; transcript_id "NM_080610:uc002wtk.4";
+chr20 hg19_knownGene CDS 23584150 23584371 0.000000 - 0 gene_id "CST9"; transcript_id "NM_001008693:uc002wtl.3";
+chr20 hg19_knownGene exon 23583047 23584371 0.000000 - . gene_id "CST9"; transcript_id "NM_001008693:uc002wtl.3";
+chr20 hg19_knownGene CDS 23586247 23586501 0.000000 - 0 gene_id "CST9"; transcript_id "NM_001008693:uc002wtl.3";
+chr20 hg19_knownGene exon 23586247 23586610 0.000000 - . gene_id "CST9"; transcript_id "NM_001008693:uc002wtl.3";
+chr20 hg19_knownGene exon 23608534 23610102 0.000000 - . gene_id "CST3"; transcript_id "BX647523:uc002wtm.3";
+chr20 hg19_knownGene CDS 23614556 23614636 0.000000 - 0 gene_id "CST3"; transcript_id "BX647523:uc002wtm.3";
+chr20 hg19_knownGene exon 23614551 23614636 0.000000 - . gene_id "CST3"; transcript_id "BX647523:uc002wtm.3";
+chr20 hg19_knownGene CDS 23615891 23616004 0.000000 - 0 gene_id "CST3"; transcript_id "BX647523:uc002wtm.3";
+chr20 hg19_knownGene exon 23615891 23616004 0.000000 - . gene_id "CST3"; transcript_id "BX647523:uc002wtm.3";
+chr20 hg19_knownGene CDS 23618257 23618499 0.000000 - 0 gene_id "CST3"; transcript_id "BX647523:uc002wtm.3";
+chr20 hg19_knownGene exon 23618257 23618574 0.000000 - . gene_id "CST3"; transcript_id "BX647523:uc002wtm.3";
+chr20 hg19_knownGene CDS 23614556 23614636 0.000000 - 0 gene_id "CST3"; transcript_id "NM_000099:uc002wtn.1";
+chr20 hg19_knownGene exon 23614294 23614636 0.000000 - . gene_id "CST3"; transcript_id "NM_000099:uc002wtn.1";
+chr20 hg19_knownGene CDS 23615891 23616004 0.000000 - 0 gene_id "CST3"; transcript_id "NM_000099:uc002wtn.1";
+chr20 hg19_knownGene exon 23615891 23616004 0.000000 - . gene_id "CST3"; transcript_id "NM_000099:uc002wtn.1";
+chr20 hg19_knownGene CDS 23618257 23618499 0.000000 - 0 gene_id "CST3"; transcript_id "NM_000099:uc002wtn.1";
+chr20 hg19_knownGene exon 23618257 23618574 0.000000 - . gene_id "CST3"; transcript_id "NM_000099:uc002wtn.1";
+chr20 hg19_knownGene CDS 23666534 23666614 0.000000 - 0 gene_id "CST4"; transcript_id "NM_001899:uc002wto.1";
+chr20 hg19_knownGene exon 23666277 23666614 0.000000 - . gene_id "CST4"; transcript_id "NM_001899:uc002wto.1";
+chr20 hg19_knownGene CDS 23667725 23667838 0.000000 - 0 gene_id "CST4"; transcript_id "NM_001899:uc002wto.1";
+chr20 hg19_knownGene exon 23667725 23667838 0.000000 - . gene_id "CST4"; transcript_id "NM_001899:uc002wto.1";
+chr20 hg19_knownGene CDS 23669379 23669606 0.000000 - 0 gene_id "CST4"; transcript_id "NM_001899:uc002wto.1";
+chr20 hg19_knownGene exon 23669379 23669662 0.000000 - . gene_id "CST4"; transcript_id "NM_001899:uc002wto.1";
+chr20 hg19_knownGene CDS 23728456 23728536 0.000000 - 0 gene_id "CST1"; transcript_id "NM_001898:uc002wtp.3";
+chr20 hg19_knownGene exon 23728190 23728536 0.000000 - . gene_id "CST1"; transcript_id "NM_001898:uc002wtp.3";
+chr20 hg19_knownGene CDS 23729653 23729766 0.000000 - 0 gene_id "CST1"; transcript_id "NM_001898:uc002wtp.3";
+chr20 hg19_knownGene exon 23729653 23729766 0.000000 - . gene_id "CST1"; transcript_id "NM_001898:uc002wtp.3";
+chr20 hg19_knownGene CDS 23731276 23731503 0.000000 - 0 gene_id "CST1"; transcript_id "NM_001898:uc002wtp.3";
+chr20 hg19_knownGene exon 23731276 23731574 0.000000 - . gene_id "CST1"; transcript_id "NM_001898:uc002wtp.3";
+chr20 hg19_knownGene CDS 23804660 23804740 0.000000 - 0 gene_id "CST2"; transcript_id "NM_001322:uc002wtq.1";
+chr20 hg19_knownGene exon 23804404 23804740 0.000000 - . gene_id "CST2"; transcript_id "NM_001322:uc002wtq.1";
+chr20 hg19_knownGene CDS 23805847 23805960 0.000000 - 0 gene_id "CST2"; transcript_id "NM_001322:uc002wtq.1";
+chr20 hg19_knownGene exon 23805847 23805960 0.000000 - . gene_id "CST2"; transcript_id "NM_001322:uc002wtq.1";
+chr20 hg19_knownGene CDS 23807070 23807297 0.000000 - 0 gene_id "CST2"; transcript_id "NM_001322:uc002wtq.1";
+chr20 hg19_knownGene exon 23807070 23807312 0.000000 - . gene_id "CST2"; transcript_id "NM_001322:uc002wtq.1";
+chr20 hg19_knownGene CDS 23856828 23856908 0.000000 - 0 gene_id "CST5"; transcript_id "NM_001900:uc002wtr.1";
+chr20 hg19_knownGene exon 23856572 23856908 0.000000 - . gene_id "CST5"; transcript_id "NM_001900:uc002wtr.1";
+chr20 hg19_knownGene CDS 23858142 23858255 0.000000 - 0 gene_id "CST5"; transcript_id "NM_001900:uc002wtr.1";
+chr20 hg19_knownGene exon 23858142 23858255 0.000000 - . gene_id "CST5"; transcript_id "NM_001900:uc002wtr.1";
+chr20 hg19_knownGene CDS 23860083 23860313 0.000000 - 0 gene_id "CST5"; transcript_id "NM_001900:uc002wtr.1";
+chr20 hg19_knownGene exon 23860083 23860380 0.000000 - . gene_id "CST5"; transcript_id "NM_001900:uc002wtr.1";
+chr20 hg19_knownGene CDS 23965856 23965999 0.000000 - 0 gene_id "GGTLC1"; transcript_id "NM_178312:uc002wts.3";
+chr20 hg19_knownGene exon 23965690 23965999 0.000000 - . gene_id "GGTLC1"; transcript_id "NM_178312:uc002wts.3";
+chr20 hg19_knownGene CDS 23966304 23966417 0.000000 - 0 gene_id "GGTLC1"; transcript_id "NM_178312:uc002wts.3";
+chr20 hg19_knownGene exon 23966304 23966417 0.000000 - . gene_id "GGTLC1"; transcript_id "NM_178312:uc002wts.3";
+chr20 hg19_knownGene CDS 23966499 23966611 0.000000 - 2 gene_id "GGTLC1"; transcript_id "NM_178312:uc002wts.3";
+chr20 hg19_knownGene exon 23966499 23966611 0.000000 - . gene_id "GGTLC1"; transcript_id "NM_178312:uc002wts.3";
+chr20 hg19_knownGene CDS 23966713 23966840 0.000000 - 1 gene_id "GGTLC1"; transcript_id "NM_178312:uc002wts.3";
+chr20 hg19_knownGene exon 23966713 23966840 0.000000 - . gene_id "GGTLC1"; transcript_id "NM_178312:uc002wts.3";
+chr20 hg19_knownGene CDS 23967073 23967248 0.000000 - 0 gene_id "GGTLC1"; transcript_id "NM_178312:uc002wts.3";
+chr20 hg19_knownGene exon 23967073 23967282 0.000000 - . gene_id "GGTLC1"; transcript_id "NM_178312:uc002wts.3";
+chr20 hg19_knownGene exon 23967414 23967512 0.000000 - . gene_id "GGTLC1"; transcript_id "NM_178312:uc002wts.3";
+chr20 hg19_knownGene CDS 23965856 23965999 0.000000 - 0 gene_id "GGTLC1"; transcript_id "NM_178311:uc002wtu.3";
+chr20 hg19_knownGene exon 23965690 23965999 0.000000 - . gene_id "GGTLC1"; transcript_id "NM_178311:uc002wtu.3";
+chr20 hg19_knownGene CDS 23966304 23966417 0.000000 - 0 gene_id "GGTLC1"; transcript_id "NM_178311:uc002wtu.3";
+chr20 hg19_knownGene exon 23966304 23966417 0.000000 - . gene_id "GGTLC1"; transcript_id "NM_178311:uc002wtu.3";
+chr20 hg19_knownGene CDS 23966499 23966611 0.000000 - 2 gene_id "GGTLC1"; transcript_id "NM_178311:uc002wtu.3";
+chr20 hg19_knownGene exon 23966499 23966611 0.000000 - . gene_id "GGTLC1"; transcript_id "NM_178311:uc002wtu.3";
+chr20 hg19_knownGene CDS 23966713 23966840 0.000000 - 1 gene_id "GGTLC1"; transcript_id "NM_178311:uc002wtu.3";
+chr20 hg19_knownGene exon 23966713 23966840 0.000000 - . gene_id "GGTLC1"; transcript_id "NM_178311:uc002wtu.3";
+chr20 hg19_knownGene CDS 23967073 23967248 0.000000 - 0 gene_id "GGTLC1"; transcript_id "NM_178311:uc002wtu.3";
+chr20 hg19_knownGene exon 23967073 23967282 0.000000 - . gene_id "GGTLC1"; transcript_id "NM_178311:uc002wtu.3";
+chr20 hg19_knownGene exon 23969246 23969416 0.000000 - . gene_id "GGTLC1"; transcript_id "NM_178311:uc002wtu.3";
+chr20 hg19_knownGene exon 23969723 23969753 0.000000 + . gene_id "DQ583395"; transcript_id "DQ583395:uc021wbk.1";
+chr20 hg19_knownGene exon 24180403 24180470 0.000000 + . gene_id "FLJ33581"; transcript_id "NR_040102:uc002wtv.1";
+chr20 hg19_knownGene exon 24191985 24193327 0.000000 + . gene_id "FLJ33581"; transcript_id "NR_040102:uc002wtv.1";
+chr20 hg19_knownGene exon 24200259 24200338 0.000000 + . gene_id "FLJ33581"; transcript_id "NR_040102:uc002wtv.1";
+chr20 hg19_knownGene exon 24204340 24205224 0.000000 + . gene_id "FLJ33581"; transcript_id "NR_040102:uc002wtv.1";
+chr20 hg19_knownGene exon 24449835 24450389 0.000000 + . gene_id "SYNDIG1"; transcript_id "NM_024893:uc002wtw.1";
+chr20 hg19_knownGene CDS 24523734 24524213 0.000000 + 0 gene_id "SYNDIG1"; transcript_id "NM_024893:uc002wtw.1";
+chr20 hg19_knownGene exon 24523656 24524213 0.000000 + . gene_id "SYNDIG1"; transcript_id "NM_024893:uc002wtw.1";
+chr20 hg19_knownGene CDS 24565492 24565629 0.000000 + 0 gene_id "SYNDIG1"; transcript_id "NM_024893:uc002wtw.1";
+chr20 hg19_knownGene exon 24565492 24565629 0.000000 + . gene_id "SYNDIG1"; transcript_id "NM_024893:uc002wtw.1";
+chr20 hg19_knownGene CDS 24645982 24646137 0.000000 + 0 gene_id "SYNDIG1"; transcript_id "NM_024893:uc002wtw.1";
+chr20 hg19_knownGene exon 24645982 24647167 0.000000 + . gene_id "SYNDIG1"; transcript_id "NM_024893:uc002wtw.1";
+chr20 hg19_knownGene CDS 24930142 24930211 0.000000 + 0 gene_id "CST7"; transcript_id "NM_003650:uc002wtx.2";
+chr20 hg19_knownGene exon 24929866 24930211 0.000000 + . gene_id "CST7"; transcript_id "NM_003650:uc002wtx.2";
+chr20 hg19_knownGene CDS 24937923 24938095 0.000000 + 2 gene_id "CST7"; transcript_id "NM_003650:uc002wtx.2";
+chr20 hg19_knownGene exon 24937923 24938095 0.000000 + . gene_id "CST7"; transcript_id "NM_003650:uc002wtx.2";
+chr20 hg19_knownGene CDS 24939564 24939680 0.000000 + 0 gene_id "CST7"; transcript_id "NM_003650:uc002wtx.2";
+chr20 hg19_knownGene exon 24939564 24939680 0.000000 + . gene_id "CST7"; transcript_id "NM_003650:uc002wtx.2";
+chr20 hg19_knownGene CDS 24940271 24940345 0.000000 + 0 gene_id "CST7"; transcript_id "NM_003650:uc002wtx.2";
+chr20 hg19_knownGene exon 24940271 24940564 0.000000 + . gene_id "CST7"; transcript_id "NM_003650:uc002wtx.2";
+chr20 hg19_knownGene CDS 24944452 24944658 0.000000 - 0 gene_id "C20orf3"; transcript_id "NM_020531:uc002wty.3";
+chr20 hg19_knownGene exon 24943580 24944658 0.000000 - . gene_id "C20orf3"; transcript_id "NM_020531:uc002wty.3";
+chr20 hg19_knownGene CDS 24949528 24949720 0.000000 - 1 gene_id "C20orf3"; transcript_id "NM_020531:uc002wty.3";
+chr20 hg19_knownGene exon 24949528 24949720 0.000000 - . gene_id "C20orf3"; transcript_id "NM_020531:uc002wty.3";
+chr20 hg19_knownGene CDS 24950162 24950296 0.000000 - 1 gene_id "C20orf3"; transcript_id "NM_020531:uc002wty.3";
+chr20 hg19_knownGene exon 24950162 24950296 0.000000 - . gene_id "C20orf3"; transcript_id "NM_020531:uc002wty.3";
+chr20 hg19_knownGene CDS 24950833 24951007 0.000000 - 2 gene_id "C20orf3"; transcript_id "NM_020531:uc002wty.3";
+chr20 hg19_knownGene exon 24950833 24951007 0.000000 - . gene_id "C20orf3"; transcript_id "NM_020531:uc002wty.3";
+chr20 hg19_knownGene CDS 24952096 24952212 0.000000 - 2 gene_id "C20orf3"; transcript_id "NM_020531:uc002wty.3";
+chr20 hg19_knownGene exon 24952096 24952212 0.000000 - . gene_id "C20orf3"; transcript_id "NM_020531:uc002wty.3";
+chr20 hg19_knownGene CDS 24954281 24954373 0.000000 - 2 gene_id "C20orf3"; transcript_id "NM_020531:uc002wty.3";
+chr20 hg19_knownGene exon 24954281 24954373 0.000000 - . gene_id "C20orf3"; transcript_id "NM_020531:uc002wty.3";
+chr20 hg19_knownGene CDS 24959403 24959518 0.000000 - 1 gene_id "C20orf3"; transcript_id "NM_020531:uc002wty.3";
+chr20 hg19_knownGene exon 24959403 24959518 0.000000 - . gene_id "C20orf3"; transcript_id "NM_020531:uc002wty.3";
+chr20 hg19_knownGene CDS 24964539 24964655 0.000000 - 1 gene_id "C20orf3"; transcript_id "NM_020531:uc002wty.3";
+chr20 hg19_knownGene exon 24964539 24964655 0.000000 - . gene_id "C20orf3"; transcript_id "NM_020531:uc002wty.3";
+chr20 hg19_knownGene CDS 24973230 24973324 0.000000 - 0 gene_id "C20orf3"; transcript_id "NM_020531:uc002wty.3";
+chr20 hg19_knownGene exon 24973230 24973425 0.000000 - . gene_id "C20orf3"; transcript_id "NM_020531:uc002wty.3";
+chr20 hg19_knownGene CDS 24944452 24944658 0.000000 - 0 gene_id "C20orf3"; transcript_id "AF090935:uc002wtz.3";
+chr20 hg19_knownGene exon 24943580 24944658 0.000000 - . gene_id "C20orf3"; transcript_id "AF090935:uc002wtz.3";
+chr20 hg19_knownGene CDS 24945011 24945034 0.000000 - 0 gene_id "C20orf3"; transcript_id "AF090935:uc002wtz.3";
+chr20 hg19_knownGene exon 24945011 24945034 0.000000 - . gene_id "C20orf3"; transcript_id "AF090935:uc002wtz.3";
+chr20 hg19_knownGene CDS 24949528 24949720 0.000000 - 1 gene_id "C20orf3"; transcript_id "AF090935:uc002wtz.3";
+chr20 hg19_knownGene exon 24949528 24949720 0.000000 - . gene_id "C20orf3"; transcript_id "AF090935:uc002wtz.3";
+chr20 hg19_knownGene CDS 24950162 24950296 0.000000 - 1 gene_id "C20orf3"; transcript_id "AF090935:uc002wtz.3";
+chr20 hg19_knownGene exon 24950162 24950296 0.000000 - . gene_id "C20orf3"; transcript_id "AF090935:uc002wtz.3";
+chr20 hg19_knownGene CDS 24950833 24951007 0.000000 - 2 gene_id "C20orf3"; transcript_id "AF090935:uc002wtz.3";
+chr20 hg19_knownGene exon 24950833 24951007 0.000000 - . gene_id "C20orf3"; transcript_id "AF090935:uc002wtz.3";
+chr20 hg19_knownGene CDS 24952096 24952212 0.000000 - 2 gene_id "C20orf3"; transcript_id "AF090935:uc002wtz.3";
+chr20 hg19_knownGene exon 24952096 24952212 0.000000 - . gene_id "C20orf3"; transcript_id "AF090935:uc002wtz.3";
+chr20 hg19_knownGene CDS 24954281 24954373 0.000000 - 2 gene_id "C20orf3"; transcript_id "AF090935:uc002wtz.3";
+chr20 hg19_knownGene exon 24954281 24954373 0.000000 - . gene_id "C20orf3"; transcript_id "AF090935:uc002wtz.3";
+chr20 hg19_knownGene CDS 24959403 24959518 0.000000 - 1 gene_id "C20orf3"; transcript_id "AF090935:uc002wtz.3";
+chr20 hg19_knownGene exon 24959403 24959518 0.000000 - . gene_id "C20orf3"; transcript_id "AF090935:uc002wtz.3";
+chr20 hg19_knownGene CDS 24964539 24964655 0.000000 - 1 gene_id "C20orf3"; transcript_id "AF090935:uc002wtz.3";
+chr20 hg19_knownGene exon 24964539 24964655 0.000000 - . gene_id "C20orf3"; transcript_id "AF090935:uc002wtz.3";
+chr20 hg19_knownGene CDS 24973230 24973324 0.000000 - 0 gene_id "C20orf3"; transcript_id "AF090935:uc002wtz.3";
+chr20 hg19_knownGene exon 24973230 24973425 0.000000 - . gene_id "C20orf3"; transcript_id "AF090935:uc002wtz.3";
+chr20 hg19_knownGene CDS 24944640 24944658 0.000000 - 1 gene_id "C20orf3"; transcript_id "AK301959:uc010zsw.2";
+chr20 hg19_knownGene exon 24943580 24944658 0.000000 - . gene_id "C20orf3"; transcript_id "AK301959:uc010zsw.2";
+chr20 hg19_knownGene CDS 24950162 24950296 0.000000 - 1 gene_id "C20orf3"; transcript_id "AK301959:uc010zsw.2";
+chr20 hg19_knownGene exon 24950162 24950296 0.000000 - . gene_id "C20orf3"; transcript_id "AK301959:uc010zsw.2";
+chr20 hg19_knownGene CDS 24950833 24951007 0.000000 - 2 gene_id "C20orf3"; transcript_id "AK301959:uc010zsw.2";
+chr20 hg19_knownGene exon 24950833 24951007 0.000000 - . gene_id "C20orf3"; transcript_id "AK301959:uc010zsw.2";
+chr20 hg19_knownGene CDS 24952096 24952212 0.000000 - 2 gene_id "C20orf3"; transcript_id "AK301959:uc010zsw.2";
+chr20 hg19_knownGene exon 24952096 24952212 0.000000 - . gene_id "C20orf3"; transcript_id "AK301959:uc010zsw.2";
+chr20 hg19_knownGene CDS 24954281 24954373 0.000000 - 2 gene_id "C20orf3"; transcript_id "AK301959:uc010zsw.2";
+chr20 hg19_knownGene exon 24954281 24954373 0.000000 - . gene_id "C20orf3"; transcript_id "AK301959:uc010zsw.2";
+chr20 hg19_knownGene CDS 24959403 24959518 0.000000 - 1 gene_id "C20orf3"; transcript_id "AK301959:uc010zsw.2";
+chr20 hg19_knownGene exon 24959403 24959518 0.000000 - . gene_id "C20orf3"; transcript_id "AK301959:uc010zsw.2";
+chr20 hg19_knownGene CDS 24964539 24964655 0.000000 - 1 gene_id "C20orf3"; transcript_id "AK301959:uc010zsw.2";
+chr20 hg19_knownGene exon 24964539 24964655 0.000000 - . gene_id "C20orf3"; transcript_id "AK301959:uc010zsw.2";
+chr20 hg19_knownGene CDS 24973230 24973324 0.000000 - 0 gene_id "C20orf3"; transcript_id "AK301959:uc010zsw.2";
+chr20 hg19_knownGene exon 24973230 24973425 0.000000 - . gene_id "C20orf3"; transcript_id "AK301959:uc010zsw.2";
+chr20 hg19_knownGene exon 24986874 24987233 0.000000 - . gene_id "ACSS1"; transcript_id "AX747458:uc002wud.1";
+chr20 hg19_knownGene exon 24987266 24988577 0.000000 - . gene_id "ACSS1"; transcript_id "AX747458:uc002wud.1";
+chr20 hg19_knownGene exon 24989906 24990024 0.000000 - . gene_id "ACSS1"; transcript_id "AX747458:uc002wud.1";
+chr20 hg19_knownGene exon 24993237 24993300 0.000000 - . gene_id "ACSS1"; transcript_id "AX747458:uc002wud.1";
+chr20 hg19_knownGene exon 24993448 24993575 0.000000 - . gene_id "ACSS1"; transcript_id "AX747458:uc002wud.1";
+chr20 hg19_knownGene exon 24994172 24994298 0.000000 - . gene_id "ACSS1"; transcript_id "AX747458:uc002wud.1";
+chr20 hg19_knownGene exon 24994597 24994709 0.000000 - . gene_id "ACSS1"; transcript_id "AX747458:uc002wud.1";
+chr20 hg19_knownGene exon 24995774 24995866 0.000000 - . gene_id "ACSS1"; transcript_id "AX747458:uc002wud.1";
+chr20 hg19_knownGene exon 25000646 25000783 0.000000 - . gene_id "ACSS1"; transcript_id "AX747458:uc002wud.1";
+chr20 hg19_knownGene exon 25002025 25002172 0.000000 - . gene_id "ACSS1"; transcript_id "AX747458:uc002wud.1";
+chr20 hg19_knownGene exon 25003576 25003728 0.000000 - . gene_id "ACSS1"; transcript_id "AX747458:uc002wud.1";
+chr20 hg19_knownGene CDS 24988401 24988577 0.000000 - 0 gene_id "ACSS1"; transcript_id "AK125058:uc002wua.3";
+chr20 hg19_knownGene exon 24986866 24988577 0.000000 - . gene_id "ACSS1"; transcript_id "AK125058:uc002wua.3";
+chr20 hg19_knownGene CDS 24989906 24990024 0.000000 - 2 gene_id "ACSS1"; transcript_id "AK125058:uc002wua.3";
+chr20 hg19_knownGene exon 24989906 24990024 0.000000 - . gene_id "ACSS1"; transcript_id "AK125058:uc002wua.3";
+chr20 hg19_knownGene CDS 24993237 24993300 0.000000 - 0 gene_id "ACSS1"; transcript_id "AK125058:uc002wua.3";
+chr20 hg19_knownGene exon 24993237 24993300 0.000000 - . gene_id "ACSS1"; transcript_id "AK125058:uc002wua.3";
+chr20 hg19_knownGene CDS 24993448 24993575 0.000000 - 2 gene_id "ACSS1"; transcript_id "AK125058:uc002wua.3";
+chr20 hg19_knownGene exon 24993448 24993575 0.000000 - . gene_id "ACSS1"; transcript_id "AK125058:uc002wua.3";
+chr20 hg19_knownGene CDS 24994172 24994298 0.000000 - 0 gene_id "ACSS1"; transcript_id "AK125058:uc002wua.3";
+chr20 hg19_knownGene exon 24994172 24994298 0.000000 - . gene_id "ACSS1"; transcript_id "AK125058:uc002wua.3";
+chr20 hg19_knownGene CDS 24994597 24994709 0.000000 - 2 gene_id "ACSS1"; transcript_id "AK125058:uc002wua.3";
+chr20 hg19_knownGene exon 24994597 24994709 0.000000 - . gene_id "ACSS1"; transcript_id "AK125058:uc002wua.3";
+chr20 hg19_knownGene CDS 24995774 24995866 0.000000 - 2 gene_id "ACSS1"; transcript_id "AK125058:uc002wua.3";
+chr20 hg19_knownGene exon 24995774 24995866 0.000000 - . gene_id "ACSS1"; transcript_id "AK125058:uc002wua.3";
+chr20 hg19_knownGene CDS 25000646 25000783 0.000000 - 2 gene_id "ACSS1"; transcript_id "AK125058:uc002wua.3";
+chr20 hg19_knownGene exon 25000646 25000783 0.000000 - . gene_id "ACSS1"; transcript_id "AK125058:uc002wua.3";
+chr20 hg19_knownGene CDS 25002025 25002172 0.000000 - 0 gene_id "ACSS1"; transcript_id "AK125058:uc002wua.3";
+chr20 hg19_knownGene exon 25002025 25002172 0.000000 - . gene_id "ACSS1"; transcript_id "AK125058:uc002wua.3";
+chr20 hg19_knownGene CDS 25003576 25003728 0.000000 - 0 gene_id "ACSS1"; transcript_id "AK125058:uc002wua.3";
+chr20 hg19_knownGene exon 25003576 25003728 0.000000 - . gene_id "ACSS1"; transcript_id "AK125058:uc002wua.3";
+chr20 hg19_knownGene CDS 25004102 25004277 0.000000 - 2 gene_id "ACSS1"; transcript_id "AK125058:uc002wua.3";
+chr20 hg19_knownGene exon 25004102 25004277 0.000000 - . gene_id "ACSS1"; transcript_id "AK125058:uc002wua.3";
+chr20 hg19_knownGene CDS 25011395 25011776 0.000000 - 0 gene_id "ACSS1"; transcript_id "AK125058:uc002wua.3";
+chr20 hg19_knownGene exon 25011395 25013308 0.000000 - . gene_id "ACSS1"; transcript_id "AK125058:uc002wua.3";
+chr20 hg19_knownGene CDS 24988401 24988577 0.000000 - 0 gene_id "ACSS1"; transcript_id "NM_001252676:uc021wbl.1";
+chr20 hg19_knownGene exon 24986866 24988577 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252676:uc021wbl.1";
+chr20 hg19_knownGene CDS 24989906 24990024 0.000000 - 2 gene_id "ACSS1"; transcript_id "NM_001252676:uc021wbl.1";
+chr20 hg19_knownGene exon 24989906 24990024 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252676:uc021wbl.1";
+chr20 hg19_knownGene CDS 24993237 24993300 0.000000 - 0 gene_id "ACSS1"; transcript_id "NM_001252676:uc021wbl.1";
+chr20 hg19_knownGene exon 24993237 24993300 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252676:uc021wbl.1";
+chr20 hg19_knownGene CDS 24993448 24993575 0.000000 - 2 gene_id "ACSS1"; transcript_id "NM_001252676:uc021wbl.1";
+chr20 hg19_knownGene exon 24993448 24993575 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252676:uc021wbl.1";
+chr20 hg19_knownGene CDS 24994172 24994298 0.000000 - 0 gene_id "ACSS1"; transcript_id "NM_001252676:uc021wbl.1";
+chr20 hg19_knownGene exon 24994172 24994298 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252676:uc021wbl.1";
+chr20 hg19_knownGene CDS 24994597 24994709 0.000000 - 2 gene_id "ACSS1"; transcript_id "NM_001252676:uc021wbl.1";
+chr20 hg19_knownGene exon 24994597 24994709 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252676:uc021wbl.1";
+chr20 hg19_knownGene CDS 24995774 24995866 0.000000 - 2 gene_id "ACSS1"; transcript_id "NM_001252676:uc021wbl.1";
+chr20 hg19_knownGene exon 24995774 24995866 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252676:uc021wbl.1";
+chr20 hg19_knownGene CDS 25000646 25000783 0.000000 - 2 gene_id "ACSS1"; transcript_id "NM_001252676:uc021wbl.1";
+chr20 hg19_knownGene exon 25000646 25000783 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252676:uc021wbl.1";
+chr20 hg19_knownGene CDS 25002025 25002172 0.000000 - 0 gene_id "ACSS1"; transcript_id "NM_001252676:uc021wbl.1";
+chr20 hg19_knownGene exon 25002025 25002172 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252676:uc021wbl.1";
+chr20 hg19_knownGene CDS 25003576 25003728 0.000000 - 0 gene_id "ACSS1"; transcript_id "NM_001252676:uc021wbl.1";
+chr20 hg19_knownGene exon 25003576 25003728 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252676:uc021wbl.1";
+chr20 hg19_knownGene CDS 25004102 25004277 0.000000 - 2 gene_id "ACSS1"; transcript_id "NM_001252676:uc021wbl.1";
+chr20 hg19_knownGene exon 25004102 25004277 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252676:uc021wbl.1";
+chr20 hg19_knownGene CDS 25011395 25011594 0.000000 - 1 gene_id "ACSS1"; transcript_id "NM_001252676:uc021wbl.1";
+chr20 hg19_knownGene exon 25011395 25011594 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252676:uc021wbl.1";
+chr20 hg19_knownGene CDS 25013005 25013072 0.000000 - 0 gene_id "ACSS1"; transcript_id "NM_001252676:uc021wbl.1";
+chr20 hg19_knownGene exon 25013005 25013342 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252676:uc021wbl.1";
+chr20 hg19_knownGene CDS 24988401 24988577 0.000000 - 0 gene_id "ACSS1"; transcript_id "NM_032501:uc002wub.3";
+chr20 hg19_knownGene exon 24986866 24988577 0.000000 - . gene_id "ACSS1"; transcript_id "NM_032501:uc002wub.3";
+chr20 hg19_knownGene CDS 24989906 24990024 0.000000 - 2 gene_id "ACSS1"; transcript_id "NM_032501:uc002wub.3";
+chr20 hg19_knownGene exon 24989906 24990024 0.000000 - . gene_id "ACSS1"; transcript_id "NM_032501:uc002wub.3";
+chr20 hg19_knownGene CDS 24993237 24993300 0.000000 - 0 gene_id "ACSS1"; transcript_id "NM_032501:uc002wub.3";
+chr20 hg19_knownGene exon 24993237 24993300 0.000000 - . gene_id "ACSS1"; transcript_id "NM_032501:uc002wub.3";
+chr20 hg19_knownGene CDS 24993448 24993575 0.000000 - 2 gene_id "ACSS1"; transcript_id "NM_032501:uc002wub.3";
+chr20 hg19_knownGene exon 24993448 24993575 0.000000 - . gene_id "ACSS1"; transcript_id "NM_032501:uc002wub.3";
+chr20 hg19_knownGene CDS 24994172 24994298 0.000000 - 0 gene_id "ACSS1"; transcript_id "NM_032501:uc002wub.3";
+chr20 hg19_knownGene exon 24994172 24994298 0.000000 - . gene_id "ACSS1"; transcript_id "NM_032501:uc002wub.3";
+chr20 hg19_knownGene CDS 24994597 24994709 0.000000 - 2 gene_id "ACSS1"; transcript_id "NM_032501:uc002wub.3";
+chr20 hg19_knownGene exon 24994597 24994709 0.000000 - . gene_id "ACSS1"; transcript_id "NM_032501:uc002wub.3";
+chr20 hg19_knownGene CDS 24995774 24995866 0.000000 - 2 gene_id "ACSS1"; transcript_id "NM_032501:uc002wub.3";
+chr20 hg19_knownGene exon 24995774 24995866 0.000000 - . gene_id "ACSS1"; transcript_id "NM_032501:uc002wub.3";
+chr20 hg19_knownGene CDS 25000646 25000783 0.000000 - 2 gene_id "ACSS1"; transcript_id "NM_032501:uc002wub.3";
+chr20 hg19_knownGene exon 25000646 25000783 0.000000 - . gene_id "ACSS1"; transcript_id "NM_032501:uc002wub.3";
+chr20 hg19_knownGene CDS 25002025 25002172 0.000000 - 0 gene_id "ACSS1"; transcript_id "NM_032501:uc002wub.3";
+chr20 hg19_knownGene exon 25002025 25002172 0.000000 - . gene_id "ACSS1"; transcript_id "NM_032501:uc002wub.3";
+chr20 hg19_knownGene CDS 25003576 25003728 0.000000 - 0 gene_id "ACSS1"; transcript_id "NM_032501:uc002wub.3";
+chr20 hg19_knownGene exon 25003576 25003728 0.000000 - . gene_id "ACSS1"; transcript_id "NM_032501:uc002wub.3";
+chr20 hg19_knownGene CDS 25004102 25004277 0.000000 - 2 gene_id "ACSS1"; transcript_id "NM_032501:uc002wub.3";
+chr20 hg19_knownGene exon 25004102 25004277 0.000000 - . gene_id "ACSS1"; transcript_id "NM_032501:uc002wub.3";
+chr20 hg19_knownGene CDS 25011395 25011594 0.000000 - 1 gene_id "ACSS1"; transcript_id "NM_032501:uc002wub.3";
+chr20 hg19_knownGene exon 25011395 25011594 0.000000 - . gene_id "ACSS1"; transcript_id "NM_032501:uc002wub.3";
+chr20 hg19_knownGene CDS 25028721 25028817 0.000000 - 2 gene_id "ACSS1"; transcript_id "NM_032501:uc002wub.3";
+chr20 hg19_knownGene exon 25028721 25028817 0.000000 - . gene_id "ACSS1"; transcript_id "NM_032501:uc002wub.3";
+chr20 hg19_knownGene CDS 25038405 25038738 0.000000 - 0 gene_id "ACSS1"; transcript_id "NM_032501:uc002wub.3";
+chr20 hg19_knownGene exon 25038405 25038818 0.000000 - . gene_id "ACSS1"; transcript_id "NM_032501:uc002wub.3";
+chr20 hg19_knownGene CDS 24988401 24988577 0.000000 - 0 gene_id "ACSS1"; transcript_id "NM_001252675:uc002wuc.3";
+chr20 hg19_knownGene exon 24986866 24988577 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252675:uc002wuc.3";
+chr20 hg19_knownGene CDS 24989906 24990024 0.000000 - 2 gene_id "ACSS1"; transcript_id "NM_001252675:uc002wuc.3";
+chr20 hg19_knownGene exon 24989906 24990024 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252675:uc002wuc.3";
+chr20 hg19_knownGene CDS 24993237 24993300 0.000000 - 0 gene_id "ACSS1"; transcript_id "NM_001252675:uc002wuc.3";
+chr20 hg19_knownGene exon 24993237 24993300 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252675:uc002wuc.3";
+chr20 hg19_knownGene CDS 24993448 24993575 0.000000 - 2 gene_id "ACSS1"; transcript_id "NM_001252675:uc002wuc.3";
+chr20 hg19_knownGene exon 24993448 24993575 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252675:uc002wuc.3";
+chr20 hg19_knownGene CDS 24994172 24994298 0.000000 - 0 gene_id "ACSS1"; transcript_id "NM_001252675:uc002wuc.3";
+chr20 hg19_knownGene exon 24994172 24994298 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252675:uc002wuc.3";
+chr20 hg19_knownGene CDS 24994597 24994703 0.000000 - 2 gene_id "ACSS1"; transcript_id "NM_001252675:uc002wuc.3";
+chr20 hg19_knownGene exon 24994597 24994703 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252675:uc002wuc.3";
+chr20 hg19_knownGene CDS 24995774 24995866 0.000000 - 2 gene_id "ACSS1"; transcript_id "NM_001252675:uc002wuc.3";
+chr20 hg19_knownGene exon 24995774 24995866 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252675:uc002wuc.3";
+chr20 hg19_knownGene CDS 25000646 25000783 0.000000 - 2 gene_id "ACSS1"; transcript_id "NM_001252675:uc002wuc.3";
+chr20 hg19_knownGene exon 25000646 25000783 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252675:uc002wuc.3";
+chr20 hg19_knownGene CDS 25002025 25002172 0.000000 - 0 gene_id "ACSS1"; transcript_id "NM_001252675:uc002wuc.3";
+chr20 hg19_knownGene exon 25002025 25002172 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252675:uc002wuc.3";
+chr20 hg19_knownGene CDS 25003576 25003728 0.000000 - 0 gene_id "ACSS1"; transcript_id "NM_001252675:uc002wuc.3";
+chr20 hg19_knownGene exon 25003576 25003728 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252675:uc002wuc.3";
+chr20 hg19_knownGene CDS 25004102 25004277 0.000000 - 2 gene_id "ACSS1"; transcript_id "NM_001252675:uc002wuc.3";
+chr20 hg19_knownGene exon 25004102 25004277 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252675:uc002wuc.3";
+chr20 hg19_knownGene CDS 25011395 25011594 0.000000 - 1 gene_id "ACSS1"; transcript_id "NM_001252675:uc002wuc.3";
+chr20 hg19_knownGene exon 25011395 25011594 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252675:uc002wuc.3";
+chr20 hg19_knownGene CDS 25028721 25028817 0.000000 - 2 gene_id "ACSS1"; transcript_id "NM_001252675:uc002wuc.3";
+chr20 hg19_knownGene exon 25028721 25028817 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252675:uc002wuc.3";
+chr20 hg19_knownGene CDS 25038405 25038738 0.000000 - 0 gene_id "ACSS1"; transcript_id "NM_001252675:uc002wuc.3";
+chr20 hg19_knownGene exon 25038405 25038818 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252675:uc002wuc.3";
+chr20 hg19_knownGene CDS 24987499 24987561 0.000000 - 0 gene_id "ACSS1"; transcript_id "NM_001252677:uc021wbm.1";
+chr20 hg19_knownGene exon 24986866 24987561 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252677:uc021wbm.1";
+chr20 hg19_knownGene CDS 24993448 24993575 0.000000 - 2 gene_id "ACSS1"; transcript_id "NM_001252677:uc021wbm.1";
+chr20 hg19_knownGene exon 24993448 24993575 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252677:uc021wbm.1";
+chr20 hg19_knownGene CDS 24994172 24994298 0.000000 - 0 gene_id "ACSS1"; transcript_id "NM_001252677:uc021wbm.1";
+chr20 hg19_knownGene exon 24994172 24994298 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252677:uc021wbm.1";
+chr20 hg19_knownGene CDS 24994597 24994709 0.000000 - 2 gene_id "ACSS1"; transcript_id "NM_001252677:uc021wbm.1";
+chr20 hg19_knownGene exon 24994597 24994709 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252677:uc021wbm.1";
+chr20 hg19_knownGene CDS 24995774 24995866 0.000000 - 2 gene_id "ACSS1"; transcript_id "NM_001252677:uc021wbm.1";
+chr20 hg19_knownGene exon 24995774 24995866 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252677:uc021wbm.1";
+chr20 hg19_knownGene CDS 25000646 25000783 0.000000 - 2 gene_id "ACSS1"; transcript_id "NM_001252677:uc021wbm.1";
+chr20 hg19_knownGene exon 25000646 25000783 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252677:uc021wbm.1";
+chr20 hg19_knownGene CDS 25002025 25002172 0.000000 - 0 gene_id "ACSS1"; transcript_id "NM_001252677:uc021wbm.1";
+chr20 hg19_knownGene exon 25002025 25002172 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252677:uc021wbm.1";
+chr20 hg19_knownGene CDS 25003576 25003728 0.000000 - 0 gene_id "ACSS1"; transcript_id "NM_001252677:uc021wbm.1";
+chr20 hg19_knownGene exon 25003576 25003728 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252677:uc021wbm.1";
+chr20 hg19_knownGene CDS 25004102 25004277 0.000000 - 2 gene_id "ACSS1"; transcript_id "NM_001252677:uc021wbm.1";
+chr20 hg19_knownGene exon 25004102 25004277 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252677:uc021wbm.1";
+chr20 hg19_knownGene CDS 25011395 25011594 0.000000 - 1 gene_id "ACSS1"; transcript_id "NM_001252677:uc021wbm.1";
+chr20 hg19_knownGene exon 25011395 25011594 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252677:uc021wbm.1";
+chr20 hg19_knownGene CDS 25028721 25028817 0.000000 - 2 gene_id "ACSS1"; transcript_id "NM_001252677:uc021wbm.1";
+chr20 hg19_knownGene exon 25028721 25028817 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252677:uc021wbm.1";
+chr20 hg19_knownGene CDS 25038405 25038738 0.000000 - 0 gene_id "ACSS1"; transcript_id "NM_001252677:uc021wbm.1";
+chr20 hg19_knownGene exon 25038405 25038818 0.000000 - . gene_id "ACSS1"; transcript_id "NM_001252677:uc021wbm.1";
+chr20 hg19_knownGene CDS 24988401 24988577 0.000000 - 0 gene_id "ACSS1"; transcript_id "AL832939:uc010gdc.3";
+chr20 hg19_knownGene exon 24986866 24988577 0.000000 - . gene_id "ACSS1"; transcript_id "AL832939:uc010gdc.3";
+chr20 hg19_knownGene CDS 24989906 24990024 0.000000 - 2 gene_id "ACSS1"; transcript_id "AL832939:uc010gdc.3";
+chr20 hg19_knownGene exon 24989906 24990024 0.000000 - . gene_id "ACSS1"; transcript_id "AL832939:uc010gdc.3";
+chr20 hg19_knownGene CDS 24993237 24993300 0.000000 - 0 gene_id "ACSS1"; transcript_id "AL832939:uc010gdc.3";
+chr20 hg19_knownGene exon 24993237 24993300 0.000000 - . gene_id "ACSS1"; transcript_id "AL832939:uc010gdc.3";
+chr20 hg19_knownGene CDS 24993448 24993575 0.000000 - 2 gene_id "ACSS1"; transcript_id "AL832939:uc010gdc.3";
+chr20 hg19_knownGene exon 24993448 24993575 0.000000 - . gene_id "ACSS1"; transcript_id "AL832939:uc010gdc.3";
+chr20 hg19_knownGene CDS 24994172 24994298 0.000000 - 0 gene_id "ACSS1"; transcript_id "AL832939:uc010gdc.3";
+chr20 hg19_knownGene exon 24994172 24994298 0.000000 - . gene_id "ACSS1"; transcript_id "AL832939:uc010gdc.3";
+chr20 hg19_knownGene CDS 24994597 24994709 0.000000 - 2 gene_id "ACSS1"; transcript_id "AL832939:uc010gdc.3";
+chr20 hg19_knownGene exon 24994597 24994709 0.000000 - . gene_id "ACSS1"; transcript_id "AL832939:uc010gdc.3";
+chr20 hg19_knownGene CDS 24995774 24995866 0.000000 - 2 gene_id "ACSS1"; transcript_id "AL832939:uc010gdc.3";
+chr20 hg19_knownGene exon 24995774 24995866 0.000000 - . gene_id "ACSS1"; transcript_id "AL832939:uc010gdc.3";
+chr20 hg19_knownGene CDS 25011395 25011594 0.000000 - 1 gene_id "ACSS1"; transcript_id "AL832939:uc010gdc.3";
+chr20 hg19_knownGene exon 25011395 25011594 0.000000 - . gene_id "ACSS1"; transcript_id "AL832939:uc010gdc.3";
+chr20 hg19_knownGene CDS 25028721 25028817 0.000000 - 2 gene_id "ACSS1"; transcript_id "AL832939:uc010gdc.3";
+chr20 hg19_knownGene exon 25028721 25028817 0.000000 - . gene_id "ACSS1"; transcript_id "AL832939:uc010gdc.3";
+chr20 hg19_knownGene CDS 25038405 25038738 0.000000 - 0 gene_id "ACSS1"; transcript_id "AL832939:uc010gdc.3";
+chr20 hg19_knownGene exon 25038405 25038818 0.000000 - . gene_id "ACSS1"; transcript_id "AL832939:uc010gdc.3";
+chr20 hg19_knownGene exon 25052130 25052654 0.000000 - . gene_id "VSX1"; transcript_id "DQ854809:uc002wue.3";
+chr20 hg19_knownGene exon 25053172 25053279 0.000000 - . gene_id "VSX1"; transcript_id "DQ854809:uc002wue.3";
+chr20 hg19_knownGene exon 25058321 25058501 0.000000 - . gene_id "VSX1"; transcript_id "DQ854809:uc002wue.3";
+chr20 hg19_knownGene exon 25059465 25059588 0.000000 - . gene_id "VSX1"; transcript_id "DQ854809:uc002wue.3";
+chr20 hg19_knownGene exon 25060072 25060150 0.000000 - . gene_id "VSX1"; transcript_id "DQ854809:uc002wue.3";
+chr20 hg19_knownGene exon 25062309 25062767 0.000000 - . gene_id "VSX1"; transcript_id "DQ854809:uc002wue.3";
+chr20 hg19_knownGene CDS 25052560 25052654 0.000000 - 2 gene_id "VSX1"; transcript_id "DQ854812:uc010gdd.2";
+chr20 hg19_knownGene exon 25052130 25052654 0.000000 - . gene_id "VSX1"; transcript_id "DQ854812:uc010gdd.2";
+chr20 hg19_knownGene CDS 25058321 25058501 0.000000 - 0 gene_id "VSX1"; transcript_id "DQ854812:uc010gdd.2";
+chr20 hg19_knownGene exon 25058321 25058501 0.000000 - . gene_id "VSX1"; transcript_id "DQ854812:uc010gdd.2";
+chr20 hg19_knownGene CDS 25059465 25059588 0.000000 - 1 gene_id "VSX1"; transcript_id "DQ854812:uc010gdd.2";
+chr20 hg19_knownGene exon 25059465 25059588 0.000000 - . gene_id "VSX1"; transcript_id "DQ854812:uc010gdd.2";
+chr20 hg19_knownGene CDS 25060072 25060150 0.000000 - 2 gene_id "VSX1"; transcript_id "DQ854812:uc010gdd.2";
+chr20 hg19_knownGene exon 25060072 25060150 0.000000 - . gene_id "VSX1"; transcript_id "DQ854812:uc010gdd.2";
+chr20 hg19_knownGene CDS 25062309 25062732 0.000000 - 0 gene_id "VSX1"; transcript_id "DQ854812:uc010gdd.2";
+chr20 hg19_knownGene exon 25062309 25062767 0.000000 - . gene_id "VSX1"; transcript_id "DQ854812:uc010gdd.2";
+chr20 hg19_knownGene exon 25052130 25052654 0.000000 - . gene_id "VSX1"; transcript_id "DQ854810:uc010gde.2";
+chr20 hg19_knownGene exon 25053172 25053279 0.000000 - . gene_id "VSX1"; transcript_id "DQ854810:uc010gde.2";
+chr20 hg19_knownGene exon 25059465 25059588 0.000000 - . gene_id "VSX1"; transcript_id "DQ854810:uc010gde.2";
+chr20 hg19_knownGene exon 25060072 25060150 0.000000 - . gene_id "VSX1"; transcript_id "DQ854810:uc010gde.2";
+chr20 hg19_knownGene exon 25062309 25062767 0.000000 - . gene_id "VSX1"; transcript_id "DQ854810:uc010gde.2";
+chr20 hg19_knownGene CDS 25052574 25052654 0.000000 - 0 gene_id "VSX1"; transcript_id "DQ854811:uc010gdf.2";
+chr20 hg19_knownGene exon 25052130 25052654 0.000000 - . gene_id "VSX1"; transcript_id "DQ854811:uc010gdf.2";
+chr20 hg19_knownGene CDS 25059465 25059588 0.000000 - 1 gene_id "VSX1"; transcript_id "DQ854811:uc010gdf.2";
+chr20 hg19_knownGene exon 25059465 25059588 0.000000 - . gene_id "VSX1"; transcript_id "DQ854811:uc010gdf.2";
+chr20 hg19_knownGene CDS 25060072 25060150 0.000000 - 2 gene_id "VSX1"; transcript_id "DQ854811:uc010gdf.2";
+chr20 hg19_knownGene exon 25060072 25060150 0.000000 - . gene_id "VSX1"; transcript_id "DQ854811:uc010gdf.2";
+chr20 hg19_knownGene CDS 25062309 25062732 0.000000 - 0 gene_id "VSX1"; transcript_id "DQ854811:uc010gdf.2";
+chr20 hg19_knownGene exon 25062309 25062767 0.000000 - . gene_id "VSX1"; transcript_id "DQ854811:uc010gdf.2";
+chr20 hg19_knownGene CDS 25056900 25057186 0.000000 - 2 gene_id "VSX1"; transcript_id "NM_014588:uc002wuf.3";
+chr20 hg19_knownGene exon 25056099 25057186 0.000000 - . gene_id "VSX1"; transcript_id "NM_014588:uc002wuf.3";
+chr20 hg19_knownGene CDS 25058321 25058501 0.000000 - 0 gene_id "VSX1"; transcript_id "NM_014588:uc002wuf.3";
+chr20 hg19_knownGene exon 25058321 25058501 0.000000 - . gene_id "VSX1"; transcript_id "NM_014588:uc002wuf.3";
+chr20 hg19_knownGene CDS 25059465 25059588 0.000000 - 1 gene_id "VSX1"; transcript_id "NM_014588:uc002wuf.3";
+chr20 hg19_knownGene exon 25059465 25059588 0.000000 - . gene_id "VSX1"; transcript_id "NM_014588:uc002wuf.3";
+chr20 hg19_knownGene CDS 25060072 25060150 0.000000 - 2 gene_id "VSX1"; transcript_id "NM_014588:uc002wuf.3";
+chr20 hg19_knownGene exon 25060072 25060150 0.000000 - . gene_id "VSX1"; transcript_id "NM_014588:uc002wuf.3";
+chr20 hg19_knownGene CDS 25062309 25062732 0.000000 - 0 gene_id "VSX1"; transcript_id "NM_014588:uc002wuf.3";
+chr20 hg19_knownGene exon 25062309 25062767 0.000000 - . gene_id "VSX1"; transcript_id "NM_014588:uc002wuf.3";
+chr20 hg19_knownGene CDS 25059375 25059588 0.000000 - 1 gene_id "VSX1"; transcript_id "NM_199425:uc002wug.1";
+chr20 hg19_knownGene exon 25059195 25059588 0.000000 - . gene_id "VSX1"; transcript_id "NM_199425:uc002wug.1";
+chr20 hg19_knownGene CDS 25060072 25060150 0.000000 - 2 gene_id "VSX1"; transcript_id "NM_199425:uc002wug.1";
+chr20 hg19_knownGene exon 25060072 25060150 0.000000 - . gene_id "VSX1"; transcript_id "NM_199425:uc002wug.1";
+chr20 hg19_knownGene CDS 25062309 25062732 0.000000 - 0 gene_id "VSX1"; transcript_id "NM_199425:uc002wug.1";
+chr20 hg19_knownGene exon 25062309 25062767 0.000000 - . gene_id "VSX1"; transcript_id "NM_199425:uc002wug.1";
+chr20 hg19_knownGene exon 25121434 25123467 0.000000 - . gene_id "LOC284798"; transcript_id "NR_027093:uc010gdg.2";
+chr20 hg19_knownGene exon 25124004 25124149 0.000000 - . gene_id "LOC284798"; transcript_id "NR_027093:uc010gdg.2";
+chr20 hg19_knownGene exon 25124915 25125059 0.000000 - . gene_id "LOC284798"; transcript_id "NR_027093:uc010gdg.2";
+chr20 hg19_knownGene exon 25128396 25128629 0.000000 - . gene_id "LOC284798"; transcript_id "NR_027093:uc010gdg.2";
+chr20 hg19_knownGene exon 25121434 25123467 0.000000 - . gene_id "LOC284798"; transcript_id "NR_027092:uc010gdh.2";
+chr20 hg19_knownGene exon 25124004 25124149 0.000000 - . gene_id "LOC284798"; transcript_id "NR_027092:uc010gdh.2";
+chr20 hg19_knownGene exon 25124915 25125059 0.000000 - . gene_id "LOC284798"; transcript_id "NR_027092:uc010gdh.2";
+chr20 hg19_knownGene exon 25129235 25129361 0.000000 - . gene_id "LOC284798"; transcript_id "NR_027092:uc010gdh.2";
+chr20 hg19_knownGene exon 25123634 25124149 0.000000 - . gene_id "LOC284798"; transcript_id "AK309387:uc010gdi.2";
+chr20 hg19_knownGene exon 25124933 25125059 0.000000 - . gene_id "LOC284798"; transcript_id "AK309387:uc010gdi.2";
+chr20 hg19_knownGene exon 25129235 25129361 0.000000 - . gene_id "LOC284798"; transcript_id "AK309387:uc010gdi.2";
+chr20 hg19_knownGene exon 25121434 25123467 0.000000 - . gene_id "LOC284798"; transcript_id "NR_027091:uc010zsx.1";
+chr20 hg19_knownGene exon 25124004 25124149 0.000000 - . gene_id "LOC284798"; transcript_id "NR_027091:uc010zsx.1";
+chr20 hg19_knownGene exon 25124915 25125059 0.000000 - . gene_id "LOC284798"; transcript_id "NR_027091:uc010zsx.1";
+chr20 hg19_knownGene exon 25128593 25129426 0.000000 - . gene_id "LOC284798"; transcript_id "NR_027091:uc010zsx.1";
+chr20 hg19_knownGene exon 25165308 25166796 0.000000 - . gene_id "AX747658"; transcript_id "AX747658:uc002wui.3";
+chr20 hg19_knownGene exon 25167178 25167335 0.000000 - . gene_id "AX747658"; transcript_id "AX747658:uc002wui.3";
+chr20 hg19_knownGene exon 25167533 25167615 0.000000 - . gene_id "AX747658"; transcript_id "AX747658:uc002wui.3";
+chr20 hg19_knownGene exon 25168489 25168583 0.000000 - . gene_id "AX747658"; transcript_id "AX747658:uc002wui.3";
+chr20 hg19_knownGene exon 25170854 25170938 0.000000 - . gene_id "AX747658"; transcript_id "AX747658:uc002wui.3";
+chr20 hg19_knownGene exon 25177259 25177508 0.000000 - . gene_id "AX747658"; transcript_id "AX747658:uc002wui.3";
+chr20 hg19_knownGene exon 25176339 25176503 0.000000 + . gene_id "ENTPD6"; transcript_id "AK302395:uc010zsy.1";
+chr20 hg19_knownGene CDS 25187173 25187226 0.000000 + 0 gene_id "ENTPD6"; transcript_id "AK302395:uc010zsy.1";
+chr20 hg19_knownGene exon 25187158 25187226 0.000000 + . gene_id "ENTPD6"; transcript_id "AK302395:uc010zsy.1";
+chr20 hg19_knownGene CDS 25187712 25188033 0.000000 + 0 gene_id "ENTPD6"; transcript_id "AK302395:uc010zsy.1";
+chr20 hg19_knownGene exon 25187712 25188033 0.000000 + . gene_id "ENTPD6"; transcript_id "AK302395:uc010zsy.1";
+chr20 hg19_knownGene CDS 25190485 25190561 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK302395:uc010zsy.1";
+chr20 hg19_knownGene exon 25190485 25190561 0.000000 + . gene_id "ENTPD6"; transcript_id "AK302395:uc010zsy.1";
+chr20 hg19_knownGene CDS 25193899 25194042 0.000000 + 0 gene_id "ENTPD6"; transcript_id "AK302395:uc010zsy.1";
+chr20 hg19_knownGene exon 25193899 25194042 0.000000 + . gene_id "ENTPD6"; transcript_id "AK302395:uc010zsy.1";
+chr20 hg19_knownGene CDS 25195503 25195578 0.000000 + 0 gene_id "ENTPD6"; transcript_id "AK302395:uc010zsy.1";
+chr20 hg19_knownGene exon 25195503 25195578 0.000000 + . gene_id "ENTPD6"; transcript_id "AK302395:uc010zsy.1";
+chr20 hg19_knownGene CDS 25196312 25196347 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK302395:uc010zsy.1";
+chr20 hg19_knownGene exon 25196312 25196347 0.000000 + . gene_id "ENTPD6"; transcript_id "AK302395:uc010zsy.1";
+chr20 hg19_knownGene CDS 25197284 25197372 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK302395:uc010zsy.1";
+chr20 hg19_knownGene exon 25197284 25197372 0.000000 + . gene_id "ENTPD6"; transcript_id "AK302395:uc010zsy.1";
+chr20 hg19_knownGene CDS 25198138 25198217 0.000000 + 0 gene_id "ENTPD6"; transcript_id "AK302395:uc010zsy.1";
+chr20 hg19_knownGene exon 25198138 25198217 0.000000 + . gene_id "ENTPD6"; transcript_id "AK302395:uc010zsy.1";
+chr20 hg19_knownGene CDS 25199186 25199250 0.000000 + 1 gene_id "ENTPD6"; transcript_id "AK302395:uc010zsy.1";
+chr20 hg19_knownGene exon 25199186 25199250 0.000000 + . gene_id "ENTPD6"; transcript_id "AK302395:uc010zsy.1";
+chr20 hg19_knownGene CDS 25201868 25202109 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK302395:uc010zsy.1";
+chr20 hg19_knownGene exon 25201868 25202359 0.000000 + . gene_id "ENTPD6"; transcript_id "AK302395:uc010zsy.1";
+chr20 hg19_knownGene exon 25176339 25176503 0.000000 + . gene_id "ENTPD6"; transcript_id "AK308626:uc010gdj.1";
+chr20 hg19_knownGene CDS 25187742 25188033 0.000000 + 0 gene_id "ENTPD6"; transcript_id "AK308626:uc010gdj.1";
+chr20 hg19_knownGene exon 25187712 25188033 0.000000 + . gene_id "ENTPD6"; transcript_id "AK308626:uc010gdj.1";
+chr20 hg19_knownGene CDS 25190485 25190561 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK308626:uc010gdj.1";
+chr20 hg19_knownGene exon 25190485 25190561 0.000000 + . gene_id "ENTPD6"; transcript_id "AK308626:uc010gdj.1";
+chr20 hg19_knownGene CDS 25193899 25194042 0.000000 + 0 gene_id "ENTPD6"; transcript_id "AK308626:uc010gdj.1";
+chr20 hg19_knownGene exon 25193899 25194042 0.000000 + . gene_id "ENTPD6"; transcript_id "AK308626:uc010gdj.1";
+chr20 hg19_knownGene CDS 25195503 25195578 0.000000 + 0 gene_id "ENTPD6"; transcript_id "AK308626:uc010gdj.1";
+chr20 hg19_knownGene exon 25195503 25195578 0.000000 + . gene_id "ENTPD6"; transcript_id "AK308626:uc010gdj.1";
+chr20 hg19_knownGene CDS 25196312 25196347 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK308626:uc010gdj.1";
+chr20 hg19_knownGene exon 25196312 25196347 0.000000 + . gene_id "ENTPD6"; transcript_id "AK308626:uc010gdj.1";
+chr20 hg19_knownGene CDS 25197284 25197372 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK308626:uc010gdj.1";
+chr20 hg19_knownGene exon 25197284 25197372 0.000000 + . gene_id "ENTPD6"; transcript_id "AK308626:uc010gdj.1";
+chr20 hg19_knownGene CDS 25198138 25198217 0.000000 + 0 gene_id "ENTPD6"; transcript_id "AK308626:uc010gdj.1";
+chr20 hg19_knownGene exon 25198138 25198217 0.000000 + . gene_id "ENTPD6"; transcript_id "AK308626:uc010gdj.1";
+chr20 hg19_knownGene CDS 25199186 25199250 0.000000 + 1 gene_id "ENTPD6"; transcript_id "AK308626:uc010gdj.1";
+chr20 hg19_knownGene exon 25199186 25199250 0.000000 + . gene_id "ENTPD6"; transcript_id "AK308626:uc010gdj.1";
+chr20 hg19_knownGene CDS 25201868 25202109 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK308626:uc010gdj.1";
+chr20 hg19_knownGene exon 25201868 25202359 0.000000 + . gene_id "ENTPD6"; transcript_id "AK308626:uc010gdj.1";
+chr20 hg19_knownGene exon 25176339 25176503 0.000000 + . gene_id "ENTPD6"; transcript_id "NM_001247:uc002wuj.2";
+chr20 hg19_knownGene CDS 25187173 25187226 0.000000 + 0 gene_id "ENTPD6"; transcript_id "NM_001247:uc002wuj.2";
+chr20 hg19_knownGene exon 25187158 25187226 0.000000 + . gene_id "ENTPD6"; transcript_id "NM_001247:uc002wuj.2";
+chr20 hg19_knownGene CDS 25187712 25188033 0.000000 + 0 gene_id "ENTPD6"; transcript_id "NM_001247:uc002wuj.2";
+chr20 hg19_knownGene exon 25187712 25188033 0.000000 + . gene_id "ENTPD6"; transcript_id "NM_001247:uc002wuj.2";
+chr20 hg19_knownGene CDS 25190485 25190561 0.000000 + 2 gene_id "ENTPD6"; transcript_id "NM_001247:uc002wuj.2";
+chr20 hg19_knownGene exon 25190485 25190561 0.000000 + . gene_id "ENTPD6"; transcript_id "NM_001247:uc002wuj.2";
+chr20 hg19_knownGene CDS 25193899 25194042 0.000000 + 0 gene_id "ENTPD6"; transcript_id "NM_001247:uc002wuj.2";
+chr20 hg19_knownGene exon 25193899 25194042 0.000000 + . gene_id "ENTPD6"; transcript_id "NM_001247:uc002wuj.2";
+chr20 hg19_knownGene CDS 25195503 25195578 0.000000 + 0 gene_id "ENTPD6"; transcript_id "NM_001247:uc002wuj.2";
+chr20 hg19_knownGene exon 25195503 25195578 0.000000 + . gene_id "ENTPD6"; transcript_id "NM_001247:uc002wuj.2";
+chr20 hg19_knownGene CDS 25196312 25196347 0.000000 + 2 gene_id "ENTPD6"; transcript_id "NM_001247:uc002wuj.2";
+chr20 hg19_knownGene exon 25196312 25196347 0.000000 + . gene_id "ENTPD6"; transcript_id "NM_001247:uc002wuj.2";
+chr20 hg19_knownGene CDS 25197284 25197372 0.000000 + 2 gene_id "ENTPD6"; transcript_id "NM_001247:uc002wuj.2";
+chr20 hg19_knownGene exon 25197284 25197372 0.000000 + . gene_id "ENTPD6"; transcript_id "NM_001247:uc002wuj.2";
+chr20 hg19_knownGene CDS 25198138 25198217 0.000000 + 0 gene_id "ENTPD6"; transcript_id "NM_001247:uc002wuj.2";
+chr20 hg19_knownGene exon 25198138 25198217 0.000000 + . gene_id "ENTPD6"; transcript_id "NM_001247:uc002wuj.2";
+chr20 hg19_knownGene CDS 25199186 25199250 0.000000 + 1 gene_id "ENTPD6"; transcript_id "NM_001247:uc002wuj.2";
+chr20 hg19_knownGene exon 25199186 25199250 0.000000 + . gene_id "ENTPD6"; transcript_id "NM_001247:uc002wuj.2";
+chr20 hg19_knownGene CDS 25201868 25201969 0.000000 + 2 gene_id "ENTPD6"; transcript_id "NM_001247:uc002wuj.2";
+chr20 hg19_knownGene exon 25201868 25201969 0.000000 + . gene_id "ENTPD6"; transcript_id "NM_001247:uc002wuj.2";
+chr20 hg19_knownGene CDS 25203474 25203614 0.000000 + 2 gene_id "ENTPD6"; transcript_id "NM_001247:uc002wuj.2";
+chr20 hg19_knownGene exon 25203474 25203614 0.000000 + . gene_id "ENTPD6"; transcript_id "NM_001247:uc002wuj.2";
+chr20 hg19_knownGene CDS 25204737 25204793 0.000000 + 2 gene_id "ENTPD6"; transcript_id "NM_001247:uc002wuj.2";
+chr20 hg19_knownGene exon 25204737 25204793 0.000000 + . gene_id "ENTPD6"; transcript_id "NM_001247:uc002wuj.2";
+chr20 hg19_knownGene CDS 25205841 25205953 0.000000 + 2 gene_id "ENTPD6"; transcript_id "NM_001247:uc002wuj.2";
+chr20 hg19_knownGene exon 25205841 25205953 0.000000 + . gene_id "ENTPD6"; transcript_id "NM_001247:uc002wuj.2";
+chr20 hg19_knownGene CDS 25206135 25206230 0.000000 + 0 gene_id "ENTPD6"; transcript_id "NM_001247:uc002wuj.2";
+chr20 hg19_knownGene exon 25206135 25207360 0.000000 + . gene_id "ENTPD6"; transcript_id "NM_001247:uc002wuj.2";
+chr20 hg19_knownGene CDS 25176501 25176503 0.000000 + 0 gene_id "ENTPD6"; transcript_id "NM_001114089:uc002wum.2";
+chr20 hg19_knownGene exon 25176339 25176503 0.000000 + . gene_id "ENTPD6"; transcript_id "NM_001114089:uc002wum.2";
+chr20 hg19_knownGene CDS 25187712 25188033 0.000000 + 0 gene_id "ENTPD6"; transcript_id "NM_001114089:uc002wum.2";
+chr20 hg19_knownGene exon 25187712 25188033 0.000000 + . gene_id "ENTPD6"; transcript_id "NM_001114089:uc002wum.2";
+chr20 hg19_knownGene CDS 25190485 25190561 0.000000 + 2 gene_id "ENTPD6"; transcript_id "NM_001114089:uc002wum.2";
+chr20 hg19_knownGene exon 25190485 25190561 0.000000 + . gene_id "ENTPD6"; transcript_id "NM_001114089:uc002wum.2";
+chr20 hg19_knownGene CDS 25193899 25194042 0.000000 + 0 gene_id "ENTPD6"; transcript_id "NM_001114089:uc002wum.2";
+chr20 hg19_knownGene exon 25193899 25194042 0.000000 + . gene_id "ENTPD6"; transcript_id "NM_001114089:uc002wum.2";
+chr20 hg19_knownGene CDS 25195503 25195578 0.000000 + 0 gene_id "ENTPD6"; transcript_id "NM_001114089:uc002wum.2";
+chr20 hg19_knownGene exon 25195503 25195578 0.000000 + . gene_id "ENTPD6"; transcript_id "NM_001114089:uc002wum.2";
+chr20 hg19_knownGene CDS 25196312 25196347 0.000000 + 2 gene_id "ENTPD6"; transcript_id "NM_001114089:uc002wum.2";
+chr20 hg19_knownGene exon 25196312 25196347 0.000000 + . gene_id "ENTPD6"; transcript_id "NM_001114089:uc002wum.2";
+chr20 hg19_knownGene CDS 25197284 25197372 0.000000 + 2 gene_id "ENTPD6"; transcript_id "NM_001114089:uc002wum.2";
+chr20 hg19_knownGene exon 25197284 25197372 0.000000 + . gene_id "ENTPD6"; transcript_id "NM_001114089:uc002wum.2";
+chr20 hg19_knownGene CDS 25198138 25198217 0.000000 + 0 gene_id "ENTPD6"; transcript_id "NM_001114089:uc002wum.2";
+chr20 hg19_knownGene exon 25198138 25198217 0.000000 + . gene_id "ENTPD6"; transcript_id "NM_001114089:uc002wum.2";
+chr20 hg19_knownGene CDS 25199186 25199250 0.000000 + 1 gene_id "ENTPD6"; transcript_id "NM_001114089:uc002wum.2";
+chr20 hg19_knownGene exon 25199186 25199250 0.000000 + . gene_id "ENTPD6"; transcript_id "NM_001114089:uc002wum.2";
+chr20 hg19_knownGene CDS 25201868 25201969 0.000000 + 2 gene_id "ENTPD6"; transcript_id "NM_001114089:uc002wum.2";
+chr20 hg19_knownGene exon 25201868 25201969 0.000000 + . gene_id "ENTPD6"; transcript_id "NM_001114089:uc002wum.2";
+chr20 hg19_knownGene CDS 25203474 25203614 0.000000 + 2 gene_id "ENTPD6"; transcript_id "NM_001114089:uc002wum.2";
+chr20 hg19_knownGene exon 25203474 25203614 0.000000 + . gene_id "ENTPD6"; transcript_id "NM_001114089:uc002wum.2";
+chr20 hg19_knownGene CDS 25204737 25204793 0.000000 + 2 gene_id "ENTPD6"; transcript_id "NM_001114089:uc002wum.2";
+chr20 hg19_knownGene exon 25204737 25204793 0.000000 + . gene_id "ENTPD6"; transcript_id "NM_001114089:uc002wum.2";
+chr20 hg19_knownGene CDS 25205841 25205953 0.000000 + 2 gene_id "ENTPD6"; transcript_id "NM_001114089:uc002wum.2";
+chr20 hg19_knownGene exon 25205841 25205953 0.000000 + . gene_id "ENTPD6"; transcript_id "NM_001114089:uc002wum.2";
+chr20 hg19_knownGene CDS 25206135 25206230 0.000000 + 0 gene_id "ENTPD6"; transcript_id "NM_001114089:uc002wum.2";
+chr20 hg19_knownGene exon 25206135 25207360 0.000000 + . gene_id "ENTPD6"; transcript_id "NM_001114089:uc002wum.2";
+chr20 hg19_knownGene exon 25176339 25176503 0.000000 + . gene_id "ENTPD6"; transcript_id "AK297954:uc010zta.1";
+chr20 hg19_knownGene CDS 25187173 25187226 0.000000 + 0 gene_id "ENTPD6"; transcript_id "AK297954:uc010zta.1";
+chr20 hg19_knownGene exon 25187158 25187226 0.000000 + . gene_id "ENTPD6"; transcript_id "AK297954:uc010zta.1";
+chr20 hg19_knownGene CDS 25187712 25188033 0.000000 + 0 gene_id "ENTPD6"; transcript_id "AK297954:uc010zta.1";
+chr20 hg19_knownGene exon 25187712 25188033 0.000000 + . gene_id "ENTPD6"; transcript_id "AK297954:uc010zta.1";
+chr20 hg19_knownGene CDS 25190485 25190561 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK297954:uc010zta.1";
+chr20 hg19_knownGene exon 25190485 25190561 0.000000 + . gene_id "ENTPD6"; transcript_id "AK297954:uc010zta.1";
+chr20 hg19_knownGene CDS 25193899 25194042 0.000000 + 0 gene_id "ENTPD6"; transcript_id "AK297954:uc010zta.1";
+chr20 hg19_knownGene exon 25193899 25194042 0.000000 + . gene_id "ENTPD6"; transcript_id "AK297954:uc010zta.1";
+chr20 hg19_knownGene CDS 25195503 25195578 0.000000 + 0 gene_id "ENTPD6"; transcript_id "AK297954:uc010zta.1";
+chr20 hg19_knownGene exon 25195503 25195578 0.000000 + . gene_id "ENTPD6"; transcript_id "AK297954:uc010zta.1";
+chr20 hg19_knownGene CDS 25196312 25196347 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK297954:uc010zta.1";
+chr20 hg19_knownGene exon 25196312 25196347 0.000000 + . gene_id "ENTPD6"; transcript_id "AK297954:uc010zta.1";
+chr20 hg19_knownGene CDS 25197284 25197372 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK297954:uc010zta.1";
+chr20 hg19_knownGene exon 25197284 25197372 0.000000 + . gene_id "ENTPD6"; transcript_id "AK297954:uc010zta.1";
+chr20 hg19_knownGene CDS 25198138 25198217 0.000000 + 0 gene_id "ENTPD6"; transcript_id "AK297954:uc010zta.1";
+chr20 hg19_knownGene exon 25198138 25198217 0.000000 + . gene_id "ENTPD6"; transcript_id "AK297954:uc010zta.1";
+chr20 hg19_knownGene CDS 25199186 25199250 0.000000 + 1 gene_id "ENTPD6"; transcript_id "AK297954:uc010zta.1";
+chr20 hg19_knownGene exon 25199186 25199250 0.000000 + . gene_id "ENTPD6"; transcript_id "AK297954:uc010zta.1";
+chr20 hg19_knownGene CDS 25201868 25201969 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK297954:uc010zta.1";
+chr20 hg19_knownGene exon 25201868 25201969 0.000000 + . gene_id "ENTPD6"; transcript_id "AK297954:uc010zta.1";
+chr20 hg19_knownGene CDS 25203474 25203614 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK297954:uc010zta.1";
+chr20 hg19_knownGene exon 25203474 25203614 0.000000 + . gene_id "ENTPD6"; transcript_id "AK297954:uc010zta.1";
+chr20 hg19_knownGene CDS 25204737 25204793 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK297954:uc010zta.1";
+chr20 hg19_knownGene exon 25204737 25204793 0.000000 + . gene_id "ENTPD6"; transcript_id "AK297954:uc010zta.1";
+chr20 hg19_knownGene CDS 25205798 25205953 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK297954:uc010zta.1";
+chr20 hg19_knownGene exon 25205798 25205953 0.000000 + . gene_id "ENTPD6"; transcript_id "AK297954:uc010zta.1";
+chr20 hg19_knownGene CDS 25206135 25206148 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK297954:uc010zta.1";
+chr20 hg19_knownGene exon 25206135 25207360 0.000000 + . gene_id "ENTPD6"; transcript_id "AK297954:uc010zta.1";
+chr20 hg19_knownGene exon 25176339 25176503 0.000000 + . gene_id "ENTPD6"; transcript_id "BC025980:uc002wuk.2";
+chr20 hg19_knownGene CDS 25187173 25187226 0.000000 + 0 gene_id "ENTPD6"; transcript_id "BC025980:uc002wuk.2";
+chr20 hg19_knownGene exon 25187158 25187226 0.000000 + . gene_id "ENTPD6"; transcript_id "BC025980:uc002wuk.2";
+chr20 hg19_knownGene CDS 25187715 25188033 0.000000 + 0 gene_id "ENTPD6"; transcript_id "BC025980:uc002wuk.2";
+chr20 hg19_knownGene exon 25187715 25188033 0.000000 + . gene_id "ENTPD6"; transcript_id "BC025980:uc002wuk.2";
+chr20 hg19_knownGene CDS 25190485 25190561 0.000000 + 2 gene_id "ENTPD6"; transcript_id "BC025980:uc002wuk.2";
+chr20 hg19_knownGene exon 25190485 25190561 0.000000 + . gene_id "ENTPD6"; transcript_id "BC025980:uc002wuk.2";
+chr20 hg19_knownGene CDS 25193899 25194042 0.000000 + 0 gene_id "ENTPD6"; transcript_id "BC025980:uc002wuk.2";
+chr20 hg19_knownGene exon 25193899 25194042 0.000000 + . gene_id "ENTPD6"; transcript_id "BC025980:uc002wuk.2";
+chr20 hg19_knownGene CDS 25195503 25195578 0.000000 + 0 gene_id "ENTPD6"; transcript_id "BC025980:uc002wuk.2";
+chr20 hg19_knownGene exon 25195503 25195578 0.000000 + . gene_id "ENTPD6"; transcript_id "BC025980:uc002wuk.2";
+chr20 hg19_knownGene CDS 25196312 25196347 0.000000 + 2 gene_id "ENTPD6"; transcript_id "BC025980:uc002wuk.2";
+chr20 hg19_knownGene exon 25196312 25196347 0.000000 + . gene_id "ENTPD6"; transcript_id "BC025980:uc002wuk.2";
+chr20 hg19_knownGene CDS 25197284 25197372 0.000000 + 2 gene_id "ENTPD6"; transcript_id "BC025980:uc002wuk.2";
+chr20 hg19_knownGene exon 25197284 25197372 0.000000 + . gene_id "ENTPD6"; transcript_id "BC025980:uc002wuk.2";
+chr20 hg19_knownGene CDS 25198138 25198217 0.000000 + 0 gene_id "ENTPD6"; transcript_id "BC025980:uc002wuk.2";
+chr20 hg19_knownGene exon 25198138 25198217 0.000000 + . gene_id "ENTPD6"; transcript_id "BC025980:uc002wuk.2";
+chr20 hg19_knownGene CDS 25199186 25199250 0.000000 + 1 gene_id "ENTPD6"; transcript_id "BC025980:uc002wuk.2";
+chr20 hg19_knownGene exon 25199186 25199250 0.000000 + . gene_id "ENTPD6"; transcript_id "BC025980:uc002wuk.2";
+chr20 hg19_knownGene CDS 25201868 25201969 0.000000 + 2 gene_id "ENTPD6"; transcript_id "BC025980:uc002wuk.2";
+chr20 hg19_knownGene exon 25201868 25201969 0.000000 + . gene_id "ENTPD6"; transcript_id "BC025980:uc002wuk.2";
+chr20 hg19_knownGene CDS 25203474 25203614 0.000000 + 2 gene_id "ENTPD6"; transcript_id "BC025980:uc002wuk.2";
+chr20 hg19_knownGene exon 25203474 25203614 0.000000 + . gene_id "ENTPD6"; transcript_id "BC025980:uc002wuk.2";
+chr20 hg19_knownGene CDS 25204737 25204793 0.000000 + 2 gene_id "ENTPD6"; transcript_id "BC025980:uc002wuk.2";
+chr20 hg19_knownGene exon 25204737 25204793 0.000000 + . gene_id "ENTPD6"; transcript_id "BC025980:uc002wuk.2";
+chr20 hg19_knownGene CDS 25205841 25205953 0.000000 + 2 gene_id "ENTPD6"; transcript_id "BC025980:uc002wuk.2";
+chr20 hg19_knownGene exon 25205841 25205953 0.000000 + . gene_id "ENTPD6"; transcript_id "BC025980:uc002wuk.2";
+chr20 hg19_knownGene CDS 25206135 25206230 0.000000 + 0 gene_id "ENTPD6"; transcript_id "BC025980:uc002wuk.2";
+chr20 hg19_knownGene exon 25206135 25207360 0.000000 + . gene_id "ENTPD6"; transcript_id "BC025980:uc002wuk.2";
+chr20 hg19_knownGene exon 25176339 25176503 0.000000 + . gene_id "ENTPD6"; transcript_id "CR936765:uc002wul.2";
+chr20 hg19_knownGene CDS 25187173 25187226 0.000000 + 0 gene_id "ENTPD6"; transcript_id "CR936765:uc002wul.2";
+chr20 hg19_knownGene exon 25187158 25187226 0.000000 + . gene_id "ENTPD6"; transcript_id "CR936765:uc002wul.2";
+chr20 hg19_knownGene CDS 25187715 25188033 0.000000 + 0 gene_id "ENTPD6"; transcript_id "CR936765:uc002wul.2";
+chr20 hg19_knownGene exon 25187715 25188033 0.000000 + . gene_id "ENTPD6"; transcript_id "CR936765:uc002wul.2";
+chr20 hg19_knownGene CDS 25190485 25190561 0.000000 + 2 gene_id "ENTPD6"; transcript_id "CR936765:uc002wul.2";
+chr20 hg19_knownGene exon 25190485 25190561 0.000000 + . gene_id "ENTPD6"; transcript_id "CR936765:uc002wul.2";
+chr20 hg19_knownGene CDS 25193899 25194042 0.000000 + 0 gene_id "ENTPD6"; transcript_id "CR936765:uc002wul.2";
+chr20 hg19_knownGene exon 25193899 25194042 0.000000 + . gene_id "ENTPD6"; transcript_id "CR936765:uc002wul.2";
+chr20 hg19_knownGene CDS 25195503 25195578 0.000000 + 0 gene_id "ENTPD6"; transcript_id "CR936765:uc002wul.2";
+chr20 hg19_knownGene exon 25195503 25195578 0.000000 + . gene_id "ENTPD6"; transcript_id "CR936765:uc002wul.2";
+chr20 hg19_knownGene CDS 25196312 25196347 0.000000 + 2 gene_id "ENTPD6"; transcript_id "CR936765:uc002wul.2";
+chr20 hg19_knownGene exon 25196312 25196347 0.000000 + . gene_id "ENTPD6"; transcript_id "CR936765:uc002wul.2";
+chr20 hg19_knownGene CDS 25197284 25197372 0.000000 + 2 gene_id "ENTPD6"; transcript_id "CR936765:uc002wul.2";
+chr20 hg19_knownGene exon 25197284 25197372 0.000000 + . gene_id "ENTPD6"; transcript_id "CR936765:uc002wul.2";
+chr20 hg19_knownGene CDS 25198138 25198217 0.000000 + 0 gene_id "ENTPD6"; transcript_id "CR936765:uc002wul.2";
+chr20 hg19_knownGene exon 25198138 25198217 0.000000 + . gene_id "ENTPD6"; transcript_id "CR936765:uc002wul.2";
+chr20 hg19_knownGene CDS 25199186 25199250 0.000000 + 1 gene_id "ENTPD6"; transcript_id "CR936765:uc002wul.2";
+chr20 hg19_knownGene exon 25199186 25199250 0.000000 + . gene_id "ENTPD6"; transcript_id "CR936765:uc002wul.2";
+chr20 hg19_knownGene CDS 25201868 25201969 0.000000 + 2 gene_id "ENTPD6"; transcript_id "CR936765:uc002wul.2";
+chr20 hg19_knownGene exon 25201868 25201969 0.000000 + . gene_id "ENTPD6"; transcript_id "CR936765:uc002wul.2";
+chr20 hg19_knownGene CDS 25203474 25203614 0.000000 + 2 gene_id "ENTPD6"; transcript_id "CR936765:uc002wul.2";
+chr20 hg19_knownGene exon 25203474 25203614 0.000000 + . gene_id "ENTPD6"; transcript_id "CR936765:uc002wul.2";
+chr20 hg19_knownGene CDS 25204737 25204793 0.000000 + 2 gene_id "ENTPD6"; transcript_id "CR936765:uc002wul.2";
+chr20 hg19_knownGene exon 25204737 25204793 0.000000 + . gene_id "ENTPD6"; transcript_id "CR936765:uc002wul.2";
+chr20 hg19_knownGene CDS 25205798 25205953 0.000000 + 2 gene_id "ENTPD6"; transcript_id "CR936765:uc002wul.2";
+chr20 hg19_knownGene exon 25205798 25205953 0.000000 + . gene_id "ENTPD6"; transcript_id "CR936765:uc002wul.2";
+chr20 hg19_knownGene CDS 25206135 25206148 0.000000 + 2 gene_id "ENTPD6"; transcript_id "CR936765:uc002wul.2";
+chr20 hg19_knownGene exon 25206135 25207360 0.000000 + . gene_id "ENTPD6"; transcript_id "CR936765:uc002wul.2";
+chr20 hg19_knownGene exon 25176339 25176503 0.000000 + . gene_id "ENTPD6"; transcript_id "AK293256:uc010ztb.1";
+chr20 hg19_knownGene CDS 25187742 25188033 0.000000 + 0 gene_id "ENTPD6"; transcript_id "AK293256:uc010ztb.1";
+chr20 hg19_knownGene exon 25187715 25188033 0.000000 + . gene_id "ENTPD6"; transcript_id "AK293256:uc010ztb.1";
+chr20 hg19_knownGene CDS 25190485 25190561 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK293256:uc010ztb.1";
+chr20 hg19_knownGene exon 25190485 25190561 0.000000 + . gene_id "ENTPD6"; transcript_id "AK293256:uc010ztb.1";
+chr20 hg19_knownGene CDS 25193899 25194042 0.000000 + 0 gene_id "ENTPD6"; transcript_id "AK293256:uc010ztb.1";
+chr20 hg19_knownGene exon 25193899 25194042 0.000000 + . gene_id "ENTPD6"; transcript_id "AK293256:uc010ztb.1";
+chr20 hg19_knownGene CDS 25195503 25195578 0.000000 + 0 gene_id "ENTPD6"; transcript_id "AK293256:uc010ztb.1";
+chr20 hg19_knownGene exon 25195503 25195578 0.000000 + . gene_id "ENTPD6"; transcript_id "AK293256:uc010ztb.1";
+chr20 hg19_knownGene CDS 25196312 25196347 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK293256:uc010ztb.1";
+chr20 hg19_knownGene exon 25196312 25196347 0.000000 + . gene_id "ENTPD6"; transcript_id "AK293256:uc010ztb.1";
+chr20 hg19_knownGene CDS 25197284 25197372 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK293256:uc010ztb.1";
+chr20 hg19_knownGene exon 25197284 25197372 0.000000 + . gene_id "ENTPD6"; transcript_id "AK293256:uc010ztb.1";
+chr20 hg19_knownGene CDS 25198138 25198217 0.000000 + 0 gene_id "ENTPD6"; transcript_id "AK293256:uc010ztb.1";
+chr20 hg19_knownGene exon 25198138 25198217 0.000000 + . gene_id "ENTPD6"; transcript_id "AK293256:uc010ztb.1";
+chr20 hg19_knownGene CDS 25199186 25199250 0.000000 + 1 gene_id "ENTPD6"; transcript_id "AK293256:uc010ztb.1";
+chr20 hg19_knownGene exon 25199186 25199250 0.000000 + . gene_id "ENTPD6"; transcript_id "AK293256:uc010ztb.1";
+chr20 hg19_knownGene CDS 25201868 25201969 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK293256:uc010ztb.1";
+chr20 hg19_knownGene exon 25201868 25201969 0.000000 + . gene_id "ENTPD6"; transcript_id "AK293256:uc010ztb.1";
+chr20 hg19_knownGene CDS 25203474 25203614 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK293256:uc010ztb.1";
+chr20 hg19_knownGene exon 25203474 25203614 0.000000 + . gene_id "ENTPD6"; transcript_id "AK293256:uc010ztb.1";
+chr20 hg19_knownGene CDS 25204737 25204793 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK293256:uc010ztb.1";
+chr20 hg19_knownGene exon 25204737 25204793 0.000000 + . gene_id "ENTPD6"; transcript_id "AK293256:uc010ztb.1";
+chr20 hg19_knownGene CDS 25205798 25205953 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK293256:uc010ztb.1";
+chr20 hg19_knownGene exon 25205798 25205953 0.000000 + . gene_id "ENTPD6"; transcript_id "AK293256:uc010ztb.1";
+chr20 hg19_knownGene CDS 25206135 25206148 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK293256:uc010ztb.1";
+chr20 hg19_knownGene exon 25206135 25207360 0.000000 + . gene_id "ENTPD6"; transcript_id "AK293256:uc010ztb.1";
+chr20 hg19_knownGene exon 25176339 25176503 0.000000 + . gene_id "ENTPD6"; transcript_id "AK303786:uc010ztc.1";
+chr20 hg19_knownGene CDS 25187742 25188033 0.000000 + 0 gene_id "ENTPD6"; transcript_id "AK303786:uc010ztc.1";
+chr20 hg19_knownGene exon 25187715 25188033 0.000000 + . gene_id "ENTPD6"; transcript_id "AK303786:uc010ztc.1";
+chr20 hg19_knownGene CDS 25190485 25190561 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK303786:uc010ztc.1";
+chr20 hg19_knownGene exon 25190485 25190561 0.000000 + . gene_id "ENTPD6"; transcript_id "AK303786:uc010ztc.1";
+chr20 hg19_knownGene CDS 25193899 25194042 0.000000 + 0 gene_id "ENTPD6"; transcript_id "AK303786:uc010ztc.1";
+chr20 hg19_knownGene exon 25193899 25194042 0.000000 + . gene_id "ENTPD6"; transcript_id "AK303786:uc010ztc.1";
+chr20 hg19_knownGene CDS 25195503 25195578 0.000000 + 0 gene_id "ENTPD6"; transcript_id "AK303786:uc010ztc.1";
+chr20 hg19_knownGene exon 25195503 25195578 0.000000 + . gene_id "ENTPD6"; transcript_id "AK303786:uc010ztc.1";
+chr20 hg19_knownGene CDS 25196312 25196347 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK303786:uc010ztc.1";
+chr20 hg19_knownGene exon 25196312 25196347 0.000000 + . gene_id "ENTPD6"; transcript_id "AK303786:uc010ztc.1";
+chr20 hg19_knownGene CDS 25197284 25197372 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK303786:uc010ztc.1";
+chr20 hg19_knownGene exon 25197284 25197372 0.000000 + . gene_id "ENTPD6"; transcript_id "AK303786:uc010ztc.1";
+chr20 hg19_knownGene CDS 25198138 25198217 0.000000 + 0 gene_id "ENTPD6"; transcript_id "AK303786:uc010ztc.1";
+chr20 hg19_knownGene exon 25198138 25198217 0.000000 + . gene_id "ENTPD6"; transcript_id "AK303786:uc010ztc.1";
+chr20 hg19_knownGene CDS 25199186 25199250 0.000000 + 1 gene_id "ENTPD6"; transcript_id "AK303786:uc010ztc.1";
+chr20 hg19_knownGene exon 25199186 25199250 0.000000 + . gene_id "ENTPD6"; transcript_id "AK303786:uc010ztc.1";
+chr20 hg19_knownGene CDS 25201868 25201969 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK303786:uc010ztc.1";
+chr20 hg19_knownGene exon 25201868 25201969 0.000000 + . gene_id "ENTPD6"; transcript_id "AK303786:uc010ztc.1";
+chr20 hg19_knownGene CDS 25203474 25203614 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK303786:uc010ztc.1";
+chr20 hg19_knownGene exon 25203474 25203614 0.000000 + . gene_id "ENTPD6"; transcript_id "AK303786:uc010ztc.1";
+chr20 hg19_knownGene CDS 25204737 25204793 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK303786:uc010ztc.1";
+chr20 hg19_knownGene exon 25204737 25204793 0.000000 + . gene_id "ENTPD6"; transcript_id "AK303786:uc010ztc.1";
+chr20 hg19_knownGene CDS 25205841 25205953 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK303786:uc010ztc.1";
+chr20 hg19_knownGene exon 25205841 25205953 0.000000 + . gene_id "ENTPD6"; transcript_id "AK303786:uc010ztc.1";
+chr20 hg19_knownGene CDS 25206135 25206230 0.000000 + 0 gene_id "ENTPD6"; transcript_id "AK303786:uc010ztc.1";
+chr20 hg19_knownGene exon 25206135 25207360 0.000000 + . gene_id "ENTPD6"; transcript_id "AK303786:uc010ztc.1";
+chr20 hg19_knownGene exon 25176339 25176503 0.000000 + . gene_id "ENTPD6"; transcript_id "CR936750:uc002wuo.2";
+chr20 hg19_knownGene exon 25190485 25190561 0.000000 + . gene_id "ENTPD6"; transcript_id "CR936750:uc002wuo.2";
+chr20 hg19_knownGene exon 25193899 25194042 0.000000 + . gene_id "ENTPD6"; transcript_id "CR936750:uc002wuo.2";
+chr20 hg19_knownGene exon 25195503 25195578 0.000000 + . gene_id "ENTPD6"; transcript_id "CR936750:uc002wuo.2";
+chr20 hg19_knownGene exon 25196312 25196347 0.000000 + . gene_id "ENTPD6"; transcript_id "CR936750:uc002wuo.2";
+chr20 hg19_knownGene CDS 25197319 25197372 0.000000 + 0 gene_id "ENTPD6"; transcript_id "CR936750:uc002wuo.2";
+chr20 hg19_knownGene exon 25197288 25197372 0.000000 + . gene_id "ENTPD6"; transcript_id "CR936750:uc002wuo.2";
+chr20 hg19_knownGene CDS 25198138 25198217 0.000000 + 0 gene_id "ENTPD6"; transcript_id "CR936750:uc002wuo.2";
+chr20 hg19_knownGene exon 25198138 25198217 0.000000 + . gene_id "ENTPD6"; transcript_id "CR936750:uc002wuo.2";
+chr20 hg19_knownGene CDS 25199186 25199250 0.000000 + 1 gene_id "ENTPD6"; transcript_id "CR936750:uc002wuo.2";
+chr20 hg19_knownGene exon 25199186 25199250 0.000000 + . gene_id "ENTPD6"; transcript_id "CR936750:uc002wuo.2";
+chr20 hg19_knownGene CDS 25201868 25201969 0.000000 + 2 gene_id "ENTPD6"; transcript_id "CR936750:uc002wuo.2";
+chr20 hg19_knownGene exon 25201868 25201969 0.000000 + . gene_id "ENTPD6"; transcript_id "CR936750:uc002wuo.2";
+chr20 hg19_knownGene CDS 25203474 25203614 0.000000 + 2 gene_id "ENTPD6"; transcript_id "CR936750:uc002wuo.2";
+chr20 hg19_knownGene exon 25203474 25203614 0.000000 + . gene_id "ENTPD6"; transcript_id "CR936750:uc002wuo.2";
+chr20 hg19_knownGene CDS 25204737 25204793 0.000000 + 2 gene_id "ENTPD6"; transcript_id "CR936750:uc002wuo.2";
+chr20 hg19_knownGene exon 25204737 25204793 0.000000 + . gene_id "ENTPD6"; transcript_id "CR936750:uc002wuo.2";
+chr20 hg19_knownGene CDS 25205841 25205953 0.000000 + 2 gene_id "ENTPD6"; transcript_id "CR936750:uc002wuo.2";
+chr20 hg19_knownGene exon 25205841 25205953 0.000000 + . gene_id "ENTPD6"; transcript_id "CR936750:uc002wuo.2";
+chr20 hg19_knownGene CDS 25206135 25206230 0.000000 + 0 gene_id "ENTPD6"; transcript_id "CR936750:uc002wuo.2";
+chr20 hg19_knownGene exon 25206135 25207360 0.000000 + . gene_id "ENTPD6"; transcript_id "CR936750:uc002wuo.2";
+chr20 hg19_knownGene exon 25176339 25176503 0.000000 + . gene_id "ENTPD6"; transcript_id "AK300514:uc010zsz.1";
+chr20 hg19_knownGene exon 25190485 25190561 0.000000 + . gene_id "ENTPD6"; transcript_id "AK300514:uc010zsz.1";
+chr20 hg19_knownGene CDS 25195560 25195578 0.000000 + 0 gene_id "ENTPD6"; transcript_id "AK300514:uc010zsz.1";
+chr20 hg19_knownGene exon 25195503 25195578 0.000000 + . gene_id "ENTPD6"; transcript_id "AK300514:uc010zsz.1";
+chr20 hg19_knownGene CDS 25196312 25196347 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK300514:uc010zsz.1";
+chr20 hg19_knownGene exon 25196312 25196347 0.000000 + . gene_id "ENTPD6"; transcript_id "AK300514:uc010zsz.1";
+chr20 hg19_knownGene CDS 25197284 25197372 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK300514:uc010zsz.1";
+chr20 hg19_knownGene exon 25197284 25197372 0.000000 + . gene_id "ENTPD6"; transcript_id "AK300514:uc010zsz.1";
+chr20 hg19_knownGene CDS 25198138 25198217 0.000000 + 0 gene_id "ENTPD6"; transcript_id "AK300514:uc010zsz.1";
+chr20 hg19_knownGene exon 25198138 25198217 0.000000 + . gene_id "ENTPD6"; transcript_id "AK300514:uc010zsz.1";
+chr20 hg19_knownGene CDS 25199186 25199250 0.000000 + 1 gene_id "ENTPD6"; transcript_id "AK300514:uc010zsz.1";
+chr20 hg19_knownGene exon 25199186 25199250 0.000000 + . gene_id "ENTPD6"; transcript_id "AK300514:uc010zsz.1";
+chr20 hg19_knownGene CDS 25201868 25201969 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK300514:uc010zsz.1";
+chr20 hg19_knownGene exon 25201868 25201969 0.000000 + . gene_id "ENTPD6"; transcript_id "AK300514:uc010zsz.1";
+chr20 hg19_knownGene CDS 25203474 25203614 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK300514:uc010zsz.1";
+chr20 hg19_knownGene exon 25203474 25203614 0.000000 + . gene_id "ENTPD6"; transcript_id "AK300514:uc010zsz.1";
+chr20 hg19_knownGene CDS 25204737 25204793 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK300514:uc010zsz.1";
+chr20 hg19_knownGene exon 25204737 25204793 0.000000 + . gene_id "ENTPD6"; transcript_id "AK300514:uc010zsz.1";
+chr20 hg19_knownGene CDS 25205841 25205953 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK300514:uc010zsz.1";
+chr20 hg19_knownGene exon 25205841 25205953 0.000000 + . gene_id "ENTPD6"; transcript_id "AK300514:uc010zsz.1";
+chr20 hg19_knownGene CDS 25206135 25206230 0.000000 + 0 gene_id "ENTPD6"; transcript_id "AK300514:uc010zsz.1";
+chr20 hg19_knownGene exon 25206135 25207360 0.000000 + . gene_id "ENTPD6"; transcript_id "AK300514:uc010zsz.1";
+chr20 hg19_knownGene exon 25190472 25190561 0.000000 + . gene_id "ENTPD6"; transcript_id "AK300028:uc010ztd.1";
+chr20 hg19_knownGene exon 25193899 25194042 0.000000 + . gene_id "ENTPD6"; transcript_id "AK300028:uc010ztd.1";
+chr20 hg19_knownGene CDS 25195560 25195578 0.000000 + 0 gene_id "ENTPD6"; transcript_id "AK300028:uc010ztd.1";
+chr20 hg19_knownGene exon 25195503 25195578 0.000000 + . gene_id "ENTPD6"; transcript_id "AK300028:uc010ztd.1";
+chr20 hg19_knownGene CDS 25196312 25196347 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK300028:uc010ztd.1";
+chr20 hg19_knownGene exon 25196312 25196347 0.000000 + . gene_id "ENTPD6"; transcript_id "AK300028:uc010ztd.1";
+chr20 hg19_knownGene CDS 25197284 25197372 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK300028:uc010ztd.1";
+chr20 hg19_knownGene exon 25197284 25197372 0.000000 + . gene_id "ENTPD6"; transcript_id "AK300028:uc010ztd.1";
+chr20 hg19_knownGene CDS 25198138 25198217 0.000000 + 0 gene_id "ENTPD6"; transcript_id "AK300028:uc010ztd.1";
+chr20 hg19_knownGene exon 25198138 25198217 0.000000 + . gene_id "ENTPD6"; transcript_id "AK300028:uc010ztd.1";
+chr20 hg19_knownGene CDS 25199186 25199250 0.000000 + 1 gene_id "ENTPD6"; transcript_id "AK300028:uc010ztd.1";
+chr20 hg19_knownGene exon 25199186 25199250 0.000000 + . gene_id "ENTPD6"; transcript_id "AK300028:uc010ztd.1";
+chr20 hg19_knownGene CDS 25203474 25203614 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK300028:uc010ztd.1";
+chr20 hg19_knownGene exon 25203474 25203614 0.000000 + . gene_id "ENTPD6"; transcript_id "AK300028:uc010ztd.1";
+chr20 hg19_knownGene CDS 25204737 25204793 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK300028:uc010ztd.1";
+chr20 hg19_knownGene exon 25204737 25204793 0.000000 + . gene_id "ENTPD6"; transcript_id "AK300028:uc010ztd.1";
+chr20 hg19_knownGene CDS 25205841 25205953 0.000000 + 2 gene_id "ENTPD6"; transcript_id "AK300028:uc010ztd.1";
+chr20 hg19_knownGene exon 25205841 25205953 0.000000 + . gene_id "ENTPD6"; transcript_id "AK300028:uc010ztd.1";
+chr20 hg19_knownGene CDS 25206135 25206230 0.000000 + 0 gene_id "ENTPD6"; transcript_id "AK300028:uc010ztd.1";
+chr20 hg19_knownGene exon 25206135 25207360 0.000000 + . gene_id "ENTPD6"; transcript_id "AK300028:uc010ztd.1";
+chr20 hg19_knownGene exon 25202346 25203614 0.000000 + . gene_id "ENTPD6"; transcript_id "AX748421:uc010gdk.1";
+chr20 hg19_knownGene exon 25204737 25204793 0.000000 + . gene_id "ENTPD6"; transcript_id "AX748421:uc010gdk.1";
+chr20 hg19_knownGene exon 25205841 25205953 0.000000 + . gene_id "ENTPD6"; transcript_id "AX748421:uc010gdk.1";
+chr20 hg19_knownGene exon 25206135 25207360 0.000000 + . gene_id "ENTPD6"; transcript_id "AX748421:uc010gdk.1";
+chr20 hg19_knownGene exon 25202346 25203614 0.000000 + . gene_id "ENTPD6"; transcript_id "AK128412:uc010gdl.1";
+chr20 hg19_knownGene exon 25204737 25204793 0.000000 + . gene_id "ENTPD6"; transcript_id "AK128412:uc010gdl.1";
+chr20 hg19_knownGene exon 25205798 25205953 0.000000 + . gene_id "ENTPD6"; transcript_id "AK128412:uc010gdl.1";
+chr20 hg19_knownGene exon 25206135 25207360 0.000000 + . gene_id "ENTPD6"; transcript_id "AK128412:uc010gdl.1";
+chr20 hg19_knownGene CDS 25268844 25269209 0.000000 - 0 gene_id "BC128043"; transcript_id "BC128043:uc010gdm.1";
+chr20 hg19_knownGene exon 25268551 25269403 0.000000 - . gene_id "BC128043"; transcript_id "BC128043:uc010gdm.1";
+chr20 hg19_knownGene CDS 25228815 25229057 0.000000 + 0 gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene exon 25228706 25229057 0.000000 + . gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene CDS 25239873 25239974 0.000000 + 0 gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene exon 25239873 25239974 0.000000 + . gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene CDS 25249765 25249843 0.000000 + 0 gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene exon 25249765 25249843 0.000000 + . gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene CDS 25252019 25252122 0.000000 + 2 gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene exon 25252019 25252122 0.000000 + . gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene CDS 25255228 25255359 0.000000 + 0 gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene exon 25255228 25255359 0.000000 + . gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene CDS 25257282 25257393 0.000000 + 0 gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene exon 25257282 25257393 0.000000 + . gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene CDS 25257880 25257962 0.000000 + 2 gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene exon 25257880 25257962 0.000000 + . gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene CDS 25258955 25259098 0.000000 + 0 gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene exon 25258955 25259098 0.000000 + . gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene CDS 25259693 25259785 0.000000 + 0 gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene exon 25259693 25259785 0.000000 + . gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene CDS 25260902 25261048 0.000000 + 0 gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene exon 25260902 25261048 0.000000 + . gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene CDS 25261585 25261748 0.000000 + 0 gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene exon 25261585 25261748 0.000000 + . gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene CDS 25262669 25262783 0.000000 + 1 gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene exon 25262669 25262783 0.000000 + . gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene CDS 25263812 25263913 0.000000 + 0 gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene exon 25263812 25263913 0.000000 + . gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene CDS 25264740 25264887 0.000000 + 0 gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene exon 25264740 25264887 0.000000 + . gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene CDS 25269061 25269119 0.000000 + 2 gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene exon 25269061 25269119 0.000000 + . gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene CDS 25271117 25271258 0.000000 + 0 gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene exon 25271117 25271258 0.000000 + . gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene CDS 25273042 25273249 0.000000 + 2 gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene exon 25273042 25273249 0.000000 + . gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene CDS 25274794 25274928 0.000000 + 1 gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene exon 25274794 25274928 0.000000 + . gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene CDS 25276240 25276306 0.000000 + 1 gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene exon 25276240 25276306 0.000000 + . gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene CDS 25277006 25277155 0.000000 + 0 gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene exon 25277006 25278648 0.000000 + . gene_id "PYGB"; transcript_id "NM_002862:uc002wup.3";
+chr20 hg19_knownGene CDS 25275612 25275666 0.000000 - 1 gene_id "ABHD12"; transcript_id "NM_015600:uc002wuq.3";
+chr20 hg19_knownGene exon 25275379 25275666 0.000000 - . gene_id "ABHD12"; transcript_id "NM_015600:uc002wuq.3";
+chr20 hg19_knownGene CDS 25282855 25282982 0.000000 - 0 gene_id "ABHD12"; transcript_id "NM_015600:uc002wuq.3";
+chr20 hg19_knownGene exon 25282855 25282982 0.000000 - . gene_id "ABHD12"; transcript_id "NM_015600:uc002wuq.3";
+chr20 hg19_knownGene CDS 25284186 25284264 0.000000 - 1 gene_id "ABHD12"; transcript_id "NM_015600:uc002wuq.3";
+chr20 hg19_knownGene exon 25284186 25284264 0.000000 - . gene_id "ABHD12"; transcript_id "NM_015600:uc002wuq.3";
+chr20 hg19_knownGene CDS 25287469 25287551 0.000000 - 0 gene_id "ABHD12"; transcript_id "NM_015600:uc002wuq.3";
+chr20 hg19_knownGene exon 25287469 25287551 0.000000 - . gene_id "ABHD12"; transcript_id "NM_015600:uc002wuq.3";
+chr20 hg19_knownGene CDS 25288602 25288681 0.000000 - 2 gene_id "ABHD12"; transcript_id "NM_015600:uc002wuq.3";
+chr20 hg19_knownGene exon 25288602 25288681 0.000000 - . gene_id "ABHD12"; transcript_id "NM_015600:uc002wuq.3";
+chr20 hg19_knownGene CDS 25289093 25289130 0.000000 - 1 gene_id "ABHD12"; transcript_id "NM_015600:uc002wuq.3";
+chr20 hg19_knownGene exon 25289093 25289130 0.000000 - . gene_id "ABHD12"; transcript_id "NM_015600:uc002wuq.3";
+chr20 hg19_knownGene CDS 25290082 25290211 0.000000 - 2 gene_id "ABHD12"; transcript_id "NM_015600:uc002wuq.3";
+chr20 hg19_knownGene exon 25290082 25290211 0.000000 - . gene_id "ABHD12"; transcript_id "NM_015600:uc002wuq.3";
+chr20 hg19_knownGene CDS 25295561 25295606 0.000000 - 0 gene_id "ABHD12"; transcript_id "NM_015600:uc002wuq.3";
+chr20 hg19_knownGene exon 25295561 25295606 0.000000 - . gene_id "ABHD12"; transcript_id "NM_015600:uc002wuq.3";
+chr20 hg19_knownGene CDS 25297684 25297714 0.000000 - 1 gene_id "ABHD12"; transcript_id "NM_015600:uc002wuq.3";
+chr20 hg19_knownGene exon 25297684 25297714 0.000000 - . gene_id "ABHD12"; transcript_id "NM_015600:uc002wuq.3";
+chr20 hg19_knownGene CDS 25300835 25300954 0.000000 - 1 gene_id "ABHD12"; transcript_id "NM_015600:uc002wuq.3";
+chr20 hg19_knownGene exon 25300835 25300954 0.000000 - . gene_id "ABHD12"; transcript_id "NM_015600:uc002wuq.3";
+chr20 hg19_knownGene CDS 25303961 25304066 0.000000 - 2 gene_id "ABHD12"; transcript_id "NM_015600:uc002wuq.3";
+chr20 hg19_knownGene exon 25303961 25304066 0.000000 - . gene_id "ABHD12"; transcript_id "NM_015600:uc002wuq.3";
+chr20 hg19_knownGene CDS 25319863 25319987 0.000000 - 1 gene_id "ABHD12"; transcript_id "NM_015600:uc002wuq.3";
+chr20 hg19_knownGene exon 25319863 25319987 0.000000 - . gene_id "ABHD12"; transcript_id "NM_015600:uc002wuq.3";
+chr20 hg19_knownGene CDS 25371149 25371339 0.000000 - 0 gene_id "ABHD12"; transcript_id "NM_015600:uc002wuq.3";
+chr20 hg19_knownGene exon 25371149 25371618 0.000000 - . gene_id "ABHD12"; transcript_id "NM_015600:uc002wuq.3";
+chr20 hg19_knownGene CDS 25281484 25281520 0.000000 - 1 gene_id "ABHD12"; transcript_id "NM_001042472:uc002wus.2";
+chr20 hg19_knownGene exon 25280834 25281520 0.000000 - . gene_id "ABHD12"; transcript_id "NM_001042472:uc002wus.2";
+chr20 hg19_knownGene CDS 25282855 25282982 0.000000 - 0 gene_id "ABHD12"; transcript_id "NM_001042472:uc002wus.2";
+chr20 hg19_knownGene exon 25282855 25282982 0.000000 - . gene_id "ABHD12"; transcript_id "NM_001042472:uc002wus.2";
+chr20 hg19_knownGene CDS 25284186 25284264 0.000000 - 1 gene_id "ABHD12"; transcript_id "NM_001042472:uc002wus.2";
+chr20 hg19_knownGene exon 25284186 25284264 0.000000 - . gene_id "ABHD12"; transcript_id "NM_001042472:uc002wus.2";
+chr20 hg19_knownGene CDS 25287469 25287551 0.000000 - 0 gene_id "ABHD12"; transcript_id "NM_001042472:uc002wus.2";
+chr20 hg19_knownGene exon 25287469 25287551 0.000000 - . gene_id "ABHD12"; transcript_id "NM_001042472:uc002wus.2";
+chr20 hg19_knownGene CDS 25288602 25288681 0.000000 - 2 gene_id "ABHD12"; transcript_id "NM_001042472:uc002wus.2";
+chr20 hg19_knownGene exon 25288602 25288681 0.000000 - . gene_id "ABHD12"; transcript_id "NM_001042472:uc002wus.2";
+chr20 hg19_knownGene CDS 25289093 25289130 0.000000 - 1 gene_id "ABHD12"; transcript_id "NM_001042472:uc002wus.2";
+chr20 hg19_knownGene exon 25289093 25289130 0.000000 - . gene_id "ABHD12"; transcript_id "NM_001042472:uc002wus.2";
+chr20 hg19_knownGene CDS 25290082 25290211 0.000000 - 2 gene_id "ABHD12"; transcript_id "NM_001042472:uc002wus.2";
+chr20 hg19_knownGene exon 25290082 25290211 0.000000 - . gene_id "ABHD12"; transcript_id "NM_001042472:uc002wus.2";
+chr20 hg19_knownGene CDS 25295561 25295606 0.000000 - 0 gene_id "ABHD12"; transcript_id "NM_001042472:uc002wus.2";
+chr20 hg19_knownGene exon 25295561 25295606 0.000000 - . gene_id "ABHD12"; transcript_id "NM_001042472:uc002wus.2";
+chr20 hg19_knownGene CDS 25297684 25297714 0.000000 - 1 gene_id "ABHD12"; transcript_id "NM_001042472:uc002wus.2";
+chr20 hg19_knownGene exon 25297684 25297714 0.000000 - . gene_id "ABHD12"; transcript_id "NM_001042472:uc002wus.2";
+chr20 hg19_knownGene CDS 25300835 25300954 0.000000 - 1 gene_id "ABHD12"; transcript_id "NM_001042472:uc002wus.2";
+chr20 hg19_knownGene exon 25300835 25300954 0.000000 - . gene_id "ABHD12"; transcript_id "NM_001042472:uc002wus.2";
+chr20 hg19_knownGene CDS 25303961 25304066 0.000000 - 2 gene_id "ABHD12"; transcript_id "NM_001042472:uc002wus.2";
+chr20 hg19_knownGene exon 25303961 25304066 0.000000 - . gene_id "ABHD12"; transcript_id "NM_001042472:uc002wus.2";
+chr20 hg19_knownGene CDS 25319863 25319987 0.000000 - 1 gene_id "ABHD12"; transcript_id "NM_001042472:uc002wus.2";
+chr20 hg19_knownGene exon 25319863 25319987 0.000000 - . gene_id "ABHD12"; transcript_id "NM_001042472:uc002wus.2";
+chr20 hg19_knownGene CDS 25371149 25371339 0.000000 - 0 gene_id "ABHD12"; transcript_id "NM_001042472:uc002wus.2";
+chr20 hg19_knownGene exon 25371149 25371618 0.000000 - . gene_id "ABHD12"; transcript_id "NM_001042472:uc002wus.2";
+chr20 hg19_knownGene CDS 25388457 25388531 0.000000 + 0 gene_id "GINS1"; transcript_id "NM_021067:uc002wuv.1";
+chr20 hg19_knownGene exon 25388323 25388531 0.000000 + . gene_id "GINS1"; transcript_id "NM_021067:uc002wuv.1";
+chr20 hg19_knownGene CDS 25394426 25394490 0.000000 + 0 gene_id "GINS1"; transcript_id "NM_021067:uc002wuv.1";
+chr20 hg19_knownGene exon 25394426 25394490 0.000000 + . gene_id "GINS1"; transcript_id "NM_021067:uc002wuv.1";
+chr20 hg19_knownGene CDS 25397740 25397838 0.000000 + 1 gene_id "GINS1"; transcript_id "NM_021067:uc002wuv.1";
+chr20 hg19_knownGene exon 25397740 25397838 0.000000 + . gene_id "GINS1"; transcript_id "NM_021067:uc002wuv.1";
+chr20 hg19_knownGene CDS 25398741 25398831 0.000000 + 1 gene_id "GINS1"; transcript_id "NM_021067:uc002wuv.1";
+chr20 hg19_knownGene exon 25398741 25398831 0.000000 + . gene_id "GINS1"; transcript_id "NM_021067:uc002wuv.1";
+chr20 hg19_knownGene CDS 25405847 25405963 0.000000 + 0 gene_id "GINS1"; transcript_id "NM_021067:uc002wuv.1";
+chr20 hg19_knownGene exon 25405847 25405963 0.000000 + . gene_id "GINS1"; transcript_id "NM_021067:uc002wuv.1";
+chr20 hg19_knownGene CDS 25422338 25422412 0.000000 + 0 gene_id "GINS1"; transcript_id "NM_021067:uc002wuv.1";
+chr20 hg19_knownGene exon 25422338 25422412 0.000000 + . gene_id "GINS1"; transcript_id "NM_021067:uc002wuv.1";
+chr20 hg19_knownGene CDS 25426559 25426624 0.000000 + 0 gene_id "GINS1"; transcript_id "NM_021067:uc002wuv.1";
+chr20 hg19_knownGene exon 25426559 25429191 0.000000 + . gene_id "GINS1"; transcript_id "NM_021067:uc002wuv.1";
+chr20 hg19_knownGene exon 25388323 25388531 0.000000 + . gene_id "GINS1"; transcript_id "AK294593:uc010zte.1";
+chr20 hg19_knownGene exon 25394426 25394490 0.000000 + . gene_id "GINS1"; transcript_id "AK294593:uc010zte.1";
+chr20 hg19_knownGene exon 25397740 25397838 0.000000 + . gene_id "GINS1"; transcript_id "AK294593:uc010zte.1";
+chr20 hg19_knownGene exon 25398741 25398831 0.000000 + . gene_id "GINS1"; transcript_id "AK294593:uc010zte.1";
+chr20 hg19_knownGene exon 25400320 25400441 0.000000 + . gene_id "GINS1"; transcript_id "AK294593:uc010zte.1";
+chr20 hg19_knownGene exon 25405847 25405963 0.000000 + . gene_id "GINS1"; transcript_id "AK294593:uc010zte.1";
+chr20 hg19_knownGene exon 25422338 25422412 0.000000 + . gene_id "GINS1"; transcript_id "AK294593:uc010zte.1";
+chr20 hg19_knownGene exon 25426559 25429191 0.000000 + . gene_id "GINS1"; transcript_id "AK294593:uc010zte.1";
+chr20 hg19_knownGene CDS 25434090 25434278 0.000000 - 0 gene_id "NINL"; transcript_id "AK021854:uc002wuw.1";
+chr20 hg19_knownGene exon 25433338 25434278 0.000000 - . gene_id "NINL"; transcript_id "AK021854:uc002wuw.1";
+chr20 hg19_knownGene CDS 25436309 25436422 0.000000 - 0 gene_id "NINL"; transcript_id "AK021854:uc002wuw.1";
+chr20 hg19_knownGene exon 25436309 25436422 0.000000 - . gene_id "NINL"; transcript_id "AK021854:uc002wuw.1";
+chr20 hg19_knownGene CDS 25439019 25439234 0.000000 - 0 gene_id "NINL"; transcript_id "AK021854:uc002wuw.1";
+chr20 hg19_knownGene exon 25439019 25439612 0.000000 - . gene_id "NINL"; transcript_id "AK021854:uc002wuw.1";
+chr20 hg19_knownGene CDS 25471990 25472161 0.000000 - 1 gene_id "NINL"; transcript_id "AK293991:uc010ztf.1";
+chr20 hg19_knownGene exon 25471987 25472161 0.000000 - . gene_id "NINL"; transcript_id "AK293991:uc010ztf.1";
+chr20 hg19_knownGene CDS 25477299 25477439 0.000000 - 1 gene_id "NINL"; transcript_id "AK293991:uc010ztf.1";
+chr20 hg19_knownGene exon 25477299 25477439 0.000000 - . gene_id "NINL"; transcript_id "AK293991:uc010ztf.1";
+chr20 hg19_knownGene CDS 25478846 25478982 0.000000 - 0 gene_id "NINL"; transcript_id "AK293991:uc010ztf.1";
+chr20 hg19_knownGene exon 25478846 25478982 0.000000 - . gene_id "NINL"; transcript_id "AK293991:uc010ztf.1";
+chr20 hg19_knownGene CDS 25481476 25481646 0.000000 - 0 gene_id "NINL"; transcript_id "AK293991:uc010ztf.1";
+chr20 hg19_knownGene exon 25481476 25481646 0.000000 - . gene_id "NINL"; transcript_id "AK293991:uc010ztf.1";
+chr20 hg19_knownGene CDS 25484588 25484740 0.000000 - 0 gene_id "NINL"; transcript_id "AK293991:uc010ztf.1";
+chr20 hg19_knownGene exon 25484588 25484740 0.000000 - . gene_id "NINL"; transcript_id "AK293991:uc010ztf.1";
+chr20 hg19_knownGene CDS 25485524 25485714 0.000000 - 2 gene_id "NINL"; transcript_id "AK293991:uc010ztf.1";
+chr20 hg19_knownGene exon 25485524 25485714 0.000000 - . gene_id "NINL"; transcript_id "AK293991:uc010ztf.1";
+chr20 hg19_knownGene CDS 25491310 25491376 0.000000 - 0 gene_id "NINL"; transcript_id "AK293991:uc010ztf.1";
+chr20 hg19_knownGene exon 25491310 25491376 0.000000 - . gene_id "NINL"; transcript_id "AK293991:uc010ztf.1";
+chr20 hg19_knownGene CDS 25493470 25493642 0.000000 - 2 gene_id "NINL"; transcript_id "AK293991:uc010ztf.1";
+chr20 hg19_knownGene exon 25493470 25493642 0.000000 - . gene_id "NINL"; transcript_id "AK293991:uc010ztf.1";
+chr20 hg19_knownGene CDS 25498389 25498485 0.000000 - 0 gene_id "NINL"; transcript_id "AK293991:uc010ztf.1";
+chr20 hg19_knownGene exon 25498389 25498485 0.000000 - . gene_id "NINL"; transcript_id "AK293991:uc010ztf.1";
+chr20 hg19_knownGene CDS 25507044 25507234 0.000000 - 2 gene_id "NINL"; transcript_id "AK293991:uc010ztf.1";
+chr20 hg19_knownGene exon 25507044 25507234 0.000000 - . gene_id "NINL"; transcript_id "AK293991:uc010ztf.1";
+chr20 hg19_knownGene CDS 25520658 25520694 0.000000 - 0 gene_id "NINL"; transcript_id "AK293991:uc010ztf.1";
+chr20 hg19_knownGene exon 25520658 25521018 0.000000 - . gene_id "NINL"; transcript_id "AK293991:uc010ztf.1";
+chr20 hg19_knownGene CDS 25434090 25434278 0.000000 - 0 gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene exon 25433338 25434278 0.000000 - . gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene CDS 25436309 25436422 0.000000 - 0 gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene exon 25436309 25436422 0.000000 - . gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene CDS 25439019 25439165 0.000000 - 0 gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene exon 25439019 25439165 0.000000 - . gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene CDS 25442158 25442271 0.000000 - 0 gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene exon 25442158 25442271 0.000000 - . gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene CDS 25443019 25443177 0.000000 - 0 gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene exon 25443019 25443177 0.000000 - . gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene CDS 25448025 25448094 0.000000 - 1 gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene exon 25448025 25448094 0.000000 - . gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene CDS 25450627 25450731 0.000000 - 1 gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene exon 25450627 25450731 0.000000 - . gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene CDS 25456679 25457725 0.000000 - 1 gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene exon 25456679 25457725 0.000000 - . gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene CDS 25459559 25459842 0.000000 - 0 gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene exon 25459559 25459842 0.000000 - . gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene CDS 25460797 25460903 0.000000 - 2 gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene exon 25460797 25460903 0.000000 - . gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene CDS 25462604 25462736 0.000000 - 0 gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene exon 25462604 25462736 0.000000 - . gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene CDS 25469880 25469960 0.000000 - 0 gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene exon 25469880 25469960 0.000000 - . gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene CDS 25470511 25470621 0.000000 - 0 gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene exon 25470511 25470621 0.000000 - . gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene CDS 25471987 25472161 0.000000 - 1 gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene exon 25471987 25472161 0.000000 - . gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene CDS 25477299 25477439 0.000000 - 1 gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene exon 25477299 25477439 0.000000 - . gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene CDS 25478846 25478982 0.000000 - 0 gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene exon 25478846 25478982 0.000000 - . gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene CDS 25481476 25481646 0.000000 - 0 gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene exon 25481476 25481646 0.000000 - . gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene CDS 25484588 25484740 0.000000 - 0 gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene exon 25484588 25484740 0.000000 - . gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene CDS 25485524 25485714 0.000000 - 2 gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene exon 25485524 25485714 0.000000 - . gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene CDS 25491310 25491376 0.000000 - 0 gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene exon 25491310 25491376 0.000000 - . gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene CDS 25493470 25493642 0.000000 - 2 gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene exon 25493470 25493642 0.000000 - . gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene CDS 25498389 25498485 0.000000 - 0 gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene exon 25498389 25498485 0.000000 - . gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene CDS 25507044 25507223 0.000000 - 0 gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene exon 25507044 25507234 0.000000 - . gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene exon 25566091 25566153 0.000000 - . gene_id "NINL"; transcript_id "NM_025176:uc002wux.1";
+chr20 hg19_knownGene CDS 25434090 25434278 0.000000 - 0 gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene exon 25433338 25434278 0.000000 - . gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene CDS 25436309 25436422 0.000000 - 0 gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene exon 25436309 25436422 0.000000 - . gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene CDS 25439019 25439165 0.000000 - 0 gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene exon 25439019 25439165 0.000000 - . gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene CDS 25442158 25442271 0.000000 - 0 gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene exon 25442158 25442271 0.000000 - . gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene CDS 25443019 25443177 0.000000 - 0 gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene exon 25443019 25443177 0.000000 - . gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene CDS 25448025 25448094 0.000000 - 1 gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene exon 25448025 25448094 0.000000 - . gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene CDS 25450627 25450731 0.000000 - 1 gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene exon 25450627 25450731 0.000000 - . gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene CDS 25459559 25459842 0.000000 - 0 gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene exon 25459559 25459842 0.000000 - . gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene CDS 25460797 25460903 0.000000 - 2 gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene exon 25460797 25460903 0.000000 - . gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene CDS 25462604 25462736 0.000000 - 0 gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene exon 25462604 25462736 0.000000 - . gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene CDS 25469880 25469960 0.000000 - 0 gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene exon 25469880 25469960 0.000000 - . gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene CDS 25470511 25470621 0.000000 - 0 gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene exon 25470511 25470621 0.000000 - . gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene CDS 25471987 25472161 0.000000 - 1 gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene exon 25471987 25472161 0.000000 - . gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene CDS 25477299 25477439 0.000000 - 1 gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene exon 25477299 25477439 0.000000 - . gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene CDS 25478846 25478982 0.000000 - 0 gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene exon 25478846 25478982 0.000000 - . gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene CDS 25481476 25481646 0.000000 - 0 gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene exon 25481476 25481646 0.000000 - . gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene CDS 25484588 25484740 0.000000 - 0 gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene exon 25484588 25484740 0.000000 - . gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene CDS 25485524 25485714 0.000000 - 2 gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene exon 25485524 25485714 0.000000 - . gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene CDS 25491310 25491376 0.000000 - 0 gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene exon 25491310 25491376 0.000000 - . gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene CDS 25493470 25493642 0.000000 - 2 gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene exon 25493470 25493642 0.000000 - . gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene CDS 25498389 25498485 0.000000 - 0 gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene exon 25498389 25498485 0.000000 - . gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene CDS 25507044 25507223 0.000000 - 0 gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene exon 25507044 25507234 0.000000 - . gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene exon 25566091 25566153 0.000000 - . gene_id "NINL"; transcript_id "EU718622:uc010gdn.1";
+chr20 hg19_knownGene CDS 25459501 25459842 0.000000 - 0 gene_id "NINL"; transcript_id "AK309298:uc010gdo.1";
+chr20 hg19_knownGene exon 25458605 25459842 0.000000 - . gene_id "NINL"; transcript_id "AK309298:uc010gdo.1";
+chr20 hg19_knownGene CDS 25460797 25460903 0.000000 - 2 gene_id "NINL"; transcript_id "AK309298:uc010gdo.1";
+chr20 hg19_knownGene exon 25460797 25460903 0.000000 - . gene_id "NINL"; transcript_id "AK309298:uc010gdo.1";
+chr20 hg19_knownGene CDS 25462604 25462736 0.000000 - 0 gene_id "NINL"; transcript_id "AK309298:uc010gdo.1";
+chr20 hg19_knownGene exon 25462604 25462736 0.000000 - . gene_id "NINL"; transcript_id "AK309298:uc010gdo.1";
+chr20 hg19_knownGene CDS 25469880 25469960 0.000000 - 0 gene_id "NINL"; transcript_id "AK309298:uc010gdo.1";
+chr20 hg19_knownGene exon 25469880 25469960 0.000000 - . gene_id "NINL"; transcript_id "AK309298:uc010gdo.1";
+chr20 hg19_knownGene CDS 25470511 25470621 0.000000 - 0 gene_id "NINL"; transcript_id "AK309298:uc010gdo.1";
+chr20 hg19_knownGene exon 25470511 25470621 0.000000 - . gene_id "NINL"; transcript_id "AK309298:uc010gdo.1";
+chr20 hg19_knownGene CDS 25471987 25472161 0.000000 - 1 gene_id "NINL"; transcript_id "AK309298:uc010gdo.1";
+chr20 hg19_knownGene exon 25471987 25472161 0.000000 - . gene_id "NINL"; transcript_id "AK309298:uc010gdo.1";
+chr20 hg19_knownGene CDS 25477299 25477439 0.000000 - 1 gene_id "NINL"; transcript_id "AK309298:uc010gdo.1";
+chr20 hg19_knownGene exon 25477299 25477439 0.000000 - . gene_id "NINL"; transcript_id "AK309298:uc010gdo.1";
+chr20 hg19_knownGene CDS 25478846 25478982 0.000000 - 0 gene_id "NINL"; transcript_id "AK309298:uc010gdo.1";
+chr20 hg19_knownGene exon 25478846 25478982 0.000000 - . gene_id "NINL"; transcript_id "AK309298:uc010gdo.1";
+chr20 hg19_knownGene CDS 25484588 25484740 0.000000 - 0 gene_id "NINL"; transcript_id "AK309298:uc010gdo.1";
+chr20 hg19_knownGene exon 25484588 25484740 0.000000 - . gene_id "NINL"; transcript_id "AK309298:uc010gdo.1";
+chr20 hg19_knownGene CDS 25485524 25485714 0.000000 - 2 gene_id "NINL"; transcript_id "AK309298:uc010gdo.1";
+chr20 hg19_knownGene exon 25485524 25485714 0.000000 - . gene_id "NINL"; transcript_id "AK309298:uc010gdo.1";
+chr20 hg19_knownGene CDS 25490306 25490342 0.000000 - 0 gene_id "NINL"; transcript_id "AK309298:uc010gdo.1";
+chr20 hg19_knownGene exon 25490306 25490425 0.000000 - . gene_id "NINL"; transcript_id "AK309298:uc010gdo.1";
+chr20 hg19_knownGene exon 25491310 25491376 0.000000 - . gene_id "NINL"; transcript_id "AK309298:uc010gdo.1";
+chr20 hg19_knownGene exon 25493470 25493642 0.000000 - . gene_id "NINL"; transcript_id "AK309298:uc010gdo.1";
+chr20 hg19_knownGene exon 25498389 25498485 0.000000 - . gene_id "NINL"; transcript_id "AK309298:uc010gdo.1";
+chr20 hg19_knownGene exon 25507044 25507234 0.000000 - . gene_id "NINL"; transcript_id "AK309298:uc010gdo.1";
+chr20 hg19_knownGene exon 25566091 25566153 0.000000 - . gene_id "NINL"; transcript_id "AK309298:uc010gdo.1";
+chr20 hg19_knownGene CDS 25596564 25597217 0.000000 - 0 gene_id "NANP"; transcript_id "NM_152667:uc002wuy.3";
+chr20 hg19_knownGene exon 25593573 25597217 0.000000 - . gene_id "NANP"; transcript_id "NM_152667:uc002wuy.3";
+chr20 hg19_knownGene CDS 25604495 25604584 0.000000 - 0 gene_id "NANP"; transcript_id "NM_152667:uc002wuy.3";
+chr20 hg19_knownGene exon 25604495 25604648 0.000000 - . gene_id "NANP"; transcript_id "NM_152667:uc002wuy.3";
+chr20 hg19_knownGene exon 25604681 25604771 0.000000 + . gene_id "ZNF337"; transcript_id "BC034569:uc002wuz.3";
+chr20 hg19_knownGene exon 25612794 25612924 0.000000 + . gene_id "ZNF337"; transcript_id "BC034569:uc002wuz.3";
+chr20 hg19_knownGene exon 25614685 25614806 0.000000 + . gene_id "ZNF337"; transcript_id "BC034569:uc002wuz.3";
+chr20 hg19_knownGene exon 25615365 25615463 0.000000 + . gene_id "ZNF337"; transcript_id "BC034569:uc002wuz.3";
+chr20 hg19_knownGene exon 25654488 25658708 0.000000 + . gene_id "ZNF337"; transcript_id "BC034569:uc002wuz.3";
+chr20 hg19_knownGene CDS 25655671 25657673 0.000000 - 2 gene_id "ZNF337"; transcript_id "AK125455:uc002wva.3";
+chr20 hg19_knownGene exon 25654851 25657673 0.000000 - . gene_id "ZNF337"; transcript_id "AK125455:uc002wva.3";
+chr20 hg19_knownGene CDS 25666203 25666298 0.000000 - 2 gene_id "ZNF337"; transcript_id "AK125455:uc002wva.3";
+chr20 hg19_knownGene exon 25666203 25666298 0.000000 - . gene_id "ZNF337"; transcript_id "AK125455:uc002wva.3";
+chr20 hg19_knownGene CDS 25666632 25666758 0.000000 - 0 gene_id "ZNF337"; transcript_id "AK125455:uc002wva.3";
+chr20 hg19_knownGene exon 25666632 25666758 0.000000 - . gene_id "ZNF337"; transcript_id "AK125455:uc002wva.3";
+chr20 hg19_knownGene CDS 25667027 25667053 0.000000 - 0 gene_id "ZNF337"; transcript_id "AK125455:uc002wva.3";
+chr20 hg19_knownGene exon 25667027 25667575 0.000000 - . gene_id "ZNF337"; transcript_id "AK125455:uc002wva.3";
+chr20 hg19_knownGene CDS 25655671 25657673 0.000000 - 2 gene_id "ZNF337"; transcript_id "AK299811:uc010ztg.2";
+chr20 hg19_knownGene exon 25654851 25657673 0.000000 - . gene_id "ZNF337"; transcript_id "AK299811:uc010ztg.2";
+chr20 hg19_knownGene CDS 25666632 25666758 0.000000 - 0 gene_id "ZNF337"; transcript_id "AK299811:uc010ztg.2";
+chr20 hg19_knownGene exon 25666632 25666758 0.000000 - . gene_id "ZNF337"; transcript_id "AK299811:uc010ztg.2";
+chr20 hg19_knownGene CDS 25667027 25667053 0.000000 - 0 gene_id "ZNF337"; transcript_id "AK299811:uc010ztg.2";
+chr20 hg19_knownGene exon 25667027 25667575 0.000000 - . gene_id "ZNF337"; transcript_id "AK299811:uc010ztg.2";
+chr20 hg19_knownGene CDS 25655671 25657673 0.000000 - 2 gene_id "ZNF337"; transcript_id "NM_015655:uc002wvc.3";
+chr20 hg19_knownGene exon 25654851 25657673 0.000000 - . gene_id "ZNF337"; transcript_id "NM_015655:uc002wvc.3";
+chr20 hg19_knownGene CDS 25666203 25666298 0.000000 - 2 gene_id "ZNF337"; transcript_id "NM_015655:uc002wvc.3";
+chr20 hg19_knownGene exon 25666203 25666298 0.000000 - . gene_id "ZNF337"; transcript_id "NM_015655:uc002wvc.3";
+chr20 hg19_knownGene CDS 25666632 25666758 0.000000 - 0 gene_id "ZNF337"; transcript_id "NM_015655:uc002wvc.3";
+chr20 hg19_knownGene exon 25666632 25666758 0.000000 - . gene_id "ZNF337"; transcript_id "NM_015655:uc002wvc.3";
+chr20 hg19_knownGene CDS 25667027 25667053 0.000000 - 0 gene_id "ZNF337"; transcript_id "NM_015655:uc002wvc.3";
+chr20 hg19_knownGene exon 25667027 25667102 0.000000 - . gene_id "ZNF337"; transcript_id "NM_015655:uc002wvc.3";
+chr20 hg19_knownGene exon 25677395 25677469 0.000000 - . gene_id "ZNF337"; transcript_id "NM_015655:uc002wvc.3";
+chr20 hg19_knownGene exon 25744102 25744340 0.000000 - . gene_id "FAM182B"; transcript_id "NR_027061:uc010zth.1";
+chr20 hg19_knownGene exon 25745530 25745637 0.000000 - . gene_id "FAM182B"; transcript_id "NR_027061:uc010zth.1";
+chr20 hg19_knownGene exon 25755746 25755948 0.000000 - . gene_id "FAM182B"; transcript_id "NR_027061:uc010zth.1";
+chr20 hg19_knownGene exon 25767381 25767624 0.000000 - . gene_id "FAM182B"; transcript_id "NR_027061:uc010zth.1";
+chr20 hg19_knownGene exon 25776681 25776878 0.000000 - . gene_id "FAM182B"; transcript_id "NR_027061:uc010zth.1";
+chr20 hg19_knownGene exon 25750234 25754795 0.000000 - . gene_id "FAM182B"; transcript_id "NR_026714:uc010zti.2";
+chr20 hg19_knownGene exon 25755746 25755948 0.000000 - . gene_id "FAM182B"; transcript_id "NR_026714:uc010zti.2";
+chr20 hg19_knownGene exon 25767381 25767624 0.000000 - . gene_id "FAM182B"; transcript_id "NR_026714:uc010zti.2";
+chr20 hg19_knownGene exon 25781456 25781927 0.000000 - . gene_id "FAM182B"; transcript_id "NR_026714:uc010zti.2";
+chr20 hg19_knownGene exon 25754654 25755948 0.000000 - . gene_id "FAM182B"; transcript_id "AL096727:uc002wve.3";
+chr20 hg19_knownGene exon 25829341 25829584 0.000000 - . gene_id "FAM182B"; transcript_id "AL096727:uc002wve.3";
+chr20 hg19_knownGene exon 25843696 25843837 0.000000 - . gene_id "FAM182B"; transcript_id "AL096727:uc002wve.3";
+chr20 hg19_knownGene exon 25744102 25744340 0.000000 - . gene_id "FAM182B"; transcript_id "BC042812:uc002wvd.1";
+chr20 hg19_knownGene exon 25745530 25745637 0.000000 - . gene_id "FAM182B"; transcript_id "BC042812:uc002wvd.1";
+chr20 hg19_knownGene exon 25755746 25755948 0.000000 - . gene_id "FAM182B"; transcript_id "BC042812:uc002wvd.1";
+chr20 hg19_knownGene exon 25829341 25829584 0.000000 - . gene_id "FAM182B"; transcript_id "BC042812:uc002wvd.1";
+chr20 hg19_knownGene exon 25848589 25848786 0.000000 - . gene_id "FAM182B"; transcript_id "BC042812:uc002wvd.1";
+chr20 hg19_knownGene exon 25936453 25936505 0.000000 + . gene_id "BC052952"; transcript_id "BC052952:uc002wvf.3";
+chr20 hg19_knownGene exon 25936722 25936846 0.000000 + . gene_id "BC052952"; transcript_id "BC052952:uc002wvf.3";
+chr20 hg19_knownGene exon 25943698 25943832 0.000000 + . gene_id "BC052952"; transcript_id "BC052952:uc002wvf.3";
+chr20 hg19_knownGene exon 25945639 25949924 0.000000 + . gene_id "BC052952"; transcript_id "BC052952:uc002wvf.3";
+chr20 hg19_knownGene exon 25990435 25990525 0.000000 + . gene_id "LOC100134868"; transcript_id "NR_004846:uc002wvh.4";
+chr20 hg19_knownGene exon 25999468 25999548 0.000000 + . gene_id "LOC100134868"; transcript_id "NR_004846:uc002wvh.4";
+chr20 hg19_knownGene exon 25999712 25999838 0.000000 + . gene_id "LOC100134868"; transcript_id "NR_004846:uc002wvh.4";
+chr20 hg19_knownGene exon 26000465 26000560 0.000000 + . gene_id "LOC100134868"; transcript_id "NR_004846:uc002wvh.4";
+chr20 hg19_knownGene exon 26001272 26002430 0.000000 + . gene_id "LOC100134868"; transcript_id "NR_004846:uc002wvh.4";
+chr20 hg19_knownGene exon 25990435 25990525 0.000000 + . gene_id "LOC100134868"; transcript_id "BC038849:uc002wvg.4";
+chr20 hg19_knownGene exon 25995486 25995603 0.000000 + . gene_id "LOC100134868"; transcript_id "BC038849:uc002wvg.4";
+chr20 hg19_knownGene exon 25999468 25999548 0.000000 + . gene_id "LOC100134868"; transcript_id "BC038849:uc002wvg.4";
+chr20 hg19_knownGene exon 25999712 25999838 0.000000 + . gene_id "LOC100134868"; transcript_id "BC038849:uc002wvg.4";
+chr20 hg19_knownGene exon 26000465 26000560 0.000000 + . gene_id "LOC100134868"; transcript_id "BC038849:uc002wvg.4";
+chr20 hg19_knownGene exon 26001272 26002430 0.000000 + . gene_id "LOC100134868"; transcript_id "BC038849:uc002wvg.4";
+chr20 hg19_knownGene exon 26035250 26035721 0.000000 + . gene_id "FAM182A"; transcript_id "NR_026713:uc010gdq.3";
+chr20 hg19_knownGene exon 26049553 26049840 0.000000 + . gene_id "FAM182A"; transcript_id "NR_026713:uc010gdq.3";
+chr20 hg19_knownGene exon 26054406 26054505 0.000000 + . gene_id "FAM182A"; transcript_id "NR_026713:uc010gdq.3";
+chr20 hg19_knownGene exon 26061800 26062026 0.000000 + . gene_id "FAM182A"; transcript_id "NR_026713:uc010gdq.3";
+chr20 hg19_knownGene exon 26063530 26067553 0.000000 + . gene_id "FAM182A"; transcript_id "NR_026713:uc010gdq.3";
+chr20 hg19_knownGene CDS 26084110 26084307 0.000000 - 0 gene_id "NCOR1P1"; transcript_id "NR_003678:uc002wvj.4";
+chr20 hg19_knownGene exon 26084052 26084307 0.000000 - . gene_id "NCOR1P1"; transcript_id "NR_003678:uc002wvj.4";
+chr20 hg19_knownGene CDS 26094515 26094622 0.000000 - 0 gene_id "NCOR1P1"; transcript_id "NR_003678:uc002wvj.4";
+chr20 hg19_knownGene exon 26094515 26094677 0.000000 - . gene_id "NCOR1P1"; transcript_id "NR_003678:uc002wvj.4";
+chr20 hg19_knownGene exon 26188822 26188914 0.000000 - . gene_id "MIR663A"; transcript_id "NR_030386:uc021wbn.1";
+chr20 hg19_knownGene exon 26167655 26168473 0.000000 - . gene_id "LOC284801"; transcript_id "NR_040095:uc002wvk.3";
+chr20 hg19_knownGene exon 26172429 26172536 0.000000 - . gene_id "LOC284801"; transcript_id "NR_040095:uc002wvk.3";
+chr20 hg19_knownGene exon 26172769 26172868 0.000000 - . gene_id "LOC284801"; transcript_id "NR_040095:uc002wvk.3";
+chr20 hg19_knownGene exon 26180085 26180159 0.000000 - . gene_id "LOC284801"; transcript_id "NR_040095:uc002wvk.3";
+chr20 hg19_knownGene exon 26189759 26189869 0.000000 - . gene_id "LOC284801"; transcript_id "NR_040095:uc002wvk.3";
+chr20 hg19_knownGene exon 29543691 29543802 0.000000 - . gene_id "Y_RNA"; transcript_id ":uc021wbo.1";
+chr20 hg19_knownGene exon 29612306 29612397 0.000000 + . gene_id "FRG1B"; transcript_id "BC062743:uc010gdr.1";
+chr20 hg19_knownGene exon 29614261 29614327 0.000000 + . gene_id "FRG1B"; transcript_id "BC062743:uc010gdr.1";
+chr20 hg19_knownGene exon 29623129 29623254 0.000000 + . gene_id "FRG1B"; transcript_id "BC062743:uc010gdr.1";
+chr20 hg19_knownGene exon 29625873 29625984 0.000000 + . gene_id "FRG1B"; transcript_id "BC062743:uc010gdr.1";
+chr20 hg19_knownGene exon 29628227 29628331 0.000000 + . gene_id "FRG1B"; transcript_id "BC062743:uc010gdr.1";
+chr20 hg19_knownGene exon 29631538 29631629 0.000000 + . gene_id "FRG1B"; transcript_id "BC062743:uc010gdr.1";
+chr20 hg19_knownGene exon 29611879 29612101 0.000000 + . gene_id "FRG1B"; transcript_id "NR_003579:uc002wvm.1";
+chr20 hg19_knownGene exon 29614261 29614327 0.000000 + . gene_id "FRG1B"; transcript_id "NR_003579:uc002wvm.1";
+chr20 hg19_knownGene exon 29623129 29623254 0.000000 + . gene_id "FRG1B"; transcript_id "NR_003579:uc002wvm.1";
+chr20 hg19_knownGene exon 29625873 29625984 0.000000 + . gene_id "FRG1B"; transcript_id "NR_003579:uc002wvm.1";
+chr20 hg19_knownGene exon 29628227 29628331 0.000000 + . gene_id "FRG1B"; transcript_id "NR_003579:uc002wvm.1";
+chr20 hg19_knownGene exon 29631538 29631629 0.000000 + . gene_id "FRG1B"; transcript_id "NR_003579:uc002wvm.1";
+chr20 hg19_knownGene exon 29632611 29632721 0.000000 + . gene_id "FRG1B"; transcript_id "NR_003579:uc002wvm.1";
+chr20 hg19_knownGene exon 29633898 29634007 0.000000 + . gene_id "FRG1B"; transcript_id "NR_003579:uc002wvm.1";
+chr20 hg19_knownGene exon 29637584 29638138 0.000000 - . gene_id "MLLT10P1"; transcript_id "NR_045115:uc021wbp.1";
+chr20 hg19_knownGene exon 29611879 29612101 0.000000 + . gene_id "FRG1B"; transcript_id "BC095491:uc010ztj.1";
+chr20 hg19_knownGene exon 29614261 29614327 0.000000 + . gene_id "FRG1B"; transcript_id "BC095491:uc010ztj.1";
+chr20 hg19_knownGene exon 29623129 29623254 0.000000 + . gene_id "FRG1B"; transcript_id "BC095491:uc010ztj.1";
+chr20 hg19_knownGene exon 29625873 29625984 0.000000 + . gene_id "FRG1B"; transcript_id "BC095491:uc010ztj.1";
+chr20 hg19_knownGene exon 29628227 29628331 0.000000 + . gene_id "FRG1B"; transcript_id "BC095491:uc010ztj.1";
+chr20 hg19_knownGene exon 29631538 29631629 0.000000 + . gene_id "FRG1B"; transcript_id "BC095491:uc010ztj.1";
+chr20 hg19_knownGene exon 29632611 29632721 0.000000 + . gene_id "FRG1B"; transcript_id "BC095491:uc010ztj.1";
+chr20 hg19_knownGene exon 29652124 29653908 0.000000 + . gene_id "FRG1B"; transcript_id "BC095491:uc010ztj.1";
+chr20 hg19_knownGene exon 29614261 29614327 0.000000 + . gene_id "FRG1B"; transcript_id "AK307061:uc010ztk.1";
+chr20 hg19_knownGene CDS 29628233 29628331 0.000000 + 0 gene_id "FRG1B"; transcript_id "AK307061:uc010ztk.1";
+chr20 hg19_knownGene exon 29628227 29628331 0.000000 + . gene_id "FRG1B"; transcript_id "AK307061:uc010ztk.1";
+chr20 hg19_knownGene CDS 29631538 29631629 0.000000 + 0 gene_id "FRG1B"; transcript_id "AK307061:uc010ztk.1";
+chr20 hg19_knownGene exon 29631538 29631629 0.000000 + . gene_id "FRG1B"; transcript_id "AK307061:uc010ztk.1";
+chr20 hg19_knownGene CDS 29632611 29632721 0.000000 + 1 gene_id "FRG1B"; transcript_id "AK307061:uc010ztk.1";
+chr20 hg19_knownGene exon 29632611 29632721 0.000000 + . gene_id "FRG1B"; transcript_id "AK307061:uc010ztk.1";
+chr20 hg19_knownGene CDS 29652124 29652151 0.000000 + 1 gene_id "FRG1B"; transcript_id "AK307061:uc010ztk.1";
+chr20 hg19_knownGene exon 29652124 29653908 0.000000 + . gene_id "FRG1B"; transcript_id "AK307061:uc010ztk.1";
+chr20 hg19_knownGene CDS 29624067 29624092 0.000000 + 0 gene_id "FRG1B"; transcript_id "AK057099:uc010ztl.1";
+chr20 hg19_knownGene exon 29624035 29624092 0.000000 + . gene_id "FRG1B"; transcript_id "AK057099:uc010ztl.1";
+chr20 hg19_knownGene CDS 29625873 29625984 0.000000 + 1 gene_id "FRG1B"; transcript_id "AK057099:uc010ztl.1";
+chr20 hg19_knownGene exon 29625873 29625984 0.000000 + . gene_id "FRG1B"; transcript_id "AK057099:uc010ztl.1";
+chr20 hg19_knownGene CDS 29628227 29628331 0.000000 + 0 gene_id "FRG1B"; transcript_id "AK057099:uc010ztl.1";
+chr20 hg19_knownGene exon 29628227 29628331 0.000000 + . gene_id "FRG1B"; transcript_id "AK057099:uc010ztl.1";
+chr20 hg19_knownGene CDS 29652124 29652267 0.000000 + 0 gene_id "FRG1B"; transcript_id "AK057099:uc010ztl.1";
+chr20 hg19_knownGene exon 29652124 29653908 0.000000 + . gene_id "FRG1B"; transcript_id "AK057099:uc010ztl.1";
+chr20 hg19_knownGene CDS 29845467 29845560 0.000000 + 0 gene_id "DEFB115"; transcript_id "NM_001037730:uc002wvp.1";
+chr20 hg19_knownGene exon 29845467 29845560 0.000000 + . gene_id "DEFB115"; transcript_id "NM_001037730:uc002wvp.1";
+chr20 hg19_knownGene CDS 29847263 29847432 0.000000 + 2 gene_id "DEFB115"; transcript_id "NM_001037730:uc002wvp.1";
+chr20 hg19_knownGene exon 29847263 29847435 0.000000 + . gene_id "DEFB115"; transcript_id "NM_001037730:uc002wvp.1";
+chr20 hg19_knownGene CDS 29891018 29891256 0.000000 - 2 gene_id "DEFB116"; transcript_id "NM_001037731:uc010ztm.2";
+chr20 hg19_knownGene exon 29891015 29891256 0.000000 - . gene_id "DEFB116"; transcript_id "NM_001037731:uc010ztm.2";
+chr20 hg19_knownGene CDS 29896322 29896388 0.000000 - 0 gene_id "DEFB116"; transcript_id "NM_001037731:uc010ztm.2";
+chr20 hg19_knownGene exon 29896322 29896388 0.000000 - . gene_id "DEFB116"; transcript_id "NM_001037731:uc010ztm.2";
+chr20 hg19_knownGene CDS 29956454 29956511 0.000000 + 0 gene_id "DEFB118"; transcript_id "NM_054112:uc002wvr.3";
+chr20 hg19_knownGene exon 29956421 29956511 0.000000 + . gene_id "DEFB118"; transcript_id "NM_054112:uc002wvr.3";
+chr20 hg19_knownGene CDS 29960660 29960970 0.000000 + 2 gene_id "DEFB118"; transcript_id "NM_054112:uc002wvr.3";
+chr20 hg19_knownGene exon 29960660 29961705 0.000000 + . gene_id "DEFB118"; transcript_id "NM_054112:uc002wvr.3";
+chr20 hg19_knownGene CDS 29965215 29965242 0.000000 - 1 gene_id "DEFB119"; transcript_id "NM_173460:uc002wvs.3";
+chr20 hg19_knownGene exon 29964967 29965242 0.000000 - . gene_id "DEFB119"; transcript_id "NM_173460:uc002wvs.3";
+chr20 hg19_knownGene CDS 29966155 29966194 0.000000 - 2 gene_id "DEFB119"; transcript_id "NM_173460:uc002wvs.3";
+chr20 hg19_knownGene exon 29966155 29966194 0.000000 - . gene_id "DEFB119"; transcript_id "NM_173460:uc002wvs.3";
+chr20 hg19_knownGene CDS 29978226 29978286 0.000000 - 0 gene_id "DEFB119"; transcript_id "NM_173460:uc002wvs.3";
+chr20 hg19_knownGene exon 29978226 29978406 0.000000 - . gene_id "DEFB119"; transcript_id "NM_173460:uc002wvs.3";
+chr20 hg19_knownGene CDS 29965052 29965242 0.000000 - 2 gene_id "DEFB119"; transcript_id "NM_153289:uc002wvt.3";
+chr20 hg19_knownGene exon 29964967 29965242 0.000000 - . gene_id "DEFB119"; transcript_id "NM_153289:uc002wvt.3";
+chr20 hg19_knownGene CDS 29978226 29978286 0.000000 - 0 gene_id "DEFB119"; transcript_id "NM_153289:uc002wvt.3";
+chr20 hg19_knownGene exon 29978226 29978406 0.000000 - . gene_id "DEFB119"; transcript_id "NM_153289:uc002wvt.3";
+chr20 hg19_knownGene CDS 29976831 29977033 0.000000 - 2 gene_id "DEFB119"; transcript_id "NM_153323:uc002wvu.1";
+chr20 hg19_knownGene exon 29976771 29977033 0.000000 - . gene_id "DEFB119"; transcript_id "NM_153323:uc002wvu.1";
+chr20 hg19_knownGene CDS 29978226 29978286 0.000000 - 0 gene_id "DEFB119"; transcript_id "NM_153323:uc002wvu.1";
+chr20 hg19_knownGene exon 29978226 29978406 0.000000 - . gene_id "DEFB119"; transcript_id "NM_153323:uc002wvu.1";
+chr20 hg19_knownGene CDS 29992719 29992888 0.000000 - 2 gene_id "DEFB121"; transcript_id "NM_001011878:uc002wvv.2";
+chr20 hg19_knownGene exon 29992648 29992888 0.000000 - . gene_id "DEFB121"; transcript_id "NM_001011878:uc002wvv.2";
+chr20 hg19_knownGene CDS 29993898 29993955 0.000000 - 0 gene_id "DEFB121"; transcript_id "NM_001011878:uc002wvv.2";
+chr20 hg19_knownGene exon 29993898 29994069 0.000000 - . gene_id "DEFB121"; transcript_id "NM_001011878:uc002wvv.2";
+chr20 hg19_knownGene CDS 29992719 29992888 0.000000 - 2 gene_id "DEFB121"; transcript_id "NM_001171832:uc021wbq.1";
+chr20 hg19_knownGene exon 29992648 29992888 0.000000 - . gene_id "DEFB121"; transcript_id "NM_001171832:uc021wbq.1";
+chr20 hg19_knownGene CDS 30000425 30000446 0.000000 - 0 gene_id "DEFB121"; transcript_id "NM_001171832:uc021wbq.1";
+chr20 hg19_knownGene exon 30000425 30000641 0.000000 - . gene_id "DEFB121"; transcript_id "NM_001171832:uc021wbq.1";
+chr20 hg19_knownGene exon 30009242 30009481 0.000000 + . gene_id "NR_002577"; transcript_id "NR_002577:uc002wvw.2";
+chr20 hg19_knownGene exon 30016346 30016438 0.000000 + . gene_id "NR_002577"; transcript_id "NR_002577:uc002wvw.2";
+chr20 hg19_knownGene exon 30016821 30016977 0.000000 + . gene_id "NR_002577"; transcript_id "NR_002577:uc002wvw.2";
+chr20 hg19_knownGene exon 30009242 30009481 0.000000 - . gene_id "DEFB122"; transcript_id "AY122474:uc002wvx.1";
+chr20 hg19_knownGene exon 30016346 30016438 0.000000 - . gene_id "DEFB122"; transcript_id "AY122474:uc002wvx.1";
+chr20 hg19_knownGene exon 30016821 30016983 0.000000 - . gene_id "DEFB122"; transcript_id "AY122474:uc002wvx.1";
+chr20 hg19_knownGene CDS 30028502 30028559 0.000000 + 0 gene_id "DEFB123"; transcript_id "NM_153324:uc002wvy.3";
+chr20 hg19_knownGene exon 30028411 30028559 0.000000 + . gene_id "DEFB123"; transcript_id "NM_153324:uc002wvy.3";
+chr20 hg19_knownGene CDS 30037832 30037974 0.000000 + 2 gene_id "DEFB123"; transcript_id "NM_153324:uc002wvy.3";
+chr20 hg19_knownGene exon 30037832 30038060 0.000000 + . gene_id "DEFB123"; transcript_id "NM_153324:uc002wvy.3";
+chr20 hg19_knownGene exon 30057269 30057864 0.000000 - . gene_id "BC016143"; transcript_id "BC016143:uc021wbr.1";
+chr20 hg19_knownGene CDS 30053312 30053466 0.000000 - 2 gene_id "DEFB124"; transcript_id "NM_001037500:uc002wvz.1";
+chr20 hg19_knownGene exon 30053309 30053466 0.000000 - . gene_id "DEFB124"; transcript_id "NM_001037500:uc002wvz.1";
+chr20 hg19_knownGene CDS 30060759 30060816 0.000000 - 0 gene_id "DEFB124"; transcript_id "NM_001037500:uc002wvz.1";
+chr20 hg19_knownGene exon 30060759 30060816 0.000000 - . gene_id "DEFB124"; transcript_id "NM_001037500:uc002wvz.1";
+chr20 hg19_knownGene exon 30063105 30063169 0.000000 + . gene_id "REM1"; transcript_id "NM_014012:uc002wwa.3";
+chr20 hg19_knownGene CDS 30064249 30064588 0.000000 + 0 gene_id "REM1"; transcript_id "NM_014012:uc002wwa.3";
+chr20 hg19_knownGene exon 30064030 30064588 0.000000 + . gene_id "REM1"; transcript_id "NM_014012:uc002wwa.3";
+chr20 hg19_knownGene CDS 30065631 30065713 0.000000 + 2 gene_id "REM1"; transcript_id "NM_014012:uc002wwa.3";
+chr20 hg19_knownGene exon 30065631 30065713 0.000000 + . gene_id "REM1"; transcript_id "NM_014012:uc002wwa.3";
+chr20 hg19_knownGene CDS 30070090 30070291 0.000000 + 0 gene_id "REM1"; transcript_id "NM_014012:uc002wwa.3";
+chr20 hg19_knownGene exon 30070090 30070291 0.000000 + . gene_id "REM1"; transcript_id "NM_014012:uc002wwa.3";
+chr20 hg19_knownGene CDS 30071962 30072230 0.000000 + 2 gene_id "REM1"; transcript_id "NM_014012:uc002wwa.3";
+chr20 hg19_knownGene exon 30071962 30072708 0.000000 + . gene_id "REM1"; transcript_id "NM_014012:uc002wwa.3";
+chr20 hg19_knownGene exon 30073581 30073826 0.000000 + . gene_id "LINC00028"; transcript_id "NR_024358:uc010ztn.1";
+chr20 hg19_knownGene exon 30074835 30074998 0.000000 + . gene_id "LINC00028"; transcript_id "NR_024358:uc010ztn.1";
+chr20 hg19_knownGene exon 30075085 30075162 0.000000 + . gene_id "LINC00028"; transcript_id "NR_024358:uc010ztn.1";
+chr20 hg19_knownGene exon 30075279 30075377 0.000000 + . gene_id "LINC00028"; transcript_id "NR_024358:uc010ztn.1";
+chr20 hg19_knownGene exon 30088703 30088774 0.000000 + . gene_id "TRNA_Pseudo"; transcript_id ":uc021wbs.1";
+chr20 hg19_knownGene CDS 30102355 30102537 0.000000 + 0 gene_id "HM13"; transcript_id "NM_178582:uc002wwb.1";
+chr20 hg19_knownGene exon 30102241 30102537 0.000000 + . gene_id "HM13"; transcript_id "NM_178582:uc002wwb.1";
+chr20 hg19_knownGene CDS 30115287 30115385 0.000000 + 0 gene_id "HM13"; transcript_id "NM_178582:uc002wwb.1";
+chr20 hg19_knownGene exon 30115287 30115385 0.000000 + . gene_id "HM13"; transcript_id "NM_178582:uc002wwb.1";
+chr20 hg19_knownGene CDS 30125982 30126128 0.000000 + 0 gene_id "HM13"; transcript_id "NM_178582:uc002wwb.1";
+chr20 hg19_knownGene exon 30125982 30127596 0.000000 + . gene_id "HM13"; transcript_id "NM_178582:uc002wwb.1";
+chr20 hg19_knownGene exon 30135185 30136019 0.000000 + . gene_id "PSIMCT-1"; transcript_id "NR_003677:uc010gdt.3";
+chr20 hg19_knownGene CDS 30102355 30102537 0.000000 + 0 gene_id "HM13"; transcript_id "NM_178581:uc002wwc.3";
+chr20 hg19_knownGene exon 30102241 30102537 0.000000 + . gene_id "HM13"; transcript_id "NM_178581:uc002wwc.3";
+chr20 hg19_knownGene CDS 30115287 30115385 0.000000 + 0 gene_id "HM13"; transcript_id "NM_178581:uc002wwc.3";
+chr20 hg19_knownGene exon 30115287 30115385 0.000000 + . gene_id "HM13"; transcript_id "NM_178581:uc002wwc.3";
+chr20 hg19_knownGene CDS 30125982 30126064 0.000000 + 0 gene_id "HM13"; transcript_id "NM_178581:uc002wwc.3";
+chr20 hg19_knownGene exon 30125982 30126064 0.000000 + . gene_id "HM13"; transcript_id "NM_178581:uc002wwc.3";
+chr20 hg19_knownGene CDS 30132750 30132838 0.000000 + 1 gene_id "HM13"; transcript_id "NM_178581:uc002wwc.3";
+chr20 hg19_knownGene exon 30132750 30132838 0.000000 + . gene_id "HM13"; transcript_id "NM_178581:uc002wwc.3";
+chr20 hg19_knownGene CDS 30136832 30136917 0.000000 + 2 gene_id "HM13"; transcript_id "NM_178581:uc002wwc.3";
+chr20 hg19_knownGene exon 30136832 30136917 0.000000 + . gene_id "HM13"; transcript_id "NM_178581:uc002wwc.3";
+chr20 hg19_knownGene CDS 30137010 30137135 0.000000 + 0 gene_id "HM13"; transcript_id "NM_178581:uc002wwc.3";
+chr20 hg19_knownGene exon 30137010 30137135 0.000000 + . gene_id "HM13"; transcript_id "NM_178581:uc002wwc.3";
+chr20 hg19_knownGene CDS 30137867 30137924 0.000000 + 0 gene_id "HM13"; transcript_id "NM_178581:uc002wwc.3";
+chr20 hg19_knownGene exon 30137867 30137924 0.000000 + . gene_id "HM13"; transcript_id "NM_178581:uc002wwc.3";
+chr20 hg19_knownGene CDS 30142549 30142632 0.000000 + 2 gene_id "HM13"; transcript_id "NM_178581:uc002wwc.3";
+chr20 hg19_knownGene exon 30142549 30142632 0.000000 + . gene_id "HM13"; transcript_id "NM_178581:uc002wwc.3";
+chr20 hg19_knownGene CDS 30147414 30147450 0.000000 + 2 gene_id "HM13"; transcript_id "NM_178581:uc002wwc.3";
+chr20 hg19_knownGene exon 30147414 30147450 0.000000 + . gene_id "HM13"; transcript_id "NM_178581:uc002wwc.3";
+chr20 hg19_knownGene CDS 30149437 30149539 0.000000 + 1 gene_id "HM13"; transcript_id "NM_178581:uc002wwc.3";
+chr20 hg19_knownGene exon 30149437 30149539 0.000000 + . gene_id "HM13"; transcript_id "NM_178581:uc002wwc.3";
+chr20 hg19_knownGene CDS 30154013 30154098 0.000000 + 0 gene_id "HM13"; transcript_id "NM_178581:uc002wwc.3";
+chr20 hg19_knownGene exon 30154013 30154098 0.000000 + . gene_id "HM13"; transcript_id "NM_178581:uc002wwc.3";
+chr20 hg19_knownGene CDS 30155881 30156027 0.000000 + 1 gene_id "HM13"; transcript_id "NM_178581:uc002wwc.3";
+chr20 hg19_knownGene exon 30155881 30156027 0.000000 + . gene_id "HM13"; transcript_id "NM_178581:uc002wwc.3";
+chr20 hg19_knownGene CDS 30156923 30157019 0.000000 + 1 gene_id "HM13"; transcript_id "NM_178581:uc002wwc.3";
+chr20 hg19_knownGene exon 30156923 30157370 0.000000 + . gene_id "HM13"; transcript_id "NM_178581:uc002wwc.3";
+chr20 hg19_knownGene CDS 30102355 30102537 0.000000 + 0 gene_id "HM13"; transcript_id "NM_178580:uc002wwd.3";
+chr20 hg19_knownGene exon 30102241 30102537 0.000000 + . gene_id "HM13"; transcript_id "NM_178580:uc002wwd.3";
+chr20 hg19_knownGene CDS 30115287 30115385 0.000000 + 0 gene_id "HM13"; transcript_id "NM_178580:uc002wwd.3";
+chr20 hg19_knownGene exon 30115287 30115385 0.000000 + . gene_id "HM13"; transcript_id "NM_178580:uc002wwd.3";
+chr20 hg19_knownGene CDS 30125982 30126064 0.000000 + 0 gene_id "HM13"; transcript_id "NM_178580:uc002wwd.3";
+chr20 hg19_knownGene exon 30125982 30126064 0.000000 + . gene_id "HM13"; transcript_id "NM_178580:uc002wwd.3";
+chr20 hg19_knownGene CDS 30132750 30132838 0.000000 + 1 gene_id "HM13"; transcript_id "NM_178580:uc002wwd.3";
+chr20 hg19_knownGene exon 30132750 30132838 0.000000 + . gene_id "HM13"; transcript_id "NM_178580:uc002wwd.3";
+chr20 hg19_knownGene CDS 30136832 30136917 0.000000 + 2 gene_id "HM13"; transcript_id "NM_178580:uc002wwd.3";
+chr20 hg19_knownGene exon 30136832 30136917 0.000000 + . gene_id "HM13"; transcript_id "NM_178580:uc002wwd.3";
+chr20 hg19_knownGene CDS 30137010 30137135 0.000000 + 0 gene_id "HM13"; transcript_id "NM_178580:uc002wwd.3";
+chr20 hg19_knownGene exon 30137010 30137135 0.000000 + . gene_id "HM13"; transcript_id "NM_178580:uc002wwd.3";
+chr20 hg19_knownGene CDS 30137867 30137924 0.000000 + 0 gene_id "HM13"; transcript_id "NM_178580:uc002wwd.3";
+chr20 hg19_knownGene exon 30137867 30137924 0.000000 + . gene_id "HM13"; transcript_id "NM_178580:uc002wwd.3";
+chr20 hg19_knownGene CDS 30142549 30142632 0.000000 + 2 gene_id "HM13"; transcript_id "NM_178580:uc002wwd.3";
+chr20 hg19_knownGene exon 30142549 30142632 0.000000 + . gene_id "HM13"; transcript_id "NM_178580:uc002wwd.3";
+chr20 hg19_knownGene CDS 30147414 30147450 0.000000 + 2 gene_id "HM13"; transcript_id "NM_178580:uc002wwd.3";
+chr20 hg19_knownGene exon 30147414 30147450 0.000000 + . gene_id "HM13"; transcript_id "NM_178580:uc002wwd.3";
+chr20 hg19_knownGene CDS 30149437 30149539 0.000000 + 1 gene_id "HM13"; transcript_id "NM_178580:uc002wwd.3";
+chr20 hg19_knownGene exon 30149437 30149539 0.000000 + . gene_id "HM13"; transcript_id "NM_178580:uc002wwd.3";
+chr20 hg19_knownGene CDS 30154013 30154098 0.000000 + 0 gene_id "HM13"; transcript_id "NM_178580:uc002wwd.3";
+chr20 hg19_knownGene exon 30154013 30154098 0.000000 + . gene_id "HM13"; transcript_id "NM_178580:uc002wwd.3";
+chr20 hg19_knownGene CDS 30155881 30156028 0.000000 + 1 gene_id "HM13"; transcript_id "NM_178580:uc002wwd.3";
+chr20 hg19_knownGene exon 30155881 30156083 0.000000 + . gene_id "HM13"; transcript_id "NM_178580:uc002wwd.3";
+chr20 hg19_knownGene exon 30156923 30157370 0.000000 + . gene_id "HM13"; transcript_id "NM_178580:uc002wwd.3";
+chr20 hg19_knownGene CDS 30102355 30102537 0.000000 + 0 gene_id "HM13"; transcript_id "NM_030789:uc002wwe.3";
+chr20 hg19_knownGene exon 30102241 30102537 0.000000 + . gene_id "HM13"; transcript_id "NM_030789:uc002wwe.3";
+chr20 hg19_knownGene CDS 30115287 30115385 0.000000 + 0 gene_id "HM13"; transcript_id "NM_030789:uc002wwe.3";
+chr20 hg19_knownGene exon 30115287 30115385 0.000000 + . gene_id "HM13"; transcript_id "NM_030789:uc002wwe.3";
+chr20 hg19_knownGene CDS 30125982 30126064 0.000000 + 0 gene_id "HM13"; transcript_id "NM_030789:uc002wwe.3";
+chr20 hg19_knownGene exon 30125982 30126064 0.000000 + . gene_id "HM13"; transcript_id "NM_030789:uc002wwe.3";
+chr20 hg19_knownGene CDS 30132750 30132838 0.000000 + 1 gene_id "HM13"; transcript_id "NM_030789:uc002wwe.3";
+chr20 hg19_knownGene exon 30132750 30132838 0.000000 + . gene_id "HM13"; transcript_id "NM_030789:uc002wwe.3";
+chr20 hg19_knownGene CDS 30136832 30136917 0.000000 + 2 gene_id "HM13"; transcript_id "NM_030789:uc002wwe.3";
+chr20 hg19_knownGene exon 30136832 30136917 0.000000 + . gene_id "HM13"; transcript_id "NM_030789:uc002wwe.3";
+chr20 hg19_knownGene CDS 30137010 30137135 0.000000 + 0 gene_id "HM13"; transcript_id "NM_030789:uc002wwe.3";
+chr20 hg19_knownGene exon 30137010 30137135 0.000000 + . gene_id "HM13"; transcript_id "NM_030789:uc002wwe.3";
+chr20 hg19_knownGene CDS 30137867 30137924 0.000000 + 0 gene_id "HM13"; transcript_id "NM_030789:uc002wwe.3";
+chr20 hg19_knownGene exon 30137867 30137924 0.000000 + . gene_id "HM13"; transcript_id "NM_030789:uc002wwe.3";
+chr20 hg19_knownGene CDS 30142549 30142632 0.000000 + 2 gene_id "HM13"; transcript_id "NM_030789:uc002wwe.3";
+chr20 hg19_knownGene exon 30142549 30142632 0.000000 + . gene_id "HM13"; transcript_id "NM_030789:uc002wwe.3";
+chr20 hg19_knownGene CDS 30147414 30147450 0.000000 + 2 gene_id "HM13"; transcript_id "NM_030789:uc002wwe.3";
+chr20 hg19_knownGene exon 30147414 30147450 0.000000 + . gene_id "HM13"; transcript_id "NM_030789:uc002wwe.3";
+chr20 hg19_knownGene CDS 30149437 30149539 0.000000 + 1 gene_id "HM13"; transcript_id "NM_030789:uc002wwe.3";
+chr20 hg19_knownGene exon 30149437 30149539 0.000000 + . gene_id "HM13"; transcript_id "NM_030789:uc002wwe.3";
+chr20 hg19_knownGene CDS 30154013 30154098 0.000000 + 0 gene_id "HM13"; transcript_id "NM_030789:uc002wwe.3";
+chr20 hg19_knownGene exon 30154013 30154098 0.000000 + . gene_id "HM13"; transcript_id "NM_030789:uc002wwe.3";
+chr20 hg19_knownGene CDS 30156923 30157019 0.000000 + 1 gene_id "HM13"; transcript_id "NM_030789:uc002wwe.3";
+chr20 hg19_knownGene exon 30156923 30157370 0.000000 + . gene_id "HM13"; transcript_id "NM_030789:uc002wwe.3";
+chr20 hg19_knownGene CDS 30136750 30136917 0.000000 + 0 gene_id "HM13"; transcript_id "BC053868:uc002wwf.3";
+chr20 hg19_knownGene exon 30135249 30136917 0.000000 + . gene_id "HM13"; transcript_id "BC053868:uc002wwf.3";
+chr20 hg19_knownGene CDS 30137010 30137135 0.000000 + 0 gene_id "HM13"; transcript_id "BC053868:uc002wwf.3";
+chr20 hg19_knownGene exon 30137010 30137135 0.000000 + . gene_id "HM13"; transcript_id "BC053868:uc002wwf.3";
+chr20 hg19_knownGene CDS 30137867 30137924 0.000000 + 0 gene_id "HM13"; transcript_id "BC053868:uc002wwf.3";
+chr20 hg19_knownGene exon 30137867 30137924 0.000000 + . gene_id "HM13"; transcript_id "BC053868:uc002wwf.3";
+chr20 hg19_knownGene CDS 30142549 30142632 0.000000 + 2 gene_id "HM13"; transcript_id "BC053868:uc002wwf.3";
+chr20 hg19_knownGene exon 30142549 30142632 0.000000 + . gene_id "HM13"; transcript_id "BC053868:uc002wwf.3";
+chr20 hg19_knownGene CDS 30147414 30147450 0.000000 + 2 gene_id "HM13"; transcript_id "BC053868:uc002wwf.3";
+chr20 hg19_knownGene exon 30147414 30147450 0.000000 + . gene_id "HM13"; transcript_id "BC053868:uc002wwf.3";
+chr20 hg19_knownGene CDS 30149437 30149539 0.000000 + 1 gene_id "HM13"; transcript_id "BC053868:uc002wwf.3";
+chr20 hg19_knownGene exon 30149437 30149539 0.000000 + . gene_id "HM13"; transcript_id "BC053868:uc002wwf.3";
+chr20 hg19_knownGene CDS 30154013 30154098 0.000000 + 0 gene_id "HM13"; transcript_id "BC053868:uc002wwf.3";
+chr20 hg19_knownGene exon 30154013 30154098 0.000000 + . gene_id "HM13"; transcript_id "BC053868:uc002wwf.3";
+chr20 hg19_knownGene CDS 30155881 30156028 0.000000 + 1 gene_id "HM13"; transcript_id "BC053868:uc002wwf.3";
+chr20 hg19_knownGene exon 30155881 30156083 0.000000 + . gene_id "HM13"; transcript_id "BC053868:uc002wwf.3";
+chr20 hg19_knownGene exon 30156923 30157370 0.000000 + . gene_id "HM13"; transcript_id "BC053868:uc002wwf.3";
+chr20 hg19_knownGene CDS 30193191 30193616 0.000000 + 0 gene_id "ID1"; transcript_id "NM_002165:uc002wwg.2";
+chr20 hg19_knownGene exon 30193086 30193616 0.000000 + . gene_id "ID1"; transcript_id "NM_002165:uc002wwg.2";
+chr20 hg19_knownGene CDS 30193856 30193894 0.000000 + 0 gene_id "ID1"; transcript_id "NM_002165:uc002wwg.2";
+chr20 hg19_knownGene exon 30193856 30194317 0.000000 + . gene_id "ID1"; transcript_id "NM_002165:uc002wwg.2";
+chr20 hg19_knownGene CDS 30193191 30193637 0.000000 + 0 gene_id "ID1"; transcript_id "NM_181353:uc002wwh.2";
+chr20 hg19_knownGene exon 30193086 30194317 0.000000 + . gene_id "ID1"; transcript_id "NM_181353:uc002wwh.2";
+chr20 hg19_knownGene exon 30194989 30195043 0.000000 + . gene_id "MIR3193"; transcript_id "NR_036161:uc021wbt.1";
+chr20 hg19_knownGene exon 30225691 30225765 0.000000 + . gene_id "COX4I2"; transcript_id "NM_032609:uc002wwj.1";
+chr20 hg19_knownGene CDS 30226821 30226902 0.000000 + 0 gene_id "COX4I2"; transcript_id "NM_032609:uc002wwj.1";
+chr20 hg19_knownGene exon 30226821 30226902 0.000000 + . gene_id "COX4I2"; transcript_id "NM_032609:uc002wwj.1";
+chr20 hg19_knownGene CDS 30227736 30227900 0.000000 + 2 gene_id "COX4I2"; transcript_id "NM_032609:uc002wwj.1";
+chr20 hg19_knownGene exon 30227736 30227900 0.000000 + . gene_id "COX4I2"; transcript_id "NM_032609:uc002wwj.1";
+chr20 hg19_knownGene CDS 30231207 30231338 0.000000 + 2 gene_id "COX4I2"; transcript_id "NM_032609:uc002wwj.1";
+chr20 hg19_knownGene exon 30231207 30231338 0.000000 + . gene_id "COX4I2"; transcript_id "NM_032609:uc002wwj.1";
+chr20 hg19_knownGene CDS 30232571 30232704 0.000000 + 2 gene_id "COX4I2"; transcript_id "NM_032609:uc002wwj.1";
+chr20 hg19_knownGene exon 30232571 30232800 0.000000 + . gene_id "COX4I2"; transcript_id "NM_032609:uc002wwj.1";
+chr20 hg19_knownGene exon 30252261 30253889 0.000000 - . gene_id "BCL2L1"; transcript_id "BX647525:uc002wwk.3";
+chr20 hg19_knownGene exon 30254794 30254950 0.000000 - . gene_id "BCL2L1"; transcript_id "BX647525:uc002wwk.3";
+chr20 hg19_knownGene exon 30309458 30310133 0.000000 - . gene_id "BCL2L1"; transcript_id "BX647525:uc002wwk.3";
+chr20 hg19_knownGene CDS 30253755 30253889 0.000000 - 0 gene_id "BCL2L1"; transcript_id "NM_138578:uc002wwl.3";
+chr20 hg19_knownGene exon 30252261 30253889 0.000000 - . gene_id "BCL2L1"; transcript_id "NM_138578:uc002wwl.3";
+chr20 hg19_knownGene CDS 30309458 30310021 0.000000 - 0 gene_id "BCL2L1"; transcript_id "NM_138578:uc002wwl.3";
+chr20 hg19_knownGene exon 30309458 30310151 0.000000 - . gene_id "BCL2L1"; transcript_id "NM_138578:uc002wwl.3";
+chr20 hg19_knownGene exon 30310421 30310656 0.000000 - . gene_id "BCL2L1"; transcript_id "NM_138578:uc002wwl.3";
+chr20 hg19_knownGene CDS 30253755 30253889 0.000000 - 0 gene_id "BCL2L1"; transcript_id "NM_001191:uc002wwm.3";
+chr20 hg19_knownGene exon 30252261 30253889 0.000000 - . gene_id "BCL2L1"; transcript_id "NM_001191:uc002wwm.3";
+chr20 hg19_knownGene CDS 30309647 30310021 0.000000 - 0 gene_id "BCL2L1"; transcript_id "NM_001191:uc002wwm.3";
+chr20 hg19_knownGene exon 30309647 30310151 0.000000 - . gene_id "BCL2L1"; transcript_id "NM_001191:uc002wwm.3";
+chr20 hg19_knownGene exon 30310421 30310656 0.000000 - . gene_id "BCL2L1"; transcript_id "NM_001191:uc002wwm.3";
+chr20 hg19_knownGene CDS 30253755 30253889 0.000000 - 0 gene_id "BCL2L1"; transcript_id "CR936637:uc002wwn.3";
+chr20 hg19_knownGene exon 30252261 30253889 0.000000 - . gene_id "BCL2L1"; transcript_id "CR936637:uc002wwn.3";
+chr20 hg19_knownGene CDS 30309458 30310021 0.000000 - 0 gene_id "BCL2L1"; transcript_id "CR936637:uc002wwn.3";
+chr20 hg19_knownGene exon 30309458 30310133 0.000000 - . gene_id "BCL2L1"; transcript_id "CR936637:uc002wwn.3";
+chr20 hg19_knownGene exon 30310421 30310656 0.000000 - . gene_id "BCL2L1"; transcript_id "CR936637:uc002wwn.3";
+chr20 hg19_knownGene CDS 30309461 30310021 0.000000 - 0 gene_id "BCL2L1"; transcript_id "BX647525:uc002wwo.1";
+chr20 hg19_knownGene exon 30309458 30310133 0.000000 - . gene_id "BCL2L1"; transcript_id "BX647525:uc002wwo.1";
+chr20 hg19_knownGene exon 30311667 30311729 0.000000 - . gene_id "BCL2L1"; transcript_id "BX647525:uc002wwo.1";
+chr20 hg19_knownGene exon 30326904 30327424 0.000000 + . gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene exon 30330344 30330450 0.000000 + . gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene CDS 30345280 30345385 0.000000 + 0 gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene exon 30345210 30345385 0.000000 + . gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene CDS 30347860 30347982 0.000000 + 2 gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene exon 30347860 30347982 0.000000 + . gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene CDS 30354359 30354485 0.000000 + 2 gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene exon 30354359 30354485 0.000000 + . gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene CDS 30358146 30358274 0.000000 + 1 gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene exon 30358146 30358274 0.000000 + . gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene CDS 30359363 30359485 0.000000 + 1 gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene exon 30359363 30359485 0.000000 + . gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene CDS 30363670 30363791 0.000000 + 1 gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene exon 30363670 30363791 0.000000 + . gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene CDS 30365290 30365441 0.000000 + 2 gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene exon 30365290 30365441 0.000000 + . gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene CDS 30366616 30366787 0.000000 + 0 gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene exon 30366616 30366787 0.000000 + . gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene CDS 30370052 30370193 0.000000 + 2 gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene exon 30370052 30370193 0.000000 + . gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene CDS 30371508 30371724 0.000000 + 1 gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene exon 30371508 30371724 0.000000 + . gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene CDS 30380538 30380633 0.000000 + 0 gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene exon 30380538 30380633 0.000000 + . gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene CDS 30381651 30381827 0.000000 + 0 gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene exon 30381651 30381827 0.000000 + . gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene CDS 30382205 30382351 0.000000 + 0 gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene exon 30382205 30382351 0.000000 + . gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene CDS 30385207 30385318 0.000000 + 0 gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene exon 30385207 30385318 0.000000 + . gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene CDS 30386168 30386355 0.000000 + 2 gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene exon 30386168 30386355 0.000000 + . gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene CDS 30388773 30388880 0.000000 + 0 gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene exon 30388773 30389603 0.000000 + . gene_id "TPX2"; transcript_id "NM_012112:uc002wwp.1";
+chr20 hg19_knownGene exon 30326904 30327424 0.000000 + . gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene exon 30330344 30330450 0.000000 + . gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene CDS 30345280 30345385 0.000000 + 0 gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene exon 30345210 30345385 0.000000 + . gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene CDS 30347860 30347982 0.000000 + 2 gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene exon 30347860 30347982 0.000000 + . gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene CDS 30354359 30354485 0.000000 + 2 gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene exon 30354359 30354485 0.000000 + . gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene CDS 30358146 30358274 0.000000 + 1 gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene exon 30358146 30358274 0.000000 + . gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene CDS 30359363 30359485 0.000000 + 1 gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene exon 30359363 30359485 0.000000 + . gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene CDS 30363670 30363791 0.000000 + 1 gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene exon 30363670 30363791 0.000000 + . gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene CDS 30365290 30365441 0.000000 + 2 gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene exon 30365290 30365441 0.000000 + . gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene CDS 30366616 30366787 0.000000 + 0 gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene exon 30366616 30366787 0.000000 + . gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene CDS 30368742 30368849 0.000000 + 2 gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene exon 30368742 30368849 0.000000 + . gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene CDS 30370052 30370193 0.000000 + 2 gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene exon 30370052 30370193 0.000000 + . gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene CDS 30371508 30371724 0.000000 + 1 gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene exon 30371508 30371724 0.000000 + . gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene CDS 30380538 30380633 0.000000 + 0 gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene exon 30380538 30380633 0.000000 + . gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene CDS 30381651 30381827 0.000000 + 0 gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene exon 30381651 30381827 0.000000 + . gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene CDS 30382205 30382351 0.000000 + 0 gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene exon 30382205 30382351 0.000000 + . gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene CDS 30385207 30385318 0.000000 + 0 gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene exon 30385207 30385318 0.000000 + . gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene CDS 30386168 30386355 0.000000 + 2 gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene exon 30386168 30386355 0.000000 + . gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene CDS 30388773 30388880 0.000000 + 0 gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene exon 30388773 30389603 0.000000 + . gene_id "TPX2"; transcript_id "AF287265:uc010gdv.1";
+chr20 hg19_knownGene exon 30407178 30407231 0.000000 + . gene_id "MYLK2"; transcript_id "NM_033118:uc002wwq.2";
+chr20 hg19_knownGene CDS 30407384 30407435 0.000000 + 0 gene_id "MYLK2"; transcript_id "NM_033118:uc002wwq.2";
+chr20 hg19_knownGene exon 30407336 30407435 0.000000 + . gene_id "MYLK2"; transcript_id "NM_033118:uc002wwq.2";
+chr20 hg19_knownGene CDS 30407929 30408349 0.000000 + 2 gene_id "MYLK2"; transcript_id "NM_033118:uc002wwq.2";
+chr20 hg19_knownGene exon 30407929 30408349 0.000000 + . gene_id "MYLK2"; transcript_id "NM_033118:uc002wwq.2";
+chr20 hg19_knownGene CDS 30409242 30409540 0.000000 + 1 gene_id "MYLK2"; transcript_id "NM_033118:uc002wwq.2";
+chr20 hg19_knownGene exon 30409242 30409540 0.000000 + . gene_id "MYLK2"; transcript_id "NM_033118:uc002wwq.2";
+chr20 hg19_knownGene CDS 30411280 30411385 0.000000 + 2 gene_id "MYLK2"; transcript_id "NM_033118:uc002wwq.2";
+chr20 hg19_knownGene exon 30411280 30411385 0.000000 + . gene_id "MYLK2"; transcript_id "NM_033118:uc002wwq.2";
+chr20 hg19_knownGene CDS 30412062 30412155 0.000000 + 1 gene_id "MYLK2"; transcript_id "NM_033118:uc002wwq.2";
+chr20 hg19_knownGene exon 30412062 30412155 0.000000 + . gene_id "MYLK2"; transcript_id "NM_033118:uc002wwq.2";
+chr20 hg19_knownGene CDS 30414408 30414517 0.000000 + 0 gene_id "MYLK2"; transcript_id "NM_033118:uc002wwq.2";
+chr20 hg19_knownGene exon 30414408 30414517 0.000000 + . gene_id "MYLK2"; transcript_id "NM_033118:uc002wwq.2";
+chr20 hg19_knownGene CDS 30414600 30414741 0.000000 + 1 gene_id "MYLK2"; transcript_id "NM_033118:uc002wwq.2";
+chr20 hg19_knownGene exon 30414600 30414741 0.000000 + . gene_id "MYLK2"; transcript_id "NM_033118:uc002wwq.2";
+chr20 hg19_knownGene CDS 30418622 30418692 0.000000 + 0 gene_id "MYLK2"; transcript_id "NM_033118:uc002wwq.2";
+chr20 hg19_knownGene exon 30418622 30418692 0.000000 + . gene_id "MYLK2"; transcript_id "NM_033118:uc002wwq.2";
+chr20 hg19_knownGene CDS 30418816 30418944 0.000000 + 1 gene_id "MYLK2"; transcript_id "NM_033118:uc002wwq.2";
+chr20 hg19_knownGene exon 30418816 30418944 0.000000 + . gene_id "MYLK2"; transcript_id "NM_033118:uc002wwq.2";
+chr20 hg19_knownGene CDS 30419506 30419658 0.000000 + 1 gene_id "MYLK2"; transcript_id "NM_033118:uc002wwq.2";
+chr20 hg19_knownGene exon 30419506 30419658 0.000000 + . gene_id "MYLK2"; transcript_id "NM_033118:uc002wwq.2";
+chr20 hg19_knownGene CDS 30419807 30419939 0.000000 + 1 gene_id "MYLK2"; transcript_id "NM_033118:uc002wwq.2";
+chr20 hg19_knownGene exon 30419807 30419939 0.000000 + . gene_id "MYLK2"; transcript_id "NM_033118:uc002wwq.2";
+chr20 hg19_knownGene CDS 30421520 30421597 0.000000 + 0 gene_id "MYLK2"; transcript_id "NM_033118:uc002wwq.2";
+chr20 hg19_knownGene exon 30421520 30422500 0.000000 + . gene_id "MYLK2"; transcript_id "NM_033118:uc002wwq.2";
+chr20 hg19_knownGene CDS 30414667 30414741 0.000000 + 0 gene_id "MYLK2"; transcript_id "BC007753:uc002wws.2";
+chr20 hg19_knownGene exon 30414580 30414741 0.000000 + . gene_id "MYLK2"; transcript_id "BC007753:uc002wws.2";
+chr20 hg19_knownGene CDS 30418622 30418692 0.000000 + 0 gene_id "MYLK2"; transcript_id "BC007753:uc002wws.2";
+chr20 hg19_knownGene exon 30418622 30418692 0.000000 + . gene_id "MYLK2"; transcript_id "BC007753:uc002wws.2";
+chr20 hg19_knownGene CDS 30418816 30418944 0.000000 + 1 gene_id "MYLK2"; transcript_id "BC007753:uc002wws.2";
+chr20 hg19_knownGene exon 30418816 30418944 0.000000 + . gene_id "MYLK2"; transcript_id "BC007753:uc002wws.2";
+chr20 hg19_knownGene CDS 30419506 30419658 0.000000 + 1 gene_id "MYLK2"; transcript_id "BC007753:uc002wws.2";
+chr20 hg19_knownGene exon 30419506 30419658 0.000000 + . gene_id "MYLK2"; transcript_id "BC007753:uc002wws.2";
+chr20 hg19_knownGene CDS 30419807 30419939 0.000000 + 1 gene_id "MYLK2"; transcript_id "BC007753:uc002wws.2";
+chr20 hg19_knownGene exon 30419807 30419939 0.000000 + . gene_id "MYLK2"; transcript_id "BC007753:uc002wws.2";
+chr20 hg19_knownGene CDS 30421520 30421597 0.000000 + 0 gene_id "MYLK2"; transcript_id "BC007753:uc002wws.2";
+chr20 hg19_knownGene exon 30421520 30422500 0.000000 + . gene_id "MYLK2"; transcript_id "BC007753:uc002wws.2";
+chr20 hg19_knownGene exon 30418816 30418944 0.000000 + . gene_id "MYLK2"; transcript_id "BX647635:uc010gdw.1";
+chr20 hg19_knownGene exon 30419270 30419367 0.000000 + . gene_id "MYLK2"; transcript_id "BX647635:uc010gdw.1";
+chr20 hg19_knownGene exon 30419506 30419658 0.000000 + . gene_id "MYLK2"; transcript_id "BX647635:uc010gdw.1";
+chr20 hg19_knownGene exon 30419807 30419939 0.000000 + . gene_id "MYLK2"; transcript_id "BX647635:uc010gdw.1";
+chr20 hg19_knownGene exon 30421520 30422500 0.000000 + . gene_id "MYLK2"; transcript_id "BX647635:uc010gdw.1";
+chr20 hg19_knownGene CDS 30432356 30433345 0.000000 - 0 gene_id "FOXS1"; transcript_id "NM_004118:uc002wwt.1";
+chr20 hg19_knownGene exon 30432103 30433420 0.000000 - . gene_id "FOXS1"; transcript_id "NM_004118:uc002wwt.1";
+chr20 hg19_knownGene CDS 30449209 30449478 0.000000 - 0 gene_id "DUSP15"; transcript_id "NM_001012644:uc002wwv.1";
+chr20 hg19_knownGene exon 30448870 30449478 0.000000 - . gene_id "DUSP15"; transcript_id "NM_001012644:uc002wwv.1";
+chr20 hg19_knownGene CDS 30450374 30450499 0.000000 - 0 gene_id "DUSP15"; transcript_id "NM_001012644:uc002wwv.1";
+chr20 hg19_knownGene exon 30450374 30450545 0.000000 - . gene_id "DUSP15"; transcript_id "NM_001012644:uc002wwv.1";
+chr20 hg19_knownGene exon 30451710 30451784 0.000000 - . gene_id "DUSP15"; transcript_id "NM_001012644:uc002wwv.1";
+chr20 hg19_knownGene exon 30452756 30452805 0.000000 - . gene_id "DUSP15"; transcript_id "NM_001012644:uc002wwv.1";
+chr20 hg19_knownGene exon 30454874 30454956 0.000000 - . gene_id "DUSP15"; transcript_id "NM_001012644:uc002wwv.1";
+chr20 hg19_knownGene exon 30457367 30457400 0.000000 - . gene_id "DUSP15"; transcript_id "NM_001012644:uc002wwv.1";
+chr20 hg19_knownGene exon 30457613 30457801 0.000000 - . gene_id "DUSP15"; transcript_id "NM_001012644:uc002wwv.1";
+chr20 hg19_knownGene CDS 30449209 30449478 0.000000 - 0 gene_id "DUSP15"; transcript_id "NM_177991:uc002www.1";
+chr20 hg19_knownGene exon 30448870 30449478 0.000000 - . gene_id "DUSP15"; transcript_id "NM_177991:uc002www.1";
+chr20 hg19_knownGene CDS 30450374 30450499 0.000000 - 0 gene_id "DUSP15"; transcript_id "NM_177991:uc002www.1";
+chr20 hg19_knownGene exon 30450374 30450545 0.000000 - . gene_id "DUSP15"; transcript_id "NM_177991:uc002www.1";
+chr20 hg19_knownGene exon 30451710 30451784 0.000000 - . gene_id "DUSP15"; transcript_id "NM_177991:uc002www.1";
+chr20 hg19_knownGene exon 30452756 30452805 0.000000 - . gene_id "DUSP15"; transcript_id "NM_177991:uc002www.1";
+chr20 hg19_knownGene exon 30454874 30454956 0.000000 - . gene_id "DUSP15"; transcript_id "NM_177991:uc002www.1";
+chr20 hg19_knownGene exon 30457367 30457400 0.000000 - . gene_id "DUSP15"; transcript_id "NM_177991:uc002www.1";
+chr20 hg19_knownGene exon 30457851 30458011 0.000000 - . gene_id "DUSP15"; transcript_id "NM_177991:uc002www.1";
+chr20 hg19_knownGene CDS 30436210 30436368 0.000000 - 0 gene_id "DUSP15"; transcript_id "AK097430:uc002wwu.1";
+chr20 hg19_knownGene exon 30435441 30436368 0.000000 - . gene_id "DUSP15"; transcript_id "AK097430:uc002wwu.1";
+chr20 hg19_knownGene CDS 30436609 30436706 0.000000 - 2 gene_id "DUSP15"; transcript_id "AK097430:uc002wwu.1";
+chr20 hg19_knownGene exon 30436609 30436706 0.000000 - . gene_id "DUSP15"; transcript_id "AK097430:uc002wwu.1";
+chr20 hg19_knownGene CDS 30437541 30437677 0.000000 - 1 gene_id "DUSP15"; transcript_id "AK097430:uc002wwu.1";
+chr20 hg19_knownGene exon 30437541 30437677 0.000000 - . gene_id "DUSP15"; transcript_id "AK097430:uc002wwu.1";
+chr20 hg19_knownGene CDS 30438415 30438479 0.000000 - 0 gene_id "DUSP15"; transcript_id "AK097430:uc002wwu.1";
+chr20 hg19_knownGene exon 30438415 30438479 0.000000 - . gene_id "DUSP15"; transcript_id "AK097430:uc002wwu.1";
+chr20 hg19_knownGene CDS 30450374 30450545 0.000000 - 1 gene_id "DUSP15"; transcript_id "AK097430:uc002wwu.1";
+chr20 hg19_knownGene exon 30450374 30450545 0.000000 - . gene_id "DUSP15"; transcript_id "AK097430:uc002wwu.1";
+chr20 hg19_knownGene CDS 30451710 30451784 0.000000 - 1 gene_id "DUSP15"; transcript_id "AK097430:uc002wwu.1";
+chr20 hg19_knownGene exon 30451710 30451784 0.000000 - . gene_id "DUSP15"; transcript_id "AK097430:uc002wwu.1";
+chr20 hg19_knownGene CDS 30452756 30452805 0.000000 - 0 gene_id "DUSP15"; transcript_id "AK097430:uc002wwu.1";
+chr20 hg19_knownGene exon 30452756 30452805 0.000000 - . gene_id "DUSP15"; transcript_id "AK097430:uc002wwu.1";
+chr20 hg19_knownGene CDS 30454874 30454956 0.000000 - 2 gene_id "DUSP15"; transcript_id "AK097430:uc002wwu.1";
+chr20 hg19_knownGene exon 30454874 30454956 0.000000 - . gene_id "DUSP15"; transcript_id "AK097430:uc002wwu.1";
+chr20 hg19_knownGene CDS 30457367 30457400 0.000000 - 0 gene_id "DUSP15"; transcript_id "AK097430:uc002wwu.1";
+chr20 hg19_knownGene exon 30457367 30457400 0.000000 - . gene_id "DUSP15"; transcript_id "AK097430:uc002wwu.1";
+chr20 hg19_knownGene CDS 30458379 30458390 0.000000 - 0 gene_id "DUSP15"; transcript_id "AK097430:uc002wwu.1";
+chr20 hg19_knownGene exon 30458379 30458467 0.000000 - . gene_id "DUSP15"; transcript_id "AK097430:uc002wwu.1";
+chr20 hg19_knownGene CDS 30449209 30449478 0.000000 - 0 gene_id "DUSP15"; transcript_id "NM_080611:uc002wwx.1";
+chr20 hg19_knownGene exon 30448870 30449478 0.000000 - . gene_id "DUSP15"; transcript_id "NM_080611:uc002wwx.1";
+chr20 hg19_knownGene CDS 30450374 30450545 0.000000 - 1 gene_id "DUSP15"; transcript_id "NM_080611:uc002wwx.1";
+chr20 hg19_knownGene exon 30450374 30450545 0.000000 - . gene_id "DUSP15"; transcript_id "NM_080611:uc002wwx.1";
+chr20 hg19_knownGene CDS 30451710 30451784 0.000000 - 1 gene_id "DUSP15"; transcript_id "NM_080611:uc002wwx.1";
+chr20 hg19_knownGene exon 30451710 30451784 0.000000 - . gene_id "DUSP15"; transcript_id "NM_080611:uc002wwx.1";
+chr20 hg19_knownGene CDS 30452756 30452805 0.000000 - 0 gene_id "DUSP15"; transcript_id "NM_080611:uc002wwx.1";
+chr20 hg19_knownGene exon 30452756 30452805 0.000000 - . gene_id "DUSP15"; transcript_id "NM_080611:uc002wwx.1";
+chr20 hg19_knownGene CDS 30454874 30454956 0.000000 - 2 gene_id "DUSP15"; transcript_id "NM_080611:uc002wwx.1";
+chr20 hg19_knownGene exon 30454874 30454956 0.000000 - . gene_id "DUSP15"; transcript_id "NM_080611:uc002wwx.1";
+chr20 hg19_knownGene CDS 30457367 30457400 0.000000 - 0 gene_id "DUSP15"; transcript_id "NM_080611:uc002wwx.1";
+chr20 hg19_knownGene exon 30457367 30457400 0.000000 - . gene_id "DUSP15"; transcript_id "NM_080611:uc002wwx.1";
+chr20 hg19_knownGene CDS 30458120 30458140 0.000000 - 0 gene_id "DUSP15"; transcript_id "NM_080611:uc002wwx.1";
+chr20 hg19_knownGene exon 30458120 30458479 0.000000 - . gene_id "DUSP15"; transcript_id "NM_080611:uc002wwx.1";
+chr20 hg19_knownGene exon 30489057 30489229 0.000000 + . gene_id "U1"; transcript_id ":uc021wbu.1";
+chr20 hg19_knownGene exon 30497540 30497725 0.000000 + . gene_id "TTLL9"; transcript_id "AK303963:uc010ztq.1";
+chr20 hg19_knownGene exon 30507667 30507735 0.000000 + . gene_id "TTLL9"; transcript_id "AK303963:uc010ztq.1";
+chr20 hg19_knownGene exon 30510766 30510856 0.000000 + . gene_id "TTLL9"; transcript_id "AK303963:uc010ztq.1";
+chr20 hg19_knownGene exon 30512812 30512852 0.000000 + . gene_id "TTLL9"; transcript_id "AK303963:uc010ztq.1";
+chr20 hg19_knownGene exon 30513676 30513763 0.000000 + . gene_id "TTLL9"; transcript_id "AK303963:uc010ztq.1";
+chr20 hg19_knownGene exon 30521603 30521661 0.000000 + . gene_id "TTLL9"; transcript_id "AK303963:uc010ztq.1";
+chr20 hg19_knownGene exon 30522125 30522211 0.000000 + . gene_id "TTLL9"; transcript_id "AK303963:uc010ztq.1";
+chr20 hg19_knownGene exon 30522495 30522691 0.000000 + . gene_id "TTLL9"; transcript_id "AK303963:uc010ztq.1";
+chr20 hg19_knownGene exon 30525199 30525312 0.000000 + . gene_id "TTLL9"; transcript_id "AK303963:uc010ztq.1";
+chr20 hg19_knownGene exon 30525962 30526066 0.000000 + . gene_id "TTLL9"; transcript_id "AK303963:uc010ztq.1";
+chr20 hg19_knownGene exon 30526945 30527069 0.000000 + . gene_id "TTLL9"; transcript_id "AK303963:uc010ztq.1";
+chr20 hg19_knownGene exon 30458505 30458752 0.000000 + . gene_id "TTLL9"; transcript_id "NM_001008409:uc010gdx.1";
+chr20 hg19_knownGene CDS 30458930 30458998 0.000000 + 0 gene_id "TTLL9"; transcript_id "NM_001008409:uc010gdx.1";
+chr20 hg19_knownGene exon 30458925 30458998 0.000000 + . gene_id "TTLL9"; transcript_id "NM_001008409:uc010gdx.1";
+chr20 hg19_knownGene CDS 30474999 30475042 0.000000 + 0 gene_id "TTLL9"; transcript_id "NM_001008409:uc010gdx.1";
+chr20 hg19_knownGene exon 30474999 30475042 0.000000 + . gene_id "TTLL9"; transcript_id "NM_001008409:uc010gdx.1";
+chr20 hg19_knownGene CDS 30486276 30486368 0.000000 + 1 gene_id "TTLL9"; transcript_id "NM_001008409:uc010gdx.1";
+chr20 hg19_knownGene exon 30486276 30486368 0.000000 + . gene_id "TTLL9"; transcript_id "NM_001008409:uc010gdx.1";
+chr20 hg19_knownGene CDS 30496394 30496505 0.000000 + 1 gene_id "TTLL9"; transcript_id "NM_001008409:uc010gdx.1";
+chr20 hg19_knownGene exon 30496394 30496505 0.000000 + . gene_id "TTLL9"; transcript_id "NM_001008409:uc010gdx.1";
+chr20 hg19_knownGene CDS 30497540 30497725 0.000000 + 0 gene_id "TTLL9"; transcript_id "NM_001008409:uc010gdx.1";
+chr20 hg19_knownGene exon 30497540 30497725 0.000000 + . gene_id "TTLL9"; transcript_id "NM_001008409:uc010gdx.1";
+chr20 hg19_knownGene CDS 30507667 30507735 0.000000 + 0 gene_id "TTLL9"; transcript_id "NM_001008409:uc010gdx.1";
+chr20 hg19_knownGene exon 30507667 30507735 0.000000 + . gene_id "TTLL9"; transcript_id "NM_001008409:uc010gdx.1";
+chr20 hg19_knownGene CDS 30510766 30510856 0.000000 + 0 gene_id "TTLL9"; transcript_id "NM_001008409:uc010gdx.1";
+chr20 hg19_knownGene exon 30510766 30510856 0.000000 + . gene_id "TTLL9"; transcript_id "NM_001008409:uc010gdx.1";
+chr20 hg19_knownGene CDS 30512812 30512852 0.000000 + 2 gene_id "TTLL9"; transcript_id "NM_001008409:uc010gdx.1";
+chr20 hg19_knownGene exon 30512812 30512852 0.000000 + . gene_id "TTLL9"; transcript_id "NM_001008409:uc010gdx.1";
+chr20 hg19_knownGene CDS 30513852 30513894 0.000000 + 0 gene_id "TTLL9"; transcript_id "NM_001008409:uc010gdx.1";
+chr20 hg19_knownGene exon 30513852 30513894 0.000000 + . gene_id "TTLL9"; transcript_id "NM_001008409:uc010gdx.1";
+chr20 hg19_knownGene CDS 30521603 30521661 0.000000 + 2 gene_id "TTLL9"; transcript_id "NM_001008409:uc010gdx.1";
+chr20 hg19_knownGene exon 30521603 30521661 0.000000 + . gene_id "TTLL9"; transcript_id "NM_001008409:uc010gdx.1";
+chr20 hg19_knownGene CDS 30522495 30522691 0.000000 + 0 gene_id "TTLL9"; transcript_id "NM_001008409:uc010gdx.1";
+chr20 hg19_knownGene exon 30522495 30522691 0.000000 + . gene_id "TTLL9"; transcript_id "NM_001008409:uc010gdx.1";
+chr20 hg19_knownGene CDS 30525199 30525312 0.000000 + 1 gene_id "TTLL9"; transcript_id "NM_001008409:uc010gdx.1";
+chr20 hg19_knownGene exon 30525199 30525312 0.000000 + . gene_id "TTLL9"; transcript_id "NM_001008409:uc010gdx.1";
+chr20 hg19_knownGene CDS 30526945 30527069 0.000000 + 1 gene_id "TTLL9"; transcript_id "NM_001008409:uc010gdx.1";
+chr20 hg19_knownGene exon 30526945 30527069 0.000000 + . gene_id "TTLL9"; transcript_id "NM_001008409:uc010gdx.1";
+chr20 hg19_knownGene CDS 30530748 30530821 0.000000 + 2 gene_id "TTLL9"; transcript_id "NM_001008409:uc010gdx.1";
+chr20 hg19_knownGene exon 30530748 30530858 0.000000 + . gene_id "TTLL9"; transcript_id "NM_001008409:uc010gdx.1";
+chr20 hg19_knownGene exon 30467630 30467700 0.000000 + . gene_id "TTLL9"; transcript_id "AK302806:uc010zto.1";
+chr20 hg19_knownGene exon 30474999 30475042 0.000000 + . gene_id "TTLL9"; transcript_id "AK302806:uc010zto.1";
+chr20 hg19_knownGene exon 30486276 30486368 0.000000 + . gene_id "TTLL9"; transcript_id "AK302806:uc010zto.1";
+chr20 hg19_knownGene exon 30496394 30496505 0.000000 + . gene_id "TTLL9"; transcript_id "AK302806:uc010zto.1";
+chr20 hg19_knownGene exon 30497540 30497725 0.000000 + . gene_id "TTLL9"; transcript_id "AK302806:uc010zto.1";
+chr20 hg19_knownGene exon 30507667 30507735 0.000000 + . gene_id "TTLL9"; transcript_id "AK302806:uc010zto.1";
+chr20 hg19_knownGene exon 30510766 30510856 0.000000 + . gene_id "TTLL9"; transcript_id "AK302806:uc010zto.1";
+chr20 hg19_knownGene exon 30512812 30512852 0.000000 + . gene_id "TTLL9"; transcript_id "AK302806:uc010zto.1";
+chr20 hg19_knownGene exon 30521603 30521661 0.000000 + . gene_id "TTLL9"; transcript_id "AK302806:uc010zto.1";
+chr20 hg19_knownGene exon 30522495 30522691 0.000000 + . gene_id "TTLL9"; transcript_id "AK302806:uc010zto.1";
+chr20 hg19_knownGene exon 30525199 30525312 0.000000 + . gene_id "TTLL9"; transcript_id "AK302806:uc010zto.1";
+chr20 hg19_knownGene exon 30526945 30527069 0.000000 + . gene_id "TTLL9"; transcript_id "AK302806:uc010zto.1";
+chr20 hg19_knownGene exon 30530748 30530858 0.000000 + . gene_id "TTLL9"; transcript_id "AK302806:uc010zto.1";
+chr20 hg19_knownGene CDS 30467686 30467700 0.000000 + 0 gene_id "TTLL9"; transcript_id "BC036213:uc002wxc.2";
+chr20 hg19_knownGene exon 30467630 30467700 0.000000 + . gene_id "TTLL9"; transcript_id "BC036213:uc002wxc.2";
+chr20 hg19_knownGene CDS 30471824 30471905 0.000000 + 0 gene_id "TTLL9"; transcript_id "BC036213:uc002wxc.2";
+chr20 hg19_knownGene exon 30471824 30471905 0.000000 + . gene_id "TTLL9"; transcript_id "BC036213:uc002wxc.2";
+chr20 hg19_knownGene CDS 30474999 30475042 0.000000 + 2 gene_id "TTLL9"; transcript_id "BC036213:uc002wxc.2";
+chr20 hg19_knownGene exon 30474999 30475042 0.000000 + . gene_id "TTLL9"; transcript_id "BC036213:uc002wxc.2";
+chr20 hg19_knownGene CDS 30486276 30486368 0.000000 + 0 gene_id "TTLL9"; transcript_id "BC036213:uc002wxc.2";
+chr20 hg19_knownGene exon 30486276 30486368 0.000000 + . gene_id "TTLL9"; transcript_id "BC036213:uc002wxc.2";
+chr20 hg19_knownGene CDS 30510766 30510856 0.000000 + 0 gene_id "TTLL9"; transcript_id "BC036213:uc002wxc.2";
+chr20 hg19_knownGene exon 30510766 30510856 0.000000 + . gene_id "TTLL9"; transcript_id "BC036213:uc002wxc.2";
+chr20 hg19_knownGene CDS 30512812 30512852 0.000000 + 2 gene_id "TTLL9"; transcript_id "BC036213:uc002wxc.2";
+chr20 hg19_knownGene exon 30512812 30512852 0.000000 + . gene_id "TTLL9"; transcript_id "BC036213:uc002wxc.2";
+chr20 hg19_knownGene CDS 30513676 30513763 0.000000 + 0 gene_id "TTLL9"; transcript_id "BC036213:uc002wxc.2";
+chr20 hg19_knownGene exon 30513676 30513763 0.000000 + . gene_id "TTLL9"; transcript_id "BC036213:uc002wxc.2";
+chr20 hg19_knownGene CDS 30521603 30521661 0.000000 + 2 gene_id "TTLL9"; transcript_id "BC036213:uc002wxc.2";
+chr20 hg19_knownGene exon 30521603 30521661 0.000000 + . gene_id "TTLL9"; transcript_id "BC036213:uc002wxc.2";
+chr20 hg19_knownGene CDS 30522495 30522691 0.000000 + 0 gene_id "TTLL9"; transcript_id "BC036213:uc002wxc.2";
+chr20 hg19_knownGene exon 30522495 30522691 0.000000 + . gene_id "TTLL9"; transcript_id "BC036213:uc002wxc.2";
+chr20 hg19_knownGene CDS 30525199 30525312 0.000000 + 1 gene_id "TTLL9"; transcript_id "BC036213:uc002wxc.2";
+chr20 hg19_knownGene exon 30525199 30525312 0.000000 + . gene_id "TTLL9"; transcript_id "BC036213:uc002wxc.2";
+chr20 hg19_knownGene CDS 30526945 30527069 0.000000 + 1 gene_id "TTLL9"; transcript_id "BC036213:uc002wxc.2";
+chr20 hg19_knownGene exon 30526945 30527069 0.000000 + . gene_id "TTLL9"; transcript_id "BC036213:uc002wxc.2";
+chr20 hg19_knownGene CDS 30530748 30530821 0.000000 + 2 gene_id "TTLL9"; transcript_id "BC036213:uc002wxc.2";
+chr20 hg19_knownGene exon 30530748 30532763 0.000000 + . gene_id "TTLL9"; transcript_id "BC036213:uc002wxc.2";
+chr20 hg19_knownGene exon 30458505 30458752 0.000000 + . gene_id "TTLL9"; transcript_id "AX748163:uc002wwy.1";
+chr20 hg19_knownGene exon 30458925 30458998 0.000000 + . gene_id "TTLL9"; transcript_id "AX748163:uc002wwy.1";
+chr20 hg19_knownGene exon 30474999 30475042 0.000000 + . gene_id "TTLL9"; transcript_id "AX748163:uc002wwy.1";
+chr20 hg19_knownGene exon 30486276 30486368 0.000000 + . gene_id "TTLL9"; transcript_id "AX748163:uc002wwy.1";
+chr20 hg19_knownGene exon 30496394 30496505 0.000000 + . gene_id "TTLL9"; transcript_id "AX748163:uc002wwy.1";
+chr20 hg19_knownGene exon 30497540 30497725 0.000000 + . gene_id "TTLL9"; transcript_id "AX748163:uc002wwy.1";
+chr20 hg19_knownGene exon 30507667 30507735 0.000000 + . gene_id "TTLL9"; transcript_id "AX748163:uc002wwy.1";
+chr20 hg19_knownGene exon 30510766 30510856 0.000000 + . gene_id "TTLL9"; transcript_id "AX748163:uc002wwy.1";
+chr20 hg19_knownGene exon 30512812 30512852 0.000000 + . gene_id "TTLL9"; transcript_id "AX748163:uc002wwy.1";
+chr20 hg19_knownGene exon 30513852 30513894 0.000000 + . gene_id "TTLL9"; transcript_id "AX748163:uc002wwy.1";
+chr20 hg19_knownGene exon 30521603 30521661 0.000000 + . gene_id "TTLL9"; transcript_id "AX748163:uc002wwy.1";
+chr20 hg19_knownGene exon 30522495 30522691 0.000000 + . gene_id "TTLL9"; transcript_id "AX748163:uc002wwy.1";
+chr20 hg19_knownGene exon 30525199 30525312 0.000000 + . gene_id "TTLL9"; transcript_id "AX748163:uc002wwy.1";
+chr20 hg19_knownGene exon 30526945 30527069 0.000000 + . gene_id "TTLL9"; transcript_id "AX748163:uc002wwy.1";
+chr20 hg19_knownGene exon 30530748 30530858 0.000000 + . gene_id "TTLL9"; transcript_id "AX748163:uc002wwy.1";
+chr20 hg19_knownGene exon 30531569 30531648 0.000000 + . gene_id "TTLL9"; transcript_id "AX748163:uc002wwy.1";
+chr20 hg19_knownGene exon 30531829 30532764 0.000000 + . gene_id "TTLL9"; transcript_id "AX748163:uc002wwy.1";
+chr20 hg19_knownGene exon 30458505 30458752 0.000000 + . gene_id "TTLL9"; transcript_id "BC104024:uc002wwz.1";
+chr20 hg19_knownGene exon 30458925 30458998 0.000000 + . gene_id "TTLL9"; transcript_id "BC104024:uc002wwz.1";
+chr20 hg19_knownGene exon 30471824 30471905 0.000000 + . gene_id "TTLL9"; transcript_id "BC104024:uc002wwz.1";
+chr20 hg19_knownGene exon 30474999 30475042 0.000000 + . gene_id "TTLL9"; transcript_id "BC104024:uc002wwz.1";
+chr20 hg19_knownGene exon 30486276 30486368 0.000000 + . gene_id "TTLL9"; transcript_id "BC104024:uc002wwz.1";
+chr20 hg19_knownGene exon 30496394 30496505 0.000000 + . gene_id "TTLL9"; transcript_id "BC104024:uc002wwz.1";
+chr20 hg19_knownGene exon 30497540 30497725 0.000000 + . gene_id "TTLL9"; transcript_id "BC104024:uc002wwz.1";
+chr20 hg19_knownGene exon 30510766 30510856 0.000000 + . gene_id "TTLL9"; transcript_id "BC104024:uc002wwz.1";
+chr20 hg19_knownGene exon 30512812 30512852 0.000000 + . gene_id "TTLL9"; transcript_id "BC104024:uc002wwz.1";
+chr20 hg19_knownGene exon 30513676 30513763 0.000000 + . gene_id "TTLL9"; transcript_id "BC104024:uc002wwz.1";
+chr20 hg19_knownGene exon 30521603 30521661 0.000000 + . gene_id "TTLL9"; transcript_id "BC104024:uc002wwz.1";
+chr20 hg19_knownGene exon 30525199 30525312 0.000000 + . gene_id "TTLL9"; transcript_id "BC104024:uc002wwz.1";
+chr20 hg19_knownGene exon 30530748 30530858 0.000000 + . gene_id "TTLL9"; transcript_id "BC104024:uc002wwz.1";
+chr20 hg19_knownGene exon 30531569 30531648 0.000000 + . gene_id "TTLL9"; transcript_id "BC104024:uc002wwz.1";
+chr20 hg19_knownGene exon 30531829 30532764 0.000000 + . gene_id "TTLL9"; transcript_id "BC104024:uc002wwz.1";
+chr20 hg19_knownGene exon 30458514 30458756 0.000000 + . gene_id "TTLL9"; transcript_id "BC068593:uc002wxa.1";
+chr20 hg19_knownGene exon 30458925 30458998 0.000000 + . gene_id "TTLL9"; transcript_id "BC068593:uc002wxa.1";
+chr20 hg19_knownGene exon 30471824 30471905 0.000000 + . gene_id "TTLL9"; transcript_id "BC068593:uc002wxa.1";
+chr20 hg19_knownGene exon 30474999 30475042 0.000000 + . gene_id "TTLL9"; transcript_id "BC068593:uc002wxa.1";
+chr20 hg19_knownGene exon 30486276 30486368 0.000000 + . gene_id "TTLL9"; transcript_id "BC068593:uc002wxa.1";
+chr20 hg19_knownGene exon 30496394 30496505 0.000000 + . gene_id "TTLL9"; transcript_id "BC068593:uc002wxa.1";
+chr20 hg19_knownGene exon 30497540 30497725 0.000000 + . gene_id "TTLL9"; transcript_id "BC068593:uc002wxa.1";
+chr20 hg19_knownGene exon 30507667 30507735 0.000000 + . gene_id "TTLL9"; transcript_id "BC068593:uc002wxa.1";
+chr20 hg19_knownGene exon 30510766 30510856 0.000000 + . gene_id "TTLL9"; transcript_id "BC068593:uc002wxa.1";
+chr20 hg19_knownGene exon 30512812 30512852 0.000000 + . gene_id "TTLL9"; transcript_id "BC068593:uc002wxa.1";
+chr20 hg19_knownGene exon 30521603 30521661 0.000000 + . gene_id "TTLL9"; transcript_id "BC068593:uc002wxa.1";
+chr20 hg19_knownGene exon 30522495 30522691 0.000000 + . gene_id "TTLL9"; transcript_id "BC068593:uc002wxa.1";
+chr20 hg19_knownGene exon 30525199 30525312 0.000000 + . gene_id "TTLL9"; transcript_id "BC068593:uc002wxa.1";
+chr20 hg19_knownGene exon 30525962 30526066 0.000000 + . gene_id "TTLL9"; transcript_id "BC068593:uc002wxa.1";
+chr20 hg19_knownGene exon 30526945 30527069 0.000000 + . gene_id "TTLL9"; transcript_id "BC068593:uc002wxa.1";
+chr20 hg19_knownGene exon 30530748 30530858 0.000000 + . gene_id "TTLL9"; transcript_id "BC068593:uc002wxa.1";
+chr20 hg19_knownGene exon 30531569 30531648 0.000000 + . gene_id "TTLL9"; transcript_id "BC068593:uc002wxa.1";
+chr20 hg19_knownGene exon 30531829 30532764 0.000000 + . gene_id "TTLL9"; transcript_id "BC068593:uc002wxa.1";
+chr20 hg19_knownGene exon 30458514 30458756 0.000000 + . gene_id "TTLL9"; transcript_id "BC104025:uc002wxb.1";
+chr20 hg19_knownGene exon 30474999 30475042 0.000000 + . gene_id "TTLL9"; transcript_id "BC104025:uc002wxb.1";
+chr20 hg19_knownGene exon 30486276 30486368 0.000000 + . gene_id "TTLL9"; transcript_id "BC104025:uc002wxb.1";
+chr20 hg19_knownGene exon 30496394 30496505 0.000000 + . gene_id "TTLL9"; transcript_id "BC104025:uc002wxb.1";
+chr20 hg19_knownGene exon 30497540 30497725 0.000000 + . gene_id "TTLL9"; transcript_id "BC104025:uc002wxb.1";
+chr20 hg19_knownGene exon 30507667 30507735 0.000000 + . gene_id "TTLL9"; transcript_id "BC104025:uc002wxb.1";
+chr20 hg19_knownGene exon 30510766 30510856 0.000000 + . gene_id "TTLL9"; transcript_id "BC104025:uc002wxb.1";
+chr20 hg19_knownGene exon 30512812 30512852 0.000000 + . gene_id "TTLL9"; transcript_id "BC104025:uc002wxb.1";
+chr20 hg19_knownGene exon 30513676 30513763 0.000000 + . gene_id "TTLL9"; transcript_id "BC104025:uc002wxb.1";
+chr20 hg19_knownGene exon 30521603 30521661 0.000000 + . gene_id "TTLL9"; transcript_id "BC104025:uc002wxb.1";
+chr20 hg19_knownGene exon 30522495 30522691 0.000000 + . gene_id "TTLL9"; transcript_id "BC104025:uc002wxb.1";
+chr20 hg19_knownGene exon 30525199 30525312 0.000000 + . gene_id "TTLL9"; transcript_id "BC104025:uc002wxb.1";
+chr20 hg19_knownGene exon 30525985 30526066 0.000000 + . gene_id "TTLL9"; transcript_id "BC104025:uc002wxb.1";
+chr20 hg19_knownGene exon 30526945 30527069 0.000000 + . gene_id "TTLL9"; transcript_id "BC104025:uc002wxb.1";
+chr20 hg19_knownGene exon 30530748 30530858 0.000000 + . gene_id "TTLL9"; transcript_id "BC104025:uc002wxb.1";
+chr20 hg19_knownGene exon 30531569 30531648 0.000000 + . gene_id "TTLL9"; transcript_id "BC104025:uc002wxb.1";
+chr20 hg19_knownGene exon 30531829 30532764 0.000000 + . gene_id "TTLL9"; transcript_id "BC104025:uc002wxb.1";
+chr20 hg19_knownGene exon 30467630 30467700 0.000000 + . gene_id "TTLL9"; transcript_id "AK302360:uc010ztp.1";
+chr20 hg19_knownGene exon 30486276 30486368 0.000000 + . gene_id "TTLL9"; transcript_id "AK302360:uc010ztp.1";
+chr20 hg19_knownGene exon 30496394 30496505 0.000000 + . gene_id "TTLL9"; transcript_id "AK302360:uc010ztp.1";
+chr20 hg19_knownGene exon 30497540 30497725 0.000000 + . gene_id "TTLL9"; transcript_id "AK302360:uc010ztp.1";
+chr20 hg19_knownGene exon 30510766 30510856 0.000000 + . gene_id "TTLL9"; transcript_id "AK302360:uc010ztp.1";
+chr20 hg19_knownGene exon 30512812 30512852 0.000000 + . gene_id "TTLL9"; transcript_id "AK302360:uc010ztp.1";
+chr20 hg19_knownGene exon 30513676 30513763 0.000000 + . gene_id "TTLL9"; transcript_id "AK302360:uc010ztp.1";
+chr20 hg19_knownGene exon 30521603 30521661 0.000000 + . gene_id "TTLL9"; transcript_id "AK302360:uc010ztp.1";
+chr20 hg19_knownGene exon 30522495 30522691 0.000000 + . gene_id "TTLL9"; transcript_id "AK302360:uc010ztp.1";
+chr20 hg19_knownGene exon 30525199 30525312 0.000000 + . gene_id "TTLL9"; transcript_id "AK302360:uc010ztp.1";
+chr20 hg19_knownGene exon 30530748 30530858 0.000000 + . gene_id "TTLL9"; transcript_id "AK302360:uc010ztp.1";
+chr20 hg19_knownGene exon 30531569 30531648 0.000000 + . gene_id "TTLL9"; transcript_id "AK302360:uc010ztp.1";
+chr20 hg19_knownGene exon 30531829 30532764 0.000000 + . gene_id "TTLL9"; transcript_id "AK302360:uc010ztp.1";
+chr20 hg19_knownGene CDS 30533613 30533692 0.000000 - 2 gene_id "PDRG1"; transcript_id "NM_030815:uc002wxd.3";
+chr20 hg19_knownGene exon 30532758 30533692 0.000000 - . gene_id "PDRG1"; transcript_id "NM_030815:uc002wxd.3";
+chr20 hg19_knownGene CDS 30534299 30534379 0.000000 - 2 gene_id "PDRG1"; transcript_id "NM_030815:uc002wxd.3";
+chr20 hg19_knownGene exon 30534299 30534379 0.000000 - . gene_id "PDRG1"; transcript_id "NM_030815:uc002wxd.3";
+chr20 hg19_knownGene CDS 30536611 30536685 0.000000 - 2 gene_id "PDRG1"; transcript_id "NM_030815:uc002wxd.3";
+chr20 hg19_knownGene exon 30536611 30536685 0.000000 - . gene_id "PDRG1"; transcript_id "NM_030815:uc002wxd.3";
+chr20 hg19_knownGene CDS 30538115 30538190 0.000000 - 0 gene_id "PDRG1"; transcript_id "NM_030815:uc002wxd.3";
+chr20 hg19_knownGene exon 30538115 30538190 0.000000 - . gene_id "PDRG1"; transcript_id "NM_030815:uc002wxd.3";
+chr20 hg19_knownGene CDS 30539678 30539764 0.000000 - 0 gene_id "PDRG1"; transcript_id "NM_030815:uc002wxd.3";
+chr20 hg19_knownGene exon 30539678 30539883 0.000000 - . gene_id "PDRG1"; transcript_id "NM_030815:uc002wxd.3";
+chr20 hg19_knownGene CDS 30555979 30556562 0.000000 + 0 gene_id "XKR7"; transcript_id "NM_001011718:uc002wxe.3";
+chr20 hg19_knownGene exon 30555805 30556562 0.000000 + . gene_id "XKR7"; transcript_id "NM_001011718:uc002wxe.3";
+chr20 hg19_knownGene CDS 30582871 30583073 0.000000 + 1 gene_id "XKR7"; transcript_id "NM_001011718:uc002wxe.3";
+chr20 hg19_knownGene exon 30582871 30583073 0.000000 + . gene_id "XKR7"; transcript_id "NM_001011718:uc002wxe.3";
+chr20 hg19_knownGene CDS 30584308 30585257 0.000000 + 2 gene_id "XKR7"; transcript_id "NM_001011718:uc002wxe.3";
+chr20 hg19_knownGene exon 30584308 30586256 0.000000 + . gene_id "XKR7"; transcript_id "NM_001011718:uc002wxe.3";
+chr20 hg19_knownGene CDS 30598258 30598287 0.000000 + 0 gene_id "C20orf160"; transcript_id "NM_080625:uc002wxf.2";
+chr20 hg19_knownGene exon 30598245 30598287 0.000000 + . gene_id "C20orf160"; transcript_id "NM_080625:uc002wxf.2";
+chr20 hg19_knownGene CDS 30602707 30602874 0.000000 + 0 gene_id "C20orf160"; transcript_id "NM_080625:uc002wxf.2";
+chr20 hg19_knownGene exon 30602707 30602874 0.000000 + . gene_id "C20orf160"; transcript_id "NM_080625:uc002wxf.2";
+chr20 hg19_knownGene CDS 30605603 30605686 0.000000 + 0 gene_id "C20orf160"; transcript_id "NM_080625:uc002wxf.2";
+chr20 hg19_knownGene exon 30605603 30605686 0.000000 + . gene_id "C20orf160"; transcript_id "NM_080625:uc002wxf.2";
+chr20 hg19_knownGene CDS 30605782 30605965 0.000000 + 0 gene_id "C20orf160"; transcript_id "NM_080625:uc002wxf.2";
+chr20 hg19_knownGene exon 30605782 30605965 0.000000 + . gene_id "C20orf160"; transcript_id "NM_080625:uc002wxf.2";
+chr20 hg19_knownGene CDS 30606746 30607212 0.000000 + 2 gene_id "C20orf160"; transcript_id "NM_080625:uc002wxf.2";
+chr20 hg19_knownGene exon 30606746 30607212 0.000000 + . gene_id "C20orf160"; transcript_id "NM_080625:uc002wxf.2";
+chr20 hg19_knownGene CDS 30610463 30610598 0.000000 + 0 gene_id "C20orf160"; transcript_id "NM_080625:uc002wxf.2";
+chr20 hg19_knownGene exon 30610463 30610598 0.000000 + . gene_id "C20orf160"; transcript_id "NM_080625:uc002wxf.2";
+chr20 hg19_knownGene CDS 30616798 30616927 0.000000 + 2 gene_id "C20orf160"; transcript_id "NM_080625:uc002wxf.2";
+chr20 hg19_knownGene exon 30616798 30616927 0.000000 + . gene_id "C20orf160"; transcript_id "NM_080625:uc002wxf.2";
+chr20 hg19_knownGene CDS 30617503 30617602 0.000000 + 1 gene_id "C20orf160"; transcript_id "NM_080625:uc002wxf.2";
+chr20 hg19_knownGene exon 30617503 30617641 0.000000 + . gene_id "C20orf160"; transcript_id "NM_080625:uc002wxf.2";
+chr20 hg19_knownGene exon 30618804 30619984 0.000000 + . gene_id "C20orf160"; transcript_id "NM_080625:uc002wxf.2";
+chr20 hg19_knownGene exon 30610178 30610598 0.000000 + . gene_id "C20orf160"; transcript_id "AK125588:uc002wxg.2";
+chr20 hg19_knownGene exon 30613659 30613722 0.000000 + . gene_id "C20orf160"; transcript_id "AK125588:uc002wxg.2";
+chr20 hg19_knownGene CDS 30616919 30616927 0.000000 + 0 gene_id "C20orf160"; transcript_id "AK125588:uc002wxg.2";
+chr20 hg19_knownGene exon 30616798 30616927 0.000000 + . gene_id "C20orf160"; transcript_id "AK125588:uc002wxg.2";
+chr20 hg19_knownGene CDS 30617503 30617641 0.000000 + 0 gene_id "C20orf160"; transcript_id "AK125588:uc002wxg.2";
+chr20 hg19_knownGene exon 30617503 30617641 0.000000 + . gene_id "C20orf160"; transcript_id "AK125588:uc002wxg.2";
+chr20 hg19_knownGene CDS 30618804 30619114 0.000000 + 2 gene_id "C20orf160"; transcript_id "AK125588:uc002wxg.2";
+chr20 hg19_knownGene exon 30618804 30619984 0.000000 + . gene_id "C20orf160"; transcript_id "AK125588:uc002wxg.2";
+chr20 hg19_knownGene exon 30639991 30640289 0.000000 + . gene_id "HCK"; transcript_id "NM_001172132:uc010gdy.3";
+chr20 hg19_knownGene CDS 30642083 30642084 0.000000 + 0 gene_id "HCK"; transcript_id "NM_001172132:uc010gdy.3";
+chr20 hg19_knownGene exon 30642019 30642084 0.000000 + . gene_id "HCK"; transcript_id "NM_001172132:uc010gdy.3";
+chr20 hg19_knownGene CDS 30659465 30659585 0.000000 + 1 gene_id "HCK"; transcript_id "NM_001172132:uc010gdy.3";
+chr20 hg19_knownGene exon 30659465 30659585 0.000000 + . gene_id "HCK"; transcript_id "NM_001172132:uc010gdy.3";
+chr20 hg19_knownGene CDS 30661122 30661164 0.000000 + 0 gene_id "HCK"; transcript_id "NM_001172132:uc010gdy.3";
+chr20 hg19_knownGene exon 30661122 30661164 0.000000 + . gene_id "HCK"; transcript_id "NM_001172132:uc010gdy.3";
+chr20 hg19_knownGene CDS 30661519 30661621 0.000000 + 2 gene_id "HCK"; transcript_id "NM_001172132:uc010gdy.3";
+chr20 hg19_knownGene exon 30661519 30661621 0.000000 + . gene_id "HCK"; transcript_id "NM_001172132:uc010gdy.3";
+chr20 hg19_knownGene CDS 30662426 30662524 0.000000 + 1 gene_id "HCK"; transcript_id "NM_001172132:uc010gdy.3";
+chr20 hg19_knownGene exon 30662426 30662524 0.000000 + . gene_id "HCK"; transcript_id "NM_001172132:uc010gdy.3";
+chr20 hg19_knownGene CDS 30667577 30667680 0.000000 + 1 gene_id "HCK"; transcript_id "NM_001172132:uc010gdy.3";
+chr20 hg19_knownGene exon 30667577 30667680 0.000000 + . gene_id "HCK"; transcript_id "NM_001172132:uc010gdy.3";
+chr20 hg19_knownGene CDS 30671697 30671846 0.000000 + 2 gene_id "HCK"; transcript_id "NM_001172132:uc010gdy.3";
+chr20 hg19_knownGene exon 30671697 30671846 0.000000 + . gene_id "HCK"; transcript_id "NM_001172132:uc010gdy.3";
+chr20 hg19_knownGene CDS 30672194 30672346 0.000000 + 2 gene_id "HCK"; transcript_id "NM_001172132:uc010gdy.3";
+chr20 hg19_knownGene exon 30672194 30672346 0.000000 + . gene_id "HCK"; transcript_id "NM_001172132:uc010gdy.3";
+chr20 hg19_knownGene CDS 30674431 30674610 0.000000 + 2 gene_id "HCK"; transcript_id "NM_001172132:uc010gdy.3";
+chr20 hg19_knownGene exon 30674431 30674610 0.000000 + . gene_id "HCK"; transcript_id "NM_001172132:uc010gdy.3";
+chr20 hg19_knownGene CDS 30676371 30676447 0.000000 + 2 gene_id "HCK"; transcript_id "NM_001172132:uc010gdy.3";
+chr20 hg19_knownGene exon 30676371 30676447 0.000000 + . gene_id "HCK"; transcript_id "NM_001172132:uc010gdy.3";
+chr20 hg19_knownGene CDS 30681666 30681819 0.000000 + 0 gene_id "HCK"; transcript_id "NM_001172132:uc010gdy.3";
+chr20 hg19_knownGene exon 30681666 30681819 0.000000 + . gene_id "HCK"; transcript_id "NM_001172132:uc010gdy.3";
+chr20 hg19_knownGene CDS 30686807 30686938 0.000000 + 2 gene_id "HCK"; transcript_id "NM_001172132:uc010gdy.3";
+chr20 hg19_knownGene exon 30686807 30686938 0.000000 + . gene_id "HCK"; transcript_id "NM_001172132:uc010gdy.3";
+chr20 hg19_knownGene CDS 30689120 30689319 0.000000 + 2 gene_id "HCK"; transcript_id "NM_001172132:uc010gdy.3";
+chr20 hg19_knownGene exon 30689120 30689657 0.000000 + . gene_id "HCK"; transcript_id "NM_001172132:uc010gdy.3";
+chr20 hg19_knownGene exon 30639991 30640289 0.000000 + . gene_id "HCK"; transcript_id "NM_001172133:uc021wbv.1";
+chr20 hg19_knownGene exon 30657491 30657554 0.000000 + . gene_id "HCK"; transcript_id "NM_001172133:uc021wbv.1";
+chr20 hg19_knownGene CDS 30659466 30659585 0.000000 + 0 gene_id "HCK"; transcript_id "NM_001172133:uc021wbv.1";
+chr20 hg19_knownGene exon 30659465 30659585 0.000000 + . gene_id "HCK"; transcript_id "NM_001172133:uc021wbv.1";
+chr20 hg19_knownGene CDS 30661122 30661164 0.000000 + 0 gene_id "HCK"; transcript_id "NM_001172133:uc021wbv.1";
+chr20 hg19_knownGene exon 30661122 30661164 0.000000 + . gene_id "HCK"; transcript_id "NM_001172133:uc021wbv.1";
+chr20 hg19_knownGene CDS 30661519 30661621 0.000000 + 2 gene_id "HCK"; transcript_id "NM_001172133:uc021wbv.1";
+chr20 hg19_knownGene exon 30661519 30661621 0.000000 + . gene_id "HCK"; transcript_id "NM_001172133:uc021wbv.1";
+chr20 hg19_knownGene CDS 30662426 30662524 0.000000 + 1 gene_id "HCK"; transcript_id "NM_001172133:uc021wbv.1";
+chr20 hg19_knownGene exon 30662426 30662524 0.000000 + . gene_id "HCK"; transcript_id "NM_001172133:uc021wbv.1";
+chr20 hg19_knownGene CDS 30667577 30667680 0.000000 + 1 gene_id "HCK"; transcript_id "NM_001172133:uc021wbv.1";
+chr20 hg19_knownGene exon 30667577 30667680 0.000000 + . gene_id "HCK"; transcript_id "NM_001172133:uc021wbv.1";
+chr20 hg19_knownGene CDS 30671697 30671846 0.000000 + 2 gene_id "HCK"; transcript_id "NM_001172133:uc021wbv.1";
+chr20 hg19_knownGene exon 30671697 30671846 0.000000 + . gene_id "HCK"; transcript_id "NM_001172133:uc021wbv.1";
+chr20 hg19_knownGene CDS 30672194 30672346 0.000000 + 2 gene_id "HCK"; transcript_id "NM_001172133:uc021wbv.1";
+chr20 hg19_knownGene exon 30672194 30672346 0.000000 + . gene_id "HCK"; transcript_id "NM_001172133:uc021wbv.1";
+chr20 hg19_knownGene CDS 30674431 30674610 0.000000 + 2 gene_id "HCK"; transcript_id "NM_001172133:uc021wbv.1";
+chr20 hg19_knownGene exon 30674431 30674610 0.000000 + . gene_id "HCK"; transcript_id "NM_001172133:uc021wbv.1";
+chr20 hg19_knownGene CDS 30676371 30676447 0.000000 + 2 gene_id "HCK"; transcript_id "NM_001172133:uc021wbv.1";
+chr20 hg19_knownGene exon 30676371 30676447 0.000000 + . gene_id "HCK"; transcript_id "NM_001172133:uc021wbv.1";
+chr20 hg19_knownGene CDS 30681666 30681819 0.000000 + 0 gene_id "HCK"; transcript_id "NM_001172133:uc021wbv.1";
+chr20 hg19_knownGene exon 30681666 30681819 0.000000 + . gene_id "HCK"; transcript_id "NM_001172133:uc021wbv.1";
+chr20 hg19_knownGene CDS 30686807 30686938 0.000000 + 2 gene_id "HCK"; transcript_id "NM_001172133:uc021wbv.1";
+chr20 hg19_knownGene exon 30686807 30686938 0.000000 + . gene_id "HCK"; transcript_id "NM_001172133:uc021wbv.1";
+chr20 hg19_knownGene CDS 30689120 30689319 0.000000 + 2 gene_id "HCK"; transcript_id "NM_001172133:uc021wbv.1";
+chr20 hg19_knownGene exon 30689120 30689657 0.000000 + . gene_id "HCK"; transcript_id "NM_001172133:uc021wbv.1";
+chr20 hg19_knownGene CDS 30640228 30640289 0.000000 + 0 gene_id "HCK"; transcript_id "NM_002110:uc002wxh.3";
+chr20 hg19_knownGene exon 30639991 30640289 0.000000 + . gene_id "HCK"; transcript_id "NM_002110:uc002wxh.3";
+chr20 hg19_knownGene CDS 30659465 30659585 0.000000 + 1 gene_id "HCK"; transcript_id "NM_002110:uc002wxh.3";
+chr20 hg19_knownGene exon 30659465 30659585 0.000000 + . gene_id "HCK"; transcript_id "NM_002110:uc002wxh.3";
+chr20 hg19_knownGene CDS 30661122 30661164 0.000000 + 0 gene_id "HCK"; transcript_id "NM_002110:uc002wxh.3";
+chr20 hg19_knownGene exon 30661122 30661164 0.000000 + . gene_id "HCK"; transcript_id "NM_002110:uc002wxh.3";
+chr20 hg19_knownGene CDS 30661519 30661621 0.000000 + 2 gene_id "HCK"; transcript_id "NM_002110:uc002wxh.3";
+chr20 hg19_knownGene exon 30661519 30661621 0.000000 + . gene_id "HCK"; transcript_id "NM_002110:uc002wxh.3";
+chr20 hg19_knownGene CDS 30662426 30662524 0.000000 + 1 gene_id "HCK"; transcript_id "NM_002110:uc002wxh.3";
+chr20 hg19_knownGene exon 30662426 30662524 0.000000 + . gene_id "HCK"; transcript_id "NM_002110:uc002wxh.3";
+chr20 hg19_knownGene CDS 30667577 30667680 0.000000 + 1 gene_id "HCK"; transcript_id "NM_002110:uc002wxh.3";
+chr20 hg19_knownGene exon 30667577 30667680 0.000000 + . gene_id "HCK"; transcript_id "NM_002110:uc002wxh.3";
+chr20 hg19_knownGene CDS 30671697 30671846 0.000000 + 2 gene_id "HCK"; transcript_id "NM_002110:uc002wxh.3";
+chr20 hg19_knownGene exon 30671697 30671846 0.000000 + . gene_id "HCK"; transcript_id "NM_002110:uc002wxh.3";
+chr20 hg19_knownGene CDS 30672194 30672346 0.000000 + 2 gene_id "HCK"; transcript_id "NM_002110:uc002wxh.3";
+chr20 hg19_knownGene exon 30672194 30672346 0.000000 + . gene_id "HCK"; transcript_id "NM_002110:uc002wxh.3";
+chr20 hg19_knownGene CDS 30674431 30674610 0.000000 + 2 gene_id "HCK"; transcript_id "NM_002110:uc002wxh.3";
+chr20 hg19_knownGene exon 30674431 30674610 0.000000 + . gene_id "HCK"; transcript_id "NM_002110:uc002wxh.3";
+chr20 hg19_knownGene CDS 30676371 30676447 0.000000 + 2 gene_id "HCK"; transcript_id "NM_002110:uc002wxh.3";
+chr20 hg19_knownGene exon 30676371 30676447 0.000000 + . gene_id "HCK"; transcript_id "NM_002110:uc002wxh.3";
+chr20 hg19_knownGene CDS 30681666 30681819 0.000000 + 0 gene_id "HCK"; transcript_id "NM_002110:uc002wxh.3";
+chr20 hg19_knownGene exon 30681666 30681819 0.000000 + . gene_id "HCK"; transcript_id "NM_002110:uc002wxh.3";
+chr20 hg19_knownGene CDS 30686807 30686938 0.000000 + 2 gene_id "HCK"; transcript_id "NM_002110:uc002wxh.3";
+chr20 hg19_knownGene exon 30686807 30686938 0.000000 + . gene_id "HCK"; transcript_id "NM_002110:uc002wxh.3";
+chr20 hg19_knownGene CDS 30689120 30689319 0.000000 + 2 gene_id "HCK"; transcript_id "NM_002110:uc002wxh.3";
+chr20 hg19_knownGene exon 30689120 30689657 0.000000 + . gene_id "HCK"; transcript_id "NM_002110:uc002wxh.3";
+chr20 hg19_knownGene exon 30639991 30640289 0.000000 + . gene_id "HCK"; transcript_id "NM_001172131:uc002wxi.3";
+chr20 hg19_knownGene CDS 30659466 30659585 0.000000 + 0 gene_id "HCK"; transcript_id "NM_001172131:uc002wxi.3";
+chr20 hg19_knownGene exon 30659465 30659585 0.000000 + . gene_id "HCK"; transcript_id "NM_001172131:uc002wxi.3";
+chr20 hg19_knownGene CDS 30661122 30661164 0.000000 + 0 gene_id "HCK"; transcript_id "NM_001172131:uc002wxi.3";
+chr20 hg19_knownGene exon 30661122 30661164 0.000000 + . gene_id "HCK"; transcript_id "NM_001172131:uc002wxi.3";
+chr20 hg19_knownGene CDS 30661522 30661621 0.000000 + 2 gene_id "HCK"; transcript_id "NM_001172131:uc002wxi.3";
+chr20 hg19_knownGene exon 30661522 30661621 0.000000 + . gene_id "HCK"; transcript_id "NM_001172131:uc002wxi.3";
+chr20 hg19_knownGene CDS 30662426 30662524 0.000000 + 1 gene_id "HCK"; transcript_id "NM_001172131:uc002wxi.3";
+chr20 hg19_knownGene exon 30662426 30662524 0.000000 + . gene_id "HCK"; transcript_id "NM_001172131:uc002wxi.3";
+chr20 hg19_knownGene CDS 30667577 30667680 0.000000 + 1 gene_id "HCK"; transcript_id "NM_001172131:uc002wxi.3";
+chr20 hg19_knownGene exon 30667577 30667680 0.000000 + . gene_id "HCK"; transcript_id "NM_001172131:uc002wxi.3";
+chr20 hg19_knownGene CDS 30671697 30671846 0.000000 + 2 gene_id "HCK"; transcript_id "NM_001172131:uc002wxi.3";
+chr20 hg19_knownGene exon 30671697 30671846 0.000000 + . gene_id "HCK"; transcript_id "NM_001172131:uc002wxi.3";
+chr20 hg19_knownGene CDS 30672194 30672346 0.000000 + 2 gene_id "HCK"; transcript_id "NM_001172131:uc002wxi.3";
+chr20 hg19_knownGene exon 30672194 30672346 0.000000 + . gene_id "HCK"; transcript_id "NM_001172131:uc002wxi.3";
+chr20 hg19_knownGene CDS 30674431 30674610 0.000000 + 2 gene_id "HCK"; transcript_id "NM_001172131:uc002wxi.3";
+chr20 hg19_knownGene exon 30674431 30674610 0.000000 + . gene_id "HCK"; transcript_id "NM_001172131:uc002wxi.3";
+chr20 hg19_knownGene CDS 30676371 30676447 0.000000 + 2 gene_id "HCK"; transcript_id "NM_001172131:uc002wxi.3";
+chr20 hg19_knownGene exon 30676371 30676447 0.000000 + . gene_id "HCK"; transcript_id "NM_001172131:uc002wxi.3";
+chr20 hg19_knownGene CDS 30681666 30681819 0.000000 + 0 gene_id "HCK"; transcript_id "NM_001172131:uc002wxi.3";
+chr20 hg19_knownGene exon 30681666 30681819 0.000000 + . gene_id "HCK"; transcript_id "NM_001172131:uc002wxi.3";
+chr20 hg19_knownGene CDS 30686807 30686938 0.000000 + 2 gene_id "HCK"; transcript_id "NM_001172131:uc002wxi.3";
+chr20 hg19_knownGene exon 30686807 30686938 0.000000 + . gene_id "HCK"; transcript_id "NM_001172131:uc002wxi.3";
+chr20 hg19_knownGene CDS 30689120 30689319 0.000000 + 2 gene_id "HCK"; transcript_id "NM_001172131:uc002wxi.3";
+chr20 hg19_knownGene exon 30689120 30689657 0.000000 + . gene_id "HCK"; transcript_id "NM_001172131:uc002wxi.3";
+chr20 hg19_knownGene exon 30697309 30697558 0.000000 + . gene_id "TM9SF4"; transcript_id "AK302439:uc010ztr.1";
+chr20 hg19_knownGene exon 30720816 30720929 0.000000 + . gene_id "TM9SF4"; transcript_id "AK302439:uc010ztr.1";
+chr20 hg19_knownGene exon 30723877 30723976 0.000000 + . gene_id "TM9SF4"; transcript_id "AK302439:uc010ztr.1";
+chr20 hg19_knownGene CDS 30724750 30724800 0.000000 + 0 gene_id "TM9SF4"; transcript_id "AK302439:uc010ztr.1";
+chr20 hg19_knownGene exon 30724680 30724800 0.000000 + . gene_id "TM9SF4"; transcript_id "AK302439:uc010ztr.1";
+chr20 hg19_knownGene CDS 30729344 30729468 0.000000 + 0 gene_id "TM9SF4"; transcript_id "AK302439:uc010ztr.1";
+chr20 hg19_knownGene exon 30729344 30729468 0.000000 + . gene_id "TM9SF4"; transcript_id "AK302439:uc010ztr.1";
+chr20 hg19_knownGene CDS 30729569 30729698 0.000000 + 1 gene_id "TM9SF4"; transcript_id "AK302439:uc010ztr.1";
+chr20 hg19_knownGene exon 30729569 30729698 0.000000 + . gene_id "TM9SF4"; transcript_id "AK302439:uc010ztr.1";
+chr20 hg19_knownGene CDS 30730785 30730908 0.000000 + 0 gene_id "TM9SF4"; transcript_id "AK302439:uc010ztr.1";
+chr20 hg19_knownGene exon 30730785 30730908 0.000000 + . gene_id "TM9SF4"; transcript_id "AK302439:uc010ztr.1";
+chr20 hg19_knownGene CDS 30732894 30733012 0.000000 + 2 gene_id "TM9SF4"; transcript_id "AK302439:uc010ztr.1";
+chr20 hg19_knownGene exon 30732894 30733012 0.000000 + . gene_id "TM9SF4"; transcript_id "AK302439:uc010ztr.1";
+chr20 hg19_knownGene CDS 30733115 30733226 0.000000 + 0 gene_id "TM9SF4"; transcript_id "AK302439:uc010ztr.1";
+chr20 hg19_knownGene exon 30733115 30733226 0.000000 + . gene_id "TM9SF4"; transcript_id "AK302439:uc010ztr.1";
+chr20 hg19_knownGene CDS 30734588 30734655 0.000000 + 2 gene_id "TM9SF4"; transcript_id "AK302439:uc010ztr.1";
+chr20 hg19_knownGene exon 30734588 30734658 0.000000 + . gene_id "TM9SF4"; transcript_id "AK302439:uc010ztr.1";
+chr20 hg19_knownGene CDS 30697544 30697558 0.000000 + 0 gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene exon 30697309 30697558 0.000000 + . gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene CDS 30720816 30720929 0.000000 + 0 gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene exon 30720816 30720929 0.000000 + . gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene CDS 30723877 30723976 0.000000 + 0 gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene exon 30723877 30723976 0.000000 + . gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene CDS 30729300 30729468 0.000000 + 2 gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene exon 30729300 30729468 0.000000 + . gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene CDS 30729569 30729698 0.000000 + 1 gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene exon 30729569 30729698 0.000000 + . gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene CDS 30730785 30730908 0.000000 + 0 gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene exon 30730785 30730908 0.000000 + . gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene CDS 30732894 30733012 0.000000 + 2 gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene exon 30732894 30733012 0.000000 + . gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene CDS 30733115 30733226 0.000000 + 0 gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene exon 30733115 30733226 0.000000 + . gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene CDS 30734588 30734658 0.000000 + 2 gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene exon 30734588 30734658 0.000000 + . gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene CDS 30737437 30737569 0.000000 + 0 gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene exon 30737437 30737569 0.000000 + . gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene CDS 30738425 30738506 0.000000 + 2 gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene exon 30738425 30738506 0.000000 + . gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene CDS 30738603 30738678 0.000000 + 1 gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene exon 30738603 30738678 0.000000 + . gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene CDS 30742906 30742989 0.000000 + 0 gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene exon 30742906 30742989 0.000000 + . gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene CDS 30745597 30745772 0.000000 + 0 gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene exon 30745597 30745772 0.000000 + . gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene CDS 30746254 30746317 0.000000 + 1 gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene exon 30746254 30746317 0.000000 + . gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene CDS 30747795 30747914 0.000000 + 0 gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene exon 30747795 30747914 0.000000 + . gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene CDS 30749079 30749168 0.000000 + 0 gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene exon 30749079 30749168 0.000000 + . gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene CDS 30753098 30753244 0.000000 + 0 gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene exon 30753098 30755061 0.000000 + . gene_id "TM9SF4"; transcript_id "NM_014742:uc002wxj.2";
+chr20 hg19_knownGene exon 30697309 30697558 0.000000 + . gene_id "TM9SF4"; transcript_id "AK294980:uc010zts.1";
+chr20 hg19_knownGene exon 30720816 30720929 0.000000 + . gene_id "TM9SF4"; transcript_id "AK294980:uc010zts.1";
+chr20 hg19_knownGene exon 30723877 30723976 0.000000 + . gene_id "TM9SF4"; transcript_id "AK294980:uc010zts.1";
+chr20 hg19_knownGene CDS 30729350 30729468 0.000000 + 0 gene_id "TM9SF4"; transcript_id "AK294980:uc010zts.1";
+chr20 hg19_knownGene exon 30729344 30729468 0.000000 + . gene_id "TM9SF4"; transcript_id "AK294980:uc010zts.1";
+chr20 hg19_knownGene CDS 30729569 30729698 0.000000 + 1 gene_id "TM9SF4"; transcript_id "AK294980:uc010zts.1";
+chr20 hg19_knownGene exon 30729569 30729698 0.000000 + . gene_id "TM9SF4"; transcript_id "AK294980:uc010zts.1";
+chr20 hg19_knownGene CDS 30730785 30730908 0.000000 + 0 gene_id "TM9SF4"; transcript_id "AK294980:uc010zts.1";
+chr20 hg19_knownGene exon 30730785 30730908 0.000000 + . gene_id "TM9SF4"; transcript_id "AK294980:uc010zts.1";
+chr20 hg19_knownGene CDS 30732894 30733012 0.000000 + 2 gene_id "TM9SF4"; transcript_id "AK294980:uc010zts.1";
+chr20 hg19_knownGene exon 30732894 30733012 0.000000 + . gene_id "TM9SF4"; transcript_id "AK294980:uc010zts.1";
+chr20 hg19_knownGene CDS 30733115 30733226 0.000000 + 0 gene_id "TM9SF4"; transcript_id "AK294980:uc010zts.1";
+chr20 hg19_knownGene exon 30733115 30733226 0.000000 + . gene_id "TM9SF4"; transcript_id "AK294980:uc010zts.1";
+chr20 hg19_knownGene CDS 30734588 30734658 0.000000 + 2 gene_id "TM9SF4"; transcript_id "AK294980:uc010zts.1";
+chr20 hg19_knownGene exon 30734588 30734658 0.000000 + . gene_id "TM9SF4"; transcript_id "AK294980:uc010zts.1";
+chr20 hg19_knownGene CDS 30737437 30737569 0.000000 + 0 gene_id "TM9SF4"; transcript_id "AK294980:uc010zts.1";
+chr20 hg19_knownGene exon 30737437 30737569 0.000000 + . gene_id "TM9SF4"; transcript_id "AK294980:uc010zts.1";
+chr20 hg19_knownGene CDS 30738425 30738506 0.000000 + 2 gene_id "TM9SF4"; transcript_id "AK294980:uc010zts.1";
+chr20 hg19_knownGene exon 30738425 30738506 0.000000 + . gene_id "TM9SF4"; transcript_id "AK294980:uc010zts.1";
+chr20 hg19_knownGene CDS 30738603 30738678 0.000000 + 1 gene_id "TM9SF4"; transcript_id "AK294980:uc010zts.1";
+chr20 hg19_knownGene exon 30738603 30738678 0.000000 + . gene_id "TM9SF4"; transcript_id "AK294980:uc010zts.1";
+chr20 hg19_knownGene CDS 30742906 30742989 0.000000 + 0 gene_id "TM9SF4"; transcript_id "AK294980:uc010zts.1";
+chr20 hg19_knownGene exon 30742906 30742989 0.000000 + . gene_id "TM9SF4"; transcript_id "AK294980:uc010zts.1";
+chr20 hg19_knownGene CDS 30745597 30745772 0.000000 + 0 gene_id "TM9SF4"; transcript_id "AK294980:uc010zts.1";
+chr20 hg19_knownGene exon 30745597 30745772 0.000000 + . gene_id "TM9SF4"; transcript_id "AK294980:uc010zts.1";
+chr20 hg19_knownGene CDS 30746254 30746317 0.000000 + 1 gene_id "TM9SF4"; transcript_id "AK294980:uc010zts.1";
+chr20 hg19_knownGene exon 30746254 30746317 0.000000 + . gene_id "TM9SF4"; transcript_id "AK294980:uc010zts.1";
+chr20 hg19_knownGene CDS 30747795 30747914 0.000000 + 0 gene_id "TM9SF4"; transcript_id "AK294980:uc010zts.1";
+chr20 hg19_knownGene exon 30747795 30747914 0.000000 + . gene_id "TM9SF4"; transcript_id "AK294980:uc010zts.1";
+chr20 hg19_knownGene CDS 30749079 30749168 0.000000 + 0 gene_id "TM9SF4"; transcript_id "AK294980:uc010zts.1";
+chr20 hg19_knownGene exon 30749079 30749168 0.000000 + . gene_id "TM9SF4"; transcript_id "AK294980:uc010zts.1";
+chr20 hg19_knownGene CDS 30753098 30753244 0.000000 + 0 gene_id "TM9SF4"; transcript_id "AK294980:uc010zts.1";
+chr20 hg19_knownGene exon 30753098 30755061 0.000000 + . gene_id "TM9SF4"; transcript_id "AK294980:uc010zts.1";
+chr20 hg19_knownGene exon 30697539 30697842 0.000000 + . gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene CDS 30720852 30720929 0.000000 + 0 gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene exon 30720816 30720929 0.000000 + . gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene CDS 30723877 30723976 0.000000 + 0 gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene exon 30723877 30723976 0.000000 + . gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene CDS 30729300 30729468 0.000000 + 2 gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene exon 30729300 30729468 0.000000 + . gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene CDS 30729569 30729698 0.000000 + 1 gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene exon 30729569 30729698 0.000000 + . gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene CDS 30730785 30730908 0.000000 + 0 gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene exon 30730785 30730908 0.000000 + . gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene CDS 30732894 30733012 0.000000 + 2 gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene exon 30732894 30733012 0.000000 + . gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene CDS 30733115 30733226 0.000000 + 0 gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene exon 30733115 30733226 0.000000 + . gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene CDS 30734588 30734658 0.000000 + 2 gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene exon 30734588 30734658 0.000000 + . gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene CDS 30737437 30737569 0.000000 + 0 gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene exon 30737437 30737569 0.000000 + . gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene CDS 30738425 30738506 0.000000 + 2 gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene exon 30738425 30738506 0.000000 + . gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene CDS 30738603 30738678 0.000000 + 1 gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene exon 30738603 30738678 0.000000 + . gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene CDS 30742906 30742989 0.000000 + 0 gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene exon 30742906 30742989 0.000000 + . gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene CDS 30745597 30745772 0.000000 + 0 gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene exon 30745597 30745772 0.000000 + . gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene CDS 30746254 30746317 0.000000 + 1 gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene exon 30746254 30746317 0.000000 + . gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene CDS 30747795 30747914 0.000000 + 0 gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene exon 30747795 30747914 0.000000 + . gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene CDS 30749079 30749168 0.000000 + 0 gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene exon 30749079 30749168 0.000000 + . gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene CDS 30753098 30753244 0.000000 + 0 gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene exon 30753098 30755061 0.000000 + . gene_id "TM9SF4"; transcript_id "D87444:uc002wxk.2";
+chr20 hg19_knownGene CDS 30777008 30778072 0.000000 - 0 gene_id "TSPY26P"; transcript_id "NR_002781:uc002wxm.1";
+chr20 hg19_knownGene exon 30776949 30778163 0.000000 - . gene_id "TSPY26P"; transcript_id "NR_002781:uc002wxm.1";
+chr20 hg19_knownGene CDS 30784258 30785485 0.000000 - 1 gene_id "PLAGL2"; transcript_id "NM_002657:uc002wxn.2";
+chr20 hg19_knownGene exon 30780307 30785485 0.000000 - . gene_id "PLAGL2"; transcript_id "NM_002657:uc002wxn.2";
+chr20 hg19_knownGene CDS 30789722 30789981 0.000000 - 0 gene_id "PLAGL2"; transcript_id "NM_002657:uc002wxn.2";
+chr20 hg19_knownGene exon 30789722 30790095 0.000000 - . gene_id "PLAGL2"; transcript_id "NM_002657:uc002wxn.2";
+chr20 hg19_knownGene exon 30795444 30795546 0.000000 - . gene_id "PLAGL2"; transcript_id "NM_002657:uc002wxn.2";
+chr20 hg19_knownGene CDS 30795745 30795868 0.000000 + 0 gene_id "POFUT1"; transcript_id "NM_172236:uc002wxo.3";
+chr20 hg19_knownGene exon 30795696 30795868 0.000000 + . gene_id "POFUT1"; transcript_id "NM_172236:uc002wxo.3";
+chr20 hg19_knownGene CDS 30797874 30797995 0.000000 + 2 gene_id "POFUT1"; transcript_id "NM_172236:uc002wxo.3";
+chr20 hg19_knownGene exon 30797874 30797995 0.000000 + . gene_id "POFUT1"; transcript_id "NM_172236:uc002wxo.3";
+chr20 hg19_knownGene CDS 30803072 30803254 0.000000 + 0 gene_id "POFUT1"; transcript_id "NM_172236:uc002wxo.3";
+chr20 hg19_knownGene exon 30803072 30803254 0.000000 + . gene_id "POFUT1"; transcript_id "NM_172236:uc002wxo.3";
+chr20 hg19_knownGene CDS 30804412 30804524 0.000000 + 0 gene_id "POFUT1"; transcript_id "NM_172236:uc002wxo.3";
+chr20 hg19_knownGene exon 30804412 30804524 0.000000 + . gene_id "POFUT1"; transcript_id "NM_172236:uc002wxo.3";
+chr20 hg19_knownGene CDS 30804811 30804850 0.000000 + 1 gene_id "POFUT1"; transcript_id "NM_172236:uc002wxo.3";
+chr20 hg19_knownGene exon 30804811 30805726 0.000000 + . gene_id "POFUT1"; transcript_id "NM_172236:uc002wxo.3";
+chr20 hg19_knownGene CDS 30795745 30795868 0.000000 + 0 gene_id "POFUT1"; transcript_id "NM_015352:uc002wxp.3";
+chr20 hg19_knownGene exon 30795696 30795868 0.000000 + . gene_id "POFUT1"; transcript_id "NM_015352:uc002wxp.3";
+chr20 hg19_knownGene CDS 30797874 30797995 0.000000 + 2 gene_id "POFUT1"; transcript_id "NM_015352:uc002wxp.3";
+chr20 hg19_knownGene exon 30797874 30797995 0.000000 + . gene_id "POFUT1"; transcript_id "NM_015352:uc002wxp.3";
+chr20 hg19_knownGene CDS 30803072 30803254 0.000000 + 0 gene_id "POFUT1"; transcript_id "NM_015352:uc002wxp.3";
+chr20 hg19_knownGene exon 30803072 30803254 0.000000 + . gene_id "POFUT1"; transcript_id "NM_015352:uc002wxp.3";
+chr20 hg19_knownGene CDS 30804412 30804524 0.000000 + 0 gene_id "POFUT1"; transcript_id "NM_015352:uc002wxp.3";
+chr20 hg19_knownGene exon 30804412 30804524 0.000000 + . gene_id "POFUT1"; transcript_id "NM_015352:uc002wxp.3";
+chr20 hg19_knownGene CDS 30816066 30816258 0.000000 + 1 gene_id "POFUT1"; transcript_id "NM_015352:uc002wxp.3";
+chr20 hg19_knownGene exon 30816066 30816258 0.000000 + . gene_id "POFUT1"; transcript_id "NM_015352:uc002wxp.3";
+chr20 hg19_knownGene CDS 30818622 30818864 0.000000 + 0 gene_id "POFUT1"; transcript_id "NM_015352:uc002wxp.3";
+chr20 hg19_knownGene exon 30818622 30818864 0.000000 + . gene_id "POFUT1"; transcript_id "NM_015352:uc002wxp.3";
+chr20 hg19_knownGene CDS 30822276 30822461 0.000000 + 0 gene_id "POFUT1"; transcript_id "NM_015352:uc002wxp.3";
+chr20 hg19_knownGene exon 30822276 30826467 0.000000 + . gene_id "POFUT1"; transcript_id "NM_015352:uc002wxp.3";
+chr20 hg19_knownGene exon 30795696 30795868 0.000000 + . gene_id "POFUT1"; transcript_id "AK303068:uc010ztt.2";
+chr20 hg19_knownGene CDS 30803150 30803254 0.000000 + 0 gene_id "POFUT1"; transcript_id "AK303068:uc010ztt.2";
+chr20 hg19_knownGene exon 30803072 30803254 0.000000 + . gene_id "POFUT1"; transcript_id "AK303068:uc010ztt.2";
+chr20 hg19_knownGene CDS 30804412 30804524 0.000000 + 0 gene_id "POFUT1"; transcript_id "AK303068:uc010ztt.2";
+chr20 hg19_knownGene exon 30804412 30804524 0.000000 + . gene_id "POFUT1"; transcript_id "AK303068:uc010ztt.2";
+chr20 hg19_knownGene CDS 30816066 30816258 0.000000 + 1 gene_id "POFUT1"; transcript_id "AK303068:uc010ztt.2";
+chr20 hg19_knownGene exon 30816066 30816258 0.000000 + . gene_id "POFUT1"; transcript_id "AK303068:uc010ztt.2";
+chr20 hg19_knownGene CDS 30818622 30818864 0.000000 + 0 gene_id "POFUT1"; transcript_id "AK303068:uc010ztt.2";
+chr20 hg19_knownGene exon 30818622 30818864 0.000000 + . gene_id "POFUT1"; transcript_id "AK303068:uc010ztt.2";
+chr20 hg19_knownGene CDS 30822276 30822461 0.000000 + 0 gene_id "POFUT1"; transcript_id "AK303068:uc010ztt.2";
+chr20 hg19_knownGene exon 30822276 30826467 0.000000 + . gene_id "POFUT1"; transcript_id "AK303068:uc010ztt.2";
+chr20 hg19_knownGene exon 30795696 30795868 0.000000 + . gene_id "POFUT1"; transcript_id "AK300810:uc010ztu.2";
+chr20 hg19_knownGene CDS 30816157 30816258 0.000000 + 0 gene_id "POFUT1"; transcript_id "AK300810:uc010ztu.2";
+chr20 hg19_knownGene exon 30816066 30816258 0.000000 + . gene_id "POFUT1"; transcript_id "AK300810:uc010ztu.2";
+chr20 hg19_knownGene CDS 30818622 30818864 0.000000 + 0 gene_id "POFUT1"; transcript_id "AK300810:uc010ztu.2";
+chr20 hg19_knownGene exon 30818622 30818864 0.000000 + . gene_id "POFUT1"; transcript_id "AK300810:uc010ztu.2";
+chr20 hg19_knownGene CDS 30822276 30822461 0.000000 + 0 gene_id "POFUT1"; transcript_id "AK300810:uc010ztu.2";
+chr20 hg19_knownGene exon 30822276 30826467 0.000000 + . gene_id "POFUT1"; transcript_id "AK300810:uc010ztu.2";
+chr20 hg19_knownGene exon 30865454 30865568 0.000000 + . gene_id "KIF3B"; transcript_id "AK302403:uc010ztv.2";
+chr20 hg19_knownGene CDS 30897581 30898703 0.000000 + 0 gene_id "KIF3B"; transcript_id "AK302403:uc010ztv.2";
+chr20 hg19_knownGene exon 30897516 30898703 0.000000 + . gene_id "KIF3B"; transcript_id "AK302403:uc010ztv.2";
+chr20 hg19_knownGene CDS 30898832 30898848 0.000000 + 2 gene_id "KIF3B"; transcript_id "AK302403:uc010ztv.2";
+chr20 hg19_knownGene exon 30898832 30898950 0.000000 + . gene_id "KIF3B"; transcript_id "AK302403:uc010ztv.2";
+chr20 hg19_knownGene exon 30865454 30865568 0.000000 + . gene_id "KIF3B"; transcript_id "NM_004798:uc002wxq.3";
+chr20 hg19_knownGene CDS 30897581 30898984 0.000000 + 0 gene_id "KIF3B"; transcript_id "NM_004798:uc002wxq.3";
+chr20 hg19_knownGene exon 30897516 30898984 0.000000 + . gene_id "KIF3B"; transcript_id "NM_004798:uc002wxq.3";
+chr20 hg19_knownGene CDS 30904021 30904122 0.000000 + 0 gene_id "KIF3B"; transcript_id "NM_004798:uc002wxq.3";
+chr20 hg19_knownGene exon 30904021 30904122 0.000000 + . gene_id "KIF3B"; transcript_id "NM_004798:uc002wxq.3";
+chr20 hg19_knownGene CDS 30904330 30904452 0.000000 + 0 gene_id "KIF3B"; transcript_id "NM_004798:uc002wxq.3";
+chr20 hg19_knownGene exon 30904330 30904452 0.000000 + . gene_id "KIF3B"; transcript_id "NM_004798:uc002wxq.3";
+chr20 hg19_knownGene CDS 30904559 30904677 0.000000 + 0 gene_id "KIF3B"; transcript_id "NM_004798:uc002wxq.3";
+chr20 hg19_knownGene exon 30904559 30904677 0.000000 + . gene_id "KIF3B"; transcript_id "NM_004798:uc002wxq.3";
+chr20 hg19_knownGene CDS 30914574 30914687 0.000000 + 1 gene_id "KIF3B"; transcript_id "NM_004798:uc002wxq.3";
+chr20 hg19_knownGene exon 30914574 30914687 0.000000 + . gene_id "KIF3B"; transcript_id "NM_004798:uc002wxq.3";
+chr20 hg19_knownGene CDS 30915359 30915464 0.000000 + 1 gene_id "KIF3B"; transcript_id "NM_004798:uc002wxq.3";
+chr20 hg19_knownGene exon 30915359 30915464 0.000000 + . gene_id "KIF3B"; transcript_id "NM_004798:uc002wxq.3";
+chr20 hg19_knownGene CDS 30917944 30918122 0.000000 + 0 gene_id "KIF3B"; transcript_id "NM_004798:uc002wxq.3";
+chr20 hg19_knownGene exon 30917944 30918122 0.000000 + . gene_id "KIF3B"; transcript_id "NM_004798:uc002wxq.3";
+chr20 hg19_knownGene CDS 30919026 30919119 0.000000 + 1 gene_id "KIF3B"; transcript_id "NM_004798:uc002wxq.3";
+chr20 hg19_knownGene exon 30919026 30922811 0.000000 + . gene_id "KIF3B"; transcript_id "NM_004798:uc002wxq.3";
+chr20 hg19_knownGene CDS 30897581 30898703 0.000000 + 0 gene_id "KIF3B"; transcript_id "AK299877:uc010ztw.2";
+chr20 hg19_knownGene exon 30897516 30898703 0.000000 + . gene_id "KIF3B"; transcript_id "AK299877:uc010ztw.2";
+chr20 hg19_knownGene CDS 30898890 30898984 0.000000 + 2 gene_id "KIF3B"; transcript_id "AK299877:uc010ztw.2";
+chr20 hg19_knownGene exon 30898890 30898984 0.000000 + . gene_id "KIF3B"; transcript_id "AK299877:uc010ztw.2";
+chr20 hg19_knownGene CDS 30904021 30904122 0.000000 + 0 gene_id "KIF3B"; transcript_id "AK299877:uc010ztw.2";
+chr20 hg19_knownGene exon 30904021 30904122 0.000000 + . gene_id "KIF3B"; transcript_id "AK299877:uc010ztw.2";
+chr20 hg19_knownGene CDS 30904330 30904452 0.000000 + 0 gene_id "KIF3B"; transcript_id "AK299877:uc010ztw.2";
+chr20 hg19_knownGene exon 30904330 30904452 0.000000 + . gene_id "KIF3B"; transcript_id "AK299877:uc010ztw.2";
+chr20 hg19_knownGene CDS 30904559 30904677 0.000000 + 0 gene_id "KIF3B"; transcript_id "AK299877:uc010ztw.2";
+chr20 hg19_knownGene exon 30904559 30904677 0.000000 + . gene_id "KIF3B"; transcript_id "AK299877:uc010ztw.2";
+chr20 hg19_knownGene CDS 30914574 30914687 0.000000 + 1 gene_id "KIF3B"; transcript_id "AK299877:uc010ztw.2";
+chr20 hg19_knownGene exon 30914574 30914687 0.000000 + . gene_id "KIF3B"; transcript_id "AK299877:uc010ztw.2";
+chr20 hg19_knownGene CDS 30915359 30915464 0.000000 + 1 gene_id "KIF3B"; transcript_id "AK299877:uc010ztw.2";
+chr20 hg19_knownGene exon 30915359 30915464 0.000000 + . gene_id "KIF3B"; transcript_id "AK299877:uc010ztw.2";
+chr20 hg19_knownGene CDS 30917944 30918122 0.000000 + 0 gene_id "KIF3B"; transcript_id "AK299877:uc010ztw.2";
+chr20 hg19_knownGene exon 30917944 30918122 0.000000 + . gene_id "KIF3B"; transcript_id "AK299877:uc010ztw.2";
+chr20 hg19_knownGene CDS 30919026 30919119 0.000000 + 1 gene_id "KIF3B"; transcript_id "AK299877:uc010ztw.2";
+chr20 hg19_knownGene exon 30919026 30922811 0.000000 + . gene_id "KIF3B"; transcript_id "AK299877:uc010ztw.2";
+chr20 hg19_knownGene CDS 30946579 30946635 0.000000 + 0 gene_id "ASXL1"; transcript_id "NM_001164603:uc002wxt.3";
+chr20 hg19_knownGene exon 30946147 30946635 0.000000 + . gene_id "ASXL1"; transcript_id "NM_001164603:uc002wxt.3";
+chr20 hg19_knownGene CDS 30954187 30954269 0.000000 + 0 gene_id "ASXL1"; transcript_id "NM_001164603:uc002wxt.3";
+chr20 hg19_knownGene exon 30954187 30954269 0.000000 + . gene_id "ASXL1"; transcript_id "NM_001164603:uc002wxt.3";
+chr20 hg19_knownGene CDS 30956818 30956926 0.000000 + 1 gene_id "ASXL1"; transcript_id "NM_001164603:uc002wxt.3";
+chr20 hg19_knownGene exon 30956818 30956926 0.000000 + . gene_id "ASXL1"; transcript_id "NM_001164603:uc002wxt.3";
+chr20 hg19_knownGene CDS 30959967 30959969 0.000000 + 0 gene_id "ASXL1"; transcript_id "NM_001164603:uc002wxt.3";
+chr20 hg19_knownGene exon 30959967 30960352 0.000000 + . gene_id "ASXL1"; transcript_id "NM_001164603:uc002wxt.3";
+chr20 hg19_knownGene exon 30946147 30946635 0.000000 + . gene_id "ASXL1"; transcript_id "BC064984:uc002wxr.2";
+chr20 hg19_knownGene exon 30954187 30954269 0.000000 + . gene_id "ASXL1"; transcript_id "BC064984:uc002wxr.2";
+chr20 hg19_knownGene exon 30956818 30956926 0.000000 + . gene_id "ASXL1"; transcript_id "BC064984:uc002wxr.2";
+chr20 hg19_knownGene exon 30959581 30959677 0.000000 + . gene_id "ASXL1"; transcript_id "BC064984:uc002wxr.2";
+chr20 hg19_knownGene exon 31015931 31016051 0.000000 + . gene_id "ASXL1"; transcript_id "BC064984:uc002wxr.2";
+chr20 hg19_knownGene exon 31016128 31016225 0.000000 + . gene_id "ASXL1"; transcript_id "BC064984:uc002wxr.2";
+chr20 hg19_knownGene CDS 30946579 30946635 0.000000 + 0 gene_id "ASXL1"; transcript_id "NM_015338:uc002wxs.3";
+chr20 hg19_knownGene exon 30946147 30946635 0.000000 + . gene_id "ASXL1"; transcript_id "NM_015338:uc002wxs.3";
+chr20 hg19_knownGene CDS 30954187 30954269 0.000000 + 0 gene_id "ASXL1"; transcript_id "NM_015338:uc002wxs.3";
+chr20 hg19_knownGene exon 30954187 30954269 0.000000 + . gene_id "ASXL1"; transcript_id "NM_015338:uc002wxs.3";
+chr20 hg19_knownGene CDS 30956818 30956926 0.000000 + 1 gene_id "ASXL1"; transcript_id "NM_015338:uc002wxs.3";
+chr20 hg19_knownGene exon 30956818 30956926 0.000000 + . gene_id "ASXL1"; transcript_id "NM_015338:uc002wxs.3";
+chr20 hg19_knownGene CDS 31015931 31016051 0.000000 + 0 gene_id "ASXL1"; transcript_id "NM_015338:uc002wxs.3";
+chr20 hg19_knownGene exon 31015931 31016051 0.000000 + . gene_id "ASXL1"; transcript_id "NM_015338:uc002wxs.3";
+chr20 hg19_knownGene CDS 31016128 31016225 0.000000 + 2 gene_id "ASXL1"; transcript_id "NM_015338:uc002wxs.3";
+chr20 hg19_knownGene exon 31016128 31016225 0.000000 + . gene_id "ASXL1"; transcript_id "NM_015338:uc002wxs.3";
+chr20 hg19_knownGene CDS 31017141 31017234 0.000000 + 0 gene_id "ASXL1"; transcript_id "NM_015338:uc002wxs.3";
+chr20 hg19_knownGene exon 31017141 31017234 0.000000 + . gene_id "ASXL1"; transcript_id "NM_015338:uc002wxs.3";
+chr20 hg19_knownGene CDS 31017704 31017856 0.000000 + 2 gene_id "ASXL1"; transcript_id "NM_015338:uc002wxs.3";
+chr20 hg19_knownGene exon 31017704 31017856 0.000000 + . gene_id "ASXL1"; transcript_id "NM_015338:uc002wxs.3";
+chr20 hg19_knownGene CDS 31019124 31019287 0.000000 + 2 gene_id "ASXL1"; transcript_id "NM_015338:uc002wxs.3";
+chr20 hg19_knownGene exon 31019124 31019287 0.000000 + . gene_id "ASXL1"; transcript_id "NM_015338:uc002wxs.3";
+chr20 hg19_knownGene CDS 31019386 31019482 0.000000 + 0 gene_id "ASXL1"; transcript_id "NM_015338:uc002wxs.3";
+chr20 hg19_knownGene exon 31019386 31019482 0.000000 + . gene_id "ASXL1"; transcript_id "NM_015338:uc002wxs.3";
+chr20 hg19_knownGene CDS 31020683 31020788 0.000000 + 2 gene_id "ASXL1"; transcript_id "NM_015338:uc002wxs.3";
+chr20 hg19_knownGene exon 31020683 31020788 0.000000 + . gene_id "ASXL1"; transcript_id "NM_015338:uc002wxs.3";
+chr20 hg19_knownGene CDS 31021087 31021720 0.000000 + 1 gene_id "ASXL1"; transcript_id "NM_015338:uc002wxs.3";
+chr20 hg19_knownGene exon 31021087 31021720 0.000000 + . gene_id "ASXL1"; transcript_id "NM_015338:uc002wxs.3";
+chr20 hg19_knownGene CDS 31022235 31025138 0.000000 + 0 gene_id "ASXL1"; transcript_id "NM_015338:uc002wxs.3";
+chr20 hg19_knownGene exon 31022235 31027122 0.000000 + . gene_id "ASXL1"; transcript_id "NM_015338:uc002wxs.3";
+chr20 hg19_knownGene CDS 30946579 30946635 0.000000 + 0 gene_id "ASXL1"; transcript_id "CCDS13201:uc021wbw.1";
+chr20 hg19_knownGene exon 30946147 30946635 0.000000 + . gene_id "ASXL1"; transcript_id "CCDS13201:uc021wbw.1";
+chr20 hg19_knownGene CDS 30954187 30954269 0.000000 + 0 gene_id "ASXL1"; transcript_id "CCDS13201:uc021wbw.1";
+chr20 hg19_knownGene exon 30954187 30954269 0.000000 + . gene_id "ASXL1"; transcript_id "CCDS13201:uc021wbw.1";
+chr20 hg19_knownGene CDS 30955530 30955532 0.000000 + 1 gene_id "ASXL1"; transcript_id "CCDS13201:uc021wbw.1";
+chr20 hg19_knownGene exon 30955530 30955532 0.000000 + . gene_id "ASXL1"; transcript_id "CCDS13201:uc021wbw.1";
+chr20 hg19_knownGene CDS 30956818 30956926 0.000000 + 1 gene_id "ASXL1"; transcript_id "CCDS13201:uc021wbw.1";
+chr20 hg19_knownGene exon 30956818 30956926 0.000000 + . gene_id "ASXL1"; transcript_id "CCDS13201:uc021wbw.1";
+chr20 hg19_knownGene CDS 31015931 31016051 0.000000 + 0 gene_id "ASXL1"; transcript_id "CCDS13201:uc021wbw.1";
+chr20 hg19_knownGene exon 31015931 31016051 0.000000 + . gene_id "ASXL1"; transcript_id "CCDS13201:uc021wbw.1";
+chr20 hg19_knownGene CDS 31016128 31016225 0.000000 + 2 gene_id "ASXL1"; transcript_id "CCDS13201:uc021wbw.1";
+chr20 hg19_knownGene exon 31016128 31016225 0.000000 + . gene_id "ASXL1"; transcript_id "CCDS13201:uc021wbw.1";
+chr20 hg19_knownGene CDS 31017141 31017234 0.000000 + 0 gene_id "ASXL1"; transcript_id "CCDS13201:uc021wbw.1";
+chr20 hg19_knownGene exon 31017141 31017234 0.000000 + . gene_id "ASXL1"; transcript_id "CCDS13201:uc021wbw.1";
+chr20 hg19_knownGene CDS 31017704 31017856 0.000000 + 2 gene_id "ASXL1"; transcript_id "CCDS13201:uc021wbw.1";
+chr20 hg19_knownGene exon 31017704 31017856 0.000000 + . gene_id "ASXL1"; transcript_id "CCDS13201:uc021wbw.1";
+chr20 hg19_knownGene CDS 31019124 31019287 0.000000 + 2 gene_id "ASXL1"; transcript_id "CCDS13201:uc021wbw.1";
+chr20 hg19_knownGene exon 31019124 31019287 0.000000 + . gene_id "ASXL1"; transcript_id "CCDS13201:uc021wbw.1";
+chr20 hg19_knownGene CDS 31019386 31019482 0.000000 + 0 gene_id "ASXL1"; transcript_id "CCDS13201:uc021wbw.1";
+chr20 hg19_knownGene exon 31019386 31019482 0.000000 + . gene_id "ASXL1"; transcript_id "CCDS13201:uc021wbw.1";
+chr20 hg19_knownGene CDS 31020683 31020788 0.000000 + 2 gene_id "ASXL1"; transcript_id "CCDS13201:uc021wbw.1";
+chr20 hg19_knownGene exon 31020683 31020788 0.000000 + . gene_id "ASXL1"; transcript_id "CCDS13201:uc021wbw.1";
+chr20 hg19_knownGene CDS 31021087 31021720 0.000000 + 1 gene_id "ASXL1"; transcript_id "CCDS13201:uc021wbw.1";
+chr20 hg19_knownGene exon 31021087 31021720 0.000000 + . gene_id "ASXL1"; transcript_id "CCDS13201:uc021wbw.1";
+chr20 hg19_knownGene CDS 31022235 31025138 0.000000 + 0 gene_id "ASXL1"; transcript_id "CCDS13201:uc021wbw.1";
+chr20 hg19_knownGene exon 31022235 31027122 0.000000 + . gene_id "ASXL1"; transcript_id "CCDS13201:uc021wbw.1";
+chr20 hg19_knownGene CDS 30956849 30956926 0.000000 + 0 gene_id "ASXL1"; transcript_id "AK122923:uc010geb.3";
+chr20 hg19_knownGene exon 30956818 30956926 0.000000 + . gene_id "ASXL1"; transcript_id "AK122923:uc010geb.3";
+chr20 hg19_knownGene CDS 31015931 31016051 0.000000 + 0 gene_id "ASXL1"; transcript_id "AK122923:uc010geb.3";
+chr20 hg19_knownGene exon 31015931 31016051 0.000000 + . gene_id "ASXL1"; transcript_id "AK122923:uc010geb.3";
+chr20 hg19_knownGene CDS 31016128 31016225 0.000000 + 2 gene_id "ASXL1"; transcript_id "AK122923:uc010geb.3";
+chr20 hg19_knownGene exon 31016128 31016225 0.000000 + . gene_id "ASXL1"; transcript_id "AK122923:uc010geb.3";
+chr20 hg19_knownGene CDS 31017141 31017234 0.000000 + 0 gene_id "ASXL1"; transcript_id "AK122923:uc010geb.3";
+chr20 hg19_knownGene exon 31017141 31017234 0.000000 + . gene_id "ASXL1"; transcript_id "AK122923:uc010geb.3";
+chr20 hg19_knownGene CDS 31019124 31019287 0.000000 + 2 gene_id "ASXL1"; transcript_id "AK122923:uc010geb.3";
+chr20 hg19_knownGene exon 31019124 31019287 0.000000 + . gene_id "ASXL1"; transcript_id "AK122923:uc010geb.3";
+chr20 hg19_knownGene CDS 31019386 31019482 0.000000 + 0 gene_id "ASXL1"; transcript_id "AK122923:uc010geb.3";
+chr20 hg19_knownGene exon 31019386 31019482 0.000000 + . gene_id "ASXL1"; transcript_id "AK122923:uc010geb.3";
+chr20 hg19_knownGene CDS 31020683 31020788 0.000000 + 2 gene_id "ASXL1"; transcript_id "AK122923:uc010geb.3";
+chr20 hg19_knownGene exon 31020683 31020788 0.000000 + . gene_id "ASXL1"; transcript_id "AK122923:uc010geb.3";
+chr20 hg19_knownGene CDS 31021087 31021720 0.000000 + 1 gene_id "ASXL1"; transcript_id "AK122923:uc010geb.3";
+chr20 hg19_knownGene exon 31021087 31021720 0.000000 + . gene_id "ASXL1"; transcript_id "AK122923:uc010geb.3";
+chr20 hg19_knownGene CDS 31022235 31025138 0.000000 + 0 gene_id "ASXL1"; transcript_id "AK122923:uc010geb.3";
+chr20 hg19_knownGene exon 31022235 31027122 0.000000 + . gene_id "ASXL1"; transcript_id "AK122923:uc010geb.3";
+chr20 hg19_knownGene CDS 31035402 31035619 0.000000 - 2 gene_id "C20orf112"; transcript_id "NM_080616:uc002wxu.4";
+chr20 hg19_knownGene exon 31030862 31035619 0.000000 - . gene_id "C20orf112"; transcript_id "NM_080616:uc002wxu.4";
+chr20 hg19_knownGene CDS 31040039 31040240 0.000000 - 0 gene_id "C20orf112"; transcript_id "NM_080616:uc002wxu.4";
+chr20 hg19_knownGene exon 31040039 31040240 0.000000 - . gene_id "C20orf112"; transcript_id "NM_080616:uc002wxu.4";
+chr20 hg19_knownGene CDS 31040687 31040809 0.000000 - 0 gene_id "C20orf112"; transcript_id "NM_080616:uc002wxu.4";
+chr20 hg19_knownGene exon 31040687 31040809 0.000000 - . gene_id "C20orf112"; transcript_id "NM_080616:uc002wxu.4";
+chr20 hg19_knownGene CDS 31041107 31041298 0.000000 - 0 gene_id "C20orf112"; transcript_id "NM_080616:uc002wxu.4";
+chr20 hg19_knownGene exon 31041107 31041298 0.000000 - . gene_id "C20orf112"; transcript_id "NM_080616:uc002wxu.4";
+chr20 hg19_knownGene CDS 31041379 31041564 0.000000 - 0 gene_id "C20orf112"; transcript_id "NM_080616:uc002wxu.4";
+chr20 hg19_knownGene exon 31041379 31041564 0.000000 - . gene_id "C20orf112"; transcript_id "NM_080616:uc002wxu.4";
+chr20 hg19_knownGene CDS 31043921 31044198 0.000000 - 2 gene_id "C20orf112"; transcript_id "NM_080616:uc002wxu.4";
+chr20 hg19_knownGene exon 31043921 31044198 0.000000 - . gene_id "C20orf112"; transcript_id "NM_080616:uc002wxu.4";
+chr20 hg19_knownGene CDS 31062404 31062512 0.000000 - 0 gene_id "C20orf112"; transcript_id "NM_080616:uc002wxu.4";
+chr20 hg19_knownGene exon 31062404 31062545 0.000000 - . gene_id "C20orf112"; transcript_id "NM_080616:uc002wxu.4";
+chr20 hg19_knownGene exon 31071165 31071288 0.000000 - . gene_id "C20orf112"; transcript_id "NM_080616:uc002wxu.4";
+chr20 hg19_knownGene CDS 31052757 31052920 0.000000 - 2 gene_id "C20orf112"; transcript_id "BC038088:uc002wxv.4";
+chr20 hg19_knownGene exon 31052583 31052920 0.000000 - . gene_id "C20orf112"; transcript_id "BC038088:uc002wxv.4";
+chr20 hg19_knownGene CDS 31062404 31062512 0.000000 - 0 gene_id "C20orf112"; transcript_id "BC038088:uc002wxv.4";
+chr20 hg19_knownGene exon 31062404 31062545 0.000000 - . gene_id "C20orf112"; transcript_id "BC038088:uc002wxv.4";
+chr20 hg19_knownGene exon 31071165 31071288 0.000000 - . gene_id "C20orf112"; transcript_id "BC038088:uc002wxv.4";
+chr20 hg19_knownGene exon 31052584 31052937 0.000000 - . gene_id "C20orf112"; transcript_id "AK097804:uc002wxw.1";
+chr20 hg19_knownGene exon 31062404 31062545 0.000000 - . gene_id "C20orf112"; transcript_id "AK097804:uc002wxw.1";
+chr20 hg19_knownGene exon 31099150 31099259 0.000000 - . gene_id "C20orf112"; transcript_id "AK097804:uc002wxw.1";
+chr20 hg19_knownGene exon 31108614 31108725 0.000000 - . gene_id "C20orf112"; transcript_id "AK097804:uc002wxw.1";
+chr20 hg19_knownGene exon 31115561 31115716 0.000000 - . gene_id "C20orf112"; transcript_id "AK097804:uc002wxw.1";
+chr20 hg19_knownGene exon 31120120 31120219 0.000000 - . gene_id "C20orf112"; transcript_id "AK097804:uc002wxw.1";
+chr20 hg19_knownGene exon 31121179 31121288 0.000000 - . gene_id "C20orf112"; transcript_id "AK097804:uc002wxw.1";
+chr20 hg19_knownGene exon 31123244 31124200 0.000000 - . gene_id "C20orf112"; transcript_id "AK097804:uc002wxw.1";
+chr20 hg19_knownGene CDS 31136575 31136688 0.000000 - 0 gene_id "LOC284804"; transcript_id "BC065483:uc002wxx.3";
+chr20 hg19_knownGene exon 31136309 31136688 0.000000 - . gene_id "LOC284804"; transcript_id "BC065483:uc002wxx.3";
+chr20 hg19_knownGene CDS 31172372 31172692 0.000000 - 0 gene_id "LOC284804"; transcript_id "BC065483:uc002wxx.3";
+chr20 hg19_knownGene exon 31172372 31172875 0.000000 - . gene_id "LOC284804"; transcript_id "BC065483:uc002wxx.3";
+chr20 hg19_knownGene exon 31175281 31175358 0.000000 + . gene_id "LOC149950"; transcript_id "NR_034152:uc002wxy.3";
+chr20 hg19_knownGene CDS 31189469 31189498 0.000000 + 0 gene_id "LOC149950"; transcript_id "NR_034152:uc002wxy.3";
+chr20 hg19_knownGene exon 31189315 31189498 0.000000 + . gene_id "LOC149950"; transcript_id "NR_034152:uc002wxy.3";
+chr20 hg19_knownGene CDS 31196112 31196501 0.000000 + 0 gene_id "LOC149950"; transcript_id "NR_034152:uc002wxy.3";
+chr20 hg19_knownGene exon 31196112 31196694 0.000000 + . gene_id "LOC149950"; transcript_id "NR_034152:uc002wxy.3";
+chr20 hg19_knownGene exon 31219427 31222072 0.000000 - . gene_id "C20orf203"; transcript_id "NM_182584:uc021wbx.1";
+chr20 hg19_knownGene exon 31228368 31228489 0.000000 - . gene_id "C20orf203"; transcript_id "NM_182584:uc021wbx.1";
+chr20 hg19_knownGene CDS 31238237 31238683 0.000000 - 0 gene_id "C20orf203"; transcript_id "NM_182584:uc021wbx.1";
+chr20 hg19_knownGene exon 31237057 31238683 0.000000 - . gene_id "C20orf203"; transcript_id "NM_182584:uc021wbx.1";
+chr20 hg19_knownGene CDS 31238820 31238954 0.000000 - 0 gene_id "C20orf203"; transcript_id "NM_182584:uc021wbx.1";
+chr20 hg19_knownGene exon 31238820 31238968 0.000000 - . gene_id "C20orf203"; transcript_id "NM_182584:uc021wbx.1";
+chr20 hg19_knownGene exon 31239535 31239783 0.000000 - . gene_id "C20orf203"; transcript_id "NM_182584:uc021wbx.1";
+chr20 hg19_knownGene exon 31219427 31222072 0.000000 - . gene_id "C20orf203"; transcript_id "GU931819:uc002wxz.3";
+chr20 hg19_knownGene exon 31228368 31228489 0.000000 - . gene_id "C20orf203"; transcript_id "GU931819:uc002wxz.3";
+chr20 hg19_knownGene exon 31237057 31238683 0.000000 - . gene_id "C20orf203"; transcript_id "GU931819:uc002wxz.3";
+chr20 hg19_knownGene exon 31238820 31238968 0.000000 - . gene_id "C20orf203"; transcript_id "GU931819:uc002wxz.3";
+chr20 hg19_knownGene exon 31239535 31239783 0.000000 - . gene_id "C20orf203"; transcript_id "GU931819:uc002wxz.3";
+chr20 hg19_knownGene exon 31261434 31261743 0.000000 - . gene_id "C20orf203"; transcript_id "GU931819:uc002wxz.3";
+chr20 hg19_knownGene CDS 31291187 31291260 0.000000 - 2 gene_id "COMMD7"; transcript_id "NM_053041:uc002wya.4";
+chr20 hg19_knownGene exon 31290493 31291260 0.000000 - . gene_id "COMMD7"; transcript_id "NM_053041:uc002wya.4";
+chr20 hg19_knownGene CDS 31291825 31291873 0.000000 - 0 gene_id "COMMD7"; transcript_id "NM_053041:uc002wya.4";
+chr20 hg19_knownGene exon 31291825 31291873 0.000000 - . gene_id "COMMD7"; transcript_id "NM_053041:uc002wya.4";
+chr20 hg19_knownGene CDS 31292242 31292291 0.000000 - 2 gene_id "COMMD7"; transcript_id "NM_053041:uc002wya.4";
+chr20 hg19_knownGene exon 31292242 31292291 0.000000 - . gene_id "COMMD7"; transcript_id "NM_053041:uc002wya.4";
+chr20 hg19_knownGene CDS 31292616 31292706 0.000000 - 0 gene_id "COMMD7"; transcript_id "NM_053041:uc002wya.4";
+chr20 hg19_knownGene exon 31292616 31292706 0.000000 - . gene_id "COMMD7"; transcript_id "NM_053041:uc002wya.4";
+chr20 hg19_knownGene CDS 31294385 31294422 0.000000 - 2 gene_id "COMMD7"; transcript_id "NM_053041:uc002wya.4";
+chr20 hg19_knownGene exon 31294385 31294422 0.000000 - . gene_id "COMMD7"; transcript_id "NM_053041:uc002wya.4";
+chr20 hg19_knownGene CDS 31294506 31294562 0.000000 - 2 gene_id "COMMD7"; transcript_id "NM_053041:uc002wya.4";
+chr20 hg19_knownGene exon 31294506 31294562 0.000000 - . gene_id "COMMD7"; transcript_id "NM_053041:uc002wya.4";
+chr20 hg19_knownGene CDS 31315700 31315802 0.000000 - 0 gene_id "COMMD7"; transcript_id "NM_053041:uc002wya.4";
+chr20 hg19_knownGene exon 31315700 31315802 0.000000 - . gene_id "COMMD7"; transcript_id "NM_053041:uc002wya.4";
+chr20 hg19_knownGene CDS 31315896 31315949 0.000000 - 0 gene_id "COMMD7"; transcript_id "NM_053041:uc002wya.4";
+chr20 hg19_knownGene exon 31315896 31315949 0.000000 - . gene_id "COMMD7"; transcript_id "NM_053041:uc002wya.4";
+chr20 hg19_knownGene CDS 31331114 31331197 0.000000 - 0 gene_id "COMMD7"; transcript_id "NM_053041:uc002wya.4";
+chr20 hg19_knownGene exon 31331114 31331814 0.000000 - . gene_id "COMMD7"; transcript_id "NM_053041:uc002wya.4";
+chr20 hg19_knownGene CDS 31291187 31291260 0.000000 - 2 gene_id "COMMD7"; transcript_id "NM_001099339:uc010ged.3";
+chr20 hg19_knownGene exon 31290493 31291260 0.000000 - . gene_id "COMMD7"; transcript_id "NM_001099339:uc010ged.3";
+chr20 hg19_knownGene CDS 31291825 31291873 0.000000 - 0 gene_id "COMMD7"; transcript_id "NM_001099339:uc010ged.3";
+chr20 hg19_knownGene exon 31291825 31291873 0.000000 - . gene_id "COMMD7"; transcript_id "NM_001099339:uc010ged.3";
+chr20 hg19_knownGene CDS 31292242 31292291 0.000000 - 2 gene_id "COMMD7"; transcript_id "NM_001099339:uc010ged.3";
+chr20 hg19_knownGene exon 31292242 31292291 0.000000 - . gene_id "COMMD7"; transcript_id "NM_001099339:uc010ged.3";
+chr20 hg19_knownGene CDS 31292616 31292706 0.000000 - 0 gene_id "COMMD7"; transcript_id "NM_001099339:uc010ged.3";
+chr20 hg19_knownGene exon 31292616 31292706 0.000000 - . gene_id "COMMD7"; transcript_id "NM_001099339:uc010ged.3";
+chr20 hg19_knownGene CDS 31294385 31294422 0.000000 - 2 gene_id "COMMD7"; transcript_id "NM_001099339:uc010ged.3";
+chr20 hg19_knownGene exon 31294385 31294422 0.000000 - . gene_id "COMMD7"; transcript_id "NM_001099339:uc010ged.3";
+chr20 hg19_knownGene CDS 31294506 31294562 0.000000 - 2 gene_id "COMMD7"; transcript_id "NM_001099339:uc010ged.3";
+chr20 hg19_knownGene exon 31294506 31294562 0.000000 - . gene_id "COMMD7"; transcript_id "NM_001099339:uc010ged.3";
+chr20 hg19_knownGene CDS 31315700 31315802 0.000000 - 0 gene_id "COMMD7"; transcript_id "NM_001099339:uc010ged.3";
+chr20 hg19_knownGene exon 31315700 31315802 0.000000 - . gene_id "COMMD7"; transcript_id "NM_001099339:uc010ged.3";
+chr20 hg19_knownGene CDS 31315896 31315946 0.000000 - 0 gene_id "COMMD7"; transcript_id "NM_001099339:uc010ged.3";
+chr20 hg19_knownGene exon 31315896 31315946 0.000000 - . gene_id "COMMD7"; transcript_id "NM_001099339:uc010ged.3";
+chr20 hg19_knownGene CDS 31331114 31331197 0.000000 - 0 gene_id "COMMD7"; transcript_id "NM_001099339:uc010ged.3";
+chr20 hg19_knownGene exon 31331114 31331814 0.000000 - . gene_id "COMMD7"; transcript_id "NM_001099339:uc010ged.3";
+chr20 hg19_knownGene CDS 31291625 31291873 0.000000 - 0 gene_id "COMMD7"; transcript_id "BC022073:uc002wyb.2";
+chr20 hg19_knownGene exon 31290505 31291873 0.000000 - . gene_id "COMMD7"; transcript_id "BC022073:uc002wyb.2";
+chr20 hg19_knownGene CDS 31292242 31292291 0.000000 - 2 gene_id "COMMD7"; transcript_id "BC022073:uc002wyb.2";
+chr20 hg19_knownGene exon 31292242 31292291 0.000000 - . gene_id "COMMD7"; transcript_id "BC022073:uc002wyb.2";
+chr20 hg19_knownGene CDS 31292616 31292706 0.000000 - 0 gene_id "COMMD7"; transcript_id "BC022073:uc002wyb.2";
+chr20 hg19_knownGene exon 31292616 31292706 0.000000 - . gene_id "COMMD7"; transcript_id "BC022073:uc002wyb.2";
+chr20 hg19_knownGene CDS 31294385 31294422 0.000000 - 2 gene_id "COMMD7"; transcript_id "BC022073:uc002wyb.2";
+chr20 hg19_knownGene exon 31294385 31294422 0.000000 - . gene_id "COMMD7"; transcript_id "BC022073:uc002wyb.2";
+chr20 hg19_knownGene CDS 31294506 31294562 0.000000 - 2 gene_id "COMMD7"; transcript_id "BC022073:uc002wyb.2";
+chr20 hg19_knownGene exon 31294506 31294562 0.000000 - . gene_id "COMMD7"; transcript_id "BC022073:uc002wyb.2";
+chr20 hg19_knownGene CDS 31315700 31315802 0.000000 - 0 gene_id "COMMD7"; transcript_id "BC022073:uc002wyb.2";
+chr20 hg19_knownGene exon 31315700 31315802 0.000000 - . gene_id "COMMD7"; transcript_id "BC022073:uc002wyb.2";
+chr20 hg19_knownGene CDS 31315896 31315949 0.000000 - 0 gene_id "COMMD7"; transcript_id "BC022073:uc002wyb.2";
+chr20 hg19_knownGene exon 31315896 31315949 0.000000 - . gene_id "COMMD7"; transcript_id "BC022073:uc002wyb.2";
+chr20 hg19_knownGene CDS 31331114 31331197 0.000000 - 0 gene_id "COMMD7"; transcript_id "BC022073:uc002wyb.2";
+chr20 hg19_knownGene exon 31331114 31331814 0.000000 - . gene_id "COMMD7"; transcript_id "BC022073:uc002wyb.2";
+chr20 hg19_knownGene exon 31350191 31350505 0.000000 + . gene_id "DNMT3B"; transcript_id "AK299776:uc010ztx.1";
+chr20 hg19_knownGene exon 31368124 31368271 0.000000 + . gene_id "DNMT3B"; transcript_id "AK299776:uc010ztx.1";
+chr20 hg19_knownGene exon 31369159 31369220 0.000000 + . gene_id "DNMT3B"; transcript_id "AK299776:uc010ztx.1";
+chr20 hg19_knownGene exon 31372564 31372665 0.000000 + . gene_id "DNMT3B"; transcript_id "AK299776:uc010ztx.1";
+chr20 hg19_knownGene exon 31375036 31375257 0.000000 + . gene_id "DNMT3B"; transcript_id "AK299776:uc010ztx.1";
+chr20 hg19_knownGene exon 31376660 31376818 0.000000 + . gene_id "DNMT3B"; transcript_id "AK299776:uc010ztx.1";
+chr20 hg19_knownGene exon 31379407 31379514 0.000000 + . gene_id "DNMT3B"; transcript_id "AK299776:uc010ztx.1";
+chr20 hg19_knownGene exon 31380432 31380576 0.000000 + . gene_id "DNMT3B"; transcript_id "AK299776:uc010ztx.1";
+chr20 hg19_knownGene exon 31383121 31383340 0.000000 + . gene_id "DNMT3B"; transcript_id "AK299776:uc010ztx.1";
+chr20 hg19_knownGene exon 31383456 31383500 0.000000 + . gene_id "DNMT3B"; transcript_id "AK299776:uc010ztx.1";
+chr20 hg19_knownGene exon 31384596 31384675 0.000000 + . gene_id "DNMT3B"; transcript_id "AK299776:uc010ztx.1";
+chr20 hg19_knownGene exon 31384993 31385105 0.000000 + . gene_id "DNMT3B"; transcript_id "AK299776:uc010ztx.1";
+chr20 hg19_knownGene exon 31386266 31386449 0.000000 + . gene_id "DNMT3B"; transcript_id "AK299776:uc010ztx.1";
+chr20 hg19_knownGene exon 31350191 31350505 0.000000 + . gene_id "DNMT3B"; transcript_id "AK295176:uc010zty.1";
+chr20 hg19_knownGene exon 31368124 31368271 0.000000 + . gene_id "DNMT3B"; transcript_id "AK295176:uc010zty.1";
+chr20 hg19_knownGene exon 31369159 31369220 0.000000 + . gene_id "DNMT3B"; transcript_id "AK295176:uc010zty.1";
+chr20 hg19_knownGene exon 31372564 31372665 0.000000 + . gene_id "DNMT3B"; transcript_id "AK295176:uc010zty.1";
+chr20 hg19_knownGene exon 31375036 31375257 0.000000 + . gene_id "DNMT3B"; transcript_id "AK295176:uc010zty.1";
+chr20 hg19_knownGene exon 31376660 31376818 0.000000 + . gene_id "DNMT3B"; transcript_id "AK295176:uc010zty.1";
+chr20 hg19_knownGene exon 31379407 31379514 0.000000 + . gene_id "DNMT3B"; transcript_id "AK295176:uc010zty.1";
+chr20 hg19_knownGene exon 31383215 31383340 0.000000 + . gene_id "DNMT3B"; transcript_id "AK295176:uc010zty.1";
+chr20 hg19_knownGene exon 31383456 31383500 0.000000 + . gene_id "DNMT3B"; transcript_id "AK295176:uc010zty.1";
+chr20 hg19_knownGene exon 31384618 31384675 0.000000 + . gene_id "DNMT3B"; transcript_id "AK295176:uc010zty.1";
+chr20 hg19_knownGene exon 31384993 31385105 0.000000 + . gene_id "DNMT3B"; transcript_id "AK295176:uc010zty.1";
+chr20 hg19_knownGene exon 31386266 31386449 0.000000 + . gene_id "DNMT3B"; transcript_id "AK295176:uc010zty.1";
+chr20 hg19_knownGene exon 31387050 31387134 0.000000 + . gene_id "DNMT3B"; transcript_id "AK295176:uc010zty.1";
+chr20 hg19_knownGene exon 31387959 31388104 0.000000 + . gene_id "DNMT3B"; transcript_id "AK295176:uc010zty.1";
+chr20 hg19_knownGene exon 31388641 31388731 0.000000 + . gene_id "DNMT3B"; transcript_id "AK295176:uc010zty.1";
+chr20 hg19_knownGene exon 31350191 31350505 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene CDS 31368130 31368271 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene exon 31368124 31368271 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene CDS 31369159 31369220 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene exon 31369159 31369220 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene CDS 31372564 31372665 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene exon 31372564 31372665 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene CDS 31374308 31374433 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene exon 31374308 31374433 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene CDS 31375036 31375257 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene exon 31375036 31375257 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene CDS 31376660 31376818 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene exon 31376660 31376818 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene CDS 31379407 31379514 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene exon 31379407 31379514 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene CDS 31380432 31380576 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene exon 31380432 31380576 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene CDS 31381342 31381401 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene exon 31381342 31381401 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene CDS 31383215 31383340 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene exon 31383215 31383340 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene CDS 31383456 31383500 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene exon 31383456 31383500 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene CDS 31384596 31384675 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene exon 31384596 31384675 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene CDS 31384993 31385105 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene exon 31384993 31385105 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene CDS 31386266 31386449 0.000000 + 1 gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene exon 31386266 31386449 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene CDS 31387050 31387134 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene exon 31387050 31387134 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene CDS 31387959 31388104 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene exon 31387959 31388104 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene CDS 31388641 31388731 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene exon 31388641 31388731 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene CDS 31389084 31389232 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene exon 31389084 31389232 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene CDS 31390191 31390276 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene exon 31390191 31390276 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene CDS 31393144 31393213 0.000000 + 1 gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene exon 31393144 31393213 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene CDS 31394015 31394133 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene exon 31394015 31394133 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene CDS 31395568 31395706 0.000000 + 1 gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene exon 31395568 31397162 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_006892:uc002wyc.3";
+chr20 hg19_knownGene exon 31350191 31350505 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene CDS 31368130 31368271 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene exon 31368124 31368271 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene CDS 31369159 31369220 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene exon 31369159 31369220 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene CDS 31372564 31372665 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene exon 31372564 31372665 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene CDS 31374308 31374433 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene exon 31374308 31374433 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene CDS 31375036 31375257 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene exon 31375036 31375257 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene CDS 31376660 31376818 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene exon 31376660 31376818 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene CDS 31379407 31379514 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene exon 31379407 31379514 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene CDS 31380432 31380576 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene exon 31380432 31380576 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene CDS 31383215 31383340 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene exon 31383215 31383340 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene CDS 31383456 31383500 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene exon 31383456 31383500 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene CDS 31384596 31384675 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene exon 31384596 31384675 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene CDS 31384993 31385105 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene exon 31384993 31385105 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene CDS 31386266 31386449 0.000000 + 1 gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene exon 31386266 31386449 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene CDS 31387050 31387134 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene exon 31387050 31387134 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene CDS 31387959 31388104 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene exon 31387959 31388104 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene CDS 31388641 31388731 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene exon 31388641 31388731 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene CDS 31389084 31389232 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene exon 31389084 31389232 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene CDS 31390191 31390276 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene exon 31390191 31390276 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene CDS 31393144 31393213 0.000000 + 1 gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene exon 31393144 31393213 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene CDS 31394015 31394133 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene exon 31394015 31394133 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene CDS 31395568 31395706 0.000000 + 1 gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene exon 31395568 31397162 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175848:uc002wyd.3";
+chr20 hg19_knownGene exon 31350191 31350505 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene CDS 31368130 31368271 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene exon 31368124 31368271 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene CDS 31369159 31369220 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene exon 31369159 31369220 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene CDS 31372564 31372665 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene exon 31372564 31372665 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene CDS 31374308 31374433 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene exon 31374308 31374433 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene CDS 31375036 31375257 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene exon 31375036 31375257 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene CDS 31376660 31376818 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene exon 31376660 31376818 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene CDS 31379407 31379514 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene exon 31379407 31379514 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene CDS 31380432 31380576 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene exon 31380432 31380576 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene CDS 31383215 31383340 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene exon 31383215 31383340 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene CDS 31383456 31383500 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene exon 31383456 31383500 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene CDS 31384596 31384675 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene exon 31384596 31384675 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene CDS 31384993 31385105 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene exon 31384993 31385105 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene CDS 31386266 31386449 0.000000 + 1 gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene exon 31386266 31386449 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene CDS 31387050 31387134 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene exon 31387050 31387134 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene CDS 31387959 31388104 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene exon 31387959 31388104 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene CDS 31388641 31388731 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene exon 31388641 31388731 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene CDS 31389084 31389232 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene exon 31389084 31389232 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene CDS 31390191 31390276 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene exon 31390191 31390276 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene CDS 31395568 31395706 0.000000 + 1 gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene exon 31395568 31397162 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175849:uc002wye.3";
+chr20 hg19_knownGene exon 31350191 31350505 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene CDS 31368130 31368271 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene exon 31368124 31368271 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene CDS 31369159 31369220 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene exon 31369159 31369220 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene CDS 31372564 31372665 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene exon 31372564 31372665 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene CDS 31375036 31375257 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene exon 31375036 31375257 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene CDS 31376660 31376818 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene exon 31376660 31376818 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene CDS 31379407 31379514 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene exon 31379407 31379514 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene CDS 31380432 31380576 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene exon 31380432 31380576 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene CDS 31383215 31383340 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene exon 31383215 31383340 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene CDS 31383456 31383500 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene exon 31383456 31383500 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene CDS 31384596 31384675 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene exon 31384596 31384675 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene CDS 31384993 31385105 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene exon 31384993 31385105 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene CDS 31386266 31386449 0.000000 + 1 gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene exon 31386266 31386449 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene CDS 31387050 31387134 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene exon 31387050 31387134 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene CDS 31387959 31388104 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene exon 31387959 31388104 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene CDS 31388641 31388731 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene exon 31388641 31388731 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene CDS 31389084 31389232 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene exon 31389084 31389232 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene CDS 31390191 31390276 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene exon 31390191 31390276 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene CDS 31395568 31395706 0.000000 + 1 gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene exon 31395568 31397162 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207055:uc010ztz.2";
+chr20 hg19_knownGene exon 31350191 31350505 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene CDS 31368130 31368271 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene exon 31368124 31368271 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene CDS 31369159 31369220 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene exon 31369159 31369220 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene CDS 31375036 31375257 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene exon 31375036 31375257 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene CDS 31376660 31376818 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene exon 31376660 31376818 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene CDS 31379407 31379514 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene exon 31379407 31379514 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene CDS 31380432 31380576 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene exon 31380432 31380576 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene CDS 31383215 31383340 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene exon 31383215 31383340 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene CDS 31383456 31383500 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene exon 31383456 31383500 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene CDS 31384596 31384675 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene exon 31384596 31384675 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene CDS 31384993 31385105 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene exon 31384993 31385105 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene CDS 31386266 31386449 0.000000 + 1 gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene exon 31386266 31386449 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene CDS 31387050 31387134 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene exon 31387050 31387134 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene CDS 31387959 31388104 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene exon 31387959 31388104 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene CDS 31388641 31388731 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene exon 31388641 31388731 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene CDS 31389084 31389232 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene exon 31389084 31389232 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene CDS 31390191 31390276 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene exon 31390191 31390276 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene CDS 31395568 31395706 0.000000 + 1 gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene exon 31395568 31397162 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_001207056:uc010zua.2";
+chr20 hg19_knownGene exon 31350191 31350505 0.000000 + . gene_id "DNMT3B"; transcript_id "DQ321787:uc010gee.3";
+chr20 hg19_knownGene exon 31368124 31368271 0.000000 + . gene_id "DNMT3B"; transcript_id "DQ321787:uc010gee.3";
+chr20 hg19_knownGene exon 31369159 31369220 0.000000 + . gene_id "DNMT3B"; transcript_id "DQ321787:uc010gee.3";
+chr20 hg19_knownGene exon 31372564 31372665 0.000000 + . gene_id "DNMT3B"; transcript_id "DQ321787:uc010gee.3";
+chr20 hg19_knownGene exon 31374308 31374433 0.000000 + . gene_id "DNMT3B"; transcript_id "DQ321787:uc010gee.3";
+chr20 hg19_knownGene exon 31375036 31375257 0.000000 + . gene_id "DNMT3B"; transcript_id "DQ321787:uc010gee.3";
+chr20 hg19_knownGene exon 31376660 31376818 0.000000 + . gene_id "DNMT3B"; transcript_id "DQ321787:uc010gee.3";
+chr20 hg19_knownGene exon 31379407 31379514 0.000000 + . gene_id "DNMT3B"; transcript_id "DQ321787:uc010gee.3";
+chr20 hg19_knownGene exon 31380432 31380576 0.000000 + . gene_id "DNMT3B"; transcript_id "DQ321787:uc010gee.3";
+chr20 hg19_knownGene exon 31383121 31383340 0.000000 + . gene_id "DNMT3B"; transcript_id "DQ321787:uc010gee.3";
+chr20 hg19_knownGene exon 31383456 31383500 0.000000 + . gene_id "DNMT3B"; transcript_id "DQ321787:uc010gee.3";
+chr20 hg19_knownGene exon 31384596 31384675 0.000000 + . gene_id "DNMT3B"; transcript_id "DQ321787:uc010gee.3";
+chr20 hg19_knownGene exon 31384993 31385105 0.000000 + . gene_id "DNMT3B"; transcript_id "DQ321787:uc010gee.3";
+chr20 hg19_knownGene exon 31386266 31386449 0.000000 + . gene_id "DNMT3B"; transcript_id "DQ321787:uc010gee.3";
+chr20 hg19_knownGene exon 31387050 31387134 0.000000 + . gene_id "DNMT3B"; transcript_id "DQ321787:uc010gee.3";
+chr20 hg19_knownGene exon 31387959 31388104 0.000000 + . gene_id "DNMT3B"; transcript_id "DQ321787:uc010gee.3";
+chr20 hg19_knownGene exon 31388641 31388731 0.000000 + . gene_id "DNMT3B"; transcript_id "DQ321787:uc010gee.3";
+chr20 hg19_knownGene exon 31389084 31389232 0.000000 + . gene_id "DNMT3B"; transcript_id "DQ321787:uc010gee.3";
+chr20 hg19_knownGene exon 31390191 31390276 0.000000 + . gene_id "DNMT3B"; transcript_id "DQ321787:uc010gee.3";
+chr20 hg19_knownGene exon 31393144 31393213 0.000000 + . gene_id "DNMT3B"; transcript_id "DQ321787:uc010gee.3";
+chr20 hg19_knownGene exon 31394015 31394133 0.000000 + . gene_id "DNMT3B"; transcript_id "DQ321787:uc010gee.3";
+chr20 hg19_knownGene exon 31395568 31397162 0.000000 + . gene_id "DNMT3B"; transcript_id "DQ321787:uc010gee.3";
+chr20 hg19_knownGene exon 31350191 31350505 0.000000 + . gene_id "DNMT3B"; transcript_id "AB208880:uc010gef.3";
+chr20 hg19_knownGene exon 31368124 31368271 0.000000 + . gene_id "DNMT3B"; transcript_id "AB208880:uc010gef.3";
+chr20 hg19_knownGene exon 31369159 31369220 0.000000 + . gene_id "DNMT3B"; transcript_id "AB208880:uc010gef.3";
+chr20 hg19_knownGene exon 31372564 31372665 0.000000 + . gene_id "DNMT3B"; transcript_id "AB208880:uc010gef.3";
+chr20 hg19_knownGene exon 31374308 31374433 0.000000 + . gene_id "DNMT3B"; transcript_id "AB208880:uc010gef.3";
+chr20 hg19_knownGene exon 31375036 31375257 0.000000 + . gene_id "DNMT3B"; transcript_id "AB208880:uc010gef.3";
+chr20 hg19_knownGene exon 31376660 31376818 0.000000 + . gene_id "DNMT3B"; transcript_id "AB208880:uc010gef.3";
+chr20 hg19_knownGene exon 31379407 31379514 0.000000 + . gene_id "DNMT3B"; transcript_id "AB208880:uc010gef.3";
+chr20 hg19_knownGene exon 31380432 31380576 0.000000 + . gene_id "DNMT3B"; transcript_id "AB208880:uc010gef.3";
+chr20 hg19_knownGene exon 31383215 31383340 0.000000 + . gene_id "DNMT3B"; transcript_id "AB208880:uc010gef.3";
+chr20 hg19_knownGene exon 31383456 31383500 0.000000 + . gene_id "DNMT3B"; transcript_id "AB208880:uc010gef.3";
+chr20 hg19_knownGene exon 31384596 31384675 0.000000 + . gene_id "DNMT3B"; transcript_id "AB208880:uc010gef.3";
+chr20 hg19_knownGene exon 31384747 31385105 0.000000 + . gene_id "DNMT3B"; transcript_id "AB208880:uc010gef.3";
+chr20 hg19_knownGene exon 31386266 31386449 0.000000 + . gene_id "DNMT3B"; transcript_id "AB208880:uc010gef.3";
+chr20 hg19_knownGene exon 31387050 31387134 0.000000 + . gene_id "DNMT3B"; transcript_id "AB208880:uc010gef.3";
+chr20 hg19_knownGene exon 31387959 31388104 0.000000 + . gene_id "DNMT3B"; transcript_id "AB208880:uc010gef.3";
+chr20 hg19_knownGene exon 31388641 31388731 0.000000 + . gene_id "DNMT3B"; transcript_id "AB208880:uc010gef.3";
+chr20 hg19_knownGene exon 31389084 31389232 0.000000 + . gene_id "DNMT3B"; transcript_id "AB208880:uc010gef.3";
+chr20 hg19_knownGene exon 31390191 31390276 0.000000 + . gene_id "DNMT3B"; transcript_id "AB208880:uc010gef.3";
+chr20 hg19_knownGene exon 31395568 31397162 0.000000 + . gene_id "DNMT3B"; transcript_id "AB208880:uc010gef.3";
+chr20 hg19_knownGene CDS 31367922 31367951 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene exon 31367658 31367951 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene CDS 31368124 31368271 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene exon 31368124 31368271 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene CDS 31369159 31369220 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene exon 31369159 31369220 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene CDS 31372564 31372665 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene exon 31372564 31372665 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene CDS 31374308 31374433 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene exon 31374308 31374433 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene CDS 31375036 31375257 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene exon 31375036 31375257 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene CDS 31376660 31376818 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene exon 31376660 31376818 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene CDS 31379407 31379514 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene exon 31379407 31379514 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene CDS 31380432 31380576 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene exon 31380432 31380576 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene CDS 31383215 31383340 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene exon 31383215 31383340 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene CDS 31383456 31383500 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene exon 31383456 31383500 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene CDS 31384596 31384675 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene exon 31384596 31384675 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene CDS 31384993 31385105 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene exon 31384993 31385105 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene CDS 31386266 31386449 0.000000 + 1 gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene exon 31386266 31386449 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene CDS 31387050 31387134 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene exon 31387050 31387134 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene CDS 31387959 31388104 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene exon 31387959 31388104 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene CDS 31388641 31388731 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene exon 31388641 31388731 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene CDS 31389084 31389232 0.000000 + 2 gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene exon 31389084 31389232 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene CDS 31390191 31390276 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene exon 31390191 31390276 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene CDS 31393144 31393213 0.000000 + 1 gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene exon 31393144 31393213 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene CDS 31394015 31394133 0.000000 + 0 gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene exon 31394015 31394133 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene CDS 31395568 31395706 0.000000 + 1 gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene exon 31395568 31397162 0.000000 + . gene_id "DNMT3B"; transcript_id "NM_175850:uc002wyf.3";
+chr20 hg19_knownGene CDS 31379497 31379514 0.000000 + 0 gene_id "DNMT3B"; transcript_id "AK001191:uc002wyg.3";
+chr20 hg19_knownGene exon 31379407 31379514 0.000000 + . gene_id "DNMT3B"; transcript_id "AK001191:uc002wyg.3";
+chr20 hg19_knownGene CDS 31380432 31380576 0.000000 + 0 gene_id "DNMT3B"; transcript_id "AK001191:uc002wyg.3";
+chr20 hg19_knownGene exon 31380432 31380576 0.000000 + . gene_id "DNMT3B"; transcript_id "AK001191:uc002wyg.3";
+chr20 hg19_knownGene CDS 31381342 31381401 0.000000 + 2 gene_id "DNMT3B"; transcript_id "AK001191:uc002wyg.3";
+chr20 hg19_knownGene exon 31381342 31381401 0.000000 + . gene_id "DNMT3B"; transcript_id "AK001191:uc002wyg.3";
+chr20 hg19_knownGene CDS 31383215 31383340 0.000000 + 2 gene_id "DNMT3B"; transcript_id "AK001191:uc002wyg.3";
+chr20 hg19_knownGene exon 31383215 31383340 0.000000 + . gene_id "DNMT3B"; transcript_id "AK001191:uc002wyg.3";
+chr20 hg19_knownGene CDS 31383456 31383500 0.000000 + 2 gene_id "DNMT3B"; transcript_id "AK001191:uc002wyg.3";
+chr20 hg19_knownGene exon 31383456 31383500 0.000000 + . gene_id "DNMT3B"; transcript_id "AK001191:uc002wyg.3";
+chr20 hg19_knownGene CDS 31384596 31384675 0.000000 + 2 gene_id "DNMT3B"; transcript_id "AK001191:uc002wyg.3";
+chr20 hg19_knownGene exon 31384596 31384675 0.000000 + . gene_id "DNMT3B"; transcript_id "AK001191:uc002wyg.3";
+chr20 hg19_knownGene CDS 31384993 31385105 0.000000 + 0 gene_id "DNMT3B"; transcript_id "AK001191:uc002wyg.3";
+chr20 hg19_knownGene exon 31384993 31385105 0.000000 + . gene_id "DNMT3B"; transcript_id "AK001191:uc002wyg.3";
+chr20 hg19_knownGene CDS 31386266 31386449 0.000000 + 1 gene_id "DNMT3B"; transcript_id "AK001191:uc002wyg.3";
+chr20 hg19_knownGene exon 31386266 31386449 0.000000 + . gene_id "DNMT3B"; transcript_id "AK001191:uc002wyg.3";
+chr20 hg19_knownGene CDS 31387050 31387134 0.000000 + 0 gene_id "DNMT3B"; transcript_id "AK001191:uc002wyg.3";
+chr20 hg19_knownGene exon 31387050 31387134 0.000000 + . gene_id "DNMT3B"; transcript_id "AK001191:uc002wyg.3";
+chr20 hg19_knownGene CDS 31387959 31388104 0.000000 + 2 gene_id "DNMT3B"; transcript_id "AK001191:uc002wyg.3";
+chr20 hg19_knownGene exon 31387959 31388104 0.000000 + . gene_id "DNMT3B"; transcript_id "AK001191:uc002wyg.3";
+chr20 hg19_knownGene CDS 31388641 31388731 0.000000 + 0 gene_id "DNMT3B"; transcript_id "AK001191:uc002wyg.3";
+chr20 hg19_knownGene exon 31388641 31388731 0.000000 + . gene_id "DNMT3B"; transcript_id "AK001191:uc002wyg.3";
+chr20 hg19_knownGene CDS 31389084 31389232 0.000000 + 2 gene_id "DNMT3B"; transcript_id "AK001191:uc002wyg.3";
+chr20 hg19_knownGene exon 31389084 31389232 0.000000 + . gene_id "DNMT3B"; transcript_id "AK001191:uc002wyg.3";
+chr20 hg19_knownGene CDS 31390191 31390276 0.000000 + 0 gene_id "DNMT3B"; transcript_id "AK001191:uc002wyg.3";
+chr20 hg19_knownGene exon 31390191 31390276 0.000000 + . gene_id "DNMT3B"; transcript_id "AK001191:uc002wyg.3";
+chr20 hg19_knownGene CDS 31395568 31395706 0.000000 + 1 gene_id "DNMT3B"; transcript_id "AK001191:uc002wyg.3";
+chr20 hg19_knownGene exon 31395568 31397162 0.000000 + . gene_id "DNMT3B"; transcript_id "AK001191:uc002wyg.3";
+chr20 hg19_knownGene exon 31388641 31388731 0.000000 + . gene_id "DNMT3B"; transcript_id "AF129269:uc010geg.3";
+chr20 hg19_knownGene CDS 31389191 31389232 0.000000 + 0 gene_id "DNMT3B"; transcript_id "AF129269:uc010geg.3";
+chr20 hg19_knownGene exon 31389084 31389232 0.000000 + . gene_id "DNMT3B"; transcript_id "AF129269:uc010geg.3";
+chr20 hg19_knownGene CDS 31390191 31390276 0.000000 + 0 gene_id "DNMT3B"; transcript_id "AF129269:uc010geg.3";
+chr20 hg19_knownGene exon 31390191 31390276 0.000000 + . gene_id "DNMT3B"; transcript_id "AF129269:uc010geg.3";
+chr20 hg19_knownGene CDS 31393144 31393213 0.000000 + 1 gene_id "DNMT3B"; transcript_id "AF129269:uc010geg.3";
+chr20 hg19_knownGene exon 31393144 31393213 0.000000 + . gene_id "DNMT3B"; transcript_id "AF129269:uc010geg.3";
+chr20 hg19_knownGene CDS 31395568 31395702 0.000000 + 0 gene_id "DNMT3B"; transcript_id "AF129269:uc010geg.3";
+chr20 hg19_knownGene exon 31395568 31397162 0.000000 + . gene_id "DNMT3B"; transcript_id "AF129269:uc010geg.3";
+chr20 hg19_knownGene exon 31388641 31388731 0.000000 + . gene_id "DNMT3B"; transcript_id "AF129268:uc010geh.3";
+chr20 hg19_knownGene exon 31389084 31389232 0.000000 + . gene_id "DNMT3B"; transcript_id "AF129268:uc010geh.3";
+chr20 hg19_knownGene exon 31390191 31390276 0.000000 + . gene_id "DNMT3B"; transcript_id "AF129268:uc010geh.3";
+chr20 hg19_knownGene exon 31394015 31394133 0.000000 + . gene_id "DNMT3B"; transcript_id "AF129268:uc010geh.3";
+chr20 hg19_knownGene exon 31395568 31397162 0.000000 + . gene_id "DNMT3B"; transcript_id "AF129268:uc010geh.3";
+chr20 hg19_knownGene exon 31407699 31407834 0.000000 + . gene_id "MAPRE1"; transcript_id "NM_012325:uc002wyh.3";
+chr20 hg19_knownGene CDS 31413734 31413854 0.000000 + 0 gene_id "MAPRE1"; transcript_id "NM_012325:uc002wyh.3";
+chr20 hg19_knownGene exon 31413731 31413854 0.000000 + . gene_id "MAPRE1"; transcript_id "NM_012325:uc002wyh.3";
+chr20 hg19_knownGene CDS 31421523 31421668 0.000000 + 2 gene_id "MAPRE1"; transcript_id "NM_012325:uc002wyh.3";
+chr20 hg19_knownGene exon 31421523 31421668 0.000000 + . gene_id "MAPRE1"; transcript_id "NM_012325:uc002wyh.3";
+chr20 hg19_knownGene CDS 31424440 31424647 0.000000 + 0 gene_id "MAPRE1"; transcript_id "NM_012325:uc002wyh.3";
+chr20 hg19_knownGene exon 31424440 31424647 0.000000 + . gene_id "MAPRE1"; transcript_id "NM_012325:uc002wyh.3";
+chr20 hg19_knownGene CDS 31427541 31427662 0.000000 + 2 gene_id "MAPRE1"; transcript_id "NM_012325:uc002wyh.3";
+chr20 hg19_knownGene exon 31427541 31427662 0.000000 + . gene_id "MAPRE1"; transcript_id "NM_012325:uc002wyh.3";
+chr20 hg19_knownGene CDS 31434424 31434576 0.000000 + 0 gene_id "MAPRE1"; transcript_id "NM_012325:uc002wyh.3";
+chr20 hg19_knownGene exon 31434424 31434576 0.000000 + . gene_id "MAPRE1"; transcript_id "NM_012325:uc002wyh.3";
+chr20 hg19_knownGene CDS 31436478 31436531 0.000000 + 0 gene_id "MAPRE1"; transcript_id "NM_012325:uc002wyh.3";
+chr20 hg19_knownGene exon 31436478 31438211 0.000000 + . gene_id "MAPRE1"; transcript_id "NM_012325:uc002wyh.3";
+chr20 hg19_knownGene CDS 31571603 31571755 0.000000 - 0 gene_id "SUN5"; transcript_id "NM_080675:uc002wyi.3";
+chr20 hg19_knownGene exon 31571581 31571755 0.000000 - . gene_id "SUN5"; transcript_id "NM_080675:uc002wyi.3";
+chr20 hg19_knownGene CDS 31572905 31572991 0.000000 - 0 gene_id "SUN5"; transcript_id "NM_080675:uc002wyi.3";
+chr20 hg19_knownGene exon 31572905 31572991 0.000000 - . gene_id "SUN5"; transcript_id "NM_080675:uc002wyi.3";
+chr20 hg19_knownGene CDS 31573542 31573709 0.000000 - 0 gene_id "SUN5"; transcript_id "NM_080675:uc002wyi.3";
+chr20 hg19_knownGene exon 31573542 31573709 0.000000 - . gene_id "SUN5"; transcript_id "NM_080675:uc002wyi.3";
+chr20 hg19_knownGene CDS 31575466 31575581 0.000000 - 2 gene_id "SUN5"; transcript_id "NM_080675:uc002wyi.3";
+chr20 hg19_knownGene exon 31575466 31575581 0.000000 - . gene_id "SUN5"; transcript_id "NM_080675:uc002wyi.3";
+chr20 hg19_knownGene CDS 31577426 31577504 0.000000 - 0 gene_id "SUN5"; transcript_id "NM_080675:uc002wyi.3";
+chr20 hg19_knownGene exon 31577426 31577504 0.000000 - . gene_id "SUN5"; transcript_id "NM_080675:uc002wyi.3";
+chr20 hg19_knownGene CDS 31583425 31583533 0.000000 - 1 gene_id "SUN5"; transcript_id "NM_080675:uc002wyi.3";
+chr20 hg19_knownGene exon 31583425 31583533 0.000000 - . gene_id "SUN5"; transcript_id "NM_080675:uc002wyi.3";
+chr20 hg19_knownGene CDS 31584130 31584164 0.000000 - 0 gene_id "SUN5"; transcript_id "NM_080675:uc002wyi.3";
+chr20 hg19_knownGene exon 31584130 31584164 0.000000 - . gene_id "SUN5"; transcript_id "NM_080675:uc002wyi.3";
+chr20 hg19_knownGene CDS 31585444 31585493 0.000000 - 2 gene_id "SUN5"; transcript_id "NM_080675:uc002wyi.3";
+chr20 hg19_knownGene exon 31585444 31585493 0.000000 - . gene_id "SUN5"; transcript_id "NM_080675:uc002wyi.3";
+chr20 hg19_knownGene CDS 31587880 31587941 0.000000 - 1 gene_id "SUN5"; transcript_id "NM_080675:uc002wyi.3";
+chr20 hg19_knownGene exon 31587880 31587941 0.000000 - . gene_id "SUN5"; transcript_id "NM_080675:uc002wyi.3";
+chr20 hg19_knownGene CDS 31589018 31589084 0.000000 - 2 gene_id "SUN5"; transcript_id "NM_080675:uc002wyi.3";
+chr20 hg19_knownGene exon 31589018 31589084 0.000000 - . gene_id "SUN5"; transcript_id "NM_080675:uc002wyi.3";
+chr20 hg19_knownGene CDS 31590393 31590467 0.000000 - 2 gene_id "SUN5"; transcript_id "NM_080675:uc002wyi.3";
+chr20 hg19_knownGene exon 31590393 31590467 0.000000 - . gene_id "SUN5"; transcript_id "NM_080675:uc002wyi.3";
+chr20 hg19_knownGene CDS 31590667 31590725 0.000000 - 1 gene_id "SUN5"; transcript_id "NM_080675:uc002wyi.3";
+chr20 hg19_knownGene exon 31590667 31590725 0.000000 - . gene_id "SUN5"; transcript_id "NM_080675:uc002wyi.3";
+chr20 hg19_knownGene CDS 31592070 31592146 0.000000 - 0 gene_id "SUN5"; transcript_id "NM_080675:uc002wyi.3";
+chr20 hg19_knownGene exon 31592070 31592239 0.000000 - . gene_id "SUN5"; transcript_id "NM_080675:uc002wyi.3";
+chr20 hg19_knownGene exon 31595407 31595566 0.000000 + . gene_id "BPIFB2"; transcript_id "NM_025227:uc002wyj.3";
+chr20 hg19_knownGene CDS 31596381 31596489 0.000000 + 0 gene_id "BPIFB2"; transcript_id "NM_025227:uc002wyj.3";
+chr20 hg19_knownGene exon 31596347 31596489 0.000000 + . gene_id "BPIFB2"; transcript_id "NM_025227:uc002wyj.3";
+chr20 hg19_knownGene CDS 31598830 31598923 0.000000 + 2 gene_id "BPIFB2"; transcript_id "NM_025227:uc002wyj.3";
+chr20 hg19_knownGene exon 31598830 31598923 0.000000 + . gene_id "BPIFB2"; transcript_id "NM_025227:uc002wyj.3";
+chr20 hg19_knownGene CDS 31600609 31600713 0.000000 + 1 gene_id "BPIFB2"; transcript_id "NM_025227:uc002wyj.3";
+chr20 hg19_knownGene exon 31600609 31600713 0.000000 + . gene_id "BPIFB2"; transcript_id "NM_025227:uc002wyj.3";
+chr20 hg19_knownGene CDS 31601616 31601762 0.000000 + 1 gene_id "BPIFB2"; transcript_id "NM_025227:uc002wyj.3";
+chr20 hg19_knownGene exon 31601616 31601762 0.000000 + . gene_id "BPIFB2"; transcript_id "NM_025227:uc002wyj.3";
+chr20 hg19_knownGene CDS 31603242 31603302 0.000000 + 1 gene_id "BPIFB2"; transcript_id "NM_025227:uc002wyj.3";
+chr20 hg19_knownGene exon 31603242 31603302 0.000000 + . gene_id "BPIFB2"; transcript_id "NM_025227:uc002wyj.3";
+chr20 hg19_knownGene CDS 31604848 31604908 0.000000 + 0 gene_id "BPIFB2"; transcript_id "NM_025227:uc002wyj.3";
+chr20 hg19_knownGene exon 31604848 31604908 0.000000 + . gene_id "BPIFB2"; transcript_id "NM_025227:uc002wyj.3";
+chr20 hg19_knownGene CDS 31606065 31606156 0.000000 + 2 gene_id "BPIFB2"; transcript_id "NM_025227:uc002wyj.3";
+chr20 hg19_knownGene exon 31606065 31606156 0.000000 + . gene_id "BPIFB2"; transcript_id "NM_025227:uc002wyj.3";
+chr20 hg19_knownGene CDS 31606443 31606628 0.000000 + 0 gene_id "BPIFB2"; transcript_id "NM_025227:uc002wyj.3";
+chr20 hg19_knownGene exon 31606443 31606628 0.000000 + . gene_id "BPIFB2"; transcript_id "NM_025227:uc002wyj.3";
+chr20 hg19_knownGene CDS 31606868 31606921 0.000000 + 0 gene_id "BPIFB2"; transcript_id "NM_025227:uc002wyj.3";
+chr20 hg19_knownGene exon 31606868 31606921 0.000000 + . gene_id "BPIFB2"; transcript_id "NM_025227:uc002wyj.3";
+chr20 hg19_knownGene CDS 31607386 31607556 0.000000 + 0 gene_id "BPIFB2"; transcript_id "NM_025227:uc002wyj.3";
+chr20 hg19_knownGene exon 31607386 31607556 0.000000 + . gene_id "BPIFB2"; transcript_id "NM_025227:uc002wyj.3";
+chr20 hg19_knownGene CDS 31608134 31608201 0.000000 + 0 gene_id "BPIFB2"; transcript_id "NM_025227:uc002wyj.3";
+chr20 hg19_knownGene exon 31608134 31608201 0.000000 + . gene_id "BPIFB2"; transcript_id "NM_025227:uc002wyj.3";
+chr20 hg19_knownGene CDS 31608348 31608393 0.000000 + 1 gene_id "BPIFB2"; transcript_id "NM_025227:uc002wyj.3";
+chr20 hg19_knownGene exon 31608348 31608393 0.000000 + . gene_id "BPIFB2"; transcript_id "NM_025227:uc002wyj.3";
+chr20 hg19_knownGene CDS 31609087 31609150 0.000000 + 0 gene_id "BPIFB2"; transcript_id "NM_025227:uc002wyj.3";
+chr20 hg19_knownGene exon 31609087 31609150 0.000000 + . gene_id "BPIFB2"; transcript_id "NM_025227:uc002wyj.3";
+chr20 hg19_knownGene CDS 31609529 31609605 0.000000 + 2 gene_id "BPIFB2"; transcript_id "NM_025227:uc002wyj.3";
+chr20 hg19_knownGene exon 31609529 31609605 0.000000 + . gene_id "BPIFB2"; transcript_id "NM_025227:uc002wyj.3";
+chr20 hg19_knownGene CDS 31611148 31611186 0.000000 + 0 gene_id "BPIFB2"; transcript_id "NM_025227:uc002wyj.3";
+chr20 hg19_knownGene exon 31611148 31611515 0.000000 + . gene_id "BPIFB2"; transcript_id "NM_025227:uc002wyj.3";
+chr20 hg19_knownGene CDS 31619454 31619550 0.000000 + 0 gene_id "BPIFB6"; transcript_id "NM_174897:uc010zuc.2";
+chr20 hg19_knownGene exon 31619454 31619550 0.000000 + . gene_id "BPIFB6"; transcript_id "NM_174897:uc010zuc.2";
+chr20 hg19_knownGene CDS 31620790 31620889 0.000000 + 2 gene_id "BPIFB6"; transcript_id "NM_174897:uc010zuc.2";
+chr20 hg19_knownGene exon 31620790 31620889 0.000000 + . gene_id "BPIFB6"; transcript_id "NM_174897:uc010zuc.2";
+chr20 hg19_knownGene CDS 31621992 31622096 0.000000 + 1 gene_id "BPIFB6"; transcript_id "NM_174897:uc010zuc.2";
+chr20 hg19_knownGene exon 31621992 31622096 0.000000 + . gene_id "BPIFB6"; transcript_id "NM_174897:uc010zuc.2";
+chr20 hg19_knownGene CDS 31622569 31622718 0.000000 + 1 gene_id "BPIFB6"; transcript_id "NM_174897:uc010zuc.2";
+chr20 hg19_knownGene exon 31622569 31622718 0.000000 + . gene_id "BPIFB6"; transcript_id "NM_174897:uc010zuc.2";
+chr20 hg19_knownGene CDS 31622887 31622950 0.000000 + 1 gene_id "BPIFB6"; transcript_id "NM_174897:uc010zuc.2";
+chr20 hg19_knownGene exon 31622887 31622950 0.000000 + . gene_id "BPIFB6"; transcript_id "NM_174897:uc010zuc.2";
+chr20 hg19_knownGene CDS 31623418 31623478 0.000000 + 0 gene_id "BPIFB6"; transcript_id "NM_174897:uc010zuc.2";
+chr20 hg19_knownGene exon 31623418 31623478 0.000000 + . gene_id "BPIFB6"; transcript_id "NM_174897:uc010zuc.2";
+chr20 hg19_knownGene CDS 31624251 31624342 0.000000 + 2 gene_id "BPIFB6"; transcript_id "NM_174897:uc010zuc.2";
+chr20 hg19_knownGene exon 31624251 31624342 0.000000 + . gene_id "BPIFB6"; transcript_id "NM_174897:uc010zuc.2";
+chr20 hg19_knownGene CDS 31625368 31625544 0.000000 + 0 gene_id "BPIFB6"; transcript_id "NM_174897:uc010zuc.2";
+chr20 hg19_knownGene exon 31625368 31625544 0.000000 + . gene_id "BPIFB6"; transcript_id "NM_174897:uc010zuc.2";
+chr20 hg19_knownGene CDS 31626715 31626768 0.000000 + 0 gene_id "BPIFB6"; transcript_id "NM_174897:uc010zuc.2";
+chr20 hg19_knownGene exon 31626715 31626768 0.000000 + . gene_id "BPIFB6"; transcript_id "NM_174897:uc010zuc.2";
+chr20 hg19_knownGene CDS 31627153 31627326 0.000000 + 0 gene_id "BPIFB6"; transcript_id "NM_174897:uc010zuc.2";
+chr20 hg19_knownGene exon 31627153 31627326 0.000000 + . gene_id "BPIFB6"; transcript_id "NM_174897:uc010zuc.2";
+chr20 hg19_knownGene CDS 31628057 31628124 0.000000 + 0 gene_id "BPIFB6"; transcript_id "NM_174897:uc010zuc.2";
+chr20 hg19_knownGene exon 31628057 31628124 0.000000 + . gene_id "BPIFB6"; transcript_id "NM_174897:uc010zuc.2";
+chr20 hg19_knownGene CDS 31629776 31629821 0.000000 + 1 gene_id "BPIFB6"; transcript_id "NM_174897:uc010zuc.2";
+chr20 hg19_knownGene exon 31629776 31629821 0.000000 + . gene_id "BPIFB6"; transcript_id "NM_174897:uc010zuc.2";
+chr20 hg19_knownGene CDS 31630621 31630684 0.000000 + 0 gene_id "BPIFB6"; transcript_id "NM_174897:uc010zuc.2";
+chr20 hg19_knownGene exon 31630621 31630684 0.000000 + . gene_id "BPIFB6"; transcript_id "NM_174897:uc010zuc.2";
+chr20 hg19_knownGene CDS 31631097 31631173 0.000000 + 2 gene_id "BPIFB6"; transcript_id "NM_174897:uc010zuc.2";
+chr20 hg19_knownGene exon 31631097 31631173 0.000000 + . gene_id "BPIFB6"; transcript_id "NM_174897:uc010zuc.2";
+chr20 hg19_knownGene CDS 31631821 31631850 0.000000 + 0 gene_id "BPIFB6"; transcript_id "NM_174897:uc010zuc.2";
+chr20 hg19_knownGene exon 31631821 31631853 0.000000 + . gene_id "BPIFB6"; transcript_id "NM_174897:uc010zuc.2";
+chr20 hg19_knownGene exon 31619454 31619553 0.000000 + . gene_id "BPIFB6"; transcript_id "BC113122:uc010zud.2";
+chr20 hg19_knownGene exon 31620790 31620889 0.000000 + . gene_id "BPIFB6"; transcript_id "BC113122:uc010zud.2";
+chr20 hg19_knownGene CDS 31621406 31621419 0.000000 + 0 gene_id "BPIFB6"; transcript_id "BC113122:uc010zud.2";
+chr20 hg19_knownGene exon 31621109 31621419 0.000000 + . gene_id "BPIFB6"; transcript_id "BC113122:uc010zud.2";
+chr20 hg19_knownGene CDS 31621992 31622096 0.000000 + 1 gene_id "BPIFB6"; transcript_id "BC113122:uc010zud.2";
+chr20 hg19_knownGene exon 31621992 31622096 0.000000 + . gene_id "BPIFB6"; transcript_id "BC113122:uc010zud.2";
+chr20 hg19_knownGene CDS 31622569 31622718 0.000000 + 1 gene_id "BPIFB6"; transcript_id "BC113122:uc010zud.2";
+chr20 hg19_knownGene exon 31622569 31622718 0.000000 + . gene_id "BPIFB6"; transcript_id "BC113122:uc010zud.2";
+chr20 hg19_knownGene CDS 31622887 31622950 0.000000 + 1 gene_id "BPIFB6"; transcript_id "BC113122:uc010zud.2";
+chr20 hg19_knownGene exon 31622887 31622950 0.000000 + . gene_id "BPIFB6"; transcript_id "BC113122:uc010zud.2";
+chr20 hg19_knownGene CDS 31623418 31623478 0.000000 + 0 gene_id "BPIFB6"; transcript_id "BC113122:uc010zud.2";
+chr20 hg19_knownGene exon 31623418 31623478 0.000000 + . gene_id "BPIFB6"; transcript_id "BC113122:uc010zud.2";
+chr20 hg19_knownGene CDS 31624251 31624342 0.000000 + 2 gene_id "BPIFB6"; transcript_id "BC113122:uc010zud.2";
+chr20 hg19_knownGene exon 31624251 31624342 0.000000 + . gene_id "BPIFB6"; transcript_id "BC113122:uc010zud.2";
+chr20 hg19_knownGene CDS 31625368 31625544 0.000000 + 0 gene_id "BPIFB6"; transcript_id "BC113122:uc010zud.2";
+chr20 hg19_knownGene exon 31625368 31625544 0.000000 + . gene_id "BPIFB6"; transcript_id "BC113122:uc010zud.2";
+chr20 hg19_knownGene CDS 31626715 31626768 0.000000 + 0 gene_id "BPIFB6"; transcript_id "BC113122:uc010zud.2";
+chr20 hg19_knownGene exon 31626715 31626768 0.000000 + . gene_id "BPIFB6"; transcript_id "BC113122:uc010zud.2";
+chr20 hg19_knownGene CDS 31627153 31627326 0.000000 + 0 gene_id "BPIFB6"; transcript_id "BC113122:uc010zud.2";
+chr20 hg19_knownGene exon 31627153 31627326 0.000000 + . gene_id "BPIFB6"; transcript_id "BC113122:uc010zud.2";
+chr20 hg19_knownGene CDS 31628057 31628124 0.000000 + 0 gene_id "BPIFB6"; transcript_id "BC113122:uc010zud.2";
+chr20 hg19_knownGene exon 31628057 31628124 0.000000 + . gene_id "BPIFB6"; transcript_id "BC113122:uc010zud.2";
+chr20 hg19_knownGene CDS 31629776 31629821 0.000000 + 1 gene_id "BPIFB6"; transcript_id "BC113122:uc010zud.2";
+chr20 hg19_knownGene exon 31629776 31629821 0.000000 + . gene_id "BPIFB6"; transcript_id "BC113122:uc010zud.2";
+chr20 hg19_knownGene CDS 31630621 31630684 0.000000 + 0 gene_id "BPIFB6"; transcript_id "BC113122:uc010zud.2";
+chr20 hg19_knownGene exon 31630621 31630684 0.000000 + . gene_id "BPIFB6"; transcript_id "BC113122:uc010zud.2";
+chr20 hg19_knownGene CDS 31631097 31631173 0.000000 + 2 gene_id "BPIFB6"; transcript_id "BC113122:uc010zud.2";
+chr20 hg19_knownGene exon 31631097 31631173 0.000000 + . gene_id "BPIFB6"; transcript_id "BC113122:uc010zud.2";
+chr20 hg19_knownGene CDS 31631821 31631850 0.000000 + 0 gene_id "BPIFB6"; transcript_id "BC113122:uc010zud.2";
+chr20 hg19_knownGene exon 31631821 31631853 0.000000 + . gene_id "BPIFB6"; transcript_id "BC113122:uc010zud.2";
+chr20 hg19_knownGene CDS 31643230 31643353 0.000000 + 0 gene_id "BPIFB3"; transcript_id "NM_182658:uc002wym.1";
+chr20 hg19_knownGene exon 31643230 31643353 0.000000 + . gene_id "BPIFB3"; transcript_id "NM_182658:uc002wym.1";
+chr20 hg19_knownGene CDS 31644348 31644504 0.000000 + 2 gene_id "BPIFB3"; transcript_id "NM_182658:uc002wym.1";
+chr20 hg19_knownGene exon 31644348 31644504 0.000000 + . gene_id "BPIFB3"; transcript_id "NM_182658:uc002wym.1";
+chr20 hg19_knownGene CDS 31647184 31647288 0.000000 + 1 gene_id "BPIFB3"; transcript_id "NM_182658:uc002wym.1";
+chr20 hg19_knownGene exon 31647184 31647288 0.000000 + . gene_id "BPIFB3"; transcript_id "NM_182658:uc002wym.1";
+chr20 hg19_knownGene CDS 31647697 31647837 0.000000 + 1 gene_id "BPIFB3"; transcript_id "NM_182658:uc002wym.1";
+chr20 hg19_knownGene exon 31647697 31647837 0.000000 + . gene_id "BPIFB3"; transcript_id "NM_182658:uc002wym.1";
+chr20 hg19_knownGene CDS 31649574 31649637 0.000000 + 1 gene_id "BPIFB3"; transcript_id "NM_182658:uc002wym.1";
+chr20 hg19_knownGene exon 31649574 31649637 0.000000 + . gene_id "BPIFB3"; transcript_id "NM_182658:uc002wym.1";
+chr20 hg19_knownGene CDS 31651421 31651481 0.000000 + 0 gene_id "BPIFB3"; transcript_id "NM_182658:uc002wym.1";
+chr20 hg19_knownGene exon 31651421 31651481 0.000000 + . gene_id "BPIFB3"; transcript_id "NM_182658:uc002wym.1";
+chr20 hg19_knownGene CDS 31652263 31652354 0.000000 + 2 gene_id "BPIFB3"; transcript_id "NM_182658:uc002wym.1";
+chr20 hg19_knownGene exon 31652263 31652354 0.000000 + . gene_id "BPIFB3"; transcript_id "NM_182658:uc002wym.1";
+chr20 hg19_knownGene CDS 31652472 31652651 0.000000 + 0 gene_id "BPIFB3"; transcript_id "NM_182658:uc002wym.1";
+chr20 hg19_knownGene exon 31652472 31652651 0.000000 + . gene_id "BPIFB3"; transcript_id "NM_182658:uc002wym.1";
+chr20 hg19_knownGene CDS 31654630 31654683 0.000000 + 0 gene_id "BPIFB3"; transcript_id "NM_182658:uc002wym.1";
+chr20 hg19_knownGene exon 31654630 31654683 0.000000 + . gene_id "BPIFB3"; transcript_id "NM_182658:uc002wym.1";
+chr20 hg19_knownGene CDS 31656609 31656779 0.000000 + 0 gene_id "BPIFB3"; transcript_id "NM_182658:uc002wym.1";
+chr20 hg19_knownGene exon 31656609 31656779 0.000000 + . gene_id "BPIFB3"; transcript_id "NM_182658:uc002wym.1";
+chr20 hg19_knownGene CDS 31657694 31657761 0.000000 + 0 gene_id "BPIFB3"; transcript_id "NM_182658:uc002wym.1";
+chr20 hg19_knownGene exon 31657694 31657761 0.000000 + . gene_id "BPIFB3"; transcript_id "NM_182658:uc002wym.1";
+chr20 hg19_knownGene CDS 31659059 31659101 0.000000 + 1 gene_id "BPIFB3"; transcript_id "NM_182658:uc002wym.1";
+chr20 hg19_knownGene exon 31659059 31659101 0.000000 + . gene_id "BPIFB3"; transcript_id "NM_182658:uc002wym.1";
+chr20 hg19_knownGene CDS 31659910 31659973 0.000000 + 0 gene_id "BPIFB3"; transcript_id "NM_182658:uc002wym.1";
+chr20 hg19_knownGene exon 31659910 31659973 0.000000 + . gene_id "BPIFB3"; transcript_id "NM_182658:uc002wym.1";
+chr20 hg19_knownGene CDS 31660523 31660599 0.000000 + 2 gene_id "BPIFB3"; transcript_id "NM_182658:uc002wym.1";
+chr20 hg19_knownGene exon 31660523 31660599 0.000000 + . gene_id "BPIFB3"; transcript_id "NM_182658:uc002wym.1";
+chr20 hg19_knownGene CDS 31661382 31661408 0.000000 + 0 gene_id "BPIFB3"; transcript_id "NM_182658:uc002wym.1";
+chr20 hg19_knownGene exon 31661382 31661434 0.000000 + . gene_id "BPIFB3"; transcript_id "NM_182658:uc002wym.1";
+chr20 hg19_knownGene exon 31677883 31677978 0.000000 + . gene_id "Mir_652"; transcript_id ":uc021wby.1";
+chr20 hg19_knownGene CDS 31669333 31669438 0.000000 + 0 gene_id "BPIFB4"; transcript_id "NM_182519:uc010zue.2";
+chr20 hg19_knownGene exon 31669318 31669438 0.000000 + . gene_id "BPIFB4"; transcript_id "NM_182519:uc010zue.2";
+chr20 hg19_knownGene CDS 31670744 31670806 0.000000 + 2 gene_id "BPIFB4"; transcript_id "NM_182519:uc010zue.2";
+chr20 hg19_knownGene exon 31670744 31670806 0.000000 + . gene_id "BPIFB4"; transcript_id "NM_182519:uc010zue.2";
+chr20 hg19_knownGene CDS 31671173 31671680 0.000000 + 2 gene_id "BPIFB4"; transcript_id "NM_182519:uc010zue.2";
+chr20 hg19_knownGene exon 31671173 31671680 0.000000 + . gene_id "BPIFB4"; transcript_id "NM_182519:uc010zue.2";
+chr20 hg19_knownGene CDS 31672698 31672802 0.000000 + 1 gene_id "BPIFB4"; transcript_id "NM_182519:uc010zue.2";
+chr20 hg19_knownGene exon 31672698 31672802 0.000000 + . gene_id "BPIFB4"; transcript_id "NM_182519:uc010zue.2";
+chr20 hg19_knownGene CDS 31673827 31673970 0.000000 + 1 gene_id "BPIFB4"; transcript_id "NM_182519:uc010zue.2";
+chr20 hg19_knownGene exon 31673827 31673970 0.000000 + . gene_id "BPIFB4"; transcript_id "NM_182519:uc010zue.2";
+chr20 hg19_knownGene CDS 31676772 31676835 0.000000 + 1 gene_id "BPIFB4"; transcript_id "NM_182519:uc010zue.2";
+chr20 hg19_knownGene exon 31676772 31676835 0.000000 + . gene_id "BPIFB4"; transcript_id "NM_182519:uc010zue.2";
+chr20 hg19_knownGene CDS 31677304 31677364 0.000000 + 0 gene_id "BPIFB4"; transcript_id "NM_182519:uc010zue.2";
+chr20 hg19_knownGene exon 31677304 31677364 0.000000 + . gene_id "BPIFB4"; transcript_id "NM_182519:uc010zue.2";
+chr20 hg19_knownGene CDS 31678514 31678605 0.000000 + 2 gene_id "BPIFB4"; transcript_id "NM_182519:uc010zue.2";
+chr20 hg19_knownGene exon 31678514 31678605 0.000000 + . gene_id "BPIFB4"; transcript_id "NM_182519:uc010zue.2";
+chr20 hg19_knownGene CDS 31680264 31680464 0.000000 + 0 gene_id "BPIFB4"; transcript_id "NM_182519:uc010zue.2";
+chr20 hg19_knownGene exon 31680264 31680464 0.000000 + . gene_id "BPIFB4"; transcript_id "NM_182519:uc010zue.2";
+chr20 hg19_knownGene CDS 31682906 31682959 0.000000 + 0 gene_id "BPIFB4"; transcript_id "NM_182519:uc010zue.2";
+chr20 hg19_knownGene exon 31682906 31682959 0.000000 + . gene_id "BPIFB4"; transcript_id "NM_182519:uc010zue.2";
+chr20 hg19_knownGene CDS 31685423 31685593 0.000000 + 0 gene_id "BPIFB4"; transcript_id "NM_182519:uc010zue.2";
+chr20 hg19_knownGene exon 31685423 31685593 0.000000 + . gene_id "BPIFB4"; transcript_id "NM_182519:uc010zue.2";
+chr20 hg19_knownGene CDS 31688232 31688299 0.000000 + 0 gene_id "BPIFB4"; transcript_id "NM_182519:uc010zue.2";
+chr20 hg19_knownGene exon 31688232 31688299 0.000000 + . gene_id "BPIFB4"; transcript_id "NM_182519:uc010zue.2";
+chr20 hg19_knownGene CDS 31690778 31690820 0.000000 + 1 gene_id "BPIFB4"; transcript_id "NM_182519:uc010zue.2";
+chr20 hg19_knownGene exon 31690778 31690820 0.000000 + . gene_id "BPIFB4"; transcript_id "NM_182519:uc010zue.2";
+chr20 hg19_knownGene CDS 31692616 31692679 0.000000 + 0 gene_id "BPIFB4"; transcript_id "NM_182519:uc010zue.2";
+chr20 hg19_knownGene exon 31692616 31692679 0.000000 + . gene_id "BPIFB4"; transcript_id "NM_182519:uc010zue.2";
+chr20 hg19_knownGene CDS 31695550 31695626 0.000000 + 2 gene_id "BPIFB4"; transcript_id "NM_182519:uc010zue.2";
+chr20 hg19_knownGene exon 31695550 31695626 0.000000 + . gene_id "BPIFB4"; transcript_id "NM_182519:uc010zue.2";
+chr20 hg19_knownGene CDS 31699220 31699240 0.000000 + 0 gene_id "BPIFB4"; transcript_id "NM_182519:uc010zue.2";
+chr20 hg19_knownGene exon 31699220 31699557 0.000000 + . gene_id "BPIFB4"; transcript_id "NM_182519:uc010zue.2";
+chr20 hg19_knownGene exon 31755960 31756015 0.000000 + . gene_id "BPIFA2"; transcript_id "NM_080574:uc002wyo.1";
+chr20 hg19_knownGene CDS 31756952 31757108 0.000000 + 0 gene_id "BPIFA2"; transcript_id "NM_080574:uc002wyo.1";
+chr20 hg19_knownGene exon 31756937 31757108 0.000000 + . gene_id "BPIFA2"; transcript_id "NM_080574:uc002wyo.1";
+chr20 hg19_knownGene CDS 31760738 31760882 0.000000 + 2 gene_id "BPIFA2"; transcript_id "NM_080574:uc002wyo.1";
+chr20 hg19_knownGene exon 31760738 31760882 0.000000 + . gene_id "BPIFA2"; transcript_id "NM_080574:uc002wyo.1";
+chr20 hg19_knownGene CDS 31761885 31761992 0.000000 + 1 gene_id "BPIFA2"; transcript_id "NM_080574:uc002wyo.1";
+chr20 hg19_knownGene exon 31761885 31761992 0.000000 + . gene_id "BPIFA2"; transcript_id "NM_080574:uc002wyo.1";
+chr20 hg19_knownGene CDS 31763213 31763365 0.000000 + 1 gene_id "BPIFA2"; transcript_id "NM_080574:uc002wyo.1";
+chr20 hg19_knownGene exon 31763213 31763365 0.000000 + . gene_id "BPIFA2"; transcript_id "NM_080574:uc002wyo.1";
+chr20 hg19_knownGene CDS 31765953 31766034 0.000000 + 1 gene_id "BPIFA2"; transcript_id "NM_080574:uc002wyo.1";
+chr20 hg19_knownGene exon 31765953 31766034 0.000000 + . gene_id "BPIFA2"; transcript_id "NM_080574:uc002wyo.1";
+chr20 hg19_knownGene CDS 31767410 31767473 0.000000 + 0 gene_id "BPIFA2"; transcript_id "NM_080574:uc002wyo.1";
+chr20 hg19_knownGene exon 31767410 31767473 0.000000 + . gene_id "BPIFA2"; transcript_id "NM_080574:uc002wyo.1";
+chr20 hg19_knownGene CDS 31768326 31768363 0.000000 + 2 gene_id "BPIFA2"; transcript_id "NM_080574:uc002wyo.1";
+chr20 hg19_knownGene exon 31768326 31768403 0.000000 + . gene_id "BPIFA2"; transcript_id "NM_080574:uc002wyo.1";
+chr20 hg19_knownGene exon 31769030 31769223 0.000000 + . gene_id "BPIFA2"; transcript_id "NM_080574:uc002wyo.1";
+chr20 hg19_knownGene exon 31786004 31786117 0.000000 + . gene_id "BPIFA4P"; transcript_id "AY389992:uc010gei.1";
+chr20 hg19_knownGene exon 31787161 31787268 0.000000 + . gene_id "BPIFA4P"; transcript_id "AY389992:uc010gei.1";
+chr20 hg19_knownGene exon 31789338 31789442 0.000000 + . gene_id "BPIFA4P"; transcript_id "AY389992:uc010gei.1";
+chr20 hg19_knownGene exon 31790318 31790467 0.000000 + . gene_id "BPIFA4P"; transcript_id "AY389992:uc010gei.1";
+chr20 hg19_knownGene exon 31792929 31793009 0.000000 + . gene_id "BPIFA4P"; transcript_id "AY389992:uc010gei.1";
+chr20 hg19_knownGene exon 31781411 31781447 0.000000 + . gene_id "BPIFA4P"; transcript_id "NR_026760:uc002wyp.2";
+chr20 hg19_knownGene exon 31786004 31786117 0.000000 + . gene_id "BPIFA4P"; transcript_id "NR_026760:uc002wyp.2";
+chr20 hg19_knownGene exon 31787121 31787268 0.000000 + . gene_id "BPIFA4P"; transcript_id "NR_026760:uc002wyp.2";
+chr20 hg19_knownGene exon 31789338 31789442 0.000000 + . gene_id "BPIFA4P"; transcript_id "NR_026760:uc002wyp.2";
+chr20 hg19_knownGene exon 31790318 31790467 0.000000 + . gene_id "BPIFA4P"; transcript_id "NR_026760:uc002wyp.2";
+chr20 hg19_knownGene exon 31792929 31793009 0.000000 + . gene_id "BPIFA4P"; transcript_id "NR_026760:uc002wyp.2";
+chr20 hg19_knownGene exon 31793627 31793690 0.000000 + . gene_id "BPIFA4P"; transcript_id "NR_026760:uc002wyp.2";
+chr20 hg19_knownGene exon 31795507 31795586 0.000000 + . gene_id "BPIFA4P"; transcript_id "NR_026760:uc002wyp.2";
+chr20 hg19_knownGene exon 31797845 31798268 0.000000 + . gene_id "BPIFA4P"; transcript_id "NR_026760:uc002wyp.2";
+chr20 hg19_knownGene exon 31781411 31781447 0.000000 + . gene_id "BPIFA4P"; transcript_id "BC128240:uc002wyq.2";
+chr20 hg19_knownGene exon 31786004 31786117 0.000000 + . gene_id "BPIFA4P"; transcript_id "BC128240:uc002wyq.2";
+chr20 hg19_knownGene exon 31787104 31787268 0.000000 + . gene_id "BPIFA4P"; transcript_id "BC128240:uc002wyq.2";
+chr20 hg19_knownGene exon 31789338 31789442 0.000000 + . gene_id "BPIFA4P"; transcript_id "BC128240:uc002wyq.2";
+chr20 hg19_knownGene exon 31790318 31790467 0.000000 + . gene_id "BPIFA4P"; transcript_id "BC128240:uc002wyq.2";
+chr20 hg19_knownGene exon 31792929 31793009 0.000000 + . gene_id "BPIFA4P"; transcript_id "BC128240:uc002wyq.2";
+chr20 hg19_knownGene exon 31793627 31793690 0.000000 + . gene_id "BPIFA4P"; transcript_id "BC128240:uc002wyq.2";
+chr20 hg19_knownGene exon 31795507 31795586 0.000000 + . gene_id "BPIFA4P"; transcript_id "BC128240:uc002wyq.2";
+chr20 hg19_knownGene exon 31797845 31798268 0.000000 + . gene_id "BPIFA4P"; transcript_id "BC128240:uc002wyq.2";
+chr20 hg19_knownGene CDS 31805343 31805469 0.000000 + 0 gene_id "BPIFA3"; transcript_id "NM_178466:uc002wyr.3";
+chr20 hg19_knownGene exon 31805135 31805469 0.000000 + . gene_id "BPIFA3"; transcript_id "NM_178466:uc002wyr.3";
+chr20 hg19_knownGene CDS 31811617 31811767 0.000000 + 2 gene_id "BPIFA3"; transcript_id "NM_178466:uc002wyr.3";
+chr20 hg19_knownGene exon 31811617 31811767 0.000000 + . gene_id "BPIFA3"; transcript_id "NM_178466:uc002wyr.3";
+chr20 hg19_knownGene CDS 31812161 31812268 0.000000 + 1 gene_id "BPIFA3"; transcript_id "NM_178466:uc002wyr.3";
+chr20 hg19_knownGene exon 31812161 31812268 0.000000 + . gene_id "BPIFA3"; transcript_id "NM_178466:uc002wyr.3";
+chr20 hg19_knownGene CDS 31812904 31813053 0.000000 + 1 gene_id "BPIFA3"; transcript_id "NM_178466:uc002wyr.3";
+chr20 hg19_knownGene exon 31812904 31813053 0.000000 + . gene_id "BPIFA3"; transcript_id "NM_178466:uc002wyr.3";
+chr20 hg19_knownGene CDS 31814212 31814296 0.000000 + 1 gene_id "BPIFA3"; transcript_id "NM_178466:uc002wyr.3";
+chr20 hg19_knownGene exon 31814212 31814296 0.000000 + . gene_id "BPIFA3"; transcript_id "NM_178466:uc002wyr.3";
+chr20 hg19_knownGene CDS 31814736 31814799 0.000000 + 0 gene_id "BPIFA3"; transcript_id "NM_178466:uc002wyr.3";
+chr20 hg19_knownGene exon 31814736 31814799 0.000000 + . gene_id "BPIFA3"; transcript_id "NM_178466:uc002wyr.3";
+chr20 hg19_knownGene CDS 31815344 31815420 0.000000 + 2 gene_id "BPIFA3"; transcript_id "NM_178466:uc002wyr.3";
+chr20 hg19_knownGene exon 31815344 31815559 0.000000 + . gene_id "BPIFA3"; transcript_id "NM_178466:uc002wyr.3";
+chr20 hg19_knownGene CDS 31805343 31805469 0.000000 + 0 gene_id "BPIFA3"; transcript_id "NM_001042439:uc002wys.3";
+chr20 hg19_knownGene exon 31805135 31805469 0.000000 + . gene_id "BPIFA3"; transcript_id "NM_001042439:uc002wys.3";
+chr20 hg19_knownGene CDS 31811617 31811767 0.000000 + 2 gene_id "BPIFA3"; transcript_id "NM_001042439:uc002wys.3";
+chr20 hg19_knownGene exon 31811617 31811767 0.000000 + . gene_id "BPIFA3"; transcript_id "NM_001042439:uc002wys.3";
+chr20 hg19_knownGene CDS 31812904 31813053 0.000000 + 1 gene_id "BPIFA3"; transcript_id "NM_001042439:uc002wys.3";
+chr20 hg19_knownGene exon 31812904 31813053 0.000000 + . gene_id "BPIFA3"; transcript_id "NM_001042439:uc002wys.3";
+chr20 hg19_knownGene CDS 31814212 31814296 0.000000 + 1 gene_id "BPIFA3"; transcript_id "NM_001042439:uc002wys.3";
+chr20 hg19_knownGene exon 31814212 31814296 0.000000 + . gene_id "BPIFA3"; transcript_id "NM_001042439:uc002wys.3";
+chr20 hg19_knownGene CDS 31814736 31814799 0.000000 + 0 gene_id "BPIFA3"; transcript_id "NM_001042439:uc002wys.3";
+chr20 hg19_knownGene exon 31814736 31814799 0.000000 + . gene_id "BPIFA3"; transcript_id "NM_001042439:uc002wys.3";
+chr20 hg19_knownGene CDS 31815344 31815420 0.000000 + 2 gene_id "BPIFA3"; transcript_id "NM_001042439:uc002wys.3";
+chr20 hg19_knownGene exon 31815344 31815559 0.000000 + . gene_id "BPIFA3"; transcript_id "NM_001042439:uc002wys.3";
+chr20 hg19_knownGene exon 31823802 31823856 0.000000 + . gene_id "BPIFA1"; transcript_id "NM_130852:uc002wyt.4";
+chr20 hg19_knownGene CDS 31825518 31825677 0.000000 + 0 gene_id "BPIFA1"; transcript_id "NM_130852:uc002wyt.4";
+chr20 hg19_knownGene exon 31825503 31825677 0.000000 + . gene_id "BPIFA1"; transcript_id "NM_130852:uc002wyt.4";
+chr20 hg19_knownGene CDS 31825861 31826020 0.000000 + 2 gene_id "BPIFA1"; transcript_id "NM_130852:uc002wyt.4";
+chr20 hg19_knownGene exon 31825861 31826020 0.000000 + . gene_id "BPIFA1"; transcript_id "NM_130852:uc002wyt.4";
+chr20 hg19_knownGene CDS 31827609 31827716 0.000000 + 1 gene_id "BPIFA1"; transcript_id "NM_130852:uc002wyt.4";
+chr20 hg19_knownGene exon 31827609 31827716 0.000000 + . gene_id "BPIFA1"; transcript_id "NM_130852:uc002wyt.4";
+chr20 hg19_knownGene CDS 31828039 31828191 0.000000 + 1 gene_id "BPIFA1"; transcript_id "NM_130852:uc002wyt.4";
+chr20 hg19_knownGene exon 31828039 31828191 0.000000 + . gene_id "BPIFA1"; transcript_id "NM_130852:uc002wyt.4";
+chr20 hg19_knownGene CDS 31829191 31829275 0.000000 + 1 gene_id "BPIFA1"; transcript_id "NM_130852:uc002wyt.4";
+chr20 hg19_knownGene exon 31829191 31829275 0.000000 + . gene_id "BPIFA1"; transcript_id "NM_130852:uc002wyt.4";
+chr20 hg19_knownGene CDS 31829862 31829925 0.000000 + 0 gene_id "BPIFA1"; transcript_id "NM_130852:uc002wyt.4";
+chr20 hg19_knownGene exon 31829862 31829925 0.000000 + . gene_id "BPIFA1"; transcript_id "NM_130852:uc002wyt.4";
+chr20 hg19_knownGene CDS 31830293 31830330 0.000000 + 2 gene_id "BPIFA1"; transcript_id "NM_130852:uc002wyt.4";
+chr20 hg19_knownGene exon 31830293 31830367 0.000000 + . gene_id "BPIFA1"; transcript_id "NM_130852:uc002wyt.4";
+chr20 hg19_knownGene exon 31830913 31831115 0.000000 + . gene_id "BPIFA1"; transcript_id "NM_130852:uc002wyt.4";
+chr20 hg19_knownGene exon 31823802 31823856 0.000000 + . gene_id "BPIFA1"; transcript_id "NM_016583:uc002wyu.4";
+chr20 hg19_knownGene CDS 31825518 31825677 0.000000 + 0 gene_id "BPIFA1"; transcript_id "NM_016583:uc002wyu.4";
+chr20 hg19_knownGene exon 31825503 31825677 0.000000 + . gene_id "BPIFA1"; transcript_id "NM_016583:uc002wyu.4";
+chr20 hg19_knownGene CDS 31825861 31826020 0.000000 + 2 gene_id "BPIFA1"; transcript_id "NM_016583:uc002wyu.4";
+chr20 hg19_knownGene exon 31825861 31826020 0.000000 + . gene_id "BPIFA1"; transcript_id "NM_016583:uc002wyu.4";
+chr20 hg19_knownGene CDS 31827609 31827716 0.000000 + 1 gene_id "BPIFA1"; transcript_id "NM_016583:uc002wyu.4";
+chr20 hg19_knownGene exon 31827609 31827716 0.000000 + . gene_id "BPIFA1"; transcript_id "NM_016583:uc002wyu.4";
+chr20 hg19_knownGene CDS 31828039 31828191 0.000000 + 1 gene_id "BPIFA1"; transcript_id "NM_016583:uc002wyu.4";
+chr20 hg19_knownGene exon 31828039 31828191 0.000000 + . gene_id "BPIFA1"; transcript_id "NM_016583:uc002wyu.4";
+chr20 hg19_knownGene CDS 31829191 31829275 0.000000 + 1 gene_id "BPIFA1"; transcript_id "NM_016583:uc002wyu.4";
+chr20 hg19_knownGene exon 31829191 31829275 0.000000 + . gene_id "BPIFA1"; transcript_id "NM_016583:uc002wyu.4";
+chr20 hg19_knownGene CDS 31829862 31829925 0.000000 + 0 gene_id "BPIFA1"; transcript_id "NM_016583:uc002wyu.4";
+chr20 hg19_knownGene exon 31829862 31829925 0.000000 + . gene_id "BPIFA1"; transcript_id "NM_016583:uc002wyu.4";
+chr20 hg19_knownGene CDS 31830293 31830330 0.000000 + 2 gene_id "BPIFA1"; transcript_id "NM_016583:uc002wyu.4";
+chr20 hg19_knownGene exon 31830293 31830367 0.000000 + . gene_id "BPIFA1"; transcript_id "NM_016583:uc002wyu.4";
+chr20 hg19_knownGene exon 31830968 31831115 0.000000 + . gene_id "BPIFA1"; transcript_id "NM_016583:uc002wyu.4";
+chr20 hg19_knownGene exon 31823802 31823856 0.000000 + . gene_id "BPIFA1"; transcript_id "NM_001243193:uc002wyv.3";
+chr20 hg19_knownGene CDS 31825518 31825677 0.000000 + 0 gene_id "BPIFA1"; transcript_id "NM_001243193:uc002wyv.3";
+chr20 hg19_knownGene exon 31825503 31825677 0.000000 + . gene_id "BPIFA1"; transcript_id "NM_001243193:uc002wyv.3";
+chr20 hg19_knownGene CDS 31825861 31826020 0.000000 + 2 gene_id "BPIFA1"; transcript_id "NM_001243193:uc002wyv.3";
+chr20 hg19_knownGene exon 31825861 31826020 0.000000 + . gene_id "BPIFA1"; transcript_id "NM_001243193:uc002wyv.3";
+chr20 hg19_knownGene CDS 31827609 31827716 0.000000 + 1 gene_id "BPIFA1"; transcript_id "NM_001243193:uc002wyv.3";
+chr20 hg19_knownGene exon 31827609 31827716 0.000000 + . gene_id "BPIFA1"; transcript_id "NM_001243193:uc002wyv.3";
+chr20 hg19_knownGene CDS 31828039 31828191 0.000000 + 1 gene_id "BPIFA1"; transcript_id "NM_001243193:uc002wyv.3";
+chr20 hg19_knownGene exon 31828039 31828191 0.000000 + . gene_id "BPIFA1"; transcript_id "NM_001243193:uc002wyv.3";
+chr20 hg19_knownGene CDS 31829191 31829275 0.000000 + 1 gene_id "BPIFA1"; transcript_id "NM_001243193:uc002wyv.3";
+chr20 hg19_knownGene exon 31829191 31829275 0.000000 + . gene_id "BPIFA1"; transcript_id "NM_001243193:uc002wyv.3";
+chr20 hg19_knownGene CDS 31829862 31829925 0.000000 + 0 gene_id "BPIFA1"; transcript_id "NM_001243193:uc002wyv.3";
+chr20 hg19_knownGene exon 31829862 31829925 0.000000 + . gene_id "BPIFA1"; transcript_id "NM_001243193:uc002wyv.3";
+chr20 hg19_knownGene CDS 31830293 31830330 0.000000 + 2 gene_id "BPIFA1"; transcript_id "NM_001243193:uc002wyv.3";
+chr20 hg19_knownGene exon 31830293 31830367 0.000000 + . gene_id "BPIFA1"; transcript_id "NM_001243193:uc002wyv.3";
+chr20 hg19_knownGene exon 31830929 31831115 0.000000 + . gene_id "BPIFA1"; transcript_id "NM_001243193:uc002wyv.3";
+chr20 hg19_knownGene exon 31870941 31871060 0.000000 + . gene_id "BPIFB1"; transcript_id "AK310964:uc010gej.1";
+chr20 hg19_knownGene CDS 31873880 31873994 0.000000 + 0 gene_id "BPIFB1"; transcript_id "AK310964:uc010gej.1";
+chr20 hg19_knownGene exon 31873839 31873994 0.000000 + . gene_id "BPIFB1"; transcript_id "AK310964:uc010gej.1";
+chr20 hg19_knownGene CDS 31876547 31876688 0.000000 + 2 gene_id "BPIFB1"; transcript_id "AK310964:uc010gej.1";
+chr20 hg19_knownGene exon 31876547 31876688 0.000000 + . gene_id "BPIFB1"; transcript_id "AK310964:uc010gej.1";
+chr20 hg19_knownGene CDS 31877691 31877798 0.000000 + 1 gene_id "BPIFB1"; transcript_id "AK310964:uc010gej.1";
+chr20 hg19_knownGene exon 31877691 31877798 0.000000 + . gene_id "BPIFB1"; transcript_id "AK310964:uc010gej.1";
+chr20 hg19_knownGene CDS 31878763 31878912 0.000000 + 1 gene_id "BPIFB1"; transcript_id "AK310964:uc010gej.1";
+chr20 hg19_knownGene exon 31878763 31878912 0.000000 + . gene_id "BPIFB1"; transcript_id "AK310964:uc010gej.1";
+chr20 hg19_knownGene CDS 31879713 31879794 0.000000 + 1 gene_id "BPIFB1"; transcript_id "AK310964:uc010gej.1";
+chr20 hg19_knownGene exon 31879713 31879794 0.000000 + . gene_id "BPIFB1"; transcript_id "AK310964:uc010gej.1";
+chr20 hg19_knownGene CDS 31885331 31885453 0.000000 + 0 gene_id "BPIFB1"; transcript_id "AK310964:uc010gej.1";
+chr20 hg19_knownGene exon 31885331 31885701 0.000000 + . gene_id "BPIFB1"; transcript_id "AK310964:uc010gej.1";
+chr20 hg19_knownGene exon 31890537 31890554 0.000000 + . gene_id "BPIFB1"; transcript_id "AK127971:uc002wyx.1";
+chr20 hg19_knownGene exon 31890722 31890880 0.000000 + . gene_id "BPIFB1"; transcript_id "AK127971:uc002wyx.1";
+chr20 hg19_knownGene exon 31891764 31891831 0.000000 + . gene_id "BPIFB1"; transcript_id "AK127971:uc002wyx.1";
+chr20 hg19_knownGene exon 31892652 31892697 0.000000 + . gene_id "BPIFB1"; transcript_id "AK127971:uc002wyx.1";
+chr20 hg19_knownGene exon 31893808 31893871 0.000000 + . gene_id "BPIFB1"; transcript_id "AK127971:uc002wyx.1";
+chr20 hg19_knownGene exon 31894409 31894491 0.000000 + . gene_id "BPIFB1"; transcript_id "AK127971:uc002wyx.1";
+chr20 hg19_knownGene exon 31894717 31894793 0.000000 + . gene_id "BPIFB1"; transcript_id "AK127971:uc002wyx.1";
+chr20 hg19_knownGene exon 31895080 31895772 0.000000 + . gene_id "BPIFB1"; transcript_id "AK127971:uc002wyx.1";
+chr20 hg19_knownGene exon 31870941 31871060 0.000000 + . gene_id "BPIFB1"; transcript_id "NM_033197:uc002wyw.1";
+chr20 hg19_knownGene CDS 31873880 31873994 0.000000 + 0 gene_id "BPIFB1"; transcript_id "NM_033197:uc002wyw.1";
+chr20 hg19_knownGene exon 31873839 31873994 0.000000 + . gene_id "BPIFB1"; transcript_id "NM_033197:uc002wyw.1";
+chr20 hg19_knownGene CDS 31876547 31876688 0.000000 + 2 gene_id "BPIFB1"; transcript_id "NM_033197:uc002wyw.1";
+chr20 hg19_knownGene exon 31876547 31876688 0.000000 + . gene_id "BPIFB1"; transcript_id "NM_033197:uc002wyw.1";
+chr20 hg19_knownGene CDS 31877691 31877798 0.000000 + 1 gene_id "BPIFB1"; transcript_id "NM_033197:uc002wyw.1";
+chr20 hg19_knownGene exon 31877691 31877798 0.000000 + . gene_id "BPIFB1"; transcript_id "NM_033197:uc002wyw.1";
+chr20 hg19_knownGene CDS 31878763 31878912 0.000000 + 1 gene_id "BPIFB1"; transcript_id "NM_033197:uc002wyw.1";
+chr20 hg19_knownGene exon 31878763 31878912 0.000000 + . gene_id "BPIFB1"; transcript_id "NM_033197:uc002wyw.1";
+chr20 hg19_knownGene CDS 31879713 31879794 0.000000 + 1 gene_id "BPIFB1"; transcript_id "NM_033197:uc002wyw.1";
+chr20 hg19_knownGene exon 31879713 31879794 0.000000 + . gene_id "BPIFB1"; transcript_id "NM_033197:uc002wyw.1";
+chr20 hg19_knownGene CDS 31885331 31885394 0.000000 + 0 gene_id "BPIFB1"; transcript_id "NM_033197:uc002wyw.1";
+chr20 hg19_knownGene exon 31885331 31885394 0.000000 + . gene_id "BPIFB1"; transcript_id "NM_033197:uc002wyw.1";
+chr20 hg19_knownGene CDS 31887705 31887790 0.000000 + 2 gene_id "BPIFB1"; transcript_id "NM_033197:uc002wyw.1";
+chr20 hg19_knownGene exon 31887705 31887790 0.000000 + . gene_id "BPIFB1"; transcript_id "NM_033197:uc002wyw.1";
+chr20 hg19_knownGene CDS 31889039 31889218 0.000000 + 0 gene_id "BPIFB1"; transcript_id "NM_033197:uc002wyw.1";
+chr20 hg19_knownGene exon 31889039 31889218 0.000000 + . gene_id "BPIFB1"; transcript_id "NM_033197:uc002wyw.1";
+chr20 hg19_knownGene CDS 31890165 31890218 0.000000 + 0 gene_id "BPIFB1"; transcript_id "NM_033197:uc002wyw.1";
+chr20 hg19_knownGene exon 31890165 31890218 0.000000 + . gene_id "BPIFB1"; transcript_id "NM_033197:uc002wyw.1";
+chr20 hg19_knownGene CDS 31890722 31890880 0.000000 + 0 gene_id "BPIFB1"; transcript_id "NM_033197:uc002wyw.1";
+chr20 hg19_knownGene exon 31890722 31890880 0.000000 + . gene_id "BPIFB1"; transcript_id "NM_033197:uc002wyw.1";
+chr20 hg19_knownGene CDS 31891764 31891831 0.000000 + 0 gene_id "BPIFB1"; transcript_id "NM_033197:uc002wyw.1";
+chr20 hg19_knownGene exon 31891764 31891831 0.000000 + . gene_id "BPIFB1"; transcript_id "NM_033197:uc002wyw.1";
+chr20 hg19_knownGene CDS 31892652 31892697 0.000000 + 1 gene_id "BPIFB1"; transcript_id "NM_033197:uc002wyw.1";
+chr20 hg19_knownGene exon 31892652 31892697 0.000000 + . gene_id "BPIFB1"; transcript_id "NM_033197:uc002wyw.1";
+chr20 hg19_knownGene CDS 31893808 31893871 0.000000 + 0 gene_id "BPIFB1"; transcript_id "NM_033197:uc002wyw.1";
+chr20 hg19_knownGene exon 31893808 31893871 0.000000 + . gene_id "BPIFB1"; transcript_id "NM_033197:uc002wyw.1";
+chr20 hg19_knownGene CDS 31894717 31894793 0.000000 + 2 gene_id "BPIFB1"; transcript_id "NM_033197:uc002wyw.1";
+chr20 hg19_knownGene exon 31894717 31894793 0.000000 + . gene_id "BPIFB1"; transcript_id "NM_033197:uc002wyw.1";
+chr20 hg19_knownGene CDS 31897514 31897570 0.000000 + 0 gene_id "BPIFB1"; transcript_id "NM_033197:uc002wyw.1";
+chr20 hg19_knownGene exon 31897514 31897684 0.000000 + . gene_id "BPIFB1"; transcript_id "NM_033197:uc002wyw.1";
+chr20 hg19_knownGene CDS 31948118 31948297 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "AK095644:uc002wzb.1";
+chr20 hg19_knownGene exon 31946647 31948297 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK095644:uc002wzb.1";
+chr20 hg19_knownGene CDS 31954665 31954814 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "AK095644:uc002wzb.1";
+chr20 hg19_knownGene exon 31954665 31954814 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK095644:uc002wzb.1";
+chr20 hg19_knownGene CDS 31958305 31958435 0.000000 - 2 gene_id "CDK5RAP1"; transcript_id "AK095644:uc002wzb.1";
+chr20 hg19_knownGene exon 31958305 31958435 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK095644:uc002wzb.1";
+chr20 hg19_knownGene CDS 31960448 31960613 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "AK095644:uc002wzb.1";
+chr20 hg19_knownGene exon 31960448 31960955 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK095644:uc002wzb.1";
+chr20 hg19_knownGene CDS 31946852 31946929 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "NM_016082:uc002wyy.3";
+chr20 hg19_knownGene exon 31946645 31946929 0.000000 - . gene_id "CDK5RAP1"; transcript_id "NM_016082:uc002wyy.3";
+chr20 hg19_knownGene CDS 31948157 31948297 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "NM_016082:uc002wyy.3";
+chr20 hg19_knownGene exon 31948157 31948297 0.000000 - . gene_id "CDK5RAP1"; transcript_id "NM_016082:uc002wyy.3";
+chr20 hg19_knownGene CDS 31954665 31954814 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "NM_016082:uc002wyy.3";
+chr20 hg19_knownGene exon 31954665 31954814 0.000000 - . gene_id "CDK5RAP1"; transcript_id "NM_016082:uc002wyy.3";
+chr20 hg19_knownGene CDS 31958305 31958435 0.000000 - 2 gene_id "CDK5RAP1"; transcript_id "NM_016082:uc002wyy.3";
+chr20 hg19_knownGene exon 31958305 31958435 0.000000 - . gene_id "CDK5RAP1"; transcript_id "NM_016082:uc002wyy.3";
+chr20 hg19_knownGene CDS 31960448 31960503 0.000000 - 1 gene_id "CDK5RAP1"; transcript_id "NM_016082:uc002wyy.3";
+chr20 hg19_knownGene exon 31960448 31960503 0.000000 - . gene_id "CDK5RAP1"; transcript_id "NM_016082:uc002wyy.3";
+chr20 hg19_knownGene CDS 31961921 31962018 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "NM_016082:uc002wyy.3";
+chr20 hg19_knownGene exon 31961921 31962018 0.000000 - . gene_id "CDK5RAP1"; transcript_id "NM_016082:uc002wyy.3";
+chr20 hg19_knownGene CDS 31967267 31967497 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "NM_016082:uc002wyy.3";
+chr20 hg19_knownGene exon 31967267 31967497 0.000000 - . gene_id "CDK5RAP1"; transcript_id "NM_016082:uc002wyy.3";
+chr20 hg19_knownGene CDS 31973456 31973576 0.000000 - 1 gene_id "CDK5RAP1"; transcript_id "NM_016082:uc002wyy.3";
+chr20 hg19_knownGene exon 31973456 31973576 0.000000 - . gene_id "CDK5RAP1"; transcript_id "NM_016082:uc002wyy.3";
+chr20 hg19_knownGene CDS 31975129 31975339 0.000000 - 2 gene_id "CDK5RAP1"; transcript_id "NM_016082:uc002wyy.3";
+chr20 hg19_knownGene exon 31975129 31975339 0.000000 - . gene_id "CDK5RAP1"; transcript_id "NM_016082:uc002wyy.3";
+chr20 hg19_knownGene CDS 31979948 31980048 0.000000 - 1 gene_id "CDK5RAP1"; transcript_id "NM_016082:uc002wyy.3";
+chr20 hg19_knownGene exon 31979948 31980048 0.000000 - . gene_id "CDK5RAP1"; transcript_id "NM_016082:uc002wyy.3";
+chr20 hg19_knownGene CDS 31981838 31981872 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "NM_016082:uc002wyy.3";
+chr20 hg19_knownGene exon 31981838 31981872 0.000000 - . gene_id "CDK5RAP1"; transcript_id "NM_016082:uc002wyy.3";
+chr20 hg19_knownGene CDS 31982819 31982922 0.000000 - 2 gene_id "CDK5RAP1"; transcript_id "NM_016082:uc002wyy.3";
+chr20 hg19_knownGene exon 31982819 31982922 0.000000 - . gene_id "CDK5RAP1"; transcript_id "NM_016082:uc002wyy.3";
+chr20 hg19_knownGene CDS 31984567 31984600 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "NM_016082:uc002wyy.3";
+chr20 hg19_knownGene exon 31984567 31984742 0.000000 - . gene_id "CDK5RAP1"; transcript_id "NM_016082:uc002wyy.3";
+chr20 hg19_knownGene exon 31989234 31989337 0.000000 - . gene_id "CDK5RAP1"; transcript_id "NM_016082:uc002wyy.3";
+chr20 hg19_knownGene CDS 31946852 31946929 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "NM_016408:uc002wyz.3";
+chr20 hg19_knownGene exon 31946645 31946929 0.000000 - . gene_id "CDK5RAP1"; transcript_id "NM_016408:uc002wyz.3";
+chr20 hg19_knownGene CDS 31948157 31948297 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "NM_016408:uc002wyz.3";
+chr20 hg19_knownGene exon 31948157 31948297 0.000000 - . gene_id "CDK5RAP1"; transcript_id "NM_016408:uc002wyz.3";
+chr20 hg19_knownGene CDS 31954665 31954814 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "NM_016408:uc002wyz.3";
+chr20 hg19_knownGene exon 31954665 31954814 0.000000 - . gene_id "CDK5RAP1"; transcript_id "NM_016408:uc002wyz.3";
+chr20 hg19_knownGene CDS 31958305 31958435 0.000000 - 2 gene_id "CDK5RAP1"; transcript_id "NM_016408:uc002wyz.3";
+chr20 hg19_knownGene exon 31958305 31958435 0.000000 - . gene_id "CDK5RAP1"; transcript_id "NM_016408:uc002wyz.3";
+chr20 hg19_knownGene CDS 31960448 31960503 0.000000 - 1 gene_id "CDK5RAP1"; transcript_id "NM_016408:uc002wyz.3";
+chr20 hg19_knownGene exon 31960448 31960503 0.000000 - . gene_id "CDK5RAP1"; transcript_id "NM_016408:uc002wyz.3";
+chr20 hg19_knownGene CDS 31961921 31962018 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "NM_016408:uc002wyz.3";
+chr20 hg19_knownGene exon 31961921 31962018 0.000000 - . gene_id "CDK5RAP1"; transcript_id "NM_016408:uc002wyz.3";
+chr20 hg19_knownGene CDS 31967267 31967497 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "NM_016408:uc002wyz.3";
+chr20 hg19_knownGene exon 31967267 31967497 0.000000 - . gene_id "CDK5RAP1"; transcript_id "NM_016408:uc002wyz.3";
+chr20 hg19_knownGene CDS 31973456 31973576 0.000000 - 1 gene_id "CDK5RAP1"; transcript_id "NM_016408:uc002wyz.3";
+chr20 hg19_knownGene exon 31973456 31973576 0.000000 - . gene_id "CDK5RAP1"; transcript_id "NM_016408:uc002wyz.3";
+chr20 hg19_knownGene CDS 31975129 31975339 0.000000 - 2 gene_id "CDK5RAP1"; transcript_id "NM_016408:uc002wyz.3";
+chr20 hg19_knownGene exon 31975129 31975339 0.000000 - . gene_id "CDK5RAP1"; transcript_id "NM_016408:uc002wyz.3";
+chr20 hg19_knownGene CDS 31979948 31980048 0.000000 - 1 gene_id "CDK5RAP1"; transcript_id "NM_016408:uc002wyz.3";
+chr20 hg19_knownGene exon 31979948 31980048 0.000000 - . gene_id "CDK5RAP1"; transcript_id "NM_016408:uc002wyz.3";
+chr20 hg19_knownGene CDS 31981838 31981872 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "NM_016408:uc002wyz.3";
+chr20 hg19_knownGene exon 31981838 31981872 0.000000 - . gene_id "CDK5RAP1"; transcript_id "NM_016408:uc002wyz.3";
+chr20 hg19_knownGene CDS 31982819 31982922 0.000000 - 2 gene_id "CDK5RAP1"; transcript_id "NM_016408:uc002wyz.3";
+chr20 hg19_knownGene exon 31982819 31982922 0.000000 - . gene_id "CDK5RAP1"; transcript_id "NM_016408:uc002wyz.3";
+chr20 hg19_knownGene CDS 31984567 31984870 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "NM_016408:uc002wyz.3";
+chr20 hg19_knownGene exon 31984567 31984890 0.000000 - . gene_id "CDK5RAP1"; transcript_id "NM_016408:uc002wyz.3";
+chr20 hg19_knownGene exon 31989234 31989337 0.000000 - . gene_id "CDK5RAP1"; transcript_id "NM_016408:uc002wyz.3";
+chr20 hg19_knownGene CDS 31946852 31946929 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "AK222745:uc002wza.3";
+chr20 hg19_knownGene exon 31946645 31946929 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK222745:uc002wza.3";
+chr20 hg19_knownGene CDS 31948157 31948297 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "AK222745:uc002wza.3";
+chr20 hg19_knownGene exon 31948157 31948297 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK222745:uc002wza.3";
+chr20 hg19_knownGene CDS 31954665 31954811 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "AK222745:uc002wza.3";
+chr20 hg19_knownGene exon 31954665 31954811 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK222745:uc002wza.3";
+chr20 hg19_knownGene CDS 31958305 31958435 0.000000 - 2 gene_id "CDK5RAP1"; transcript_id "AK222745:uc002wza.3";
+chr20 hg19_knownGene exon 31958305 31958435 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK222745:uc002wza.3";
+chr20 hg19_knownGene CDS 31960448 31960503 0.000000 - 1 gene_id "CDK5RAP1"; transcript_id "AK222745:uc002wza.3";
+chr20 hg19_knownGene exon 31960448 31960503 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK222745:uc002wza.3";
+chr20 hg19_knownGene CDS 31961921 31962018 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "AK222745:uc002wza.3";
+chr20 hg19_knownGene exon 31961921 31962018 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK222745:uc002wza.3";
+chr20 hg19_knownGene CDS 31967267 31967497 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "AK222745:uc002wza.3";
+chr20 hg19_knownGene exon 31967267 31967497 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK222745:uc002wza.3";
+chr20 hg19_knownGene CDS 31973456 31973576 0.000000 - 1 gene_id "CDK5RAP1"; transcript_id "AK222745:uc002wza.3";
+chr20 hg19_knownGene exon 31973456 31973576 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK222745:uc002wza.3";
+chr20 hg19_knownGene CDS 31975129 31975339 0.000000 - 2 gene_id "CDK5RAP1"; transcript_id "AK222745:uc002wza.3";
+chr20 hg19_knownGene exon 31975129 31975339 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK222745:uc002wza.3";
+chr20 hg19_knownGene CDS 31979948 31980048 0.000000 - 1 gene_id "CDK5RAP1"; transcript_id "AK222745:uc002wza.3";
+chr20 hg19_knownGene exon 31979948 31980048 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK222745:uc002wza.3";
+chr20 hg19_knownGene CDS 31981838 31981872 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "AK222745:uc002wza.3";
+chr20 hg19_knownGene exon 31981838 31981872 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK222745:uc002wza.3";
+chr20 hg19_knownGene CDS 31982819 31982922 0.000000 - 2 gene_id "CDK5RAP1"; transcript_id "AK222745:uc002wza.3";
+chr20 hg19_knownGene exon 31982819 31982922 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK222745:uc002wza.3";
+chr20 hg19_knownGene CDS 31984567 31984870 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "AK222745:uc002wza.3";
+chr20 hg19_knownGene exon 31984567 31984890 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK222745:uc002wza.3";
+chr20 hg19_knownGene exon 31989234 31989337 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK222745:uc002wza.3";
+chr20 hg19_knownGene CDS 31946852 31946929 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "AF152097:uc010gek.3";
+chr20 hg19_knownGene exon 31946645 31946929 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AF152097:uc010gek.3";
+chr20 hg19_knownGene CDS 31948157 31948297 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "AF152097:uc010gek.3";
+chr20 hg19_knownGene exon 31948157 31948297 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AF152097:uc010gek.3";
+chr20 hg19_knownGene CDS 31954665 31954814 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "AF152097:uc010gek.3";
+chr20 hg19_knownGene exon 31954665 31954814 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AF152097:uc010gek.3";
+chr20 hg19_knownGene CDS 31958305 31958435 0.000000 - 2 gene_id "CDK5RAP1"; transcript_id "AF152097:uc010gek.3";
+chr20 hg19_knownGene exon 31958305 31958435 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AF152097:uc010gek.3";
+chr20 hg19_knownGene CDS 31960448 31960503 0.000000 - 1 gene_id "CDK5RAP1"; transcript_id "AF152097:uc010gek.3";
+chr20 hg19_knownGene exon 31960448 31960503 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AF152097:uc010gek.3";
+chr20 hg19_knownGene CDS 31961921 31962018 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "AF152097:uc010gek.3";
+chr20 hg19_knownGene exon 31961921 31962018 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AF152097:uc010gek.3";
+chr20 hg19_knownGene CDS 31967267 31967497 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "AF152097:uc010gek.3";
+chr20 hg19_knownGene exon 31967267 31967497 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AF152097:uc010gek.3";
+chr20 hg19_knownGene CDS 31971286 31971327 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "AF152097:uc010gek.3";
+chr20 hg19_knownGene exon 31971286 31971327 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AF152097:uc010gek.3";
+chr20 hg19_knownGene CDS 31973456 31973576 0.000000 - 1 gene_id "CDK5RAP1"; transcript_id "AF152097:uc010gek.3";
+chr20 hg19_knownGene exon 31973456 31973576 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AF152097:uc010gek.3";
+chr20 hg19_knownGene CDS 31975129 31975339 0.000000 - 2 gene_id "CDK5RAP1"; transcript_id "AF152097:uc010gek.3";
+chr20 hg19_knownGene exon 31975129 31975339 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AF152097:uc010gek.3";
+chr20 hg19_knownGene CDS 31979948 31980048 0.000000 - 1 gene_id "CDK5RAP1"; transcript_id "AF152097:uc010gek.3";
+chr20 hg19_knownGene exon 31979948 31980048 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AF152097:uc010gek.3";
+chr20 hg19_knownGene CDS 31981838 31981872 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "AF152097:uc010gek.3";
+chr20 hg19_knownGene exon 31981838 31981872 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AF152097:uc010gek.3";
+chr20 hg19_knownGene CDS 31982819 31982922 0.000000 - 2 gene_id "CDK5RAP1"; transcript_id "AF152097:uc010gek.3";
+chr20 hg19_knownGene exon 31982819 31982922 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AF152097:uc010gek.3";
+chr20 hg19_knownGene CDS 31984567 31984870 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "AF152097:uc010gek.3";
+chr20 hg19_knownGene exon 31984567 31984890 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AF152097:uc010gek.3";
+chr20 hg19_knownGene exon 31989234 31989337 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AF152097:uc010gek.3";
+chr20 hg19_knownGene CDS 31946852 31946929 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "AK292075:uc010gel.3";
+chr20 hg19_knownGene exon 31946645 31946929 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK292075:uc010gel.3";
+chr20 hg19_knownGene CDS 31948157 31948297 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "AK292075:uc010gel.3";
+chr20 hg19_knownGene exon 31948157 31948297 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK292075:uc010gel.3";
+chr20 hg19_knownGene CDS 31954665 31954814 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "AK292075:uc010gel.3";
+chr20 hg19_knownGene exon 31954665 31954814 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK292075:uc010gel.3";
+chr20 hg19_knownGene CDS 31958305 31958435 0.000000 - 2 gene_id "CDK5RAP1"; transcript_id "AK292075:uc010gel.3";
+chr20 hg19_knownGene exon 31958305 31958435 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK292075:uc010gel.3";
+chr20 hg19_knownGene CDS 31960448 31960503 0.000000 - 1 gene_id "CDK5RAP1"; transcript_id "AK292075:uc010gel.3";
+chr20 hg19_knownGene exon 31960448 31960503 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK292075:uc010gel.3";
+chr20 hg19_knownGene CDS 31961921 31962018 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "AK292075:uc010gel.3";
+chr20 hg19_knownGene exon 31961921 31962018 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK292075:uc010gel.3";
+chr20 hg19_knownGene CDS 31967267 31967497 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "AK292075:uc010gel.3";
+chr20 hg19_knownGene exon 31967267 31967497 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK292075:uc010gel.3";
+chr20 hg19_knownGene CDS 31973456 31973576 0.000000 - 1 gene_id "CDK5RAP1"; transcript_id "AK292075:uc010gel.3";
+chr20 hg19_knownGene exon 31973456 31973576 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK292075:uc010gel.3";
+chr20 hg19_knownGene CDS 31975129 31975339 0.000000 - 2 gene_id "CDK5RAP1"; transcript_id "AK292075:uc010gel.3";
+chr20 hg19_knownGene exon 31975129 31975339 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK292075:uc010gel.3";
+chr20 hg19_knownGene CDS 31979948 31980048 0.000000 - 1 gene_id "CDK5RAP1"; transcript_id "AK292075:uc010gel.3";
+chr20 hg19_knownGene exon 31979948 31980048 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK292075:uc010gel.3";
+chr20 hg19_knownGene CDS 31981838 31981872 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "AK292075:uc010gel.3";
+chr20 hg19_knownGene exon 31981838 31981872 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK292075:uc010gel.3";
+chr20 hg19_knownGene CDS 31982819 31982922 0.000000 - 2 gene_id "CDK5RAP1"; transcript_id "AK292075:uc010gel.3";
+chr20 hg19_knownGene exon 31982819 31982922 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK292075:uc010gel.3";
+chr20 hg19_knownGene CDS 31984567 31984600 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "AK292075:uc010gel.3";
+chr20 hg19_knownGene exon 31984567 31984658 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK292075:uc010gel.3";
+chr20 hg19_knownGene exon 31989234 31989337 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK292075:uc010gel.3";
+chr20 hg19_knownGene CDS 31946852 31946929 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "BC001215:uc010gem.3";
+chr20 hg19_knownGene exon 31946645 31946929 0.000000 - . gene_id "CDK5RAP1"; transcript_id "BC001215:uc010gem.3";
+chr20 hg19_knownGene CDS 31948157 31948297 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "BC001215:uc010gem.3";
+chr20 hg19_knownGene exon 31948157 31948297 0.000000 - . gene_id "CDK5RAP1"; transcript_id "BC001215:uc010gem.3";
+chr20 hg19_knownGene CDS 31954665 31954814 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "BC001215:uc010gem.3";
+chr20 hg19_knownGene exon 31954665 31954814 0.000000 - . gene_id "CDK5RAP1"; transcript_id "BC001215:uc010gem.3";
+chr20 hg19_knownGene CDS 31958305 31958435 0.000000 - 2 gene_id "CDK5RAP1"; transcript_id "BC001215:uc010gem.3";
+chr20 hg19_knownGene exon 31958305 31958435 0.000000 - . gene_id "CDK5RAP1"; transcript_id "BC001215:uc010gem.3";
+chr20 hg19_knownGene CDS 31960448 31960503 0.000000 - 1 gene_id "CDK5RAP1"; transcript_id "BC001215:uc010gem.3";
+chr20 hg19_knownGene exon 31960448 31960503 0.000000 - . gene_id "CDK5RAP1"; transcript_id "BC001215:uc010gem.3";
+chr20 hg19_knownGene CDS 31961921 31962018 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "BC001215:uc010gem.3";
+chr20 hg19_knownGene exon 31961921 31962018 0.000000 - . gene_id "CDK5RAP1"; transcript_id "BC001215:uc010gem.3";
+chr20 hg19_knownGene CDS 31973456 31973576 0.000000 - 1 gene_id "CDK5RAP1"; transcript_id "BC001215:uc010gem.3";
+chr20 hg19_knownGene exon 31973456 31973576 0.000000 - . gene_id "CDK5RAP1"; transcript_id "BC001215:uc010gem.3";
+chr20 hg19_knownGene CDS 31975129 31975339 0.000000 - 2 gene_id "CDK5RAP1"; transcript_id "BC001215:uc010gem.3";
+chr20 hg19_knownGene exon 31975129 31975339 0.000000 - . gene_id "CDK5RAP1"; transcript_id "BC001215:uc010gem.3";
+chr20 hg19_knownGene CDS 31979948 31980048 0.000000 - 1 gene_id "CDK5RAP1"; transcript_id "BC001215:uc010gem.3";
+chr20 hg19_knownGene exon 31979948 31980048 0.000000 - . gene_id "CDK5RAP1"; transcript_id "BC001215:uc010gem.3";
+chr20 hg19_knownGene CDS 31981838 31981872 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "BC001215:uc010gem.3";
+chr20 hg19_knownGene exon 31981838 31981872 0.000000 - . gene_id "CDK5RAP1"; transcript_id "BC001215:uc010gem.3";
+chr20 hg19_knownGene CDS 31982819 31982922 0.000000 - 2 gene_id "CDK5RAP1"; transcript_id "BC001215:uc010gem.3";
+chr20 hg19_knownGene exon 31982819 31982922 0.000000 - . gene_id "CDK5RAP1"; transcript_id "BC001215:uc010gem.3";
+chr20 hg19_knownGene CDS 31984567 31984870 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "BC001215:uc010gem.3";
+chr20 hg19_knownGene exon 31984567 31984890 0.000000 - . gene_id "CDK5RAP1"; transcript_id "BC001215:uc010gem.3";
+chr20 hg19_knownGene exon 31989234 31989337 0.000000 - . gene_id "CDK5RAP1"; transcript_id "BC001215:uc010gem.3";
+chr20 hg19_knownGene CDS 31948118 31948297 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "AY462283:uc002wzc.1";
+chr20 hg19_knownGene exon 31946647 31948297 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AY462283:uc002wzc.1";
+chr20 hg19_knownGene CDS 31954665 31954814 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "AY462283:uc002wzc.1";
+chr20 hg19_knownGene exon 31954665 31954814 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AY462283:uc002wzc.1";
+chr20 hg19_knownGene CDS 31958305 31958435 0.000000 - 2 gene_id "CDK5RAP1"; transcript_id "AY462283:uc002wzc.1";
+chr20 hg19_knownGene exon 31958305 31958435 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AY462283:uc002wzc.1";
+chr20 hg19_knownGene CDS 31960448 31960503 0.000000 - 1 gene_id "CDK5RAP1"; transcript_id "AY462283:uc002wzc.1";
+chr20 hg19_knownGene exon 31960448 31960503 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AY462283:uc002wzc.1";
+chr20 hg19_knownGene CDS 31961921 31962018 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "AY462283:uc002wzc.1";
+chr20 hg19_knownGene exon 31961921 31962018 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AY462283:uc002wzc.1";
+chr20 hg19_knownGene CDS 31967267 31967497 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "AY462283:uc002wzc.1";
+chr20 hg19_knownGene exon 31967267 31967497 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AY462283:uc002wzc.1";
+chr20 hg19_knownGene CDS 31973456 31973576 0.000000 - 1 gene_id "CDK5RAP1"; transcript_id "AY462283:uc002wzc.1";
+chr20 hg19_knownGene exon 31973456 31973576 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AY462283:uc002wzc.1";
+chr20 hg19_knownGene CDS 31975129 31975339 0.000000 - 2 gene_id "CDK5RAP1"; transcript_id "AY462283:uc002wzc.1";
+chr20 hg19_knownGene exon 31975129 31975339 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AY462283:uc002wzc.1";
+chr20 hg19_knownGene CDS 31979948 31980048 0.000000 - 1 gene_id "CDK5RAP1"; transcript_id "AY462283:uc002wzc.1";
+chr20 hg19_knownGene exon 31979948 31980048 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AY462283:uc002wzc.1";
+chr20 hg19_knownGene CDS 31981838 31981872 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "AY462283:uc002wzc.1";
+chr20 hg19_knownGene exon 31981838 31981872 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AY462283:uc002wzc.1";
+chr20 hg19_knownGene CDS 31982819 31982922 0.000000 - 2 gene_id "CDK5RAP1"; transcript_id "AY462283:uc002wzc.1";
+chr20 hg19_knownGene exon 31982819 31982922 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AY462283:uc002wzc.1";
+chr20 hg19_knownGene CDS 31984567 31984870 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "AY462283:uc002wzc.1";
+chr20 hg19_knownGene exon 31984567 31984890 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AY462283:uc002wzc.1";
+chr20 hg19_knownGene exon 31989234 31989337 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AY462283:uc002wzc.1";
+chr20 hg19_knownGene CDS 31973408 31973576 0.000000 - 1 gene_id "CDK5RAP1"; transcript_id "AK309906:uc010gen.3";
+chr20 hg19_knownGene exon 31973400 31973576 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK309906:uc010gen.3";
+chr20 hg19_knownGene CDS 31975129 31975339 0.000000 - 2 gene_id "CDK5RAP1"; transcript_id "AK309906:uc010gen.3";
+chr20 hg19_knownGene exon 31975129 31975339 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK309906:uc010gen.3";
+chr20 hg19_knownGene CDS 31979948 31980048 0.000000 - 1 gene_id "CDK5RAP1"; transcript_id "AK309906:uc010gen.3";
+chr20 hg19_knownGene exon 31979948 31980048 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK309906:uc010gen.3";
+chr20 hg19_knownGene CDS 31981838 31981872 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "AK309906:uc010gen.3";
+chr20 hg19_knownGene exon 31981838 31981872 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK309906:uc010gen.3";
+chr20 hg19_knownGene CDS 31982819 31982922 0.000000 - 2 gene_id "CDK5RAP1"; transcript_id "AK309906:uc010gen.3";
+chr20 hg19_knownGene exon 31982819 31982922 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK309906:uc010gen.3";
+chr20 hg19_knownGene CDS 31984567 31984870 0.000000 - 0 gene_id "CDK5RAP1"; transcript_id "AK309906:uc010gen.3";
+chr20 hg19_knownGene exon 31984567 31984890 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK309906:uc010gen.3";
+chr20 hg19_knownGene exon 31989234 31989337 0.000000 - . gene_id "CDK5RAP1"; transcript_id "AK309906:uc010gen.3";
+chr20 hg19_knownGene CDS 31996316 31996405 0.000000 - 0 gene_id "SNTA1"; transcript_id "NM_003098:uc002wzd.1";
+chr20 hg19_knownGene exon 31995763 31996405 0.000000 - . gene_id "SNTA1"; transcript_id "NM_003098:uc002wzd.1";
+chr20 hg19_knownGene CDS 31996507 31996694 0.000000 - 2 gene_id "SNTA1"; transcript_id "NM_003098:uc002wzd.1";
+chr20 hg19_knownGene exon 31996507 31996694 0.000000 - . gene_id "SNTA1"; transcript_id "NM_003098:uc002wzd.1";
+chr20 hg19_knownGene CDS 31997941 31998137 0.000000 - 1 gene_id "SNTA1"; transcript_id "NM_003098:uc002wzd.1";
+chr20 hg19_knownGene exon 31997941 31998137 0.000000 - . gene_id "SNTA1"; transcript_id "NM_003098:uc002wzd.1";
+chr20 hg19_knownGene CDS 32000102 32000232 0.000000 - 0 gene_id "SNTA1"; transcript_id "NM_003098:uc002wzd.1";
+chr20 hg19_knownGene exon 32000102 32000232 0.000000 - . gene_id "SNTA1"; transcript_id "NM_003098:uc002wzd.1";
+chr20 hg19_knownGene CDS 32000381 32000588 0.000000 - 1 gene_id "SNTA1"; transcript_id "NM_003098:uc002wzd.1";
+chr20 hg19_knownGene exon 32000381 32000588 0.000000 - . gene_id "SNTA1"; transcript_id "NM_003098:uc002wzd.1";
+chr20 hg19_knownGene CDS 32005525 32005729 0.000000 - 2 gene_id "SNTA1"; transcript_id "NM_003098:uc002wzd.1";
+chr20 hg19_knownGene exon 32005525 32005729 0.000000 - . gene_id "SNTA1"; transcript_id "NM_003098:uc002wzd.1";
+chr20 hg19_knownGene CDS 32026647 32026832 0.000000 - 2 gene_id "SNTA1"; transcript_id "NM_003098:uc002wzd.1";
+chr20 hg19_knownGene exon 32026647 32026832 0.000000 - . gene_id "SNTA1"; transcript_id "NM_003098:uc002wzd.1";
+chr20 hg19_knownGene CDS 32031117 32031426 0.000000 - 0 gene_id "SNTA1"; transcript_id "NM_003098:uc002wzd.1";
+chr20 hg19_knownGene exon 32031117 32031698 0.000000 - . gene_id "SNTA1"; transcript_id "NM_003098:uc002wzd.1";
+chr20 hg19_knownGene CDS 31996316 31996405 0.000000 - 0 gene_id "SNTA1"; transcript_id "AK301800:uc010zuf.1";
+chr20 hg19_knownGene exon 31995763 31996405 0.000000 - . gene_id "SNTA1"; transcript_id "AK301800:uc010zuf.1";
+chr20 hg19_knownGene CDS 31996507 31996694 0.000000 - 2 gene_id "SNTA1"; transcript_id "AK301800:uc010zuf.1";
+chr20 hg19_knownGene exon 31996507 31996694 0.000000 - . gene_id "SNTA1"; transcript_id "AK301800:uc010zuf.1";
+chr20 hg19_knownGene CDS 31997941 31998137 0.000000 - 1 gene_id "SNTA1"; transcript_id "AK301800:uc010zuf.1";
+chr20 hg19_knownGene exon 31997941 31998137 0.000000 - . gene_id "SNTA1"; transcript_id "AK301800:uc010zuf.1";
+chr20 hg19_knownGene CDS 32000102 32000154 0.000000 - 0 gene_id "SNTA1"; transcript_id "AK301800:uc010zuf.1";
+chr20 hg19_knownGene exon 32000102 32000154 0.000000 - . gene_id "SNTA1"; transcript_id "AK301800:uc010zuf.1";
+chr20 hg19_knownGene CDS 32000528 32000588 0.000000 - 1 gene_id "SNTA1"; transcript_id "AK301800:uc010zuf.1";
+chr20 hg19_knownGene exon 32000528 32000588 0.000000 - . gene_id "SNTA1"; transcript_id "AK301800:uc010zuf.1";
+chr20 hg19_knownGene CDS 32005525 32005729 0.000000 - 2 gene_id "SNTA1"; transcript_id "AK301800:uc010zuf.1";
+chr20 hg19_knownGene exon 32005525 32005729 0.000000 - . gene_id "SNTA1"; transcript_id "AK301800:uc010zuf.1";
+chr20 hg19_knownGene CDS 32026647 32026832 0.000000 - 2 gene_id "SNTA1"; transcript_id "AK301800:uc010zuf.1";
+chr20 hg19_knownGene exon 32026647 32026832 0.000000 - . gene_id "SNTA1"; transcript_id "AK301800:uc010zuf.1";
+chr20 hg19_knownGene CDS 32031117 32031426 0.000000 - 0 gene_id "SNTA1"; transcript_id "AK301800:uc010zuf.1";
+chr20 hg19_knownGene exon 32031117 32031698 0.000000 - . gene_id "SNTA1"; transcript_id "AK301800:uc010zuf.1";
+chr20 hg19_knownGene exon 32150171 32150480 0.000000 + . gene_id "CBFA2T2"; transcript_id "BC015066:uc021wbz.1";
+chr20 hg19_knownGene CDS 32194788 32194905 0.000000 + 0 gene_id "CBFA2T2"; transcript_id "BC015066:uc021wbz.1";
+chr20 hg19_knownGene exon 32194762 32194905 0.000000 + . gene_id "CBFA2T2"; transcript_id "BC015066:uc021wbz.1";
+chr20 hg19_knownGene CDS 32198900 32199141 0.000000 + 2 gene_id "CBFA2T2"; transcript_id "BC015066:uc021wbz.1";
+chr20 hg19_knownGene exon 32198900 32199141 0.000000 + . gene_id "CBFA2T2"; transcript_id "BC015066:uc021wbz.1";
+chr20 hg19_knownGene CDS 32207323 32207412 0.000000 + 0 gene_id "CBFA2T2"; transcript_id "BC015066:uc021wbz.1";
+chr20 hg19_knownGene exon 32207323 32207412 0.000000 + . gene_id "CBFA2T2"; transcript_id "BC015066:uc021wbz.1";
+chr20 hg19_knownGene CDS 32210921 32211102 0.000000 + 0 gene_id "CBFA2T2"; transcript_id "BC015066:uc021wbz.1";
+chr20 hg19_knownGene exon 32210921 32211102 0.000000 + . gene_id "CBFA2T2"; transcript_id "BC015066:uc021wbz.1";
+chr20 hg19_knownGene CDS 32211579 32211735 0.000000 + 1 gene_id "CBFA2T2"; transcript_id "BC015066:uc021wbz.1";
+chr20 hg19_knownGene exon 32211579 32211773 0.000000 + . gene_id "CBFA2T2"; transcript_id "BC015066:uc021wbz.1";
+chr20 hg19_knownGene exon 32077928 32078107 0.000000 + . gene_id "CBFA2T2"; transcript_id "AK294168:uc010zug.1";
+chr20 hg19_knownGene exon 32207323 32207412 0.000000 + . gene_id "CBFA2T2"; transcript_id "AK294168:uc010zug.1";
+chr20 hg19_knownGene CDS 32211062 32211102 0.000000 + 0 gene_id "CBFA2T2"; transcript_id "AK294168:uc010zug.1";
+chr20 hg19_knownGene exon 32210921 32211102 0.000000 + . gene_id "CBFA2T2"; transcript_id "AK294168:uc010zug.1";
+chr20 hg19_knownGene CDS 32212570 32212823 0.000000 + 1 gene_id "CBFA2T2"; transcript_id "AK294168:uc010zug.1";
+chr20 hg19_knownGene exon 32212570 32212823 0.000000 + . gene_id "CBFA2T2"; transcript_id "AK294168:uc010zug.1";
+chr20 hg19_knownGene CDS 32216156 32216241 0.000000 + 2 gene_id "CBFA2T2"; transcript_id "AK294168:uc010zug.1";
+chr20 hg19_knownGene exon 32216156 32216241 0.000000 + . gene_id "CBFA2T2"; transcript_id "AK294168:uc010zug.1";
+chr20 hg19_knownGene CDS 32217525 32217720 0.000000 + 0 gene_id "CBFA2T2"; transcript_id "AK294168:uc010zug.1";
+chr20 hg19_knownGene exon 32217525 32217720 0.000000 + . gene_id "CBFA2T2"; transcript_id "AK294168:uc010zug.1";
+chr20 hg19_knownGene CDS 32224446 32224514 0.000000 + 2 gene_id "CBFA2T2"; transcript_id "AK294168:uc010zug.1";
+chr20 hg19_knownGene exon 32224446 32224514 0.000000 + . gene_id "CBFA2T2"; transcript_id "AK294168:uc010zug.1";
+chr20 hg19_knownGene CDS 32228147 32228337 0.000000 + 2 gene_id "CBFA2T2"; transcript_id "AK294168:uc010zug.1";
+chr20 hg19_knownGene exon 32228147 32228337 0.000000 + . gene_id "CBFA2T2"; transcript_id "AK294168:uc010zug.1";
+chr20 hg19_knownGene CDS 32232153 32232449 0.000000 + 0 gene_id "CBFA2T2"; transcript_id "AK294168:uc010zug.1";
+chr20 hg19_knownGene exon 32232153 32233594 0.000000 + . gene_id "CBFA2T2"; transcript_id "AK294168:uc010zug.1";
+chr20 hg19_knownGene exon 32150171 32150480 0.000000 + . gene_id "CBFA2T2"; transcript_id "AF069747:uc002wzf.1";
+chr20 hg19_knownGene exon 32161780 32162067 0.000000 + . gene_id "CBFA2T2"; transcript_id "AF069747:uc002wzf.1";
+chr20 hg19_knownGene exon 32189636 32189711 0.000000 + . gene_id "CBFA2T2"; transcript_id "AF069747:uc002wzf.1";
+chr20 hg19_knownGene exon 32194762 32194905 0.000000 + . gene_id "CBFA2T2"; transcript_id "AF069747:uc002wzf.1";
+chr20 hg19_knownGene exon 32198900 32199141 0.000000 + . gene_id "CBFA2T2"; transcript_id "AF069747:uc002wzf.1";
+chr20 hg19_knownGene exon 32207323 32207412 0.000000 + . gene_id "CBFA2T2"; transcript_id "AF069747:uc002wzf.1";
+chr20 hg19_knownGene exon 32210921 32211102 0.000000 + . gene_id "CBFA2T2"; transcript_id "AF069747:uc002wzf.1";
+chr20 hg19_knownGene exon 32212570 32212823 0.000000 + . gene_id "CBFA2T2"; transcript_id "AF069747:uc002wzf.1";
+chr20 hg19_knownGene exon 32216156 32216241 0.000000 + . gene_id "CBFA2T2"; transcript_id "AF069747:uc002wzf.1";
+chr20 hg19_knownGene exon 32217525 32217720 0.000000 + . gene_id "CBFA2T2"; transcript_id "AF069747:uc002wzf.1";
+chr20 hg19_knownGene exon 32224446 32224514 0.000000 + . gene_id "CBFA2T2"; transcript_id "AF069747:uc002wzf.1";
+chr20 hg19_knownGene exon 32228147 32228337 0.000000 + . gene_id "CBFA2T2"; transcript_id "AF069747:uc002wzf.1";
+chr20 hg19_knownGene exon 32232153 32233835 0.000000 + . gene_id "CBFA2T2"; transcript_id "AF069747:uc002wzf.1";
+chr20 hg19_knownGene exon 32234639 32237836 0.000000 + . gene_id "CBFA2T2"; transcript_id "AF069747:uc002wzf.1";
+chr20 hg19_knownGene exon 32161780 32162067 0.000000 + . gene_id "CBFA2T2"; transcript_id "AF013970:uc002wzi.1";
+chr20 hg19_knownGene exon 32194762 32194905 0.000000 + . gene_id "CBFA2T2"; transcript_id "AF013970:uc002wzi.1";
+chr20 hg19_knownGene exon 32198900 32199141 0.000000 + . gene_id "CBFA2T2"; transcript_id "AF013970:uc002wzi.1";
+chr20 hg19_knownGene exon 32207323 32207412 0.000000 + . gene_id "CBFA2T2"; transcript_id "AF013970:uc002wzi.1";
+chr20 hg19_knownGene exon 32210921 32211102 0.000000 + . gene_id "CBFA2T2"; transcript_id "AF013970:uc002wzi.1";
+chr20 hg19_knownGene exon 32212570 32212823 0.000000 + . gene_id "CBFA2T2"; transcript_id "AF013970:uc002wzi.1";
+chr20 hg19_knownGene exon 32216156 32216241 0.000000 + . gene_id "CBFA2T2"; transcript_id "AF013970:uc002wzi.1";
+chr20 hg19_knownGene exon 32217525 32217720 0.000000 + . gene_id "CBFA2T2"; transcript_id "AF013970:uc002wzi.1";
+chr20 hg19_knownGene exon 32224446 32224514 0.000000 + . gene_id "CBFA2T2"; transcript_id "AF013970:uc002wzi.1";
+chr20 hg19_knownGene exon 32228147 32228337 0.000000 + . gene_id "CBFA2T2"; transcript_id "AF013970:uc002wzi.1";
+chr20 hg19_knownGene exon 32232153 32233835 0.000000 + . gene_id "CBFA2T2"; transcript_id "AF013970:uc002wzi.1";
+chr20 hg19_knownGene exon 32234639 32237836 0.000000 + . gene_id "CBFA2T2"; transcript_id "AF013970:uc002wzi.1";
+chr20 hg19_knownGene exon 32188131 32188271 0.000000 + . gene_id "CBFA2T2"; transcript_id "BC040344:uc002wzj.1";
+chr20 hg19_knownGene exon 32194762 32194905 0.000000 + . gene_id "CBFA2T2"; transcript_id "BC040344:uc002wzj.1";
+chr20 hg19_knownGene exon 32198900 32199141 0.000000 + . gene_id "CBFA2T2"; transcript_id "BC040344:uc002wzj.1";
+chr20 hg19_knownGene exon 32207323 32207412 0.000000 + . gene_id "CBFA2T2"; transcript_id "BC040344:uc002wzj.1";
+chr20 hg19_knownGene exon 32210921 32211102 0.000000 + . gene_id "CBFA2T2"; transcript_id "BC040344:uc002wzj.1";
+chr20 hg19_knownGene exon 32212570 32212823 0.000000 + . gene_id "CBFA2T2"; transcript_id "BC040344:uc002wzj.1";
+chr20 hg19_knownGene exon 32216156 32216241 0.000000 + . gene_id "CBFA2T2"; transcript_id "BC040344:uc002wzj.1";
+chr20 hg19_knownGene exon 32217525 32217720 0.000000 + . gene_id "CBFA2T2"; transcript_id "BC040344:uc002wzj.1";
+chr20 hg19_knownGene exon 32224446 32224514 0.000000 + . gene_id "CBFA2T2"; transcript_id "BC040344:uc002wzj.1";
+chr20 hg19_knownGene exon 32228147 32228337 0.000000 + . gene_id "CBFA2T2"; transcript_id "BC040344:uc002wzj.1";
+chr20 hg19_knownGene exon 32232153 32233594 0.000000 + . gene_id "CBFA2T2"; transcript_id "BC040344:uc002wzj.1";
+chr20 hg19_knownGene exon 32235301 32237836 0.000000 + . gene_id "CBFA2T2"; transcript_id "BC040344:uc002wzj.1";
+chr20 hg19_knownGene CDS 32078074 32078107 0.000000 + 0 gene_id "CBFA2T2"; transcript_id "NM_001032999:uc002wze.1";
+chr20 hg19_knownGene exon 32077928 32078107 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_001032999:uc002wze.1";
+chr20 hg19_knownGene CDS 32194762 32194905 0.000000 + 2 gene_id "CBFA2T2"; transcript_id "NM_001032999:uc002wze.1";
+chr20 hg19_knownGene exon 32194762 32194905 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_001032999:uc002wze.1";
+chr20 hg19_knownGene CDS 32198900 32199141 0.000000 + 2 gene_id "CBFA2T2"; transcript_id "NM_001032999:uc002wze.1";
+chr20 hg19_knownGene exon 32198900 32199141 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_001032999:uc002wze.1";
+chr20 hg19_knownGene CDS 32207323 32207412 0.000000 + 0 gene_id "CBFA2T2"; transcript_id "NM_001032999:uc002wze.1";
+chr20 hg19_knownGene exon 32207323 32207412 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_001032999:uc002wze.1";
+chr20 hg19_knownGene CDS 32210921 32211102 0.000000 + 0 gene_id "CBFA2T2"; transcript_id "NM_001032999:uc002wze.1";
+chr20 hg19_knownGene exon 32210921 32211102 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_001032999:uc002wze.1";
+chr20 hg19_knownGene CDS 32212570 32212823 0.000000 + 1 gene_id "CBFA2T2"; transcript_id "NM_001032999:uc002wze.1";
+chr20 hg19_knownGene exon 32212570 32212823 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_001032999:uc002wze.1";
+chr20 hg19_knownGene CDS 32216156 32216241 0.000000 + 2 gene_id "CBFA2T2"; transcript_id "NM_001032999:uc002wze.1";
+chr20 hg19_knownGene exon 32216156 32216241 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_001032999:uc002wze.1";
+chr20 hg19_knownGene CDS 32217525 32217720 0.000000 + 0 gene_id "CBFA2T2"; transcript_id "NM_001032999:uc002wze.1";
+chr20 hg19_knownGene exon 32217525 32217720 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_001032999:uc002wze.1";
+chr20 hg19_knownGene CDS 32224446 32224514 0.000000 + 2 gene_id "CBFA2T2"; transcript_id "NM_001032999:uc002wze.1";
+chr20 hg19_knownGene exon 32224446 32224514 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_001032999:uc002wze.1";
+chr20 hg19_knownGene CDS 32228147 32228337 0.000000 + 2 gene_id "CBFA2T2"; transcript_id "NM_001032999:uc002wze.1";
+chr20 hg19_knownGene exon 32228147 32228337 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_001032999:uc002wze.1";
+chr20 hg19_knownGene CDS 32232153 32232449 0.000000 + 0 gene_id "CBFA2T2"; transcript_id "NM_001032999:uc002wze.1";
+chr20 hg19_knownGene exon 32232153 32237837 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_001032999:uc002wze.1";
+chr20 hg19_knownGene exon 32150171 32150480 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_005093:uc002wzg.1";
+chr20 hg19_knownGene CDS 32162007 32162067 0.000000 + 0 gene_id "CBFA2T2"; transcript_id "NM_005093:uc002wzg.1";
+chr20 hg19_knownGene exon 32161780 32162067 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_005093:uc002wzg.1";
+chr20 hg19_knownGene CDS 32194762 32194905 0.000000 + 2 gene_id "CBFA2T2"; transcript_id "NM_005093:uc002wzg.1";
+chr20 hg19_knownGene exon 32194762 32194905 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_005093:uc002wzg.1";
+chr20 hg19_knownGene CDS 32198900 32199141 0.000000 + 2 gene_id "CBFA2T2"; transcript_id "NM_005093:uc002wzg.1";
+chr20 hg19_knownGene exon 32198900 32199141 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_005093:uc002wzg.1";
+chr20 hg19_knownGene CDS 32207323 32207412 0.000000 + 0 gene_id "CBFA2T2"; transcript_id "NM_005093:uc002wzg.1";
+chr20 hg19_knownGene exon 32207323 32207412 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_005093:uc002wzg.1";
+chr20 hg19_knownGene CDS 32210921 32211102 0.000000 + 0 gene_id "CBFA2T2"; transcript_id "NM_005093:uc002wzg.1";
+chr20 hg19_knownGene exon 32210921 32211102 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_005093:uc002wzg.1";
+chr20 hg19_knownGene CDS 32212570 32212823 0.000000 + 1 gene_id "CBFA2T2"; transcript_id "NM_005093:uc002wzg.1";
+chr20 hg19_knownGene exon 32212570 32212823 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_005093:uc002wzg.1";
+chr20 hg19_knownGene CDS 32216156 32216241 0.000000 + 2 gene_id "CBFA2T2"; transcript_id "NM_005093:uc002wzg.1";
+chr20 hg19_knownGene exon 32216156 32216241 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_005093:uc002wzg.1";
+chr20 hg19_knownGene CDS 32217525 32217720 0.000000 + 0 gene_id "CBFA2T2"; transcript_id "NM_005093:uc002wzg.1";
+chr20 hg19_knownGene exon 32217525 32217720 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_005093:uc002wzg.1";
+chr20 hg19_knownGene CDS 32224446 32224514 0.000000 + 2 gene_id "CBFA2T2"; transcript_id "NM_005093:uc002wzg.1";
+chr20 hg19_knownGene exon 32224446 32224514 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_005093:uc002wzg.1";
+chr20 hg19_knownGene CDS 32228147 32228337 0.000000 + 2 gene_id "CBFA2T2"; transcript_id "NM_005093:uc002wzg.1";
+chr20 hg19_knownGene exon 32228147 32228337 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_005093:uc002wzg.1";
+chr20 hg19_knownGene CDS 32232153 32232449 0.000000 + 0 gene_id "CBFA2T2"; transcript_id "NM_005093:uc002wzg.1";
+chr20 hg19_knownGene exon 32232153 32237837 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_005093:uc002wzg.1";
+chr20 hg19_knownGene exon 32150171 32150480 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_001039709:uc002wzh.1";
+chr20 hg19_knownGene CDS 32194788 32194905 0.000000 + 0 gene_id "CBFA2T2"; transcript_id "NM_001039709:uc002wzh.1";
+chr20 hg19_knownGene exon 32194762 32194905 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_001039709:uc002wzh.1";
+chr20 hg19_knownGene CDS 32198900 32199141 0.000000 + 2 gene_id "CBFA2T2"; transcript_id "NM_001039709:uc002wzh.1";
+chr20 hg19_knownGene exon 32198900 32199141 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_001039709:uc002wzh.1";
+chr20 hg19_knownGene CDS 32207323 32207412 0.000000 + 0 gene_id "CBFA2T2"; transcript_id "NM_001039709:uc002wzh.1";
+chr20 hg19_knownGene exon 32207323 32207412 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_001039709:uc002wzh.1";
+chr20 hg19_knownGene CDS 32210921 32211102 0.000000 + 0 gene_id "CBFA2T2"; transcript_id "NM_001039709:uc002wzh.1";
+chr20 hg19_knownGene exon 32210921 32211102 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_001039709:uc002wzh.1";
+chr20 hg19_knownGene CDS 32212570 32212823 0.000000 + 1 gene_id "CBFA2T2"; transcript_id "NM_001039709:uc002wzh.1";
+chr20 hg19_knownGene exon 32212570 32212823 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_001039709:uc002wzh.1";
+chr20 hg19_knownGene CDS 32216156 32216241 0.000000 + 2 gene_id "CBFA2T2"; transcript_id "NM_001039709:uc002wzh.1";
+chr20 hg19_knownGene exon 32216156 32216241 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_001039709:uc002wzh.1";
+chr20 hg19_knownGene CDS 32217525 32217720 0.000000 + 0 gene_id "CBFA2T2"; transcript_id "NM_001039709:uc002wzh.1";
+chr20 hg19_knownGene exon 32217525 32217720 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_001039709:uc002wzh.1";
+chr20 hg19_knownGene CDS 32224446 32224514 0.000000 + 2 gene_id "CBFA2T2"; transcript_id "NM_001039709:uc002wzh.1";
+chr20 hg19_knownGene exon 32224446 32224514 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_001039709:uc002wzh.1";
+chr20 hg19_knownGene CDS 32228147 32228337 0.000000 + 2 gene_id "CBFA2T2"; transcript_id "NM_001039709:uc002wzh.1";
+chr20 hg19_knownGene exon 32228147 32228337 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_001039709:uc002wzh.1";
+chr20 hg19_knownGene CDS 32232153 32232449 0.000000 + 0 gene_id "CBFA2T2"; transcript_id "NM_001039709:uc002wzh.1";
+chr20 hg19_knownGene exon 32232153 32237837 0.000000 + . gene_id "CBFA2T2"; transcript_id "NM_001039709:uc002wzh.1";
+chr20 hg19_knownGene exon 32226547 32227514 0.000000 + . gene_id "CBFA2T2"; transcript_id "CR749462:uc002wzk.1";
+chr20 hg19_knownGene CDS 32228179 32228337 0.000000 + 0 gene_id "CBFA2T2"; transcript_id "CR749462:uc002wzk.1";
+chr20 hg19_knownGene exon 32228150 32228337 0.000000 + . gene_id "CBFA2T2"; transcript_id "CR749462:uc002wzk.1";
+chr20 hg19_knownGene CDS 32232153 32232449 0.000000 + 0 gene_id "CBFA2T2"; transcript_id "CR749462:uc002wzk.1";
+chr20 hg19_knownGene exon 32232153 32237837 0.000000 + . gene_id "CBFA2T2"; transcript_id "CR749462:uc002wzk.1";
+chr20 hg19_knownGene CDS 32245638 32245663 0.000000 - 2 gene_id "NECAB3"; transcript_id "AK124388:uc002wzl.3";
+chr20 hg19_knownGene exon 32244893 32245663 0.000000 - . gene_id "NECAB3"; transcript_id "AK124388:uc002wzl.3";
+chr20 hg19_knownGene CDS 32245748 32245839 0.000000 - 1 gene_id "NECAB3"; transcript_id "AK124388:uc002wzl.3";
+chr20 hg19_knownGene exon 32245748 32245839 0.000000 - . gene_id "NECAB3"; transcript_id "AK124388:uc002wzl.3";
+chr20 hg19_knownGene CDS 32246283 32246360 0.000000 - 1 gene_id "NECAB3"; transcript_id "AK124388:uc002wzl.3";
+chr20 hg19_knownGene exon 32246283 32246360 0.000000 - . gene_id "NECAB3"; transcript_id "AK124388:uc002wzl.3";
+chr20 hg19_knownGene CDS 32246528 32246640 0.000000 - 0 gene_id "NECAB3"; transcript_id "AK124388:uc002wzl.3";
+chr20 hg19_knownGene exon 32246528 32246640 0.000000 - . gene_id "NECAB3"; transcript_id "AK124388:uc002wzl.3";
+chr20 hg19_knownGene CDS 32247303 32247356 0.000000 - 0 gene_id "NECAB3"; transcript_id "AK124388:uc002wzl.3";
+chr20 hg19_knownGene exon 32247303 32247356 0.000000 - . gene_id "NECAB3"; transcript_id "AK124388:uc002wzl.3";
+chr20 hg19_knownGene CDS 32247459 32247518 0.000000 - 0 gene_id "NECAB3"; transcript_id "AK124388:uc002wzl.3";
+chr20 hg19_knownGene exon 32247459 32247538 0.000000 - . gene_id "NECAB3"; transcript_id "AK124388:uc002wzl.3";
+chr20 hg19_knownGene exon 32247691 32247809 0.000000 - . gene_id "NECAB3"; transcript_id "AK124388:uc002wzl.3";
+chr20 hg19_knownGene exon 32248065 32248201 0.000000 - . gene_id "NECAB3"; transcript_id "AK124388:uc002wzl.3";
+chr20 hg19_knownGene exon 32250018 32250584 0.000000 - . gene_id "NECAB3"; transcript_id "AK124388:uc002wzl.3";
+chr20 hg19_knownGene CDS 32250152 32250277 0.000000 + 0 gene_id "C20orf144"; transcript_id "NM_080825:uc002wzs.2";
+chr20 hg19_knownGene exon 32250092 32250277 0.000000 + . gene_id "C20orf144"; transcript_id "NM_080825:uc002wzs.2";
+chr20 hg19_knownGene CDS 32251338 32251670 0.000000 + 0 gene_id "C20orf144"; transcript_id "NM_080825:uc002wzs.2";
+chr20 hg19_knownGene exon 32251338 32251721 0.000000 + . gene_id "C20orf144"; transcript_id "NM_080825:uc002wzs.2";
+chr20 hg19_knownGene CDS 32255304 32256038 0.000000 + 0 gene_id "ACTL10"; transcript_id "NM_001024675:uc002wzt.3";
+chr20 hg19_knownGene exon 32254304 32256331 0.000000 + . gene_id "ACTL10"; transcript_id "NM_001024675:uc002wzt.3";
+chr20 hg19_knownGene CDS 32245638 32245663 0.000000 - 2 gene_id "NECAB3"; transcript_id "NM_031231:uc002wzm.4";
+chr20 hg19_knownGene exon 32244893 32245663 0.000000 - . gene_id "NECAB3"; transcript_id "NM_031231:uc002wzm.4";
+chr20 hg19_knownGene CDS 32245748 32245839 0.000000 - 1 gene_id "NECAB3"; transcript_id "NM_031231:uc002wzm.4";
+chr20 hg19_knownGene exon 32245748 32245839 0.000000 - . gene_id "NECAB3"; transcript_id "NM_031231:uc002wzm.4";
+chr20 hg19_knownGene CDS 32246283 32246360 0.000000 - 1 gene_id "NECAB3"; transcript_id "NM_031231:uc002wzm.4";
+chr20 hg19_knownGene exon 32246283 32246360 0.000000 - . gene_id "NECAB3"; transcript_id "NM_031231:uc002wzm.4";
+chr20 hg19_knownGene CDS 32246528 32246640 0.000000 - 0 gene_id "NECAB3"; transcript_id "NM_031231:uc002wzm.4";
+chr20 hg19_knownGene exon 32246528 32246640 0.000000 - . gene_id "NECAB3"; transcript_id "NM_031231:uc002wzm.4";
+chr20 hg19_knownGene CDS 32247303 32247356 0.000000 - 0 gene_id "NECAB3"; transcript_id "NM_031231:uc002wzm.4";
+chr20 hg19_knownGene exon 32247303 32247356 0.000000 - . gene_id "NECAB3"; transcript_id "NM_031231:uc002wzm.4";
+chr20 hg19_knownGene CDS 32247459 32247538 0.000000 - 2 gene_id "NECAB3"; transcript_id "NM_031231:uc002wzm.4";
+chr20 hg19_knownGene exon 32247459 32247538 0.000000 - . gene_id "NECAB3"; transcript_id "NM_031231:uc002wzm.4";
+chr20 hg19_knownGene CDS 32247691 32247809 0.000000 - 1 gene_id "NECAB3"; transcript_id "NM_031231:uc002wzm.4";
+chr20 hg19_knownGene exon 32247691 32247809 0.000000 - . gene_id "NECAB3"; transcript_id "NM_031231:uc002wzm.4";
+chr20 hg19_knownGene CDS 32248065 32248201 0.000000 - 0 gene_id "NECAB3"; transcript_id "NM_031231:uc002wzm.4";
+chr20 hg19_knownGene exon 32248065 32248201 0.000000 - . gene_id "NECAB3"; transcript_id "NM_031231:uc002wzm.4";
+chr20 hg19_knownGene CDS 32257181 32257278 0.000000 - 2 gene_id "NECAB3"; transcript_id "NM_031231:uc002wzm.4";
+chr20 hg19_knownGene exon 32257181 32257278 0.000000 - . gene_id "NECAB3"; transcript_id "NM_031231:uc002wzm.4";
+chr20 hg19_knownGene CDS 32257493 32257518 0.000000 - 1 gene_id "NECAB3"; transcript_id "NM_031231:uc002wzm.4";
+chr20 hg19_knownGene exon 32257493 32257518 0.000000 - . gene_id "NECAB3"; transcript_id "NM_031231:uc002wzm.4";
+chr20 hg19_knownGene CDS 32258490 32258598 0.000000 - 2 gene_id "NECAB3"; transcript_id "NM_031231:uc002wzm.4";
+chr20 hg19_knownGene exon 32258490 32258598 0.000000 - . gene_id "NECAB3"; transcript_id "NM_031231:uc002wzm.4";
+chr20 hg19_knownGene CDS 32260204 32260228 0.000000 - 0 gene_id "NECAB3"; transcript_id "NM_031231:uc002wzm.4";
+chr20 hg19_knownGene exon 32260204 32260228 0.000000 - . gene_id "NECAB3"; transcript_id "NM_031231:uc002wzm.4";
+chr20 hg19_knownGene CDS 32262030 32262158 0.000000 - 0 gene_id "NECAB3"; transcript_id "NM_031231:uc002wzm.4";
+chr20 hg19_knownGene exon 32262030 32262264 0.000000 - . gene_id "NECAB3"; transcript_id "NM_031231:uc002wzm.4";
+chr20 hg19_knownGene CDS 32245638 32245663 0.000000 - 2 gene_id "NECAB3"; transcript_id "NM_031232:uc002wzn.4";
+chr20 hg19_knownGene exon 32244893 32245663 0.000000 - . gene_id "NECAB3"; transcript_id "NM_031232:uc002wzn.4";
+chr20 hg19_knownGene CDS 32245748 32245839 0.000000 - 1 gene_id "NECAB3"; transcript_id "NM_031232:uc002wzn.4";
+chr20 hg19_knownGene exon 32245748 32245839 0.000000 - . gene_id "NECAB3"; transcript_id "NM_031232:uc002wzn.4";
+chr20 hg19_knownGene CDS 32246283 32246360 0.000000 - 1 gene_id "NECAB3"; transcript_id "NM_031232:uc002wzn.4";
+chr20 hg19_knownGene exon 32246283 32246360 0.000000 - . gene_id "NECAB3"; transcript_id "NM_031232:uc002wzn.4";
+chr20 hg19_knownGene CDS 32246528 32246640 0.000000 - 0 gene_id "NECAB3"; transcript_id "NM_031232:uc002wzn.4";
+chr20 hg19_knownGene exon 32246528 32246640 0.000000 - . gene_id "NECAB3"; transcript_id "NM_031232:uc002wzn.4";
+chr20 hg19_knownGene CDS 32247303 32247538 0.000000 - 2 gene_id "NECAB3"; transcript_id "NM_031232:uc002wzn.4";
+chr20 hg19_knownGene exon 32247303 32247538 0.000000 - . gene_id "NECAB3"; transcript_id "NM_031232:uc002wzn.4";
+chr20 hg19_knownGene CDS 32247691 32247809 0.000000 - 1 gene_id "NECAB3"; transcript_id "NM_031232:uc002wzn.4";
+chr20 hg19_knownGene exon 32247691 32247809 0.000000 - . gene_id "NECAB3"; transcript_id "NM_031232:uc002wzn.4";
+chr20 hg19_knownGene CDS 32248065 32248201 0.000000 - 0 gene_id "NECAB3"; transcript_id "NM_031232:uc002wzn.4";
+chr20 hg19_knownGene exon 32248065 32248201 0.000000 - . gene_id "NECAB3"; transcript_id "NM_031232:uc002wzn.4";
+chr20 hg19_knownGene CDS 32257181 32257278 0.000000 - 2 gene_id "NECAB3"; transcript_id "NM_031232:uc002wzn.4";
+chr20 hg19_knownGene exon 32257181 32257278 0.000000 - . gene_id "NECAB3"; transcript_id "NM_031232:uc002wzn.4";
+chr20 hg19_knownGene CDS 32257493 32257518 0.000000 - 1 gene_id "NECAB3"; transcript_id "NM_031232:uc002wzn.4";
+chr20 hg19_knownGene exon 32257493 32257518 0.000000 - . gene_id "NECAB3"; transcript_id "NM_031232:uc002wzn.4";
+chr20 hg19_knownGene CDS 32258490 32258598 0.000000 - 2 gene_id "NECAB3"; transcript_id "NM_031232:uc002wzn.4";
+chr20 hg19_knownGene exon 32258490 32258598 0.000000 - . gene_id "NECAB3"; transcript_id "NM_031232:uc002wzn.4";
+chr20 hg19_knownGene CDS 32260204 32260228 0.000000 - 0 gene_id "NECAB3"; transcript_id "NM_031232:uc002wzn.4";
+chr20 hg19_knownGene exon 32260204 32260228 0.000000 - . gene_id "NECAB3"; transcript_id "NM_031232:uc002wzn.4";
+chr20 hg19_knownGene CDS 32262030 32262158 0.000000 - 0 gene_id "NECAB3"; transcript_id "NM_031232:uc002wzn.4";
+chr20 hg19_knownGene exon 32262030 32262264 0.000000 - . gene_id "NECAB3"; transcript_id "NM_031232:uc002wzn.4";
+chr20 hg19_knownGene exon 32244893 32245663 0.000000 - . gene_id "NECAB3"; transcript_id "BC023270:uc002wzo.4";
+chr20 hg19_knownGene exon 32245748 32245839 0.000000 - . gene_id "NECAB3"; transcript_id "BC023270:uc002wzo.4";
+chr20 hg19_knownGene exon 32246283 32246360 0.000000 - . gene_id "NECAB3"; transcript_id "BC023270:uc002wzo.4";
+chr20 hg19_knownGene exon 32246528 32246640 0.000000 - . gene_id "NECAB3"; transcript_id "BC023270:uc002wzo.4";
+chr20 hg19_knownGene exon 32247303 32247356 0.000000 - . gene_id "NECAB3"; transcript_id "BC023270:uc002wzo.4";
+chr20 hg19_knownGene exon 32247459 32247538 0.000000 - . gene_id "NECAB3"; transcript_id "BC023270:uc002wzo.4";
+chr20 hg19_knownGene exon 32247691 32247864 0.000000 - . gene_id "NECAB3"; transcript_id "BC023270:uc002wzo.4";
+chr20 hg19_knownGene exon 32248065 32248201 0.000000 - . gene_id "NECAB3"; transcript_id "BC023270:uc002wzo.4";
+chr20 hg19_knownGene exon 32257181 32257278 0.000000 - . gene_id "NECAB3"; transcript_id "BC023270:uc002wzo.4";
+chr20 hg19_knownGene exon 32257493 32257518 0.000000 - . gene_id "NECAB3"; transcript_id "BC023270:uc002wzo.4";
+chr20 hg19_knownGene exon 32258490 32258598 0.000000 - . gene_id "NECAB3"; transcript_id "BC023270:uc002wzo.4";
+chr20 hg19_knownGene exon 32260204 32260228 0.000000 - . gene_id "NECAB3"; transcript_id "BC023270:uc002wzo.4";
+chr20 hg19_knownGene exon 32262030 32262264 0.000000 - . gene_id "NECAB3"; transcript_id "BC023270:uc002wzo.4";
+chr20 hg19_knownGene CDS 32264541 32264785 0.000000 - 2 gene_id "E2F1"; transcript_id "NM_005225:uc002wzu.4";
+chr20 hg19_knownGene exon 32263292 32264785 0.000000 - . gene_id "E2F1"; transcript_id "NM_005225:uc002wzu.4";
+chr20 hg19_knownGene CDS 32264911 32265136 0.000000 - 0 gene_id "E2F1"; transcript_id "NM_005225:uc002wzu.4";
+chr20 hg19_knownGene exon 32264911 32265136 0.000000 - . gene_id "E2F1"; transcript_id "NM_005225:uc002wzu.4";
+chr20 hg19_knownGene CDS 32265232 32265346 0.000000 - 1 gene_id "E2F1"; transcript_id "NM_005225:uc002wzu.4";
+chr20 hg19_knownGene exon 32265232 32265346 0.000000 - . gene_id "E2F1"; transcript_id "NM_005225:uc002wzu.4";
+chr20 hg19_knownGene CDS 32266007 32266159 0.000000 - 1 gene_id "E2F1"; transcript_id "NM_005225:uc002wzu.4";
+chr20 hg19_knownGene exon 32266007 32266159 0.000000 - . gene_id "E2F1"; transcript_id "NM_005225:uc002wzu.4";
+chr20 hg19_knownGene CDS 32267561 32267780 0.000000 - 2 gene_id "E2F1"; transcript_id "NM_005225:uc002wzu.4";
+chr20 hg19_knownGene exon 32267561 32267780 0.000000 - . gene_id "E2F1"; transcript_id "NM_005225:uc002wzu.4";
+chr20 hg19_knownGene CDS 32268132 32268222 0.000000 - 0 gene_id "E2F1"; transcript_id "NM_005225:uc002wzu.4";
+chr20 hg19_knownGene exon 32268132 32268222 0.000000 - . gene_id "E2F1"; transcript_id "NM_005225:uc002wzu.4";
+chr20 hg19_knownGene CDS 32273810 32274070 0.000000 - 0 gene_id "E2F1"; transcript_id "NM_005225:uc002wzu.4";
+chr20 hg19_knownGene exon 32273810 32274210 0.000000 - . gene_id "E2F1"; transcript_id "NM_005225:uc002wzu.4";
+chr20 hg19_knownGene CDS 32295515 32295775 0.000000 - 0 gene_id "PXMP4"; transcript_id "NM_007238:uc002wzv.3";
+chr20 hg19_knownGene exon 32290550 32295775 0.000000 - . gene_id "PXMP4"; transcript_id "NM_007238:uc002wzv.3";
+chr20 hg19_knownGene CDS 32298361 32298559 0.000000 - 1 gene_id "PXMP4"; transcript_id "NM_007238:uc002wzv.3";
+chr20 hg19_knownGene exon 32298361 32298559 0.000000 - . gene_id "PXMP4"; transcript_id "NM_007238:uc002wzv.3";
+chr20 hg19_knownGene CDS 32302480 32302542 0.000000 - 1 gene_id "PXMP4"; transcript_id "NM_007238:uc002wzv.3";
+chr20 hg19_knownGene exon 32302480 32302542 0.000000 - . gene_id "PXMP4"; transcript_id "NM_007238:uc002wzv.3";
+chr20 hg19_knownGene CDS 32307901 32308013 0.000000 - 0 gene_id "PXMP4"; transcript_id "NM_007238:uc002wzv.3";
+chr20 hg19_knownGene exon 32307901 32308136 0.000000 - . gene_id "PXMP4"; transcript_id "NM_007238:uc002wzv.3";
+chr20 hg19_knownGene CDS 32295739 32295775 0.000000 - 1 gene_id "PXMP4"; transcript_id "NM_183397:uc002wzw.3";
+chr20 hg19_knownGene exon 32290550 32295775 0.000000 - . gene_id "PXMP4"; transcript_id "NM_183397:uc002wzw.3";
+chr20 hg19_knownGene CDS 32302480 32302542 0.000000 - 1 gene_id "PXMP4"; transcript_id "NM_183397:uc002wzw.3";
+chr20 hg19_knownGene exon 32302480 32302542 0.000000 - . gene_id "PXMP4"; transcript_id "NM_183397:uc002wzw.3";
+chr20 hg19_knownGene CDS 32307901 32308013 0.000000 - 0 gene_id "PXMP4"; transcript_id "NM_183397:uc002wzw.3";
+chr20 hg19_knownGene exon 32307901 32308136 0.000000 - . gene_id "PXMP4"; transcript_id "NM_183397:uc002wzw.3";
+chr20 hg19_knownGene CDS 32295739 32295775 0.000000 - 1 gene_id "PXMP4"; transcript_id "AK301532:uc010zuh.2";
+chr20 hg19_knownGene exon 32290550 32295775 0.000000 - . gene_id "PXMP4"; transcript_id "AK301532:uc010zuh.2";
+chr20 hg19_knownGene CDS 32298361 32298579 0.000000 - 1 gene_id "PXMP4"; transcript_id "AK301532:uc010zuh.2";
+chr20 hg19_knownGene exon 32298361 32298579 0.000000 - . gene_id "PXMP4"; transcript_id "AK301532:uc010zuh.2";
+chr20 hg19_knownGene CDS 32302480 32302542 0.000000 - 1 gene_id "PXMP4"; transcript_id "AK301532:uc010zuh.2";
+chr20 hg19_knownGene exon 32302480 32302542 0.000000 - . gene_id "PXMP4"; transcript_id "AK301532:uc010zuh.2";
+chr20 hg19_knownGene CDS 32307901 32308013 0.000000 - 0 gene_id "PXMP4"; transcript_id "AK301532:uc010zuh.2";
+chr20 hg19_knownGene exon 32307901 32308136 0.000000 - . gene_id "PXMP4"; transcript_id "AK301532:uc010zuh.2";
+chr20 hg19_knownGene CDS 32319828 32319858 0.000000 + 0 gene_id "ZNF341"; transcript_id "NM_032819:uc002wzx.3";
+chr20 hg19_knownGene exon 32319808 32319858 0.000000 + . gene_id "ZNF341"; transcript_id "NM_032819:uc002wzx.3";
+chr20 hg19_knownGene CDS 32328708 32328818 0.000000 + 2 gene_id "ZNF341"; transcript_id "NM_032819:uc002wzx.3";
+chr20 hg19_knownGene exon 32328708 32328818 0.000000 + . gene_id "ZNF341"; transcript_id "NM_032819:uc002wzx.3";
+chr20 hg19_knownGene CDS 32332909 32333105 0.000000 + 2 gene_id "ZNF341"; transcript_id "NM_032819:uc002wzx.3";
+chr20 hg19_knownGene exon 32332909 32333105 0.000000 + . gene_id "ZNF341"; transcript_id "NM_032819:uc002wzx.3";
+chr20 hg19_knownGene CDS 32336729 32336878 0.000000 + 0 gene_id "ZNF341"; transcript_id "NM_032819:uc002wzx.3";
+chr20 hg19_knownGene exon 32336729 32336878 0.000000 + . gene_id "ZNF341"; transcript_id "NM_032819:uc002wzx.3";
+chr20 hg19_knownGene CDS 32340978 32341229 0.000000 + 0 gene_id "ZNF341"; transcript_id "NM_032819:uc002wzx.3";
+chr20 hg19_knownGene exon 32340978 32341229 0.000000 + . gene_id "ZNF341"; transcript_id "NM_032819:uc002wzx.3";
+chr20 hg19_knownGene CDS 32344954 32345128 0.000000 + 0 gene_id "ZNF341"; transcript_id "NM_032819:uc002wzx.3";
+chr20 hg19_knownGene exon 32344954 32345128 0.000000 + . gene_id "ZNF341"; transcript_id "NM_032819:uc002wzx.3";
+chr20 hg19_knownGene CDS 32346522 32346612 0.000000 + 2 gene_id "ZNF341"; transcript_id "NM_032819:uc002wzx.3";
+chr20 hg19_knownGene exon 32346522 32346612 0.000000 + . gene_id "ZNF341"; transcript_id "NM_032819:uc002wzx.3";
+chr20 hg19_knownGene CDS 32349668 32349861 0.000000 + 1 gene_id "ZNF341"; transcript_id "NM_032819:uc002wzx.3";
+chr20 hg19_knownGene exon 32349668 32349861 0.000000 + . gene_id "ZNF341"; transcript_id "NM_032819:uc002wzx.3";
+chr20 hg19_knownGene CDS 32354657 32354847 0.000000 + 2 gene_id "ZNF341"; transcript_id "NM_032819:uc002wzx.3";
+chr20 hg19_knownGene exon 32354657 32354847 0.000000 + . gene_id "ZNF341"; transcript_id "NM_032819:uc002wzx.3";
+chr20 hg19_knownGene CDS 32357890 32358098 0.000000 + 0 gene_id "ZNF341"; transcript_id "NM_032819:uc002wzx.3";
+chr20 hg19_knownGene exon 32357890 32358098 0.000000 + . gene_id "ZNF341"; transcript_id "NM_032819:uc002wzx.3";
+chr20 hg19_knownGene CDS 32369097 32369193 0.000000 + 1 gene_id "ZNF341"; transcript_id "NM_032819:uc002wzx.3";
+chr20 hg19_knownGene exon 32369097 32369193 0.000000 + . gene_id "ZNF341"; transcript_id "NM_032819:uc002wzx.3";
+chr20 hg19_knownGene CDS 32371538 32371670 0.000000 + 0 gene_id "ZNF341"; transcript_id "NM_032819:uc002wzx.3";
+chr20 hg19_knownGene exon 32371538 32371670 0.000000 + . gene_id "ZNF341"; transcript_id "NM_032819:uc002wzx.3";
+chr20 hg19_knownGene CDS 32376669 32376780 0.000000 + 2 gene_id "ZNF341"; transcript_id "NM_032819:uc002wzx.3";
+chr20 hg19_knownGene exon 32376669 32376780 0.000000 + . gene_id "ZNF341"; transcript_id "NM_032819:uc002wzx.3";
+chr20 hg19_knownGene CDS 32377324 32377394 0.000000 + 1 gene_id "ZNF341"; transcript_id "NM_032819:uc002wzx.3";
+chr20 hg19_knownGene exon 32377324 32377394 0.000000 + . gene_id "ZNF341"; transcript_id "NM_032819:uc002wzx.3";
+chr20 hg19_knownGene CDS 32378794 32379320 0.000000 + 2 gene_id "ZNF341"; transcript_id "NM_032819:uc002wzx.3";
+chr20 hg19_knownGene exon 32378794 32380075 0.000000 + . gene_id "ZNF341"; transcript_id "NM_032819:uc002wzx.3";
+chr20 hg19_knownGene CDS 32319828 32319858 0.000000 + 0 gene_id "ZNF341"; transcript_id "HQ258664:uc002wzy.3";
+chr20 hg19_knownGene exon 32319808 32319858 0.000000 + . gene_id "ZNF341"; transcript_id "HQ258664:uc002wzy.3";
+chr20 hg19_knownGene CDS 32328708 32328818 0.000000 + 2 gene_id "ZNF341"; transcript_id "HQ258664:uc002wzy.3";
+chr20 hg19_knownGene exon 32328708 32328818 0.000000 + . gene_id "ZNF341"; transcript_id "HQ258664:uc002wzy.3";
+chr20 hg19_knownGene CDS 32332909 32333105 0.000000 + 2 gene_id "ZNF341"; transcript_id "HQ258664:uc002wzy.3";
+chr20 hg19_knownGene exon 32332909 32333105 0.000000 + . gene_id "ZNF341"; transcript_id "HQ258664:uc002wzy.3";
+chr20 hg19_knownGene CDS 32336729 32336878 0.000000 + 0 gene_id "ZNF341"; transcript_id "HQ258664:uc002wzy.3";
+chr20 hg19_knownGene exon 32336729 32336878 0.000000 + . gene_id "ZNF341"; transcript_id "HQ258664:uc002wzy.3";
+chr20 hg19_knownGene CDS 32340978 32341229 0.000000 + 0 gene_id "ZNF341"; transcript_id "HQ258664:uc002wzy.3";
+chr20 hg19_knownGene exon 32340978 32341229 0.000000 + . gene_id "ZNF341"; transcript_id "HQ258664:uc002wzy.3";
+chr20 hg19_knownGene CDS 32344954 32345149 0.000000 + 0 gene_id "ZNF341"; transcript_id "HQ258664:uc002wzy.3";
+chr20 hg19_knownGene exon 32344954 32345149 0.000000 + . gene_id "ZNF341"; transcript_id "HQ258664:uc002wzy.3";
+chr20 hg19_knownGene CDS 32346522 32346612 0.000000 + 2 gene_id "ZNF341"; transcript_id "HQ258664:uc002wzy.3";
+chr20 hg19_knownGene exon 32346522 32346612 0.000000 + . gene_id "ZNF341"; transcript_id "HQ258664:uc002wzy.3";
+chr20 hg19_knownGene CDS 32349668 32349861 0.000000 + 1 gene_id "ZNF341"; transcript_id "HQ258664:uc002wzy.3";
+chr20 hg19_knownGene exon 32349668 32349861 0.000000 + . gene_id "ZNF341"; transcript_id "HQ258664:uc002wzy.3";
+chr20 hg19_knownGene CDS 32354657 32354847 0.000000 + 2 gene_id "ZNF341"; transcript_id "HQ258664:uc002wzy.3";
+chr20 hg19_knownGene exon 32354657 32354847 0.000000 + . gene_id "ZNF341"; transcript_id "HQ258664:uc002wzy.3";
+chr20 hg19_knownGene CDS 32357890 32358098 0.000000 + 0 gene_id "ZNF341"; transcript_id "HQ258664:uc002wzy.3";
+chr20 hg19_knownGene exon 32357890 32358098 0.000000 + . gene_id "ZNF341"; transcript_id "HQ258664:uc002wzy.3";
+chr20 hg19_knownGene CDS 32369097 32369193 0.000000 + 1 gene_id "ZNF341"; transcript_id "HQ258664:uc002wzy.3";
+chr20 hg19_knownGene exon 32369097 32369193 0.000000 + . gene_id "ZNF341"; transcript_id "HQ258664:uc002wzy.3";
+chr20 hg19_knownGene CDS 32371538 32371670 0.000000 + 0 gene_id "ZNF341"; transcript_id "HQ258664:uc002wzy.3";
+chr20 hg19_knownGene exon 32371538 32371670 0.000000 + . gene_id "ZNF341"; transcript_id "HQ258664:uc002wzy.3";
+chr20 hg19_knownGene CDS 32376669 32376780 0.000000 + 2 gene_id "ZNF341"; transcript_id "HQ258664:uc002wzy.3";
+chr20 hg19_knownGene exon 32376669 32376780 0.000000 + . gene_id "ZNF341"; transcript_id "HQ258664:uc002wzy.3";
+chr20 hg19_knownGene CDS 32377324 32377394 0.000000 + 1 gene_id "ZNF341"; transcript_id "HQ258664:uc002wzy.3";
+chr20 hg19_knownGene exon 32377324 32377394 0.000000 + . gene_id "ZNF341"; transcript_id "HQ258664:uc002wzy.3";
+chr20 hg19_knownGene CDS 32378794 32379320 0.000000 + 2 gene_id "ZNF341"; transcript_id "HQ258664:uc002wzy.3";
+chr20 hg19_knownGene exon 32378794 32380075 0.000000 + . gene_id "ZNF341"; transcript_id "HQ258664:uc002wzy.3";
+chr20 hg19_knownGene exon 32319808 32319858 0.000000 + . gene_id "ZNF341"; transcript_id "BC094738:uc010geq.3";
+chr20 hg19_knownGene CDS 32328750 32328818 0.000000 + 0 gene_id "ZNF341"; transcript_id "BC094738:uc010geq.3";
+chr20 hg19_knownGene exon 32328708 32328818 0.000000 + . gene_id "ZNF341"; transcript_id "BC094738:uc010geq.3";
+chr20 hg19_knownGene CDS 32336729 32336878 0.000000 + 0 gene_id "ZNF341"; transcript_id "BC094738:uc010geq.3";
+chr20 hg19_knownGene exon 32336729 32336878 0.000000 + . gene_id "ZNF341"; transcript_id "BC094738:uc010geq.3";
+chr20 hg19_knownGene CDS 32340978 32341229 0.000000 + 0 gene_id "ZNF341"; transcript_id "BC094738:uc010geq.3";
+chr20 hg19_knownGene exon 32340978 32341229 0.000000 + . gene_id "ZNF341"; transcript_id "BC094738:uc010geq.3";
+chr20 hg19_knownGene CDS 32344954 32345149 0.000000 + 0 gene_id "ZNF341"; transcript_id "BC094738:uc010geq.3";
+chr20 hg19_knownGene exon 32344954 32345149 0.000000 + . gene_id "ZNF341"; transcript_id "BC094738:uc010geq.3";
+chr20 hg19_knownGene CDS 32346522 32346612 0.000000 + 2 gene_id "ZNF341"; transcript_id "BC094738:uc010geq.3";
+chr20 hg19_knownGene exon 32346522 32346612 0.000000 + . gene_id "ZNF341"; transcript_id "BC094738:uc010geq.3";
+chr20 hg19_knownGene CDS 32349668 32349861 0.000000 + 1 gene_id "ZNF341"; transcript_id "BC094738:uc010geq.3";
+chr20 hg19_knownGene exon 32349668 32349861 0.000000 + . gene_id "ZNF341"; transcript_id "BC094738:uc010geq.3";
+chr20 hg19_knownGene CDS 32354657 32354847 0.000000 + 2 gene_id "ZNF341"; transcript_id "BC094738:uc010geq.3";
+chr20 hg19_knownGene exon 32354657 32354847 0.000000 + . gene_id "ZNF341"; transcript_id "BC094738:uc010geq.3";
+chr20 hg19_knownGene CDS 32357890 32358098 0.000000 + 0 gene_id "ZNF341"; transcript_id "BC094738:uc010geq.3";
+chr20 hg19_knownGene exon 32357890 32358098 0.000000 + . gene_id "ZNF341"; transcript_id "BC094738:uc010geq.3";
+chr20 hg19_knownGene CDS 32369097 32369193 0.000000 + 1 gene_id "ZNF341"; transcript_id "BC094738:uc010geq.3";
+chr20 hg19_knownGene exon 32369097 32369193 0.000000 + . gene_id "ZNF341"; transcript_id "BC094738:uc010geq.3";
+chr20 hg19_knownGene CDS 32371538 32371670 0.000000 + 0 gene_id "ZNF341"; transcript_id "BC094738:uc010geq.3";
+chr20 hg19_knownGene exon 32371538 32371670 0.000000 + . gene_id "ZNF341"; transcript_id "BC094738:uc010geq.3";
+chr20 hg19_knownGene CDS 32376669 32376780 0.000000 + 2 gene_id "ZNF341"; transcript_id "BC094738:uc010geq.3";
+chr20 hg19_knownGene exon 32376669 32376780 0.000000 + . gene_id "ZNF341"; transcript_id "BC094738:uc010geq.3";
+chr20 hg19_knownGene CDS 32377324 32377394 0.000000 + 1 gene_id "ZNF341"; transcript_id "BC094738:uc010geq.3";
+chr20 hg19_knownGene exon 32377324 32377394 0.000000 + . gene_id "ZNF341"; transcript_id "BC094738:uc010geq.3";
+chr20 hg19_knownGene CDS 32378794 32379320 0.000000 + 2 gene_id "ZNF341"; transcript_id "BC094738:uc010geq.3";
+chr20 hg19_knownGene exon 32378794 32380075 0.000000 + . gene_id "ZNF341"; transcript_id "BC094738:uc010geq.3";
+chr20 hg19_knownGene exon 32319808 32319858 0.000000 + . gene_id "ZNF341"; transcript_id "BC063492:uc010ger.3";
+chr20 hg19_knownGene exon 32328708 32328818 0.000000 + . gene_id "ZNF341"; transcript_id "BC063492:uc010ger.3";
+chr20 hg19_knownGene exon 32332909 32333105 0.000000 + . gene_id "ZNF341"; transcript_id "BC063492:uc010ger.3";
+chr20 hg19_knownGene exon 32336729 32336878 0.000000 + . gene_id "ZNF341"; transcript_id "BC063492:uc010ger.3";
+chr20 hg19_knownGene exon 32340978 32341229 0.000000 + . gene_id "ZNF341"; transcript_id "BC063492:uc010ger.3";
+chr20 hg19_knownGene exon 32344954 32345149 0.000000 + . gene_id "ZNF341"; transcript_id "BC063492:uc010ger.3";
+chr20 hg19_knownGene exon 32346522 32346612 0.000000 + . gene_id "ZNF341"; transcript_id "BC063492:uc010ger.3";
+chr20 hg19_knownGene exon 32349668 32349861 0.000000 + . gene_id "ZNF341"; transcript_id "BC063492:uc010ger.3";
+chr20 hg19_knownGene exon 32354657 32354847 0.000000 + . gene_id "ZNF341"; transcript_id "BC063492:uc010ger.3";
+chr20 hg19_knownGene exon 32357890 32358098 0.000000 + . gene_id "ZNF341"; transcript_id "BC063492:uc010ger.3";
+chr20 hg19_knownGene exon 32371538 32371670 0.000000 + . gene_id "ZNF341"; transcript_id "BC063492:uc010ger.3";
+chr20 hg19_knownGene exon 32376669 32376780 0.000000 + . gene_id "ZNF341"; transcript_id "BC063492:uc010ger.3";
+chr20 hg19_knownGene exon 32377324 32377394 0.000000 + . gene_id "ZNF341"; transcript_id "BC063492:uc010ger.3";
+chr20 hg19_knownGene exon 32378794 32380075 0.000000 + . gene_id "ZNF341"; transcript_id "BC063492:uc010ger.3";
+chr20 hg19_knownGene CDS 32376536 32376780 0.000000 + 0 gene_id "ZNF341"; transcript_id "AK095848:uc002wzz.3";
+chr20 hg19_knownGene exon 32374894 32376780 0.000000 + . gene_id "ZNF341"; transcript_id "AK095848:uc002wzz.3";
+chr20 hg19_knownGene CDS 32377324 32377394 0.000000 + 1 gene_id "ZNF341"; transcript_id "AK095848:uc002wzz.3";
+chr20 hg19_knownGene exon 32377324 32377394 0.000000 + . gene_id "ZNF341"; transcript_id "AK095848:uc002wzz.3";
+chr20 hg19_knownGene CDS 32378794 32379320 0.000000 + 2 gene_id "ZNF341"; transcript_id "AK095848:uc002wzz.3";
+chr20 hg19_knownGene exon 32378794 32380075 0.000000 + . gene_id "ZNF341"; transcript_id "AK095848:uc002wzz.3";
+chr20 hg19_knownGene CDS 32399275 32399464 0.000000 + 0 gene_id "CHMP4B"; transcript_id "NM_176812:uc002xaa.3";
+chr20 hg19_knownGene exon 32399110 32399464 0.000000 + . gene_id "CHMP4B"; transcript_id "NM_176812:uc002xaa.3";
+chr20 hg19_knownGene CDS 32436273 32436450 0.000000 + 2 gene_id "CHMP4B"; transcript_id "NM_176812:uc002xaa.3";
+chr20 hg19_knownGene exon 32436273 32436450 0.000000 + . gene_id "CHMP4B"; transcript_id "NM_176812:uc002xaa.3";
+chr20 hg19_knownGene CDS 32438758 32438872 0.000000 + 1 gene_id "CHMP4B"; transcript_id "NM_176812:uc002xaa.3";
+chr20 hg19_knownGene exon 32438758 32438872 0.000000 + . gene_id "CHMP4B"; transcript_id "NM_176812:uc002xaa.3";
+chr20 hg19_knownGene CDS 32439883 32440009 0.000000 + 0 gene_id "CHMP4B"; transcript_id "NM_176812:uc002xaa.3";
+chr20 hg19_knownGene exon 32439883 32440009 0.000000 + . gene_id "CHMP4B"; transcript_id "NM_176812:uc002xaa.3";
+chr20 hg19_knownGene CDS 32441302 32441363 0.000000 + 2 gene_id "CHMP4B"; transcript_id "NM_176812:uc002xaa.3";
+chr20 hg19_knownGene exon 32441302 32442173 0.000000 + . gene_id "CHMP4B"; transcript_id "NM_176812:uc002xaa.3";
+chr20 hg19_knownGene exon 32636925 32636996 0.000000 + . gene_id "MIR4755"; transcript_id "NR_039911:uc021wca.1";
+chr20 hg19_knownGene exon 32581458 32581937 0.000000 + . gene_id "RALY"; transcript_id "AK299766:uc010zui.2";
+chr20 hg19_knownGene exon 32619328 32619410 0.000000 + . gene_id "RALY"; transcript_id "AK299766:uc010zui.2";
+chr20 hg19_knownGene CDS 32659881 32660136 0.000000 + 0 gene_id "RALY"; transcript_id "AK299766:uc010zui.2";
+chr20 hg19_knownGene exon 32659872 32660136 0.000000 + . gene_id "RALY"; transcript_id "AK299766:uc010zui.2";
+chr20 hg19_knownGene CDS 32661369 32661441 0.000000 + 2 gene_id "RALY"; transcript_id "AK299766:uc010zui.2";
+chr20 hg19_knownGene exon 32661369 32661441 0.000000 + . gene_id "RALY"; transcript_id "AK299766:uc010zui.2";
+chr20 hg19_knownGene CDS 32661625 32661673 0.000000 + 1 gene_id "RALY"; transcript_id "AK299766:uc010zui.2";
+chr20 hg19_knownGene exon 32661625 32661841 0.000000 + . gene_id "RALY"; transcript_id "AK299766:uc010zui.2";
+chr20 hg19_knownGene exon 32581458 32581937 0.000000 + . gene_id "RALY"; transcript_id "NM_016732:uc002xab.3";
+chr20 hg19_knownGene exon 32619328 32619410 0.000000 + . gene_id "RALY"; transcript_id "NM_016732:uc002xab.3";
+chr20 hg19_knownGene CDS 32659881 32660136 0.000000 + 0 gene_id "RALY"; transcript_id "NM_016732:uc002xab.3";
+chr20 hg19_knownGene exon 32659872 32660136 0.000000 + . gene_id "RALY"; transcript_id "NM_016732:uc002xab.3";
+chr20 hg19_knownGene CDS 32661369 32661441 0.000000 + 2 gene_id "RALY"; transcript_id "NM_016732:uc002xab.3";
+chr20 hg19_knownGene exon 32661369 32661441 0.000000 + . gene_id "RALY"; transcript_id "NM_016732:uc002xab.3";
+chr20 hg19_knownGene CDS 32661625 32661672 0.000000 + 1 gene_id "RALY"; transcript_id "NM_016732:uc002xab.3";
+chr20 hg19_knownGene exon 32661625 32661672 0.000000 + . gene_id "RALY"; transcript_id "NM_016732:uc002xab.3";
+chr20 hg19_knownGene CDS 32663680 32663846 0.000000 + 1 gene_id "RALY"; transcript_id "NM_016732:uc002xab.3";
+chr20 hg19_knownGene exon 32663680 32663846 0.000000 + . gene_id "RALY"; transcript_id "NM_016732:uc002xab.3";
+chr20 hg19_knownGene CDS 32664508 32664621 0.000000 + 2 gene_id "RALY"; transcript_id "NM_016732:uc002xab.3";
+chr20 hg19_knownGene exon 32664508 32664621 0.000000 + . gene_id "RALY"; transcript_id "NM_016732:uc002xab.3";
+chr20 hg19_knownGene CDS 32664834 32665051 0.000000 + 2 gene_id "RALY"; transcript_id "NM_016732:uc002xab.3";
+chr20 hg19_knownGene exon 32664834 32665051 0.000000 + . gene_id "RALY"; transcript_id "NM_016732:uc002xab.3";
+chr20 hg19_knownGene CDS 32666311 32666352 0.000000 + 0 gene_id "RALY"; transcript_id "NM_016732:uc002xab.3";
+chr20 hg19_knownGene exon 32666311 32666359 0.000000 + . gene_id "RALY"; transcript_id "NM_016732:uc002xab.3";
+chr20 hg19_knownGene exon 32667716 32670991 0.000000 + . gene_id "RALY"; transcript_id "NM_016732:uc002xab.3";
+chr20 hg19_knownGene exon 32581458 32581937 0.000000 + . gene_id "RALY"; transcript_id "NM_007367:uc002xac.3";
+chr20 hg19_knownGene exon 32619328 32619410 0.000000 + . gene_id "RALY"; transcript_id "NM_007367:uc002xac.3";
+chr20 hg19_knownGene CDS 32659881 32660136 0.000000 + 0 gene_id "RALY"; transcript_id "NM_007367:uc002xac.3";
+chr20 hg19_knownGene exon 32659872 32660136 0.000000 + . gene_id "RALY"; transcript_id "NM_007367:uc002xac.3";
+chr20 hg19_knownGene CDS 32661369 32661441 0.000000 + 2 gene_id "RALY"; transcript_id "NM_007367:uc002xac.3";
+chr20 hg19_knownGene exon 32661369 32661441 0.000000 + . gene_id "RALY"; transcript_id "NM_007367:uc002xac.3";
+chr20 hg19_knownGene CDS 32663680 32663846 0.000000 + 1 gene_id "RALY"; transcript_id "NM_007367:uc002xac.3";
+chr20 hg19_knownGene exon 32663680 32663846 0.000000 + . gene_id "RALY"; transcript_id "NM_007367:uc002xac.3";
+chr20 hg19_knownGene CDS 32664508 32664621 0.000000 + 2 gene_id "RALY"; transcript_id "NM_007367:uc002xac.3";
+chr20 hg19_knownGene exon 32664508 32664621 0.000000 + . gene_id "RALY"; transcript_id "NM_007367:uc002xac.3";
+chr20 hg19_knownGene CDS 32664834 32665051 0.000000 + 2 gene_id "RALY"; transcript_id "NM_007367:uc002xac.3";
+chr20 hg19_knownGene exon 32664834 32665051 0.000000 + . gene_id "RALY"; transcript_id "NM_007367:uc002xac.3";
+chr20 hg19_knownGene CDS 32666311 32666352 0.000000 + 0 gene_id "RALY"; transcript_id "NM_007367:uc002xac.3";
+chr20 hg19_knownGene exon 32666311 32666359 0.000000 + . gene_id "RALY"; transcript_id "NM_007367:uc002xac.3";
+chr20 hg19_knownGene exon 32667716 32670991 0.000000 + . gene_id "RALY"; transcript_id "NM_007367:uc002xac.3";
+chr20 hg19_knownGene CDS 32677539 32677711 0.000000 - 2 gene_id "EIF2S2"; transcript_id "NM_003908:uc002xaf.3";
+chr20 hg19_knownGene exon 32676115 32677711 0.000000 - . gene_id "EIF2S2"; transcript_id "NM_003908:uc002xaf.3";
+chr20 hg19_knownGene CDS 32678323 32678408 0.000000 - 1 gene_id "EIF2S2"; transcript_id "NM_003908:uc002xaf.3";
+chr20 hg19_knownGene exon 32678323 32678408 0.000000 - . gene_id "EIF2S2"; transcript_id "NM_003908:uc002xaf.3";
+chr20 hg19_knownGene CDS 32681481 32681537 0.000000 - 1 gene_id "EIF2S2"; transcript_id "NM_003908:uc002xaf.3";
+chr20 hg19_knownGene exon 32681481 32681537 0.000000 - . gene_id "EIF2S2"; transcript_id "NM_003908:uc002xaf.3";
+chr20 hg19_knownGene CDS 32684463 32684611 0.000000 - 0 gene_id "EIF2S2"; transcript_id "NM_003908:uc002xaf.3";
+chr20 hg19_knownGene exon 32684463 32684611 0.000000 - . gene_id "EIF2S2"; transcript_id "NM_003908:uc002xaf.3";
+chr20 hg19_knownGene CDS 32685222 32685322 0.000000 - 2 gene_id "EIF2S2"; transcript_id "NM_003908:uc002xaf.3";
+chr20 hg19_knownGene exon 32685222 32685322 0.000000 - . gene_id "EIF2S2"; transcript_id "NM_003908:uc002xaf.3";
+chr20 hg19_knownGene CDS 32686304 32686439 0.000000 - 0 gene_id "EIF2S2"; transcript_id "NM_003908:uc002xaf.3";
+chr20 hg19_knownGene exon 32686304 32686439 0.000000 - . gene_id "EIF2S2"; transcript_id "NM_003908:uc002xaf.3";
+chr20 hg19_knownGene CDS 32691268 32691371 0.000000 - 2 gene_id "EIF2S2"; transcript_id "NM_003908:uc002xaf.3";
+chr20 hg19_knownGene exon 32691268 32691371 0.000000 - . gene_id "EIF2S2"; transcript_id "NM_003908:uc002xaf.3";
+chr20 hg19_knownGene CDS 32693174 32693351 0.000000 - 0 gene_id "EIF2S2"; transcript_id "NM_003908:uc002xaf.3";
+chr20 hg19_knownGene exon 32693174 32693351 0.000000 - . gene_id "EIF2S2"; transcript_id "NM_003908:uc002xaf.3";
+chr20 hg19_knownGene CDS 32699902 32699916 0.000000 - 0 gene_id "EIF2S2"; transcript_id "NM_003908:uc002xaf.3";
+chr20 hg19_knownGene exon 32699902 32700085 0.000000 - . gene_id "EIF2S2"; transcript_id "NM_003908:uc002xaf.3";
+chr20 hg19_knownGene CDS 32848181 32848340 0.000000 + 0 gene_id "ASIP"; transcript_id "NM_001672:uc002xah.1";
+chr20 hg19_knownGene exon 32848171 32848340 0.000000 + . gene_id "ASIP"; transcript_id "NM_001672:uc002xah.1";
+chr20 hg19_knownGene CDS 32850638 32850699 0.000000 + 2 gene_id "ASIP"; transcript_id "NM_001672:uc002xah.1";
+chr20 hg19_knownGene exon 32850638 32850699 0.000000 + . gene_id "ASIP"; transcript_id "NM_001672:uc002xah.1";
+chr20 hg19_knownGene CDS 32856797 32856970 0.000000 + 0 gene_id "ASIP"; transcript_id "NM_001672:uc002xah.1";
+chr20 hg19_knownGene exon 32856797 32857148 0.000000 + . gene_id "ASIP"; transcript_id "NM_001672:uc002xah.1";
+chr20 hg19_knownGene CDS 32868843 32868971 0.000000 - 0 gene_id "AHCY"; transcript_id "NM_000687:uc002xai.3";
+chr20 hg19_knownGene exon 32868071 32868971 0.000000 - . gene_id "AHCY"; transcript_id "NM_000687:uc002xai.3";
+chr20 hg19_knownGene CDS 32873246 32873440 0.000000 - 0 gene_id "AHCY"; transcript_id "NM_000687:uc002xai.3";
+chr20 hg19_knownGene exon 32873246 32873440 0.000000 - . gene_id "AHCY"; transcript_id "NM_000687:uc002xai.3";
+chr20 hg19_knownGene CDS 32878138 32878255 0.000000 - 1 gene_id "AHCY"; transcript_id "NM_000687:uc002xai.3";
+chr20 hg19_knownGene exon 32878138 32878255 0.000000 - . gene_id "AHCY"; transcript_id "NM_000687:uc002xai.3";
+chr20 hg19_knownGene CDS 32878357 32878444 0.000000 - 2 gene_id "AHCY"; transcript_id "NM_000687:uc002xai.3";
+chr20 hg19_knownGene exon 32878357 32878444 0.000000 - . gene_id "AHCY"; transcript_id "NM_000687:uc002xai.3";
+chr20 hg19_knownGene CDS 32878537 32878744 0.000000 - 0 gene_id "AHCY"; transcript_id "NM_000687:uc002xai.3";
+chr20 hg19_knownGene exon 32878537 32878744 0.000000 - . gene_id "AHCY"; transcript_id "NM_000687:uc002xai.3";
+chr20 hg19_knownGene CDS 32879225 32879337 0.000000 - 2 gene_id "AHCY"; transcript_id "NM_000687:uc002xai.3";
+chr20 hg19_knownGene exon 32879225 32879337 0.000000 - . gene_id "AHCY"; transcript_id "NM_000687:uc002xai.3";
+chr20 hg19_knownGene CDS 32880164 32880313 0.000000 - 2 gene_id "AHCY"; transcript_id "NM_000687:uc002xai.3";
+chr20 hg19_knownGene exon 32880164 32880313 0.000000 - . gene_id "AHCY"; transcript_id "NM_000687:uc002xai.3";
+chr20 hg19_knownGene CDS 32881887 32881962 0.000000 - 0 gene_id "AHCY"; transcript_id "NM_000687:uc002xai.3";
+chr20 hg19_knownGene exon 32881887 32881962 0.000000 - . gene_id "AHCY"; transcript_id "NM_000687:uc002xai.3";
+chr20 hg19_knownGene CDS 32883201 32883391 0.000000 - 2 gene_id "AHCY"; transcript_id "NM_000687:uc002xai.3";
+chr20 hg19_knownGene exon 32883201 32883391 0.000000 - . gene_id "AHCY"; transcript_id "NM_000687:uc002xai.3";
+chr20 hg19_knownGene CDS 32891049 32891076 0.000000 - 0 gene_id "AHCY"; transcript_id "NM_000687:uc002xai.3";
+chr20 hg19_knownGene exon 32891049 32891215 0.000000 - . gene_id "AHCY"; transcript_id "NM_000687:uc002xai.3";
+chr20 hg19_knownGene CDS 32881869 32881962 0.000000 - 1 gene_id "AHCY"; transcript_id "AK309204:uc010get.2";
+chr20 hg19_knownGene exon 32881272 32881962 0.000000 - . gene_id "AHCY"; transcript_id "AK309204:uc010get.2";
+chr20 hg19_knownGene CDS 32883028 32883391 0.000000 - 2 gene_id "AHCY"; transcript_id "AK309204:uc010get.2";
+chr20 hg19_knownGene exon 32883028 32883391 0.000000 - . gene_id "AHCY"; transcript_id "AK309204:uc010get.2";
+chr20 hg19_knownGene CDS 32891049 32891076 0.000000 - 0 gene_id "AHCY"; transcript_id "AK309204:uc010get.2";
+chr20 hg19_knownGene exon 32891049 32891215 0.000000 - . gene_id "AHCY"; transcript_id "AK309204:uc010get.2";
+chr20 hg19_knownGene CDS 32868843 32868971 0.000000 - 0 gene_id "AHCY"; transcript_id "NM_001161766:uc002xaj.3";
+chr20 hg19_knownGene exon 32868071 32868971 0.000000 - . gene_id "AHCY"; transcript_id "NM_001161766:uc002xaj.3";
+chr20 hg19_knownGene CDS 32873246 32873440 0.000000 - 0 gene_id "AHCY"; transcript_id "NM_001161766:uc002xaj.3";
+chr20 hg19_knownGene exon 32873246 32873440 0.000000 - . gene_id "AHCY"; transcript_id "NM_001161766:uc002xaj.3";
+chr20 hg19_knownGene CDS 32878138 32878255 0.000000 - 1 gene_id "AHCY"; transcript_id "NM_001161766:uc002xaj.3";
+chr20 hg19_knownGene exon 32878138 32878255 0.000000 - . gene_id "AHCY"; transcript_id "NM_001161766:uc002xaj.3";
+chr20 hg19_knownGene CDS 32878357 32878444 0.000000 - 2 gene_id "AHCY"; transcript_id "NM_001161766:uc002xaj.3";
+chr20 hg19_knownGene exon 32878357 32878444 0.000000 - . gene_id "AHCY"; transcript_id "NM_001161766:uc002xaj.3";
+chr20 hg19_knownGene CDS 32878537 32878744 0.000000 - 0 gene_id "AHCY"; transcript_id "NM_001161766:uc002xaj.3";
+chr20 hg19_knownGene exon 32878537 32878744 0.000000 - . gene_id "AHCY"; transcript_id "NM_001161766:uc002xaj.3";
+chr20 hg19_knownGene CDS 32879225 32879337 0.000000 - 2 gene_id "AHCY"; transcript_id "NM_001161766:uc002xaj.3";
+chr20 hg19_knownGene exon 32879225 32879337 0.000000 - . gene_id "AHCY"; transcript_id "NM_001161766:uc002xaj.3";
+chr20 hg19_knownGene CDS 32880164 32880313 0.000000 - 2 gene_id "AHCY"; transcript_id "NM_001161766:uc002xaj.3";
+chr20 hg19_knownGene exon 32880164 32880313 0.000000 - . gene_id "AHCY"; transcript_id "NM_001161766:uc002xaj.3";
+chr20 hg19_knownGene CDS 32881887 32881962 0.000000 - 0 gene_id "AHCY"; transcript_id "NM_001161766:uc002xaj.3";
+chr20 hg19_knownGene exon 32881887 32881962 0.000000 - . gene_id "AHCY"; transcript_id "NM_001161766:uc002xaj.3";
+chr20 hg19_knownGene CDS 32883201 32883335 0.000000 - 0 gene_id "AHCY"; transcript_id "NM_001161766:uc002xaj.3";
+chr20 hg19_knownGene exon 32883201 32883391 0.000000 - . gene_id "AHCY"; transcript_id "NM_001161766:uc002xaj.3";
+chr20 hg19_knownGene exon 32899278 32899608 0.000000 - . gene_id "AHCY"; transcript_id "NM_001161766:uc002xaj.3";
+chr20 hg19_knownGene exon 33054130 33054223 0.000000 + . gene_id "MIR644A"; transcript_id "NR_030374:uc021wcb.1";
+chr20 hg19_knownGene exon 32951062 32951155 0.000000 + . gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene exon 32957200 32957276 0.000000 + . gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene CDS 32981618 32981687 0.000000 + 0 gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene exon 32981597 32981687 0.000000 + . gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene CDS 32996457 32996598 0.000000 + 2 gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene exon 32996457 32996598 0.000000 + . gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene CDS 33000321 33000445 0.000000 + 1 gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene exon 33000321 33000445 0.000000 + . gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene CDS 33001548 33001685 0.000000 + 2 gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene exon 33001548 33001685 0.000000 + . gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene CDS 33012286 33012331 0.000000 + 2 gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene exon 33012286 33012331 0.000000 + . gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene CDS 33026279 33026436 0.000000 + 1 gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene exon 33026279 33026436 0.000000 + . gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene CDS 33027960 33028149 0.000000 + 2 gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene exon 33027960 33028149 0.000000 + . gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene CDS 33030013 33030108 0.000000 + 1 gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene exon 33030013 33030108 0.000000 + . gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene CDS 33033092 33033266 0.000000 + 1 gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene exon 33033092 33033266 0.000000 + . gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene CDS 33037216 33037285 0.000000 + 0 gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene exon 33037216 33037285 0.000000 + . gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene CDS 33045195 33045279 0.000000 + 2 gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene exon 33045195 33045279 0.000000 + . gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene CDS 33049898 33050026 0.000000 + 1 gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene exon 33049898 33050026 0.000000 + . gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene CDS 33057853 33057925 0.000000 + 1 gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene exon 33057853 33057925 0.000000 + . gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene CDS 33059249 33059320 0.000000 + 0 gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene exon 33059249 33059320 0.000000 + . gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene CDS 33065577 33065665 0.000000 + 0 gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene exon 33065577 33065665 0.000000 + . gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene CDS 33067435 33067594 0.000000 + 1 gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene exon 33067435 33067594 0.000000 + . gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene CDS 33068404 33068537 0.000000 + 0 gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene exon 33068404 33068537 0.000000 + . gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene CDS 33068871 33069011 0.000000 + 1 gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene exon 33068871 33069011 0.000000 + . gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene CDS 33077071 33077191 0.000000 + 1 gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene exon 33077071 33077191 0.000000 + . gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene CDS 33077627 33077731 0.000000 + 0 gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene exon 33077627 33077731 0.000000 + . gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene CDS 33080306 33080402 0.000000 + 0 gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene exon 33080306 33080402 0.000000 + . gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene CDS 33092136 33092208 0.000000 + 2 gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene exon 33092136 33092208 0.000000 + . gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene CDS 33095500 33095596 0.000000 + 1 gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene exon 33095500 33099197 0.000000 + . gene_id "ITCH"; transcript_id "NM_031483:uc002xak.2";
+chr20 hg19_knownGene exon 32951062 32951155 0.000000 + . gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene exon 32957200 32957276 0.000000 + . gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene CDS 32981618 32981687 0.000000 + 0 gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene exon 32981597 32981687 0.000000 + . gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene CDS 32996457 32996598 0.000000 + 2 gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene exon 32996457 32996598 0.000000 + . gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene CDS 33000321 33000445 0.000000 + 1 gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene exon 33000321 33000445 0.000000 + . gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene CDS 33001548 33001685 0.000000 + 2 gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene exon 33001548 33001685 0.000000 + . gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene CDS 33004923 33005045 0.000000 + 2 gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene exon 33004923 33005045 0.000000 + . gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene CDS 33012286 33012331 0.000000 + 2 gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene exon 33012286 33012331 0.000000 + . gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene CDS 33026279 33026436 0.000000 + 1 gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene exon 33026279 33026436 0.000000 + . gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene CDS 33027960 33028149 0.000000 + 2 gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene exon 33027960 33028149 0.000000 + . gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene CDS 33030013 33030108 0.000000 + 1 gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene exon 33030013 33030108 0.000000 + . gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene CDS 33033092 33033266 0.000000 + 1 gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene exon 33033092 33033266 0.000000 + . gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene CDS 33037216 33037285 0.000000 + 0 gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene exon 33037216 33037285 0.000000 + . gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene CDS 33045195 33045279 0.000000 + 2 gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene exon 33045195 33045279 0.000000 + . gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene CDS 33049898 33050026 0.000000 + 1 gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene exon 33049898 33050026 0.000000 + . gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene CDS 33057853 33057925 0.000000 + 1 gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene exon 33057853 33057925 0.000000 + . gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene CDS 33059249 33059320 0.000000 + 0 gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene exon 33059249 33059320 0.000000 + . gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene CDS 33065577 33065665 0.000000 + 0 gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene exon 33065577 33065665 0.000000 + . gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene CDS 33067435 33067594 0.000000 + 1 gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene exon 33067435 33067594 0.000000 + . gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene CDS 33068404 33068537 0.000000 + 0 gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene exon 33068404 33068537 0.000000 + . gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene CDS 33068871 33069011 0.000000 + 1 gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene exon 33068871 33069011 0.000000 + . gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene CDS 33077071 33077191 0.000000 + 1 gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene exon 33077071 33077191 0.000000 + . gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene CDS 33077627 33077731 0.000000 + 0 gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene exon 33077627 33077731 0.000000 + . gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene CDS 33080306 33080402 0.000000 + 0 gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene exon 33080306 33080402 0.000000 + . gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene CDS 33092136 33092208 0.000000 + 2 gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene exon 33092136 33092208 0.000000 + . gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene CDS 33095500 33095596 0.000000 + 1 gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene exon 33095500 33099197 0.000000 + . gene_id "ITCH"; transcript_id "BC011571:uc010geu.1";
+chr20 hg19_knownGene exon 32951062 32951155 0.000000 + . gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene exon 32957200 32957276 0.000000 + . gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene exon 32981597 32981687 0.000000 + . gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene CDS 33000439 33000445 0.000000 + 0 gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene exon 33000321 33000445 0.000000 + . gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene CDS 33001548 33001685 0.000000 + 2 gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene exon 33001548 33001685 0.000000 + . gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene CDS 33012286 33012331 0.000000 + 2 gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene exon 33012286 33012331 0.000000 + . gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene CDS 33026279 33026436 0.000000 + 1 gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene exon 33026279 33026436 0.000000 + . gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene CDS 33027960 33028149 0.000000 + 2 gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene exon 33027960 33028149 0.000000 + . gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene CDS 33030013 33030108 0.000000 + 1 gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene exon 33030013 33030108 0.000000 + . gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene CDS 33033092 33033266 0.000000 + 1 gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene exon 33033092 33033266 0.000000 + . gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene CDS 33037216 33037285 0.000000 + 0 gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene exon 33037216 33037285 0.000000 + . gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene CDS 33045195 33045279 0.000000 + 2 gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene exon 33045195 33045279 0.000000 + . gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene CDS 33049898 33050026 0.000000 + 1 gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene exon 33049898 33050026 0.000000 + . gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene CDS 33057853 33057925 0.000000 + 1 gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene exon 33057853 33057925 0.000000 + . gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene CDS 33059249 33059320 0.000000 + 0 gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene exon 33059249 33059320 0.000000 + . gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene CDS 33065577 33065665 0.000000 + 0 gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene exon 33065577 33065665 0.000000 + . gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene CDS 33067435 33067594 0.000000 + 1 gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene exon 33067435 33067594 0.000000 + . gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene CDS 33068404 33068537 0.000000 + 0 gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene exon 33068404 33068537 0.000000 + . gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene CDS 33068871 33069011 0.000000 + 1 gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene exon 33068871 33069011 0.000000 + . gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene CDS 33077071 33077191 0.000000 + 1 gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene exon 33077071 33077191 0.000000 + . gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene CDS 33077627 33077731 0.000000 + 0 gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene exon 33077627 33077731 0.000000 + . gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene CDS 33080306 33080402 0.000000 + 0 gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene exon 33080306 33080402 0.000000 + . gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene CDS 33092136 33092208 0.000000 + 2 gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene exon 33092136 33092208 0.000000 + . gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene CDS 33095500 33095596 0.000000 + 1 gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene exon 33095500 33099197 0.000000 + . gene_id "ITCH"; transcript_id "AK304090:uc010zuj.1";
+chr20 hg19_knownGene exon 33114073 33114148 0.000000 + . gene_id "DYNLRB1"; transcript_id "BC007223:uc002xao.3";
+chr20 hg19_knownGene exon 33117656 33119025 0.000000 + . gene_id "DYNLRB1"; transcript_id "BC007223:uc002xao.3";
+chr20 hg19_knownGene CDS 33104264 33104266 0.000000 + 0 gene_id "DYNLRB1"; transcript_id "AK294214:uc010zuk.2";
+chr20 hg19_knownGene exon 33104204 33104266 0.000000 + . gene_id "DYNLRB1"; transcript_id "AK294214:uc010zuk.2";
+chr20 hg19_knownGene CDS 33114073 33114148 0.000000 + 0 gene_id "DYNLRB1"; transcript_id "AK294214:uc010zuk.2";
+chr20 hg19_knownGene exon 33114073 33114148 0.000000 + . gene_id "DYNLRB1"; transcript_id "AK294214:uc010zuk.2";
+chr20 hg19_knownGene CDS 33122432 33122715 0.000000 + 2 gene_id "DYNLRB1"; transcript_id "AK294214:uc010zuk.2";
+chr20 hg19_knownGene exon 33122432 33123391 0.000000 + . gene_id "DYNLRB1"; transcript_id "AK294214:uc010zuk.2";
+chr20 hg19_knownGene CDS 33104264 33104266 0.000000 + 0 gene_id "DYNLRB1"; transcript_id "NM_014183:uc002xal.3";
+chr20 hg19_knownGene exon 33104204 33104266 0.000000 + . gene_id "DYNLRB1"; transcript_id "NM_014183:uc002xal.3";
+chr20 hg19_knownGene CDS 33114073 33114148 0.000000 + 0 gene_id "DYNLRB1"; transcript_id "NM_014183:uc002xal.3";
+chr20 hg19_knownGene exon 33114073 33114148 0.000000 + . gene_id "DYNLRB1"; transcript_id "NM_014183:uc002xal.3";
+chr20 hg19_knownGene CDS 33122432 33122599 0.000000 + 2 gene_id "DYNLRB1"; transcript_id "NM_014183:uc002xal.3";
+chr20 hg19_knownGene exon 33122432 33122599 0.000000 + . gene_id "DYNLRB1"; transcript_id "NM_014183:uc002xal.3";
+chr20 hg19_knownGene CDS 33128385 33128425 0.000000 + 2 gene_id "DYNLRB1"; transcript_id "NM_014183:uc002xal.3";
+chr20 hg19_knownGene exon 33128385 33128762 0.000000 + . gene_id "DYNLRB1"; transcript_id "NM_014183:uc002xal.3";
+chr20 hg19_knownGene exon 33134692 33134720 0.000000 + . gene_id "MAP1LC3A"; transcript_id "NM_181509:uc002xap.1";
+chr20 hg19_knownGene CDS 33137782 33137833 0.000000 + 0 gene_id "MAP1LC3A"; transcript_id "NM_181509:uc002xap.1";
+chr20 hg19_knownGene exon 33137709 33137833 0.000000 + . gene_id "MAP1LC3A"; transcript_id "NM_181509:uc002xap.1";
+chr20 hg19_knownGene CDS 33147012 33147067 0.000000 + 2 gene_id "MAP1LC3A"; transcript_id "NM_181509:uc002xap.1";
+chr20 hg19_knownGene exon 33147012 33147067 0.000000 + . gene_id "MAP1LC3A"; transcript_id "NM_181509:uc002xap.1";
+chr20 hg19_knownGene CDS 33147151 33147257 0.000000 + 0 gene_id "MAP1LC3A"; transcript_id "NM_181509:uc002xap.1";
+chr20 hg19_knownGene exon 33147151 33147257 0.000000 + . gene_id "MAP1LC3A"; transcript_id "NM_181509:uc002xap.1";
+chr20 hg19_knownGene CDS 33147540 33147699 0.000000 + 1 gene_id "MAP1LC3A"; transcript_id "NM_181509:uc002xap.1";
+chr20 hg19_knownGene exon 33147540 33148149 0.000000 + . gene_id "MAP1LC3A"; transcript_id "NM_181509:uc002xap.1";
+chr20 hg19_knownGene CDS 33146673 33146712 0.000000 + 0 gene_id "MAP1LC3A"; transcript_id "NM_032514:uc002xaq.1";
+chr20 hg19_knownGene exon 33146519 33146712 0.000000 + . gene_id "MAP1LC3A"; transcript_id "NM_032514:uc002xaq.1";
+chr20 hg19_knownGene CDS 33147012 33147067 0.000000 + 2 gene_id "MAP1LC3A"; transcript_id "NM_032514:uc002xaq.1";
+chr20 hg19_knownGene exon 33147012 33147067 0.000000 + . gene_id "MAP1LC3A"; transcript_id "NM_032514:uc002xaq.1";
+chr20 hg19_knownGene CDS 33147151 33147257 0.000000 + 0 gene_id "MAP1LC3A"; transcript_id "NM_032514:uc002xaq.1";
+chr20 hg19_knownGene exon 33147151 33147257 0.000000 + . gene_id "MAP1LC3A"; transcript_id "NM_032514:uc002xaq.1";
+chr20 hg19_knownGene CDS 33147540 33147699 0.000000 + 1 gene_id "MAP1LC3A"; transcript_id "NM_032514:uc002xaq.1";
+chr20 hg19_knownGene exon 33147540 33148149 0.000000 + . gene_id "MAP1LC3A"; transcript_id "NM_032514:uc002xaq.1";
+chr20 hg19_knownGene CDS 33148673 33148783 0.000000 - 0 gene_id "PIGU"; transcript_id "NM_080476:uc002xas.3";
+chr20 hg19_knownGene exon 33148346 33148783 0.000000 - . gene_id "PIGU"; transcript_id "NM_080476:uc002xas.3";
+chr20 hg19_knownGene CDS 33162908 33163050 0.000000 - 2 gene_id "PIGU"; transcript_id "NM_080476:uc002xas.3";
+chr20 hg19_knownGene exon 33162908 33163050 0.000000 - . gene_id "PIGU"; transcript_id "NM_080476:uc002xas.3";
+chr20 hg19_knownGene CDS 33169352 33169476 0.000000 - 1 gene_id "PIGU"; transcript_id "NM_080476:uc002xas.3";
+chr20 hg19_knownGene exon 33169352 33169476 0.000000 - . gene_id "PIGU"; transcript_id "NM_080476:uc002xas.3";
+chr20 hg19_knownGene CDS 33173241 33173384 0.000000 - 1 gene_id "PIGU"; transcript_id "NM_080476:uc002xas.3";
+chr20 hg19_knownGene exon 33173241 33173384 0.000000 - . gene_id "PIGU"; transcript_id "NM_080476:uc002xas.3";
+chr20 hg19_knownGene CDS 33176257 33176411 0.000000 - 0 gene_id "PIGU"; transcript_id "NM_080476:uc002xas.3";
+chr20 hg19_knownGene exon 33176257 33176411 0.000000 - . gene_id "PIGU"; transcript_id "NM_080476:uc002xas.3";
+chr20 hg19_knownGene CDS 33203846 33203943 0.000000 - 2 gene_id "PIGU"; transcript_id "NM_080476:uc002xas.3";
+chr20 hg19_knownGene exon 33203846 33203943 0.000000 - . gene_id "PIGU"; transcript_id "NM_080476:uc002xas.3";
+chr20 hg19_knownGene CDS 33222419 33222519 0.000000 - 1 gene_id "PIGU"; transcript_id "NM_080476:uc002xas.3";
+chr20 hg19_knownGene exon 33222419 33222519 0.000000 - . gene_id "PIGU"; transcript_id "NM_080476:uc002xas.3";
+chr20 hg19_knownGene CDS 33225680 33225789 0.000000 - 0 gene_id "PIGU"; transcript_id "NM_080476:uc002xas.3";
+chr20 hg19_knownGene exon 33225680 33225789 0.000000 - . gene_id "PIGU"; transcript_id "NM_080476:uc002xas.3";
+chr20 hg19_knownGene CDS 33231968 33232030 0.000000 - 0 gene_id "PIGU"; transcript_id "NM_080476:uc002xas.3";
+chr20 hg19_knownGene exon 33231968 33232030 0.000000 - . gene_id "PIGU"; transcript_id "NM_080476:uc002xas.3";
+chr20 hg19_knownGene CDS 33233079 33233138 0.000000 - 0 gene_id "PIGU"; transcript_id "NM_080476:uc002xas.3";
+chr20 hg19_knownGene exon 33233079 33233138 0.000000 - . gene_id "PIGU"; transcript_id "NM_080476:uc002xas.3";
+chr20 hg19_knownGene CDS 33244984 33245048 0.000000 - 2 gene_id "PIGU"; transcript_id "NM_080476:uc002xas.3";
+chr20 hg19_knownGene exon 33244984 33245048 0.000000 - . gene_id "PIGU"; transcript_id "NM_080476:uc002xas.3";
+chr20 hg19_knownGene CDS 33264760 33264889 0.000000 - 0 gene_id "PIGU"; transcript_id "NM_080476:uc002xas.3";
+chr20 hg19_knownGene exon 33264760 33265089 0.000000 - . gene_id "PIGU"; transcript_id "NM_080476:uc002xas.3";
+chr20 hg19_knownGene exon 33148346 33148783 0.000000 - . gene_id "PIGU"; transcript_id "AK301900:uc010zul.2";
+chr20 hg19_knownGene CDS 33150295 33150369 0.000000 - 0 gene_id "PIGU"; transcript_id "AK301900:uc010zul.2";
+chr20 hg19_knownGene exon 33150240 33150369 0.000000 - . gene_id "PIGU"; transcript_id "AK301900:uc010zul.2";
+chr20 hg19_knownGene CDS 33162908 33163050 0.000000 - 2 gene_id "PIGU"; transcript_id "AK301900:uc010zul.2";
+chr20 hg19_knownGene exon 33162908 33163050 0.000000 - . gene_id "PIGU"; transcript_id "AK301900:uc010zul.2";
+chr20 hg19_knownGene CDS 33169352 33169476 0.000000 - 1 gene_id "PIGU"; transcript_id "AK301900:uc010zul.2";
+chr20 hg19_knownGene exon 33169352 33169476 0.000000 - . gene_id "PIGU"; transcript_id "AK301900:uc010zul.2";
+chr20 hg19_knownGene CDS 33173241 33173384 0.000000 - 1 gene_id "PIGU"; transcript_id "AK301900:uc010zul.2";
+chr20 hg19_knownGene exon 33173241 33173384 0.000000 - . gene_id "PIGU"; transcript_id "AK301900:uc010zul.2";
+chr20 hg19_knownGene CDS 33176257 33176411 0.000000 - 0 gene_id "PIGU"; transcript_id "AK301900:uc010zul.2";
+chr20 hg19_knownGene exon 33176257 33176411 0.000000 - . gene_id "PIGU"; transcript_id "AK301900:uc010zul.2";
+chr20 hg19_knownGene CDS 33203846 33203943 0.000000 - 2 gene_id "PIGU"; transcript_id "AK301900:uc010zul.2";
+chr20 hg19_knownGene exon 33203846 33203943 0.000000 - . gene_id "PIGU"; transcript_id "AK301900:uc010zul.2";
+chr20 hg19_knownGene CDS 33222419 33222519 0.000000 - 1 gene_id "PIGU"; transcript_id "AK301900:uc010zul.2";
+chr20 hg19_knownGene exon 33222419 33222519 0.000000 - . gene_id "PIGU"; transcript_id "AK301900:uc010zul.2";
+chr20 hg19_knownGene CDS 33225680 33225789 0.000000 - 0 gene_id "PIGU"; transcript_id "AK301900:uc010zul.2";
+chr20 hg19_knownGene exon 33225680 33225789 0.000000 - . gene_id "PIGU"; transcript_id "AK301900:uc010zul.2";
+chr20 hg19_knownGene CDS 33231968 33232030 0.000000 - 0 gene_id "PIGU"; transcript_id "AK301900:uc010zul.2";
+chr20 hg19_knownGene exon 33231968 33232030 0.000000 - . gene_id "PIGU"; transcript_id "AK301900:uc010zul.2";
+chr20 hg19_knownGene CDS 33233079 33233138 0.000000 - 0 gene_id "PIGU"; transcript_id "AK301900:uc010zul.2";
+chr20 hg19_knownGene exon 33233079 33233138 0.000000 - . gene_id "PIGU"; transcript_id "AK301900:uc010zul.2";
+chr20 hg19_knownGene CDS 33244984 33245048 0.000000 - 2 gene_id "PIGU"; transcript_id "AK301900:uc010zul.2";
+chr20 hg19_knownGene exon 33244984 33245048 0.000000 - . gene_id "PIGU"; transcript_id "AK301900:uc010zul.2";
+chr20 hg19_knownGene CDS 33264760 33264889 0.000000 - 0 gene_id "PIGU"; transcript_id "AK301900:uc010zul.2";
+chr20 hg19_knownGene exon 33264760 33265089 0.000000 - . gene_id "PIGU"; transcript_id "AK301900:uc010zul.2";
+chr20 hg19_knownGene CDS 33148673 33148783 0.000000 - 0 gene_id "PIGU"; transcript_id "AY339061:uc002xat.3";
+chr20 hg19_knownGene exon 33148346 33148783 0.000000 - . gene_id "PIGU"; transcript_id "AY339061:uc002xat.3";
+chr20 hg19_knownGene CDS 33162908 33163050 0.000000 - 2 gene_id "PIGU"; transcript_id "AY339061:uc002xat.3";
+chr20 hg19_knownGene exon 33162908 33163050 0.000000 - . gene_id "PIGU"; transcript_id "AY339061:uc002xat.3";
+chr20 hg19_knownGene CDS 33169352 33169476 0.000000 - 1 gene_id "PIGU"; transcript_id "AY339061:uc002xat.3";
+chr20 hg19_knownGene exon 33169352 33169476 0.000000 - . gene_id "PIGU"; transcript_id "AY339061:uc002xat.3";
+chr20 hg19_knownGene CDS 33173241 33173384 0.000000 - 1 gene_id "PIGU"; transcript_id "AY339061:uc002xat.3";
+chr20 hg19_knownGene exon 33173241 33173384 0.000000 - . gene_id "PIGU"; transcript_id "AY339061:uc002xat.3";
+chr20 hg19_knownGene CDS 33176257 33176411 0.000000 - 0 gene_id "PIGU"; transcript_id "AY339061:uc002xat.3";
+chr20 hg19_knownGene exon 33176257 33176411 0.000000 - . gene_id "PIGU"; transcript_id "AY339061:uc002xat.3";
+chr20 hg19_knownGene CDS 33203846 33203943 0.000000 - 2 gene_id "PIGU"; transcript_id "AY339061:uc002xat.3";
+chr20 hg19_knownGene exon 33203846 33203943 0.000000 - . gene_id "PIGU"; transcript_id "AY339061:uc002xat.3";
+chr20 hg19_knownGene CDS 33222419 33222519 0.000000 - 1 gene_id "PIGU"; transcript_id "AY339061:uc002xat.3";
+chr20 hg19_knownGene exon 33222419 33222519 0.000000 - . gene_id "PIGU"; transcript_id "AY339061:uc002xat.3";
+chr20 hg19_knownGene CDS 33225680 33225789 0.000000 - 0 gene_id "PIGU"; transcript_id "AY339061:uc002xat.3";
+chr20 hg19_knownGene exon 33225680 33225789 0.000000 - . gene_id "PIGU"; transcript_id "AY339061:uc002xat.3";
+chr20 hg19_knownGene CDS 33231968 33232030 0.000000 - 0 gene_id "PIGU"; transcript_id "AY339061:uc002xat.3";
+chr20 hg19_knownGene exon 33231968 33232030 0.000000 - . gene_id "PIGU"; transcript_id "AY339061:uc002xat.3";
+chr20 hg19_knownGene CDS 33244984 33245048 0.000000 - 2 gene_id "PIGU"; transcript_id "AY339061:uc002xat.3";
+chr20 hg19_knownGene exon 33244984 33245048 0.000000 - . gene_id "PIGU"; transcript_id "AY339061:uc002xat.3";
+chr20 hg19_knownGene CDS 33264760 33264889 0.000000 - 0 gene_id "PIGU"; transcript_id "AY339061:uc002xat.3";
+chr20 hg19_knownGene exon 33264760 33265089 0.000000 - . gene_id "PIGU"; transcript_id "AY339061:uc002xat.3";
+chr20 hg19_knownGene exon 33173241 33173384 0.000000 - . gene_id "PIGU"; transcript_id "AK308627:uc010gev.1";
+chr20 hg19_knownGene exon 33176257 33176411 0.000000 - . gene_id "PIGU"; transcript_id "AK308627:uc010gev.1";
+chr20 hg19_knownGene exon 33202304 33202421 0.000000 - . gene_id "PIGU"; transcript_id "AK308627:uc010gev.1";
+chr20 hg19_knownGene exon 33203846 33203943 0.000000 - . gene_id "PIGU"; transcript_id "AK308627:uc010gev.1";
+chr20 hg19_knownGene exon 33222419 33222519 0.000000 - . gene_id "PIGU"; transcript_id "AK308627:uc010gev.1";
+chr20 hg19_knownGene exon 33225680 33225789 0.000000 - . gene_id "PIGU"; transcript_id "AK308627:uc010gev.1";
+chr20 hg19_knownGene exon 33231968 33232030 0.000000 - . gene_id "PIGU"; transcript_id "AK308627:uc010gev.1";
+chr20 hg19_knownGene exon 33244984 33245048 0.000000 - . gene_id "PIGU"; transcript_id "AK308627:uc010gev.1";
+chr20 hg19_knownGene exon 33264760 33265089 0.000000 - . gene_id "PIGU"; transcript_id "AK308627:uc010gev.1";
+chr20 hg19_knownGene exon 33292148 33292316 0.000000 + . gene_id "TP53INP2"; transcript_id "NM_021202:uc002xau.1";
+chr20 hg19_knownGene exon 33293162 33293278 0.000000 + . gene_id "TP53INP2"; transcript_id "NM_021202:uc002xau.1";
+chr20 hg19_knownGene CDS 33296544 33296667 0.000000 + 0 gene_id "TP53INP2"; transcript_id "NM_021202:uc002xau.1";
+chr20 hg19_knownGene exon 33296495 33296667 0.000000 + . gene_id "TP53INP2"; transcript_id "NM_021202:uc002xau.1";
+chr20 hg19_knownGene CDS 33297040 33297328 0.000000 + 2 gene_id "TP53INP2"; transcript_id "NM_021202:uc002xau.1";
+chr20 hg19_knownGene exon 33297040 33297328 0.000000 + . gene_id "TP53INP2"; transcript_id "NM_021202:uc002xau.1";
+chr20 hg19_knownGene CDS 33297862 33298108 0.000000 + 1 gene_id "TP53INP2"; transcript_id "NM_021202:uc002xau.1";
+chr20 hg19_knownGene exon 33297862 33301237 0.000000 + . gene_id "TP53INP2"; transcript_id "NM_021202:uc002xau.1";
+chr20 hg19_knownGene exon 33299316 33301238 0.000000 + . gene_id "AL122050"; transcript_id "AL122050:uc021wcc.1";
+chr20 hg19_knownGene CDS 33326705 33326736 0.000000 - 2 gene_id "NCOA6"; transcript_id "JF707638:uc021wce.1";
+chr20 hg19_knownGene exon 33326702 33326736 0.000000 - . gene_id "NCOA6"; transcript_id "JF707638:uc021wce.1";
+chr20 hg19_knownGene CDS 33328167 33331145 0.000000 - 2 gene_id "NCOA6"; transcript_id "JF707638:uc021wce.1";
+chr20 hg19_knownGene exon 33328167 33331145 0.000000 - . gene_id "NCOA6"; transcript_id "JF707638:uc021wce.1";
+chr20 hg19_knownGene CDS 33334611 33334732 0.000000 - 1 gene_id "NCOA6"; transcript_id "JF707638:uc021wce.1";
+chr20 hg19_knownGene exon 33334611 33334732 0.000000 - . gene_id "NCOA6"; transcript_id "JF707638:uc021wce.1";
+chr20 hg19_knownGene CDS 33337206 33338322 0.000000 - 2 gene_id "NCOA6"; transcript_id "JF707638:uc021wce.1";
+chr20 hg19_knownGene exon 33337206 33338322 0.000000 - . gene_id "NCOA6"; transcript_id "JF707638:uc021wce.1";
+chr20 hg19_knownGene CDS 33342525 33342671 0.000000 - 2 gene_id "NCOA6"; transcript_id "JF707638:uc021wce.1";
+chr20 hg19_knownGene exon 33342525 33342671 0.000000 - . gene_id "NCOA6"; transcript_id "JF707638:uc021wce.1";
+chr20 hg19_knownGene CDS 33345023 33345907 0.000000 - 2 gene_id "NCOA6"; transcript_id "JF707638:uc021wce.1";
+chr20 hg19_knownGene exon 33345023 33345907 0.000000 - . gene_id "NCOA6"; transcript_id "JF707638:uc021wce.1";
+chr20 hg19_knownGene CDS 33346608 33346736 0.000000 - 2 gene_id "NCOA6"; transcript_id "JF707638:uc021wce.1";
+chr20 hg19_knownGene exon 33346608 33346736 0.000000 - . gene_id "NCOA6"; transcript_id "JF707638:uc021wce.1";
+chr20 hg19_knownGene CDS 33356267 33356389 0.000000 - 2 gene_id "NCOA6"; transcript_id "JF707638:uc021wce.1";
+chr20 hg19_knownGene exon 33356267 33356389 0.000000 - . gene_id "NCOA6"; transcript_id "JF707638:uc021wce.1";
+chr20 hg19_knownGene CDS 33364096 33364251 0.000000 - 2 gene_id "NCOA6"; transcript_id "JF707638:uc021wce.1";
+chr20 hg19_knownGene exon 33364096 33364251 0.000000 - . gene_id "NCOA6"; transcript_id "JF707638:uc021wce.1";
+chr20 hg19_knownGene CDS 33369924 33370158 0.000000 - 0 gene_id "NCOA6"; transcript_id "JF707638:uc021wce.1";
+chr20 hg19_knownGene exon 33369924 33370207 0.000000 - . gene_id "NCOA6"; transcript_id "JF707638:uc021wce.1";
+chr20 hg19_knownGene CDS 33326705 33326736 0.000000 - 2 gene_id "NCOA6"; transcript_id "JF707639:uc021wcf.1";
+chr20 hg19_knownGene exon 33326702 33326736 0.000000 - . gene_id "NCOA6"; transcript_id "JF707639:uc021wcf.1";
+chr20 hg19_knownGene CDS 33334611 33334732 0.000000 - 1 gene_id "NCOA6"; transcript_id "JF707639:uc021wcf.1";
+chr20 hg19_knownGene exon 33334611 33334732 0.000000 - . gene_id "NCOA6"; transcript_id "JF707639:uc021wcf.1";
+chr20 hg19_knownGene CDS 33337206 33338322 0.000000 - 2 gene_id "NCOA6"; transcript_id "JF707639:uc021wcf.1";
+chr20 hg19_knownGene exon 33337206 33338322 0.000000 - . gene_id "NCOA6"; transcript_id "JF707639:uc021wcf.1";
+chr20 hg19_knownGene CDS 33342525 33342671 0.000000 - 2 gene_id "NCOA6"; transcript_id "JF707639:uc021wcf.1";
+chr20 hg19_knownGene exon 33342525 33342671 0.000000 - . gene_id "NCOA6"; transcript_id "JF707639:uc021wcf.1";
+chr20 hg19_knownGene CDS 33345023 33345907 0.000000 - 2 gene_id "NCOA6"; transcript_id "JF707639:uc021wcf.1";
+chr20 hg19_knownGene exon 33345023 33345907 0.000000 - . gene_id "NCOA6"; transcript_id "JF707639:uc021wcf.1";
+chr20 hg19_knownGene CDS 33346608 33346736 0.000000 - 2 gene_id "NCOA6"; transcript_id "JF707639:uc021wcf.1";
+chr20 hg19_knownGene exon 33346608 33346736 0.000000 - . gene_id "NCOA6"; transcript_id "JF707639:uc021wcf.1";
+chr20 hg19_knownGene CDS 33356267 33356389 0.000000 - 2 gene_id "NCOA6"; transcript_id "JF707639:uc021wcf.1";
+chr20 hg19_knownGene exon 33356267 33356389 0.000000 - . gene_id "NCOA6"; transcript_id "JF707639:uc021wcf.1";
+chr20 hg19_knownGene CDS 33364096 33364251 0.000000 - 2 gene_id "NCOA6"; transcript_id "JF707639:uc021wcf.1";
+chr20 hg19_knownGene exon 33364096 33364251 0.000000 - . gene_id "NCOA6"; transcript_id "JF707639:uc021wcf.1";
+chr20 hg19_knownGene CDS 33369924 33370158 0.000000 - 0 gene_id "NCOA6"; transcript_id "JF707639:uc021wcf.1";
+chr20 hg19_knownGene exon 33369924 33370207 0.000000 - . gene_id "NCOA6"; transcript_id "JF707639:uc021wcf.1";
+chr20 hg19_knownGene CDS 33345027 33345907 0.000000 - 2 gene_id "NCOA6"; transcript_id "BC114613:uc010gew.1";
+chr20 hg19_knownGene exon 33345023 33345907 0.000000 - . gene_id "NCOA6"; transcript_id "BC114613:uc010gew.1";
+chr20 hg19_knownGene CDS 33356267 33356389 0.000000 - 2 gene_id "NCOA6"; transcript_id "BC114613:uc010gew.1";
+chr20 hg19_knownGene exon 33356267 33356389 0.000000 - . gene_id "NCOA6"; transcript_id "BC114613:uc010gew.1";
+chr20 hg19_knownGene CDS 33364096 33364251 0.000000 - 2 gene_id "NCOA6"; transcript_id "BC114613:uc010gew.1";
+chr20 hg19_knownGene exon 33364096 33364251 0.000000 - . gene_id "NCOA6"; transcript_id "BC114613:uc010gew.1";
+chr20 hg19_knownGene CDS 33369924 33370158 0.000000 - 0 gene_id "NCOA6"; transcript_id "BC114613:uc010gew.1";
+chr20 hg19_knownGene exon 33369924 33370207 0.000000 - . gene_id "NCOA6"; transcript_id "BC114613:uc010gew.1";
+chr20 hg19_knownGene exon 33380253 33380366 0.000000 - . gene_id "NCOA6"; transcript_id "BC114613:uc010gew.1";
+chr20 hg19_knownGene CDS 33303129 33303169 0.000000 - 2 gene_id "NCOA6"; transcript_id "AF208227:uc002xav.3";
+chr20 hg19_knownGene exon 33302578 33303169 0.000000 - . gene_id "NCOA6"; transcript_id "AF208227:uc002xav.3";
+chr20 hg19_knownGene CDS 33315063 33315211 0.000000 - 1 gene_id "NCOA6"; transcript_id "AF208227:uc002xav.3";
+chr20 hg19_knownGene exon 33315063 33315211 0.000000 - . gene_id "NCOA6"; transcript_id "AF208227:uc002xav.3";
+chr20 hg19_knownGene CDS 33320363 33320399 0.000000 - 2 gene_id "NCOA6"; transcript_id "AF208227:uc002xav.3";
+chr20 hg19_knownGene exon 33320363 33320399 0.000000 - . gene_id "NCOA6"; transcript_id "AF208227:uc002xav.3";
+chr20 hg19_knownGene CDS 33324494 33324562 0.000000 - 2 gene_id "NCOA6"; transcript_id "AF208227:uc002xav.3";
+chr20 hg19_knownGene exon 33324494 33324562 0.000000 - . gene_id "NCOA6"; transcript_id "AF208227:uc002xav.3";
+chr20 hg19_knownGene CDS 33328167 33331145 0.000000 - 2 gene_id "NCOA6"; transcript_id "AF208227:uc002xav.3";
+chr20 hg19_knownGene exon 33328167 33331145 0.000000 - . gene_id "NCOA6"; transcript_id "AF208227:uc002xav.3";
+chr20 hg19_knownGene CDS 33334611 33334732 0.000000 - 1 gene_id "NCOA6"; transcript_id "AF208227:uc002xav.3";
+chr20 hg19_knownGene exon 33334611 33334732 0.000000 - . gene_id "NCOA6"; transcript_id "AF208227:uc002xav.3";
+chr20 hg19_knownGene CDS 33337206 33338322 0.000000 - 2 gene_id "NCOA6"; transcript_id "AF208227:uc002xav.3";
+chr20 hg19_knownGene exon 33337206 33338322 0.000000 - . gene_id "NCOA6"; transcript_id "AF208227:uc002xav.3";
+chr20 hg19_knownGene CDS 33342525 33342671 0.000000 - 2 gene_id "NCOA6"; transcript_id "AF208227:uc002xav.3";
+chr20 hg19_knownGene exon 33342525 33342671 0.000000 - . gene_id "NCOA6"; transcript_id "AF208227:uc002xav.3";
+chr20 hg19_knownGene CDS 33345023 33345907 0.000000 - 2 gene_id "NCOA6"; transcript_id "AF208227:uc002xav.3";
+chr20 hg19_knownGene exon 33345023 33345907 0.000000 - . gene_id "NCOA6"; transcript_id "AF208227:uc002xav.3";
+chr20 hg19_knownGene CDS 33346608 33346736 0.000000 - 2 gene_id "NCOA6"; transcript_id "AF208227:uc002xav.3";
+chr20 hg19_knownGene exon 33346608 33346736 0.000000 - . gene_id "NCOA6"; transcript_id "AF208227:uc002xav.3";
+chr20 hg19_knownGene CDS 33356267 33356389 0.000000 - 2 gene_id "NCOA6"; transcript_id "AF208227:uc002xav.3";
+chr20 hg19_knownGene exon 33356267 33356389 0.000000 - . gene_id "NCOA6"; transcript_id "AF208227:uc002xav.3";
+chr20 hg19_knownGene CDS 33364096 33364251 0.000000 - 2 gene_id "NCOA6"; transcript_id "AF208227:uc002xav.3";
+chr20 hg19_knownGene exon 33364096 33364251 0.000000 - . gene_id "NCOA6"; transcript_id "AF208227:uc002xav.3";
+chr20 hg19_knownGene CDS 33369924 33370158 0.000000 - 0 gene_id "NCOA6"; transcript_id "AF208227:uc002xav.3";
+chr20 hg19_knownGene exon 33369924 33370207 0.000000 - . gene_id "NCOA6"; transcript_id "AF208227:uc002xav.3";
+chr20 hg19_knownGene exon 33380253 33380366 0.000000 - . gene_id "NCOA6"; transcript_id "AF208227:uc002xav.3";
+chr20 hg19_knownGene exon 33397256 33397325 0.000000 - . gene_id "NCOA6"; transcript_id "AF208227:uc002xav.3";
+chr20 hg19_knownGene exon 33407105 33409442 0.000000 - . gene_id "NCOA6"; transcript_id "AF208227:uc002xav.3";
+chr20 hg19_knownGene CDS 33303129 33303169 0.000000 - 2 gene_id "NCOA6"; transcript_id "NM_014071:uc002xaw.3";
+chr20 hg19_knownGene exon 33302578 33303169 0.000000 - . gene_id "NCOA6"; transcript_id "NM_014071:uc002xaw.3";
+chr20 hg19_knownGene CDS 33315063 33315211 0.000000 - 1 gene_id "NCOA6"; transcript_id "NM_014071:uc002xaw.3";
+chr20 hg19_knownGene exon 33315063 33315211 0.000000 - . gene_id "NCOA6"; transcript_id "NM_014071:uc002xaw.3";
+chr20 hg19_knownGene CDS 33320363 33320399 0.000000 - 2 gene_id "NCOA6"; transcript_id "NM_014071:uc002xaw.3";
+chr20 hg19_knownGene exon 33320363 33320399 0.000000 - . gene_id "NCOA6"; transcript_id "NM_014071:uc002xaw.3";
+chr20 hg19_knownGene CDS 33324494 33324562 0.000000 - 2 gene_id "NCOA6"; transcript_id "NM_014071:uc002xaw.3";
+chr20 hg19_knownGene exon 33324494 33324562 0.000000 - . gene_id "NCOA6"; transcript_id "NM_014071:uc002xaw.3";
+chr20 hg19_knownGene CDS 33328167 33331145 0.000000 - 2 gene_id "NCOA6"; transcript_id "NM_014071:uc002xaw.3";
+chr20 hg19_knownGene exon 33328167 33331145 0.000000 - . gene_id "NCOA6"; transcript_id "NM_014071:uc002xaw.3";
+chr20 hg19_knownGene CDS 33334611 33334732 0.000000 - 1 gene_id "NCOA6"; transcript_id "NM_014071:uc002xaw.3";
+chr20 hg19_knownGene exon 33334611 33334732 0.000000 - . gene_id "NCOA6"; transcript_id "NM_014071:uc002xaw.3";
+chr20 hg19_knownGene CDS 33337206 33338322 0.000000 - 2 gene_id "NCOA6"; transcript_id "NM_014071:uc002xaw.3";
+chr20 hg19_knownGene exon 33337206 33338322 0.000000 - . gene_id "NCOA6"; transcript_id "NM_014071:uc002xaw.3";
+chr20 hg19_knownGene CDS 33342525 33342671 0.000000 - 2 gene_id "NCOA6"; transcript_id "NM_014071:uc002xaw.3";
+chr20 hg19_knownGene exon 33342525 33342671 0.000000 - . gene_id "NCOA6"; transcript_id "NM_014071:uc002xaw.3";
+chr20 hg19_knownGene CDS 33345023 33345907 0.000000 - 2 gene_id "NCOA6"; transcript_id "NM_014071:uc002xaw.3";
+chr20 hg19_knownGene exon 33345023 33345907 0.000000 - . gene_id "NCOA6"; transcript_id "NM_014071:uc002xaw.3";
+chr20 hg19_knownGene CDS 33346608 33346736 0.000000 - 2 gene_id "NCOA6"; transcript_id "NM_014071:uc002xaw.3";
+chr20 hg19_knownGene exon 33346608 33346736 0.000000 - . gene_id "NCOA6"; transcript_id "NM_014071:uc002xaw.3";
+chr20 hg19_knownGene CDS 33356267 33356389 0.000000 - 2 gene_id "NCOA6"; transcript_id "NM_014071:uc002xaw.3";
+chr20 hg19_knownGene exon 33356267 33356389 0.000000 - . gene_id "NCOA6"; transcript_id "NM_014071:uc002xaw.3";
+chr20 hg19_knownGene CDS 33364096 33364251 0.000000 - 2 gene_id "NCOA6"; transcript_id "NM_014071:uc002xaw.3";
+chr20 hg19_knownGene exon 33364096 33364251 0.000000 - . gene_id "NCOA6"; transcript_id "NM_014071:uc002xaw.3";
+chr20 hg19_knownGene CDS 33369924 33370158 0.000000 - 0 gene_id "NCOA6"; transcript_id "NM_014071:uc002xaw.3";
+chr20 hg19_knownGene exon 33369924 33370207 0.000000 - . gene_id "NCOA6"; transcript_id "NM_014071:uc002xaw.3";
+chr20 hg19_knownGene exon 33380253 33380366 0.000000 - . gene_id "NCOA6"; transcript_id "NM_014071:uc002xaw.3";
+chr20 hg19_knownGene exon 33413275 33413433 0.000000 - . gene_id "NCOA6"; transcript_id "NM_014071:uc002xaw.3";
+chr20 hg19_knownGene CDS 33303129 33303169 0.000000 - 2 gene_id "NCOA6"; transcript_id "NM_001242539:uc021wcd.1";
+chr20 hg19_knownGene exon 33302578 33303169 0.000000 - . gene_id "NCOA6"; transcript_id "NM_001242539:uc021wcd.1";
+chr20 hg19_knownGene CDS 33315063 33315211 0.000000 - 1 gene_id "NCOA6"; transcript_id "NM_001242539:uc021wcd.1";
+chr20 hg19_knownGene exon 33315063 33315211 0.000000 - . gene_id "NCOA6"; transcript_id "NM_001242539:uc021wcd.1";
+chr20 hg19_knownGene CDS 33320363 33320399 0.000000 - 2 gene_id "NCOA6"; transcript_id "NM_001242539:uc021wcd.1";
+chr20 hg19_knownGene exon 33320363 33320399 0.000000 - . gene_id "NCOA6"; transcript_id "NM_001242539:uc021wcd.1";
+chr20 hg19_knownGene CDS 33324494 33324562 0.000000 - 2 gene_id "NCOA6"; transcript_id "NM_001242539:uc021wcd.1";
+chr20 hg19_knownGene exon 33324494 33324562 0.000000 - . gene_id "NCOA6"; transcript_id "NM_001242539:uc021wcd.1";
+chr20 hg19_knownGene CDS 33334611 33334732 0.000000 - 1 gene_id "NCOA6"; transcript_id "NM_001242539:uc021wcd.1";
+chr20 hg19_knownGene exon 33334611 33334732 0.000000 - . gene_id "NCOA6"; transcript_id "NM_001242539:uc021wcd.1";
+chr20 hg19_knownGene CDS 33337206 33338322 0.000000 - 2 gene_id "NCOA6"; transcript_id "NM_001242539:uc021wcd.1";
+chr20 hg19_knownGene exon 33337206 33338322 0.000000 - . gene_id "NCOA6"; transcript_id "NM_001242539:uc021wcd.1";
+chr20 hg19_knownGene CDS 33342525 33342671 0.000000 - 2 gene_id "NCOA6"; transcript_id "NM_001242539:uc021wcd.1";
+chr20 hg19_knownGene exon 33342525 33342671 0.000000 - . gene_id "NCOA6"; transcript_id "NM_001242539:uc021wcd.1";
+chr20 hg19_knownGene CDS 33345023 33345907 0.000000 - 2 gene_id "NCOA6"; transcript_id "NM_001242539:uc021wcd.1";
+chr20 hg19_knownGene exon 33345023 33345907 0.000000 - . gene_id "NCOA6"; transcript_id "NM_001242539:uc021wcd.1";
+chr20 hg19_knownGene CDS 33346608 33346736 0.000000 - 2 gene_id "NCOA6"; transcript_id "NM_001242539:uc021wcd.1";
+chr20 hg19_knownGene exon 33346608 33346736 0.000000 - . gene_id "NCOA6"; transcript_id "NM_001242539:uc021wcd.1";
+chr20 hg19_knownGene CDS 33356267 33356389 0.000000 - 2 gene_id "NCOA6"; transcript_id "NM_001242539:uc021wcd.1";
+chr20 hg19_knownGene exon 33356267 33356389 0.000000 - . gene_id "NCOA6"; transcript_id "NM_001242539:uc021wcd.1";
+chr20 hg19_knownGene CDS 33364096 33364251 0.000000 - 2 gene_id "NCOA6"; transcript_id "NM_001242539:uc021wcd.1";
+chr20 hg19_knownGene exon 33364096 33364251 0.000000 - . gene_id "NCOA6"; transcript_id "NM_001242539:uc021wcd.1";
+chr20 hg19_knownGene CDS 33369924 33370158 0.000000 - 0 gene_id "NCOA6"; transcript_id "NM_001242539:uc021wcd.1";
+chr20 hg19_knownGene exon 33369924 33370207 0.000000 - . gene_id "NCOA6"; transcript_id "NM_001242539:uc021wcd.1";
+chr20 hg19_knownGene exon 33380253 33380366 0.000000 - . gene_id "NCOA6"; transcript_id "NM_001242539:uc021wcd.1";
+chr20 hg19_knownGene exon 33413275 33413433 0.000000 - . gene_id "NCOA6"; transcript_id "NM_001242539:uc021wcd.1";
+chr20 hg19_knownGene exon 33421378 33422265 0.000000 - . gene_id "HMGB3P1"; transcript_id "NR_002165:uc002xax.3";
+chr20 hg19_knownGene exon 33432523 33433294 0.000000 - . gene_id "GGT7"; transcript_id "U06680:uc010gex.3";
+chr20 hg19_knownGene exon 33437764 33437863 0.000000 - . gene_id "GGT7"; transcript_id "U06680:uc010gex.3";
+chr20 hg19_knownGene exon 33438585 33438720 0.000000 - . gene_id "GGT7"; transcript_id "U06680:uc010gex.3";
+chr20 hg19_knownGene exon 33439034 33439171 0.000000 - . gene_id "GGT7"; transcript_id "U06680:uc010gex.3";
+chr20 hg19_knownGene CDS 33433134 33433294 0.000000 - 2 gene_id "GGT7"; transcript_id "NM_178026:uc002xay.3";
+chr20 hg19_knownGene exon 33432523 33433294 0.000000 - . gene_id "GGT7"; transcript_id "NM_178026:uc002xay.3";
+chr20 hg19_knownGene CDS 33437764 33437863 0.000000 - 0 gene_id "GGT7"; transcript_id "NM_178026:uc002xay.3";
+chr20 hg19_knownGene exon 33437764 33437863 0.000000 - . gene_id "GGT7"; transcript_id "NM_178026:uc002xay.3";
+chr20 hg19_knownGene CDS 33439034 33439171 0.000000 - 0 gene_id "GGT7"; transcript_id "NM_178026:uc002xay.3";
+chr20 hg19_knownGene exon 33439034 33439171 0.000000 - . gene_id "GGT7"; transcript_id "NM_178026:uc002xay.3";
+chr20 hg19_knownGene CDS 33439958 33440075 0.000000 - 1 gene_id "GGT7"; transcript_id "NM_178026:uc002xay.3";
+chr20 hg19_knownGene exon 33439958 33440075 0.000000 - . gene_id "GGT7"; transcript_id "NM_178026:uc002xay.3";
+chr20 hg19_knownGene CDS 33440192 33440341 0.000000 - 1 gene_id "GGT7"; transcript_id "NM_178026:uc002xay.3";
+chr20 hg19_knownGene exon 33440192 33440341 0.000000 - . gene_id "GGT7"; transcript_id "NM_178026:uc002xay.3";
+chr20 hg19_knownGene CDS 33442334 33442422 0.000000 - 0 gene_id "GGT7"; transcript_id "NM_178026:uc002xay.3";
+chr20 hg19_knownGene exon 33442334 33442422 0.000000 - . gene_id "GGT7"; transcript_id "NM_178026:uc002xay.3";
+chr20 hg19_knownGene CDS 33442599 33442726 0.000000 - 2 gene_id "GGT7"; transcript_id "NM_178026:uc002xay.3";
+chr20 hg19_knownGene exon 33442599 33442726 0.000000 - . gene_id "GGT7"; transcript_id "NM_178026:uc002xay.3";
+chr20 hg19_knownGene CDS 33444609 33444696 0.000000 - 0 gene_id "GGT7"; transcript_id "NM_178026:uc002xay.3";
+chr20 hg19_knownGene exon 33444609 33444696 0.000000 - . gene_id "GGT7"; transcript_id "NM_178026:uc002xay.3";
+chr20 hg19_knownGene CDS 33447246 33447442 0.000000 - 2 gene_id "GGT7"; transcript_id "NM_178026:uc002xay.3";
+chr20 hg19_knownGene exon 33447246 33447442 0.000000 - . gene_id "GGT7"; transcript_id "NM_178026:uc002xay.3";
+chr20 hg19_knownGene CDS 33447772 33447845 0.000000 - 1 gene_id "GGT7"; transcript_id "NM_178026:uc002xay.3";
+chr20 hg19_knownGene exon 33447772 33447845 0.000000 - . gene_id "GGT7"; transcript_id "NM_178026:uc002xay.3";
+chr20 hg19_knownGene CDS 33448057 33448124 0.000000 - 0 gene_id "GGT7"; transcript_id "NM_178026:uc002xay.3";
+chr20 hg19_knownGene exon 33448057 33448124 0.000000 - . gene_id "GGT7"; transcript_id "NM_178026:uc002xay.3";
+chr20 hg19_knownGene CDS 33449248 33449365 0.000000 - 1 gene_id "GGT7"; transcript_id "NM_178026:uc002xay.3";
+chr20 hg19_knownGene exon 33449248 33449365 0.000000 - . gene_id "GGT7"; transcript_id "NM_178026:uc002xay.3";
+chr20 hg19_knownGene CDS 33450617 33450768 0.000000 - 0 gene_id "GGT7"; transcript_id "NM_178026:uc002xay.3";
+chr20 hg19_knownGene exon 33450617 33450768 0.000000 - . gene_id "GGT7"; transcript_id "NM_178026:uc002xay.3";
+chr20 hg19_knownGene CDS 33451116 33451351 0.000000 - 2 gene_id "GGT7"; transcript_id "NM_178026:uc002xay.3";
+chr20 hg19_knownGene exon 33451116 33451351 0.000000 - . gene_id "GGT7"; transcript_id "NM_178026:uc002xay.3";
+chr20 hg19_knownGene CDS 33460450 33460618 0.000000 - 0 gene_id "GGT7"; transcript_id "NM_178026:uc002xay.3";
+chr20 hg19_knownGene exon 33460450 33460661 0.000000 - . gene_id "GGT7"; transcript_id "NM_178026:uc002xay.3";
+chr20 hg19_knownGene CDS 33437768 33437863 0.000000 - 0 gene_id "GGT7"; transcript_id "BC040030:uc002xaz.1";
+chr20 hg19_knownGene exon 33437764 33437863 0.000000 - . gene_id "GGT7"; transcript_id "BC040030:uc002xaz.1";
+chr20 hg19_knownGene CDS 33439034 33439171 0.000000 - 0 gene_id "GGT7"; transcript_id "BC040030:uc002xaz.1";
+chr20 hg19_knownGene exon 33439034 33439171 0.000000 - . gene_id "GGT7"; transcript_id "BC040030:uc002xaz.1";
+chr20 hg19_knownGene CDS 33439958 33440075 0.000000 - 1 gene_id "GGT7"; transcript_id "BC040030:uc002xaz.1";
+chr20 hg19_knownGene exon 33439958 33440075 0.000000 - . gene_id "GGT7"; transcript_id "BC040030:uc002xaz.1";
+chr20 hg19_knownGene CDS 33440192 33440341 0.000000 - 1 gene_id "GGT7"; transcript_id "BC040030:uc002xaz.1";
+chr20 hg19_knownGene exon 33440192 33440341 0.000000 - . gene_id "GGT7"; transcript_id "BC040030:uc002xaz.1";
+chr20 hg19_knownGene CDS 33442334 33442422 0.000000 - 0 gene_id "GGT7"; transcript_id "BC040030:uc002xaz.1";
+chr20 hg19_knownGene exon 33442334 33442422 0.000000 - . gene_id "GGT7"; transcript_id "BC040030:uc002xaz.1";
+chr20 hg19_knownGene CDS 33442599 33442726 0.000000 - 2 gene_id "GGT7"; transcript_id "BC040030:uc002xaz.1";
+chr20 hg19_knownGene exon 33442599 33442726 0.000000 - . gene_id "GGT7"; transcript_id "BC040030:uc002xaz.1";
+chr20 hg19_knownGene CDS 33444609 33444696 0.000000 - 0 gene_id "GGT7"; transcript_id "BC040030:uc002xaz.1";
+chr20 hg19_knownGene exon 33444609 33444696 0.000000 - . gene_id "GGT7"; transcript_id "BC040030:uc002xaz.1";
+chr20 hg19_knownGene CDS 33447246 33447442 0.000000 - 2 gene_id "GGT7"; transcript_id "BC040030:uc002xaz.1";
+chr20 hg19_knownGene exon 33447246 33447442 0.000000 - . gene_id "GGT7"; transcript_id "BC040030:uc002xaz.1";
+chr20 hg19_knownGene CDS 33447772 33447845 0.000000 - 1 gene_id "GGT7"; transcript_id "BC040030:uc002xaz.1";
+chr20 hg19_knownGene exon 33447772 33447845 0.000000 - . gene_id "GGT7"; transcript_id "BC040030:uc002xaz.1";
+chr20 hg19_knownGene CDS 33448057 33448124 0.000000 - 0 gene_id "GGT7"; transcript_id "BC040030:uc002xaz.1";
+chr20 hg19_knownGene exon 33448057 33448124 0.000000 - . gene_id "GGT7"; transcript_id "BC040030:uc002xaz.1";
+chr20 hg19_knownGene CDS 33449248 33449365 0.000000 - 1 gene_id "GGT7"; transcript_id "BC040030:uc002xaz.1";
+chr20 hg19_knownGene exon 33449248 33449365 0.000000 - . gene_id "GGT7"; transcript_id "BC040030:uc002xaz.1";
+chr20 hg19_knownGene CDS 33450617 33450768 0.000000 - 0 gene_id "GGT7"; transcript_id "BC040030:uc002xaz.1";
+chr20 hg19_knownGene exon 33450617 33450768 0.000000 - . gene_id "GGT7"; transcript_id "BC040030:uc002xaz.1";
+chr20 hg19_knownGene CDS 33451116 33451351 0.000000 - 2 gene_id "GGT7"; transcript_id "BC040030:uc002xaz.1";
+chr20 hg19_knownGene exon 33451116 33451351 0.000000 - . gene_id "GGT7"; transcript_id "BC040030:uc002xaz.1";
+chr20 hg19_knownGene CDS 33451483 33451533 0.000000 - 2 gene_id "GGT7"; transcript_id "BC040030:uc002xaz.1";
+chr20 hg19_knownGene exon 33451483 33451533 0.000000 - . gene_id "GGT7"; transcript_id "BC040030:uc002xaz.1";
+chr20 hg19_knownGene CDS 33460450 33460618 0.000000 - 0 gene_id "GGT7"; transcript_id "BC040030:uc002xaz.1";
+chr20 hg19_knownGene exon 33460450 33460661 0.000000 - . gene_id "GGT7"; transcript_id "BC040030:uc002xaz.1";
+chr20 hg19_knownGene CDS 33449170 33449365 0.000000 - 1 gene_id "GGT7"; transcript_id "AY138815:uc002xba.1";
+chr20 hg19_knownGene exon 33447246 33449365 0.000000 - . gene_id "GGT7"; transcript_id "AY138815:uc002xba.1";
+chr20 hg19_knownGene CDS 33450617 33450768 0.000000 - 0 gene_id "GGT7"; transcript_id "AY138815:uc002xba.1";
+chr20 hg19_knownGene exon 33450617 33450768 0.000000 - . gene_id "GGT7"; transcript_id "AY138815:uc002xba.1";
+chr20 hg19_knownGene CDS 33451116 33451351 0.000000 - 2 gene_id "GGT7"; transcript_id "AY138815:uc002xba.1";
+chr20 hg19_knownGene exon 33451116 33451351 0.000000 - . gene_id "GGT7"; transcript_id "AY138815:uc002xba.1";
+chr20 hg19_knownGene CDS 33460450 33460618 0.000000 - 0 gene_id "GGT7"; transcript_id "AY138815:uc002xba.1";
+chr20 hg19_knownGene exon 33460450 33460661 0.000000 - . gene_id "GGT7"; transcript_id "AY138815:uc002xba.1";
+chr20 hg19_knownGene exon 33464328 33464626 0.000000 + . gene_id "ACSS2"; transcript_id "AK293634:uc010zum.1";
+chr20 hg19_knownGene exon 33470597 33470792 0.000000 + . gene_id "ACSS2"; transcript_id "AK293634:uc010zum.1";
+chr20 hg19_knownGene exon 33511126 33511234 0.000000 + . gene_id "ACSS2"; transcript_id "AK293634:uc010zum.1";
+chr20 hg19_knownGene exon 33513501 33513569 0.000000 + . gene_id "ACSS2"; transcript_id "AK293634:uc010zum.1";
+chr20 hg19_knownGene exon 33513908 33514084 0.000000 + . gene_id "ACSS2"; transcript_id "AK293634:uc010zum.1";
+chr20 hg19_knownGene exon 33514680 33514754 0.000000 + . gene_id "ACSS2"; transcript_id "AK293634:uc010zum.1";
+chr20 hg19_knownGene exon 33462766 33462940 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene CDS 33470704 33470792 0.000000 + 0 gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene exon 33470597 33470792 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene CDS 33500899 33500990 0.000000 + 1 gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene exon 33500899 33500990 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene CDS 33501196 33501299 0.000000 + 2 gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene exon 33501196 33501299 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene CDS 33501556 33501628 0.000000 + 0 gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene exon 33501556 33501628 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene CDS 33501899 33501974 0.000000 + 2 gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene exon 33501899 33501974 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene CDS 33502126 33502240 0.000000 + 1 gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene exon 33502126 33502240 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene CDS 33507238 33507375 0.000000 + 0 gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene exon 33507238 33507375 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene CDS 33508342 33508512 0.000000 + 0 gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene exon 33508342 33508512 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene CDS 33508809 33508942 0.000000 + 0 gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene exon 33508809 33508942 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene CDS 33509133 33509265 0.000000 + 1 gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene exon 33509133 33509265 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene CDS 33509347 33509403 0.000000 + 0 gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene exon 33509347 33509403 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene CDS 33509589 33509669 0.000000 + 0 gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene exon 33509589 33509669 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene CDS 33511126 33511234 0.000000 + 0 gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene exon 33511126 33511234 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene CDS 33513501 33513569 0.000000 + 2 gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene exon 33513501 33513569 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene CDS 33513908 33514084 0.000000 + 2 gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene exon 33513908 33514084 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene CDS 33514680 33514754 0.000000 + 2 gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene exon 33514680 33514754 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene CDS 33514890 33515014 0.000000 + 2 gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene exon 33514890 33515769 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001242393:uc002xbc.2";
+chr20 hg19_knownGene CDS 33464449 33464626 0.000000 + 0 gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene exon 33464328 33464626 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene CDS 33470597 33470792 0.000000 + 2 gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene exon 33470597 33470792 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene CDS 33500899 33500990 0.000000 + 1 gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene exon 33500899 33500990 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene CDS 33501196 33501299 0.000000 + 2 gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene exon 33501196 33501299 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene CDS 33501556 33501628 0.000000 + 0 gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene exon 33501556 33501628 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene CDS 33501899 33501974 0.000000 + 2 gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene exon 33501899 33501974 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene CDS 33502126 33502240 0.000000 + 1 gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene exon 33502126 33502240 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene CDS 33503021 33503059 0.000000 + 0 gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene exon 33503021 33503059 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene CDS 33507238 33507375 0.000000 + 0 gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene exon 33507238 33507375 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene CDS 33508342 33508512 0.000000 + 0 gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene exon 33508342 33508512 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene CDS 33508809 33508942 0.000000 + 0 gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene exon 33508809 33508942 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene CDS 33509133 33509265 0.000000 + 1 gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene exon 33509133 33509265 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene CDS 33509347 33509403 0.000000 + 0 gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene exon 33509347 33509403 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene CDS 33509589 33509669 0.000000 + 0 gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene exon 33509589 33509669 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene CDS 33511126 33511234 0.000000 + 0 gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene exon 33511126 33511234 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene CDS 33513501 33513569 0.000000 + 2 gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene exon 33513501 33513569 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene CDS 33513908 33514084 0.000000 + 2 gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene exon 33513908 33514084 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene CDS 33514680 33514754 0.000000 + 2 gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene exon 33514680 33514754 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene CDS 33514890 33515014 0.000000 + 2 gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene exon 33514890 33515769 0.000000 + . gene_id "ACSS2"; transcript_id "NM_001076552:uc010gey.2";
+chr20 hg19_knownGene CDS 33464449 33464626 0.000000 + 0 gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene exon 33464328 33464626 0.000000 + . gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene CDS 33470597 33470792 0.000000 + 2 gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene exon 33470597 33470792 0.000000 + . gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene CDS 33500899 33500990 0.000000 + 1 gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene exon 33500899 33500990 0.000000 + . gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene CDS 33501196 33501299 0.000000 + 2 gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene exon 33501196 33501299 0.000000 + . gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene CDS 33501556 33501628 0.000000 + 0 gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene exon 33501556 33501628 0.000000 + . gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene CDS 33501899 33501974 0.000000 + 2 gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene exon 33501899 33501974 0.000000 + . gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene CDS 33502126 33502240 0.000000 + 1 gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene exon 33502126 33502240 0.000000 + . gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene CDS 33507238 33507375 0.000000 + 0 gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene exon 33507238 33507375 0.000000 + . gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene CDS 33508342 33508512 0.000000 + 0 gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene exon 33508342 33508512 0.000000 + . gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene CDS 33508809 33508942 0.000000 + 0 gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene exon 33508809 33508942 0.000000 + . gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene CDS 33509133 33509265 0.000000 + 1 gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene exon 33509133 33509265 0.000000 + . gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene CDS 33509347 33509403 0.000000 + 0 gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene exon 33509347 33509403 0.000000 + . gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene CDS 33509589 33509669 0.000000 + 0 gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene exon 33509589 33509669 0.000000 + . gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene CDS 33511126 33511234 0.000000 + 0 gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene exon 33511126 33511234 0.000000 + . gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene CDS 33513501 33513569 0.000000 + 2 gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene exon 33513501 33513569 0.000000 + . gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene CDS 33513908 33514084 0.000000 + 2 gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene exon 33513908 33514084 0.000000 + . gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene CDS 33514680 33514754 0.000000 + 2 gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene exon 33514680 33514754 0.000000 + . gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene CDS 33514890 33515014 0.000000 + 2 gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene exon 33514890 33515769 0.000000 + . gene_id "ACSS2"; transcript_id "NM_018677:uc002xbd.2";
+chr20 hg19_knownGene exon 33464328 33464626 0.000000 + . gene_id "ACSS2"; transcript_id "AK098026:uc002xbe.2";
+chr20 hg19_knownGene exon 33470597 33470792 0.000000 + . gene_id "ACSS2"; transcript_id "AK098026:uc002xbe.2";
+chr20 hg19_knownGene CDS 33507280 33507375 0.000000 + 0 gene_id "ACSS2"; transcript_id "AK098026:uc002xbe.2";
+chr20 hg19_knownGene exon 33507238 33507375 0.000000 + . gene_id "ACSS2"; transcript_id "AK098026:uc002xbe.2";
+chr20 hg19_knownGene CDS 33508342 33508512 0.000000 + 0 gene_id "ACSS2"; transcript_id "AK098026:uc002xbe.2";
+chr20 hg19_knownGene exon 33508342 33508512 0.000000 + . gene_id "ACSS2"; transcript_id "AK098026:uc002xbe.2";
+chr20 hg19_knownGene CDS 33508809 33508942 0.000000 + 0 gene_id "ACSS2"; transcript_id "AK098026:uc002xbe.2";
+chr20 hg19_knownGene exon 33508809 33508942 0.000000 + . gene_id "ACSS2"; transcript_id "AK098026:uc002xbe.2";
+chr20 hg19_knownGene CDS 33509133 33509265 0.000000 + 1 gene_id "ACSS2"; transcript_id "AK098026:uc002xbe.2";
+chr20 hg19_knownGene exon 33509133 33509265 0.000000 + . gene_id "ACSS2"; transcript_id "AK098026:uc002xbe.2";
+chr20 hg19_knownGene CDS 33509347 33509403 0.000000 + 0 gene_id "ACSS2"; transcript_id "AK098026:uc002xbe.2";
+chr20 hg19_knownGene exon 33509347 33509403 0.000000 + . gene_id "ACSS2"; transcript_id "AK098026:uc002xbe.2";
+chr20 hg19_knownGene CDS 33509589 33509669 0.000000 + 0 gene_id "ACSS2"; transcript_id "AK098026:uc002xbe.2";
+chr20 hg19_knownGene exon 33509589 33509669 0.000000 + . gene_id "ACSS2"; transcript_id "AK098026:uc002xbe.2";
+chr20 hg19_knownGene CDS 33511126 33511234 0.000000 + 0 gene_id "ACSS2"; transcript_id "AK098026:uc002xbe.2";
+chr20 hg19_knownGene exon 33511126 33511234 0.000000 + . gene_id "ACSS2"; transcript_id "AK098026:uc002xbe.2";
+chr20 hg19_knownGene CDS 33513501 33513569 0.000000 + 2 gene_id "ACSS2"; transcript_id "AK098026:uc002xbe.2";
+chr20 hg19_knownGene exon 33513501 33513569 0.000000 + . gene_id "ACSS2"; transcript_id "AK098026:uc002xbe.2";
+chr20 hg19_knownGene CDS 33513908 33514084 0.000000 + 2 gene_id "ACSS2"; transcript_id "AK098026:uc002xbe.2";
+chr20 hg19_knownGene exon 33513908 33514084 0.000000 + . gene_id "ACSS2"; transcript_id "AK098026:uc002xbe.2";
+chr20 hg19_knownGene CDS 33514680 33514754 0.000000 + 2 gene_id "ACSS2"; transcript_id "AK098026:uc002xbe.2";
+chr20 hg19_knownGene exon 33514680 33514754 0.000000 + . gene_id "ACSS2"; transcript_id "AK098026:uc002xbe.2";
+chr20 hg19_knownGene CDS 33514890 33515014 0.000000 + 2 gene_id "ACSS2"; transcript_id "AK098026:uc002xbe.2";
+chr20 hg19_knownGene exon 33514890 33515769 0.000000 + . gene_id "ACSS2"; transcript_id "AK098026:uc002xbe.2";
+chr20 hg19_knownGene CDS 33516634 33516754 0.000000 - 1 gene_id "GSS"; transcript_id "AK298292:uc010zun.2";
+chr20 hg19_knownGene exon 33516236 33516754 0.000000 - . gene_id "GSS"; transcript_id "AK298292:uc010zun.2";
+chr20 hg19_knownGene CDS 33517204 33517393 0.000000 - 2 gene_id "GSS"; transcript_id "AK298292:uc010zun.2";
+chr20 hg19_knownGene exon 33517204 33517393 0.000000 - . gene_id "GSS"; transcript_id "AK298292:uc010zun.2";
+chr20 hg19_knownGene CDS 33519139 33519220 0.000000 - 0 gene_id "GSS"; transcript_id "AK298292:uc010zun.2";
+chr20 hg19_knownGene exon 33519139 33519220 0.000000 - . gene_id "GSS"; transcript_id "AK298292:uc010zun.2";
+chr20 hg19_knownGene CDS 33519742 33519936 0.000000 - 0 gene_id "GSS"; transcript_id "AK298292:uc010zun.2";
+chr20 hg19_knownGene exon 33519742 33519936 0.000000 - . gene_id "GSS"; transcript_id "AK298292:uc010zun.2";
+chr20 hg19_knownGene CDS 33523379 33523445 0.000000 - 1 gene_id "GSS"; transcript_id "AK298292:uc010zun.2";
+chr20 hg19_knownGene exon 33523379 33523445 0.000000 - . gene_id "GSS"; transcript_id "AK298292:uc010zun.2";
+chr20 hg19_knownGene CDS 33524566 33524643 0.000000 - 1 gene_id "GSS"; transcript_id "AK298292:uc010zun.2";
+chr20 hg19_knownGene exon 33524566 33524643 0.000000 - . gene_id "GSS"; transcript_id "AK298292:uc010zun.2";
+chr20 hg19_knownGene CDS 33524746 33524826 0.000000 - 1 gene_id "GSS"; transcript_id "AK298292:uc010zun.2";
+chr20 hg19_knownGene exon 33524746 33524826 0.000000 - . gene_id "GSS"; transcript_id "AK298292:uc010zun.2";
+chr20 hg19_knownGene CDS 33529516 33529632 0.000000 - 1 gene_id "GSS"; transcript_id "AK298292:uc010zun.2";
+chr20 hg19_knownGene exon 33529516 33529632 0.000000 - . gene_id "GSS"; transcript_id "AK298292:uc010zun.2";
+chr20 hg19_knownGene CDS 33530291 33530397 0.000000 - 0 gene_id "GSS"; transcript_id "AK298292:uc010zun.2";
+chr20 hg19_knownGene exon 33530291 33530809 0.000000 - . gene_id "GSS"; transcript_id "AK298292:uc010zun.2";
+chr20 hg19_knownGene exon 33533756 33533901 0.000000 - . gene_id "GSS"; transcript_id "AK298292:uc010zun.2";
+chr20 hg19_knownGene exon 33534430 33534532 0.000000 - . gene_id "GSS"; transcript_id "AK298292:uc010zun.2";
+chr20 hg19_knownGene CDS 33516634 33516754 0.000000 - 1 gene_id "GSS"; transcript_id "AB459500:uc010zuo.2";
+chr20 hg19_knownGene exon 33516236 33516754 0.000000 - . gene_id "GSS"; transcript_id "AB459500:uc010zuo.2";
+chr20 hg19_knownGene CDS 33517204 33517393 0.000000 - 2 gene_id "GSS"; transcript_id "AB459500:uc010zuo.2";
+chr20 hg19_knownGene exon 33517204 33517393 0.000000 - . gene_id "GSS"; transcript_id "AB459500:uc010zuo.2";
+chr20 hg19_knownGene CDS 33519139 33519220 0.000000 - 0 gene_id "GSS"; transcript_id "AB459500:uc010zuo.2";
+chr20 hg19_knownGene exon 33519139 33519220 0.000000 - . gene_id "GSS"; transcript_id "AB459500:uc010zuo.2";
+chr20 hg19_knownGene CDS 33519742 33519936 0.000000 - 0 gene_id "GSS"; transcript_id "AB459500:uc010zuo.2";
+chr20 hg19_knownGene exon 33519742 33519936 0.000000 - . gene_id "GSS"; transcript_id "AB459500:uc010zuo.2";
+chr20 hg19_knownGene CDS 33523379 33523445 0.000000 - 1 gene_id "GSS"; transcript_id "AB459500:uc010zuo.2";
+chr20 hg19_knownGene exon 33523379 33523445 0.000000 - . gene_id "GSS"; transcript_id "AB459500:uc010zuo.2";
+chr20 hg19_knownGene CDS 33524566 33524643 0.000000 - 1 gene_id "GSS"; transcript_id "AB459500:uc010zuo.2";
+chr20 hg19_knownGene exon 33524566 33524643 0.000000 - . gene_id "GSS"; transcript_id "AB459500:uc010zuo.2";
+chr20 hg19_knownGene CDS 33524746 33524826 0.000000 - 1 gene_id "GSS"; transcript_id "AB459500:uc010zuo.2";
+chr20 hg19_knownGene exon 33524746 33524826 0.000000 - . gene_id "GSS"; transcript_id "AB459500:uc010zuo.2";
+chr20 hg19_knownGene CDS 33533756 33533901 0.000000 - 0 gene_id "GSS"; transcript_id "AB459500:uc010zuo.2";
+chr20 hg19_knownGene exon 33533756 33533901 0.000000 - . gene_id "GSS"; transcript_id "AB459500:uc010zuo.2";
+chr20 hg19_knownGene CDS 33539527 33539655 0.000000 - 0 gene_id "GSS"; transcript_id "AB459500:uc010zuo.2";
+chr20 hg19_knownGene exon 33539527 33539663 0.000000 - . gene_id "GSS"; transcript_id "AB459500:uc010zuo.2";
+chr20 hg19_knownGene CDS 33516634 33516754 0.000000 - 1 gene_id "GSS"; transcript_id "NM_000178:uc002xbg.3";
+chr20 hg19_knownGene exon 33516236 33516754 0.000000 - . gene_id "GSS"; transcript_id "NM_000178:uc002xbg.3";
+chr20 hg19_knownGene CDS 33517204 33517393 0.000000 - 2 gene_id "GSS"; transcript_id "NM_000178:uc002xbg.3";
+chr20 hg19_knownGene exon 33517204 33517393 0.000000 - . gene_id "GSS"; transcript_id "NM_000178:uc002xbg.3";
+chr20 hg19_knownGene CDS 33519139 33519220 0.000000 - 0 gene_id "GSS"; transcript_id "NM_000178:uc002xbg.3";
+chr20 hg19_knownGene exon 33519139 33519220 0.000000 - . gene_id "GSS"; transcript_id "NM_000178:uc002xbg.3";
+chr20 hg19_knownGene CDS 33519742 33519936 0.000000 - 0 gene_id "GSS"; transcript_id "NM_000178:uc002xbg.3";
+chr20 hg19_knownGene exon 33519742 33519936 0.000000 - . gene_id "GSS"; transcript_id "NM_000178:uc002xbg.3";
+chr20 hg19_knownGene CDS 33523379 33523445 0.000000 - 1 gene_id "GSS"; transcript_id "NM_000178:uc002xbg.3";
+chr20 hg19_knownGene exon 33523379 33523445 0.000000 - . gene_id "GSS"; transcript_id "NM_000178:uc002xbg.3";
+chr20 hg19_knownGene CDS 33524566 33524643 0.000000 - 1 gene_id "GSS"; transcript_id "NM_000178:uc002xbg.3";
+chr20 hg19_knownGene exon 33524566 33524643 0.000000 - . gene_id "GSS"; transcript_id "NM_000178:uc002xbg.3";
+chr20 hg19_knownGene CDS 33524746 33524826 0.000000 - 1 gene_id "GSS"; transcript_id "NM_000178:uc002xbg.3";
+chr20 hg19_knownGene exon 33524746 33524826 0.000000 - . gene_id "GSS"; transcript_id "NM_000178:uc002xbg.3";
+chr20 hg19_knownGene CDS 33529516 33529632 0.000000 - 1 gene_id "GSS"; transcript_id "NM_000178:uc002xbg.3";
+chr20 hg19_knownGene exon 33529516 33529632 0.000000 - . gene_id "GSS"; transcript_id "NM_000178:uc002xbg.3";
+chr20 hg19_knownGene CDS 33530291 33530430 0.000000 - 0 gene_id "GSS"; transcript_id "NM_000178:uc002xbg.3";
+chr20 hg19_knownGene exon 33530291 33530430 0.000000 - . gene_id "GSS"; transcript_id "NM_000178:uc002xbg.3";
+chr20 hg19_knownGene CDS 33530734 33530809 0.000000 - 1 gene_id "GSS"; transcript_id "NM_000178:uc002xbg.3";
+chr20 hg19_knownGene exon 33530734 33530809 0.000000 - . gene_id "GSS"; transcript_id "NM_000178:uc002xbg.3";
+chr20 hg19_knownGene CDS 33533756 33533901 0.000000 - 0 gene_id "GSS"; transcript_id "NM_000178:uc002xbg.3";
+chr20 hg19_knownGene exon 33533756 33533901 0.000000 - . gene_id "GSS"; transcript_id "NM_000178:uc002xbg.3";
+chr20 hg19_knownGene CDS 33539527 33539655 0.000000 - 0 gene_id "GSS"; transcript_id "NM_000178:uc002xbg.3";
+chr20 hg19_knownGene exon 33539527 33539663 0.000000 - . gene_id "GSS"; transcript_id "NM_000178:uc002xbg.3";
+chr20 hg19_knownGene exon 33543530 33543601 0.000000 - . gene_id "GSS"; transcript_id "NM_000178:uc002xbg.3";
+chr20 hg19_knownGene CDS 33516634 33516754 0.000000 - 1 gene_id "GSS"; transcript_id "AK293144:uc010zup.2";
+chr20 hg19_knownGene exon 33516236 33516754 0.000000 - . gene_id "GSS"; transcript_id "AK293144:uc010zup.2";
+chr20 hg19_knownGene CDS 33517204 33517393 0.000000 - 2 gene_id "GSS"; transcript_id "AK293144:uc010zup.2";
+chr20 hg19_knownGene exon 33517204 33517393 0.000000 - . gene_id "GSS"; transcript_id "AK293144:uc010zup.2";
+chr20 hg19_knownGene CDS 33519139 33519220 0.000000 - 0 gene_id "GSS"; transcript_id "AK293144:uc010zup.2";
+chr20 hg19_knownGene exon 33519139 33519220 0.000000 - . gene_id "GSS"; transcript_id "AK293144:uc010zup.2";
+chr20 hg19_knownGene CDS 33519742 33519936 0.000000 - 0 gene_id "GSS"; transcript_id "AK293144:uc010zup.2";
+chr20 hg19_knownGene exon 33519742 33519936 0.000000 - . gene_id "GSS"; transcript_id "AK293144:uc010zup.2";
+chr20 hg19_knownGene CDS 33523379 33523445 0.000000 - 1 gene_id "GSS"; transcript_id "AK293144:uc010zup.2";
+chr20 hg19_knownGene exon 33523379 33523445 0.000000 - . gene_id "GSS"; transcript_id "AK293144:uc010zup.2";
+chr20 hg19_knownGene CDS 33524566 33524643 0.000000 - 1 gene_id "GSS"; transcript_id "AK293144:uc010zup.2";
+chr20 hg19_knownGene exon 33524566 33524643 0.000000 - . gene_id "GSS"; transcript_id "AK293144:uc010zup.2";
+chr20 hg19_knownGene CDS 33524746 33524826 0.000000 - 1 gene_id "GSS"; transcript_id "AK293144:uc010zup.2";
+chr20 hg19_knownGene exon 33524746 33524826 0.000000 - . gene_id "GSS"; transcript_id "AK293144:uc010zup.2";
+chr20 hg19_knownGene CDS 33529516 33529632 0.000000 - 1 gene_id "GSS"; transcript_id "AK293144:uc010zup.2";
+chr20 hg19_knownGene exon 33529516 33529632 0.000000 - . gene_id "GSS"; transcript_id "AK293144:uc010zup.2";
+chr20 hg19_knownGene CDS 33530291 33530430 0.000000 - 0 gene_id "GSS"; transcript_id "AK293144:uc010zup.2";
+chr20 hg19_knownGene exon 33530291 33530430 0.000000 - . gene_id "GSS"; transcript_id "AK293144:uc010zup.2";
+chr20 hg19_knownGene CDS 33530734 33530809 0.000000 - 1 gene_id "GSS"; transcript_id "AK293144:uc010zup.2";
+chr20 hg19_knownGene exon 33530734 33530809 0.000000 - . gene_id "GSS"; transcript_id "AK293144:uc010zup.2";
+chr20 hg19_knownGene CDS 33533756 33533823 0.000000 - 0 gene_id "GSS"; transcript_id "AK293144:uc010zup.2";
+chr20 hg19_knownGene exon 33533756 33533854 0.000000 - . gene_id "GSS"; transcript_id "AK293144:uc010zup.2";
+chr20 hg19_knownGene exon 33539527 33539663 0.000000 - . gene_id "GSS"; transcript_id "AK293144:uc010zup.2";
+chr20 hg19_knownGene exon 33543530 33543601 0.000000 - . gene_id "GSS"; transcript_id "AK293144:uc010zup.2";
+chr20 hg19_knownGene CDS 33517203 33517393 0.000000 - 2 gene_id "GSS"; transcript_id "AK311421:uc010gez.1";
+chr20 hg19_knownGene exon 33516778 33517393 0.000000 - . gene_id "GSS"; transcript_id "AK311421:uc010gez.1";
+chr20 hg19_knownGene CDS 33519139 33519220 0.000000 - 0 gene_id "GSS"; transcript_id "AK311421:uc010gez.1";
+chr20 hg19_knownGene exon 33519139 33519220 0.000000 - . gene_id "GSS"; transcript_id "AK311421:uc010gez.1";
+chr20 hg19_knownGene CDS 33519742 33519936 0.000000 - 0 gene_id "GSS"; transcript_id "AK311421:uc010gez.1";
+chr20 hg19_knownGene exon 33519742 33519936 0.000000 - . gene_id "GSS"; transcript_id "AK311421:uc010gez.1";
+chr20 hg19_knownGene CDS 33523379 33523402 0.000000 - 0 gene_id "GSS"; transcript_id "AK311421:uc010gez.1";
+chr20 hg19_knownGene exon 33523379 33523445 0.000000 - . gene_id "GSS"; transcript_id "AK311421:uc010gez.1";
+chr20 hg19_knownGene exon 33524566 33524643 0.000000 - . gene_id "GSS"; transcript_id "AK311421:uc010gez.1";
+chr20 hg19_knownGene exon 33524746 33524826 0.000000 - . gene_id "GSS"; transcript_id "AK311421:uc010gez.1";
+chr20 hg19_knownGene exon 33530734 33530809 0.000000 - . gene_id "GSS"; transcript_id "AK311421:uc010gez.1";
+chr20 hg19_knownGene exon 33533756 33533901 0.000000 - . gene_id "GSS"; transcript_id "AK311421:uc010gez.1";
+chr20 hg19_knownGene exon 33539527 33539663 0.000000 - . gene_id "GSS"; transcript_id "AK311421:uc010gez.1";
+chr20 hg19_knownGene exon 33543530 33543601 0.000000 - . gene_id "GSS"; transcript_id "AK311421:uc010gez.1";
+chr20 hg19_knownGene exon 33565435 33565483 0.000000 + . gene_id "MYH7B"; transcript_id "AK000947:uc010gfa.1";
+chr20 hg19_knownGene CDS 33565809 33565899 0.000000 + 0 gene_id "MYH7B"; transcript_id "AK000947:uc010gfa.1";
+chr20 hg19_knownGene exon 33565737 33565899 0.000000 + . gene_id "MYH7B"; transcript_id "AK000947:uc010gfa.1";
+chr20 hg19_knownGene CDS 33567193 33567299 0.000000 + 2 gene_id "MYH7B"; transcript_id "AK000947:uc010gfa.1";
+chr20 hg19_knownGene exon 33567193 33567299 0.000000 + . gene_id "MYH7B"; transcript_id "AK000947:uc010gfa.1";
+chr20 hg19_knownGene CDS 33567464 33567607 0.000000 + 0 gene_id "MYH7B"; transcript_id "AK000947:uc010gfa.1";
+chr20 hg19_knownGene exon 33567464 33567607 0.000000 + . gene_id "MYH7B"; transcript_id "AK000947:uc010gfa.1";
+chr20 hg19_knownGene CDS 33568381 33568537 0.000000 + 0 gene_id "MYH7B"; transcript_id "AK000947:uc010gfa.1";
+chr20 hg19_knownGene exon 33568381 33568537 0.000000 + . gene_id "MYH7B"; transcript_id "AK000947:uc010gfa.1";
+chr20 hg19_knownGene CDS 33568836 33568864 0.000000 + 2 gene_id "MYH7B"; transcript_id "AK000947:uc010gfa.1";
+chr20 hg19_knownGene exon 33568836 33569828 0.000000 + . gene_id "MYH7B"; transcript_id "AK000947:uc010gfa.1";
+chr20 hg19_knownGene exon 33578203 33578275 0.000000 - . gene_id "MIR499B"; transcript_id "NR_039912:uc021wch.1";
+chr20 hg19_knownGene exon 33578179 33578300 0.000000 + . gene_id "MIR499A"; transcript_id "NR_030223:uc021wcg.1";
+chr20 hg19_knownGene exon 33543704 33543810 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33545901 33546015 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33563298 33563302 0.000000 + 0 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33563203 33563302 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33565435 33565483 0.000000 + 1 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33565435 33565483 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33565737 33565899 0.000000 + 0 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33565737 33565899 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33567193 33567299 0.000000 + 2 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33567193 33567299 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33567464 33567607 0.000000 + 0 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33567464 33567607 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33568381 33568537 0.000000 + 0 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33568381 33568537 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33568836 33568863 0.000000 + 2 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33568836 33568863 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33570262 33570358 0.000000 + 1 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33570262 33570358 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33572495 33572518 0.000000 + 0 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33572495 33572518 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33572657 33572749 0.000000 + 0 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33572657 33572749 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33572869 33572932 0.000000 + 0 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33572869 33572932 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33573903 33574001 0.000000 + 2 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33573903 33574001 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33574689 33574792 0.000000 + 2 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33574689 33574792 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33574952 33575090 0.000000 + 0 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33574952 33575090 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33575360 33575478 0.000000 + 2 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33575360 33575478 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33575568 33575717 0.000000 + 0 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33575568 33575717 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33575895 33576065 0.000000 + 0 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33575895 33576065 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33577543 33577722 0.000000 + 0 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33577543 33577722 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33577817 33577949 0.000000 + 0 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33577817 33577949 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33578037 33578113 0.000000 + 2 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33578037 33578113 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33578541 33578628 0.000000 + 0 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33578541 33578628 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33578807 33578924 0.000000 + 2 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33578807 33578924 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33580905 33581028 0.000000 + 1 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33580905 33581028 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33581137 33581273 0.000000 + 0 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33581137 33581273 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33581949 33582204 0.000000 + 1 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33581949 33582204 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33583139 33583381 0.000000 + 0 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33583139 33583381 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33584149 33584325 0.000000 + 0 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33584149 33584325 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33584416 33584561 0.000000 + 0 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33584416 33584561 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33584886 33584976 0.000000 + 1 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33584886 33584976 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33585054 33585443 0.000000 + 0 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33585054 33585443 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33586098 33586224 0.000000 + 0 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33586098 33586224 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33586314 33586432 0.000000 + 2 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33586314 33586432 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33586522 33586718 0.000000 + 0 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33586522 33586718 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33586859 33587208 0.000000 + 1 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33586859 33587208 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33587374 33587498 0.000000 + 2 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33587374 33587498 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33587594 33587709 0.000000 + 0 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33587594 33587709 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33588096 33588492 0.000000 + 1 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33588096 33588492 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33588571 33588696 0.000000 + 0 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33588571 33588696 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33588791 33588961 0.000000 + 0 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33588791 33588961 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33589048 33589152 0.000000 + 0 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33589048 33589152 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33589234 33589329 0.000000 + 0 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33589234 33589329 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33589751 33589888 0.000000 + 0 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33589751 33589888 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene CDS 33589980 33589988 0.000000 + 0 gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33589980 33590240 0.000000 + . gene_id "MYH7B"; transcript_id "NM_020884:uc002xbi.2";
+chr20 hg19_knownGene exon 33590207 33591086 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK074106:uc002xbj.3";
+chr20 hg19_knownGene exon 33591213 33591419 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK074106:uc002xbj.3";
+chr20 hg19_knownGene exon 33591676 33592373 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK074106:uc002xbj.3";
+chr20 hg19_knownGene exon 33593498 33593606 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK074106:uc002xbj.3";
+chr20 hg19_knownGene exon 33594238 33594378 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK074106:uc002xbj.3";
+chr20 hg19_knownGene CDS 33590952 33591086 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "AK301368:uc010zuq.2";
+chr20 hg19_knownGene exon 33590207 33591086 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK301368:uc010zuq.2";
+chr20 hg19_knownGene CDS 33591213 33591419 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "AK301368:uc010zuq.2";
+chr20 hg19_knownGene exon 33591213 33591419 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK301368:uc010zuq.2";
+chr20 hg19_knownGene CDS 33592261 33592373 0.000000 - 2 gene_id "TRPC4AP"; transcript_id "AK301368:uc010zuq.2";
+chr20 hg19_knownGene exon 33592261 33592373 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK301368:uc010zuq.2";
+chr20 hg19_knownGene CDS 33593498 33593606 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "AK301368:uc010zuq.2";
+chr20 hg19_knownGene exon 33593498 33593606 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK301368:uc010zuq.2";
+chr20 hg19_knownGene CDS 33594238 33594378 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "AK301368:uc010zuq.2";
+chr20 hg19_knownGene exon 33594238 33594378 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK301368:uc010zuq.2";
+chr20 hg19_knownGene CDS 33595353 33595443 0.000000 - 1 gene_id "TRPC4AP"; transcript_id "AK301368:uc010zuq.2";
+chr20 hg19_knownGene exon 33595353 33595443 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK301368:uc010zuq.2";
+chr20 hg19_knownGene CDS 33596467 33596550 0.000000 - 1 gene_id "TRPC4AP"; transcript_id "AK301368:uc010zuq.2";
+chr20 hg19_knownGene exon 33596467 33596550 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK301368:uc010zuq.2";
+chr20 hg19_knownGene CDS 33597990 33598091 0.000000 - 1 gene_id "TRPC4AP"; transcript_id "AK301368:uc010zuq.2";
+chr20 hg19_knownGene exon 33597990 33598091 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK301368:uc010zuq.2";
+chr20 hg19_knownGene CDS 33600811 33600869 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "AK301368:uc010zuq.2";
+chr20 hg19_knownGene exon 33600811 33600869 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK301368:uc010zuq.2";
+chr20 hg19_knownGene CDS 33603811 33603933 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "AK301368:uc010zuq.2";
+chr20 hg19_knownGene exon 33603811 33603942 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK301368:uc010zuq.2";
+chr20 hg19_knownGene exon 33622926 33623111 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK301368:uc010zuq.2";
+chr20 hg19_knownGene CDS 33590952 33591086 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene exon 33590207 33591086 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene CDS 33591213 33591419 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene exon 33591213 33591419 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene CDS 33592261 33592373 0.000000 - 2 gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene exon 33592261 33592373 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene CDS 33593498 33593606 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene exon 33593498 33593606 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene CDS 33594238 33594378 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene exon 33594238 33594378 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene CDS 33595353 33595443 0.000000 - 1 gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene exon 33595353 33595443 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene CDS 33596467 33596550 0.000000 - 1 gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene exon 33596467 33596550 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene CDS 33597990 33598091 0.000000 - 1 gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene exon 33597990 33598091 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene CDS 33600811 33600869 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene exon 33600811 33600869 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene CDS 33603811 33603942 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene exon 33603811 33603942 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene CDS 33608993 33609159 0.000000 - 2 gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene exon 33608993 33609159 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene CDS 33622926 33623111 0.000000 - 2 gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene exon 33622926 33623111 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene CDS 33632308 33632515 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene exon 33632308 33632515 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene CDS 33637669 33637797 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene exon 33637669 33637797 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene CDS 33642779 33642834 0.000000 - 2 gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene exon 33642779 33642834 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene CDS 33645317 33645374 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene exon 33645317 33645374 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene CDS 33657099 33657215 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene exon 33657099 33657215 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene CDS 33665849 33665977 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene exon 33665849 33665977 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene CDS 33680417 33680584 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene exon 33680417 33680618 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_015638:uc002xbk.3";
+chr20 hg19_knownGene CDS 33590952 33591086 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene exon 33590207 33591086 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene CDS 33591213 33591419 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene exon 33591213 33591419 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene CDS 33592261 33592373 0.000000 - 2 gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene exon 33592261 33592373 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene CDS 33593498 33593606 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene exon 33593498 33593606 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene CDS 33594238 33594378 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene exon 33594238 33594378 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene CDS 33595353 33595443 0.000000 - 1 gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene exon 33595353 33595443 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene CDS 33596467 33596550 0.000000 - 1 gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene exon 33596467 33596550 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene CDS 33597990 33598091 0.000000 - 1 gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene exon 33597990 33598091 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene CDS 33600811 33600869 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene exon 33600811 33600869 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene CDS 33603811 33603942 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene exon 33603811 33603942 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene CDS 33608993 33609135 0.000000 - 2 gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene exon 33608993 33609135 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene CDS 33622926 33623111 0.000000 - 2 gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene exon 33622926 33623111 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene CDS 33632308 33632515 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene exon 33632308 33632515 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene CDS 33637669 33637797 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene exon 33637669 33637797 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene CDS 33642779 33642834 0.000000 - 2 gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene exon 33642779 33642834 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene CDS 33645317 33645374 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene exon 33645317 33645374 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene CDS 33657099 33657215 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene exon 33657099 33657215 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene CDS 33665849 33665977 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene exon 33665849 33665977 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene CDS 33680417 33680584 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene exon 33680417 33680618 0.000000 - . gene_id "TRPC4AP"; transcript_id "NM_199368:uc002xbl.3";
+chr20 hg19_knownGene CDS 33590952 33591086 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene exon 33590207 33591086 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene CDS 33591213 33591419 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene exon 33591213 33591419 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene CDS 33592261 33592373 0.000000 - 2 gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene exon 33592261 33592373 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene CDS 33593498 33593606 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene exon 33593498 33593606 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene CDS 33594238 33594378 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene exon 33594238 33594378 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene CDS 33595353 33595443 0.000000 - 1 gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene exon 33595353 33595443 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene CDS 33596467 33596550 0.000000 - 1 gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene exon 33596467 33596550 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene CDS 33597990 33598091 0.000000 - 1 gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene exon 33597990 33598091 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene CDS 33600811 33600869 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene exon 33600811 33600869 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene CDS 33603811 33603942 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene exon 33603811 33603942 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene CDS 33608993 33609159 0.000000 - 2 gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene exon 33608993 33609159 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene CDS 33622926 33623111 0.000000 - 2 gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene exon 33622926 33623111 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene CDS 33632308 33632515 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene exon 33632308 33632515 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene CDS 33637669 33637797 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene exon 33637669 33637797 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene CDS 33642779 33642834 0.000000 - 2 gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene exon 33642779 33642834 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene CDS 33645317 33645374 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene exon 33645317 33645374 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene CDS 33665849 33665977 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene exon 33665849 33665977 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene CDS 33680417 33680584 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene exon 33680417 33680618 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK303476:uc010zur.2";
+chr20 hg19_knownGene CDS 33596466 33596550 0.000000 - 1 gene_id "TRPC4AP"; transcript_id "AK074106:uc002xbm.1";
+chr20 hg19_knownGene exon 33595381 33596550 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK074106:uc002xbm.1";
+chr20 hg19_knownGene CDS 33597990 33598091 0.000000 - 1 gene_id "TRPC4AP"; transcript_id "AK074106:uc002xbm.1";
+chr20 hg19_knownGene exon 33597990 33598091 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK074106:uc002xbm.1";
+chr20 hg19_knownGene CDS 33600811 33600869 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "AK074106:uc002xbm.1";
+chr20 hg19_knownGene exon 33600811 33600869 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK074106:uc002xbm.1";
+chr20 hg19_knownGene CDS 33603811 33603942 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "AK074106:uc002xbm.1";
+chr20 hg19_knownGene exon 33603811 33603942 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK074106:uc002xbm.1";
+chr20 hg19_knownGene CDS 33608993 33609159 0.000000 - 2 gene_id "TRPC4AP"; transcript_id "AK074106:uc002xbm.1";
+chr20 hg19_knownGene exon 33608993 33609159 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK074106:uc002xbm.1";
+chr20 hg19_knownGene CDS 33622926 33623111 0.000000 - 2 gene_id "TRPC4AP"; transcript_id "AK074106:uc002xbm.1";
+chr20 hg19_knownGene exon 33622926 33623111 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK074106:uc002xbm.1";
+chr20 hg19_knownGene CDS 33632308 33632515 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "AK074106:uc002xbm.1";
+chr20 hg19_knownGene exon 33632308 33632515 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK074106:uc002xbm.1";
+chr20 hg19_knownGene CDS 33637669 33637797 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "AK074106:uc002xbm.1";
+chr20 hg19_knownGene exon 33637669 33637797 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK074106:uc002xbm.1";
+chr20 hg19_knownGene CDS 33642779 33642834 0.000000 - 2 gene_id "TRPC4AP"; transcript_id "AK074106:uc002xbm.1";
+chr20 hg19_knownGene exon 33642779 33642834 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK074106:uc002xbm.1";
+chr20 hg19_knownGene CDS 33645317 33645374 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "AK074106:uc002xbm.1";
+chr20 hg19_knownGene exon 33645317 33645374 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK074106:uc002xbm.1";
+chr20 hg19_knownGene CDS 33657099 33657215 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "AK074106:uc002xbm.1";
+chr20 hg19_knownGene exon 33657099 33657215 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK074106:uc002xbm.1";
+chr20 hg19_knownGene CDS 33665849 33665977 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "AK074106:uc002xbm.1";
+chr20 hg19_knownGene exon 33665849 33665977 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK074106:uc002xbm.1";
+chr20 hg19_knownGene CDS 33680417 33680584 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "AK074106:uc002xbm.1";
+chr20 hg19_knownGene exon 33680417 33680618 0.000000 - . gene_id "TRPC4AP"; transcript_id "AK074106:uc002xbm.1";
+chr20 hg19_knownGene CDS 33642782 33642830 0.000000 - 1 gene_id "TRPC4AP"; transcript_id "CU680522:uc021wci.1";
+chr20 hg19_knownGene exon 33642779 33642830 0.000000 - . gene_id "TRPC4AP"; transcript_id "CU680522:uc021wci.1";
+chr20 hg19_knownGene CDS 33645313 33645374 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "CU680522:uc021wci.1";
+chr20 hg19_knownGene exon 33645313 33645374 0.000000 - . gene_id "TRPC4AP"; transcript_id "CU680522:uc021wci.1";
+chr20 hg19_knownGene CDS 33657099 33657215 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "CU680522:uc021wci.1";
+chr20 hg19_knownGene exon 33657099 33657215 0.000000 - . gene_id "TRPC4AP"; transcript_id "CU680522:uc021wci.1";
+chr20 hg19_knownGene CDS 33665849 33665977 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "CU680522:uc021wci.1";
+chr20 hg19_knownGene exon 33665849 33665977 0.000000 - . gene_id "TRPC4AP"; transcript_id "CU680522:uc021wci.1";
+chr20 hg19_knownGene CDS 33680417 33680584 0.000000 - 0 gene_id "TRPC4AP"; transcript_id "CU680522:uc021wci.1";
+chr20 hg19_knownGene exon 33680417 33680618 0.000000 - . gene_id "TRPC4AP"; transcript_id "CU680522:uc021wci.1";
+chr20 hg19_knownGene exon 33704939 33705010 0.000000 - . gene_id "SNORD56"; transcript_id ":uc021wcj.1";
+chr20 hg19_knownGene CDS 33703239 33703736 0.000000 - 0 gene_id "EDEM2"; transcript_id "AK293583:uc010zus.1";
+chr20 hg19_knownGene exon 33703160 33703736 0.000000 - . gene_id "EDEM2"; transcript_id "AK293583:uc010zus.1";
+chr20 hg19_knownGene CDS 33706401 33706522 0.000000 - 2 gene_id "EDEM2"; transcript_id "AK293583:uc010zus.1";
+chr20 hg19_knownGene exon 33706401 33706522 0.000000 - . gene_id "EDEM2"; transcript_id "AK293583:uc010zus.1";
+chr20 hg19_knownGene CDS 33711693 33711837 0.000000 - 0 gene_id "EDEM2"; transcript_id "AK293583:uc010zus.1";
+chr20 hg19_knownGene exon 33711693 33711837 0.000000 - . gene_id "EDEM2"; transcript_id "AK293583:uc010zus.1";
+chr20 hg19_knownGene CDS 33714054 33714178 0.000000 - 2 gene_id "EDEM2"; transcript_id "AK293583:uc010zus.1";
+chr20 hg19_knownGene exon 33714054 33714178 0.000000 - . gene_id "EDEM2"; transcript_id "AK293583:uc010zus.1";
+chr20 hg19_knownGene CDS 33719445 33719586 0.000000 - 0 gene_id "EDEM2"; transcript_id "AK293583:uc010zus.1";
+chr20 hg19_knownGene exon 33719445 33719586 0.000000 - . gene_id "EDEM2"; transcript_id "AK293583:uc010zus.1";
+chr20 hg19_knownGene CDS 33721908 33721946 0.000000 - 0 gene_id "EDEM2"; transcript_id "AK293583:uc010zus.1";
+chr20 hg19_knownGene exon 33721908 33721958 0.000000 - . gene_id "EDEM2"; transcript_id "AK293583:uc010zus.1";
+chr20 hg19_knownGene exon 33722541 33722752 0.000000 - . gene_id "EDEM2"; transcript_id "AK293583:uc010zus.1";
+chr20 hg19_knownGene exon 33725683 33725808 0.000000 - . gene_id "EDEM2"; transcript_id "AK293583:uc010zus.1";
+chr20 hg19_knownGene exon 33730176 33730281 0.000000 - . gene_id "EDEM2"; transcript_id "AK293583:uc010zus.1";
+chr20 hg19_knownGene exon 33732782 33732959 0.000000 - . gene_id "EDEM2"; transcript_id "AK293583:uc010zus.1";
+chr20 hg19_knownGene CDS 33703239 33703736 0.000000 - 0 gene_id "EDEM2"; transcript_id "NM_001145025:uc002xbq.2";
+chr20 hg19_knownGene exon 33703160 33703736 0.000000 - . gene_id "EDEM2"; transcript_id "NM_001145025:uc002xbq.2";
+chr20 hg19_knownGene CDS 33706401 33706522 0.000000 - 2 gene_id "EDEM2"; transcript_id "NM_001145025:uc002xbq.2";
+chr20 hg19_knownGene exon 33706401 33706522 0.000000 - . gene_id "EDEM2"; transcript_id "NM_001145025:uc002xbq.2";
+chr20 hg19_knownGene CDS 33711693 33711837 0.000000 - 0 gene_id "EDEM2"; transcript_id "NM_001145025:uc002xbq.2";
+chr20 hg19_knownGene exon 33711693 33711837 0.000000 - . gene_id "EDEM2"; transcript_id "NM_001145025:uc002xbq.2";
+chr20 hg19_knownGene CDS 33714054 33714178 0.000000 - 2 gene_id "EDEM2"; transcript_id "NM_001145025:uc002xbq.2";
+chr20 hg19_knownGene exon 33714054 33714178 0.000000 - . gene_id "EDEM2"; transcript_id "NM_001145025:uc002xbq.2";
+chr20 hg19_knownGene CDS 33719445 33719586 0.000000 - 0 gene_id "EDEM2"; transcript_id "NM_001145025:uc002xbq.2";
+chr20 hg19_knownGene exon 33719445 33719586 0.000000 - . gene_id "EDEM2"; transcript_id "NM_001145025:uc002xbq.2";
+chr20 hg19_knownGene CDS 33722541 33722752 0.000000 - 2 gene_id "EDEM2"; transcript_id "NM_001145025:uc002xbq.2";
+chr20 hg19_knownGene exon 33722541 33722752 0.000000 - . gene_id "EDEM2"; transcript_id "NM_001145025:uc002xbq.2";
+chr20 hg19_knownGene CDS 33725683 33725808 0.000000 - 2 gene_id "EDEM2"; transcript_id "NM_001145025:uc002xbq.2";
+chr20 hg19_knownGene exon 33725683 33725808 0.000000 - . gene_id "EDEM2"; transcript_id "NM_001145025:uc002xbq.2";
+chr20 hg19_knownGene CDS 33730176 33730281 0.000000 - 0 gene_id "EDEM2"; transcript_id "NM_001145025:uc002xbq.2";
+chr20 hg19_knownGene exon 33730176 33730281 0.000000 - . gene_id "EDEM2"; transcript_id "NM_001145025:uc002xbq.2";
+chr20 hg19_knownGene CDS 33732782 33732821 0.000000 - 1 gene_id "EDEM2"; transcript_id "NM_001145025:uc002xbq.2";
+chr20 hg19_knownGene exon 33732782 33732821 0.000000 - . gene_id "EDEM2"; transcript_id "NM_001145025:uc002xbq.2";
+chr20 hg19_knownGene CDS 33734955 33735061 0.000000 - 0 gene_id "EDEM2"; transcript_id "NM_001145025:uc002xbq.2";
+chr20 hg19_knownGene exon 33734955 33735161 0.000000 - . gene_id "EDEM2"; transcript_id "NM_001145025:uc002xbq.2";
+chr20 hg19_knownGene CDS 33703239 33703736 0.000000 - 0 gene_id "EDEM2"; transcript_id "NM_018217:uc002xbo.2";
+chr20 hg19_knownGene exon 33703160 33703736 0.000000 - . gene_id "EDEM2"; transcript_id "NM_018217:uc002xbo.2";
+chr20 hg19_knownGene CDS 33706401 33706522 0.000000 - 2 gene_id "EDEM2"; transcript_id "NM_018217:uc002xbo.2";
+chr20 hg19_knownGene exon 33706401 33706522 0.000000 - . gene_id "EDEM2"; transcript_id "NM_018217:uc002xbo.2";
+chr20 hg19_knownGene CDS 33711693 33711837 0.000000 - 0 gene_id "EDEM2"; transcript_id "NM_018217:uc002xbo.2";
+chr20 hg19_knownGene exon 33711693 33711837 0.000000 - . gene_id "EDEM2"; transcript_id "NM_018217:uc002xbo.2";
+chr20 hg19_knownGene CDS 33714054 33714178 0.000000 - 2 gene_id "EDEM2"; transcript_id "NM_018217:uc002xbo.2";
+chr20 hg19_knownGene exon 33714054 33714178 0.000000 - . gene_id "EDEM2"; transcript_id "NM_018217:uc002xbo.2";
+chr20 hg19_knownGene CDS 33719445 33719586 0.000000 - 0 gene_id "EDEM2"; transcript_id "NM_018217:uc002xbo.2";
+chr20 hg19_knownGene exon 33719445 33719586 0.000000 - . gene_id "EDEM2"; transcript_id "NM_018217:uc002xbo.2";
+chr20 hg19_knownGene CDS 33722541 33722752 0.000000 - 2 gene_id "EDEM2"; transcript_id "NM_018217:uc002xbo.2";
+chr20 hg19_knownGene exon 33722541 33722752 0.000000 - . gene_id "EDEM2"; transcript_id "NM_018217:uc002xbo.2";
+chr20 hg19_knownGene CDS 33725683 33725808 0.000000 - 2 gene_id "EDEM2"; transcript_id "NM_018217:uc002xbo.2";
+chr20 hg19_knownGene exon 33725683 33725808 0.000000 - . gene_id "EDEM2"; transcript_id "NM_018217:uc002xbo.2";
+chr20 hg19_knownGene CDS 33730176 33730281 0.000000 - 0 gene_id "EDEM2"; transcript_id "NM_018217:uc002xbo.2";
+chr20 hg19_knownGene exon 33730176 33730281 0.000000 - . gene_id "EDEM2"; transcript_id "NM_018217:uc002xbo.2";
+chr20 hg19_knownGene CDS 33732782 33732821 0.000000 - 1 gene_id "EDEM2"; transcript_id "NM_018217:uc002xbo.2";
+chr20 hg19_knownGene exon 33732782 33732821 0.000000 - . gene_id "EDEM2"; transcript_id "NM_018217:uc002xbo.2";
+chr20 hg19_knownGene CDS 33734628 33734738 0.000000 - 1 gene_id "EDEM2"; transcript_id "NM_018217:uc002xbo.2";
+chr20 hg19_knownGene exon 33734628 33734738 0.000000 - . gene_id "EDEM2"; transcript_id "NM_018217:uc002xbo.2";
+chr20 hg19_knownGene CDS 33734955 33735061 0.000000 - 0 gene_id "EDEM2"; transcript_id "NM_018217:uc002xbo.2";
+chr20 hg19_knownGene exon 33734955 33735161 0.000000 - . gene_id "EDEM2"; transcript_id "NM_018217:uc002xbo.2";
+chr20 hg19_knownGene CDS 33703239 33703736 0.000000 - 0 gene_id "EDEM2"; transcript_id "NR_026728:uc010zut.1";
+chr20 hg19_knownGene exon 33703160 33703736 0.000000 - . gene_id "EDEM2"; transcript_id "NR_026728:uc010zut.1";
+chr20 hg19_knownGene CDS 33706401 33706522 0.000000 - 2 gene_id "EDEM2"; transcript_id "NR_026728:uc010zut.1";
+chr20 hg19_knownGene exon 33706401 33706522 0.000000 - . gene_id "EDEM2"; transcript_id "NR_026728:uc010zut.1";
+chr20 hg19_knownGene CDS 33711693 33711837 0.000000 - 0 gene_id "EDEM2"; transcript_id "NR_026728:uc010zut.1";
+chr20 hg19_knownGene exon 33711693 33711837 0.000000 - . gene_id "EDEM2"; transcript_id "NR_026728:uc010zut.1";
+chr20 hg19_knownGene CDS 33714054 33714178 0.000000 - 2 gene_id "EDEM2"; transcript_id "NR_026728:uc010zut.1";
+chr20 hg19_knownGene exon 33714054 33714178 0.000000 - . gene_id "EDEM2"; transcript_id "NR_026728:uc010zut.1";
+chr20 hg19_knownGene CDS 33719445 33719586 0.000000 - 0 gene_id "EDEM2"; transcript_id "NR_026728:uc010zut.1";
+chr20 hg19_knownGene exon 33719445 33719586 0.000000 - . gene_id "EDEM2"; transcript_id "NR_026728:uc010zut.1";
+chr20 hg19_knownGene CDS 33722541 33722752 0.000000 - 2 gene_id "EDEM2"; transcript_id "NR_026728:uc010zut.1";
+chr20 hg19_knownGene exon 33722541 33722752 0.000000 - . gene_id "EDEM2"; transcript_id "NR_026728:uc010zut.1";
+chr20 hg19_knownGene CDS 33725683 33725808 0.000000 - 2 gene_id "EDEM2"; transcript_id "NR_026728:uc010zut.1";
+chr20 hg19_knownGene exon 33725683 33725808 0.000000 - . gene_id "EDEM2"; transcript_id "NR_026728:uc010zut.1";
+chr20 hg19_knownGene CDS 33730176 33730281 0.000000 - 0 gene_id "EDEM2"; transcript_id "NR_026728:uc010zut.1";
+chr20 hg19_knownGene exon 33730176 33730281 0.000000 - . gene_id "EDEM2"; transcript_id "NR_026728:uc010zut.1";
+chr20 hg19_knownGene CDS 33732782 33732821 0.000000 - 1 gene_id "EDEM2"; transcript_id "NR_026728:uc010zut.1";
+chr20 hg19_knownGene exon 33732782 33732821 0.000000 - . gene_id "EDEM2"; transcript_id "NR_026728:uc010zut.1";
+chr20 hg19_knownGene CDS 33734628 33734722 0.000000 - 0 gene_id "EDEM2"; transcript_id "NR_026728:uc010zut.1";
+chr20 hg19_knownGene exon 33734628 33735161 0.000000 - . gene_id "EDEM2"; transcript_id "NR_026728:uc010zut.1";
+chr20 hg19_knownGene CDS 33703239 33703736 0.000000 - 0 gene_id "EDEM2"; transcript_id "AK096016:uc002xbn.2";
+chr20 hg19_knownGene exon 33703160 33703736 0.000000 - . gene_id "EDEM2"; transcript_id "AK096016:uc002xbn.2";
+chr20 hg19_knownGene CDS 33706401 33706522 0.000000 - 2 gene_id "EDEM2"; transcript_id "AK096016:uc002xbn.2";
+chr20 hg19_knownGene exon 33706401 33706522 0.000000 - . gene_id "EDEM2"; transcript_id "AK096016:uc002xbn.2";
+chr20 hg19_knownGene CDS 33711693 33711837 0.000000 - 0 gene_id "EDEM2"; transcript_id "AK096016:uc002xbn.2";
+chr20 hg19_knownGene exon 33711693 33711837 0.000000 - . gene_id "EDEM2"; transcript_id "AK096016:uc002xbn.2";
+chr20 hg19_knownGene CDS 33714054 33714178 0.000000 - 2 gene_id "EDEM2"; transcript_id "AK096016:uc002xbn.2";
+chr20 hg19_knownGene exon 33714054 33714178 0.000000 - . gene_id "EDEM2"; transcript_id "AK096016:uc002xbn.2";
+chr20 hg19_knownGene CDS 33719445 33719586 0.000000 - 0 gene_id "EDEM2"; transcript_id "AK096016:uc002xbn.2";
+chr20 hg19_knownGene exon 33719445 33719586 0.000000 - . gene_id "EDEM2"; transcript_id "AK096016:uc002xbn.2";
+chr20 hg19_knownGene CDS 33722541 33722752 0.000000 - 2 gene_id "EDEM2"; transcript_id "AK096016:uc002xbn.2";
+chr20 hg19_knownGene exon 33722541 33722752 0.000000 - . gene_id "EDEM2"; transcript_id "AK096016:uc002xbn.2";
+chr20 hg19_knownGene CDS 33725683 33725716 0.000000 - 0 gene_id "EDEM2"; transcript_id "AK096016:uc002xbn.2";
+chr20 hg19_knownGene exon 33725683 33725808 0.000000 - . gene_id "EDEM2"; transcript_id "AK096016:uc002xbn.2";
+chr20 hg19_knownGene exon 33730176 33730281 0.000000 - . gene_id "EDEM2"; transcript_id "AK096016:uc002xbn.2";
+chr20 hg19_knownGene exon 33734628 33735161 0.000000 - . gene_id "EDEM2"; transcript_id "AK096016:uc002xbn.2";
+chr20 hg19_knownGene CDS 33703239 33703736 0.000000 - 0 gene_id "EDEM2"; transcript_id "AK303816:uc010zuu.1";
+chr20 hg19_knownGene exon 33703160 33703736 0.000000 - . gene_id "EDEM2"; transcript_id "AK303816:uc010zuu.1";
+chr20 hg19_knownGene CDS 33706401 33706522 0.000000 - 2 gene_id "EDEM2"; transcript_id "AK303816:uc010zuu.1";
+chr20 hg19_knownGene exon 33706401 33706522 0.000000 - . gene_id "EDEM2"; transcript_id "AK303816:uc010zuu.1";
+chr20 hg19_knownGene CDS 33711693 33711837 0.000000 - 0 gene_id "EDEM2"; transcript_id "AK303816:uc010zuu.1";
+chr20 hg19_knownGene exon 33711693 33711837 0.000000 - . gene_id "EDEM2"; transcript_id "AK303816:uc010zuu.1";
+chr20 hg19_knownGene CDS 33714054 33714178 0.000000 - 2 gene_id "EDEM2"; transcript_id "AK303816:uc010zuu.1";
+chr20 hg19_knownGene exon 33714054 33714178 0.000000 - . gene_id "EDEM2"; transcript_id "AK303816:uc010zuu.1";
+chr20 hg19_knownGene CDS 33719445 33719460 0.000000 - 0 gene_id "EDEM2"; transcript_id "AK303816:uc010zuu.1";
+chr20 hg19_knownGene exon 33719445 33719586 0.000000 - . gene_id "EDEM2"; transcript_id "AK303816:uc010zuu.1";
+chr20 hg19_knownGene exon 33730176 33730281 0.000000 - . gene_id "EDEM2"; transcript_id "AK303816:uc010zuu.1";
+chr20 hg19_knownGene exon 33732782 33732821 0.000000 - . gene_id "EDEM2"; transcript_id "AK303816:uc010zuu.1";
+chr20 hg19_knownGene exon 33734628 33734738 0.000000 - . gene_id "EDEM2"; transcript_id "AK303816:uc010zuu.1";
+chr20 hg19_knownGene exon 33734955 33735161 0.000000 - . gene_id "EDEM2"; transcript_id "AK303816:uc010zuu.1";
+chr20 hg19_knownGene CDS 33759958 33760027 0.000000 + 0 gene_id "PROCR"; transcript_id "NM_006404:uc002xbt.3";
+chr20 hg19_knownGene exon 33759774 33760027 0.000000 + . gene_id "PROCR"; transcript_id "NM_006404:uc002xbt.3";
+chr20 hg19_knownGene CDS 33762505 33762756 0.000000 + 2 gene_id "PROCR"; transcript_id "NM_006404:uc002xbt.3";
+chr20 hg19_knownGene exon 33762505 33762756 0.000000 + . gene_id "PROCR"; transcript_id "NM_006404:uc002xbt.3";
+chr20 hg19_knownGene CDS 33763971 33764249 0.000000 + 2 gene_id "PROCR"; transcript_id "NM_006404:uc002xbt.3";
+chr20 hg19_knownGene exon 33763971 33764249 0.000000 + . gene_id "PROCR"; transcript_id "NM_006404:uc002xbt.3";
+chr20 hg19_knownGene CDS 33764501 33764613 0.000000 + 2 gene_id "PROCR"; transcript_id "NM_006404:uc002xbt.3";
+chr20 hg19_knownGene exon 33764501 33765165 0.000000 + . gene_id "PROCR"; transcript_id "NM_006404:uc002xbt.3";
+chr20 hg19_knownGene CDS 33814542 33814787 0.000000 + 0 gene_id "MMP24"; transcript_id "NM_006690:uc002xbu.2";
+chr20 hg19_knownGene exon 33814539 33814787 0.000000 + . gene_id "MMP24"; transcript_id "NM_006690:uc002xbu.2";
+chr20 hg19_knownGene CDS 33834643 33834791 0.000000 + 0 gene_id "MMP24"; transcript_id "NM_006690:uc002xbu.2";
+chr20 hg19_knownGene exon 33834643 33834791 0.000000 + . gene_id "MMP24"; transcript_id "NM_006690:uc002xbu.2";
+chr20 hg19_knownGene CDS 33839708 33839824 0.000000 + 1 gene_id "MMP24"; transcript_id "NM_006690:uc002xbu.2";
+chr20 hg19_knownGene exon 33839708 33839824 0.000000 + . gene_id "MMP24"; transcript_id "NM_006690:uc002xbu.2";
+chr20 hg19_knownGene CDS 33842253 33842557 0.000000 + 1 gene_id "MMP24"; transcript_id "NM_006690:uc002xbu.2";
+chr20 hg19_knownGene exon 33842253 33842557 0.000000 + . gene_id "MMP24"; transcript_id "NM_006690:uc002xbu.2";
+chr20 hg19_knownGene CDS 33851594 33851755 0.000000 + 2 gene_id "MMP24"; transcript_id "NM_006690:uc002xbu.2";
+chr20 hg19_knownGene exon 33851594 33851755 0.000000 + . gene_id "MMP24"; transcript_id "NM_006690:uc002xbu.2";
+chr20 hg19_knownGene CDS 33855008 33855222 0.000000 + 2 gene_id "MMP24"; transcript_id "NM_006690:uc002xbu.2";
+chr20 hg19_knownGene exon 33855008 33855222 0.000000 + . gene_id "MMP24"; transcript_id "NM_006690:uc002xbu.2";
+chr20 hg19_knownGene CDS 33857563 33857701 0.000000 + 0 gene_id "MMP24"; transcript_id "NM_006690:uc002xbu.2";
+chr20 hg19_knownGene exon 33857563 33857701 0.000000 + . gene_id "MMP24"; transcript_id "NM_006690:uc002xbu.2";
+chr20 hg19_knownGene CDS 33859372 33859638 0.000000 + 2 gene_id "MMP24"; transcript_id "NM_006690:uc002xbu.2";
+chr20 hg19_knownGene exon 33859372 33859638 0.000000 + . gene_id "MMP24"; transcript_id "NM_006690:uc002xbu.2";
+chr20 hg19_knownGene CDS 33862075 33862409 0.000000 + 2 gene_id "MMP24"; transcript_id "NM_006690:uc002xbu.2";
+chr20 hg19_knownGene exon 33862075 33864804 0.000000 + . gene_id "MMP24"; transcript_id "NM_006690:uc002xbu.2";
+chr20 hg19_knownGene CDS 33706302 33706522 0.000000 - 2 gene_id "EDEM2"; transcript_id "AK296878:uc010zuv.1";
+chr20 hg19_knownGene exon 33705828 33706522 0.000000 - . gene_id "EDEM2"; transcript_id "AK296878:uc010zuv.1";
+chr20 hg19_knownGene CDS 33711693 33711837 0.000000 - 0 gene_id "EDEM2"; transcript_id "AK296878:uc010zuv.1";
+chr20 hg19_knownGene exon 33711693 33711837 0.000000 - . gene_id "EDEM2"; transcript_id "AK296878:uc010zuv.1";
+chr20 hg19_knownGene CDS 33714054 33714178 0.000000 - 2 gene_id "EDEM2"; transcript_id "AK296878:uc010zuv.1";
+chr20 hg19_knownGene exon 33714054 33714178 0.000000 - . gene_id "EDEM2"; transcript_id "AK296878:uc010zuv.1";
+chr20 hg19_knownGene CDS 33719445 33719586 0.000000 - 0 gene_id "EDEM2"; transcript_id "AK296878:uc010zuv.1";
+chr20 hg19_knownGene exon 33719445 33719586 0.000000 - . gene_id "EDEM2"; transcript_id "AK296878:uc010zuv.1";
+chr20 hg19_knownGene CDS 33722541 33722752 0.000000 - 2 gene_id "EDEM2"; transcript_id "AK296878:uc010zuv.1";
+chr20 hg19_knownGene exon 33722541 33722752 0.000000 - . gene_id "EDEM2"; transcript_id "AK296878:uc010zuv.1";
+chr20 hg19_knownGene CDS 33725683 33725808 0.000000 - 2 gene_id "EDEM2"; transcript_id "AK296878:uc010zuv.1";
+chr20 hg19_knownGene exon 33725683 33725808 0.000000 - . gene_id "EDEM2"; transcript_id "AK296878:uc010zuv.1";
+chr20 hg19_knownGene CDS 33730176 33730281 0.000000 - 0 gene_id "EDEM2"; transcript_id "AK296878:uc010zuv.1";
+chr20 hg19_knownGene exon 33730176 33730281 0.000000 - . gene_id "EDEM2"; transcript_id "AK296878:uc010zuv.1";
+chr20 hg19_knownGene CDS 33732782 33732821 0.000000 - 1 gene_id "EDEM2"; transcript_id "AK296878:uc010zuv.1";
+chr20 hg19_knownGene exon 33732782 33732821 0.000000 - . gene_id "EDEM2"; transcript_id "AK296878:uc010zuv.1";
+chr20 hg19_knownGene CDS 33734628 33734722 0.000000 - 0 gene_id "EDEM2"; transcript_id "AK296878:uc010zuv.1";
+chr20 hg19_knownGene exon 33734628 33734738 0.000000 - . gene_id "EDEM2"; transcript_id "AK296878:uc010zuv.1";
+chr20 hg19_knownGene exon 33804551 33804674 0.000000 - . gene_id "EDEM2"; transcript_id "AK296878:uc010zuv.1";
+chr20 hg19_knownGene exon 33805615 33805864 0.000000 - . gene_id "EDEM2"; transcript_id "AK296878:uc010zuv.1";
+chr20 hg19_knownGene exon 33823884 33823994 0.000000 - . gene_id "EDEM2"; transcript_id "AK296878:uc010zuv.1";
+chr20 hg19_knownGene exon 33859808 33859948 0.000000 - . gene_id "EDEM2"; transcript_id "AK296878:uc010zuv.1";
+chr20 hg19_knownGene exon 33865849 33865928 0.000000 - . gene_id "EDEM2"; transcript_id "AK296878:uc010zuv.1";
+chr20 hg19_knownGene CDS 33867003 33867009 0.000000 - 1 gene_id "EIF6"; transcript_id "NM_181468:uc002xbv.1";
+chr20 hg19_knownGene exon 33866725 33867009 0.000000 - . gene_id "EIF6"; transcript_id "NM_181468:uc002xbv.1";
+chr20 hg19_knownGene CDS 33867369 33867550 0.000000 - 0 gene_id "EIF6"; transcript_id "NM_181468:uc002xbv.1";
+chr20 hg19_knownGene exon 33867369 33867550 0.000000 - . gene_id "EIF6"; transcript_id "NM_181468:uc002xbv.1";
+chr20 hg19_knownGene CDS 33867745 33867921 0.000000 - 0 gene_id "EIF6"; transcript_id "NM_181468:uc002xbv.1";
+chr20 hg19_knownGene exon 33867745 33867921 0.000000 - . gene_id "EIF6"; transcript_id "NM_181468:uc002xbv.1";
+chr20 hg19_knownGene CDS 33868457 33868632 0.000000 - 2 gene_id "EIF6"; transcript_id "NM_181468:uc002xbv.1";
+chr20 hg19_knownGene exon 33868457 33868632 0.000000 - . gene_id "EIF6"; transcript_id "NM_181468:uc002xbv.1";
+chr20 hg19_knownGene CDS 33871979 33872064 0.000000 - 1 gene_id "EIF6"; transcript_id "NM_181468:uc002xbv.1";
+chr20 hg19_knownGene exon 33871979 33872064 0.000000 - . gene_id "EIF6"; transcript_id "NM_181468:uc002xbv.1";
+chr20 hg19_knownGene CDS 33872184 33872290 0.000000 - 0 gene_id "EIF6"; transcript_id "NM_181468:uc002xbv.1";
+chr20 hg19_knownGene exon 33872184 33872506 0.000000 - . gene_id "EIF6"; transcript_id "NM_181468:uc002xbv.1";
+chr20 hg19_knownGene CDS 33867003 33867009 0.000000 - 1 gene_id "EIF6"; transcript_id "NM_002212:uc002xbx.1";
+chr20 hg19_knownGene exon 33866725 33867009 0.000000 - . gene_id "EIF6"; transcript_id "NM_002212:uc002xbx.1";
+chr20 hg19_knownGene CDS 33867369 33867550 0.000000 - 0 gene_id "EIF6"; transcript_id "NM_002212:uc002xbx.1";
+chr20 hg19_knownGene exon 33867369 33867550 0.000000 - . gene_id "EIF6"; transcript_id "NM_002212:uc002xbx.1";
+chr20 hg19_knownGene CDS 33867745 33867921 0.000000 - 0 gene_id "EIF6"; transcript_id "NM_002212:uc002xbx.1";
+chr20 hg19_knownGene exon 33867745 33867921 0.000000 - . gene_id "EIF6"; transcript_id "NM_002212:uc002xbx.1";
+chr20 hg19_knownGene CDS 33868457 33868632 0.000000 - 2 gene_id "EIF6"; transcript_id "NM_002212:uc002xbx.1";
+chr20 hg19_knownGene exon 33868457 33868632 0.000000 - . gene_id "EIF6"; transcript_id "NM_002212:uc002xbx.1";
+chr20 hg19_knownGene CDS 33871979 33872064 0.000000 - 1 gene_id "EIF6"; transcript_id "NM_002212:uc002xbx.1";
+chr20 hg19_knownGene exon 33871979 33872064 0.000000 - . gene_id "EIF6"; transcript_id "NM_002212:uc002xbx.1";
+chr20 hg19_knownGene CDS 33872184 33872290 0.000000 - 0 gene_id "EIF6"; transcript_id "NM_002212:uc002xbx.1";
+chr20 hg19_knownGene exon 33872184 33872295 0.000000 - . gene_id "EIF6"; transcript_id "NM_002212:uc002xbx.1";
+chr20 hg19_knownGene exon 33872529 33872594 0.000000 - . gene_id "EIF6"; transcript_id "NM_002212:uc002xbx.1";
+chr20 hg19_knownGene CDS 33867003 33867009 0.000000 - 1 gene_id "EIF6"; transcript_id "NM_181466:uc002xbz.1";
+chr20 hg19_knownGene exon 33866725 33867009 0.000000 - . gene_id "EIF6"; transcript_id "NM_181466:uc002xbz.1";
+chr20 hg19_knownGene CDS 33867369 33867550 0.000000 - 0 gene_id "EIF6"; transcript_id "NM_181466:uc002xbz.1";
+chr20 hg19_knownGene exon 33867369 33867550 0.000000 - . gene_id "EIF6"; transcript_id "NM_181466:uc002xbz.1";
+chr20 hg19_knownGene CDS 33867745 33867921 0.000000 - 0 gene_id "EIF6"; transcript_id "NM_181466:uc002xbz.1";
+chr20 hg19_knownGene exon 33867745 33867921 0.000000 - . gene_id "EIF6"; transcript_id "NM_181466:uc002xbz.1";
+chr20 hg19_knownGene CDS 33871979 33872290 0.000000 - 0 gene_id "EIF6"; transcript_id "NM_181466:uc002xbz.1";
+chr20 hg19_knownGene exon 33871979 33872295 0.000000 - . gene_id "EIF6"; transcript_id "NM_181466:uc002xbz.1";
+chr20 hg19_knownGene exon 33872529 33872594 0.000000 - . gene_id "EIF6"; transcript_id "NM_181466:uc002xbz.1";
+chr20 hg19_knownGene exon 33866725 33867009 0.000000 - . gene_id "EIF6"; transcript_id "BC095465:uc002xby.1";
+chr20 hg19_knownGene exon 33867369 33867550 0.000000 - . gene_id "EIF6"; transcript_id "BC095465:uc002xby.1";
+chr20 hg19_knownGene exon 33867745 33867921 0.000000 - . gene_id "EIF6"; transcript_id "BC095465:uc002xby.1";
+chr20 hg19_knownGene exon 33871979 33872064 0.000000 - . gene_id "EIF6"; transcript_id "BC095465:uc002xby.1";
+chr20 hg19_knownGene exon 33872184 33872295 0.000000 - . gene_id "EIF6"; transcript_id "BC095465:uc002xby.1";
+chr20 hg19_knownGene exon 33872529 33872594 0.000000 - . gene_id "EIF6"; transcript_id "BC095465:uc002xby.1";
+chr20 hg19_knownGene CDS 33874341 33875775 0.000000 - 1 gene_id "FAM83C"; transcript_id "NM_178468:uc021wck.1";
+chr20 hg19_knownGene exon 33873534 33875775 0.000000 - . gene_id "FAM83C"; transcript_id "NM_178468:uc021wck.1";
+chr20 hg19_knownGene CDS 33876264 33876388 0.000000 - 0 gene_id "FAM83C"; transcript_id "NM_178468:uc021wck.1";
+chr20 hg19_knownGene exon 33876264 33876388 0.000000 - . gene_id "FAM83C"; transcript_id "NM_178468:uc021wck.1";
+chr20 hg19_knownGene CDS 33876594 33876761 0.000000 - 0 gene_id "FAM83C"; transcript_id "NM_178468:uc021wck.1";
+chr20 hg19_knownGene exon 33876594 33876761 0.000000 - . gene_id "FAM83C"; transcript_id "NM_178468:uc021wck.1";
+chr20 hg19_knownGene CDS 33879595 33880107 0.000000 - 0 gene_id "FAM83C"; transcript_id "NM_178468:uc021wck.1";
+chr20 hg19_knownGene exon 33879595 33880225 0.000000 - . gene_id "FAM83C"; transcript_id "NM_178468:uc021wck.1";
+chr20 hg19_knownGene CDS 33874341 33875309 0.000000 - 0 gene_id "FAM83C"; transcript_id "AX746786:uc002xcb.1";
+chr20 hg19_knownGene exon 33873536 33875309 0.000000 - . gene_id "FAM83C"; transcript_id "AX746786:uc002xcb.1";
+chr20 hg19_knownGene CDS 33876305 33876388 0.000000 - 0 gene_id "FAM83C"; transcript_id "AX746786:uc002xcb.1";
+chr20 hg19_knownGene exon 33876305 33876388 0.000000 - . gene_id "FAM83C"; transcript_id "AX746786:uc002xcb.1";
+chr20 hg19_knownGene CDS 33876594 33876746 0.000000 - 0 gene_id "FAM83C"; transcript_id "AX746786:uc002xcb.1";
+chr20 hg19_knownGene exon 33876594 33876761 0.000000 - . gene_id "FAM83C"; transcript_id "AX746786:uc002xcb.1";
+chr20 hg19_knownGene exon 33878206 33878278 0.000000 - . gene_id "FAM83C"; transcript_id "AX746786:uc002xcb.1";
+chr20 hg19_knownGene exon 33879595 33880225 0.000000 - . gene_id "FAM83C"; transcript_id "AX746786:uc002xcb.1";
+chr20 hg19_knownGene exon 33890383 33893057 0.000000 - . gene_id "AK128252"; transcript_id "AK128252:uc002xch.3";
+chr20 hg19_knownGene CDS 33891741 33891872 0.000000 - 0 gene_id "UQCC"; transcript_id "BX537568:uc002xcc.3";
+chr20 hg19_knownGene exon 33890369 33891872 0.000000 - . gene_id "UQCC"; transcript_id "BX537568:uc002xcc.3";
+chr20 hg19_knownGene CDS 33894469 33894672 0.000000 - 0 gene_id "UQCC"; transcript_id "BX537568:uc002xcc.3";
+chr20 hg19_knownGene exon 33894469 33894862 0.000000 - . gene_id "UQCC"; transcript_id "BX537568:uc002xcc.3";
+chr20 hg19_knownGene exon 33969331 33969610 0.000000 - . gene_id "7SK"; transcript_id ":uc021wcm.1";
+chr20 hg19_knownGene CDS 33891741 33891872 0.000000 - 0 gene_id "UQCC"; transcript_id "AK295379:uc010zuy.2";
+chr20 hg19_knownGene exon 33890369 33891872 0.000000 - . gene_id "UQCC"; transcript_id "AK295379:uc010zuy.2";
+chr20 hg19_knownGene CDS 33894469 33894582 0.000000 - 0 gene_id "UQCC"; transcript_id "AK295379:uc010zuy.2";
+chr20 hg19_knownGene exon 33894469 33894582 0.000000 - . gene_id "UQCC"; transcript_id "AK295379:uc010zuy.2";
+chr20 hg19_knownGene CDS 33902491 33902568 0.000000 - 0 gene_id "UQCC"; transcript_id "AK295379:uc010zuy.2";
+chr20 hg19_knownGene exon 33902491 33902568 0.000000 - . gene_id "UQCC"; transcript_id "AK295379:uc010zuy.2";
+chr20 hg19_knownGene CDS 33934967 33935075 0.000000 - 1 gene_id "UQCC"; transcript_id "AK295379:uc010zuy.2";
+chr20 hg19_knownGene exon 33934967 33935075 0.000000 - . gene_id "UQCC"; transcript_id "AK295379:uc010zuy.2";
+chr20 hg19_knownGene CDS 33954360 33954417 0.000000 - 2 gene_id "UQCC"; transcript_id "AK295379:uc010zuy.2";
+chr20 hg19_knownGene exon 33954360 33954417 0.000000 - . gene_id "UQCC"; transcript_id "AK295379:uc010zuy.2";
+chr20 hg19_knownGene CDS 33961987 33962059 0.000000 - 0 gene_id "UQCC"; transcript_id "AK295379:uc010zuy.2";
+chr20 hg19_knownGene exon 33961987 33962059 0.000000 - . gene_id "UQCC"; transcript_id "AK295379:uc010zuy.2";
+chr20 hg19_knownGene CDS 33969721 33969756 0.000000 - 0 gene_id "UQCC"; transcript_id "AK295379:uc010zuy.2";
+chr20 hg19_knownGene exon 33969721 33969828 0.000000 - . gene_id "UQCC"; transcript_id "AK295379:uc010zuy.2";
+chr20 hg19_knownGene exon 33981895 33981999 0.000000 - . gene_id "UQCC"; transcript_id "AK295379:uc010zuy.2";
+chr20 hg19_knownGene CDS 33891741 33891872 0.000000 - 0 gene_id "UQCC"; transcript_id "AY050660:uc021wcl.1";
+chr20 hg19_knownGene exon 33890369 33891872 0.000000 - . gene_id "UQCC"; transcript_id "AY050660:uc021wcl.1";
+chr20 hg19_knownGene CDS 33894469 33894582 0.000000 - 0 gene_id "UQCC"; transcript_id "AY050660:uc021wcl.1";
+chr20 hg19_knownGene exon 33894469 33894582 0.000000 - . gene_id "UQCC"; transcript_id "AY050660:uc021wcl.1";
+chr20 hg19_knownGene CDS 33902491 33902568 0.000000 - 0 gene_id "UQCC"; transcript_id "AY050660:uc021wcl.1";
+chr20 hg19_knownGene exon 33902491 33902568 0.000000 - . gene_id "UQCC"; transcript_id "AY050660:uc021wcl.1";
+chr20 hg19_knownGene CDS 33934967 33935075 0.000000 - 1 gene_id "UQCC"; transcript_id "AY050660:uc021wcl.1";
+chr20 hg19_knownGene exon 33934967 33935075 0.000000 - . gene_id "UQCC"; transcript_id "AY050660:uc021wcl.1";
+chr20 hg19_knownGene CDS 33954360 33954417 0.000000 - 2 gene_id "UQCC"; transcript_id "AY050660:uc021wcl.1";
+chr20 hg19_knownGene exon 33954360 33954417 0.000000 - . gene_id "UQCC"; transcript_id "AY050660:uc021wcl.1";
+chr20 hg19_knownGene CDS 33969729 33969828 0.000000 - 0 gene_id "UQCC"; transcript_id "AY050660:uc021wcl.1";
+chr20 hg19_knownGene exon 33969729 33969828 0.000000 - . gene_id "UQCC"; transcript_id "AY050660:uc021wcl.1";
+chr20 hg19_knownGene CDS 33971841 33971927 0.000000 - 0 gene_id "UQCC"; transcript_id "AY050660:uc021wcl.1";
+chr20 hg19_knownGene exon 33971841 33971936 0.000000 - . gene_id "UQCC"; transcript_id "AY050660:uc021wcl.1";
+chr20 hg19_knownGene exon 33981895 33981999 0.000000 - . gene_id "UQCC"; transcript_id "AY050660:uc021wcl.1";
+chr20 hg19_knownGene CDS 33934877 33935075 0.000000 - 1 gene_id "UQCC"; transcript_id "AB209400:uc002xci.1";
+chr20 hg19_knownGene exon 33931920 33935075 0.000000 - . gene_id "UQCC"; transcript_id "AB209400:uc002xci.1";
+chr20 hg19_knownGene CDS 33954360 33954417 0.000000 - 2 gene_id "UQCC"; transcript_id "AB209400:uc002xci.1";
+chr20 hg19_knownGene exon 33954360 33954417 0.000000 - . gene_id "UQCC"; transcript_id "AB209400:uc002xci.1";
+chr20 hg19_knownGene CDS 33961987 33962059 0.000000 - 0 gene_id "UQCC"; transcript_id "AB209400:uc002xci.1";
+chr20 hg19_knownGene exon 33961987 33962059 0.000000 - . gene_id "UQCC"; transcript_id "AB209400:uc002xci.1";
+chr20 hg19_knownGene CDS 33969721 33969828 0.000000 - 0 gene_id "UQCC"; transcript_id "AB209400:uc002xci.1";
+chr20 hg19_knownGene exon 33969721 33969828 0.000000 - . gene_id "UQCC"; transcript_id "AB209400:uc002xci.1";
+chr20 hg19_knownGene CDS 33971841 33971927 0.000000 - 0 gene_id "UQCC"; transcript_id "AB209400:uc002xci.1";
+chr20 hg19_knownGene exon 33971841 33971936 0.000000 - . gene_id "UQCC"; transcript_id "AB209400:uc002xci.1";
+chr20 hg19_knownGene exon 33981895 33982103 0.000000 - . gene_id "UQCC"; transcript_id "AB209400:uc002xci.1";
+chr20 hg19_knownGene CDS 33891741 33891872 0.000000 - 0 gene_id "UQCC"; transcript_id "NM_018244:uc002xcd.3";
+chr20 hg19_knownGene exon 33890369 33891872 0.000000 - . gene_id "UQCC"; transcript_id "NM_018244:uc002xcd.3";
+chr20 hg19_knownGene CDS 33894469 33894582 0.000000 - 0 gene_id "UQCC"; transcript_id "NM_018244:uc002xcd.3";
+chr20 hg19_knownGene exon 33894469 33894582 0.000000 - . gene_id "UQCC"; transcript_id "NM_018244:uc002xcd.3";
+chr20 hg19_knownGene CDS 33902491 33902568 0.000000 - 0 gene_id "UQCC"; transcript_id "NM_018244:uc002xcd.3";
+chr20 hg19_knownGene exon 33902491 33902568 0.000000 - . gene_id "UQCC"; transcript_id "NM_018244:uc002xcd.3";
+chr20 hg19_knownGene CDS 33934967 33935075 0.000000 - 1 gene_id "UQCC"; transcript_id "NM_018244:uc002xcd.3";
+chr20 hg19_knownGene exon 33934967 33935075 0.000000 - . gene_id "UQCC"; transcript_id "NM_018244:uc002xcd.3";
+chr20 hg19_knownGene CDS 33954360 33954417 0.000000 - 2 gene_id "UQCC"; transcript_id "NM_018244:uc002xcd.3";
+chr20 hg19_knownGene exon 33954360 33954417 0.000000 - . gene_id "UQCC"; transcript_id "NM_018244:uc002xcd.3";
+chr20 hg19_knownGene CDS 33961987 33962059 0.000000 - 0 gene_id "UQCC"; transcript_id "NM_018244:uc002xcd.3";
+chr20 hg19_knownGene exon 33961987 33962059 0.000000 - . gene_id "UQCC"; transcript_id "NM_018244:uc002xcd.3";
+chr20 hg19_knownGene CDS 33969721 33969828 0.000000 - 0 gene_id "UQCC"; transcript_id "NM_018244:uc002xcd.3";
+chr20 hg19_knownGene exon 33969721 33969828 0.000000 - . gene_id "UQCC"; transcript_id "NM_018244:uc002xcd.3";
+chr20 hg19_knownGene CDS 33971841 33971936 0.000000 - 0 gene_id "UQCC"; transcript_id "NM_018244:uc002xcd.3";
+chr20 hg19_knownGene exon 33971841 33971936 0.000000 - . gene_id "UQCC"; transcript_id "NM_018244:uc002xcd.3";
+chr20 hg19_knownGene CDS 33981895 33981999 0.000000 - 0 gene_id "UQCC"; transcript_id "NM_018244:uc002xcd.3";
+chr20 hg19_knownGene exon 33981895 33981999 0.000000 - . gene_id "UQCC"; transcript_id "NM_018244:uc002xcd.3";
+chr20 hg19_knownGene CDS 33999743 33999766 0.000000 - 0 gene_id "UQCC"; transcript_id "NM_018244:uc002xcd.3";
+chr20 hg19_knownGene exon 33999743 33999945 0.000000 - . gene_id "UQCC"; transcript_id "NM_018244:uc002xcd.3";
+chr20 hg19_knownGene CDS 33891741 33891872 0.000000 - 0 gene_id "UQCC"; transcript_id "AK302133:uc010zva.2";
+chr20 hg19_knownGene exon 33890369 33891872 0.000000 - . gene_id "UQCC"; transcript_id "AK302133:uc010zva.2";
+chr20 hg19_knownGene CDS 33894469 33894582 0.000000 - 0 gene_id "UQCC"; transcript_id "AK302133:uc010zva.2";
+chr20 hg19_knownGene exon 33894469 33894582 0.000000 - . gene_id "UQCC"; transcript_id "AK302133:uc010zva.2";
+chr20 hg19_knownGene CDS 33902491 33902510 0.000000 - 2 gene_id "UQCC"; transcript_id "AK302133:uc010zva.2";
+chr20 hg19_knownGene exon 33902491 33902510 0.000000 - . gene_id "UQCC"; transcript_id "AK302133:uc010zva.2";
+chr20 hg19_knownGene CDS 33971846 33971936 0.000000 - 0 gene_id "UQCC"; transcript_id "AK302133:uc010zva.2";
+chr20 hg19_knownGene exon 33971846 33971936 0.000000 - . gene_id "UQCC"; transcript_id "AK302133:uc010zva.2";
+chr20 hg19_knownGene CDS 33981895 33981999 0.000000 - 0 gene_id "UQCC"; transcript_id "AK302133:uc010zva.2";
+chr20 hg19_knownGene exon 33981895 33981999 0.000000 - . gene_id "UQCC"; transcript_id "AK302133:uc010zva.2";
+chr20 hg19_knownGene CDS 33999743 33999766 0.000000 - 0 gene_id "UQCC"; transcript_id "AK302133:uc010zva.2";
+chr20 hg19_knownGene exon 33999743 33999945 0.000000 - . gene_id "UQCC"; transcript_id "AK302133:uc010zva.2";
+chr20 hg19_knownGene CDS 33891741 33891872 0.000000 - 0 gene_id "UQCC"; transcript_id "NM_199487:uc010gfb.3";
+chr20 hg19_knownGene exon 33890369 33891872 0.000000 - . gene_id "UQCC"; transcript_id "NM_199487:uc010gfb.3";
+chr20 hg19_knownGene CDS 33894469 33894582 0.000000 - 0 gene_id "UQCC"; transcript_id "NM_199487:uc010gfb.3";
+chr20 hg19_knownGene exon 33894469 33894582 0.000000 - . gene_id "UQCC"; transcript_id "NM_199487:uc010gfb.3";
+chr20 hg19_knownGene CDS 33934967 33935075 0.000000 - 1 gene_id "UQCC"; transcript_id "NM_199487:uc010gfb.3";
+chr20 hg19_knownGene exon 33934967 33935075 0.000000 - . gene_id "UQCC"; transcript_id "NM_199487:uc010gfb.3";
+chr20 hg19_knownGene CDS 33954360 33954417 0.000000 - 2 gene_id "UQCC"; transcript_id "NM_199487:uc010gfb.3";
+chr20 hg19_knownGene exon 33954360 33954417 0.000000 - . gene_id "UQCC"; transcript_id "NM_199487:uc010gfb.3";
+chr20 hg19_knownGene CDS 33961987 33962059 0.000000 - 0 gene_id "UQCC"; transcript_id "NM_199487:uc010gfb.3";
+chr20 hg19_knownGene exon 33961987 33962059 0.000000 - . gene_id "UQCC"; transcript_id "NM_199487:uc010gfb.3";
+chr20 hg19_knownGene CDS 33969721 33969828 0.000000 - 0 gene_id "UQCC"; transcript_id "NM_199487:uc010gfb.3";
+chr20 hg19_knownGene exon 33969721 33969828 0.000000 - . gene_id "UQCC"; transcript_id "NM_199487:uc010gfb.3";
+chr20 hg19_knownGene CDS 33971841 33971936 0.000000 - 0 gene_id "UQCC"; transcript_id "NM_199487:uc010gfb.3";
+chr20 hg19_knownGene exon 33971841 33971936 0.000000 - . gene_id "UQCC"; transcript_id "NM_199487:uc010gfb.3";
+chr20 hg19_knownGene CDS 33981895 33981999 0.000000 - 0 gene_id "UQCC"; transcript_id "NM_199487:uc010gfb.3";
+chr20 hg19_knownGene exon 33981895 33981999 0.000000 - . gene_id "UQCC"; transcript_id "NM_199487:uc010gfb.3";
+chr20 hg19_knownGene CDS 33999743 33999766 0.000000 - 0 gene_id "UQCC"; transcript_id "NM_199487:uc010gfb.3";
+chr20 hg19_knownGene exon 33999743 33999945 0.000000 - . gene_id "UQCC"; transcript_id "NM_199487:uc010gfb.3";
+chr20 hg19_knownGene CDS 33891741 33891872 0.000000 - 0 gene_id "UQCC"; transcript_id "NM_001184977:uc010zvb.2";
+chr20 hg19_knownGene exon 33890369 33891872 0.000000 - . gene_id "UQCC"; transcript_id "NM_001184977:uc010zvb.2";
+chr20 hg19_knownGene CDS 33894469 33894582 0.000000 - 0 gene_id "UQCC"; transcript_id "NM_001184977:uc010zvb.2";
+chr20 hg19_knownGene exon 33894469 33894582 0.000000 - . gene_id "UQCC"; transcript_id "NM_001184977:uc010zvb.2";
+chr20 hg19_knownGene CDS 33902491 33902568 0.000000 - 0 gene_id "UQCC"; transcript_id "NM_001184977:uc010zvb.2";
+chr20 hg19_knownGene exon 33902491 33902568 0.000000 - . gene_id "UQCC"; transcript_id "NM_001184977:uc010zvb.2";
+chr20 hg19_knownGene CDS 33934967 33935075 0.000000 - 1 gene_id "UQCC"; transcript_id "NM_001184977:uc010zvb.2";
+chr20 hg19_knownGene exon 33934967 33935075 0.000000 - . gene_id "UQCC"; transcript_id "NM_001184977:uc010zvb.2";
+chr20 hg19_knownGene CDS 33954360 33954417 0.000000 - 2 gene_id "UQCC"; transcript_id "NM_001184977:uc010zvb.2";
+chr20 hg19_knownGene exon 33954360 33954417 0.000000 - . gene_id "UQCC"; transcript_id "NM_001184977:uc010zvb.2";
+chr20 hg19_knownGene CDS 33961987 33962059 0.000000 - 0 gene_id "UQCC"; transcript_id "NM_001184977:uc010zvb.2";
+chr20 hg19_knownGene exon 33961987 33962059 0.000000 - . gene_id "UQCC"; transcript_id "NM_001184977:uc010zvb.2";
+chr20 hg19_knownGene CDS 33981895 33981999 0.000000 - 0 gene_id "UQCC"; transcript_id "NM_001184977:uc010zvb.2";
+chr20 hg19_knownGene exon 33981895 33981999 0.000000 - . gene_id "UQCC"; transcript_id "NM_001184977:uc010zvb.2";
+chr20 hg19_knownGene CDS 33999743 33999766 0.000000 - 0 gene_id "UQCC"; transcript_id "NM_001184977:uc010zvb.2";
+chr20 hg19_knownGene exon 33999743 33999945 0.000000 - . gene_id "UQCC"; transcript_id "NM_001184977:uc010zvb.2";
+chr20 hg19_knownGene CDS 33891741 33891872 0.000000 - 0 gene_id "UQCC"; transcript_id "AK022742:uc002xcg.3";
+chr20 hg19_knownGene exon 33890369 33891872 0.000000 - . gene_id "UQCC"; transcript_id "AK022742:uc002xcg.3";
+chr20 hg19_knownGene CDS 33894469 33894582 0.000000 - 0 gene_id "UQCC"; transcript_id "AK022742:uc002xcg.3";
+chr20 hg19_knownGene exon 33894469 33894582 0.000000 - . gene_id "UQCC"; transcript_id "AK022742:uc002xcg.3";
+chr20 hg19_knownGene CDS 33902491 33902568 0.000000 - 0 gene_id "UQCC"; transcript_id "AK022742:uc002xcg.3";
+chr20 hg19_knownGene exon 33902491 33902568 0.000000 - . gene_id "UQCC"; transcript_id "AK022742:uc002xcg.3";
+chr20 hg19_knownGene CDS 33934967 33935075 0.000000 - 1 gene_id "UQCC"; transcript_id "AK022742:uc002xcg.3";
+chr20 hg19_knownGene exon 33934967 33935075 0.000000 - . gene_id "UQCC"; transcript_id "AK022742:uc002xcg.3";
+chr20 hg19_knownGene CDS 33954360 33954417 0.000000 - 2 gene_id "UQCC"; transcript_id "AK022742:uc002xcg.3";
+chr20 hg19_knownGene exon 33954360 33954417 0.000000 - . gene_id "UQCC"; transcript_id "AK022742:uc002xcg.3";
+chr20 hg19_knownGene CDS 33969721 33969724 0.000000 - 0 gene_id "UQCC"; transcript_id "AK022742:uc002xcg.3";
+chr20 hg19_knownGene exon 33969721 33969828 0.000000 - . gene_id "UQCC"; transcript_id "AK022742:uc002xcg.3";
+chr20 hg19_knownGene exon 33971841 33971936 0.000000 - . gene_id "UQCC"; transcript_id "AK022742:uc002xcg.3";
+chr20 hg19_knownGene exon 33981895 33981999 0.000000 - . gene_id "UQCC"; transcript_id "AK022742:uc002xcg.3";
+chr20 hg19_knownGene exon 33997148 33997270 0.000000 - . gene_id "UQCC"; transcript_id "AK022742:uc002xcg.3";
+chr20 hg19_knownGene exon 33999743 33999945 0.000000 - . gene_id "UQCC"; transcript_id "AK022742:uc002xcg.3";
+chr20 hg19_knownGene CDS 33891741 33891872 0.000000 - 0 gene_id "UQCC"; transcript_id "BC008871:uc002xcf.3";
+chr20 hg19_knownGene exon 33890369 33891872 0.000000 - . gene_id "UQCC"; transcript_id "BC008871:uc002xcf.3";
+chr20 hg19_knownGene CDS 33894469 33894582 0.000000 - 0 gene_id "UQCC"; transcript_id "BC008871:uc002xcf.3";
+chr20 hg19_knownGene exon 33894469 33894582 0.000000 - . gene_id "UQCC"; transcript_id "BC008871:uc002xcf.3";
+chr20 hg19_knownGene CDS 33902491 33902568 0.000000 - 0 gene_id "UQCC"; transcript_id "BC008871:uc002xcf.3";
+chr20 hg19_knownGene exon 33902491 33902568 0.000000 - . gene_id "UQCC"; transcript_id "BC008871:uc002xcf.3";
+chr20 hg19_knownGene CDS 33934967 33935075 0.000000 - 1 gene_id "UQCC"; transcript_id "BC008871:uc002xcf.3";
+chr20 hg19_knownGene exon 33934967 33935075 0.000000 - . gene_id "UQCC"; transcript_id "BC008871:uc002xcf.3";
+chr20 hg19_knownGene CDS 33954360 33954417 0.000000 - 2 gene_id "UQCC"; transcript_id "BC008871:uc002xcf.3";
+chr20 hg19_knownGene exon 33954360 33954417 0.000000 - . gene_id "UQCC"; transcript_id "BC008871:uc002xcf.3";
+chr20 hg19_knownGene CDS 33981895 33981964 0.000000 - 0 gene_id "UQCC"; transcript_id "BC008871:uc002xcf.3";
+chr20 hg19_knownGene exon 33981895 33981999 0.000000 - . gene_id "UQCC"; transcript_id "BC008871:uc002xcf.3";
+chr20 hg19_knownGene exon 33999743 33999945 0.000000 - . gene_id "UQCC"; transcript_id "BC008871:uc002xcf.3";
+chr20 hg19_knownGene CDS 33891741 33891872 0.000000 - 0 gene_id "UQCC"; transcript_id "AK293149:uc010zuz.2";
+chr20 hg19_knownGene exon 33890369 33891872 0.000000 - . gene_id "UQCC"; transcript_id "AK293149:uc010zuz.2";
+chr20 hg19_knownGene CDS 33894469 33894582 0.000000 - 0 gene_id "UQCC"; transcript_id "AK293149:uc010zuz.2";
+chr20 hg19_knownGene exon 33894469 33894582 0.000000 - . gene_id "UQCC"; transcript_id "AK293149:uc010zuz.2";
+chr20 hg19_knownGene CDS 33902491 33902568 0.000000 - 0 gene_id "UQCC"; transcript_id "AK293149:uc010zuz.2";
+chr20 hg19_knownGene exon 33902491 33902568 0.000000 - . gene_id "UQCC"; transcript_id "AK293149:uc010zuz.2";
+chr20 hg19_knownGene CDS 33934967 33935074 0.000000 - 0 gene_id "UQCC"; transcript_id "AK293149:uc010zuz.2";
+chr20 hg19_knownGene exon 33934967 33935075 0.000000 - . gene_id "UQCC"; transcript_id "AK293149:uc010zuz.2";
+chr20 hg19_knownGene exon 33999743 33999945 0.000000 - . gene_id "UQCC"; transcript_id "AK293149:uc010zuz.2";
+chr20 hg19_knownGene CDS 33934877 33935075 0.000000 - 1 gene_id "UQCC"; transcript_id "AK308819:uc010gfd.2";
+chr20 hg19_knownGene exon 33931920 33935075 0.000000 - . gene_id "UQCC"; transcript_id "AK308819:uc010gfd.2";
+chr20 hg19_knownGene CDS 33954360 33954417 0.000000 - 2 gene_id "UQCC"; transcript_id "AK308819:uc010gfd.2";
+chr20 hg19_knownGene exon 33954360 33954417 0.000000 - . gene_id "UQCC"; transcript_id "AK308819:uc010gfd.2";
+chr20 hg19_knownGene CDS 33961987 33962059 0.000000 - 0 gene_id "UQCC"; transcript_id "AK308819:uc010gfd.2";
+chr20 hg19_knownGene exon 33961987 33962059 0.000000 - . gene_id "UQCC"; transcript_id "AK308819:uc010gfd.2";
+chr20 hg19_knownGene CDS 33969721 33969828 0.000000 - 0 gene_id "UQCC"; transcript_id "AK308819:uc010gfd.2";
+chr20 hg19_knownGene exon 33969721 33969828 0.000000 - . gene_id "UQCC"; transcript_id "AK308819:uc010gfd.2";
+chr20 hg19_knownGene CDS 33974080 33974192 0.000000 - 2 gene_id "UQCC"; transcript_id "AK308819:uc010gfd.2";
+chr20 hg19_knownGene exon 33974080 33974192 0.000000 - . gene_id "UQCC"; transcript_id "AK308819:uc010gfd.2";
+chr20 hg19_knownGene CDS 33981895 33981964 0.000000 - 0 gene_id "UQCC"; transcript_id "AK308819:uc010gfd.2";
+chr20 hg19_knownGene exon 33981895 33981999 0.000000 - . gene_id "UQCC"; transcript_id "AK308819:uc010gfd.2";
+chr20 hg19_knownGene exon 33999743 33999945 0.000000 - . gene_id "UQCC"; transcript_id "AK308819:uc010gfd.2";
+chr20 hg19_knownGene CDS 34020902 34020961 0.000000 + 0 gene_id "GDF5OS"; transcript_id "BC085019:uc002xcj.3";
+chr20 hg19_knownGene exon 34020827 34020961 0.000000 + . gene_id "GDF5OS"; transcript_id "BC085019:uc002xcj.3";
+chr20 hg19_knownGene CDS 34021650 34022582 0.000000 + 0 gene_id "GDF5OS"; transcript_id "BC085019:uc002xcj.3";
+chr20 hg19_knownGene exon 34021650 34023250 0.000000 + . gene_id "GDF5OS"; transcript_id "BC085019:uc002xcj.3";
+chr20 hg19_knownGene CDS 33897007 33897016 0.000000 - 1 gene_id "GDF5"; transcript_id "EU832171:uc010gfc.1";
+chr20 hg19_knownGene exon 33897002 33897016 0.000000 - . gene_id "GDF5"; transcript_id "EU832171:uc010gfc.1";
+chr20 hg19_knownGene CDS 34021711 34022581 0.000000 - 2 gene_id "GDF5"; transcript_id "EU832171:uc010gfc.1";
+chr20 hg19_knownGene exon 34021711 34022581 0.000000 - . gene_id "GDF5"; transcript_id "EU832171:uc010gfc.1";
+chr20 hg19_knownGene CDS 34025078 34025708 0.000000 - 0 gene_id "GDF5"; transcript_id "EU832171:uc010gfc.1";
+chr20 hg19_knownGene exon 34025078 34025949 0.000000 - . gene_id "GDF5"; transcript_id "EU832171:uc010gfc.1";
+chr20 hg19_knownGene CDS 34021710 34022581 0.000000 - 2 gene_id "GDF5"; transcript_id "NM_000557:uc002xck.1";
+chr20 hg19_knownGene exon 34021149 34022581 0.000000 - . gene_id "GDF5"; transcript_id "NM_000557:uc002xck.1";
+chr20 hg19_knownGene CDS 34025078 34025708 0.000000 - 0 gene_id "GDF5"; transcript_id "NM_000557:uc002xck.1";
+chr20 hg19_knownGene exon 34025078 34026027 0.000000 - . gene_id "GDF5"; transcript_id "NM_000557:uc002xck.1";
+chr20 hg19_knownGene exon 34042996 34043063 0.000000 + . gene_id "CEP250"; transcript_id "AB621828:uc021wcn.1";
+chr20 hg19_knownGene exon 34046125 34046195 0.000000 + . gene_id "CEP250"; transcript_id "AB621828:uc021wcn.1";
+chr20 hg19_knownGene exon 34047803 34047925 0.000000 + . gene_id "CEP250"; transcript_id "AB621828:uc021wcn.1";
+chr20 hg19_knownGene CDS 34050193 34050378 0.000000 + 0 gene_id "CEP250"; transcript_id "AB621828:uc021wcn.1";
+chr20 hg19_knownGene exon 34050090 34050378 0.000000 + . gene_id "CEP250"; transcript_id "AB621828:uc021wcn.1";
+chr20 hg19_knownGene CDS 34051400 34051456 0.000000 + 0 gene_id "CEP250"; transcript_id "AB621828:uc021wcn.1";
+chr20 hg19_knownGene exon 34051400 34051456 0.000000 + . gene_id "CEP250"; transcript_id "AB621828:uc021wcn.1";
+chr20 hg19_knownGene CDS 34053568 34053650 0.000000 + 0 gene_id "CEP250"; transcript_id "AB621828:uc021wcn.1";
+chr20 hg19_knownGene exon 34053568 34053650 0.000000 + . gene_id "CEP250"; transcript_id "AB621828:uc021wcn.1";
+chr20 hg19_knownGene CDS 34053864 34054026 0.000000 + 1 gene_id "CEP250"; transcript_id "AB621828:uc021wcn.1";
+chr20 hg19_knownGene exon 34053864 34054029 0.000000 + . gene_id "CEP250"; transcript_id "AB621828:uc021wcn.1";
+chr20 hg19_knownGene exon 34042996 34043063 0.000000 + . gene_id "CEP250"; transcript_id "AK307861:uc010gfe.1";
+chr20 hg19_knownGene exon 34046125 34046195 0.000000 + . gene_id "CEP250"; transcript_id "AK307861:uc010gfe.1";
+chr20 hg19_knownGene exon 34047803 34047925 0.000000 + . gene_id "CEP250"; transcript_id "AK307861:uc010gfe.1";
+chr20 hg19_knownGene exon 34050090 34050378 0.000000 + . gene_id "CEP250"; transcript_id "AK307861:uc010gfe.1";
+chr20 hg19_knownGene exon 34051400 34051456 0.000000 + . gene_id "CEP250"; transcript_id "AK307861:uc010gfe.1";
+chr20 hg19_knownGene exon 34053568 34053650 0.000000 + . gene_id "CEP250"; transcript_id "AK307861:uc010gfe.1";
+chr20 hg19_knownGene exon 34053859 34054029 0.000000 + . gene_id "CEP250"; transcript_id "AK307861:uc010gfe.1";
+chr20 hg19_knownGene exon 34054791 34054996 0.000000 + . gene_id "CEP250"; transcript_id "AK307861:uc010gfe.1";
+chr20 hg19_knownGene CDS 34054878 34054897 0.000000 + 0 gene_id "CEP250"; transcript_id "BC071869:uc002xco.3";
+chr20 hg19_knownGene exon 34054791 34054897 0.000000 + . gene_id "CEP250"; transcript_id "BC071869:uc002xco.3";
+chr20 hg19_knownGene CDS 34055129 34055380 0.000000 + 1 gene_id "CEP250"; transcript_id "BC071869:uc002xco.3";
+chr20 hg19_knownGene exon 34055129 34055380 0.000000 + . gene_id "CEP250"; transcript_id "BC071869:uc002xco.3";
+chr20 hg19_knownGene CDS 34057715 34057880 0.000000 + 1 gene_id "CEP250"; transcript_id "BC071869:uc002xco.3";
+chr20 hg19_knownGene exon 34057715 34057955 0.000000 + . gene_id "CEP250"; transcript_id "BC071869:uc002xco.3";
+chr20 hg19_knownGene exon 34043223 34043572 0.000000 + . gene_id "CEP250"; transcript_id "AK297572:uc010zvd.2";
+chr20 hg19_knownGene exon 34047803 34047925 0.000000 + . gene_id "CEP250"; transcript_id "AK297572:uc010zvd.2";
+chr20 hg19_knownGene exon 34050090 34050378 0.000000 + . gene_id "CEP250"; transcript_id "AK297572:uc010zvd.2";
+chr20 hg19_knownGene exon 34051400 34051456 0.000000 + . gene_id "CEP250"; transcript_id "AK297572:uc010zvd.2";
+chr20 hg19_knownGene exon 34053568 34053650 0.000000 + . gene_id "CEP250"; transcript_id "AK297572:uc010zvd.2";
+chr20 hg19_knownGene exon 34053864 34054029 0.000000 + . gene_id "CEP250"; transcript_id "AK297572:uc010zvd.2";
+chr20 hg19_knownGene exon 34054791 34054897 0.000000 + . gene_id "CEP250"; transcript_id "AK297572:uc010zvd.2";
+chr20 hg19_knownGene exon 34055129 34055380 0.000000 + . gene_id "CEP250"; transcript_id "AK297572:uc010zvd.2";
+chr20 hg19_knownGene exon 34057715 34057811 0.000000 + . gene_id "CEP250"; transcript_id "AK297572:uc010zvd.2";
+chr20 hg19_knownGene exon 34059875 34059976 0.000000 + . gene_id "CEP250"; transcript_id "AK297572:uc010zvd.2";
+chr20 hg19_knownGene exon 34060498 34060656 0.000000 + . gene_id "CEP250"; transcript_id "AK297572:uc010zvd.2";
+chr20 hg19_knownGene exon 34061199 34061377 0.000000 + . gene_id "CEP250"; transcript_id "AK297572:uc010zvd.2";
+chr20 hg19_knownGene exon 34061695 34061877 0.000000 + . gene_id "CEP250"; transcript_id "AK297572:uc010zvd.2";
+chr20 hg19_knownGene exon 34064274 34064420 0.000000 + . gene_id "CEP250"; transcript_id "AK297572:uc010zvd.2";
+chr20 hg19_knownGene exon 34065696 34065926 0.000000 + . gene_id "CEP250"; transcript_id "AK297572:uc010zvd.2";
+chr20 hg19_knownGene exon 34043223 34043572 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34046125 34046195 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34047803 34047925 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene CDS 34050193 34050378 0.000000 + 0 gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34050090 34050378 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene CDS 34051400 34051456 0.000000 + 0 gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34051400 34051456 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene CDS 34053568 34053650 0.000000 + 0 gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34053568 34053650 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene CDS 34053864 34054029 0.000000 + 1 gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34053864 34054029 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene CDS 34054791 34054897 0.000000 + 0 gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34054791 34054897 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene CDS 34055129 34055380 0.000000 + 1 gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34055129 34055380 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene CDS 34057715 34057811 0.000000 + 1 gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34057715 34057811 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene CDS 34059875 34059976 0.000000 + 0 gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34059875 34059976 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene CDS 34060498 34060656 0.000000 + 0 gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34060498 34060656 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene CDS 34061199 34061377 0.000000 + 0 gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34061199 34061377 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene CDS 34061695 34061877 0.000000 + 1 gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34061695 34061877 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene CDS 34063327 34063471 0.000000 + 1 gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34063327 34063471 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene CDS 34064274 34064420 0.000000 + 0 gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34064274 34064420 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene CDS 34065696 34065926 0.000000 + 0 gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34065696 34065926 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene CDS 34067056 34067249 0.000000 + 0 gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34067056 34067249 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene CDS 34067471 34067598 0.000000 + 1 gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34067471 34067598 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene CDS 34067801 34067970 0.000000 + 2 gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34067801 34067970 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene CDS 34078463 34078630 0.000000 + 0 gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34078463 34078630 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene CDS 34079038 34079172 0.000000 + 0 gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34079038 34079172 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene CDS 34081256 34081399 0.000000 + 0 gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34081256 34081399 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene CDS 34082351 34082484 0.000000 + 0 gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34082351 34082484 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene CDS 34084406 34084544 0.000000 + 1 gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34084406 34084544 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene CDS 34085548 34085896 0.000000 + 0 gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34085548 34085896 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene CDS 34086424 34086545 0.000000 + 2 gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34086424 34086545 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene CDS 34087878 34087998 0.000000 + 0 gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34087878 34087998 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene CDS 34089672 34089793 0.000000 + 2 gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34089672 34089793 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene CDS 34090218 34092833 0.000000 + 0 gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34090218 34092833 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene CDS 34095567 34095680 0.000000 + 0 gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34095567 34095680 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene CDS 34095864 34096019 0.000000 + 0 gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34095864 34096019 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene CDS 34096772 34096873 0.000000 + 0 gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34096772 34096873 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene CDS 34097827 34097883 0.000000 + 0 gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34097827 34097883 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene CDS 34099192 34099452 0.000000 + 0 gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34099192 34099803 0.000000 + . gene_id "CEP250"; transcript_id "NM_007186:uc021wco.1";
+chr20 hg19_knownGene exon 34047803 34047925 0.000000 + . gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene exon 34050090 34050378 0.000000 + . gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene exon 34051400 34051456 0.000000 + . gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene exon 34053568 34053650 0.000000 + . gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene exon 34053864 34054029 0.000000 + . gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene exon 34054791 34054897 0.000000 + . gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene exon 34055129 34055380 0.000000 + . gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene exon 34057715 34057811 0.000000 + . gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene exon 34059875 34059976 0.000000 + . gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene exon 34060498 34060656 0.000000 + . gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene exon 34061199 34061377 0.000000 + . gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene exon 34061695 34061877 0.000000 + . gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene exon 34063327 34063471 0.000000 + . gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene exon 34064274 34064420 0.000000 + . gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene CDS 34065729 34065926 0.000000 + 0 gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene exon 34065693 34065926 0.000000 + . gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene CDS 34067056 34067249 0.000000 + 0 gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene exon 34067056 34067249 0.000000 + . gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene CDS 34067471 34067598 0.000000 + 1 gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene exon 34067471 34067598 0.000000 + . gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene CDS 34067801 34067970 0.000000 + 2 gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene exon 34067801 34067970 0.000000 + . gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene CDS 34078463 34078630 0.000000 + 0 gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene exon 34078463 34078630 0.000000 + . gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene CDS 34079038 34079172 0.000000 + 0 gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene exon 34079038 34079172 0.000000 + . gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene CDS 34081256 34081399 0.000000 + 0 gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene exon 34081256 34081399 0.000000 + . gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene CDS 34082351 34082484 0.000000 + 0 gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene exon 34082351 34082484 0.000000 + . gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene CDS 34084406 34084544 0.000000 + 1 gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene exon 34084406 34084544 0.000000 + . gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene CDS 34085548 34085896 0.000000 + 0 gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene exon 34085548 34085896 0.000000 + . gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene CDS 34086424 34086545 0.000000 + 2 gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene exon 34086424 34086545 0.000000 + . gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene CDS 34087878 34087998 0.000000 + 0 gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene exon 34087878 34087998 0.000000 + . gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene CDS 34089672 34089793 0.000000 + 2 gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene exon 34089672 34089793 0.000000 + . gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene CDS 34090218 34092833 0.000000 + 0 gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene exon 34090218 34092833 0.000000 + . gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene CDS 34095567 34095680 0.000000 + 0 gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene exon 34095567 34095680 0.000000 + . gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene CDS 34095864 34096019 0.000000 + 0 gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene exon 34095864 34096019 0.000000 + . gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene CDS 34096772 34096873 0.000000 + 0 gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene exon 34096772 34096873 0.000000 + . gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene CDS 34097827 34097883 0.000000 + 0 gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene exon 34097827 34097883 0.000000 + . gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene CDS 34099192 34099452 0.000000 + 0 gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene exon 34099192 34099803 0.000000 + . gene_id "CEP250"; transcript_id "BC144706:uc010zve.2";
+chr20 hg19_knownGene exon 34108570 34108971 0.000000 - . gene_id "C20orf173"; transcript_id "NR_026933:uc010gff.3";
+chr20 hg19_knownGene exon 34109799 34109918 0.000000 - . gene_id "C20orf173"; transcript_id "NR_026933:uc010gff.3";
+chr20 hg19_knownGene exon 34110018 34110066 0.000000 - . gene_id "C20orf173"; transcript_id "NR_026933:uc010gff.3";
+chr20 hg19_knownGene exon 34110219 34110417 0.000000 - . gene_id "C20orf173"; transcript_id "NR_026933:uc010gff.3";
+chr20 hg19_knownGene exon 34110501 34110688 0.000000 - . gene_id "C20orf173"; transcript_id "NR_026933:uc010gff.3";
+chr20 hg19_knownGene exon 34110837 34111219 0.000000 - . gene_id "C20orf173"; transcript_id "NR_026933:uc010gff.3";
+chr20 hg19_knownGene exon 34116062 34116113 0.000000 - . gene_id "C20orf173"; transcript_id "NR_026933:uc010gff.3";
+chr20 hg19_knownGene exon 34116280 34116373 0.000000 - . gene_id "C20orf173"; transcript_id "NR_026933:uc010gff.3";
+chr20 hg19_knownGene exon 34116530 34116708 0.000000 - . gene_id "C20orf173"; transcript_id "NR_026933:uc010gff.3";
+chr20 hg19_knownGene exon 34116894 34117253 0.000000 - . gene_id "C20orf173"; transcript_id "NR_026933:uc010gff.3";
+chr20 hg19_knownGene exon 34117388 34117481 0.000000 - . gene_id "C20orf173"; transcript_id "NR_026933:uc010gff.3";
+chr20 hg19_knownGene exon 34114799 34115078 0.000000 - . gene_id "C20orf173"; transcript_id "NM_001145350:uc010zvf.1";
+chr20 hg19_knownGene CDS 34116090 34116113 0.000000 - 0 gene_id "C20orf173"; transcript_id "NM_001145350:uc010zvf.1";
+chr20 hg19_knownGene exon 34116062 34116113 0.000000 - . gene_id "C20orf173"; transcript_id "NM_001145350:uc010zvf.1";
+chr20 hg19_knownGene CDS 34116280 34116373 0.000000 - 1 gene_id "C20orf173"; transcript_id "NM_001145350:uc010zvf.1";
+chr20 hg19_knownGene exon 34116280 34116373 0.000000 - . gene_id "C20orf173"; transcript_id "NM_001145350:uc010zvf.1";
+chr20 hg19_knownGene CDS 34116530 34116708 0.000000 - 0 gene_id "C20orf173"; transcript_id "NM_001145350:uc010zvf.1";
+chr20 hg19_knownGene exon 34116530 34116708 0.000000 - . gene_id "C20orf173"; transcript_id "NM_001145350:uc010zvf.1";
+chr20 hg19_knownGene CDS 34116894 34117202 0.000000 - 0 gene_id "C20orf173"; transcript_id "NM_001145350:uc010zvf.1";
+chr20 hg19_knownGene exon 34116894 34117253 0.000000 - . gene_id "C20orf173"; transcript_id "NM_001145350:uc010zvf.1";
+chr20 hg19_knownGene exon 34117388 34117481 0.000000 - . gene_id "C20orf173"; transcript_id "NM_001145350:uc010zvf.1";
+chr20 hg19_knownGene exon 34114799 34115078 0.000000 - . gene_id "C20orf173"; transcript_id "AK058089:uc002xcp.2";
+chr20 hg19_knownGene CDS 34116090 34116113 0.000000 - 0 gene_id "C20orf173"; transcript_id "AK058089:uc002xcp.2";
+chr20 hg19_knownGene exon 34116062 34116113 0.000000 - . gene_id "C20orf173"; transcript_id "AK058089:uc002xcp.2";
+chr20 hg19_knownGene CDS 34116280 34116373 0.000000 - 1 gene_id "C20orf173"; transcript_id "AK058089:uc002xcp.2";
+chr20 hg19_knownGene exon 34116280 34116373 0.000000 - . gene_id "C20orf173"; transcript_id "AK058089:uc002xcp.2";
+chr20 hg19_knownGene CDS 34116530 34116858 0.000000 - 0 gene_id "C20orf173"; transcript_id "AK058089:uc002xcp.2";
+chr20 hg19_knownGene exon 34116530 34117076 0.000000 - . gene_id "C20orf173"; transcript_id "AK058089:uc002xcp.2";
+chr20 hg19_knownGene exon 34117388 34117481 0.000000 - . gene_id "C20orf173"; transcript_id "AK058089:uc002xcp.2";
+chr20 hg19_knownGene CDS 34129847 34129934 0.000000 + 0 gene_id "ERGIC3"; transcript_id "AK096484:uc002xcq.1";
+chr20 hg19_knownGene exon 34129778 34129934 0.000000 + . gene_id "ERGIC3"; transcript_id "AK096484:uc002xcq.1";
+chr20 hg19_knownGene CDS 34130072 34130142 0.000000 + 2 gene_id "ERGIC3"; transcript_id "AK096484:uc002xcq.1";
+chr20 hg19_knownGene exon 34130072 34130142 0.000000 + . gene_id "ERGIC3"; transcript_id "AK096484:uc002xcq.1";
+chr20 hg19_knownGene CDS 34130262 34130349 0.000000 + 0 gene_id "ERGIC3"; transcript_id "AK096484:uc002xcq.1";
+chr20 hg19_knownGene exon 34130262 34130349 0.000000 + . gene_id "ERGIC3"; transcript_id "AK096484:uc002xcq.1";
+chr20 hg19_knownGene CDS 34130571 34130758 0.000000 + 2 gene_id "ERGIC3"; transcript_id "AK096484:uc002xcq.1";
+chr20 hg19_knownGene exon 34130571 34133155 0.000000 + . gene_id "ERGIC3"; transcript_id "AK096484:uc002xcq.1";
+chr20 hg19_knownGene CDS 34129847 34129934 0.000000 + 0 gene_id "ERGIC3"; transcript_id "AF308298:uc002xcr.1";
+chr20 hg19_knownGene exon 34129778 34129934 0.000000 + . gene_id "ERGIC3"; transcript_id "AF308298:uc002xcr.1";
+chr20 hg19_knownGene CDS 34130072 34130142 0.000000 + 2 gene_id "ERGIC3"; transcript_id "AF308298:uc002xcr.1";
+chr20 hg19_knownGene exon 34130072 34130142 0.000000 + . gene_id "ERGIC3"; transcript_id "AF308298:uc002xcr.1";
+chr20 hg19_knownGene CDS 34130262 34130349 0.000000 + 0 gene_id "ERGIC3"; transcript_id "AF308298:uc002xcr.1";
+chr20 hg19_knownGene exon 34130262 34130349 0.000000 + . gene_id "ERGIC3"; transcript_id "AF308298:uc002xcr.1";
+chr20 hg19_knownGene CDS 34130571 34130690 0.000000 + 2 gene_id "ERGIC3"; transcript_id "AF308298:uc002xcr.1";
+chr20 hg19_knownGene exon 34130571 34130690 0.000000 + . gene_id "ERGIC3"; transcript_id "AF308298:uc002xcr.1";
+chr20 hg19_knownGene CDS 34135163 34135256 0.000000 + 2 gene_id "ERGIC3"; transcript_id "AF308298:uc002xcr.1";
+chr20 hg19_knownGene exon 34135163 34135256 0.000000 + . gene_id "ERGIC3"; transcript_id "AF308298:uc002xcr.1";
+chr20 hg19_knownGene CDS 34136262 34136427 0.000000 + 1 gene_id "ERGIC3"; transcript_id "AF308298:uc002xcr.1";
+chr20 hg19_knownGene exon 34136262 34136427 0.000000 + . gene_id "ERGIC3"; transcript_id "AF308298:uc002xcr.1";
+chr20 hg19_knownGene CDS 34136561 34136623 0.000000 + 0 gene_id "ERGIC3"; transcript_id "AF308298:uc002xcr.1";
+chr20 hg19_knownGene exon 34136561 34137537 0.000000 + . gene_id "ERGIC3"; transcript_id "AF308298:uc002xcr.1";
+chr20 hg19_knownGene CDS 34129847 34129934 0.000000 + 0 gene_id "ERGIC3"; transcript_id "AK300916:uc010zvg.2";
+chr20 hg19_knownGene exon 34129778 34129934 0.000000 + . gene_id "ERGIC3"; transcript_id "AK300916:uc010zvg.2";
+chr20 hg19_knownGene CDS 34130072 34130142 0.000000 + 2 gene_id "ERGIC3"; transcript_id "AK300916:uc010zvg.2";
+chr20 hg19_knownGene exon 34130072 34130142 0.000000 + . gene_id "ERGIC3"; transcript_id "AK300916:uc010zvg.2";
+chr20 hg19_knownGene CDS 34130262 34130349 0.000000 + 0 gene_id "ERGIC3"; transcript_id "AK300916:uc010zvg.2";
+chr20 hg19_knownGene exon 34130262 34130349 0.000000 + . gene_id "ERGIC3"; transcript_id "AK300916:uc010zvg.2";
+chr20 hg19_knownGene CDS 34130571 34130690 0.000000 + 2 gene_id "ERGIC3"; transcript_id "AK300916:uc010zvg.2";
+chr20 hg19_knownGene exon 34130571 34130690 0.000000 + . gene_id "ERGIC3"; transcript_id "AK300916:uc010zvg.2";
+chr20 hg19_knownGene CDS 34135163 34135256 0.000000 + 2 gene_id "ERGIC3"; transcript_id "AK300916:uc010zvg.2";
+chr20 hg19_knownGene exon 34135163 34135256 0.000000 + . gene_id "ERGIC3"; transcript_id "AK300916:uc010zvg.2";
+chr20 hg19_knownGene CDS 34136262 34136427 0.000000 + 1 gene_id "ERGIC3"; transcript_id "AK300916:uc010zvg.2";
+chr20 hg19_knownGene exon 34136262 34136427 0.000000 + . gene_id "ERGIC3"; transcript_id "AK300916:uc010zvg.2";
+chr20 hg19_knownGene CDS 34136561 34136618 0.000000 + 0 gene_id "ERGIC3"; transcript_id "AK300916:uc010zvg.2";
+chr20 hg19_knownGene exon 34136561 34136618 0.000000 + . gene_id "ERGIC3"; transcript_id "AK300916:uc010zvg.2";
+chr20 hg19_knownGene CDS 34142815 34142846 0.000000 + 2 gene_id "ERGIC3"; transcript_id "AK300916:uc010zvg.2";
+chr20 hg19_knownGene exon 34142815 34142846 0.000000 + . gene_id "ERGIC3"; transcript_id "AK300916:uc010zvg.2";
+chr20 hg19_knownGene CDS 34143804 34143900 0.000000 + 0 gene_id "ERGIC3"; transcript_id "AK300916:uc010zvg.2";
+chr20 hg19_knownGene exon 34143804 34143900 0.000000 + . gene_id "ERGIC3"; transcript_id "AK300916:uc010zvg.2";
+chr20 hg19_knownGene CDS 34143978 34144126 0.000000 + 2 gene_id "ERGIC3"; transcript_id "AK300916:uc010zvg.2";
+chr20 hg19_knownGene exon 34143978 34144209 0.000000 + . gene_id "ERGIC3"; transcript_id "AK300916:uc010zvg.2";
+chr20 hg19_knownGene CDS 34129847 34129934 0.000000 + 0 gene_id "ERGIC3"; transcript_id "NM_198398:uc002xcs.3";
+chr20 hg19_knownGene exon 34129778 34129934 0.000000 + . gene_id "ERGIC3"; transcript_id "NM_198398:uc002xcs.3";
+chr20 hg19_knownGene CDS 34130072 34130142 0.000000 + 2 gene_id "ERGIC3"; transcript_id "NM_198398:uc002xcs.3";
+chr20 hg19_knownGene exon 34130072 34130142 0.000000 + . gene_id "ERGIC3"; transcript_id "NM_198398:uc002xcs.3";
+chr20 hg19_knownGene CDS 34130262 34130349 0.000000 + 0 gene_id "ERGIC3"; transcript_id "NM_198398:uc002xcs.3";
+chr20 hg19_knownGene exon 34130262 34130349 0.000000 + . gene_id "ERGIC3"; transcript_id "NM_198398:uc002xcs.3";
+chr20 hg19_knownGene CDS 34130571 34130690 0.000000 + 2 gene_id "ERGIC3"; transcript_id "NM_198398:uc002xcs.3";
+chr20 hg19_knownGene exon 34130571 34130690 0.000000 + . gene_id "ERGIC3"; transcript_id "NM_198398:uc002xcs.3";
+chr20 hg19_knownGene CDS 34135163 34135256 0.000000 + 2 gene_id "ERGIC3"; transcript_id "NM_198398:uc002xcs.3";
+chr20 hg19_knownGene exon 34135163 34135256 0.000000 + . gene_id "ERGIC3"; transcript_id "NM_198398:uc002xcs.3";
+chr20 hg19_knownGene CDS 34136262 34136427 0.000000 + 1 gene_id "ERGIC3"; transcript_id "NM_198398:uc002xcs.3";
+chr20 hg19_knownGene exon 34136262 34136427 0.000000 + . gene_id "ERGIC3"; transcript_id "NM_198398:uc002xcs.3";
+chr20 hg19_knownGene CDS 34136561 34136618 0.000000 + 0 gene_id "ERGIC3"; transcript_id "NM_198398:uc002xcs.3";
+chr20 hg19_knownGene exon 34136561 34136618 0.000000 + . gene_id "ERGIC3"; transcript_id "NM_198398:uc002xcs.3";
+chr20 hg19_knownGene CDS 34142143 34142157 0.000000 + 2 gene_id "ERGIC3"; transcript_id "NM_198398:uc002xcs.3";
+chr20 hg19_knownGene exon 34142143 34142157 0.000000 + . gene_id "ERGIC3"; transcript_id "NM_198398:uc002xcs.3";
+chr20 hg19_knownGene CDS 34142815 34142846 0.000000 + 2 gene_id "ERGIC3"; transcript_id "NM_198398:uc002xcs.3";
+chr20 hg19_knownGene exon 34142815 34142846 0.000000 + . gene_id "ERGIC3"; transcript_id "NM_198398:uc002xcs.3";
+chr20 hg19_knownGene CDS 34143804 34143900 0.000000 + 0 gene_id "ERGIC3"; transcript_id "NM_198398:uc002xcs.3";
+chr20 hg19_knownGene exon 34143804 34143900 0.000000 + . gene_id "ERGIC3"; transcript_id "NM_198398:uc002xcs.3";
+chr20 hg19_knownGene CDS 34143978 34144042 0.000000 + 2 gene_id "ERGIC3"; transcript_id "NM_198398:uc002xcs.3";
+chr20 hg19_knownGene exon 34143978 34144042 0.000000 + . gene_id "ERGIC3"; transcript_id "NM_198398:uc002xcs.3";
+chr20 hg19_knownGene CDS 34144744 34144880 0.000000 + 0 gene_id "ERGIC3"; transcript_id "NM_198398:uc002xcs.3";
+chr20 hg19_knownGene exon 34144744 34144880 0.000000 + . gene_id "ERGIC3"; transcript_id "NM_198398:uc002xcs.3";
+chr20 hg19_knownGene CDS 34144965 34145020 0.000000 + 1 gene_id "ERGIC3"; transcript_id "NM_198398:uc002xcs.3";
+chr20 hg19_knownGene exon 34144965 34145020 0.000000 + . gene_id "ERGIC3"; transcript_id "NM_198398:uc002xcs.3";
+chr20 hg19_knownGene CDS 34145196 34145272 0.000000 + 2 gene_id "ERGIC3"; transcript_id "NM_198398:uc002xcs.3";
+chr20 hg19_knownGene exon 34145196 34145405 0.000000 + . gene_id "ERGIC3"; transcript_id "NM_198398:uc002xcs.3";
+chr20 hg19_knownGene CDS 34129847 34129934 0.000000 + 0 gene_id "ERGIC3"; transcript_id "NM_015966:uc002xct.3";
+chr20 hg19_knownGene exon 34129778 34129934 0.000000 + . gene_id "ERGIC3"; transcript_id "NM_015966:uc002xct.3";
+chr20 hg19_knownGene CDS 34130072 34130142 0.000000 + 2 gene_id "ERGIC3"; transcript_id "NM_015966:uc002xct.3";
+chr20 hg19_knownGene exon 34130072 34130142 0.000000 + . gene_id "ERGIC3"; transcript_id "NM_015966:uc002xct.3";
+chr20 hg19_knownGene CDS 34130262 34130349 0.000000 + 0 gene_id "ERGIC3"; transcript_id "NM_015966:uc002xct.3";
+chr20 hg19_knownGene exon 34130262 34130349 0.000000 + . gene_id "ERGIC3"; transcript_id "NM_015966:uc002xct.3";
+chr20 hg19_knownGene CDS 34130571 34130690 0.000000 + 2 gene_id "ERGIC3"; transcript_id "NM_015966:uc002xct.3";
+chr20 hg19_knownGene exon 34130571 34130690 0.000000 + . gene_id "ERGIC3"; transcript_id "NM_015966:uc002xct.3";
+chr20 hg19_knownGene CDS 34135163 34135256 0.000000 + 2 gene_id "ERGIC3"; transcript_id "NM_015966:uc002xct.3";
+chr20 hg19_knownGene exon 34135163 34135256 0.000000 + . gene_id "ERGIC3"; transcript_id "NM_015966:uc002xct.3";
+chr20 hg19_knownGene CDS 34136262 34136427 0.000000 + 1 gene_id "ERGIC3"; transcript_id "NM_015966:uc002xct.3";
+chr20 hg19_knownGene exon 34136262 34136427 0.000000 + . gene_id "ERGIC3"; transcript_id "NM_015966:uc002xct.3";
+chr20 hg19_knownGene CDS 34136561 34136618 0.000000 + 0 gene_id "ERGIC3"; transcript_id "NM_015966:uc002xct.3";
+chr20 hg19_knownGene exon 34136561 34136618 0.000000 + . gene_id "ERGIC3"; transcript_id "NM_015966:uc002xct.3";
+chr20 hg19_knownGene CDS 34142815 34142846 0.000000 + 2 gene_id "ERGIC3"; transcript_id "NM_015966:uc002xct.3";
+chr20 hg19_knownGene exon 34142815 34142846 0.000000 + . gene_id "ERGIC3"; transcript_id "NM_015966:uc002xct.3";
+chr20 hg19_knownGene CDS 34143804 34143900 0.000000 + 0 gene_id "ERGIC3"; transcript_id "NM_015966:uc002xct.3";
+chr20 hg19_knownGene exon 34143804 34143900 0.000000 + . gene_id "ERGIC3"; transcript_id "NM_015966:uc002xct.3";
+chr20 hg19_knownGene CDS 34143978 34144042 0.000000 + 2 gene_id "ERGIC3"; transcript_id "NM_015966:uc002xct.3";
+chr20 hg19_knownGene exon 34143978 34144042 0.000000 + . gene_id "ERGIC3"; transcript_id "NM_015966:uc002xct.3";
+chr20 hg19_knownGene CDS 34144744 34144880 0.000000 + 0 gene_id "ERGIC3"; transcript_id "NM_015966:uc002xct.3";
+chr20 hg19_knownGene exon 34144744 34144880 0.000000 + . gene_id "ERGIC3"; transcript_id "NM_015966:uc002xct.3";
+chr20 hg19_knownGene CDS 34144965 34145020 0.000000 + 1 gene_id "ERGIC3"; transcript_id "NM_015966:uc002xct.3";
+chr20 hg19_knownGene exon 34144965 34145020 0.000000 + . gene_id "ERGIC3"; transcript_id "NM_015966:uc002xct.3";
+chr20 hg19_knownGene CDS 34145196 34145272 0.000000 + 2 gene_id "ERGIC3"; transcript_id "NM_015966:uc002xct.3";
+chr20 hg19_knownGene exon 34145196 34145405 0.000000 + . gene_id "ERGIC3"; transcript_id "NM_015966:uc002xct.3";
+chr20 hg19_knownGene CDS 34146639 34146822 0.000000 - 1 gene_id "FER1L4"; transcript_id "AF218012:uc002xcx.3";
+chr20 hg19_knownGene exon 34146507 34146822 0.000000 - . gene_id "FER1L4"; transcript_id "AF218012:uc002xcx.3";
+chr20 hg19_knownGene CDS 34146926 34147026 0.000000 - 0 gene_id "FER1L4"; transcript_id "AF218012:uc002xcx.3";
+chr20 hg19_knownGene exon 34146926 34147026 0.000000 - . gene_id "FER1L4"; transcript_id "AF218012:uc002xcx.3";
+chr20 hg19_knownGene CDS 34147111 34147394 0.000000 - 2 gene_id "FER1L4"; transcript_id "AF218012:uc002xcx.3";
+chr20 hg19_knownGene exon 34147111 34147394 0.000000 - . gene_id "FER1L4"; transcript_id "AF218012:uc002xcx.3";
+chr20 hg19_knownGene CDS 34147890 34148131 0.000000 - 1 gene_id "FER1L4"; transcript_id "AF218012:uc002xcx.3";
+chr20 hg19_knownGene exon 34147890 34148131 0.000000 - . gene_id "FER1L4"; transcript_id "AF218012:uc002xcx.3";
+chr20 hg19_knownGene CDS 34148307 34148405 0.000000 - 1 gene_id "FER1L4"; transcript_id "AF218012:uc002xcx.3";
+chr20 hg19_knownGene exon 34148307 34148405 0.000000 - . gene_id "FER1L4"; transcript_id "AF218012:uc002xcx.3";
+chr20 hg19_knownGene CDS 34149619 34149692 0.000000 - 0 gene_id "FER1L4"; transcript_id "AF218012:uc002xcx.3";
+chr20 hg19_knownGene exon 34149619 34149704 0.000000 - . gene_id "FER1L4"; transcript_id "AF218012:uc002xcx.3";
+chr20 hg19_knownGene exon 34151622 34152834 0.000000 - . gene_id "FER1L4"; transcript_id "AF218012:uc002xcx.3";
+chr20 hg19_knownGene CDS 34152633 34152834 0.000000 - 1 gene_id "FER1L4"; transcript_id "AY461812:uc010gfg.1";
+chr20 hg19_knownGene exon 34151622 34152834 0.000000 - . gene_id "FER1L4"; transcript_id "AY461812:uc010gfg.1";
+chr20 hg19_knownGene CDS 34153016 34153143 0.000000 - 0 gene_id "FER1L4"; transcript_id "AY461812:uc010gfg.1";
+chr20 hg19_knownGene exon 34153016 34153143 0.000000 - . gene_id "FER1L4"; transcript_id "AY461812:uc010gfg.1";
+chr20 hg19_knownGene CDS 34164089 34164205 0.000000 - 0 gene_id "FER1L4"; transcript_id "AY461812:uc010gfg.1";
+chr20 hg19_knownGene exon 34164089 34164205 0.000000 - . gene_id "FER1L4"; transcript_id "AY461812:uc010gfg.1";
+chr20 hg19_knownGene CDS 34164303 34164440 0.000000 - 0 gene_id "FER1L4"; transcript_id "AY461812:uc010gfg.1";
+chr20 hg19_knownGene exon 34164303 34164440 0.000000 - . gene_id "FER1L4"; transcript_id "AY461812:uc010gfg.1";
+chr20 hg19_knownGene CDS 34164518 34164618 0.000000 - 2 gene_id "FER1L4"; transcript_id "AY461812:uc010gfg.1";
+chr20 hg19_knownGene exon 34164518 34164618 0.000000 - . gene_id "FER1L4"; transcript_id "AY461812:uc010gfg.1";
+chr20 hg19_knownGene CDS 34164708 34164750 0.000000 - 0 gene_id "FER1L4"; transcript_id "AY461812:uc010gfg.1";
+chr20 hg19_knownGene exon 34164708 34164750 0.000000 - . gene_id "FER1L4"; transcript_id "AY461812:uc010gfg.1";
+chr20 hg19_knownGene CDS 34166758 34166889 0.000000 - 0 gene_id "FER1L4"; transcript_id "AY461812:uc010gfg.1";
+chr20 hg19_knownGene exon 34166758 34166889 0.000000 - . gene_id "FER1L4"; transcript_id "AY461812:uc010gfg.1";
+chr20 hg19_knownGene CDS 34166978 34167036 0.000000 - 2 gene_id "FER1L4"; transcript_id "AY461812:uc010gfg.1";
+chr20 hg19_knownGene exon 34166978 34167036 0.000000 - . gene_id "FER1L4"; transcript_id "AY461812:uc010gfg.1";
+chr20 hg19_knownGene CDS 34167180 34167414 0.000000 - 0 gene_id "FER1L4"; transcript_id "AY461812:uc010gfg.1";
+chr20 hg19_knownGene exon 34167180 34167414 0.000000 - . gene_id "FER1L4"; transcript_id "AY461812:uc010gfg.1";
+chr20 hg19_knownGene CDS 34169961 34170122 0.000000 - 0 gene_id "FER1L4"; transcript_id "AY461812:uc010gfg.1";
+chr20 hg19_knownGene exon 34169961 34170122 0.000000 - . gene_id "FER1L4"; transcript_id "AY461812:uc010gfg.1";
+chr20 hg19_knownGene CDS 34170217 34170333 0.000000 - 0 gene_id "FER1L4"; transcript_id "AY461812:uc010gfg.1";
+chr20 hg19_knownGene exon 34170217 34170333 0.000000 - . gene_id "FER1L4"; transcript_id "AY461812:uc010gfg.1";
+chr20 hg19_knownGene CDS 34170761 34170934 0.000000 - 0 gene_id "FER1L4"; transcript_id "AY461812:uc010gfg.1";
+chr20 hg19_knownGene exon 34170761 34170934 0.000000 - . gene_id "FER1L4"; transcript_id "AY461812:uc010gfg.1";
+chr20 hg19_knownGene CDS 34171050 34171184 0.000000 - 0 gene_id "FER1L4"; transcript_id "AY461812:uc010gfg.1";
+chr20 hg19_knownGene exon 34171050 34171184 0.000000 - . gene_id "FER1L4"; transcript_id "AY461812:uc010gfg.1";
+chr20 hg19_knownGene CDS 34171608 34171732 0.000000 - 2 gene_id "FER1L4"; transcript_id "AY461812:uc010gfg.1";
+chr20 hg19_knownGene exon 34171608 34171732 0.000000 - . gene_id "FER1L4"; transcript_id "AY461812:uc010gfg.1";
+chr20 hg19_knownGene CDS 34171862 34172015 0.000000 - 0 gene_id "FER1L4"; transcript_id "AY461812:uc010gfg.1";
+chr20 hg19_knownGene exon 34171862 34172015 0.000000 - . gene_id "FER1L4"; transcript_id "AY461812:uc010gfg.1";
+chr20 hg19_knownGene CDS 34173046 34173165 0.000000 - 0 gene_id "FER1L4"; transcript_id "AY461812:uc010gfg.1";
+chr20 hg19_knownGene exon 34173046 34173198 0.000000 - . gene_id "FER1L4"; transcript_id "AY461812:uc010gfg.1";
+chr20 hg19_knownGene exon 34188485 34188846 0.000000 - . gene_id "FER1L4"; transcript_id "AK026266:uc010zvh.1";
+chr20 hg19_knownGene exon 34189454 34189640 0.000000 - . gene_id "FER1L4"; transcript_id "AK026266:uc010zvh.1";
+chr20 hg19_knownGene exon 34189728 34190673 0.000000 - . gene_id "FER1L4"; transcript_id "AK026266:uc010zvh.1";
+chr20 hg19_knownGene exon 34190932 34191063 0.000000 - . gene_id "FER1L4"; transcript_id "AK026266:uc010zvh.1";
+chr20 hg19_knownGene exon 34191181 34191241 0.000000 - . gene_id "FER1L4"; transcript_id "AK026266:uc010zvh.1";
+chr20 hg19_knownGene exon 34191719 34191889 0.000000 - . gene_id "FER1L4"; transcript_id "AK026266:uc010zvh.1";
+chr20 hg19_knownGene exon 34192226 34192267 0.000000 - . gene_id "FER1L4"; transcript_id "AK026266:uc010zvh.1";
+chr20 hg19_knownGene exon 34192452 34192543 0.000000 - . gene_id "FER1L4"; transcript_id "AK026266:uc010zvh.1";
+chr20 hg19_knownGene exon 34193024 34193248 0.000000 - . gene_id "FER1L4"; transcript_id "AK026266:uc010zvh.1";
+chr20 hg19_knownGene exon 34146507 34146822 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34146926 34147026 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34147111 34147394 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34147930 34148131 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34148307 34148405 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34149619 34149704 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34151622 34152834 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34153016 34153143 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34164089 34164205 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34164303 34164440 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34164518 34164618 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34164708 34164750 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34166758 34166889 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34166978 34167036 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34167180 34167378 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34169961 34170122 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34170217 34170333 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34171050 34171184 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34171862 34172015 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34173046 34173198 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34183399 34183515 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34183589 34183676 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34186936 34187036 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34187488 34187608 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34187695 34187866 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34188035 34188143 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34188485 34188846 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34189454 34189640 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34189728 34189911 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34190029 34190188 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34190445 34190529 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34190611 34190673 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34190932 34191063 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34191181 34191241 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34191719 34191889 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34192226 34192267 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34192452 34192543 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34194044 34194143 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34194240 34194328 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34195023 34195078 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene exon 34195337 34195484 0.000000 - . gene_id "FER1L4"; transcript_id "NR_024377:uc002xcy.4";
+chr20 hg19_knownGene CDS 34203926 34204229 0.000000 + 0 gene_id "SPAG4"; transcript_id "NM_003116:uc002xdb.1";
+chr20 hg19_knownGene exon 34203809 34204229 0.000000 + . gene_id "SPAG4"; transcript_id "NM_003116:uc002xdb.1";
+chr20 hg19_knownGene CDS 34205058 34205162 0.000000 + 2 gene_id "SPAG4"; transcript_id "NM_003116:uc002xdb.1";
+chr20 hg19_knownGene exon 34205058 34205162 0.000000 + . gene_id "SPAG4"; transcript_id "NM_003116:uc002xdb.1";
+chr20 hg19_knownGene CDS 34205442 34205508 0.000000 + 2 gene_id "SPAG4"; transcript_id "NM_003116:uc002xdb.1";
+chr20 hg19_knownGene exon 34205442 34205508 0.000000 + . gene_id "SPAG4"; transcript_id "NM_003116:uc002xdb.1";
+chr20 hg19_knownGene CDS 34205701 34205762 0.000000 + 1 gene_id "SPAG4"; transcript_id "NM_003116:uc002xdb.1";
+chr20 hg19_knownGene exon 34205701 34205762 0.000000 + . gene_id "SPAG4"; transcript_id "NM_003116:uc002xdb.1";
+chr20 hg19_knownGene CDS 34206009 34206052 0.000000 + 2 gene_id "SPAG4"; transcript_id "NM_003116:uc002xdb.1";
+chr20 hg19_knownGene exon 34206009 34206052 0.000000 + . gene_id "SPAG4"; transcript_id "NM_003116:uc002xdb.1";
+chr20 hg19_knownGene CDS 34206372 34206397 0.000000 + 0 gene_id "SPAG4"; transcript_id "NM_003116:uc002xdb.1";
+chr20 hg19_knownGene exon 34206372 34206397 0.000000 + . gene_id "SPAG4"; transcript_id "NM_003116:uc002xdb.1";
+chr20 hg19_knownGene CDS 34206534 34206642 0.000000 + 1 gene_id "SPAG4"; transcript_id "NM_003116:uc002xdb.1";
+chr20 hg19_knownGene exon 34206534 34206642 0.000000 + . gene_id "SPAG4"; transcript_id "NM_003116:uc002xdb.1";
+chr20 hg19_knownGene CDS 34206845 34206920 0.000000 + 0 gene_id "SPAG4"; transcript_id "NM_003116:uc002xdb.1";
+chr20 hg19_knownGene exon 34206845 34206920 0.000000 + . gene_id "SPAG4"; transcript_id "NM_003116:uc002xdb.1";
+chr20 hg19_knownGene CDS 34207117 34207232 0.000000 + 2 gene_id "SPAG4"; transcript_id "NM_003116:uc002xdb.1";
+chr20 hg19_knownGene exon 34207117 34207232 0.000000 + . gene_id "SPAG4"; transcript_id "NM_003116:uc002xdb.1";
+chr20 hg19_knownGene CDS 34207501 34207668 0.000000 + 0 gene_id "SPAG4"; transcript_id "NM_003116:uc002xdb.1";
+chr20 hg19_knownGene exon 34207501 34207668 0.000000 + . gene_id "SPAG4"; transcript_id "NM_003116:uc002xdb.1";
+chr20 hg19_knownGene CDS 34208606 34208695 0.000000 + 0 gene_id "SPAG4"; transcript_id "NM_003116:uc002xdb.1";
+chr20 hg19_knownGene exon 34208606 34208695 0.000000 + . gene_id "SPAG4"; transcript_id "NM_003116:uc002xdb.1";
+chr20 hg19_knownGene CDS 34208798 34208941 0.000000 + 0 gene_id "SPAG4"; transcript_id "NM_003116:uc002xdb.1";
+chr20 hg19_knownGene exon 34208798 34208965 0.000000 + . gene_id "SPAG4"; transcript_id "NM_003116:uc002xdb.1";
+chr20 hg19_knownGene CDS 34204138 34204210 0.000000 + 0 gene_id "SPAG4"; transcript_id "BC143783:uc010zvi.1";
+chr20 hg19_knownGene exon 34203885 34204210 0.000000 + . gene_id "SPAG4"; transcript_id "BC143783:uc010zvi.1";
+chr20 hg19_knownGene CDS 34205058 34205162 0.000000 + 2 gene_id "SPAG4"; transcript_id "BC143783:uc010zvi.1";
+chr20 hg19_knownGene exon 34205058 34205162 0.000000 + . gene_id "SPAG4"; transcript_id "BC143783:uc010zvi.1";
+chr20 hg19_knownGene CDS 34205442 34205508 0.000000 + 2 gene_id "SPAG4"; transcript_id "BC143783:uc010zvi.1";
+chr20 hg19_knownGene exon 34205442 34205508 0.000000 + . gene_id "SPAG4"; transcript_id "BC143783:uc010zvi.1";
+chr20 hg19_knownGene CDS 34205701 34205762 0.000000 + 1 gene_id "SPAG4"; transcript_id "BC143783:uc010zvi.1";
+chr20 hg19_knownGene exon 34205701 34205762 0.000000 + . gene_id "SPAG4"; transcript_id "BC143783:uc010zvi.1";
+chr20 hg19_knownGene CDS 34206009 34206052 0.000000 + 2 gene_id "SPAG4"; transcript_id "BC143783:uc010zvi.1";
+chr20 hg19_knownGene exon 34206009 34206052 0.000000 + . gene_id "SPAG4"; transcript_id "BC143783:uc010zvi.1";
+chr20 hg19_knownGene CDS 34206372 34206397 0.000000 + 0 gene_id "SPAG4"; transcript_id "BC143783:uc010zvi.1";
+chr20 hg19_knownGene exon 34206372 34206397 0.000000 + . gene_id "SPAG4"; transcript_id "BC143783:uc010zvi.1";
+chr20 hg19_knownGene CDS 34206534 34206642 0.000000 + 1 gene_id "SPAG4"; transcript_id "BC143783:uc010zvi.1";
+chr20 hg19_knownGene exon 34206534 34206642 0.000000 + . gene_id "SPAG4"; transcript_id "BC143783:uc010zvi.1";
+chr20 hg19_knownGene CDS 34206845 34206920 0.000000 + 0 gene_id "SPAG4"; transcript_id "BC143783:uc010zvi.1";
+chr20 hg19_knownGene exon 34206845 34206920 0.000000 + . gene_id "SPAG4"; transcript_id "BC143783:uc010zvi.1";
+chr20 hg19_knownGene CDS 34207117 34207232 0.000000 + 2 gene_id "SPAG4"; transcript_id "BC143783:uc010zvi.1";
+chr20 hg19_knownGene exon 34207117 34207232 0.000000 + . gene_id "SPAG4"; transcript_id "BC143783:uc010zvi.1";
+chr20 hg19_knownGene CDS 34207501 34207668 0.000000 + 0 gene_id "SPAG4"; transcript_id "BC143783:uc010zvi.1";
+chr20 hg19_knownGene exon 34207501 34207668 0.000000 + . gene_id "SPAG4"; transcript_id "BC143783:uc010zvi.1";
+chr20 hg19_knownGene CDS 34208606 34208695 0.000000 + 0 gene_id "SPAG4"; transcript_id "BC143783:uc010zvi.1";
+chr20 hg19_knownGene exon 34208606 34208695 0.000000 + . gene_id "SPAG4"; transcript_id "BC143783:uc010zvi.1";
+chr20 hg19_knownGene CDS 34208798 34208941 0.000000 + 0 gene_id "SPAG4"; transcript_id "BC143783:uc010zvi.1";
+chr20 hg19_knownGene exon 34208798 34208965 0.000000 + . gene_id "SPAG4"; transcript_id "BC143783:uc010zvi.1";
+chr20 hg19_knownGene exon 34231065 34231384 0.000000 + . gene_id "7SK"; transcript_id ":uc021wcp.1";
+chr20 hg19_knownGene CDS 34214166 34214303 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_003915:uc010zvj.2";
+chr20 hg19_knownGene exon 34213953 34214303 0.000000 - . gene_id "CPNE1"; transcript_id "NM_003915:uc010zvj.2";
+chr20 hg19_knownGene CDS 34214489 34214725 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_003915:uc010zvj.2";
+chr20 hg19_knownGene exon 34214489 34214725 0.000000 - . gene_id "CPNE1"; transcript_id "NM_003915:uc010zvj.2";
+chr20 hg19_knownGene CDS 34215202 34215335 0.000000 - 2 gene_id "CPNE1"; transcript_id "NM_003915:uc010zvj.2";
+chr20 hg19_knownGene exon 34215202 34215335 0.000000 - . gene_id "CPNE1"; transcript_id "NM_003915:uc010zvj.2";
+chr20 hg19_knownGene CDS 34218361 34218412 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_003915:uc010zvj.2";
+chr20 hg19_knownGene exon 34218361 34218412 0.000000 - . gene_id "CPNE1"; transcript_id "NM_003915:uc010zvj.2";
+chr20 hg19_knownGene CDS 34218663 34218717 0.000000 - 1 gene_id "CPNE1"; transcript_id "NM_003915:uc010zvj.2";
+chr20 hg19_knownGene exon 34218663 34218717 0.000000 - . gene_id "CPNE1"; transcript_id "NM_003915:uc010zvj.2";
+chr20 hg19_knownGene CDS 34218823 34218956 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_003915:uc010zvj.2";
+chr20 hg19_knownGene exon 34218823 34218956 0.000000 - . gene_id "CPNE1"; transcript_id "NM_003915:uc010zvj.2";
+chr20 hg19_knownGene CDS 34219036 34219095 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_003915:uc010zvj.2";
+chr20 hg19_knownGene exon 34219036 34219095 0.000000 - . gene_id "CPNE1"; transcript_id "NM_003915:uc010zvj.2";
+chr20 hg19_knownGene CDS 34219190 34219276 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_003915:uc010zvj.2";
+chr20 hg19_knownGene exon 34219190 34219276 0.000000 - . gene_id "CPNE1"; transcript_id "NM_003915:uc010zvj.2";
+chr20 hg19_knownGene CDS 34219414 34219500 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_003915:uc010zvj.2";
+chr20 hg19_knownGene exon 34219414 34219500 0.000000 - . gene_id "CPNE1"; transcript_id "NM_003915:uc010zvj.2";
+chr20 hg19_knownGene CDS 34219610 34219699 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_003915:uc010zvj.2";
+chr20 hg19_knownGene exon 34219610 34219699 0.000000 - . gene_id "CPNE1"; transcript_id "NM_003915:uc010zvj.2";
+chr20 hg19_knownGene CDS 34219867 34219947 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_003915:uc010zvj.2";
+chr20 hg19_knownGene exon 34219867 34219947 0.000000 - . gene_id "CPNE1"; transcript_id "NM_003915:uc010zvj.2";
+chr20 hg19_knownGene CDS 34220085 34220156 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_003915:uc010zvj.2";
+chr20 hg19_knownGene exon 34220085 34220156 0.000000 - . gene_id "CPNE1"; transcript_id "NM_003915:uc010zvj.2";
+chr20 hg19_knownGene CDS 34220233 34220307 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_003915:uc010zvj.2";
+chr20 hg19_knownGene exon 34220233 34220307 0.000000 - . gene_id "CPNE1"; transcript_id "NM_003915:uc010zvj.2";
+chr20 hg19_knownGene CDS 34220439 34220618 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_003915:uc010zvj.2";
+chr20 hg19_knownGene exon 34220439 34220618 0.000000 - . gene_id "CPNE1"; transcript_id "NM_003915:uc010zvj.2";
+chr20 hg19_knownGene CDS 34220717 34220845 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_003915:uc010zvj.2";
+chr20 hg19_knownGene exon 34220717 34220845 0.000000 - . gene_id "CPNE1"; transcript_id "NM_003915:uc010zvj.2";
+chr20 hg19_knownGene CDS 34241450 34241464 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_003915:uc010zvj.2";
+chr20 hg19_knownGene exon 34241450 34241831 0.000000 - . gene_id "CPNE1"; transcript_id "NM_003915:uc010zvj.2";
+chr20 hg19_knownGene CDS 34240449 34243244 0.000000 - 0 gene_id "RBM12"; transcript_id "CCDS13261:uc021wcr.1";
+chr20 hg19_knownGene exon 34240446 34243244 0.000000 - . gene_id "RBM12"; transcript_id "CCDS13261:uc021wcr.1";
+chr20 hg19_knownGene CDS 34214166 34214303 0.000000 - 0 gene_id "CPNE1"; transcript_id "AB209827:uc002xde.3";
+chr20 hg19_knownGene exon 34213953 34214303 0.000000 - . gene_id "CPNE1"; transcript_id "AB209827:uc002xde.3";
+chr20 hg19_knownGene CDS 34214489 34214725 0.000000 - 0 gene_id "CPNE1"; transcript_id "AB209827:uc002xde.3";
+chr20 hg19_knownGene exon 34214489 34214725 0.000000 - . gene_id "CPNE1"; transcript_id "AB209827:uc002xde.3";
+chr20 hg19_knownGene CDS 34215202 34215335 0.000000 - 2 gene_id "CPNE1"; transcript_id "AB209827:uc002xde.3";
+chr20 hg19_knownGene exon 34215202 34215335 0.000000 - . gene_id "CPNE1"; transcript_id "AB209827:uc002xde.3";
+chr20 hg19_knownGene CDS 34218361 34218412 0.000000 - 0 gene_id "CPNE1"; transcript_id "AB209827:uc002xde.3";
+chr20 hg19_knownGene exon 34218361 34218412 0.000000 - . gene_id "CPNE1"; transcript_id "AB209827:uc002xde.3";
+chr20 hg19_knownGene CDS 34218663 34218717 0.000000 - 1 gene_id "CPNE1"; transcript_id "AB209827:uc002xde.3";
+chr20 hg19_knownGene exon 34218663 34218717 0.000000 - . gene_id "CPNE1"; transcript_id "AB209827:uc002xde.3";
+chr20 hg19_knownGene CDS 34218823 34218956 0.000000 - 0 gene_id "CPNE1"; transcript_id "AB209827:uc002xde.3";
+chr20 hg19_knownGene exon 34218823 34218956 0.000000 - . gene_id "CPNE1"; transcript_id "AB209827:uc002xde.3";
+chr20 hg19_knownGene CDS 34219036 34219095 0.000000 - 0 gene_id "CPNE1"; transcript_id "AB209827:uc002xde.3";
+chr20 hg19_knownGene exon 34219036 34219095 0.000000 - . gene_id "CPNE1"; transcript_id "AB209827:uc002xde.3";
+chr20 hg19_knownGene CDS 34219190 34219276 0.000000 - 0 gene_id "CPNE1"; transcript_id "AB209827:uc002xde.3";
+chr20 hg19_knownGene exon 34219190 34219276 0.000000 - . gene_id "CPNE1"; transcript_id "AB209827:uc002xde.3";
+chr20 hg19_knownGene CDS 34219414 34219500 0.000000 - 0 gene_id "CPNE1"; transcript_id "AB209827:uc002xde.3";
+chr20 hg19_knownGene exon 34219414 34219500 0.000000 - . gene_id "CPNE1"; transcript_id "AB209827:uc002xde.3";
+chr20 hg19_knownGene CDS 34219610 34219699 0.000000 - 0 gene_id "CPNE1"; transcript_id "AB209827:uc002xde.3";
+chr20 hg19_knownGene exon 34219610 34219699 0.000000 - . gene_id "CPNE1"; transcript_id "AB209827:uc002xde.3";
+chr20 hg19_knownGene CDS 34219867 34219947 0.000000 - 0 gene_id "CPNE1"; transcript_id "AB209827:uc002xde.3";
+chr20 hg19_knownGene exon 34219867 34219947 0.000000 - . gene_id "CPNE1"; transcript_id "AB209827:uc002xde.3";
+chr20 hg19_knownGene CDS 34220233 34220307 0.000000 - 0 gene_id "CPNE1"; transcript_id "AB209827:uc002xde.3";
+chr20 hg19_knownGene exon 34220233 34220307 0.000000 - . gene_id "CPNE1"; transcript_id "AB209827:uc002xde.3";
+chr20 hg19_knownGene CDS 34220439 34220618 0.000000 - 0 gene_id "CPNE1"; transcript_id "AB209827:uc002xde.3";
+chr20 hg19_knownGene exon 34220439 34220618 0.000000 - . gene_id "CPNE1"; transcript_id "AB209827:uc002xde.3";
+chr20 hg19_knownGene CDS 34220717 34220845 0.000000 - 0 gene_id "CPNE1"; transcript_id "AB209827:uc002xde.3";
+chr20 hg19_knownGene exon 34220717 34220845 0.000000 - . gene_id "CPNE1"; transcript_id "AB209827:uc002xde.3";
+chr20 hg19_knownGene exon 34243124 34243266 0.000000 - . gene_id "CPNE1"; transcript_id "AB209827:uc002xde.3";
+chr20 hg19_knownGene exon 34246852 34246904 0.000000 - . gene_id "CPNE1"; transcript_id "AB209827:uc002xde.3";
+chr20 hg19_knownGene CDS 34214166 34214303 0.000000 - 0 gene_id "CPNE1"; transcript_id "NR_037188:uc002xdf.3";
+chr20 hg19_knownGene exon 34213953 34214303 0.000000 - . gene_id "CPNE1"; transcript_id "NR_037188:uc002xdf.3";
+chr20 hg19_knownGene CDS 34214489 34214725 0.000000 - 0 gene_id "CPNE1"; transcript_id "NR_037188:uc002xdf.3";
+chr20 hg19_knownGene exon 34214489 34214725 0.000000 - . gene_id "CPNE1"; transcript_id "NR_037188:uc002xdf.3";
+chr20 hg19_knownGene CDS 34215202 34215335 0.000000 - 2 gene_id "CPNE1"; transcript_id "NR_037188:uc002xdf.3";
+chr20 hg19_knownGene exon 34215202 34215335 0.000000 - . gene_id "CPNE1"; transcript_id "NR_037188:uc002xdf.3";
+chr20 hg19_knownGene CDS 34218361 34218412 0.000000 - 0 gene_id "CPNE1"; transcript_id "NR_037188:uc002xdf.3";
+chr20 hg19_knownGene exon 34218361 34218412 0.000000 - . gene_id "CPNE1"; transcript_id "NR_037188:uc002xdf.3";
+chr20 hg19_knownGene CDS 34218663 34218717 0.000000 - 1 gene_id "CPNE1"; transcript_id "NR_037188:uc002xdf.3";
+chr20 hg19_knownGene exon 34218663 34218717 0.000000 - . gene_id "CPNE1"; transcript_id "NR_037188:uc002xdf.3";
+chr20 hg19_knownGene CDS 34218823 34218956 0.000000 - 0 gene_id "CPNE1"; transcript_id "NR_037188:uc002xdf.3";
+chr20 hg19_knownGene exon 34218823 34218956 0.000000 - . gene_id "CPNE1"; transcript_id "NR_037188:uc002xdf.3";
+chr20 hg19_knownGene CDS 34219036 34219095 0.000000 - 0 gene_id "CPNE1"; transcript_id "NR_037188:uc002xdf.3";
+chr20 hg19_knownGene exon 34219036 34219095 0.000000 - . gene_id "CPNE1"; transcript_id "NR_037188:uc002xdf.3";
+chr20 hg19_knownGene CDS 34219190 34219276 0.000000 - 0 gene_id "CPNE1"; transcript_id "NR_037188:uc002xdf.3";
+chr20 hg19_knownGene exon 34219190 34219276 0.000000 - . gene_id "CPNE1"; transcript_id "NR_037188:uc002xdf.3";
+chr20 hg19_knownGene CDS 34219414 34219500 0.000000 - 0 gene_id "CPNE1"; transcript_id "NR_037188:uc002xdf.3";
+chr20 hg19_knownGene exon 34219414 34219500 0.000000 - . gene_id "CPNE1"; transcript_id "NR_037188:uc002xdf.3";
+chr20 hg19_knownGene CDS 34219610 34219699 0.000000 - 0 gene_id "CPNE1"; transcript_id "NR_037188:uc002xdf.3";
+chr20 hg19_knownGene exon 34219610 34219699 0.000000 - . gene_id "CPNE1"; transcript_id "NR_037188:uc002xdf.3";
+chr20 hg19_knownGene CDS 34219867 34219947 0.000000 - 0 gene_id "CPNE1"; transcript_id "NR_037188:uc002xdf.3";
+chr20 hg19_knownGene exon 34219867 34219947 0.000000 - . gene_id "CPNE1"; transcript_id "NR_037188:uc002xdf.3";
+chr20 hg19_knownGene CDS 34220085 34220156 0.000000 - 0 gene_id "CPNE1"; transcript_id "NR_037188:uc002xdf.3";
+chr20 hg19_knownGene exon 34220085 34220156 0.000000 - . gene_id "CPNE1"; transcript_id "NR_037188:uc002xdf.3";
+chr20 hg19_knownGene CDS 34220233 34220307 0.000000 - 0 gene_id "CPNE1"; transcript_id "NR_037188:uc002xdf.3";
+chr20 hg19_knownGene exon 34220233 34220307 0.000000 - . gene_id "CPNE1"; transcript_id "NR_037188:uc002xdf.3";
+chr20 hg19_knownGene CDS 34220439 34220618 0.000000 - 0 gene_id "CPNE1"; transcript_id "NR_037188:uc002xdf.3";
+chr20 hg19_knownGene exon 34220439 34220618 0.000000 - . gene_id "CPNE1"; transcript_id "NR_037188:uc002xdf.3";
+chr20 hg19_knownGene CDS 34220717 34220845 0.000000 - 0 gene_id "CPNE1"; transcript_id "NR_037188:uc002xdf.3";
+chr20 hg19_knownGene exon 34220717 34220845 0.000000 - . gene_id "CPNE1"; transcript_id "NR_037188:uc002xdf.3";
+chr20 hg19_knownGene exon 34243124 34243266 0.000000 - . gene_id "CPNE1"; transcript_id "NR_037188:uc002xdf.3";
+chr20 hg19_knownGene exon 34246852 34246904 0.000000 - . gene_id "CPNE1"; transcript_id "NR_037188:uc002xdf.3";
+chr20 hg19_knownGene exon 34252682 34252878 0.000000 - . gene_id "CPNE1"; transcript_id "NR_037188:uc002xdf.3";
+chr20 hg19_knownGene CDS 34214166 34214303 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152928:uc002xdi.3";
+chr20 hg19_knownGene exon 34213953 34214303 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152928:uc002xdi.3";
+chr20 hg19_knownGene CDS 34214489 34214725 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152928:uc002xdi.3";
+chr20 hg19_knownGene exon 34214489 34214725 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152928:uc002xdi.3";
+chr20 hg19_knownGene CDS 34215202 34215335 0.000000 - 2 gene_id "CPNE1"; transcript_id "NM_152928:uc002xdi.3";
+chr20 hg19_knownGene exon 34215202 34215335 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152928:uc002xdi.3";
+chr20 hg19_knownGene CDS 34218361 34218412 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152928:uc002xdi.3";
+chr20 hg19_knownGene exon 34218361 34218412 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152928:uc002xdi.3";
+chr20 hg19_knownGene CDS 34218663 34218717 0.000000 - 1 gene_id "CPNE1"; transcript_id "NM_152928:uc002xdi.3";
+chr20 hg19_knownGene exon 34218663 34218717 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152928:uc002xdi.3";
+chr20 hg19_knownGene CDS 34218823 34218956 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152928:uc002xdi.3";
+chr20 hg19_knownGene exon 34218823 34218956 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152928:uc002xdi.3";
+chr20 hg19_knownGene CDS 34219036 34219095 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152928:uc002xdi.3";
+chr20 hg19_knownGene exon 34219036 34219095 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152928:uc002xdi.3";
+chr20 hg19_knownGene CDS 34219190 34219276 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152928:uc002xdi.3";
+chr20 hg19_knownGene exon 34219190 34219276 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152928:uc002xdi.3";
+chr20 hg19_knownGene CDS 34219414 34219500 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152928:uc002xdi.3";
+chr20 hg19_knownGene exon 34219414 34219500 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152928:uc002xdi.3";
+chr20 hg19_knownGene CDS 34219610 34219699 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152928:uc002xdi.3";
+chr20 hg19_knownGene exon 34219610 34219699 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152928:uc002xdi.3";
+chr20 hg19_knownGene CDS 34219867 34219947 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152928:uc002xdi.3";
+chr20 hg19_knownGene exon 34219867 34219947 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152928:uc002xdi.3";
+chr20 hg19_knownGene CDS 34220085 34220156 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152928:uc002xdi.3";
+chr20 hg19_knownGene exon 34220085 34220156 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152928:uc002xdi.3";
+chr20 hg19_knownGene CDS 34220233 34220307 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152928:uc002xdi.3";
+chr20 hg19_knownGene exon 34220233 34220307 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152928:uc002xdi.3";
+chr20 hg19_knownGene CDS 34220439 34220618 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152928:uc002xdi.3";
+chr20 hg19_knownGene exon 34220439 34220618 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152928:uc002xdi.3";
+chr20 hg19_knownGene CDS 34220717 34220845 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152928:uc002xdi.3";
+chr20 hg19_knownGene exon 34220717 34220845 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152928:uc002xdi.3";
+chr20 hg19_knownGene exon 34246852 34246904 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152928:uc002xdi.3";
+chr20 hg19_knownGene exon 34252682 34252878 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152928:uc002xdi.3";
+chr20 hg19_knownGene CDS 34214166 34214303 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152927:uc002xdj.3";
+chr20 hg19_knownGene exon 34213953 34214303 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152927:uc002xdj.3";
+chr20 hg19_knownGene CDS 34214489 34214725 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152927:uc002xdj.3";
+chr20 hg19_knownGene exon 34214489 34214725 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152927:uc002xdj.3";
+chr20 hg19_knownGene CDS 34215202 34215335 0.000000 - 2 gene_id "CPNE1"; transcript_id "NM_152927:uc002xdj.3";
+chr20 hg19_knownGene exon 34215202 34215335 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152927:uc002xdj.3";
+chr20 hg19_knownGene CDS 34218361 34218412 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152927:uc002xdj.3";
+chr20 hg19_knownGene exon 34218361 34218412 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152927:uc002xdj.3";
+chr20 hg19_knownGene CDS 34218663 34218717 0.000000 - 1 gene_id "CPNE1"; transcript_id "NM_152927:uc002xdj.3";
+chr20 hg19_knownGene exon 34218663 34218717 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152927:uc002xdj.3";
+chr20 hg19_knownGene CDS 34218823 34218956 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152927:uc002xdj.3";
+chr20 hg19_knownGene exon 34218823 34218956 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152927:uc002xdj.3";
+chr20 hg19_knownGene CDS 34219036 34219095 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152927:uc002xdj.3";
+chr20 hg19_knownGene exon 34219036 34219095 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152927:uc002xdj.3";
+chr20 hg19_knownGene CDS 34219190 34219276 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152927:uc002xdj.3";
+chr20 hg19_knownGene exon 34219190 34219276 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152927:uc002xdj.3";
+chr20 hg19_knownGene CDS 34219414 34219500 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152927:uc002xdj.3";
+chr20 hg19_knownGene exon 34219414 34219500 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152927:uc002xdj.3";
+chr20 hg19_knownGene CDS 34219610 34219699 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152927:uc002xdj.3";
+chr20 hg19_knownGene exon 34219610 34219699 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152927:uc002xdj.3";
+chr20 hg19_knownGene CDS 34219867 34219947 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152927:uc002xdj.3";
+chr20 hg19_knownGene exon 34219867 34219947 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152927:uc002xdj.3";
+chr20 hg19_knownGene CDS 34220085 34220156 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152927:uc002xdj.3";
+chr20 hg19_knownGene exon 34220085 34220156 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152927:uc002xdj.3";
+chr20 hg19_knownGene CDS 34220233 34220307 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152927:uc002xdj.3";
+chr20 hg19_knownGene exon 34220233 34220307 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152927:uc002xdj.3";
+chr20 hg19_knownGene CDS 34220439 34220618 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152927:uc002xdj.3";
+chr20 hg19_knownGene exon 34220439 34220618 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152927:uc002xdj.3";
+chr20 hg19_knownGene CDS 34220717 34220845 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152927:uc002xdj.3";
+chr20 hg19_knownGene exon 34220717 34220845 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152927:uc002xdj.3";
+chr20 hg19_knownGene exon 34246852 34246936 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152927:uc002xdj.3";
+chr20 hg19_knownGene exon 34252682 34252878 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152927:uc002xdj.3";
+chr20 hg19_knownGene CDS 34214166 34214303 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152925:uc002xdl.3";
+chr20 hg19_knownGene exon 34213953 34214303 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152925:uc002xdl.3";
+chr20 hg19_knownGene CDS 34214489 34214725 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152925:uc002xdl.3";
+chr20 hg19_knownGene exon 34214489 34214725 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152925:uc002xdl.3";
+chr20 hg19_knownGene CDS 34215202 34215335 0.000000 - 2 gene_id "CPNE1"; transcript_id "NM_152925:uc002xdl.3";
+chr20 hg19_knownGene exon 34215202 34215335 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152925:uc002xdl.3";
+chr20 hg19_knownGene CDS 34218361 34218412 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152925:uc002xdl.3";
+chr20 hg19_knownGene exon 34218361 34218412 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152925:uc002xdl.3";
+chr20 hg19_knownGene CDS 34218663 34218717 0.000000 - 1 gene_id "CPNE1"; transcript_id "NM_152925:uc002xdl.3";
+chr20 hg19_knownGene exon 34218663 34218717 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152925:uc002xdl.3";
+chr20 hg19_knownGene CDS 34218823 34218956 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152925:uc002xdl.3";
+chr20 hg19_knownGene exon 34218823 34218956 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152925:uc002xdl.3";
+chr20 hg19_knownGene CDS 34219036 34219095 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152925:uc002xdl.3";
+chr20 hg19_knownGene exon 34219036 34219095 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152925:uc002xdl.3";
+chr20 hg19_knownGene CDS 34219190 34219276 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152925:uc002xdl.3";
+chr20 hg19_knownGene exon 34219190 34219276 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152925:uc002xdl.3";
+chr20 hg19_knownGene CDS 34219414 34219500 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152925:uc002xdl.3";
+chr20 hg19_knownGene exon 34219414 34219500 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152925:uc002xdl.3";
+chr20 hg19_knownGene CDS 34219610 34219699 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152925:uc002xdl.3";
+chr20 hg19_knownGene exon 34219610 34219699 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152925:uc002xdl.3";
+chr20 hg19_knownGene CDS 34219867 34219947 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152925:uc002xdl.3";
+chr20 hg19_knownGene exon 34219867 34219947 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152925:uc002xdl.3";
+chr20 hg19_knownGene CDS 34220085 34220156 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152925:uc002xdl.3";
+chr20 hg19_knownGene exon 34220085 34220156 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152925:uc002xdl.3";
+chr20 hg19_knownGene CDS 34220233 34220307 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152925:uc002xdl.3";
+chr20 hg19_knownGene exon 34220233 34220307 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152925:uc002xdl.3";
+chr20 hg19_knownGene CDS 34220439 34220618 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152925:uc002xdl.3";
+chr20 hg19_knownGene exon 34220439 34220618 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152925:uc002xdl.3";
+chr20 hg19_knownGene CDS 34220717 34220845 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152925:uc002xdl.3";
+chr20 hg19_knownGene exon 34220717 34220845 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152925:uc002xdl.3";
+chr20 hg19_knownGene exon 34252682 34252878 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152925:uc002xdl.3";
+chr20 hg19_knownGene CDS 34214166 34214303 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152926:uc002xdm.3";
+chr20 hg19_knownGene exon 34213953 34214303 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152926:uc002xdm.3";
+chr20 hg19_knownGene CDS 34214489 34214725 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152926:uc002xdm.3";
+chr20 hg19_knownGene exon 34214489 34214725 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152926:uc002xdm.3";
+chr20 hg19_knownGene CDS 34215202 34215335 0.000000 - 2 gene_id "CPNE1"; transcript_id "NM_152926:uc002xdm.3";
+chr20 hg19_knownGene exon 34215202 34215335 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152926:uc002xdm.3";
+chr20 hg19_knownGene CDS 34218361 34218412 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152926:uc002xdm.3";
+chr20 hg19_knownGene exon 34218361 34218412 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152926:uc002xdm.3";
+chr20 hg19_knownGene CDS 34218663 34218717 0.000000 - 1 gene_id "CPNE1"; transcript_id "NM_152926:uc002xdm.3";
+chr20 hg19_knownGene exon 34218663 34218717 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152926:uc002xdm.3";
+chr20 hg19_knownGene CDS 34218823 34218956 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152926:uc002xdm.3";
+chr20 hg19_knownGene exon 34218823 34218956 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152926:uc002xdm.3";
+chr20 hg19_knownGene CDS 34219036 34219095 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152926:uc002xdm.3";
+chr20 hg19_knownGene exon 34219036 34219095 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152926:uc002xdm.3";
+chr20 hg19_knownGene CDS 34219190 34219276 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152926:uc002xdm.3";
+chr20 hg19_knownGene exon 34219190 34219276 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152926:uc002xdm.3";
+chr20 hg19_knownGene CDS 34219414 34219500 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152926:uc002xdm.3";
+chr20 hg19_knownGene exon 34219414 34219500 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152926:uc002xdm.3";
+chr20 hg19_knownGene CDS 34219610 34219699 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152926:uc002xdm.3";
+chr20 hg19_knownGene exon 34219610 34219699 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152926:uc002xdm.3";
+chr20 hg19_knownGene CDS 34219867 34219947 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152926:uc002xdm.3";
+chr20 hg19_knownGene exon 34219867 34219947 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152926:uc002xdm.3";
+chr20 hg19_knownGene CDS 34220085 34220156 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152926:uc002xdm.3";
+chr20 hg19_knownGene exon 34220085 34220156 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152926:uc002xdm.3";
+chr20 hg19_knownGene CDS 34220233 34220307 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152926:uc002xdm.3";
+chr20 hg19_knownGene exon 34220233 34220307 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152926:uc002xdm.3";
+chr20 hg19_knownGene CDS 34220439 34220618 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152926:uc002xdm.3";
+chr20 hg19_knownGene exon 34220439 34220618 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152926:uc002xdm.3";
+chr20 hg19_knownGene CDS 34220717 34220845 0.000000 - 0 gene_id "CPNE1"; transcript_id "NM_152926:uc002xdm.3";
+chr20 hg19_knownGene exon 34220717 34220845 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152926:uc002xdm.3";
+chr20 hg19_knownGene exon 34252724 34252878 0.000000 - . gene_id "CPNE1"; transcript_id "NM_152926:uc002xdm.3";
+chr20 hg19_knownGene CDS 34218913 34219095 0.000000 - 0 gene_id "CPNE1"; transcript_id "AK308795:uc010gfk.2";
+chr20 hg19_knownGene exon 34218443 34219095 0.000000 - . gene_id "CPNE1"; transcript_id "AK308795:uc010gfk.2";
+chr20 hg19_knownGene CDS 34219190 34219276 0.000000 - 0 gene_id "CPNE1"; transcript_id "AK308795:uc010gfk.2";
+chr20 hg19_knownGene exon 34219190 34219276 0.000000 - . gene_id "CPNE1"; transcript_id "AK308795:uc010gfk.2";
+chr20 hg19_knownGene CDS 34219414 34219500 0.000000 - 0 gene_id "CPNE1"; transcript_id "AK308795:uc010gfk.2";
+chr20 hg19_knownGene exon 34219414 34219500 0.000000 - . gene_id "CPNE1"; transcript_id "AK308795:uc010gfk.2";
+chr20 hg19_knownGene CDS 34219610 34219699 0.000000 - 0 gene_id "CPNE1"; transcript_id "AK308795:uc010gfk.2";
+chr20 hg19_knownGene exon 34219610 34219699 0.000000 - . gene_id "CPNE1"; transcript_id "AK308795:uc010gfk.2";
+chr20 hg19_knownGene CDS 34219867 34219947 0.000000 - 0 gene_id "CPNE1"; transcript_id "AK308795:uc010gfk.2";
+chr20 hg19_knownGene exon 34219867 34219947 0.000000 - . gene_id "CPNE1"; transcript_id "AK308795:uc010gfk.2";
+chr20 hg19_knownGene CDS 34220085 34220156 0.000000 - 0 gene_id "CPNE1"; transcript_id "AK308795:uc010gfk.2";
+chr20 hg19_knownGene exon 34220085 34220156 0.000000 - . gene_id "CPNE1"; transcript_id "AK308795:uc010gfk.2";
+chr20 hg19_knownGene CDS 34220233 34220307 0.000000 - 0 gene_id "CPNE1"; transcript_id "AK308795:uc010gfk.2";
+chr20 hg19_knownGene exon 34220233 34220307 0.000000 - . gene_id "CPNE1"; transcript_id "AK308795:uc010gfk.2";
+chr20 hg19_knownGene CDS 34220439 34220618 0.000000 - 0 gene_id "CPNE1"; transcript_id "AK308795:uc010gfk.2";
+chr20 hg19_knownGene exon 34220439 34220618 0.000000 - . gene_id "CPNE1"; transcript_id "AK308795:uc010gfk.2";
+chr20 hg19_knownGene CDS 34220717 34220845 0.000000 - 0 gene_id "CPNE1"; transcript_id "AK308795:uc010gfk.2";
+chr20 hg19_knownGene exon 34220717 34220845 0.000000 - . gene_id "CPNE1"; transcript_id "AK308795:uc010gfk.2";
+chr20 hg19_knownGene exon 34252682 34252878 0.000000 - . gene_id "CPNE1"; transcript_id "AK308795:uc010gfk.2";
+chr20 hg19_knownGene CDS 34240449 34243244 0.000000 - 0 gene_id "RBM12"; transcript_id "NM_152838:uc002xdq.3";
+chr20 hg19_knownGene exon 34236847 34243266 0.000000 - . gene_id "RBM12"; transcript_id "NM_152838:uc002xdq.3";
+chr20 hg19_knownGene exon 34246852 34246904 0.000000 - . gene_id "RBM12"; transcript_id "NM_152838:uc002xdq.3";
+chr20 hg19_knownGene exon 34252682 34252878 0.000000 - . gene_id "RBM12"; transcript_id "NM_152838:uc002xdq.3";
+chr20 hg19_knownGene CDS 34240449 34243244 0.000000 - 0 gene_id "RBM12"; transcript_id "NM_001198840:uc002xds.3";
+chr20 hg19_knownGene exon 34236847 34243266 0.000000 - . gene_id "RBM12"; transcript_id "NM_001198840:uc002xds.3";
+chr20 hg19_knownGene exon 34252682 34252878 0.000000 - . gene_id "RBM12"; transcript_id "NM_001198840:uc002xds.3";
+chr20 hg19_knownGene CDS 34240449 34243244 0.000000 - 0 gene_id "RBM12"; transcript_id "NM_006047:uc002xdr.3";
+chr20 hg19_knownGene exon 34236847 34243266 0.000000 - . gene_id "RBM12"; transcript_id "NM_006047:uc002xdr.3";
+chr20 hg19_knownGene exon 34246852 34246936 0.000000 - . gene_id "RBM12"; transcript_id "NM_006047:uc002xdr.3";
+chr20 hg19_knownGene exon 34252682 34252878 0.000000 - . gene_id "RBM12"; transcript_id "NM_006047:uc002xdr.3";
+chr20 hg19_knownGene CDS 34240449 34243244 0.000000 - 0 gene_id "RBM12"; transcript_id "NM_001198838:uc021wcq.1";
+chr20 hg19_knownGene exon 34236847 34243266 0.000000 - . gene_id "RBM12"; transcript_id "NM_001198838:uc021wcq.1";
+chr20 hg19_knownGene exon 34246852 34246936 0.000000 - . gene_id "RBM12"; transcript_id "NM_001198838:uc021wcq.1";
+chr20 hg19_knownGene exon 34252724 34252878 0.000000 - . gene_id "RBM12"; transcript_id "NM_001198838:uc021wcq.1";
+chr20 hg19_knownGene exon 34220233 34220307 0.000000 - . gene_id "CPNE1"; transcript_id "DQ655946:uc002xdn.1";
+chr20 hg19_knownGene exon 34220439 34220618 0.000000 - . gene_id "CPNE1"; transcript_id "DQ655946:uc002xdn.1";
+chr20 hg19_knownGene exon 34243124 34243266 0.000000 - . gene_id "CPNE1"; transcript_id "DQ655946:uc002xdn.1";
+chr20 hg19_knownGene exon 34246852 34246936 0.000000 - . gene_id "CPNE1"; transcript_id "DQ655946:uc002xdn.1";
+chr20 hg19_knownGene exon 34260677 34260766 0.000000 - . gene_id "CPNE1"; transcript_id "DQ655946:uc002xdn.1";
+chr20 hg19_knownGene exon 34261523 34261538 0.000000 - . gene_id "CPNE1"; transcript_id "DQ655946:uc002xdn.1";
+chr20 hg19_knownGene exon 34262272 34262353 0.000000 - . gene_id "CPNE1"; transcript_id "DQ655946:uc002xdn.1";
+chr20 hg19_knownGene exon 34220233 34220307 0.000000 - . gene_id "CPNE1"; transcript_id "DQ655944:uc002xdo.1";
+chr20 hg19_knownGene exon 34220439 34220618 0.000000 - . gene_id "CPNE1"; transcript_id "DQ655944:uc002xdo.1";
+chr20 hg19_knownGene exon 34243124 34243266 0.000000 - . gene_id "CPNE1"; transcript_id "DQ655944:uc002xdo.1";
+chr20 hg19_knownGene exon 34246852 34246936 0.000000 - . gene_id "CPNE1"; transcript_id "DQ655944:uc002xdo.1";
+chr20 hg19_knownGene exon 34260677 34260766 0.000000 - . gene_id "CPNE1"; transcript_id "DQ655944:uc002xdo.1";
+chr20 hg19_knownGene exon 34261523 34261606 0.000000 - . gene_id "CPNE1"; transcript_id "DQ655944:uc002xdo.1";
+chr20 hg19_knownGene exon 34262272 34262353 0.000000 - . gene_id "CPNE1"; transcript_id "DQ655944:uc002xdo.1";
+chr20 hg19_knownGene exon 34220233 34220307 0.000000 - . gene_id "CPNE1"; transcript_id "DQ656050:uc002xdp.1";
+chr20 hg19_knownGene exon 34220439 34220618 0.000000 - . gene_id "CPNE1"; transcript_id "DQ656050:uc002xdp.1";
+chr20 hg19_knownGene exon 34220717 34220845 0.000000 - . gene_id "CPNE1"; transcript_id "DQ656050:uc002xdp.1";
+chr20 hg19_knownGene exon 34243124 34243266 0.000000 - . gene_id "CPNE1"; transcript_id "DQ656050:uc002xdp.1";
+chr20 hg19_knownGene exon 34246852 34246936 0.000000 - . gene_id "CPNE1"; transcript_id "DQ656050:uc002xdp.1";
+chr20 hg19_knownGene exon 34260677 34260766 0.000000 - . gene_id "CPNE1"; transcript_id "DQ656050:uc002xdp.1";
+chr20 hg19_knownGene exon 34261523 34261606 0.000000 - . gene_id "CPNE1"; transcript_id "DQ656050:uc002xdp.1";
+chr20 hg19_knownGene exon 34262272 34262353 0.000000 - . gene_id "CPNE1"; transcript_id "DQ656050:uc002xdp.1";
+chr20 hg19_knownGene exon 34262434 34262539 0.000000 - . gene_id "CPNE1"; transcript_id "DQ656050:uc002xdp.1";
+chr20 hg19_knownGene CDS 34257547 34257607 0.000000 - 1 gene_id "NFS1"; transcript_id "AK056242:uc002xdt.2";
+chr20 hg19_knownGene exon 34256610 34257607 0.000000 - . gene_id "NFS1"; transcript_id "AK056242:uc002xdt.2";
+chr20 hg19_knownGene CDS 34260677 34260766 0.000000 - 1 gene_id "NFS1"; transcript_id "AK056242:uc002xdt.2";
+chr20 hg19_knownGene exon 34260677 34260766 0.000000 - . gene_id "NFS1"; transcript_id "AK056242:uc002xdt.2";
+chr20 hg19_knownGene CDS 34261523 34261606 0.000000 - 1 gene_id "NFS1"; transcript_id "AK056242:uc002xdt.2";
+chr20 hg19_knownGene exon 34261523 34261606 0.000000 - . gene_id "NFS1"; transcript_id "AK056242:uc002xdt.2";
+chr20 hg19_knownGene CDS 34262272 34262353 0.000000 - 2 gene_id "NFS1"; transcript_id "AK056242:uc002xdt.2";
+chr20 hg19_knownGene exon 34262272 34262353 0.000000 - . gene_id "NFS1"; transcript_id "AK056242:uc002xdt.2";
+chr20 hg19_knownGene CDS 34262434 34262539 0.000000 - 0 gene_id "NFS1"; transcript_id "AK056242:uc002xdt.2";
+chr20 hg19_knownGene exon 34262434 34262539 0.000000 - . gene_id "NFS1"; transcript_id "AK056242:uc002xdt.2";
+chr20 hg19_knownGene CDS 34262967 34263124 0.000000 - 2 gene_id "NFS1"; transcript_id "AK056242:uc002xdt.2";
+chr20 hg19_knownGene exon 34262967 34263124 0.000000 - . gene_id "NFS1"; transcript_id "AK056242:uc002xdt.2";
+chr20 hg19_knownGene CDS 34268659 34268793 0.000000 - 2 gene_id "NFS1"; transcript_id "AK056242:uc002xdt.2";
+chr20 hg19_knownGene exon 34268659 34268793 0.000000 - . gene_id "NFS1"; transcript_id "AK056242:uc002xdt.2";
+chr20 hg19_knownGene CDS 34269810 34269903 0.000000 - 0 gene_id "NFS1"; transcript_id "AK056242:uc002xdt.2";
+chr20 hg19_knownGene exon 34269810 34269903 0.000000 - . gene_id "NFS1"; transcript_id "AK056242:uc002xdt.2";
+chr20 hg19_knownGene CDS 34278335 34278487 0.000000 - 0 gene_id "NFS1"; transcript_id "AK056242:uc002xdt.2";
+chr20 hg19_knownGene exon 34278335 34278487 0.000000 - . gene_id "NFS1"; transcript_id "AK056242:uc002xdt.2";
+chr20 hg19_knownGene CDS 34284299 34284382 0.000000 - 0 gene_id "NFS1"; transcript_id "AK056242:uc002xdt.2";
+chr20 hg19_knownGene exon 34284299 34284382 0.000000 - . gene_id "NFS1"; transcript_id "AK056242:uc002xdt.2";
+chr20 hg19_knownGene CDS 34285606 34285722 0.000000 - 0 gene_id "NFS1"; transcript_id "AK056242:uc002xdt.2";
+chr20 hg19_knownGene exon 34285606 34285722 0.000000 - . gene_id "NFS1"; transcript_id "AK056242:uc002xdt.2";
+chr20 hg19_knownGene CDS 34286403 34286429 0.000000 - 0 gene_id "NFS1"; transcript_id "AK056242:uc002xdt.2";
+chr20 hg19_knownGene exon 34286403 34286512 0.000000 - . gene_id "NFS1"; transcript_id "AK056242:uc002xdt.2";
+chr20 hg19_knownGene exon 34286667 34287111 0.000000 - . gene_id "NFS1"; transcript_id "AK056242:uc002xdt.2";
+chr20 hg19_knownGene CDS 34257547 34257607 0.000000 - 1 gene_id "NFS1"; transcript_id "NM_001198989:uc010zvl.2";
+chr20 hg19_knownGene exon 34256610 34257607 0.000000 - . gene_id "NFS1"; transcript_id "NM_001198989:uc010zvl.2";
+chr20 hg19_knownGene CDS 34260677 34260766 0.000000 - 1 gene_id "NFS1"; transcript_id "NM_001198989:uc010zvl.2";
+chr20 hg19_knownGene exon 34260677 34260766 0.000000 - . gene_id "NFS1"; transcript_id "NM_001198989:uc010zvl.2";
+chr20 hg19_knownGene CDS 34261523 34261606 0.000000 - 1 gene_id "NFS1"; transcript_id "NM_001198989:uc010zvl.2";
+chr20 hg19_knownGene exon 34261523 34261606 0.000000 - . gene_id "NFS1"; transcript_id "NM_001198989:uc010zvl.2";
+chr20 hg19_knownGene CDS 34262272 34262353 0.000000 - 2 gene_id "NFS1"; transcript_id "NM_001198989:uc010zvl.2";
+chr20 hg19_knownGene exon 34262272 34262353 0.000000 - . gene_id "NFS1"; transcript_id "NM_001198989:uc010zvl.2";
+chr20 hg19_knownGene CDS 34262434 34262539 0.000000 - 0 gene_id "NFS1"; transcript_id "NM_001198989:uc010zvl.2";
+chr20 hg19_knownGene exon 34262434 34262539 0.000000 - . gene_id "NFS1"; transcript_id "NM_001198989:uc010zvl.2";
+chr20 hg19_knownGene CDS 34262967 34263124 0.000000 - 2 gene_id "NFS1"; transcript_id "NM_001198989:uc010zvl.2";
+chr20 hg19_knownGene exon 34262967 34263124 0.000000 - . gene_id "NFS1"; transcript_id "NM_001198989:uc010zvl.2";
+chr20 hg19_knownGene CDS 34268659 34268793 0.000000 - 2 gene_id "NFS1"; transcript_id "NM_001198989:uc010zvl.2";
+chr20 hg19_knownGene exon 34268659 34268793 0.000000 - . gene_id "NFS1"; transcript_id "NM_001198989:uc010zvl.2";
+chr20 hg19_knownGene CDS 34269810 34269903 0.000000 - 0 gene_id "NFS1"; transcript_id "NM_001198989:uc010zvl.2";
+chr20 hg19_knownGene exon 34269810 34269903 0.000000 - . gene_id "NFS1"; transcript_id "NM_001198989:uc010zvl.2";
+chr20 hg19_knownGene CDS 34284299 34284382 0.000000 - 0 gene_id "NFS1"; transcript_id "NM_001198989:uc010zvl.2";
+chr20 hg19_knownGene exon 34284299 34284382 0.000000 - . gene_id "NFS1"; transcript_id "NM_001198989:uc010zvl.2";
+chr20 hg19_knownGene CDS 34285606 34285722 0.000000 - 0 gene_id "NFS1"; transcript_id "NM_001198989:uc010zvl.2";
+chr20 hg19_knownGene exon 34285606 34285722 0.000000 - . gene_id "NFS1"; transcript_id "NM_001198989:uc010zvl.2";
+chr20 hg19_knownGene CDS 34286403 34286512 0.000000 - 2 gene_id "NFS1"; transcript_id "NM_001198989:uc010zvl.2";
+chr20 hg19_knownGene exon 34286403 34286512 0.000000 - . gene_id "NFS1"; transcript_id "NM_001198989:uc010zvl.2";
+chr20 hg19_knownGene CDS 34287114 34287210 0.000000 - 0 gene_id "NFS1"; transcript_id "NM_001198989:uc010zvl.2";
+chr20 hg19_knownGene exon 34287114 34287287 0.000000 - . gene_id "NFS1"; transcript_id "NM_001198989:uc010zvl.2";
+chr20 hg19_knownGene CDS 34257547 34257607 0.000000 - 1 gene_id "NFS1"; transcript_id "NR_037570:uc010zvk.2";
+chr20 hg19_knownGene exon 34256610 34257607 0.000000 - . gene_id "NFS1"; transcript_id "NR_037570:uc010zvk.2";
+chr20 hg19_knownGene CDS 34260677 34260766 0.000000 - 1 gene_id "NFS1"; transcript_id "NR_037570:uc010zvk.2";
+chr20 hg19_knownGene exon 34260677 34260766 0.000000 - . gene_id "NFS1"; transcript_id "NR_037570:uc010zvk.2";
+chr20 hg19_knownGene CDS 34261523 34261606 0.000000 - 1 gene_id "NFS1"; transcript_id "NR_037570:uc010zvk.2";
+chr20 hg19_knownGene exon 34261523 34261606 0.000000 - . gene_id "NFS1"; transcript_id "NR_037570:uc010zvk.2";
+chr20 hg19_knownGene CDS 34262272 34262353 0.000000 - 2 gene_id "NFS1"; transcript_id "NR_037570:uc010zvk.2";
+chr20 hg19_knownGene exon 34262272 34262353 0.000000 - . gene_id "NFS1"; transcript_id "NR_037570:uc010zvk.2";
+chr20 hg19_knownGene CDS 34262434 34262539 0.000000 - 0 gene_id "NFS1"; transcript_id "NR_037570:uc010zvk.2";
+chr20 hg19_knownGene exon 34262434 34262539 0.000000 - . gene_id "NFS1"; transcript_id "NR_037570:uc010zvk.2";
+chr20 hg19_knownGene CDS 34262967 34263124 0.000000 - 2 gene_id "NFS1"; transcript_id "NR_037570:uc010zvk.2";
+chr20 hg19_knownGene exon 34262967 34263124 0.000000 - . gene_id "NFS1"; transcript_id "NR_037570:uc010zvk.2";
+chr20 hg19_knownGene CDS 34268659 34268793 0.000000 - 2 gene_id "NFS1"; transcript_id "NR_037570:uc010zvk.2";
+chr20 hg19_knownGene exon 34268659 34268793 0.000000 - . gene_id "NFS1"; transcript_id "NR_037570:uc010zvk.2";
+chr20 hg19_knownGene CDS 34269810 34269858 0.000000 - 0 gene_id "NFS1"; transcript_id "NR_037570:uc010zvk.2";
+chr20 hg19_knownGene exon 34269810 34269903 0.000000 - . gene_id "NFS1"; transcript_id "NR_037570:uc010zvk.2";
+chr20 hg19_knownGene exon 34278335 34278487 0.000000 - . gene_id "NFS1"; transcript_id "NR_037570:uc010zvk.2";
+chr20 hg19_knownGene exon 34280171 34280292 0.000000 - . gene_id "NFS1"; transcript_id "NR_037570:uc010zvk.2";
+chr20 hg19_knownGene exon 34284299 34284382 0.000000 - . gene_id "NFS1"; transcript_id "NR_037570:uc010zvk.2";
+chr20 hg19_knownGene exon 34285606 34285722 0.000000 - . gene_id "NFS1"; transcript_id "NR_037570:uc010zvk.2";
+chr20 hg19_knownGene exon 34286403 34286512 0.000000 - . gene_id "NFS1"; transcript_id "NR_037570:uc010zvk.2";
+chr20 hg19_knownGene exon 34287114 34287287 0.000000 - . gene_id "NFS1"; transcript_id "NR_037570:uc010zvk.2";
+chr20 hg19_knownGene CDS 34257547 34257607 0.000000 - 1 gene_id "NFS1"; transcript_id "NM_021100:uc002xdw.2";
+chr20 hg19_knownGene exon 34256610 34257607 0.000000 - . gene_id "NFS1"; transcript_id "NM_021100:uc002xdw.2";
+chr20 hg19_knownGene CDS 34260677 34260766 0.000000 - 1 gene_id "NFS1"; transcript_id "NM_021100:uc002xdw.2";
+chr20 hg19_knownGene exon 34260677 34260766 0.000000 - . gene_id "NFS1"; transcript_id "NM_021100:uc002xdw.2";
+chr20 hg19_knownGene CDS 34261523 34261606 0.000000 - 1 gene_id "NFS1"; transcript_id "NM_021100:uc002xdw.2";
+chr20 hg19_knownGene exon 34261523 34261606 0.000000 - . gene_id "NFS1"; transcript_id "NM_021100:uc002xdw.2";
+chr20 hg19_knownGene CDS 34262272 34262353 0.000000 - 2 gene_id "NFS1"; transcript_id "NM_021100:uc002xdw.2";
+chr20 hg19_knownGene exon 34262272 34262353 0.000000 - . gene_id "NFS1"; transcript_id "NM_021100:uc002xdw.2";
+chr20 hg19_knownGene CDS 34262434 34262539 0.000000 - 0 gene_id "NFS1"; transcript_id "NM_021100:uc002xdw.2";
+chr20 hg19_knownGene exon 34262434 34262539 0.000000 - . gene_id "NFS1"; transcript_id "NM_021100:uc002xdw.2";
+chr20 hg19_knownGene CDS 34262967 34263124 0.000000 - 2 gene_id "NFS1"; transcript_id "NM_021100:uc002xdw.2";
+chr20 hg19_knownGene exon 34262967 34263124 0.000000 - . gene_id "NFS1"; transcript_id "NM_021100:uc002xdw.2";
+chr20 hg19_knownGene CDS 34268659 34268793 0.000000 - 2 gene_id "NFS1"; transcript_id "NM_021100:uc002xdw.2";
+chr20 hg19_knownGene exon 34268659 34268793 0.000000 - . gene_id "NFS1"; transcript_id "NM_021100:uc002xdw.2";
+chr20 hg19_knownGene CDS 34269810 34269903 0.000000 - 0 gene_id "NFS1"; transcript_id "NM_021100:uc002xdw.2";
+chr20 hg19_knownGene exon 34269810 34269903 0.000000 - . gene_id "NFS1"; transcript_id "NM_021100:uc002xdw.2";
+chr20 hg19_knownGene CDS 34278335 34278487 0.000000 - 0 gene_id "NFS1"; transcript_id "NM_021100:uc002xdw.2";
+chr20 hg19_knownGene exon 34278335 34278487 0.000000 - . gene_id "NFS1"; transcript_id "NM_021100:uc002xdw.2";
+chr20 hg19_knownGene CDS 34284299 34284382 0.000000 - 0 gene_id "NFS1"; transcript_id "NM_021100:uc002xdw.2";
+chr20 hg19_knownGene exon 34284299 34284382 0.000000 - . gene_id "NFS1"; transcript_id "NM_021100:uc002xdw.2";
+chr20 hg19_knownGene CDS 34285606 34285722 0.000000 - 0 gene_id "NFS1"; transcript_id "NM_021100:uc002xdw.2";
+chr20 hg19_knownGene exon 34285606 34285722 0.000000 - . gene_id "NFS1"; transcript_id "NM_021100:uc002xdw.2";
+chr20 hg19_knownGene CDS 34286403 34286512 0.000000 - 2 gene_id "NFS1"; transcript_id "NM_021100:uc002xdw.2";
+chr20 hg19_knownGene exon 34286403 34286512 0.000000 - . gene_id "NFS1"; transcript_id "NM_021100:uc002xdw.2";
+chr20 hg19_knownGene CDS 34287114 34287210 0.000000 - 0 gene_id "NFS1"; transcript_id "NM_021100:uc002xdw.2";
+chr20 hg19_knownGene exon 34287114 34287287 0.000000 - . gene_id "NFS1"; transcript_id "NM_021100:uc002xdw.2";
+chr20 hg19_knownGene CDS 34282649 34282807 0.000000 - 0 gene_id "NFS1"; transcript_id "JF432612:uc002xdx.3";
+chr20 hg19_knownGene exon 34282501 34282807 0.000000 - . gene_id "NFS1"; transcript_id "JF432612:uc002xdx.3";
+chr20 hg19_knownGene CDS 34284299 34284382 0.000000 - 0 gene_id "NFS1"; transcript_id "JF432612:uc002xdx.3";
+chr20 hg19_knownGene exon 34284299 34284382 0.000000 - . gene_id "NFS1"; transcript_id "JF432612:uc002xdx.3";
+chr20 hg19_knownGene CDS 34285606 34285722 0.000000 - 0 gene_id "NFS1"; transcript_id "JF432612:uc002xdx.3";
+chr20 hg19_knownGene exon 34285606 34285722 0.000000 - . gene_id "NFS1"; transcript_id "JF432612:uc002xdx.3";
+chr20 hg19_knownGene CDS 34286403 34286512 0.000000 - 2 gene_id "NFS1"; transcript_id "JF432612:uc002xdx.3";
+chr20 hg19_knownGene exon 34286403 34286512 0.000000 - . gene_id "NFS1"; transcript_id "JF432612:uc002xdx.3";
+chr20 hg19_knownGene CDS 34287114 34287210 0.000000 - 0 gene_id "NFS1"; transcript_id "JF432612:uc002xdx.3";
+chr20 hg19_knownGene exon 34287114 34287287 0.000000 - . gene_id "NFS1"; transcript_id "JF432612:uc002xdx.3";
+chr20 hg19_knownGene exon 34287232 34287378 0.000000 + . gene_id "ROMO1"; transcript_id "NM_080748:uc002xdy.3";
+chr20 hg19_knownGene CDS 34287555 34287685 0.000000 + 0 gene_id "ROMO1"; transcript_id "NM_080748:uc002xdy.3";
+chr20 hg19_knownGene exon 34287555 34287685 0.000000 + . gene_id "ROMO1"; transcript_id "NM_080748:uc002xdy.3";
+chr20 hg19_knownGene CDS 34288720 34288825 0.000000 + 1 gene_id "ROMO1"; transcript_id "NM_080748:uc002xdy.3";
+chr20 hg19_knownGene exon 34288720 34288902 0.000000 + . gene_id "ROMO1"; transcript_id "NM_080748:uc002xdy.3";
+chr20 hg19_knownGene exon 34287328 34287373 0.000000 + . gene_id "ROMO1"; transcript_id "AM397244:uc010gfm.3";
+chr20 hg19_knownGene CDS 34287555 34287685 0.000000 + 0 gene_id "ROMO1"; transcript_id "AM397244:uc010gfm.3";
+chr20 hg19_knownGene exon 34287555 34287685 0.000000 + . gene_id "ROMO1"; transcript_id "AM397244:uc010gfm.3";
+chr20 hg19_knownGene CDS 34288720 34288825 0.000000 + 1 gene_id "ROMO1"; transcript_id "AM397244:uc010gfm.3";
+chr20 hg19_knownGene exon 34288720 34288902 0.000000 + . gene_id "ROMO1"; transcript_id "AM397244:uc010gfm.3";
+chr20 hg19_knownGene CDS 34292406 34292503 0.000000 - 2 gene_id "RBM39"; transcript_id "AK126158:uc002xdz.3";
+chr20 hg19_knownGene exon 34291531 34292503 0.000000 - . gene_id "RBM39"; transcript_id "AK126158:uc002xdz.3";
+chr20 hg19_knownGene CDS 34292590 34292668 0.000000 - 0 gene_id "RBM39"; transcript_id "AK126158:uc002xdz.3";
+chr20 hg19_knownGene exon 34292590 34292668 0.000000 - . gene_id "RBM39"; transcript_id "AK126158:uc002xdz.3";
+chr20 hg19_knownGene CDS 34293147 34293252 0.000000 - 1 gene_id "RBM39"; transcript_id "AK126158:uc002xdz.3";
+chr20 hg19_knownGene exon 34293147 34293252 0.000000 - . gene_id "RBM39"; transcript_id "AK126158:uc002xdz.3";
+chr20 hg19_knownGene CDS 34295042 34295123 0.000000 - 2 gene_id "RBM39"; transcript_id "AK126158:uc002xdz.3";
+chr20 hg19_knownGene exon 34295042 34295123 0.000000 - . gene_id "RBM39"; transcript_id "AK126158:uc002xdz.3";
+chr20 hg19_knownGene CDS 34297146 34297196 0.000000 - 2 gene_id "RBM39"; transcript_id "AK126158:uc002xdz.3";
+chr20 hg19_knownGene exon 34297146 34297196 0.000000 - . gene_id "RBM39"; transcript_id "AK126158:uc002xdz.3";
+chr20 hg19_knownGene CDS 34300941 34301018 0.000000 - 2 gene_id "RBM39"; transcript_id "AK126158:uc002xdz.3";
+chr20 hg19_knownGene exon 34300941 34301018 0.000000 - . gene_id "RBM39"; transcript_id "AK126158:uc002xdz.3";
+chr20 hg19_knownGene CDS 34302107 34302311 0.000000 - 0 gene_id "RBM39"; transcript_id "AK126158:uc002xdz.3";
+chr20 hg19_knownGene exon 34302107 34302311 0.000000 - . gene_id "RBM39"; transcript_id "AK126158:uc002xdz.3";
+chr20 hg19_knownGene CDS 34304662 34304727 0.000000 - 0 gene_id "RBM39"; transcript_id "AK126158:uc002xdz.3";
+chr20 hg19_knownGene exon 34304662 34304727 0.000000 - . gene_id "RBM39"; transcript_id "AK126158:uc002xdz.3";
+chr20 hg19_knownGene CDS 34309662 34309799 0.000000 - 0 gene_id "RBM39"; transcript_id "AK126158:uc002xdz.3";
+chr20 hg19_knownGene exon 34309662 34309799 0.000000 - . gene_id "RBM39"; transcript_id "AK126158:uc002xdz.3";
+chr20 hg19_knownGene CDS 34312492 34312644 0.000000 - 0 gene_id "RBM39"; transcript_id "AK126158:uc002xdz.3";
+chr20 hg19_knownGene exon 34312492 34312644 0.000000 - . gene_id "RBM39"; transcript_id "AK126158:uc002xdz.3";
+chr20 hg19_knownGene CDS 34312960 34313077 0.000000 - 1 gene_id "RBM39"; transcript_id "AK126158:uc002xdz.3";
+chr20 hg19_knownGene exon 34312960 34313077 0.000000 - . gene_id "RBM39"; transcript_id "AK126158:uc002xdz.3";
+chr20 hg19_knownGene CDS 34317234 34317287 0.000000 - 1 gene_id "RBM39"; transcript_id "AK126158:uc002xdz.3";
+chr20 hg19_knownGene exon 34317234 34317287 0.000000 - . gene_id "RBM39"; transcript_id "AK126158:uc002xdz.3";
+chr20 hg19_knownGene CDS 34317384 34317449 0.000000 - 1 gene_id "RBM39"; transcript_id "AK126158:uc002xdz.3";
+chr20 hg19_knownGene exon 34317384 34317449 0.000000 - . gene_id "RBM39"; transcript_id "AK126158:uc002xdz.3";
+chr20 hg19_knownGene CDS 34319863 34320086 0.000000 - 0 gene_id "RBM39"; transcript_id "AK126158:uc002xdz.3";
+chr20 hg19_knownGene exon 34319863 34320728 0.000000 - . gene_id "RBM39"; transcript_id "AK126158:uc002xdz.3";
+chr20 hg19_knownGene CDS 34292406 34292503 0.000000 - 2 gene_id "RBM39"; transcript_id "CR749443:uc010gfn.3";
+chr20 hg19_knownGene exon 34291531 34292503 0.000000 - . gene_id "RBM39"; transcript_id "CR749443:uc010gfn.3";
+chr20 hg19_knownGene CDS 34292590 34292668 0.000000 - 0 gene_id "RBM39"; transcript_id "CR749443:uc010gfn.3";
+chr20 hg19_knownGene exon 34292590 34292668 0.000000 - . gene_id "RBM39"; transcript_id "CR749443:uc010gfn.3";
+chr20 hg19_knownGene CDS 34293147 34293252 0.000000 - 1 gene_id "RBM39"; transcript_id "CR749443:uc010gfn.3";
+chr20 hg19_knownGene exon 34293147 34293252 0.000000 - . gene_id "RBM39"; transcript_id "CR749443:uc010gfn.3";
+chr20 hg19_knownGene CDS 34295042 34295123 0.000000 - 2 gene_id "RBM39"; transcript_id "CR749443:uc010gfn.3";
+chr20 hg19_knownGene exon 34295042 34295123 0.000000 - . gene_id "RBM39"; transcript_id "CR749443:uc010gfn.3";
+chr20 hg19_knownGene CDS 34297146 34297196 0.000000 - 2 gene_id "RBM39"; transcript_id "CR749443:uc010gfn.3";
+chr20 hg19_knownGene exon 34297146 34297196 0.000000 - . gene_id "RBM39"; transcript_id "CR749443:uc010gfn.3";
+chr20 hg19_knownGene CDS 34300941 34301018 0.000000 - 2 gene_id "RBM39"; transcript_id "CR749443:uc010gfn.3";
+chr20 hg19_knownGene exon 34300941 34301018 0.000000 - . gene_id "RBM39"; transcript_id "CR749443:uc010gfn.3";
+chr20 hg19_knownGene CDS 34302107 34302311 0.000000 - 0 gene_id "RBM39"; transcript_id "CR749443:uc010gfn.3";
+chr20 hg19_knownGene exon 34302107 34302311 0.000000 - . gene_id "RBM39"; transcript_id "CR749443:uc010gfn.3";
+chr20 hg19_knownGene CDS 34304662 34304727 0.000000 - 0 gene_id "RBM39"; transcript_id "CR749443:uc010gfn.3";
+chr20 hg19_knownGene exon 34304662 34304727 0.000000 - . gene_id "RBM39"; transcript_id "CR749443:uc010gfn.3";
+chr20 hg19_knownGene CDS 34309662 34309799 0.000000 - 0 gene_id "RBM39"; transcript_id "CR749443:uc010gfn.3";
+chr20 hg19_knownGene exon 34309662 34309799 0.000000 - . gene_id "RBM39"; transcript_id "CR749443:uc010gfn.3";
+chr20 hg19_knownGene CDS 34312492 34312644 0.000000 - 0 gene_id "RBM39"; transcript_id "CR749443:uc010gfn.3";
+chr20 hg19_knownGene exon 34312492 34312644 0.000000 - . gene_id "RBM39"; transcript_id "CR749443:uc010gfn.3";
+chr20 hg19_knownGene CDS 34312960 34313022 0.000000 - 0 gene_id "RBM39"; transcript_id "CR749443:uc010gfn.3";
+chr20 hg19_knownGene exon 34312960 34313077 0.000000 - . gene_id "RBM39"; transcript_id "CR749443:uc010gfn.3";
+chr20 hg19_knownGene exon 34317234 34317287 0.000000 - . gene_id "RBM39"; transcript_id "CR749443:uc010gfn.3";
+chr20 hg19_knownGene exon 34317384 34317449 0.000000 - . gene_id "RBM39"; transcript_id "CR749443:uc010gfn.3";
+chr20 hg19_knownGene exon 34319863 34320057 0.000000 - . gene_id "RBM39"; transcript_id "CR749443:uc010gfn.3";
+chr20 hg19_knownGene exon 34326890 34328809 0.000000 - . gene_id "RBM39"; transcript_id "CR749443:uc010gfn.3";
+chr20 hg19_knownGene exon 34329863 34329914 0.000000 - . gene_id "RBM39"; transcript_id "CR749443:uc010gfn.3";
+chr20 hg19_knownGene exon 34329958 34330158 0.000000 - . gene_id "RBM39"; transcript_id "CR749443:uc010gfn.3";
+chr20 hg19_knownGene CDS 34292406 34292503 0.000000 - 2 gene_id "RBM39"; transcript_id "NR_040723:uc002xee.3";
+chr20 hg19_knownGene exon 34291531 34292503 0.000000 - . gene_id "RBM39"; transcript_id "NR_040723:uc002xee.3";
+chr20 hg19_knownGene CDS 34292590 34292668 0.000000 - 0 gene_id "RBM39"; transcript_id "NR_040723:uc002xee.3";
+chr20 hg19_knownGene exon 34292590 34292668 0.000000 - . gene_id "RBM39"; transcript_id "NR_040723:uc002xee.3";
+chr20 hg19_knownGene CDS 34293147 34293252 0.000000 - 1 gene_id "RBM39"; transcript_id "NR_040723:uc002xee.3";
+chr20 hg19_knownGene exon 34293147 34293252 0.000000 - . gene_id "RBM39"; transcript_id "NR_040723:uc002xee.3";
+chr20 hg19_knownGene CDS 34295042 34295123 0.000000 - 2 gene_id "RBM39"; transcript_id "NR_040723:uc002xee.3";
+chr20 hg19_knownGene exon 34295042 34295123 0.000000 - . gene_id "RBM39"; transcript_id "NR_040723:uc002xee.3";
+chr20 hg19_knownGene CDS 34297146 34297196 0.000000 - 2 gene_id "RBM39"; transcript_id "NR_040723:uc002xee.3";
+chr20 hg19_knownGene exon 34297146 34297196 0.000000 - . gene_id "RBM39"; transcript_id "NR_040723:uc002xee.3";
+chr20 hg19_knownGene CDS 34300941 34301018 0.000000 - 2 gene_id "RBM39"; transcript_id "NR_040723:uc002xee.3";
+chr20 hg19_knownGene exon 34300941 34301018 0.000000 - . gene_id "RBM39"; transcript_id "NR_040723:uc002xee.3";
+chr20 hg19_knownGene CDS 34302107 34302311 0.000000 - 0 gene_id "RBM39"; transcript_id "NR_040723:uc002xee.3";
+chr20 hg19_knownGene exon 34302107 34302311 0.000000 - . gene_id "RBM39"; transcript_id "NR_040723:uc002xee.3";
+chr20 hg19_knownGene CDS 34304662 34304727 0.000000 - 0 gene_id "RBM39"; transcript_id "NR_040723:uc002xee.3";
+chr20 hg19_knownGene exon 34304662 34304727 0.000000 - . gene_id "RBM39"; transcript_id "NR_040723:uc002xee.3";
+chr20 hg19_knownGene CDS 34309662 34309799 0.000000 - 0 gene_id "RBM39"; transcript_id "NR_040723:uc002xee.3";
+chr20 hg19_knownGene exon 34309662 34309799 0.000000 - . gene_id "RBM39"; transcript_id "NR_040723:uc002xee.3";
+chr20 hg19_knownGene CDS 34312492 34312644 0.000000 - 0 gene_id "RBM39"; transcript_id "NR_040723:uc002xee.3";
+chr20 hg19_knownGene exon 34312492 34312644 0.000000 - . gene_id "RBM39"; transcript_id "NR_040723:uc002xee.3";
+chr20 hg19_knownGene CDS 34312960 34313022 0.000000 - 0 gene_id "RBM39"; transcript_id "NR_040723:uc002xee.3";
+chr20 hg19_knownGene exon 34312960 34313077 0.000000 - . gene_id "RBM39"; transcript_id "NR_040723:uc002xee.3";
+chr20 hg19_knownGene exon 34317234 34317287 0.000000 - . gene_id "RBM39"; transcript_id "NR_040723:uc002xee.3";
+chr20 hg19_knownGene exon 34317384 34317449 0.000000 - . gene_id "RBM39"; transcript_id "NR_040723:uc002xee.3";
+chr20 hg19_knownGene exon 34319863 34320057 0.000000 - . gene_id "RBM39"; transcript_id "NR_040723:uc002xee.3";
+chr20 hg19_knownGene exon 34322108 34322179 0.000000 - . gene_id "RBM39"; transcript_id "NR_040723:uc002xee.3";
+chr20 hg19_knownGene exon 34326890 34326939 0.000000 - . gene_id "RBM39"; transcript_id "NR_040723:uc002xee.3";
+chr20 hg19_knownGene exon 34328746 34328809 0.000000 - . gene_id "RBM39"; transcript_id "NR_040723:uc002xee.3";
+chr20 hg19_knownGene exon 34329863 34330258 0.000000 - . gene_id "RBM39"; transcript_id "NR_040723:uc002xee.3";
+chr20 hg19_knownGene CDS 34292406 34292503 0.000000 - 2 gene_id "RBM39"; transcript_id "NR_040724:uc002xef.3";
+chr20 hg19_knownGene exon 34291531 34292503 0.000000 - . gene_id "RBM39"; transcript_id "NR_040724:uc002xef.3";
+chr20 hg19_knownGene CDS 34292590 34292668 0.000000 - 0 gene_id "RBM39"; transcript_id "NR_040724:uc002xef.3";
+chr20 hg19_knownGene exon 34292590 34292668 0.000000 - . gene_id "RBM39"; transcript_id "NR_040724:uc002xef.3";
+chr20 hg19_knownGene CDS 34293147 34293252 0.000000 - 1 gene_id "RBM39"; transcript_id "NR_040724:uc002xef.3";
+chr20 hg19_knownGene exon 34293147 34293252 0.000000 - . gene_id "RBM39"; transcript_id "NR_040724:uc002xef.3";
+chr20 hg19_knownGene CDS 34295042 34295123 0.000000 - 2 gene_id "RBM39"; transcript_id "NR_040724:uc002xef.3";
+chr20 hg19_knownGene exon 34295042 34295123 0.000000 - . gene_id "RBM39"; transcript_id "NR_040724:uc002xef.3";
+chr20 hg19_knownGene CDS 34297146 34297178 0.000000 - 2 gene_id "RBM39"; transcript_id "NR_040724:uc002xef.3";
+chr20 hg19_knownGene exon 34297146 34297178 0.000000 - . gene_id "RBM39"; transcript_id "NR_040724:uc002xef.3";
+chr20 hg19_knownGene CDS 34300941 34301018 0.000000 - 2 gene_id "RBM39"; transcript_id "NR_040724:uc002xef.3";
+chr20 hg19_knownGene exon 34300941 34301018 0.000000 - . gene_id "RBM39"; transcript_id "NR_040724:uc002xef.3";
+chr20 hg19_knownGene CDS 34302107 34302311 0.000000 - 0 gene_id "RBM39"; transcript_id "NR_040724:uc002xef.3";
+chr20 hg19_knownGene exon 34302107 34302311 0.000000 - . gene_id "RBM39"; transcript_id "NR_040724:uc002xef.3";
+chr20 hg19_knownGene CDS 34304662 34304727 0.000000 - 0 gene_id "RBM39"; transcript_id "NR_040724:uc002xef.3";
+chr20 hg19_knownGene exon 34304662 34304727 0.000000 - . gene_id "RBM39"; transcript_id "NR_040724:uc002xef.3";
+chr20 hg19_knownGene CDS 34309662 34309799 0.000000 - 0 gene_id "RBM39"; transcript_id "NR_040724:uc002xef.3";
+chr20 hg19_knownGene exon 34309662 34309799 0.000000 - . gene_id "RBM39"; transcript_id "NR_040724:uc002xef.3";
+chr20 hg19_knownGene CDS 34312492 34312644 0.000000 - 0 gene_id "RBM39"; transcript_id "NR_040724:uc002xef.3";
+chr20 hg19_knownGene exon 34312492 34312644 0.000000 - . gene_id "RBM39"; transcript_id "NR_040724:uc002xef.3";
+chr20 hg19_knownGene CDS 34312960 34313022 0.000000 - 0 gene_id "RBM39"; transcript_id "NR_040724:uc002xef.3";
+chr20 hg19_knownGene exon 34312960 34313077 0.000000 - . gene_id "RBM39"; transcript_id "NR_040724:uc002xef.3";
+chr20 hg19_knownGene exon 34317234 34317287 0.000000 - . gene_id "RBM39"; transcript_id "NR_040724:uc002xef.3";
+chr20 hg19_knownGene exon 34317384 34317449 0.000000 - . gene_id "RBM39"; transcript_id "NR_040724:uc002xef.3";
+chr20 hg19_knownGene exon 34319863 34320057 0.000000 - . gene_id "RBM39"; transcript_id "NR_040724:uc002xef.3";
+chr20 hg19_knownGene exon 34326890 34326939 0.000000 - . gene_id "RBM39"; transcript_id "NR_040724:uc002xef.3";
+chr20 hg19_knownGene exon 34328447 34328519 0.000000 - . gene_id "RBM39"; transcript_id "NR_040724:uc002xef.3";
+chr20 hg19_knownGene exon 34328746 34328809 0.000000 - . gene_id "RBM39"; transcript_id "NR_040724:uc002xef.3";
+chr20 hg19_knownGene exon 34329863 34330258 0.000000 - . gene_id "RBM39"; transcript_id "NR_040724:uc002xef.3";
+chr20 hg19_knownGene CDS 34292406 34292503 0.000000 - 2 gene_id "RBM39"; transcript_id "NR_040722:uc010zvn.2";
+chr20 hg19_knownGene exon 34291531 34292503 0.000000 - . gene_id "RBM39"; transcript_id "NR_040722:uc010zvn.2";
+chr20 hg19_knownGene CDS 34292590 34292668 0.000000 - 0 gene_id "RBM39"; transcript_id "NR_040722:uc010zvn.2";
+chr20 hg19_knownGene exon 34292590 34292668 0.000000 - . gene_id "RBM39"; transcript_id "NR_040722:uc010zvn.2";
+chr20 hg19_knownGene CDS 34293147 34293252 0.000000 - 1 gene_id "RBM39"; transcript_id "NR_040722:uc010zvn.2";
+chr20 hg19_knownGene exon 34293147 34293252 0.000000 - . gene_id "RBM39"; transcript_id "NR_040722:uc010zvn.2";
+chr20 hg19_knownGene CDS 34295042 34295123 0.000000 - 2 gene_id "RBM39"; transcript_id "NR_040722:uc010zvn.2";
+chr20 hg19_knownGene exon 34295042 34295123 0.000000 - . gene_id "RBM39"; transcript_id "NR_040722:uc010zvn.2";
+chr20 hg19_knownGene CDS 34297146 34297196 0.000000 - 2 gene_id "RBM39"; transcript_id "NR_040722:uc010zvn.2";
+chr20 hg19_knownGene exon 34297146 34297196 0.000000 - . gene_id "RBM39"; transcript_id "NR_040722:uc010zvn.2";
+chr20 hg19_knownGene CDS 34300941 34301018 0.000000 - 2 gene_id "RBM39"; transcript_id "NR_040722:uc010zvn.2";
+chr20 hg19_knownGene exon 34300941 34301018 0.000000 - . gene_id "RBM39"; transcript_id "NR_040722:uc010zvn.2";
+chr20 hg19_knownGene CDS 34302107 34302311 0.000000 - 0 gene_id "RBM39"; transcript_id "NR_040722:uc010zvn.2";
+chr20 hg19_knownGene exon 34302107 34302311 0.000000 - . gene_id "RBM39"; transcript_id "NR_040722:uc010zvn.2";
+chr20 hg19_knownGene CDS 34304662 34304727 0.000000 - 0 gene_id "RBM39"; transcript_id "NR_040722:uc010zvn.2";
+chr20 hg19_knownGene exon 34304662 34304727 0.000000 - . gene_id "RBM39"; transcript_id "NR_040722:uc010zvn.2";
+chr20 hg19_knownGene CDS 34309662 34309799 0.000000 - 0 gene_id "RBM39"; transcript_id "NR_040722:uc010zvn.2";
+chr20 hg19_knownGene exon 34309662 34309799 0.000000 - . gene_id "RBM39"; transcript_id "NR_040722:uc010zvn.2";
+chr20 hg19_knownGene CDS 34312492 34312644 0.000000 - 0 gene_id "RBM39"; transcript_id "NR_040722:uc010zvn.2";
+chr20 hg19_knownGene exon 34312492 34312644 0.000000 - . gene_id "RBM39"; transcript_id "NR_040722:uc010zvn.2";
+chr20 hg19_knownGene CDS 34312960 34313022 0.000000 - 0 gene_id "RBM39"; transcript_id "NR_040722:uc010zvn.2";
+chr20 hg19_knownGene exon 34312960 34313077 0.000000 - . gene_id "RBM39"; transcript_id "NR_040722:uc010zvn.2";
+chr20 hg19_knownGene exon 34317234 34317287 0.000000 - . gene_id "RBM39"; transcript_id "NR_040722:uc010zvn.2";
+chr20 hg19_knownGene exon 34317384 34317449 0.000000 - . gene_id "RBM39"; transcript_id "NR_040722:uc010zvn.2";
+chr20 hg19_knownGene exon 34319863 34320057 0.000000 - . gene_id "RBM39"; transcript_id "NR_040722:uc010zvn.2";
+chr20 hg19_knownGene exon 34326890 34326939 0.000000 - . gene_id "RBM39"; transcript_id "NR_040722:uc010zvn.2";
+chr20 hg19_knownGene exon 34328447 34328519 0.000000 - . gene_id "RBM39"; transcript_id "NR_040722:uc010zvn.2";
+chr20 hg19_knownGene exon 34328746 34328809 0.000000 - . gene_id "RBM39"; transcript_id "NR_040722:uc010zvn.2";
+chr20 hg19_knownGene exon 34329863 34330258 0.000000 - . gene_id "RBM39"; transcript_id "NR_040722:uc010zvn.2";
+chr20 hg19_knownGene CDS 34292406 34292503 0.000000 - 2 gene_id "RBM39"; transcript_id "NM_184234:uc002xeb.3";
+chr20 hg19_knownGene exon 34291531 34292503 0.000000 - . gene_id "RBM39"; transcript_id "NM_184234:uc002xeb.3";
+chr20 hg19_knownGene CDS 34292590 34292668 0.000000 - 0 gene_id "RBM39"; transcript_id "NM_184234:uc002xeb.3";
+chr20 hg19_knownGene exon 34292590 34292668 0.000000 - . gene_id "RBM39"; transcript_id "NM_184234:uc002xeb.3";
+chr20 hg19_knownGene CDS 34293147 34293252 0.000000 - 1 gene_id "RBM39"; transcript_id "NM_184234:uc002xeb.3";
+chr20 hg19_knownGene exon 34293147 34293252 0.000000 - . gene_id "RBM39"; transcript_id "NM_184234:uc002xeb.3";
+chr20 hg19_knownGene CDS 34295042 34295123 0.000000 - 2 gene_id "RBM39"; transcript_id "NM_184234:uc002xeb.3";
+chr20 hg19_knownGene exon 34295042 34295123 0.000000 - . gene_id "RBM39"; transcript_id "NM_184234:uc002xeb.3";
+chr20 hg19_knownGene CDS 34297146 34297196 0.000000 - 2 gene_id "RBM39"; transcript_id "NM_184234:uc002xeb.3";
+chr20 hg19_knownGene exon 34297146 34297196 0.000000 - . gene_id "RBM39"; transcript_id "NM_184234:uc002xeb.3";
+chr20 hg19_knownGene CDS 34300941 34301018 0.000000 - 2 gene_id "RBM39"; transcript_id "NM_184234:uc002xeb.3";
+chr20 hg19_knownGene exon 34300941 34301018 0.000000 - . gene_id "RBM39"; transcript_id "NM_184234:uc002xeb.3";
+chr20 hg19_knownGene CDS 34302107 34302311 0.000000 - 0 gene_id "RBM39"; transcript_id "NM_184234:uc002xeb.3";
+chr20 hg19_knownGene exon 34302107 34302311 0.000000 - . gene_id "RBM39"; transcript_id "NM_184234:uc002xeb.3";
+chr20 hg19_knownGene CDS 34304662 34304727 0.000000 - 0 gene_id "RBM39"; transcript_id "NM_184234:uc002xeb.3";
+chr20 hg19_knownGene exon 34304662 34304727 0.000000 - . gene_id "RBM39"; transcript_id "NM_184234:uc002xeb.3";
+chr20 hg19_knownGene CDS 34309662 34309799 0.000000 - 0 gene_id "RBM39"; transcript_id "NM_184234:uc002xeb.3";
+chr20 hg19_knownGene exon 34309662 34309799 0.000000 - . gene_id "RBM39"; transcript_id "NM_184234:uc002xeb.3";
+chr20 hg19_knownGene CDS 34312492 34312644 0.000000 - 0 gene_id "RBM39"; transcript_id "NM_184234:uc002xeb.3";
+chr20 hg19_knownGene exon 34312492 34312644 0.000000 - . gene_id "RBM39"; transcript_id "NM_184234:uc002xeb.3";
+chr20 hg19_knownGene CDS 34312960 34313077 0.000000 - 1 gene_id "RBM39"; transcript_id "NM_184234:uc002xeb.3";
+chr20 hg19_knownGene exon 34312960 34313077 0.000000 - . gene_id "RBM39"; transcript_id "NM_184234:uc002xeb.3";
+chr20 hg19_knownGene CDS 34317234 34317287 0.000000 - 1 gene_id "RBM39"; transcript_id "NM_184234:uc002xeb.3";
+chr20 hg19_knownGene exon 34317234 34317287 0.000000 - . gene_id "RBM39"; transcript_id "NM_184234:uc002xeb.3";
+chr20 hg19_knownGene CDS 34317384 34317449 0.000000 - 1 gene_id "RBM39"; transcript_id "NM_184234:uc002xeb.3";
+chr20 hg19_knownGene exon 34317384 34317449 0.000000 - . gene_id "RBM39"; transcript_id "NM_184234:uc002xeb.3";
+chr20 hg19_knownGene CDS 34319863 34320057 0.000000 - 1 gene_id "RBM39"; transcript_id "NM_184234:uc002xeb.3";
+chr20 hg19_knownGene exon 34319863 34320057 0.000000 - . gene_id "RBM39"; transcript_id "NM_184234:uc002xeb.3";
+chr20 hg19_knownGene CDS 34326890 34326939 0.000000 - 0 gene_id "RBM39"; transcript_id "NM_184234:uc002xeb.3";
+chr20 hg19_knownGene exon 34326890 34326939 0.000000 - . gene_id "RBM39"; transcript_id "NM_184234:uc002xeb.3";
+chr20 hg19_knownGene CDS 34328746 34328796 0.000000 - 0 gene_id "RBM39"; transcript_id "NM_184234:uc002xeb.3";
+chr20 hg19_knownGene exon 34328746 34328809 0.000000 - . gene_id "RBM39"; transcript_id "NM_184234:uc002xeb.3";
+chr20 hg19_knownGene exon 34329863 34330258 0.000000 - . gene_id "RBM39"; transcript_id "NM_184234:uc002xeb.3";
+chr20 hg19_knownGene CDS 34292406 34292503 0.000000 - 2 gene_id "RBM39"; transcript_id "NM_004902:uc002xec.3";
+chr20 hg19_knownGene exon 34291531 34292503 0.000000 - . gene_id "RBM39"; transcript_id "NM_004902:uc002xec.3";
+chr20 hg19_knownGene CDS 34292590 34292668 0.000000 - 0 gene_id "RBM39"; transcript_id "NM_004902:uc002xec.3";
+chr20 hg19_knownGene exon 34292590 34292668 0.000000 - . gene_id "RBM39"; transcript_id "NM_004902:uc002xec.3";
+chr20 hg19_knownGene CDS 34293147 34293252 0.000000 - 1 gene_id "RBM39"; transcript_id "NM_004902:uc002xec.3";
+chr20 hg19_knownGene exon 34293147 34293252 0.000000 - . gene_id "RBM39"; transcript_id "NM_004902:uc002xec.3";
+chr20 hg19_knownGene CDS 34295042 34295123 0.000000 - 2 gene_id "RBM39"; transcript_id "NM_004902:uc002xec.3";
+chr20 hg19_knownGene exon 34295042 34295123 0.000000 - . gene_id "RBM39"; transcript_id "NM_004902:uc002xec.3";
+chr20 hg19_knownGene CDS 34297146 34297178 0.000000 - 2 gene_id "RBM39"; transcript_id "NM_004902:uc002xec.3";
+chr20 hg19_knownGene exon 34297146 34297178 0.000000 - . gene_id "RBM39"; transcript_id "NM_004902:uc002xec.3";
+chr20 hg19_knownGene CDS 34300941 34301018 0.000000 - 2 gene_id "RBM39"; transcript_id "NM_004902:uc002xec.3";
+chr20 hg19_knownGene exon 34300941 34301018 0.000000 - . gene_id "RBM39"; transcript_id "NM_004902:uc002xec.3";
+chr20 hg19_knownGene CDS 34302107 34302311 0.000000 - 0 gene_id "RBM39"; transcript_id "NM_004902:uc002xec.3";
+chr20 hg19_knownGene exon 34302107 34302311 0.000000 - . gene_id "RBM39"; transcript_id "NM_004902:uc002xec.3";
+chr20 hg19_knownGene CDS 34304662 34304727 0.000000 - 0 gene_id "RBM39"; transcript_id "NM_004902:uc002xec.3";
+chr20 hg19_knownGene exon 34304662 34304727 0.000000 - . gene_id "RBM39"; transcript_id "NM_004902:uc002xec.3";
+chr20 hg19_knownGene CDS 34309662 34309799 0.000000 - 0 gene_id "RBM39"; transcript_id "NM_004902:uc002xec.3";
+chr20 hg19_knownGene exon 34309662 34309799 0.000000 - . gene_id "RBM39"; transcript_id "NM_004902:uc002xec.3";
+chr20 hg19_knownGene CDS 34312492 34312644 0.000000 - 0 gene_id "RBM39"; transcript_id "NM_004902:uc002xec.3";
+chr20 hg19_knownGene exon 34312492 34312644 0.000000 - . gene_id "RBM39"; transcript_id "NM_004902:uc002xec.3";
+chr20 hg19_knownGene CDS 34312960 34313077 0.000000 - 1 gene_id "RBM39"; transcript_id "NM_004902:uc002xec.3";
+chr20 hg19_knownGene exon 34312960 34313077 0.000000 - . gene_id "RBM39"; transcript_id "NM_004902:uc002xec.3";
+chr20 hg19_knownGene CDS 34317234 34317287 0.000000 - 1 gene_id "RBM39"; transcript_id "NM_004902:uc002xec.3";
+chr20 hg19_knownGene exon 34317234 34317287 0.000000 - . gene_id "RBM39"; transcript_id "NM_004902:uc002xec.3";
+chr20 hg19_knownGene CDS 34317384 34317449 0.000000 - 1 gene_id "RBM39"; transcript_id "NM_004902:uc002xec.3";
+chr20 hg19_knownGene exon 34317384 34317449 0.000000 - . gene_id "RBM39"; transcript_id "NM_004902:uc002xec.3";
+chr20 hg19_knownGene CDS 34319863 34320057 0.000000 - 1 gene_id "RBM39"; transcript_id "NM_004902:uc002xec.3";
+chr20 hg19_knownGene exon 34319863 34320057 0.000000 - . gene_id "RBM39"; transcript_id "NM_004902:uc002xec.3";
+chr20 hg19_knownGene CDS 34326890 34326939 0.000000 - 0 gene_id "RBM39"; transcript_id "NM_004902:uc002xec.3";
+chr20 hg19_knownGene exon 34326890 34326939 0.000000 - . gene_id "RBM39"; transcript_id "NM_004902:uc002xec.3";
+chr20 hg19_knownGene CDS 34328746 34328796 0.000000 - 0 gene_id "RBM39"; transcript_id "NM_004902:uc002xec.3";
+chr20 hg19_knownGene exon 34328746 34328809 0.000000 - . gene_id "RBM39"; transcript_id "NM_004902:uc002xec.3";
+chr20 hg19_knownGene exon 34329863 34330258 0.000000 - . gene_id "RBM39"; transcript_id "NM_004902:uc002xec.3";
+chr20 hg19_knownGene CDS 34292406 34292503 0.000000 - 2 gene_id "RBM39"; transcript_id "NM_001242600:uc010zvm.2";
+chr20 hg19_knownGene exon 34291531 34292503 0.000000 - . gene_id "RBM39"; transcript_id "NM_001242600:uc010zvm.2";
+chr20 hg19_knownGene CDS 34292590 34292668 0.000000 - 0 gene_id "RBM39"; transcript_id "NM_001242600:uc010zvm.2";
+chr20 hg19_knownGene exon 34292590 34292668 0.000000 - . gene_id "RBM39"; transcript_id "NM_001242600:uc010zvm.2";
+chr20 hg19_knownGene CDS 34293147 34293252 0.000000 - 1 gene_id "RBM39"; transcript_id "NM_001242600:uc010zvm.2";
+chr20 hg19_knownGene exon 34293147 34293252 0.000000 - . gene_id "RBM39"; transcript_id "NM_001242600:uc010zvm.2";
+chr20 hg19_knownGene CDS 34295042 34295123 0.000000 - 2 gene_id "RBM39"; transcript_id "NM_001242600:uc010zvm.2";
+chr20 hg19_knownGene exon 34295042 34295123 0.000000 - . gene_id "RBM39"; transcript_id "NM_001242600:uc010zvm.2";
+chr20 hg19_knownGene CDS 34297146 34297178 0.000000 - 2 gene_id "RBM39"; transcript_id "NM_001242600:uc010zvm.2";
+chr20 hg19_knownGene exon 34297146 34297178 0.000000 - . gene_id "RBM39"; transcript_id "NM_001242600:uc010zvm.2";
+chr20 hg19_knownGene CDS 34300941 34301018 0.000000 - 2 gene_id "RBM39"; transcript_id "NM_001242600:uc010zvm.2";
+chr20 hg19_knownGene exon 34300941 34301018 0.000000 - . gene_id "RBM39"; transcript_id "NM_001242600:uc010zvm.2";
+chr20 hg19_knownGene CDS 34302107 34302311 0.000000 - 0 gene_id "RBM39"; transcript_id "NM_001242600:uc010zvm.2";
+chr20 hg19_knownGene exon 34302107 34302311 0.000000 - . gene_id "RBM39"; transcript_id "NM_001242600:uc010zvm.2";
+chr20 hg19_knownGene CDS 34304662 34304727 0.000000 - 0 gene_id "RBM39"; transcript_id "NM_001242600:uc010zvm.2";
+chr20 hg19_knownGene exon 34304662 34304727 0.000000 - . gene_id "RBM39"; transcript_id "NM_001242600:uc010zvm.2";
+chr20 hg19_knownGene CDS 34309662 34309799 0.000000 - 0 gene_id "RBM39"; transcript_id "NM_001242600:uc010zvm.2";
+chr20 hg19_knownGene exon 34309662 34309799 0.000000 - . gene_id "RBM39"; transcript_id "NM_001242600:uc010zvm.2";
+chr20 hg19_knownGene CDS 34312492 34312644 0.000000 - 0 gene_id "RBM39"; transcript_id "NM_001242600:uc010zvm.2";
+chr20 hg19_knownGene exon 34312492 34312644 0.000000 - . gene_id "RBM39"; transcript_id "NM_001242600:uc010zvm.2";
+chr20 hg19_knownGene CDS 34312960 34313077 0.000000 - 1 gene_id "RBM39"; transcript_id "NM_001242600:uc010zvm.2";
+chr20 hg19_knownGene exon 34312960 34313077 0.000000 - . gene_id "RBM39"; transcript_id "NM_001242600:uc010zvm.2";
+chr20 hg19_knownGene CDS 34317234 34317287 0.000000 - 1 gene_id "RBM39"; transcript_id "NM_001242600:uc010zvm.2";
+chr20 hg19_knownGene exon 34317234 34317287 0.000000 - . gene_id "RBM39"; transcript_id "NM_001242600:uc010zvm.2";
+chr20 hg19_knownGene CDS 34319863 34320057 0.000000 - 1 gene_id "RBM39"; transcript_id "NM_001242600:uc010zvm.2";
+chr20 hg19_knownGene exon 34319863 34320057 0.000000 - . gene_id "RBM39"; transcript_id "NM_001242600:uc010zvm.2";
+chr20 hg19_knownGene CDS 34326890 34326939 0.000000 - 0 gene_id "RBM39"; transcript_id "NM_001242600:uc010zvm.2";
+chr20 hg19_knownGene exon 34326890 34326939 0.000000 - . gene_id "RBM39"; transcript_id "NM_001242600:uc010zvm.2";
+chr20 hg19_knownGene CDS 34328746 34328796 0.000000 - 0 gene_id "RBM39"; transcript_id "NM_001242600:uc010zvm.2";
+chr20 hg19_knownGene exon 34328746 34328809 0.000000 - . gene_id "RBM39"; transcript_id "NM_001242600:uc010zvm.2";
+chr20 hg19_knownGene exon 34329863 34330258 0.000000 - . gene_id "RBM39"; transcript_id "NM_001242600:uc010zvm.2";
+chr20 hg19_knownGene CDS 34292406 34292503 0.000000 - 2 gene_id "RBM39"; transcript_id "NM_001242599:uc002xeg.3";
+chr20 hg19_knownGene exon 34291531 34292503 0.000000 - . gene_id "RBM39"; transcript_id "NM_001242599:uc002xeg.3";
+chr20 hg19_knownGene CDS 34292590 34292668 0.000000 - 0 gene_id "RBM39"; transcript_id "NM_001242599:uc002xeg.3";
+chr20 hg19_knownGene exon 34292590 34292668 0.000000 - . gene_id "RBM39"; transcript_id "NM_001242599:uc002xeg.3";
+chr20 hg19_knownGene CDS 34293147 34293252 0.000000 - 1 gene_id "RBM39"; transcript_id "NM_001242599:uc002xeg.3";
+chr20 hg19_knownGene exon 34293147 34293252 0.000000 - . gene_id "RBM39"; transcript_id "NM_001242599:uc002xeg.3";
+chr20 hg19_knownGene CDS 34295042 34295123 0.000000 - 2 gene_id "RBM39"; transcript_id "NM_001242599:uc002xeg.3";
+chr20 hg19_knownGene exon 34295042 34295123 0.000000 - . gene_id "RBM39"; transcript_id "NM_001242599:uc002xeg.3";
+chr20 hg19_knownGene CDS 34297146 34297196 0.000000 - 2 gene_id "RBM39"; transcript_id "NM_001242599:uc002xeg.3";
+chr20 hg19_knownGene exon 34297146 34297196 0.000000 - . gene_id "RBM39"; transcript_id "NM_001242599:uc002xeg.3";
+chr20 hg19_knownGene CDS 34300941 34301018 0.000000 - 2 gene_id "RBM39"; transcript_id "NM_001242599:uc002xeg.3";
+chr20 hg19_knownGene exon 34300941 34301018 0.000000 - . gene_id "RBM39"; transcript_id "NM_001242599:uc002xeg.3";
+chr20 hg19_knownGene CDS 34302107 34302311 0.000000 - 0 gene_id "RBM39"; transcript_id "NM_001242599:uc002xeg.3";
+chr20 hg19_knownGene exon 34302107 34302311 0.000000 - . gene_id "RBM39"; transcript_id "NM_001242599:uc002xeg.3";
+chr20 hg19_knownGene CDS 34304662 34304727 0.000000 - 0 gene_id "RBM39"; transcript_id "NM_001242599:uc002xeg.3";
+chr20 hg19_knownGene exon 34304662 34304727 0.000000 - . gene_id "RBM39"; transcript_id "NM_001242599:uc002xeg.3";
+chr20 hg19_knownGene CDS 34309662 34309799 0.000000 - 0 gene_id "RBM39"; transcript_id "NM_001242599:uc002xeg.3";
+chr20 hg19_knownGene exon 34309662 34309799 0.000000 - . gene_id "RBM39"; transcript_id "NM_001242599:uc002xeg.3";
+chr20 hg19_knownGene CDS 34312492 34312644 0.000000 - 0 gene_id "RBM39"; transcript_id "NM_001242599:uc002xeg.3";
+chr20 hg19_knownGene exon 34312492 34312644 0.000000 - . gene_id "RBM39"; transcript_id "NM_001242599:uc002xeg.3";
+chr20 hg19_knownGene CDS 34312960 34313077 0.000000 - 1 gene_id "RBM39"; transcript_id "NM_001242599:uc002xeg.3";
+chr20 hg19_knownGene exon 34312960 34313077 0.000000 - . gene_id "RBM39"; transcript_id "NM_001242599:uc002xeg.3";
+chr20 hg19_knownGene CDS 34317234 34317287 0.000000 - 1 gene_id "RBM39"; transcript_id "NM_001242599:uc002xeg.3";
+chr20 hg19_knownGene exon 34317234 34317287 0.000000 - . gene_id "RBM39"; transcript_id "NM_001242599:uc002xeg.3";
+chr20 hg19_knownGene CDS 34319863 34320057 0.000000 - 1 gene_id "RBM39"; transcript_id "NM_001242599:uc002xeg.3";
+chr20 hg19_knownGene exon 34319863 34320057 0.000000 - . gene_id "RBM39"; transcript_id "NM_001242599:uc002xeg.3";
+chr20 hg19_knownGene CDS 34326890 34326939 0.000000 - 0 gene_id "RBM39"; transcript_id "NM_001242599:uc002xeg.3";
+chr20 hg19_knownGene exon 34326890 34326939 0.000000 - . gene_id "RBM39"; transcript_id "NM_001242599:uc002xeg.3";
+chr20 hg19_knownGene CDS 34328746 34328796 0.000000 - 0 gene_id "RBM39"; transcript_id "NM_001242599:uc002xeg.3";
+chr20 hg19_knownGene exon 34328746 34328809 0.000000 - . gene_id "RBM39"; transcript_id "NM_001242599:uc002xeg.3";
+chr20 hg19_knownGene exon 34329863 34330258 0.000000 - . gene_id "RBM39"; transcript_id "NM_001242599:uc002xeg.3";
+chr20 hg19_knownGene CDS 34292406 34292503 0.000000 - 2 gene_id "RBM39"; transcript_id "BC107886:uc002xed.3";
+chr20 hg19_knownGene exon 34291531 34292503 0.000000 - . gene_id "RBM39"; transcript_id "BC107886:uc002xed.3";
+chr20 hg19_knownGene CDS 34292590 34292668 0.000000 - 0 gene_id "RBM39"; transcript_id "BC107886:uc002xed.3";
+chr20 hg19_knownGene exon 34292590 34292668 0.000000 - . gene_id "RBM39"; transcript_id "BC107886:uc002xed.3";
+chr20 hg19_knownGene CDS 34293147 34293252 0.000000 - 1 gene_id "RBM39"; transcript_id "BC107886:uc002xed.3";
+chr20 hg19_knownGene exon 34293147 34293252 0.000000 - . gene_id "RBM39"; transcript_id "BC107886:uc002xed.3";
+chr20 hg19_knownGene CDS 34295042 34295123 0.000000 - 2 gene_id "RBM39"; transcript_id "BC107886:uc002xed.3";
+chr20 hg19_knownGene exon 34295042 34295123 0.000000 - . gene_id "RBM39"; transcript_id "BC107886:uc002xed.3";
+chr20 hg19_knownGene CDS 34297146 34297196 0.000000 - 2 gene_id "RBM39"; transcript_id "BC107886:uc002xed.3";
+chr20 hg19_knownGene exon 34297146 34297196 0.000000 - . gene_id "RBM39"; transcript_id "BC107886:uc002xed.3";
+chr20 hg19_knownGene CDS 34300941 34301018 0.000000 - 2 gene_id "RBM39"; transcript_id "BC107886:uc002xed.3";
+chr20 hg19_knownGene exon 34300941 34301018 0.000000 - . gene_id "RBM39"; transcript_id "BC107886:uc002xed.3";
+chr20 hg19_knownGene CDS 34302107 34302311 0.000000 - 0 gene_id "RBM39"; transcript_id "BC107886:uc002xed.3";
+chr20 hg19_knownGene exon 34302107 34302311 0.000000 - . gene_id "RBM39"; transcript_id "BC107886:uc002xed.3";
+chr20 hg19_knownGene CDS 34304662 34304706 0.000000 - 0 gene_id "RBM39"; transcript_id "BC107886:uc002xed.3";
+chr20 hg19_knownGene exon 34304662 34304727 0.000000 - . gene_id "RBM39"; transcript_id "BC107886:uc002xed.3";
+chr20 hg19_knownGene exon 34308436 34308524 0.000000 - . gene_id "RBM39"; transcript_id "BC107886:uc002xed.3";
+chr20 hg19_knownGene exon 34309662 34309799 0.000000 - . gene_id "RBM39"; transcript_id "BC107886:uc002xed.3";
+chr20 hg19_knownGene exon 34312492 34312644 0.000000 - . gene_id "RBM39"; transcript_id "BC107886:uc002xed.3";
+chr20 hg19_knownGene exon 34312960 34313077 0.000000 - . gene_id "RBM39"; transcript_id "BC107886:uc002xed.3";
+chr20 hg19_knownGene exon 34317234 34317287 0.000000 - . gene_id "RBM39"; transcript_id "BC107886:uc002xed.3";
+chr20 hg19_knownGene exon 34317384 34317449 0.000000 - . gene_id "RBM39"; transcript_id "BC107886:uc002xed.3";
+chr20 hg19_knownGene exon 34319863 34320057 0.000000 - . gene_id "RBM39"; transcript_id "BC107886:uc002xed.3";
+chr20 hg19_knownGene exon 34326890 34326939 0.000000 - . gene_id "RBM39"; transcript_id "BC107886:uc002xed.3";
+chr20 hg19_knownGene exon 34328447 34328519 0.000000 - . gene_id "RBM39"; transcript_id "BC107886:uc002xed.3";
+chr20 hg19_knownGene exon 34328746 34328809 0.000000 - . gene_id "RBM39"; transcript_id "BC107886:uc002xed.3";
+chr20 hg19_knownGene exon 34329863 34330258 0.000000 - . gene_id "RBM39"; transcript_id "BC107886:uc002xed.3";
+chr20 hg19_knownGene exon 34359923 34360001 0.000000 + . gene_id "PHF20"; transcript_id "BC015538:uc002xeh.3";
+chr20 hg19_knownGene exon 34389413 34389527 0.000000 + . gene_id "PHF20"; transcript_id "BC015538:uc002xeh.3";
+chr20 hg19_knownGene exon 34411180 34411399 0.000000 + . gene_id "PHF20"; transcript_id "BC015538:uc002xeh.3";
+chr20 hg19_knownGene exon 34430495 34430666 0.000000 + . gene_id "PHF20"; transcript_id "BC062681:uc002xel.1";
+chr20 hg19_knownGene exon 34435272 34435356 0.000000 + . gene_id "PHF20"; transcript_id "BC062681:uc002xel.1";
+chr20 hg19_knownGene CDS 34446278 34446303 0.000000 + 0 gene_id "PHF20"; transcript_id "BC062681:uc002xel.1";
+chr20 hg19_knownGene exon 34446224 34446303 0.000000 + . gene_id "PHF20"; transcript_id "BC062681:uc002xel.1";
+chr20 hg19_knownGene CDS 34450955 34451322 0.000000 + 1 gene_id "PHF20"; transcript_id "BC062681:uc002xel.1";
+chr20 hg19_knownGene exon 34450955 34451322 0.000000 + . gene_id "PHF20"; transcript_id "BC062681:uc002xel.1";
+chr20 hg19_knownGene CDS 34457360 34457469 0.000000 + 2 gene_id "PHF20"; transcript_id "BC062681:uc002xel.1";
+chr20 hg19_knownGene exon 34457360 34457473 0.000000 + . gene_id "PHF20"; transcript_id "BC062681:uc002xel.1";
+chr20 hg19_knownGene exon 34498422 34499947 0.000000 + . gene_id "AX746620"; transcript_id "AX746620:uc002xem.1";
+chr20 hg19_knownGene exon 34500690 34501231 0.000000 + . gene_id "AX746620"; transcript_id "AX746620:uc002xem.1";
+chr20 hg19_knownGene exon 34359923 34360001 0.000000 + . gene_id "PHF20"; transcript_id "AK054597:uc002xei.1";
+chr20 hg19_knownGene exon 34370250 34370531 0.000000 + . gene_id "PHF20"; transcript_id "AK054597:uc002xei.1";
+chr20 hg19_knownGene CDS 34389445 34389527 0.000000 + 0 gene_id "PHF20"; transcript_id "AK054597:uc002xei.1";
+chr20 hg19_knownGene exon 34389413 34389527 0.000000 + . gene_id "PHF20"; transcript_id "AK054597:uc002xei.1";
+chr20 hg19_knownGene CDS 34430495 34430666 0.000000 + 1 gene_id "PHF20"; transcript_id "AK054597:uc002xei.1";
+chr20 hg19_knownGene exon 34430495 34430666 0.000000 + . gene_id "PHF20"; transcript_id "AK054597:uc002xei.1";
+chr20 hg19_knownGene CDS 34435272 34435356 0.000000 + 0 gene_id "PHF20"; transcript_id "AK054597:uc002xei.1";
+chr20 hg19_knownGene exon 34435272 34435356 0.000000 + . gene_id "PHF20"; transcript_id "AK054597:uc002xei.1";
+chr20 hg19_knownGene CDS 34446224 34446303 0.000000 + 2 gene_id "PHF20"; transcript_id "AK054597:uc002xei.1";
+chr20 hg19_knownGene exon 34446224 34446303 0.000000 + . gene_id "PHF20"; transcript_id "AK054597:uc002xei.1";
+chr20 hg19_knownGene CDS 34450935 34451322 0.000000 + 0 gene_id "PHF20"; transcript_id "AK054597:uc002xei.1";
+chr20 hg19_knownGene exon 34450935 34451322 0.000000 + . gene_id "PHF20"; transcript_id "AK054597:uc002xei.1";
+chr20 hg19_knownGene CDS 34457360 34457473 0.000000 + 2 gene_id "PHF20"; transcript_id "AK054597:uc002xei.1";
+chr20 hg19_knownGene exon 34457360 34457473 0.000000 + . gene_id "PHF20"; transcript_id "AK054597:uc002xei.1";
+chr20 hg19_knownGene CDS 34458877 34459056 0.000000 + 2 gene_id "PHF20"; transcript_id "AK054597:uc002xei.1";
+chr20 hg19_knownGene exon 34458877 34459056 0.000000 + . gene_id "PHF20"; transcript_id "AK054597:uc002xei.1";
+chr20 hg19_knownGene CDS 34459572 34459751 0.000000 + 2 gene_id "PHF20"; transcript_id "AK054597:uc002xei.1";
+chr20 hg19_knownGene exon 34459572 34459751 0.000000 + . gene_id "PHF20"; transcript_id "AK054597:uc002xei.1";
+chr20 hg19_knownGene CDS 34487292 34487570 0.000000 + 2 gene_id "PHF20"; transcript_id "AK054597:uc002xei.1";
+chr20 hg19_knownGene exon 34487292 34487570 0.000000 + . gene_id "PHF20"; transcript_id "AK054597:uc002xei.1";
+chr20 hg19_knownGene CDS 34501171 34501265 0.000000 + 2 gene_id "PHF20"; transcript_id "AK054597:uc002xei.1";
+chr20 hg19_knownGene exon 34501171 34501269 0.000000 + . gene_id "PHF20"; transcript_id "AK054597:uc002xei.1";
+chr20 hg19_knownGene exon 34359923 34360001 0.000000 + . gene_id "PHF20"; transcript_id "BC048210:uc010gfo.1";
+chr20 hg19_knownGene exon 34388016 34388095 0.000000 + . gene_id "PHF20"; transcript_id "BC048210:uc010gfo.1";
+chr20 hg19_knownGene CDS 34389445 34389527 0.000000 + 0 gene_id "PHF20"; transcript_id "BC048210:uc010gfo.1";
+chr20 hg19_knownGene exon 34389413 34389527 0.000000 + . gene_id "PHF20"; transcript_id "BC048210:uc010gfo.1";
+chr20 hg19_knownGene CDS 34430495 34430666 0.000000 + 1 gene_id "PHF20"; transcript_id "BC048210:uc010gfo.1";
+chr20 hg19_knownGene exon 34430495 34430666 0.000000 + . gene_id "PHF20"; transcript_id "BC048210:uc010gfo.1";
+chr20 hg19_knownGene CDS 34435272 34435356 0.000000 + 0 gene_id "PHF20"; transcript_id "BC048210:uc010gfo.1";
+chr20 hg19_knownGene exon 34435272 34435356 0.000000 + . gene_id "PHF20"; transcript_id "BC048210:uc010gfo.1";
+chr20 hg19_knownGene CDS 34446224 34446303 0.000000 + 2 gene_id "PHF20"; transcript_id "BC048210:uc010gfo.1";
+chr20 hg19_knownGene exon 34446224 34446303 0.000000 + . gene_id "PHF20"; transcript_id "BC048210:uc010gfo.1";
+chr20 hg19_knownGene CDS 34450935 34451322 0.000000 + 0 gene_id "PHF20"; transcript_id "BC048210:uc010gfo.1";
+chr20 hg19_knownGene exon 34450935 34451322 0.000000 + . gene_id "PHF20"; transcript_id "BC048210:uc010gfo.1";
+chr20 hg19_knownGene CDS 34457360 34457473 0.000000 + 2 gene_id "PHF20"; transcript_id "BC048210:uc010gfo.1";
+chr20 hg19_knownGene exon 34457360 34457473 0.000000 + . gene_id "PHF20"; transcript_id "BC048210:uc010gfo.1";
+chr20 hg19_knownGene CDS 34458877 34459056 0.000000 + 2 gene_id "PHF20"; transcript_id "BC048210:uc010gfo.1";
+chr20 hg19_knownGene exon 34458877 34459056 0.000000 + . gene_id "PHF20"; transcript_id "BC048210:uc010gfo.1";
+chr20 hg19_knownGene CDS 34459572 34459751 0.000000 + 2 gene_id "PHF20"; transcript_id "BC048210:uc010gfo.1";
+chr20 hg19_knownGene exon 34459572 34459751 0.000000 + . gene_id "PHF20"; transcript_id "BC048210:uc010gfo.1";
+chr20 hg19_knownGene CDS 34487292 34487570 0.000000 + 2 gene_id "PHF20"; transcript_id "BC048210:uc010gfo.1";
+chr20 hg19_knownGene exon 34487292 34487570 0.000000 + . gene_id "PHF20"; transcript_id "BC048210:uc010gfo.1";
+chr20 hg19_knownGene CDS 34501171 34501265 0.000000 + 2 gene_id "PHF20"; transcript_id "BC048210:uc010gfo.1";
+chr20 hg19_knownGene exon 34501171 34501269 0.000000 + . gene_id "PHF20"; transcript_id "BC048210:uc010gfo.1";
+chr20 hg19_knownGene exon 34359923 34360001 0.000000 + . gene_id "PHF20"; transcript_id "BC006415:uc002xej.1";
+chr20 hg19_knownGene exon 34389413 34389527 0.000000 + . gene_id "PHF20"; transcript_id "BC006415:uc002xej.1";
+chr20 hg19_knownGene exon 34430495 34430666 0.000000 + . gene_id "PHF20"; transcript_id "BC006415:uc002xej.1";
+chr20 hg19_knownGene CDS 34435285 34435356 0.000000 + 0 gene_id "PHF20"; transcript_id "BC006415:uc002xej.1";
+chr20 hg19_knownGene exon 34435272 34435356 0.000000 + . gene_id "PHF20"; transcript_id "BC006415:uc002xej.1";
+chr20 hg19_knownGene CDS 34450935 34451322 0.000000 + 0 gene_id "PHF20"; transcript_id "BC006415:uc002xej.1";
+chr20 hg19_knownGene exon 34450935 34451322 0.000000 + . gene_id "PHF20"; transcript_id "BC006415:uc002xej.1";
+chr20 hg19_knownGene CDS 34457360 34457473 0.000000 + 2 gene_id "PHF20"; transcript_id "BC006415:uc002xej.1";
+chr20 hg19_knownGene exon 34457360 34457473 0.000000 + . gene_id "PHF20"; transcript_id "BC006415:uc002xej.1";
+chr20 hg19_knownGene CDS 34458877 34459056 0.000000 + 2 gene_id "PHF20"; transcript_id "BC006415:uc002xej.1";
+chr20 hg19_knownGene exon 34458877 34459056 0.000000 + . gene_id "PHF20"; transcript_id "BC006415:uc002xej.1";
+chr20 hg19_knownGene CDS 34459572 34459751 0.000000 + 2 gene_id "PHF20"; transcript_id "BC006415:uc002xej.1";
+chr20 hg19_knownGene exon 34459572 34459751 0.000000 + . gene_id "PHF20"; transcript_id "BC006415:uc002xej.1";
+chr20 hg19_knownGene CDS 34487292 34487570 0.000000 + 2 gene_id "PHF20"; transcript_id "BC006415:uc002xej.1";
+chr20 hg19_knownGene exon 34487292 34487570 0.000000 + . gene_id "PHF20"; transcript_id "BC006415:uc002xej.1";
+chr20 hg19_knownGene CDS 34501171 34501265 0.000000 + 2 gene_id "PHF20"; transcript_id "BC006415:uc002xej.1";
+chr20 hg19_knownGene exon 34501171 34501269 0.000000 + . gene_id "PHF20"; transcript_id "BC006415:uc002xej.1";
+chr20 hg19_knownGene exon 34516492 34516597 0.000000 - . gene_id "U6"; transcript_id ":uc021wcs.1";
+chr20 hg19_knownGene exon 34359923 34360001 0.000000 + . gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene CDS 34389445 34389527 0.000000 + 0 gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene exon 34389413 34389527 0.000000 + . gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene CDS 34430495 34430666 0.000000 + 1 gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene exon 34430495 34430666 0.000000 + . gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene CDS 34435272 34435356 0.000000 + 0 gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene exon 34435272 34435356 0.000000 + . gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene CDS 34446224 34446303 0.000000 + 2 gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene exon 34446224 34446303 0.000000 + . gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene CDS 34450935 34451322 0.000000 + 0 gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene exon 34450935 34451322 0.000000 + . gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene CDS 34457360 34457473 0.000000 + 2 gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene exon 34457360 34457473 0.000000 + . gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene CDS 34458877 34459056 0.000000 + 2 gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene exon 34458877 34459056 0.000000 + . gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene CDS 34459572 34459751 0.000000 + 2 gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene exon 34459572 34459751 0.000000 + . gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene CDS 34487292 34487570 0.000000 + 2 gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene exon 34487292 34487570 0.000000 + . gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene CDS 34501171 34501269 0.000000 + 2 gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene exon 34501171 34501269 0.000000 + . gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene CDS 34501955 34502119 0.000000 + 2 gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene exon 34501955 34502119 0.000000 + . gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene CDS 34505406 34505584 0.000000 + 2 gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene exon 34505406 34505584 0.000000 + . gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene CDS 34515702 34515801 0.000000 + 0 gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene exon 34515702 34515801 0.000000 + . gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene CDS 34519171 34519366 0.000000 + 2 gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene exon 34519171 34519366 0.000000 + . gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene CDS 34526619 34527030 0.000000 + 1 gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene exon 34526619 34527030 0.000000 + . gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene CDS 34528786 34528969 0.000000 + 0 gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene exon 34528786 34528969 0.000000 + . gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene CDS 34535407 34535546 0.000000 + 2 gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene exon 34535407 34538288 0.000000 + . gene_id "PHF20"; transcript_id "NM_016436:uc002xek.1";
+chr20 hg19_knownGene CDS 34541670 34542206 0.000000 - 0 gene_id "SCAND1"; transcript_id "CCDS13269:uc002xeo.3";
+chr20 hg19_knownGene exon 34541667 34542206 0.000000 - . gene_id "SCAND1"; transcript_id "CCDS13269:uc002xeo.3";
+chr20 hg19_knownGene CDS 34541670 34542261 0.000000 - 1 gene_id "SCAND1"; transcript_id "NM_033630:uc002xen.2";
+chr20 hg19_knownGene exon 34541539 34542261 0.000000 - . gene_id "SCAND1"; transcript_id "NM_033630:uc002xen.2";
+chr20 hg19_knownGene CDS 34542370 34542503 0.000000 - 0 gene_id "SCAND1"; transcript_id "NM_033630:uc002xen.2";
+chr20 hg19_knownGene exon 34542370 34542548 0.000000 - . gene_id "SCAND1"; transcript_id "NM_033630:uc002xen.2";
+chr20 hg19_knownGene CDS 34541670 34542206 0.000000 - 0 gene_id "SCAND1"; transcript_id "NM_016558:uc021wct.1";
+chr20 hg19_knownGene exon 34541539 34542261 0.000000 - . gene_id "SCAND1"; transcript_id "NM_016558:uc021wct.1";
+chr20 hg19_knownGene exon 34542370 34542409 0.000000 - . gene_id "SCAND1"; transcript_id "NM_016558:uc021wct.1";
+chr20 hg19_knownGene exon 34542674 34543281 0.000000 - . gene_id "SCAND1"; transcript_id "NM_016558:uc021wct.1";
+chr20 hg19_knownGene CDS 34541670 34542206 0.000000 - 0 gene_id "SCAND1"; transcript_id "BC041022:uc002xep.3";
+chr20 hg19_knownGene exon 34541551 34543024 0.000000 - . gene_id "SCAND1"; transcript_id "BC041022:uc002xep.3";
+chr20 hg19_knownGene exon 34546784 34546976 0.000000 - . gene_id "SCAND1"; transcript_id "BC041022:uc002xep.3";
+chr20 hg19_knownGene exon 34547335 34547394 0.000000 - . gene_id "SCAND1"; transcript_id "BC041022:uc002xep.3";
+chr20 hg19_knownGene CDS 34556685 34556735 0.000000 + 0 gene_id "C20orf152"; transcript_id "NM_080834:uc002xer.1";
+chr20 hg19_knownGene exon 34556529 34556735 0.000000 + . gene_id "C20orf152"; transcript_id "NM_080834:uc002xer.1";
+chr20 hg19_knownGene CDS 34560551 34560688 0.000000 + 0 gene_id "C20orf152"; transcript_id "NM_080834:uc002xer.1";
+chr20 hg19_knownGene exon 34560551 34560688 0.000000 + . gene_id "C20orf152"; transcript_id "NM_080834:uc002xer.1";
+chr20 hg19_knownGene CDS 34563871 34563924 0.000000 + 0 gene_id "C20orf152"; transcript_id "NM_080834:uc002xer.1";
+chr20 hg19_knownGene exon 34563871 34563924 0.000000 + . gene_id "C20orf152"; transcript_id "NM_080834:uc002xer.1";
+chr20 hg19_knownGene CDS 34568381 34568544 0.000000 + 0 gene_id "C20orf152"; transcript_id "NM_080834:uc002xer.1";
+chr20 hg19_knownGene exon 34568381 34568544 0.000000 + . gene_id "C20orf152"; transcript_id "NM_080834:uc002xer.1";
+chr20 hg19_knownGene CDS 34571904 34572060 0.000000 + 1 gene_id "C20orf152"; transcript_id "NM_080834:uc002xer.1";
+chr20 hg19_knownGene exon 34571904 34572060 0.000000 + . gene_id "C20orf152"; transcript_id "NM_080834:uc002xer.1";
+chr20 hg19_knownGene CDS 34572549 34572700 0.000000 + 0 gene_id "C20orf152"; transcript_id "NM_080834:uc002xer.1";
+chr20 hg19_knownGene exon 34572549 34572700 0.000000 + . gene_id "C20orf152"; transcript_id "NM_080834:uc002xer.1";
+chr20 hg19_knownGene CDS 34575317 34575455 0.000000 + 1 gene_id "C20orf152"; transcript_id "NM_080834:uc002xer.1";
+chr20 hg19_knownGene exon 34575317 34575455 0.000000 + . gene_id "C20orf152"; transcript_id "NM_080834:uc002xer.1";
+chr20 hg19_knownGene CDS 34582960 34583074 0.000000 + 0 gene_id "C20orf152"; transcript_id "NM_080834:uc002xer.1";
+chr20 hg19_knownGene exon 34582960 34583074 0.000000 + . gene_id "C20orf152"; transcript_id "NM_080834:uc002xer.1";
+chr20 hg19_knownGene CDS 34596219 34596396 0.000000 + 2 gene_id "C20orf152"; transcript_id "NM_080834:uc002xer.1";
+chr20 hg19_knownGene exon 34596219 34596396 0.000000 + . gene_id "C20orf152"; transcript_id "NM_080834:uc002xer.1";
+chr20 hg19_knownGene CDS 34599059 34599179 0.000000 + 1 gene_id "C20orf152"; transcript_id "NM_080834:uc002xer.1";
+chr20 hg19_knownGene exon 34599059 34599179 0.000000 + . gene_id "C20orf152"; transcript_id "NM_080834:uc002xer.1";
+chr20 hg19_knownGene CDS 34611536 34611693 0.000000 + 0 gene_id "C20orf152"; transcript_id "NM_080834:uc002xer.1";
+chr20 hg19_knownGene exon 34611536 34611693 0.000000 + . gene_id "C20orf152"; transcript_id "NM_080834:uc002xer.1";
+chr20 hg19_knownGene CDS 34618279 34618567 0.000000 + 1 gene_id "C20orf152"; transcript_id "NM_080834:uc002xer.1";
+chr20 hg19_knownGene exon 34618279 34618622 0.000000 + . gene_id "C20orf152"; transcript_id "NM_080834:uc002xer.1";
+chr20 hg19_knownGene CDS 34556685 34556735 0.000000 + 0 gene_id "C20orf152"; transcript_id "NM_001207076:uc002xes.1";
+chr20 hg19_knownGene exon 34556529 34556735 0.000000 + . gene_id "C20orf152"; transcript_id "NM_001207076:uc002xes.1";
+chr20 hg19_knownGene CDS 34560551 34560688 0.000000 + 0 gene_id "C20orf152"; transcript_id "NM_001207076:uc002xes.1";
+chr20 hg19_knownGene exon 34560551 34560688 0.000000 + . gene_id "C20orf152"; transcript_id "NM_001207076:uc002xes.1";
+chr20 hg19_knownGene CDS 34563871 34563924 0.000000 + 0 gene_id "C20orf152"; transcript_id "NM_001207076:uc002xes.1";
+chr20 hg19_knownGene exon 34563871 34563924 0.000000 + . gene_id "C20orf152"; transcript_id "NM_001207076:uc002xes.1";
+chr20 hg19_knownGene CDS 34568381 34568544 0.000000 + 0 gene_id "C20orf152"; transcript_id "NM_001207076:uc002xes.1";
+chr20 hg19_knownGene exon 34568381 34568544 0.000000 + . gene_id "C20orf152"; transcript_id "NM_001207076:uc002xes.1";
+chr20 hg19_knownGene CDS 34571904 34572060 0.000000 + 1 gene_id "C20orf152"; transcript_id "NM_001207076:uc002xes.1";
+chr20 hg19_knownGene exon 34571904 34572060 0.000000 + . gene_id "C20orf152"; transcript_id "NM_001207076:uc002xes.1";
+chr20 hg19_knownGene CDS 34572549 34572700 0.000000 + 0 gene_id "C20orf152"; transcript_id "NM_001207076:uc002xes.1";
+chr20 hg19_knownGene exon 34572549 34572700 0.000000 + . gene_id "C20orf152"; transcript_id "NM_001207076:uc002xes.1";
+chr20 hg19_knownGene CDS 34575317 34575455 0.000000 + 1 gene_id "C20orf152"; transcript_id "NM_001207076:uc002xes.1";
+chr20 hg19_knownGene exon 34575317 34575455 0.000000 + . gene_id "C20orf152"; transcript_id "NM_001207076:uc002xes.1";
+chr20 hg19_knownGene CDS 34582960 34583074 0.000000 + 0 gene_id "C20orf152"; transcript_id "NM_001207076:uc002xes.1";
+chr20 hg19_knownGene exon 34582960 34583074 0.000000 + . gene_id "C20orf152"; transcript_id "NM_001207076:uc002xes.1";
+chr20 hg19_knownGene CDS 34596219 34596396 0.000000 + 2 gene_id "C20orf152"; transcript_id "NM_001207076:uc002xes.1";
+chr20 hg19_knownGene exon 34596219 34596396 0.000000 + . gene_id "C20orf152"; transcript_id "NM_001207076:uc002xes.1";
+chr20 hg19_knownGene CDS 34599059 34599179 0.000000 + 1 gene_id "C20orf152"; transcript_id "NM_001207076:uc002xes.1";
+chr20 hg19_knownGene exon 34599059 34599179 0.000000 + . gene_id "C20orf152"; transcript_id "NM_001207076:uc002xes.1";
+chr20 hg19_knownGene exon 34618279 34618622 0.000000 + . gene_id "C20orf152"; transcript_id "NM_001207076:uc002xes.1";
+chr20 hg19_knownGene exon 34556529 34556735 0.000000 + . gene_id "C20orf152"; transcript_id "BC114634:uc010gfp.1";
+chr20 hg19_knownGene exon 34560551 34560688 0.000000 + . gene_id "C20orf152"; transcript_id "BC114634:uc010gfp.1";
+chr20 hg19_knownGene exon 34563871 34563924 0.000000 + . gene_id "C20orf152"; transcript_id "BC114634:uc010gfp.1";
+chr20 hg19_knownGene exon 34568381 34568544 0.000000 + . gene_id "C20orf152"; transcript_id "BC114634:uc010gfp.1";
+chr20 hg19_knownGene exon 34572549 34572700 0.000000 + . gene_id "C20orf152"; transcript_id "BC114634:uc010gfp.1";
+chr20 hg19_knownGene exon 34582960 34583074 0.000000 + . gene_id "C20orf152"; transcript_id "BC114634:uc010gfp.1";
+chr20 hg19_knownGene exon 34596219 34596396 0.000000 + . gene_id "C20orf152"; transcript_id "BC114634:uc010gfp.1";
+chr20 hg19_knownGene exon 34599059 34599179 0.000000 + . gene_id "C20orf152"; transcript_id "BC114634:uc010gfp.1";
+chr20 hg19_knownGene exon 34618279 34618622 0.000000 + . gene_id "C20orf152"; transcript_id "BC114634:uc010gfp.1";
+chr20 hg19_knownGene CDS 34638317 34638640 0.000000 - 0 gene_id "LOC647979"; transcript_id "NR_027451:uc002xet.3";
+chr20 hg19_knownGene exon 34633540 34638882 0.000000 - . gene_id "LOC647979"; transcript_id "NR_027451:uc002xet.3";
+chr20 hg19_knownGene exon 34738335 34740573 0.000000 - . gene_id "AX746683"; transcript_id "AX746683:uc002xfa.1";
+chr20 hg19_knownGene CDS 34740907 34741008 0.000000 - 0 gene_id "AX746683"; transcript_id "AX746683:uc002xfa.1";
+chr20 hg19_knownGene exon 34740877 34741008 0.000000 - . gene_id "AX746683"; transcript_id "AX746683:uc002xfa.1";
+chr20 hg19_knownGene CDS 34742985 34743176 0.000000 - 0 gene_id "AX746683"; transcript_id "AX746683:uc002xfa.1";
+chr20 hg19_knownGene exon 34742985 34743176 0.000000 - . gene_id "AX746683"; transcript_id "AX746683:uc002xfa.1";
+chr20 hg19_knownGene CDS 34743518 34743568 0.000000 - 0 gene_id "AX746683"; transcript_id "AX746683:uc002xfa.1";
+chr20 hg19_knownGene exon 34743518 34743655 0.000000 - . gene_id "AX746683"; transcript_id "AX746683:uc002xfa.1";
+chr20 hg19_knownGene exon 34680632 34680735 0.000000 + . gene_id "EPB41L1"; transcript_id "AK299817:uc010zvo.1";
+chr20 hg19_knownGene CDS 34761700 34761876 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK299817:uc010zvo.1";
+chr20 hg19_knownGene exon 34761686 34761876 0.000000 + . gene_id "EPB41L1"; transcript_id "AK299817:uc010zvo.1";
+chr20 hg19_knownGene CDS 34763473 34763637 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK299817:uc010zvo.1";
+chr20 hg19_knownGene exon 34763473 34763637 0.000000 + . gene_id "EPB41L1"; transcript_id "AK299817:uc010zvo.1";
+chr20 hg19_knownGene CDS 34765874 34765978 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK299817:uc010zvo.1";
+chr20 hg19_knownGene exon 34765874 34765978 0.000000 + . gene_id "EPB41L1"; transcript_id "AK299817:uc010zvo.1";
+chr20 hg19_knownGene CDS 34766552 34766594 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK299817:uc010zvo.1";
+chr20 hg19_knownGene exon 34766552 34766594 0.000000 + . gene_id "EPB41L1"; transcript_id "AK299817:uc010zvo.1";
+chr20 hg19_knownGene CDS 34770194 34770269 0.000000 + 2 gene_id "EPB41L1"; transcript_id "AK299817:uc010zvo.1";
+chr20 hg19_knownGene exon 34770194 34770269 0.000000 + . gene_id "EPB41L1"; transcript_id "AK299817:uc010zvo.1";
+chr20 hg19_knownGene CDS 34773039 34773257 0.000000 + 1 gene_id "EPB41L1"; transcript_id "AK299817:uc010zvo.1";
+chr20 hg19_knownGene exon 34773039 34773257 0.000000 + . gene_id "EPB41L1"; transcript_id "AK299817:uc010zvo.1";
+chr20 hg19_knownGene CDS 34775598 34775685 0.000000 + 1 gene_id "EPB41L1"; transcript_id "AK299817:uc010zvo.1";
+chr20 hg19_knownGene exon 34775598 34775685 0.000000 + . gene_id "EPB41L1"; transcript_id "AK299817:uc010zvo.1";
+chr20 hg19_knownGene CDS 34776269 34776421 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK299817:uc010zvo.1";
+chr20 hg19_knownGene exon 34776269 34776421 0.000000 + . gene_id "EPB41L1"; transcript_id "AK299817:uc010zvo.1";
+chr20 hg19_knownGene CDS 34778199 34778296 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK299817:uc010zvo.1";
+chr20 hg19_knownGene exon 34778199 34778296 0.000000 + . gene_id "EPB41L1"; transcript_id "AK299817:uc010zvo.1";
+chr20 hg19_knownGene CDS 34778544 34778719 0.000000 + 1 gene_id "EPB41L1"; transcript_id "AK299817:uc010zvo.1";
+chr20 hg19_knownGene exon 34778544 34778719 0.000000 + . gene_id "EPB41L1"; transcript_id "AK299817:uc010zvo.1";
+chr20 hg19_knownGene CDS 34782134 34782282 0.000000 + 2 gene_id "EPB41L1"; transcript_id "AK299817:uc010zvo.1";
+chr20 hg19_knownGene exon 34782134 34782282 0.000000 + . gene_id "EPB41L1"; transcript_id "AK299817:uc010zvo.1";
+chr20 hg19_knownGene CDS 34783251 34783286 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK299817:uc010zvo.1";
+chr20 hg19_knownGene exon 34783251 34783286 0.000000 + . gene_id "EPB41L1"; transcript_id "AK299817:uc010zvo.1";
+chr20 hg19_knownGene CDS 34785781 34785963 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK299817:uc010zvo.1";
+chr20 hg19_knownGene exon 34785781 34785963 0.000000 + . gene_id "EPB41L1"; transcript_id "AK299817:uc010zvo.1";
+chr20 hg19_knownGene CDS 34797410 34797820 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK299817:uc010zvo.1";
+chr20 hg19_knownGene exon 34797410 34797820 0.000000 + . gene_id "EPB41L1"; transcript_id "AK299817:uc010zvo.1";
+chr20 hg19_knownGene CDS 34800194 34800298 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK299817:uc010zvo.1";
+chr20 hg19_knownGene exon 34800194 34800298 0.000000 + . gene_id "EPB41L1"; transcript_id "AK299817:uc010zvo.1";
+chr20 hg19_knownGene CDS 34806798 34806881 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK299817:uc010zvo.1";
+chr20 hg19_knownGene exon 34806798 34806884 0.000000 + . gene_id "EPB41L1"; transcript_id "AK299817:uc010zvo.1";
+chr20 hg19_knownGene exon 34679426 34679534 0.000000 + . gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene exon 34700348 34700402 0.000000 + . gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene CDS 34763482 34763637 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene exon 34763473 34763637 0.000000 + . gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene CDS 34765874 34765978 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene exon 34765874 34765978 0.000000 + . gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene CDS 34766552 34766594 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene exon 34766552 34766594 0.000000 + . gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene CDS 34770194 34770269 0.000000 + 2 gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene exon 34770194 34770269 0.000000 + . gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene CDS 34773039 34773257 0.000000 + 1 gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene exon 34773039 34773257 0.000000 + . gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene CDS 34775598 34775685 0.000000 + 1 gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene exon 34775598 34775685 0.000000 + . gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene CDS 34776269 34776421 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene exon 34776269 34776421 0.000000 + . gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene CDS 34778199 34778296 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene exon 34778199 34778296 0.000000 + . gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene CDS 34778544 34778719 0.000000 + 1 gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene exon 34778544 34778719 0.000000 + . gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene CDS 34782134 34782282 0.000000 + 2 gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene exon 34782134 34782282 0.000000 + . gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene CDS 34785781 34785963 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene exon 34785781 34785963 0.000000 + . gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene CDS 34797410 34797820 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene exon 34797410 34797820 0.000000 + . gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene CDS 34800194 34800298 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene exon 34800194 34800298 0.000000 + . gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene CDS 34806798 34806884 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene exon 34806798 34806884 0.000000 + . gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene CDS 34807683 34807766 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene exon 34807683 34807766 0.000000 + . gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene CDS 34809786 34809866 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene exon 34809786 34809866 0.000000 + . gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene CDS 34810200 34810316 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene exon 34810200 34810316 0.000000 + . gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene CDS 34817254 34817259 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene exon 34817254 34820721 0.000000 + . gene_id "EPB41L1"; transcript_id "BC013885:uc002xeu.3";
+chr20 hg19_knownGene exon 34680632 34680735 0.000000 + . gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene exon 34701615 34701721 0.000000 + . gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene CDS 34761700 34761876 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene exon 34761686 34761876 0.000000 + . gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene CDS 34763473 34763637 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene exon 34763473 34763637 0.000000 + . gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene CDS 34765874 34765978 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene exon 34765874 34765978 0.000000 + . gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene CDS 34766552 34766594 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene exon 34766552 34766594 0.000000 + . gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene CDS 34770194 34770269 0.000000 + 2 gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene exon 34770194 34770269 0.000000 + . gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene CDS 34773039 34773257 0.000000 + 1 gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene exon 34773039 34773257 0.000000 + . gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene CDS 34775598 34775685 0.000000 + 1 gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene exon 34775598 34775685 0.000000 + . gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene CDS 34776269 34776421 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene exon 34776269 34776421 0.000000 + . gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene CDS 34778199 34778296 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene exon 34778199 34778296 0.000000 + . gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene CDS 34778544 34778719 0.000000 + 1 gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene exon 34778544 34778719 0.000000 + . gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene CDS 34782134 34782282 0.000000 + 2 gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene exon 34782134 34782282 0.000000 + . gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene CDS 34783251 34783286 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene exon 34783251 34783286 0.000000 + . gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene CDS 34785781 34785963 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene exon 34785781 34785963 0.000000 + . gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene CDS 34797410 34797820 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene exon 34797410 34797820 0.000000 + . gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene CDS 34800194 34800298 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene exon 34800194 34800298 0.000000 + . gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene CDS 34802282 34802362 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene exon 34802282 34802362 0.000000 + . gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene CDS 34806798 34806884 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene exon 34806798 34806884 0.000000 + . gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene CDS 34807683 34807766 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene exon 34807683 34807766 0.000000 + . gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene CDS 34809786 34809866 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene exon 34809786 34809866 0.000000 + . gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene CDS 34810200 34810316 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene exon 34810200 34810316 0.000000 + . gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene CDS 34817254 34817259 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene exon 34817254 34820721 0.000000 + . gene_id "EPB41L1"; transcript_id "BC040259:uc002xev.3";
+chr20 hg19_knownGene exon 34680632 34680735 0.000000 + . gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene exon 34700348 34700402 0.000000 + . gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene exon 34709582 34709738 0.000000 + . gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene CDS 34763482 34763637 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene exon 34763473 34763637 0.000000 + . gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene CDS 34766552 34766594 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene exon 34766552 34766594 0.000000 + . gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene CDS 34770194 34770269 0.000000 + 2 gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene exon 34770194 34770269 0.000000 + . gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene CDS 34773039 34773257 0.000000 + 1 gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene exon 34773039 34773257 0.000000 + . gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene CDS 34775598 34775685 0.000000 + 1 gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene exon 34775598 34775685 0.000000 + . gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene CDS 34776269 34776421 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene exon 34776269 34776421 0.000000 + . gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene CDS 34778199 34778296 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene exon 34778199 34778296 0.000000 + . gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene CDS 34778544 34778719 0.000000 + 1 gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene exon 34778544 34778719 0.000000 + . gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene CDS 34782134 34782282 0.000000 + 2 gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene exon 34782134 34782282 0.000000 + . gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene CDS 34785781 34785963 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene exon 34785781 34785963 0.000000 + . gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene CDS 34797410 34797820 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene exon 34797410 34797820 0.000000 + . gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene CDS 34800194 34800298 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene exon 34800194 34800298 0.000000 + . gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene CDS 34802279 34802362 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene exon 34802279 34802362 0.000000 + . gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene CDS 34806798 34806884 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene exon 34806798 34806884 0.000000 + . gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene CDS 34807683 34807766 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene exon 34807683 34807766 0.000000 + . gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene CDS 34809786 34809866 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene exon 34809786 34809866 0.000000 + . gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene CDS 34810200 34810316 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene exon 34810200 34810316 0.000000 + . gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene CDS 34817254 34817259 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene exon 34817254 34820721 0.000000 + . gene_id "EPB41L1"; transcript_id "AK096848:uc002xew.3";
+chr20 hg19_knownGene exon 34680632 34680735 0.000000 + . gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene exon 34700348 34700402 0.000000 + . gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene CDS 34713366 34713449 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene exon 34713345 34713449 0.000000 + . gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene CDS 34763473 34763637 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene exon 34763473 34763637 0.000000 + . gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene CDS 34765874 34765978 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene exon 34765874 34765978 0.000000 + . gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene CDS 34766552 34766594 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene exon 34766552 34766594 0.000000 + . gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene CDS 34770194 34770269 0.000000 + 2 gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene exon 34770194 34770269 0.000000 + . gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene CDS 34773039 34773257 0.000000 + 1 gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene exon 34773039 34773257 0.000000 + . gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene CDS 34775598 34775685 0.000000 + 1 gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene exon 34775598 34775685 0.000000 + . gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene CDS 34776269 34776421 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene exon 34776269 34776421 0.000000 + . gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene CDS 34778199 34778296 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene exon 34778199 34778296 0.000000 + . gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene CDS 34778544 34778719 0.000000 + 1 gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene exon 34778544 34778719 0.000000 + . gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene CDS 34782134 34782282 0.000000 + 2 gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene exon 34782134 34782282 0.000000 + . gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene CDS 34785781 34785963 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene exon 34785781 34785963 0.000000 + . gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene CDS 34800194 34800298 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene exon 34800194 34800298 0.000000 + . gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene CDS 34802279 34802362 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene exon 34802279 34802362 0.000000 + . gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene CDS 34806798 34806884 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene exon 34806798 34806884 0.000000 + . gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene CDS 34807683 34807766 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene exon 34807683 34807766 0.000000 + . gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene CDS 34809786 34809866 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene exon 34809786 34809866 0.000000 + . gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene CDS 34810200 34810316 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene exon 34810200 34810316 0.000000 + . gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene CDS 34817254 34817259 0.000000 + 0 gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene exon 34817254 34820721 0.000000 + . gene_id "EPB41L1"; transcript_id "AK126875:uc002xex.3";
+chr20 hg19_knownGene exon 34700258 34700402 0.000000 + . gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene exon 34710601 34710669 0.000000 + . gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene CDS 34761700 34761876 0.000000 + 0 gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene exon 34761686 34761876 0.000000 + . gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene CDS 34763473 34763637 0.000000 + 0 gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene exon 34763473 34763637 0.000000 + . gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene CDS 34765874 34765978 0.000000 + 0 gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene exon 34765874 34765978 0.000000 + . gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene CDS 34766552 34766594 0.000000 + 0 gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene exon 34766552 34766594 0.000000 + . gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene CDS 34770194 34770269 0.000000 + 2 gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene exon 34770194 34770269 0.000000 + . gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene CDS 34775598 34775685 0.000000 + 1 gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene exon 34775598 34775685 0.000000 + . gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene CDS 34776269 34776421 0.000000 + 0 gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene exon 34776269 34776421 0.000000 + . gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene CDS 34778199 34778296 0.000000 + 0 gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene exon 34778199 34778296 0.000000 + . gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene CDS 34778544 34778719 0.000000 + 1 gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene exon 34778544 34778719 0.000000 + . gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene CDS 34782134 34782282 0.000000 + 2 gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene exon 34782134 34782282 0.000000 + . gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene CDS 34785781 34785963 0.000000 + 0 gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene exon 34785781 34785963 0.000000 + . gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene CDS 34800194 34800298 0.000000 + 0 gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene exon 34800194 34800298 0.000000 + . gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene CDS 34806798 34806884 0.000000 + 0 gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene exon 34806798 34806884 0.000000 + . gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene CDS 34807683 34807766 0.000000 + 0 gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene exon 34807683 34807766 0.000000 + . gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene CDS 34809786 34809866 0.000000 + 0 gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene exon 34809786 34809866 0.000000 + . gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene CDS 34810200 34810316 0.000000 + 0 gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene exon 34810200 34810316 0.000000 + . gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene CDS 34817254 34817259 0.000000 + 0 gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene exon 34817254 34820721 0.000000 + . gene_id "EPB41L1"; transcript_id "CR936825:uc002xey.3";
+chr20 hg19_knownGene exon 34700348 34700402 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene CDS 34763482 34763637 0.000000 + 0 gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene exon 34763473 34763637 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene CDS 34765874 34765978 0.000000 + 0 gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene exon 34765874 34765978 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene CDS 34766552 34766594 0.000000 + 0 gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene exon 34766552 34766594 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene CDS 34770194 34770269 0.000000 + 2 gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene exon 34770194 34770269 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene CDS 34773039 34773257 0.000000 + 1 gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene exon 34773039 34773257 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene CDS 34775598 34775685 0.000000 + 1 gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene exon 34775598 34775685 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene CDS 34776269 34776421 0.000000 + 0 gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene exon 34776269 34776421 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene CDS 34778199 34778296 0.000000 + 0 gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene exon 34778199 34778296 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene CDS 34778544 34778719 0.000000 + 1 gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene exon 34778544 34778719 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene CDS 34782134 34782282 0.000000 + 2 gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene exon 34782134 34782282 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene CDS 34785781 34785963 0.000000 + 0 gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene exon 34785781 34785963 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene CDS 34797410 34797820 0.000000 + 0 gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene exon 34797410 34797820 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene CDS 34800194 34800298 0.000000 + 0 gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene exon 34800194 34800298 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene CDS 34806798 34806884 0.000000 + 0 gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene exon 34806798 34806884 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene CDS 34807683 34807766 0.000000 + 0 gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene exon 34807683 34807766 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene CDS 34809786 34809866 0.000000 + 0 gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene exon 34809786 34809866 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene CDS 34810200 34810316 0.000000 + 0 gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene exon 34810200 34810316 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene CDS 34817254 34817259 0.000000 + 0 gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene exon 34817254 34820721 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_177996:uc002xez.3";
+chr20 hg19_knownGene exon 34742662 34742818 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene CDS 34761700 34761876 0.000000 + 0 gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene exon 34761686 34761876 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene CDS 34763473 34763637 0.000000 + 0 gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene exon 34763473 34763637 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene CDS 34765874 34765978 0.000000 + 0 gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene exon 34765874 34765978 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene CDS 34766552 34766594 0.000000 + 0 gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene exon 34766552 34766594 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene CDS 34770194 34770269 0.000000 + 2 gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene exon 34770194 34770269 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene CDS 34773039 34773257 0.000000 + 1 gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene exon 34773039 34773257 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene CDS 34775598 34775685 0.000000 + 1 gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene exon 34775598 34775685 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene CDS 34776269 34776421 0.000000 + 0 gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene exon 34776269 34776421 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene CDS 34778199 34778296 0.000000 + 0 gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene exon 34778199 34778296 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene CDS 34778544 34778719 0.000000 + 1 gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene exon 34778544 34778719 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene CDS 34782134 34782282 0.000000 + 2 gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene exon 34782134 34782282 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene CDS 34783251 34783286 0.000000 + 0 gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene exon 34783251 34783286 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene CDS 34785781 34785963 0.000000 + 0 gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene exon 34785781 34785963 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene CDS 34797410 34797820 0.000000 + 0 gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene exon 34797410 34797820 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene CDS 34800194 34800298 0.000000 + 0 gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene exon 34800194 34800298 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene CDS 34802279 34802362 0.000000 + 0 gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene exon 34802279 34802362 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene CDS 34806798 34806884 0.000000 + 0 gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene exon 34806798 34806884 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene CDS 34807683 34807766 0.000000 + 0 gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene exon 34807683 34807766 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene CDS 34809786 34809866 0.000000 + 0 gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene exon 34809786 34809866 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene CDS 34810200 34810316 0.000000 + 0 gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene exon 34810200 34810316 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene CDS 34817254 34817259 0.000000 + 0 gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene exon 34817254 34820721 0.000000 + . gene_id "EPB41L1"; transcript_id "NM_012156:uc002xfb.3";
+chr20 hg19_knownGene exon 34785781 34785963 0.000000 + . gene_id "EPB41L1"; transcript_id "BX537978:uc010gfq.3";
+chr20 hg19_knownGene exon 34788795 34788899 0.000000 + . gene_id "EPB41L1"; transcript_id "BX537978:uc010gfq.3";
+chr20 hg19_knownGene CDS 34793846 34795702 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BX537978:uc010gfq.3";
+chr20 hg19_knownGene exon 34793771 34795702 0.000000 + . gene_id "EPB41L1"; transcript_id "BX537978:uc010gfq.3";
+chr20 hg19_knownGene CDS 34796223 34796330 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BX537978:uc010gfq.3";
+chr20 hg19_knownGene exon 34796223 34796330 0.000000 + . gene_id "EPB41L1"; transcript_id "BX537978:uc010gfq.3";
+chr20 hg19_knownGene CDS 34797410 34797820 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BX537978:uc010gfq.3";
+chr20 hg19_knownGene exon 34797410 34797820 0.000000 + . gene_id "EPB41L1"; transcript_id "BX537978:uc010gfq.3";
+chr20 hg19_knownGene CDS 34800194 34800298 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BX537978:uc010gfq.3";
+chr20 hg19_knownGene exon 34800194 34800298 0.000000 + . gene_id "EPB41L1"; transcript_id "BX537978:uc010gfq.3";
+chr20 hg19_knownGene CDS 34802282 34802362 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BX537978:uc010gfq.3";
+chr20 hg19_knownGene exon 34802282 34802362 0.000000 + . gene_id "EPB41L1"; transcript_id "BX537978:uc010gfq.3";
+chr20 hg19_knownGene CDS 34806798 34806884 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BX537978:uc010gfq.3";
+chr20 hg19_knownGene exon 34806798 34806884 0.000000 + . gene_id "EPB41L1"; transcript_id "BX537978:uc010gfq.3";
+chr20 hg19_knownGene CDS 34807683 34807766 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BX537978:uc010gfq.3";
+chr20 hg19_knownGene exon 34807683 34807766 0.000000 + . gene_id "EPB41L1"; transcript_id "BX537978:uc010gfq.3";
+chr20 hg19_knownGene CDS 34809786 34809866 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BX537978:uc010gfq.3";
+chr20 hg19_knownGene exon 34809786 34809866 0.000000 + . gene_id "EPB41L1"; transcript_id "BX537978:uc010gfq.3";
+chr20 hg19_knownGene CDS 34810200 34810316 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BX537978:uc010gfq.3";
+chr20 hg19_knownGene exon 34810200 34810316 0.000000 + . gene_id "EPB41L1"; transcript_id "BX537978:uc010gfq.3";
+chr20 hg19_knownGene CDS 34817254 34817259 0.000000 + 0 gene_id "EPB41L1"; transcript_id "BX537978:uc010gfq.3";
+chr20 hg19_knownGene exon 34817254 34820721 0.000000 + . gene_id "EPB41L1"; transcript_id "BX537978:uc010gfq.3";
+chr20 hg19_knownGene exon 34824400 34824425 0.000000 + . gene_id "C20orf4"; transcript_id "BC001751:uc002xfc.2";
+chr20 hg19_knownGene CDS 34827791 34828547 0.000000 + 0 gene_id "C20orf4"; transcript_id "BC001751:uc002xfc.2";
+chr20 hg19_knownGene exon 34827743 34828547 0.000000 + . gene_id "C20orf4"; transcript_id "BC001751:uc002xfc.2";
+chr20 hg19_knownGene CDS 34832619 34832848 0.000000 + 2 gene_id "C20orf4"; transcript_id "BC001751:uc002xfc.2";
+chr20 hg19_knownGene exon 34832619 34832848 0.000000 + . gene_id "C20orf4"; transcript_id "BC001751:uc002xfc.2";
+chr20 hg19_knownGene CDS 34843500 34843664 0.000000 + 0 gene_id "C20orf4"; transcript_id "BC001751:uc002xfc.2";
+chr20 hg19_knownGene exon 34843500 34844853 0.000000 + . gene_id "C20orf4"; transcript_id "BC001751:uc002xfc.2";
+chr20 hg19_knownGene exon 34824447 34824704 0.000000 + . gene_id "C20orf4"; transcript_id "NM_015511:uc002xfe.1";
+chr20 hg19_knownGene CDS 34827791 34828547 0.000000 + 0 gene_id "C20orf4"; transcript_id "NM_015511:uc002xfe.1";
+chr20 hg19_knownGene exon 34827743 34828547 0.000000 + . gene_id "C20orf4"; transcript_id "NM_015511:uc002xfe.1";
+chr20 hg19_knownGene CDS 34832619 34832848 0.000000 + 2 gene_id "C20orf4"; transcript_id "NM_015511:uc002xfe.1";
+chr20 hg19_knownGene exon 34832619 34832848 0.000000 + . gene_id "C20orf4"; transcript_id "NM_015511:uc002xfe.1";
+chr20 hg19_knownGene CDS 34843500 34843664 0.000000 + 0 gene_id "C20orf4"; transcript_id "NM_015511:uc002xfe.1";
+chr20 hg19_knownGene exon 34843500 34844853 0.000000 + . gene_id "C20orf4"; transcript_id "NM_015511:uc002xfe.1";
+chr20 hg19_knownGene exon 34894303 34894434 0.000000 + . gene_id "DLGAP4"; transcript_id "AB023181:uc002xff.3";
+chr20 hg19_knownGene exon 34995448 34995678 0.000000 + . gene_id "DLGAP4"; transcript_id "AB023181:uc002xff.3";
+chr20 hg19_knownGene CDS 35060121 35061119 0.000000 + 0 gene_id "DLGAP4"; transcript_id "AB023181:uc002xff.3";
+chr20 hg19_knownGene exon 35060049 35061119 0.000000 + . gene_id "DLGAP4"; transcript_id "AB023181:uc002xff.3";
+chr20 hg19_knownGene CDS 35064512 35064753 0.000000 + 0 gene_id "DLGAP4"; transcript_id "AB023181:uc002xff.3";
+chr20 hg19_knownGene exon 35064512 35064753 0.000000 + . gene_id "DLGAP4"; transcript_id "AB023181:uc002xff.3";
+chr20 hg19_knownGene CDS 35068157 35068271 0.000000 + 1 gene_id "DLGAP4"; transcript_id "AB023181:uc002xff.3";
+chr20 hg19_knownGene exon 35068157 35068271 0.000000 + . gene_id "DLGAP4"; transcript_id "AB023181:uc002xff.3";
+chr20 hg19_knownGene CDS 35071130 35071180 0.000000 + 0 gene_id "DLGAP4"; transcript_id "AB023181:uc002xff.3";
+chr20 hg19_knownGene exon 35071130 35071180 0.000000 + . gene_id "DLGAP4"; transcript_id "AB023181:uc002xff.3";
+chr20 hg19_knownGene CDS 35075100 35075340 0.000000 + 0 gene_id "DLGAP4"; transcript_id "AB023181:uc002xff.3";
+chr20 hg19_knownGene exon 35075100 35075340 0.000000 + . gene_id "DLGAP4"; transcript_id "AB023181:uc002xff.3";
+chr20 hg19_knownGene CDS 35125108 35125469 0.000000 + 2 gene_id "DLGAP4"; transcript_id "AB023181:uc002xff.3";
+chr20 hg19_knownGene exon 35125108 35125469 0.000000 + . gene_id "DLGAP4"; transcript_id "AB023181:uc002xff.3";
+chr20 hg19_knownGene CDS 35127645 35127724 0.000000 + 0 gene_id "DLGAP4"; transcript_id "AB023181:uc002xff.3";
+chr20 hg19_knownGene exon 35127645 35127724 0.000000 + . gene_id "DLGAP4"; transcript_id "AB023181:uc002xff.3";
+chr20 hg19_knownGene CDS 35128602 35129014 0.000000 + 1 gene_id "DLGAP4"; transcript_id "AB023181:uc002xff.3";
+chr20 hg19_knownGene exon 35128602 35129014 0.000000 + . gene_id "DLGAP4"; transcript_id "AB023181:uc002xff.3";
+chr20 hg19_knownGene CDS 35152653 35152744 0.000000 + 2 gene_id "DLGAP4"; transcript_id "AB023181:uc002xff.3";
+chr20 hg19_knownGene exon 35152653 35152744 0.000000 + . gene_id "DLGAP4"; transcript_id "AB023181:uc002xff.3";
+chr20 hg19_knownGene CDS 35154254 35154409 0.000000 + 0 gene_id "DLGAP4"; transcript_id "AB023181:uc002xff.3";
+chr20 hg19_knownGene exon 35154254 35154409 0.000000 + . gene_id "DLGAP4"; transcript_id "AB023181:uc002xff.3";
+chr20 hg19_knownGene CDS 35155216 35155431 0.000000 + 0 gene_id "DLGAP4"; transcript_id "AB023181:uc002xff.3";
+chr20 hg19_knownGene exon 35155216 35157040 0.000000 + . gene_id "DLGAP4"; transcript_id "AB023181:uc002xff.3";
+chr20 hg19_knownGene exon 34995448 34995678 0.000000 + . gene_id "DLGAP4"; transcript_id "NM_014902:uc010zvp.2";
+chr20 hg19_knownGene CDS 35060121 35061119 0.000000 + 0 gene_id "DLGAP4"; transcript_id "NM_014902:uc010zvp.2";
+chr20 hg19_knownGene exon 35060049 35061119 0.000000 + . gene_id "DLGAP4"; transcript_id "NM_014902:uc010zvp.2";
+chr20 hg19_knownGene CDS 35064512 35064753 0.000000 + 0 gene_id "DLGAP4"; transcript_id "NM_014902:uc010zvp.2";
+chr20 hg19_knownGene exon 35064512 35064753 0.000000 + . gene_id "DLGAP4"; transcript_id "NM_014902:uc010zvp.2";
+chr20 hg19_knownGene CDS 35068157 35068271 0.000000 + 1 gene_id "DLGAP4"; transcript_id "NM_014902:uc010zvp.2";
+chr20 hg19_knownGene exon 35068157 35068271 0.000000 + . gene_id "DLGAP4"; transcript_id "NM_014902:uc010zvp.2";
+chr20 hg19_knownGene CDS 35071130 35071180 0.000000 + 0 gene_id "DLGAP4"; transcript_id "NM_014902:uc010zvp.2";
+chr20 hg19_knownGene exon 35071130 35071180 0.000000 + . gene_id "DLGAP4"; transcript_id "NM_014902:uc010zvp.2";
+chr20 hg19_knownGene CDS 35075100 35075340 0.000000 + 0 gene_id "DLGAP4"; transcript_id "NM_014902:uc010zvp.2";
+chr20 hg19_knownGene exon 35075100 35075340 0.000000 + . gene_id "DLGAP4"; transcript_id "NM_014902:uc010zvp.2";
+chr20 hg19_knownGene CDS 35125108 35125469 0.000000 + 2 gene_id "DLGAP4"; transcript_id "NM_014902:uc010zvp.2";
+chr20 hg19_knownGene exon 35125108 35125469 0.000000 + . gene_id "DLGAP4"; transcript_id "NM_014902:uc010zvp.2";
+chr20 hg19_knownGene CDS 35127645 35127724 0.000000 + 0 gene_id "DLGAP4"; transcript_id "NM_014902:uc010zvp.2";
+chr20 hg19_knownGene exon 35127645 35127724 0.000000 + . gene_id "DLGAP4"; transcript_id "NM_014902:uc010zvp.2";
+chr20 hg19_knownGene CDS 35128602 35129014 0.000000 + 1 gene_id "DLGAP4"; transcript_id "NM_014902:uc010zvp.2";
+chr20 hg19_knownGene exon 35128602 35129014 0.000000 + . gene_id "DLGAP4"; transcript_id "NM_014902:uc010zvp.2";
+chr20 hg19_knownGene CDS 35152653 35152744 0.000000 + 2 gene_id "DLGAP4"; transcript_id "NM_014902:uc010zvp.2";
+chr20 hg19_knownGene exon 35152653 35152744 0.000000 + . gene_id "DLGAP4"; transcript_id "NM_014902:uc010zvp.2";
+chr20 hg19_knownGene CDS 35154254 35154409 0.000000 + 0 gene_id "DLGAP4"; transcript_id "NM_014902:uc010zvp.2";
+chr20 hg19_knownGene exon 35154254 35154409 0.000000 + . gene_id "DLGAP4"; transcript_id "NM_014902:uc010zvp.2";
+chr20 hg19_knownGene CDS 35155216 35155431 0.000000 + 0 gene_id "DLGAP4"; transcript_id "NM_014902:uc010zvp.2";
+chr20 hg19_knownGene exon 35155216 35157040 0.000000 + . gene_id "DLGAP4"; transcript_id "NM_014902:uc010zvp.2";
+chr20 hg19_knownGene exon 35089842 35089913 0.000000 + . gene_id "DLGAP4"; transcript_id "NM_001042486:uc002xfg.3";
+chr20 hg19_knownGene exon 35125108 35125469 0.000000 + . gene_id "DLGAP4"; transcript_id "NM_001042486:uc002xfg.3";
+chr20 hg19_knownGene exon 35127991 35128079 0.000000 + . gene_id "DLGAP4"; transcript_id "NM_001042486:uc002xfg.3";
+chr20 hg19_knownGene CDS 35128624 35129014 0.000000 + 0 gene_id "DLGAP4"; transcript_id "NM_001042486:uc002xfg.3";
+chr20 hg19_knownGene exon 35128602 35129014 0.000000 + . gene_id "DLGAP4"; transcript_id "NM_001042486:uc002xfg.3";
+chr20 hg19_knownGene CDS 35152653 35152744 0.000000 + 2 gene_id "DLGAP4"; transcript_id "NM_001042486:uc002xfg.3";
+chr20 hg19_knownGene exon 35152653 35152744 0.000000 + . gene_id "DLGAP4"; transcript_id "NM_001042486:uc002xfg.3";
+chr20 hg19_knownGene CDS 35154254 35154409 0.000000 + 0 gene_id "DLGAP4"; transcript_id "NM_001042486:uc002xfg.3";
+chr20 hg19_knownGene exon 35154254 35154409 0.000000 + . gene_id "DLGAP4"; transcript_id "NM_001042486:uc002xfg.3";
+chr20 hg19_knownGene CDS 35155216 35155431 0.000000 + 0 gene_id "DLGAP4"; transcript_id "NM_001042486:uc002xfg.3";
+chr20 hg19_knownGene exon 35155216 35157040 0.000000 + . gene_id "DLGAP4"; transcript_id "NM_001042486:uc002xfg.3";
+chr20 hg19_knownGene CDS 35090972 35091002 0.000000 + 0 gene_id "DLGAP4"; transcript_id "NM_183006:uc002xfh.3";
+chr20 hg19_knownGene exon 35090142 35091002 0.000000 + . gene_id "DLGAP4"; transcript_id "NM_183006:uc002xfh.3";
+chr20 hg19_knownGene CDS 35125108 35125469 0.000000 + 2 gene_id "DLGAP4"; transcript_id "NM_183006:uc002xfh.3";
+chr20 hg19_knownGene exon 35125108 35125469 0.000000 + . gene_id "DLGAP4"; transcript_id "NM_183006:uc002xfh.3";
+chr20 hg19_knownGene CDS 35127991 35128079 0.000000 + 0 gene_id "DLGAP4"; transcript_id "NM_183006:uc002xfh.3";
+chr20 hg19_knownGene exon 35127991 35128079 0.000000 + . gene_id "DLGAP4"; transcript_id "NM_183006:uc002xfh.3";
+chr20 hg19_knownGene CDS 35128602 35129014 0.000000 + 1 gene_id "DLGAP4"; transcript_id "NM_183006:uc002xfh.3";
+chr20 hg19_knownGene exon 35128602 35129014 0.000000 + . gene_id "DLGAP4"; transcript_id "NM_183006:uc002xfh.3";
+chr20 hg19_knownGene CDS 35152653 35152744 0.000000 + 2 gene_id "DLGAP4"; transcript_id "NM_183006:uc002xfh.3";
+chr20 hg19_knownGene exon 35152653 35152744 0.000000 + . gene_id "DLGAP4"; transcript_id "NM_183006:uc002xfh.3";
+chr20 hg19_knownGene CDS 35154254 35154409 0.000000 + 0 gene_id "DLGAP4"; transcript_id "NM_183006:uc002xfh.3";
+chr20 hg19_knownGene exon 35154254 35154409 0.000000 + . gene_id "DLGAP4"; transcript_id "NM_183006:uc002xfh.3";
+chr20 hg19_knownGene CDS 35155216 35155431 0.000000 + 0 gene_id "DLGAP4"; transcript_id "NM_183006:uc002xfh.3";
+chr20 hg19_knownGene exon 35155216 35157040 0.000000 + . gene_id "DLGAP4"; transcript_id "NM_183006:uc002xfh.3";
+chr20 hg19_knownGene exon 35120786 35121588 0.000000 + . gene_id "DLGAP4"; transcript_id "AK125383:uc002xfi.3";
+chr20 hg19_knownGene exon 35125108 35125469 0.000000 + . gene_id "DLGAP4"; transcript_id "AK125383:uc002xfi.3";
+chr20 hg19_knownGene CDS 35127708 35127724 0.000000 + 0 gene_id "DLGAP4"; transcript_id "AK125383:uc002xfi.3";
+chr20 hg19_knownGene exon 35127645 35127724 0.000000 + . gene_id "DLGAP4"; transcript_id "AK125383:uc002xfi.3";
+chr20 hg19_knownGene CDS 35128602 35129014 0.000000 + 1 gene_id "DLGAP4"; transcript_id "AK125383:uc002xfi.3";
+chr20 hg19_knownGene exon 35128602 35129014 0.000000 + . gene_id "DLGAP4"; transcript_id "AK125383:uc002xfi.3";
+chr20 hg19_knownGene CDS 35152653 35152744 0.000000 + 2 gene_id "DLGAP4"; transcript_id "AK125383:uc002xfi.3";
+chr20 hg19_knownGene exon 35152653 35152744 0.000000 + . gene_id "DLGAP4"; transcript_id "AK125383:uc002xfi.3";
+chr20 hg19_knownGene CDS 35154254 35154463 0.000000 + 0 gene_id "DLGAP4"; transcript_id "AK125383:uc002xfi.3";
+chr20 hg19_knownGene exon 35154254 35154480 0.000000 + . gene_id "DLGAP4"; transcript_id "AK125383:uc002xfi.3";
+chr20 hg19_knownGene exon 35155216 35157040 0.000000 + . gene_id "DLGAP4"; transcript_id "AK125383:uc002xfi.3";
+chr20 hg19_knownGene exon 35126220 35127724 0.000000 + . gene_id "DLGAP4"; transcript_id "AK055152:uc002xfj.3";
+chr20 hg19_knownGene exon 35127991 35128079 0.000000 + . gene_id "DLGAP4"; transcript_id "AK055152:uc002xfj.3";
+chr20 hg19_knownGene CDS 35128624 35129014 0.000000 + 0 gene_id "DLGAP4"; transcript_id "AK055152:uc002xfj.3";
+chr20 hg19_knownGene exon 35128602 35129014 0.000000 + . gene_id "DLGAP4"; transcript_id "AK055152:uc002xfj.3";
+chr20 hg19_knownGene CDS 35152653 35152744 0.000000 + 2 gene_id "DLGAP4"; transcript_id "AK055152:uc002xfj.3";
+chr20 hg19_knownGene exon 35152653 35152744 0.000000 + . gene_id "DLGAP4"; transcript_id "AK055152:uc002xfj.3";
+chr20 hg19_knownGene CDS 35154254 35154409 0.000000 + 0 gene_id "DLGAP4"; transcript_id "AK055152:uc002xfj.3";
+chr20 hg19_knownGene exon 35154254 35154409 0.000000 + . gene_id "DLGAP4"; transcript_id "AK055152:uc002xfj.3";
+chr20 hg19_knownGene CDS 35155216 35155431 0.000000 + 0 gene_id "DLGAP4"; transcript_id "AK055152:uc002xfj.3";
+chr20 hg19_knownGene exon 35155216 35157040 0.000000 + . gene_id "DLGAP4"; transcript_id "AK055152:uc002xfj.3";
+chr20 hg19_knownGene exon 35169897 35169964 0.000000 + . gene_id "MYL9"; transcript_id "NM_006097:uc002xfl.1";
+chr20 hg19_knownGene CDS 35173288 35173471 0.000000 + 0 gene_id "MYL9"; transcript_id "NM_006097:uc002xfl.1";
+chr20 hg19_knownGene exon 35173262 35173471 0.000000 + . gene_id "MYL9"; transcript_id "NM_006097:uc002xfl.1";
+chr20 hg19_knownGene CDS 35176435 35176596 0.000000 + 2 gene_id "MYL9"; transcript_id "NM_006097:uc002xfl.1";
+chr20 hg19_knownGene exon 35176435 35176596 0.000000 + . gene_id "MYL9"; transcript_id "NM_006097:uc002xfl.1";
+chr20 hg19_knownGene CDS 35177480 35177649 0.000000 + 2 gene_id "MYL9"; transcript_id "NM_006097:uc002xfl.1";
+chr20 hg19_knownGene exon 35177480 35178226 0.000000 + . gene_id "MYL9"; transcript_id "NM_006097:uc002xfl.1";
+chr20 hg19_knownGene exon 35169897 35169964 0.000000 + . gene_id "MYL9"; transcript_id "NM_181526:uc002xfm.1";
+chr20 hg19_knownGene CDS 35173288 35173471 0.000000 + 0 gene_id "MYL9"; transcript_id "NM_181526:uc002xfm.1";
+chr20 hg19_knownGene exon 35173262 35173471 0.000000 + . gene_id "MYL9"; transcript_id "NM_181526:uc002xfm.1";
+chr20 hg19_knownGene CDS 35177480 35177649 0.000000 + 2 gene_id "MYL9"; transcript_id "NM_181526:uc002xfm.1";
+chr20 hg19_knownGene exon 35177480 35178226 0.000000 + . gene_id "MYL9"; transcript_id "NM_181526:uc002xfm.1";
+chr20 hg19_knownGene exon 35136105 35136677 0.000000 - . gene_id "BC039668"; transcript_id "BC039668:uc002xfk.3";
+chr20 hg19_knownGene exon 35137215 35137228 0.000000 - . gene_id "BC039668"; transcript_id "BC039668:uc002xfk.3";
+chr20 hg19_knownGene exon 35139283 35139435 0.000000 - . gene_id "BC039668"; transcript_id "BC039668:uc002xfk.3";
+chr20 hg19_knownGene exon 35199844 35199946 0.000000 - . gene_id "BC039668"; transcript_id "BC039668:uc002xfk.3";
+chr20 hg19_knownGene exon 35201315 35201678 0.000000 - . gene_id "BC039668"; transcript_id "BC039668:uc002xfk.3";
+chr20 hg19_knownGene exon 35201876 35201927 0.000000 + . gene_id "TGIF2"; transcript_id "NM_001199513:uc021wcu.1";
+chr20 hg19_knownGene CDS 35207178 35207369 0.000000 + 0 gene_id "TGIF2"; transcript_id "NM_001199513:uc021wcu.1";
+chr20 hg19_knownGene exon 35207144 35207369 0.000000 + . gene_id "TGIF2"; transcript_id "NM_001199513:uc021wcu.1";
+chr20 hg19_knownGene CDS 35219313 35219831 0.000000 + 0 gene_id "TGIF2"; transcript_id "NM_001199513:uc021wcu.1";
+chr20 hg19_knownGene exon 35219313 35222355 0.000000 + . gene_id "TGIF2"; transcript_id "NM_001199513:uc021wcu.1";
+chr20 hg19_knownGene exon 35201876 35202055 0.000000 + . gene_id "TGIF2"; transcript_id "NM_001199514:uc021wcv.1";
+chr20 hg19_knownGene CDS 35207178 35207369 0.000000 + 0 gene_id "TGIF2"; transcript_id "NM_001199514:uc021wcv.1";
+chr20 hg19_knownGene exon 35207144 35207369 0.000000 + . gene_id "TGIF2"; transcript_id "NM_001199514:uc021wcv.1";
+chr20 hg19_knownGene CDS 35219313 35219831 0.000000 + 0 gene_id "TGIF2"; transcript_id "NM_001199514:uc021wcv.1";
+chr20 hg19_knownGene exon 35219313 35222355 0.000000 + . gene_id "TGIF2"; transcript_id "NM_001199514:uc021wcv.1";
+chr20 hg19_knownGene exon 35202010 35202148 0.000000 + . gene_id "TGIF2"; transcript_id "NM_021809:uc002xfn.3";
+chr20 hg19_knownGene CDS 35207178 35207369 0.000000 + 0 gene_id "TGIF2"; transcript_id "NM_021809:uc002xfn.3";
+chr20 hg19_knownGene exon 35207144 35207369 0.000000 + . gene_id "TGIF2"; transcript_id "NM_021809:uc002xfn.3";
+chr20 hg19_knownGene CDS 35219313 35219831 0.000000 + 0 gene_id "TGIF2"; transcript_id "NM_021809:uc002xfn.3";
+chr20 hg19_knownGene exon 35219313 35222355 0.000000 + . gene_id "TGIF2"; transcript_id "NM_021809:uc002xfn.3";
+chr20 hg19_knownGene exon 35202957 35203038 0.000000 + . gene_id "TGIF2"; transcript_id "NM_001199515:uc021wcw.1";
+chr20 hg19_knownGene CDS 35207178 35207369 0.000000 + 0 gene_id "TGIF2"; transcript_id "NM_001199515:uc021wcw.1";
+chr20 hg19_knownGene exon 35207144 35207369 0.000000 + . gene_id "TGIF2"; transcript_id "NM_001199515:uc021wcw.1";
+chr20 hg19_knownGene CDS 35219313 35219831 0.000000 + 0 gene_id "TGIF2"; transcript_id "NM_001199515:uc021wcw.1";
+chr20 hg19_knownGene exon 35219313 35222355 0.000000 + . gene_id "TGIF2"; transcript_id "NM_001199515:uc021wcw.1";
+chr20 hg19_knownGene exon 35202957 35203038 0.000000 + . gene_id "TGIF2-C20ORF24"; transcript_id "NM_001199535:uc002xfo.3";
+chr20 hg19_knownGene CDS 35207178 35207369 0.000000 + 0 gene_id "TGIF2-C20ORF24"; transcript_id "NM_001199535:uc002xfo.3";
+chr20 hg19_knownGene exon 35207144 35207369 0.000000 + . gene_id "TGIF2-C20ORF24"; transcript_id "NM_001199535:uc002xfo.3";
+chr20 hg19_knownGene CDS 35236118 35236221 0.000000 + 0 gene_id "TGIF2-C20ORF24"; transcript_id "NM_001199535:uc002xfo.3";
+chr20 hg19_knownGene exon 35236118 35236221 0.000000 + . gene_id "TGIF2-C20ORF24"; transcript_id "NM_001199535:uc002xfo.3";
+chr20 hg19_knownGene CDS 35238004 35238133 0.000000 + 1 gene_id "TGIF2-C20ORF24"; transcript_id "NM_001199535:uc002xfo.3";
+chr20 hg19_knownGene exon 35238004 35238133 0.000000 + . gene_id "TGIF2-C20ORF24"; transcript_id "NM_001199535:uc002xfo.3";
+chr20 hg19_knownGene CDS 35240413 35240451 0.000000 + 0 gene_id "TGIF2-C20ORF24"; transcript_id "NM_001199535:uc002xfo.3";
+chr20 hg19_knownGene exon 35240413 35240960 0.000000 + . gene_id "TGIF2-C20ORF24"; transcript_id "NM_001199535:uc002xfo.3";
+chr20 hg19_knownGene CDS 35234355 35234468 0.000000 + 0 gene_id "C20orf24"; transcript_id "NM_001199534:uc002xfs.3";
+chr20 hg19_knownGene exon 35234137 35234468 0.000000 + . gene_id "C20orf24"; transcript_id "NM_001199534:uc002xfs.3";
+chr20 hg19_knownGene CDS 35236118 35236221 0.000000 + 0 gene_id "C20orf24"; transcript_id "NM_001199534:uc002xfs.3";
+chr20 hg19_knownGene exon 35236118 35236221 0.000000 + . gene_id "C20orf24"; transcript_id "NM_001199534:uc002xfs.3";
+chr20 hg19_knownGene CDS 35238004 35238161 0.000000 + 1 gene_id "C20orf24"; transcript_id "NM_001199534:uc002xfs.3";
+chr20 hg19_knownGene exon 35238004 35238161 0.000000 + . gene_id "C20orf24"; transcript_id "NM_001199534:uc002xfs.3";
+chr20 hg19_knownGene CDS 35240413 35240447 0.000000 + 2 gene_id "C20orf24"; transcript_id "NM_001199534:uc002xfs.3";
+chr20 hg19_knownGene exon 35240413 35240960 0.000000 + . gene_id "C20orf24"; transcript_id "NM_001199534:uc002xfs.3";
+chr20 hg19_knownGene CDS 35234355 35234468 0.000000 + 0 gene_id "C20orf24"; transcript_id "NM_018840:uc002xfq.3";
+chr20 hg19_knownGene exon 35234137 35234468 0.000000 + . gene_id "C20orf24"; transcript_id "NM_018840:uc002xfq.3";
+chr20 hg19_knownGene CDS 35236118 35236221 0.000000 + 0 gene_id "C20orf24"; transcript_id "NM_018840:uc002xfq.3";
+chr20 hg19_knownGene exon 35236118 35236221 0.000000 + . gene_id "C20orf24"; transcript_id "NM_018840:uc002xfq.3";
+chr20 hg19_knownGene CDS 35238004 35238133 0.000000 + 1 gene_id "C20orf24"; transcript_id "NM_018840:uc002xfq.3";
+chr20 hg19_knownGene exon 35238004 35238133 0.000000 + . gene_id "C20orf24"; transcript_id "NM_018840:uc002xfq.3";
+chr20 hg19_knownGene CDS 35240413 35240451 0.000000 + 0 gene_id "C20orf24"; transcript_id "NM_018840:uc002xfq.3";
+chr20 hg19_knownGene exon 35240413 35240960 0.000000 + . gene_id "C20orf24"; transcript_id "NM_018840:uc002xfq.3";
+chr20 hg19_knownGene exon 35234137 35234468 0.000000 + . gene_id "C20orf24"; transcript_id "NR_026562:uc002xft.3";
+chr20 hg19_knownGene exon 35236118 35236221 0.000000 + . gene_id "C20orf24"; transcript_id "NR_026562:uc002xft.3";
+chr20 hg19_knownGene exon 35236293 35236403 0.000000 + . gene_id "C20orf24"; transcript_id "NR_026562:uc002xft.3";
+chr20 hg19_knownGene exon 35238004 35238133 0.000000 + . gene_id "C20orf24"; transcript_id "NR_026562:uc002xft.3";
+chr20 hg19_knownGene exon 35240413 35240960 0.000000 + . gene_id "C20orf24"; transcript_id "NR_026562:uc002xft.3";
+chr20 hg19_knownGene CDS 35234355 35234468 0.000000 + 0 gene_id "C20orf24"; transcript_id "NM_199483:uc002xfr.3";
+chr20 hg19_knownGene exon 35234137 35234468 0.000000 + . gene_id "C20orf24"; transcript_id "NM_199483:uc002xfr.3";
+chr20 hg19_knownGene CDS 35236118 35236221 0.000000 + 0 gene_id "C20orf24"; transcript_id "NM_199483:uc002xfr.3";
+chr20 hg19_knownGene exon 35236118 35236221 0.000000 + . gene_id "C20orf24"; transcript_id "NM_199483:uc002xfr.3";
+chr20 hg19_knownGene CDS 35240413 35240623 0.000000 + 1 gene_id "C20orf24"; transcript_id "NM_199483:uc002xfr.3";
+chr20 hg19_knownGene exon 35240413 35240960 0.000000 + . gene_id "C20orf24"; transcript_id "NM_199483:uc002xfr.3";
+chr20 hg19_knownGene CDS 35242375 35242389 0.000000 - 0 gene_id "SLA2"; transcript_id "NM_175077:uc002xfu.3";
+chr20 hg19_knownGene exon 35240924 35242389 0.000000 - . gene_id "SLA2"; transcript_id "NM_175077:uc002xfu.3";
+chr20 hg19_knownGene CDS 35242708 35242790 0.000000 - 2 gene_id "SLA2"; transcript_id "NM_175077:uc002xfu.3";
+chr20 hg19_knownGene exon 35242708 35242790 0.000000 - . gene_id "SLA2"; transcript_id "NM_175077:uc002xfu.3";
+chr20 hg19_knownGene CDS 35243628 35243777 0.000000 - 2 gene_id "SLA2"; transcript_id "NM_175077:uc002xfu.3";
+chr20 hg19_knownGene exon 35243628 35243777 0.000000 - . gene_id "SLA2"; transcript_id "NM_175077:uc002xfu.3";
+chr20 hg19_knownGene CDS 35260998 35261101 0.000000 - 1 gene_id "SLA2"; transcript_id "NM_175077:uc002xfu.3";
+chr20 hg19_knownGene exon 35260998 35261101 0.000000 - . gene_id "SLA2"; transcript_id "NM_175077:uc002xfu.3";
+chr20 hg19_knownGene CDS 35261946 35262032 0.000000 - 1 gene_id "SLA2"; transcript_id "NM_175077:uc002xfu.3";
+chr20 hg19_knownGene exon 35261946 35262032 0.000000 - . gene_id "SLA2"; transcript_id "NM_175077:uc002xfu.3";
+chr20 hg19_knownGene CDS 35262893 35262992 0.000000 - 2 gene_id "SLA2"; transcript_id "NM_175077:uc002xfu.3";
+chr20 hg19_knownGene exon 35262893 35262992 0.000000 - . gene_id "SLA2"; transcript_id "NM_175077:uc002xfu.3";
+chr20 hg19_knownGene CDS 35269648 35269738 0.000000 - 0 gene_id "SLA2"; transcript_id "NM_175077:uc002xfu.3";
+chr20 hg19_knownGene exon 35269648 35269781 0.000000 - . gene_id "SLA2"; transcript_id "NM_175077:uc002xfu.3";
+chr20 hg19_knownGene exon 35274240 35274619 0.000000 - . gene_id "SLA2"; transcript_id "NM_175077:uc002xfu.3";
+chr20 hg19_knownGene CDS 35242272 35242389 0.000000 - 1 gene_id "SLA2"; transcript_id "NM_032214:uc002xfv.3";
+chr20 hg19_knownGene exon 35240924 35242389 0.000000 - . gene_id "SLA2"; transcript_id "NM_032214:uc002xfv.3";
+chr20 hg19_knownGene CDS 35242708 35242840 0.000000 - 2 gene_id "SLA2"; transcript_id "NM_032214:uc002xfv.3";
+chr20 hg19_knownGene exon 35242708 35242840 0.000000 - . gene_id "SLA2"; transcript_id "NM_032214:uc002xfv.3";
+chr20 hg19_knownGene CDS 35243628 35243777 0.000000 - 2 gene_id "SLA2"; transcript_id "NM_032214:uc002xfv.3";
+chr20 hg19_knownGene exon 35243628 35243777 0.000000 - . gene_id "SLA2"; transcript_id "NM_032214:uc002xfv.3";
+chr20 hg19_knownGene CDS 35260998 35261101 0.000000 - 1 gene_id "SLA2"; transcript_id "NM_032214:uc002xfv.3";
+chr20 hg19_knownGene exon 35260998 35261101 0.000000 - . gene_id "SLA2"; transcript_id "NM_032214:uc002xfv.3";
+chr20 hg19_knownGene CDS 35261946 35262032 0.000000 - 1 gene_id "SLA2"; transcript_id "NM_032214:uc002xfv.3";
+chr20 hg19_knownGene exon 35261946 35262032 0.000000 - . gene_id "SLA2"; transcript_id "NM_032214:uc002xfv.3";
+chr20 hg19_knownGene CDS 35262893 35262992 0.000000 - 2 gene_id "SLA2"; transcript_id "NM_032214:uc002xfv.3";
+chr20 hg19_knownGene exon 35262893 35262992 0.000000 - . gene_id "SLA2"; transcript_id "NM_032214:uc002xfv.3";
+chr20 hg19_knownGene CDS 35269648 35269738 0.000000 - 0 gene_id "SLA2"; transcript_id "NM_032214:uc002xfv.3";
+chr20 hg19_knownGene exon 35269648 35269781 0.000000 - . gene_id "SLA2"; transcript_id "NM_032214:uc002xfv.3";
+chr20 hg19_knownGene exon 35274240 35274619 0.000000 - . gene_id "SLA2"; transcript_id "NM_032214:uc002xfv.3";
+chr20 hg19_knownGene CDS 35281926 35282104 0.000000 - 2 gene_id "NDRG3"; transcript_id "NM_032013:uc002xfw.3";
+chr20 hg19_knownGene exon 35280169 35282104 0.000000 - . gene_id "NDRG3"; transcript_id "NM_032013:uc002xfw.3";
+chr20 hg19_knownGene CDS 35284763 35284814 0.000000 - 0 gene_id "NDRG3"; transcript_id "NM_032013:uc002xfw.3";
+chr20 hg19_knownGene exon 35284763 35284814 0.000000 - . gene_id "NDRG3"; transcript_id "NM_032013:uc002xfw.3";
+chr20 hg19_knownGene CDS 35284900 35284935 0.000000 - 0 gene_id "NDRG3"; transcript_id "NM_032013:uc002xfw.3";
+chr20 hg19_knownGene exon 35284900 35284935 0.000000 - . gene_id "NDRG3"; transcript_id "NM_032013:uc002xfw.3";
+chr20 hg19_knownGene CDS 35288740 35288787 0.000000 - 0 gene_id "NDRG3"; transcript_id "NM_032013:uc002xfw.3";
+chr20 hg19_knownGene exon 35288740 35288787 0.000000 - . gene_id "NDRG3"; transcript_id "NM_032013:uc002xfw.3";
+chr20 hg19_knownGene CDS 35293449 35293500 0.000000 - 1 gene_id "NDRG3"; transcript_id "NM_032013:uc002xfw.3";
+chr20 hg19_knownGene exon 35293449 35293500 0.000000 - . gene_id "NDRG3"; transcript_id "NM_032013:uc002xfw.3";
+chr20 hg19_knownGene CDS 35293639 35293704 0.000000 - 1 gene_id "NDRG3"; transcript_id "NM_032013:uc002xfw.3";
+chr20 hg19_knownGene exon 35293639 35293704 0.000000 - . gene_id "NDRG3"; transcript_id "NM_032013:uc002xfw.3";
+chr20 hg19_knownGene CDS 35294692 35294795 0.000000 - 0 gene_id "NDRG3"; transcript_id "NM_032013:uc002xfw.3";
+chr20 hg19_knownGene exon 35294692 35294795 0.000000 - . gene_id "NDRG3"; transcript_id "NM_032013:uc002xfw.3";
+chr20 hg19_knownGene CDS 35299744 35299800 0.000000 - 0 gene_id "NDRG3"; transcript_id "NM_032013:uc002xfw.3";
+chr20 hg19_knownGene exon 35299744 35299800 0.000000 - . gene_id "NDRG3"; transcript_id "NM_032013:uc002xfw.3";
+chr20 hg19_knownGene CDS 35309219 35309305 0.000000 - 0 gene_id "NDRG3"; transcript_id "NM_032013:uc002xfw.3";
+chr20 hg19_knownGene exon 35309219 35309305 0.000000 - . gene_id "NDRG3"; transcript_id "NM_032013:uc002xfw.3";
+chr20 hg19_knownGene CDS 35310921 35310981 0.000000 - 1 gene_id "NDRG3"; transcript_id "NM_032013:uc002xfw.3";
+chr20 hg19_knownGene exon 35310921 35310981 0.000000 - . gene_id "NDRG3"; transcript_id "NM_032013:uc002xfw.3";
+chr20 hg19_knownGene CDS 35312816 35312878 0.000000 - 1 gene_id "NDRG3"; transcript_id "NM_032013:uc002xfw.3";
+chr20 hg19_knownGene exon 35312816 35312878 0.000000 - . gene_id "NDRG3"; transcript_id "NM_032013:uc002xfw.3";
+chr20 hg19_knownGene CDS 35315895 35316015 0.000000 - 2 gene_id "NDRG3"; transcript_id "NM_032013:uc002xfw.3";
+chr20 hg19_knownGene exon 35315895 35316015 0.000000 - . gene_id "NDRG3"; transcript_id "NM_032013:uc002xfw.3";
+chr20 hg19_knownGene CDS 35317082 35317187 0.000000 - 0 gene_id "NDRG3"; transcript_id "NM_032013:uc002xfw.3";
+chr20 hg19_knownGene exon 35317082 35317187 0.000000 - . gene_id "NDRG3"; transcript_id "NM_032013:uc002xfw.3";
+chr20 hg19_knownGene CDS 35335375 35335410 0.000000 - 0 gene_id "NDRG3"; transcript_id "NM_032013:uc002xfw.3";
+chr20 hg19_knownGene exon 35335375 35335410 0.000000 - . gene_id "NDRG3"; transcript_id "NM_032013:uc002xfw.3";
+chr20 hg19_knownGene CDS 35350082 35350138 0.000000 - 0 gene_id "NDRG3"; transcript_id "NM_032013:uc002xfw.3";
+chr20 hg19_knownGene exon 35350082 35350186 0.000000 - . gene_id "NDRG3"; transcript_id "NM_032013:uc002xfw.3";
+chr20 hg19_knownGene exon 35374448 35374541 0.000000 - . gene_id "NDRG3"; transcript_id "NM_032013:uc002xfw.3";
+chr20 hg19_knownGene CDS 35281926 35282104 0.000000 - 2 gene_id "NDRG3"; transcript_id "NM_022477:uc002xfx.3";
+chr20 hg19_knownGene exon 35280169 35282104 0.000000 - . gene_id "NDRG3"; transcript_id "NM_022477:uc002xfx.3";
+chr20 hg19_knownGene CDS 35284763 35284814 0.000000 - 0 gene_id "NDRG3"; transcript_id "NM_022477:uc002xfx.3";
+chr20 hg19_knownGene exon 35284763 35284814 0.000000 - . gene_id "NDRG3"; transcript_id "NM_022477:uc002xfx.3";
+chr20 hg19_knownGene CDS 35284900 35284935 0.000000 - 0 gene_id "NDRG3"; transcript_id "NM_022477:uc002xfx.3";
+chr20 hg19_knownGene exon 35284900 35284935 0.000000 - . gene_id "NDRG3"; transcript_id "NM_022477:uc002xfx.3";
+chr20 hg19_knownGene CDS 35288740 35288787 0.000000 - 0 gene_id "NDRG3"; transcript_id "NM_022477:uc002xfx.3";
+chr20 hg19_knownGene exon 35288740 35288787 0.000000 - . gene_id "NDRG3"; transcript_id "NM_022477:uc002xfx.3";
+chr20 hg19_knownGene CDS 35293449 35293500 0.000000 - 1 gene_id "NDRG3"; transcript_id "NM_022477:uc002xfx.3";
+chr20 hg19_knownGene exon 35293449 35293500 0.000000 - . gene_id "NDRG3"; transcript_id "NM_022477:uc002xfx.3";
+chr20 hg19_knownGene CDS 35293639 35293704 0.000000 - 1 gene_id "NDRG3"; transcript_id "NM_022477:uc002xfx.3";
+chr20 hg19_knownGene exon 35293639 35293704 0.000000 - . gene_id "NDRG3"; transcript_id "NM_022477:uc002xfx.3";
+chr20 hg19_knownGene CDS 35294692 35294795 0.000000 - 0 gene_id "NDRG3"; transcript_id "NM_022477:uc002xfx.3";
+chr20 hg19_knownGene exon 35294692 35294795 0.000000 - . gene_id "NDRG3"; transcript_id "NM_022477:uc002xfx.3";
+chr20 hg19_knownGene CDS 35299744 35299800 0.000000 - 0 gene_id "NDRG3"; transcript_id "NM_022477:uc002xfx.3";
+chr20 hg19_knownGene exon 35299744 35299800 0.000000 - . gene_id "NDRG3"; transcript_id "NM_022477:uc002xfx.3";
+chr20 hg19_knownGene CDS 35309219 35309305 0.000000 - 0 gene_id "NDRG3"; transcript_id "NM_022477:uc002xfx.3";
+chr20 hg19_knownGene exon 35309219 35309305 0.000000 - . gene_id "NDRG3"; transcript_id "NM_022477:uc002xfx.3";
+chr20 hg19_knownGene CDS 35310921 35310981 0.000000 - 1 gene_id "NDRG3"; transcript_id "NM_022477:uc002xfx.3";
+chr20 hg19_knownGene exon 35310921 35310981 0.000000 - . gene_id "NDRG3"; transcript_id "NM_022477:uc002xfx.3";
+chr20 hg19_knownGene CDS 35312816 35312878 0.000000 - 1 gene_id "NDRG3"; transcript_id "NM_022477:uc002xfx.3";
+chr20 hg19_knownGene exon 35312816 35312878 0.000000 - . gene_id "NDRG3"; transcript_id "NM_022477:uc002xfx.3";
+chr20 hg19_knownGene CDS 35315895 35316015 0.000000 - 2 gene_id "NDRG3"; transcript_id "NM_022477:uc002xfx.3";
+chr20 hg19_knownGene exon 35315895 35316015 0.000000 - . gene_id "NDRG3"; transcript_id "NM_022477:uc002xfx.3";
+chr20 hg19_knownGene CDS 35317082 35317187 0.000000 - 0 gene_id "NDRG3"; transcript_id "NM_022477:uc002xfx.3";
+chr20 hg19_knownGene exon 35317082 35317187 0.000000 - . gene_id "NDRG3"; transcript_id "NM_022477:uc002xfx.3";
+chr20 hg19_knownGene CDS 35350082 35350138 0.000000 - 0 gene_id "NDRG3"; transcript_id "NM_022477:uc002xfx.3";
+chr20 hg19_knownGene exon 35350082 35350186 0.000000 - . gene_id "NDRG3"; transcript_id "NM_022477:uc002xfx.3";
+chr20 hg19_knownGene exon 35374448 35374541 0.000000 - . gene_id "NDRG3"; transcript_id "NM_022477:uc002xfx.3";
+chr20 hg19_knownGene CDS 35281926 35282104 0.000000 - 2 gene_id "NDRG3"; transcript_id "NR_038370:uc010zvq.2";
+chr20 hg19_knownGene exon 35280169 35282104 0.000000 - . gene_id "NDRG3"; transcript_id "NR_038370:uc010zvq.2";
+chr20 hg19_knownGene CDS 35284763 35284814 0.000000 - 0 gene_id "NDRG3"; transcript_id "NR_038370:uc010zvq.2";
+chr20 hg19_knownGene exon 35284763 35284814 0.000000 - . gene_id "NDRG3"; transcript_id "NR_038370:uc010zvq.2";
+chr20 hg19_knownGene CDS 35284900 35284935 0.000000 - 0 gene_id "NDRG3"; transcript_id "NR_038370:uc010zvq.2";
+chr20 hg19_knownGene exon 35284900 35284935 0.000000 - . gene_id "NDRG3"; transcript_id "NR_038370:uc010zvq.2";
+chr20 hg19_knownGene CDS 35288740 35288787 0.000000 - 0 gene_id "NDRG3"; transcript_id "NR_038370:uc010zvq.2";
+chr20 hg19_knownGene exon 35288740 35288787 0.000000 - . gene_id "NDRG3"; transcript_id "NR_038370:uc010zvq.2";
+chr20 hg19_knownGene CDS 35293449 35293500 0.000000 - 1 gene_id "NDRG3"; transcript_id "NR_038370:uc010zvq.2";
+chr20 hg19_knownGene exon 35293449 35293500 0.000000 - . gene_id "NDRG3"; transcript_id "NR_038370:uc010zvq.2";
+chr20 hg19_knownGene CDS 35293639 35293704 0.000000 - 1 gene_id "NDRG3"; transcript_id "NR_038370:uc010zvq.2";
+chr20 hg19_knownGene exon 35293639 35293704 0.000000 - . gene_id "NDRG3"; transcript_id "NR_038370:uc010zvq.2";
+chr20 hg19_knownGene CDS 35294692 35294795 0.000000 - 0 gene_id "NDRG3"; transcript_id "NR_038370:uc010zvq.2";
+chr20 hg19_knownGene exon 35294692 35294795 0.000000 - . gene_id "NDRG3"; transcript_id "NR_038370:uc010zvq.2";
+chr20 hg19_knownGene CDS 35299744 35299800 0.000000 - 0 gene_id "NDRG3"; transcript_id "NR_038370:uc010zvq.2";
+chr20 hg19_knownGene exon 35299744 35299800 0.000000 - . gene_id "NDRG3"; transcript_id "NR_038370:uc010zvq.2";
+chr20 hg19_knownGene CDS 35309219 35309305 0.000000 - 0 gene_id "NDRG3"; transcript_id "NR_038370:uc010zvq.2";
+chr20 hg19_knownGene exon 35309219 35309305 0.000000 - . gene_id "NDRG3"; transcript_id "NR_038370:uc010zvq.2";
+chr20 hg19_knownGene CDS 35310921 35310981 0.000000 - 1 gene_id "NDRG3"; transcript_id "NR_038370:uc010zvq.2";
+chr20 hg19_knownGene exon 35310921 35310981 0.000000 - . gene_id "NDRG3"; transcript_id "NR_038370:uc010zvq.2";
+chr20 hg19_knownGene CDS 35312816 35312878 0.000000 - 1 gene_id "NDRG3"; transcript_id "NR_038370:uc010zvq.2";
+chr20 hg19_knownGene exon 35312816 35312878 0.000000 - . gene_id "NDRG3"; transcript_id "NR_038370:uc010zvq.2";
+chr20 hg19_knownGene CDS 35335375 35335409 0.000000 - 0 gene_id "NDRG3"; transcript_id "NR_038370:uc010zvq.2";
+chr20 hg19_knownGene exon 35335375 35335410 0.000000 - . gene_id "NDRG3"; transcript_id "NR_038370:uc010zvq.2";
+chr20 hg19_knownGene exon 35350082 35350186 0.000000 - . gene_id "NDRG3"; transcript_id "NR_038370:uc010zvq.2";
+chr20 hg19_knownGene exon 35374448 35374541 0.000000 - . gene_id "NDRG3"; transcript_id "NR_038370:uc010zvq.2";
+chr20 hg19_knownGene CDS 35281926 35282104 0.000000 - 2 gene_id "NDRG3"; transcript_id "AK295466:uc010zvr.2";
+chr20 hg19_knownGene exon 35280169 35282104 0.000000 - . gene_id "NDRG3"; transcript_id "AK295466:uc010zvr.2";
+chr20 hg19_knownGene CDS 35284763 35284814 0.000000 - 0 gene_id "NDRG3"; transcript_id "AK295466:uc010zvr.2";
+chr20 hg19_knownGene exon 35284763 35284814 0.000000 - . gene_id "NDRG3"; transcript_id "AK295466:uc010zvr.2";
+chr20 hg19_knownGene CDS 35284900 35284935 0.000000 - 0 gene_id "NDRG3"; transcript_id "AK295466:uc010zvr.2";
+chr20 hg19_knownGene exon 35284900 35284935 0.000000 - . gene_id "NDRG3"; transcript_id "AK295466:uc010zvr.2";
+chr20 hg19_knownGene CDS 35288740 35288787 0.000000 - 0 gene_id "NDRG3"; transcript_id "AK295466:uc010zvr.2";
+chr20 hg19_knownGene exon 35288740 35288787 0.000000 - . gene_id "NDRG3"; transcript_id "AK295466:uc010zvr.2";
+chr20 hg19_knownGene CDS 35293449 35293500 0.000000 - 1 gene_id "NDRG3"; transcript_id "AK295466:uc010zvr.2";
+chr20 hg19_knownGene exon 35293449 35293500 0.000000 - . gene_id "NDRG3"; transcript_id "AK295466:uc010zvr.2";
+chr20 hg19_knownGene CDS 35293639 35293704 0.000000 - 1 gene_id "NDRG3"; transcript_id "AK295466:uc010zvr.2";
+chr20 hg19_knownGene exon 35293639 35293704 0.000000 - . gene_id "NDRG3"; transcript_id "AK295466:uc010zvr.2";
+chr20 hg19_knownGene CDS 35294692 35294795 0.000000 - 0 gene_id "NDRG3"; transcript_id "AK295466:uc010zvr.2";
+chr20 hg19_knownGene exon 35294692 35294795 0.000000 - . gene_id "NDRG3"; transcript_id "AK295466:uc010zvr.2";
+chr20 hg19_knownGene CDS 35299744 35299800 0.000000 - 0 gene_id "NDRG3"; transcript_id "AK295466:uc010zvr.2";
+chr20 hg19_knownGene exon 35299744 35299800 0.000000 - . gene_id "NDRG3"; transcript_id "AK295466:uc010zvr.2";
+chr20 hg19_knownGene CDS 35309219 35309305 0.000000 - 0 gene_id "NDRG3"; transcript_id "AK295466:uc010zvr.2";
+chr20 hg19_knownGene exon 35309219 35309305 0.000000 - . gene_id "NDRG3"; transcript_id "AK295466:uc010zvr.2";
+chr20 hg19_knownGene CDS 35310921 35310981 0.000000 - 1 gene_id "NDRG3"; transcript_id "AK295466:uc010zvr.2";
+chr20 hg19_knownGene exon 35310921 35310981 0.000000 - . gene_id "NDRG3"; transcript_id "AK295466:uc010zvr.2";
+chr20 hg19_knownGene CDS 35312816 35312862 0.000000 - 0 gene_id "NDRG3"; transcript_id "AK295466:uc010zvr.2";
+chr20 hg19_knownGene exon 35312816 35312878 0.000000 - . gene_id "NDRG3"; transcript_id "AK295466:uc010zvr.2";
+chr20 hg19_knownGene exon 35350082 35350186 0.000000 - . gene_id "NDRG3"; transcript_id "AK295466:uc010zvr.2";
+chr20 hg19_knownGene exon 35374448 35374541 0.000000 - . gene_id "NDRG3"; transcript_id "AK295466:uc010zvr.2";
+chr20 hg19_knownGene CDS 35381194 35381300 0.000000 - 2 gene_id "DSN1"; transcript_id "NM_001145316:uc010gfr.3";
+chr20 hg19_knownGene exon 35380194 35381300 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145316:uc010gfr.3";
+chr20 hg19_knownGene CDS 35383166 35383253 0.000000 - 0 gene_id "DSN1"; transcript_id "NM_001145316:uc010gfr.3";
+chr20 hg19_knownGene exon 35383166 35383253 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145316:uc010gfr.3";
+chr20 hg19_knownGene CDS 35384085 35384232 0.000000 - 1 gene_id "DSN1"; transcript_id "NM_001145316:uc010gfr.3";
+chr20 hg19_knownGene exon 35384085 35384232 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145316:uc010gfr.3";
+chr20 hg19_knownGene CDS 35386490 35386564 0.000000 - 1 gene_id "DSN1"; transcript_id "NM_001145316:uc010gfr.3";
+chr20 hg19_knownGene exon 35386490 35386564 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145316:uc010gfr.3";
+chr20 hg19_knownGene CDS 35386961 35387020 0.000000 - 1 gene_id "DSN1"; transcript_id "NM_001145316:uc010gfr.3";
+chr20 hg19_knownGene exon 35386961 35387020 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145316:uc010gfr.3";
+chr20 hg19_knownGene CDS 35390864 35390951 0.000000 - 2 gene_id "DSN1"; transcript_id "NM_001145316:uc010gfr.3";
+chr20 hg19_knownGene exon 35390864 35390951 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145316:uc010gfr.3";
+chr20 hg19_knownGene CDS 35395172 35395244 0.000000 - 0 gene_id "DSN1"; transcript_id "NM_001145316:uc010gfr.3";
+chr20 hg19_knownGene exon 35395172 35395244 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145316:uc010gfr.3";
+chr20 hg19_knownGene CDS 35396372 35396445 0.000000 - 2 gene_id "DSN1"; transcript_id "NM_001145316:uc010gfr.3";
+chr20 hg19_knownGene exon 35396372 35396445 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145316:uc010gfr.3";
+chr20 hg19_knownGene CDS 35399276 35399596 0.000000 - 2 gene_id "DSN1"; transcript_id "NM_001145316:uc010gfr.3";
+chr20 hg19_knownGene exon 35399276 35399596 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145316:uc010gfr.3";
+chr20 hg19_knownGene CDS 35399828 35399861 0.000000 - 0 gene_id "DSN1"; transcript_id "NM_001145316:uc010gfr.3";
+chr20 hg19_knownGene exon 35399828 35399876 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145316:uc010gfr.3";
+chr20 hg19_knownGene exon 35401797 35402154 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145316:uc010gfr.3";
+chr20 hg19_knownGene CDS 35381194 35381300 0.000000 - 2 gene_id "DSN1"; transcript_id "NM_024918:uc002xfz.3";
+chr20 hg19_knownGene exon 35380194 35381300 0.000000 - . gene_id "DSN1"; transcript_id "NM_024918:uc002xfz.3";
+chr20 hg19_knownGene CDS 35383166 35383253 0.000000 - 0 gene_id "DSN1"; transcript_id "NM_024918:uc002xfz.3";
+chr20 hg19_knownGene exon 35383166 35383253 0.000000 - . gene_id "DSN1"; transcript_id "NM_024918:uc002xfz.3";
+chr20 hg19_knownGene CDS 35384085 35384232 0.000000 - 1 gene_id "DSN1"; transcript_id "NM_024918:uc002xfz.3";
+chr20 hg19_knownGene exon 35384085 35384232 0.000000 - . gene_id "DSN1"; transcript_id "NM_024918:uc002xfz.3";
+chr20 hg19_knownGene CDS 35386490 35386564 0.000000 - 1 gene_id "DSN1"; transcript_id "NM_024918:uc002xfz.3";
+chr20 hg19_knownGene exon 35386490 35386564 0.000000 - . gene_id "DSN1"; transcript_id "NM_024918:uc002xfz.3";
+chr20 hg19_knownGene CDS 35386961 35387020 0.000000 - 1 gene_id "DSN1"; transcript_id "NM_024918:uc002xfz.3";
+chr20 hg19_knownGene exon 35386961 35387020 0.000000 - . gene_id "DSN1"; transcript_id "NM_024918:uc002xfz.3";
+chr20 hg19_knownGene CDS 35390864 35390951 0.000000 - 2 gene_id "DSN1"; transcript_id "NM_024918:uc002xfz.3";
+chr20 hg19_knownGene exon 35390864 35390951 0.000000 - . gene_id "DSN1"; transcript_id "NM_024918:uc002xfz.3";
+chr20 hg19_knownGene CDS 35395172 35395244 0.000000 - 0 gene_id "DSN1"; transcript_id "NM_024918:uc002xfz.3";
+chr20 hg19_knownGene exon 35395172 35395244 0.000000 - . gene_id "DSN1"; transcript_id "NM_024918:uc002xfz.3";
+chr20 hg19_knownGene CDS 35396372 35396445 0.000000 - 2 gene_id "DSN1"; transcript_id "NM_024918:uc002xfz.3";
+chr20 hg19_knownGene exon 35396372 35396445 0.000000 - . gene_id "DSN1"; transcript_id "NM_024918:uc002xfz.3";
+chr20 hg19_knownGene CDS 35399276 35399596 0.000000 - 2 gene_id "DSN1"; transcript_id "NM_024918:uc002xfz.3";
+chr20 hg19_knownGene exon 35399276 35399596 0.000000 - . gene_id "DSN1"; transcript_id "NM_024918:uc002xfz.3";
+chr20 hg19_knownGene CDS 35399828 35399861 0.000000 - 0 gene_id "DSN1"; transcript_id "NM_024918:uc002xfz.3";
+chr20 hg19_knownGene exon 35399828 35399876 0.000000 - . gene_id "DSN1"; transcript_id "NM_024918:uc002xfz.3";
+chr20 hg19_knownGene exon 35401884 35402154 0.000000 - . gene_id "DSN1"; transcript_id "NM_024918:uc002xfz.3";
+chr20 hg19_knownGene CDS 35381194 35381300 0.000000 - 2 gene_id "DSN1"; transcript_id "BC035821:uc002xfy.4";
+chr20 hg19_knownGene exon 35380194 35381300 0.000000 - . gene_id "DSN1"; transcript_id "BC035821:uc002xfy.4";
+chr20 hg19_knownGene CDS 35383166 35383253 0.000000 - 0 gene_id "DSN1"; transcript_id "BC035821:uc002xfy.4";
+chr20 hg19_knownGene exon 35383166 35383253 0.000000 - . gene_id "DSN1"; transcript_id "BC035821:uc002xfy.4";
+chr20 hg19_knownGene CDS 35384085 35384232 0.000000 - 1 gene_id "DSN1"; transcript_id "BC035821:uc002xfy.4";
+chr20 hg19_knownGene exon 35384085 35384232 0.000000 - . gene_id "DSN1"; transcript_id "BC035821:uc002xfy.4";
+chr20 hg19_knownGene CDS 35386490 35386564 0.000000 - 1 gene_id "DSN1"; transcript_id "BC035821:uc002xfy.4";
+chr20 hg19_knownGene exon 35386490 35386564 0.000000 - . gene_id "DSN1"; transcript_id "BC035821:uc002xfy.4";
+chr20 hg19_knownGene CDS 35386961 35386980 0.000000 - 0 gene_id "DSN1"; transcript_id "BC035821:uc002xfy.4";
+chr20 hg19_knownGene exon 35386961 35387020 0.000000 - . gene_id "DSN1"; transcript_id "BC035821:uc002xfy.4";
+chr20 hg19_knownGene exon 35390864 35390951 0.000000 - . gene_id "DSN1"; transcript_id "BC035821:uc002xfy.4";
+chr20 hg19_knownGene exon 35395172 35395244 0.000000 - . gene_id "DSN1"; transcript_id "BC035821:uc002xfy.4";
+chr20 hg19_knownGene exon 35396372 35396445 0.000000 - . gene_id "DSN1"; transcript_id "BC035821:uc002xfy.4";
+chr20 hg19_knownGene exon 35401797 35402154 0.000000 - . gene_id "DSN1"; transcript_id "BC035821:uc002xfy.4";
+chr20 hg19_knownGene CDS 35381194 35381300 0.000000 - 2 gene_id "DSN1"; transcript_id "NM_001145317:uc010zvs.2";
+chr20 hg19_knownGene exon 35380194 35381300 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145317:uc010zvs.2";
+chr20 hg19_knownGene CDS 35383166 35383253 0.000000 - 0 gene_id "DSN1"; transcript_id "NM_001145317:uc010zvs.2";
+chr20 hg19_knownGene exon 35383166 35383253 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145317:uc010zvs.2";
+chr20 hg19_knownGene CDS 35384085 35384232 0.000000 - 1 gene_id "DSN1"; transcript_id "NM_001145317:uc010zvs.2";
+chr20 hg19_knownGene exon 35384085 35384232 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145317:uc010zvs.2";
+chr20 hg19_knownGene CDS 35386490 35386564 0.000000 - 1 gene_id "DSN1"; transcript_id "NM_001145317:uc010zvs.2";
+chr20 hg19_knownGene exon 35386490 35386564 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145317:uc010zvs.2";
+chr20 hg19_knownGene CDS 35386961 35387020 0.000000 - 1 gene_id "DSN1"; transcript_id "NM_001145317:uc010zvs.2";
+chr20 hg19_knownGene exon 35386961 35387020 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145317:uc010zvs.2";
+chr20 hg19_knownGene CDS 35390864 35390951 0.000000 - 2 gene_id "DSN1"; transcript_id "NM_001145317:uc010zvs.2";
+chr20 hg19_knownGene exon 35390864 35390951 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145317:uc010zvs.2";
+chr20 hg19_knownGene CDS 35395172 35395244 0.000000 - 0 gene_id "DSN1"; transcript_id "NM_001145317:uc010zvs.2";
+chr20 hg19_knownGene exon 35395172 35395244 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145317:uc010zvs.2";
+chr20 hg19_knownGene CDS 35396372 35396445 0.000000 - 2 gene_id "DSN1"; transcript_id "NM_001145317:uc010zvs.2";
+chr20 hg19_knownGene exon 35396372 35396445 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145317:uc010zvs.2";
+chr20 hg19_knownGene CDS 35399828 35399861 0.000000 - 0 gene_id "DSN1"; transcript_id "NM_001145317:uc010zvs.2";
+chr20 hg19_knownGene exon 35399828 35399876 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145317:uc010zvs.2";
+chr20 hg19_knownGene exon 35402065 35402230 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145317:uc010zvs.2";
+chr20 hg19_knownGene CDS 35381194 35381300 0.000000 - 2 gene_id "DSN1"; transcript_id "NM_001145315:uc002xga.3";
+chr20 hg19_knownGene exon 35380194 35381300 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145315:uc002xga.3";
+chr20 hg19_knownGene CDS 35383166 35383253 0.000000 - 0 gene_id "DSN1"; transcript_id "NM_001145315:uc002xga.3";
+chr20 hg19_knownGene exon 35383166 35383253 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145315:uc002xga.3";
+chr20 hg19_knownGene CDS 35384085 35384232 0.000000 - 1 gene_id "DSN1"; transcript_id "NM_001145315:uc002xga.3";
+chr20 hg19_knownGene exon 35384085 35384232 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145315:uc002xga.3";
+chr20 hg19_knownGene CDS 35386490 35386564 0.000000 - 1 gene_id "DSN1"; transcript_id "NM_001145315:uc002xga.3";
+chr20 hg19_knownGene exon 35386490 35386564 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145315:uc002xga.3";
+chr20 hg19_knownGene CDS 35386961 35387020 0.000000 - 1 gene_id "DSN1"; transcript_id "NM_001145315:uc002xga.3";
+chr20 hg19_knownGene exon 35386961 35387020 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145315:uc002xga.3";
+chr20 hg19_knownGene CDS 35390864 35390951 0.000000 - 2 gene_id "DSN1"; transcript_id "NM_001145315:uc002xga.3";
+chr20 hg19_knownGene exon 35390864 35390951 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145315:uc002xga.3";
+chr20 hg19_knownGene CDS 35395172 35395244 0.000000 - 0 gene_id "DSN1"; transcript_id "NM_001145315:uc002xga.3";
+chr20 hg19_knownGene exon 35395172 35395244 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145315:uc002xga.3";
+chr20 hg19_knownGene CDS 35396372 35396445 0.000000 - 2 gene_id "DSN1"; transcript_id "NM_001145315:uc002xga.3";
+chr20 hg19_knownGene exon 35396372 35396445 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145315:uc002xga.3";
+chr20 hg19_knownGene CDS 35399276 35399596 0.000000 - 2 gene_id "DSN1"; transcript_id "NM_001145315:uc002xga.3";
+chr20 hg19_knownGene exon 35399276 35399596 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145315:uc002xga.3";
+chr20 hg19_knownGene CDS 35399828 35399861 0.000000 - 0 gene_id "DSN1"; transcript_id "NM_001145315:uc002xga.3";
+chr20 hg19_knownGene exon 35399828 35399876 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145315:uc002xga.3";
+chr20 hg19_knownGene exon 35402065 35402230 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145315:uc002xga.3";
+chr20 hg19_knownGene CDS 35381194 35381300 0.000000 - 2 gene_id "DSN1"; transcript_id "NM_001145318:uc002xgc.3";
+chr20 hg19_knownGene exon 35380194 35381300 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145318:uc002xgc.3";
+chr20 hg19_knownGene CDS 35383166 35383253 0.000000 - 0 gene_id "DSN1"; transcript_id "NM_001145318:uc002xgc.3";
+chr20 hg19_knownGene exon 35383166 35383253 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145318:uc002xgc.3";
+chr20 hg19_knownGene CDS 35384085 35384232 0.000000 - 1 gene_id "DSN1"; transcript_id "NM_001145318:uc002xgc.3";
+chr20 hg19_knownGene exon 35384085 35384232 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145318:uc002xgc.3";
+chr20 hg19_knownGene CDS 35386490 35386564 0.000000 - 1 gene_id "DSN1"; transcript_id "NM_001145318:uc002xgc.3";
+chr20 hg19_knownGene exon 35386490 35386564 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145318:uc002xgc.3";
+chr20 hg19_knownGene CDS 35386961 35387020 0.000000 - 1 gene_id "DSN1"; transcript_id "NM_001145318:uc002xgc.3";
+chr20 hg19_knownGene exon 35386961 35387020 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145318:uc002xgc.3";
+chr20 hg19_knownGene CDS 35390864 35390951 0.000000 - 2 gene_id "DSN1"; transcript_id "NM_001145318:uc002xgc.3";
+chr20 hg19_knownGene exon 35390864 35390951 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145318:uc002xgc.3";
+chr20 hg19_knownGene CDS 35395172 35395244 0.000000 - 0 gene_id "DSN1"; transcript_id "NM_001145318:uc002xgc.3";
+chr20 hg19_knownGene exon 35395172 35395244 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145318:uc002xgc.3";
+chr20 hg19_knownGene CDS 35396372 35396445 0.000000 - 2 gene_id "DSN1"; transcript_id "NM_001145318:uc002xgc.3";
+chr20 hg19_knownGene exon 35396372 35396445 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145318:uc002xgc.3";
+chr20 hg19_knownGene CDS 35399276 35399582 0.000000 - 0 gene_id "DSN1"; transcript_id "NM_001145318:uc002xgc.3";
+chr20 hg19_knownGene exon 35399276 35399596 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145318:uc002xgc.3";
+chr20 hg19_knownGene exon 35402065 35402230 0.000000 - . gene_id "DSN1"; transcript_id "NM_001145318:uc002xgc.3";
+chr20 hg19_knownGene CDS 35381194 35381300 0.000000 - 2 gene_id "DSN1"; transcript_id "BC026011:uc002xgb.3";
+chr20 hg19_knownGene exon 35380194 35381300 0.000000 - . gene_id "DSN1"; transcript_id "BC026011:uc002xgb.3";
+chr20 hg19_knownGene CDS 35383166 35383253 0.000000 - 0 gene_id "DSN1"; transcript_id "BC026011:uc002xgb.3";
+chr20 hg19_knownGene exon 35383166 35383253 0.000000 - . gene_id "DSN1"; transcript_id "BC026011:uc002xgb.3";
+chr20 hg19_knownGene CDS 35384085 35384232 0.000000 - 1 gene_id "DSN1"; transcript_id "BC026011:uc002xgb.3";
+chr20 hg19_knownGene exon 35384085 35384232 0.000000 - . gene_id "DSN1"; transcript_id "BC026011:uc002xgb.3";
+chr20 hg19_knownGene CDS 35386490 35386564 0.000000 - 1 gene_id "DSN1"; transcript_id "BC026011:uc002xgb.3";
+chr20 hg19_knownGene exon 35386490 35386564 0.000000 - . gene_id "DSN1"; transcript_id "BC026011:uc002xgb.3";
+chr20 hg19_knownGene CDS 35386961 35387020 0.000000 - 1 gene_id "DSN1"; transcript_id "BC026011:uc002xgb.3";
+chr20 hg19_knownGene exon 35386961 35387020 0.000000 - . gene_id "DSN1"; transcript_id "BC026011:uc002xgb.3";
+chr20 hg19_knownGene CDS 35390864 35390951 0.000000 - 2 gene_id "DSN1"; transcript_id "BC026011:uc002xgb.3";
+chr20 hg19_knownGene exon 35390864 35390951 0.000000 - . gene_id "DSN1"; transcript_id "BC026011:uc002xgb.3";
+chr20 hg19_knownGene CDS 35395172 35395244 0.000000 - 0 gene_id "DSN1"; transcript_id "BC026011:uc002xgb.3";
+chr20 hg19_knownGene exon 35395172 35395244 0.000000 - . gene_id "DSN1"; transcript_id "BC026011:uc002xgb.3";
+chr20 hg19_knownGene CDS 35396372 35396445 0.000000 - 2 gene_id "DSN1"; transcript_id "BC026011:uc002xgb.3";
+chr20 hg19_knownGene exon 35396372 35396445 0.000000 - . gene_id "DSN1"; transcript_id "BC026011:uc002xgb.3";
+chr20 hg19_knownGene CDS 35399276 35399582 0.000000 - 0 gene_id "DSN1"; transcript_id "BC026011:uc002xgb.3";
+chr20 hg19_knownGene exon 35399276 35399876 0.000000 - . gene_id "DSN1"; transcript_id "BC026011:uc002xgb.3";
+chr20 hg19_knownGene exon 35402065 35402230 0.000000 - . gene_id "DSN1"; transcript_id "BC026011:uc002xgb.3";
+chr20 hg19_knownGene CDS 35421604 35423157 0.000000 - 0 gene_id "KIAA0889"; transcript_id "BC113433:uc021wcy.1";
+chr20 hg19_knownGene exon 35419762 35423278 0.000000 - . gene_id "KIAA0889"; transcript_id "BC113433:uc021wcy.1";
+chr20 hg19_knownGene CDS 35406180 35406234 0.000000 - 1 gene_id "KIAA0889"; transcript_id "NM_199181:uc002xgd.1";
+chr20 hg19_knownGene exon 35405845 35406234 0.000000 - . gene_id "KIAA0889"; transcript_id "NM_199181:uc002xgd.1";
+chr20 hg19_knownGene CDS 35422778 35423002 0.000000 - 1 gene_id "KIAA0889"; transcript_id "NM_199181:uc002xgd.1";
+chr20 hg19_knownGene exon 35422778 35423002 0.000000 - . gene_id "KIAA0889"; transcript_id "NM_199181:uc002xgd.1";
+chr20 hg19_knownGene CDS 35425285 35425355 0.000000 - 0 gene_id "KIAA0889"; transcript_id "NM_199181:uc002xgd.1";
+chr20 hg19_knownGene exon 35425285 35425355 0.000000 - . gene_id "KIAA0889"; transcript_id "NM_199181:uc002xgd.1";
+chr20 hg19_knownGene CDS 35425905 35425976 0.000000 - 0 gene_id "KIAA0889"; transcript_id "NM_199181:uc002xgd.1";
+chr20 hg19_knownGene exon 35425905 35425976 0.000000 - . gene_id "KIAA0889"; transcript_id "NM_199181:uc002xgd.1";
+chr20 hg19_knownGene CDS 35431259 35431510 0.000000 - 0 gene_id "KIAA0889"; transcript_id "NM_199181:uc002xgd.1";
+chr20 hg19_knownGene exon 35431259 35431510 0.000000 - . gene_id "KIAA0889"; transcript_id "NM_199181:uc002xgd.1";
+chr20 hg19_knownGene CDS 35433138 35433305 0.000000 - 0 gene_id "KIAA0889"; transcript_id "NM_199181:uc002xgd.1";
+chr20 hg19_knownGene exon 35433138 35433305 0.000000 - . gene_id "KIAA0889"; transcript_id "NM_199181:uc002xgd.1";
+chr20 hg19_knownGene CDS 35434256 35434360 0.000000 - 0 gene_id "KIAA0889"; transcript_id "NM_199181:uc002xgd.1";
+chr20 hg19_knownGene exon 35434256 35434360 0.000000 - . gene_id "KIAA0889"; transcript_id "NM_199181:uc002xgd.1";
+chr20 hg19_knownGene CDS 35436916 35437146 0.000000 - 0 gene_id "KIAA0889"; transcript_id "NM_199181:uc002xgd.1";
+chr20 hg19_knownGene exon 35436916 35437146 0.000000 - . gene_id "KIAA0889"; transcript_id "NM_199181:uc002xgd.1";
+chr20 hg19_knownGene CDS 35438385 35438510 0.000000 - 0 gene_id "KIAA0889"; transcript_id "NM_199181:uc002xgd.1";
+chr20 hg19_knownGene exon 35438385 35438510 0.000000 - . gene_id "KIAA0889"; transcript_id "NM_199181:uc002xgd.1";
+chr20 hg19_knownGene CDS 35441107 35441247 0.000000 - 0 gene_id "KIAA0889"; transcript_id "NM_199181:uc002xgd.1";
+chr20 hg19_knownGene exon 35441107 35441247 0.000000 - . gene_id "KIAA0889"; transcript_id "NM_199181:uc002xgd.1";
+chr20 hg19_knownGene CDS 35443529 35444710 0.000000 - 0 gene_id "KIAA0889"; transcript_id "NM_199181:uc002xgd.1";
+chr20 hg19_knownGene exon 35443529 35444710 0.000000 - . gene_id "KIAA0889"; transcript_id "NM_199181:uc002xgd.1";
+chr20 hg19_knownGene CDS 35445810 35445872 0.000000 - 0 gene_id "KIAA0889"; transcript_id "NM_199181:uc002xgd.1";
+chr20 hg19_knownGene exon 35445810 35445872 0.000000 - . gene_id "KIAA0889"; transcript_id "NM_199181:uc002xgd.1";
+chr20 hg19_knownGene CDS 35457457 35457615 0.000000 - 0 gene_id "KIAA0889"; transcript_id "NM_199181:uc002xgd.1";
+chr20 hg19_knownGene exon 35457457 35457615 0.000000 - . gene_id "KIAA0889"; transcript_id "NM_199181:uc002xgd.1";
+chr20 hg19_knownGene CDS 35467620 35467817 0.000000 - 0 gene_id "KIAA0889"; transcript_id "NM_199181:uc002xgd.1";
+chr20 hg19_knownGene exon 35467620 35467844 0.000000 - . gene_id "KIAA0889"; transcript_id "NM_199181:uc002xgd.1";
+chr20 hg19_knownGene exon 35487977 35488276 0.000000 - . gene_id "KIAA0889"; transcript_id "NM_199181:uc002xgd.1";
+chr20 hg19_knownGene CDS 35414891 35415040 0.000000 - 0 gene_id "KIAA0889"; transcript_id "NM_080627:uc021wcx.1";
+chr20 hg19_knownGene exon 35412178 35415040 0.000000 - . gene_id "KIAA0889"; transcript_id "NM_080627:uc021wcx.1";
+chr20 hg19_knownGene CDS 35421652 35423002 0.000000 - 1 gene_id "KIAA0889"; transcript_id "NM_080627:uc021wcx.1";
+chr20 hg19_knownGene exon 35421652 35423002 0.000000 - . gene_id "KIAA0889"; transcript_id "NM_080627:uc021wcx.1";
+chr20 hg19_knownGene CDS 35425285 35425355 0.000000 - 0 gene_id "KIAA0889"; transcript_id "NM_080627:uc021wcx.1";
+chr20 hg19_knownGene exon 35425285 35425355 0.000000 - . gene_id "KIAA0889"; transcript_id "NM_080627:uc021wcx.1";
+chr20 hg19_knownGene CDS 35425905 35425976 0.000000 - 0 gene_id "KIAA0889"; transcript_id "NM_080627:uc021wcx.1";
+chr20 hg19_knownGene exon 35425905 35425976 0.000000 - . gene_id "KIAA0889"; transcript_id "NM_080627:uc021wcx.1";
+chr20 hg19_knownGene CDS 35431259 35431510 0.000000 - 0 gene_id "KIAA0889"; transcript_id "NM_080627:uc021wcx.1";
+chr20 hg19_knownGene exon 35431259 35431510 0.000000 - . gene_id "KIAA0889"; transcript_id "NM_080627:uc021wcx.1";
+chr20 hg19_knownGene CDS 35433138 35433305 0.000000 - 0 gene_id "KIAA0889"; transcript_id "NM_080627:uc021wcx.1";
+chr20 hg19_knownGene exon 35433138 35433305 0.000000 - . gene_id "KIAA0889"; transcript_id "NM_080627:uc021wcx.1";
+chr20 hg19_knownGene CDS 35434256 35434360 0.000000 - 0 gene_id "KIAA0889"; transcript_id "NM_080627:uc021wcx.1";
+chr20 hg19_knownGene exon 35434256 35434360 0.000000 - . gene_id "KIAA0889"; transcript_id "NM_080627:uc021wcx.1";
+chr20 hg19_knownGene CDS 35436916 35437146 0.000000 - 0 gene_id "KIAA0889"; transcript_id "NM_080627:uc021wcx.1";
+chr20 hg19_knownGene exon 35436916 35437146 0.000000 - . gene_id "KIAA0889"; transcript_id "NM_080627:uc021wcx.1";
+chr20 hg19_knownGene CDS 35438385 35438510 0.000000 - 0 gene_id "KIAA0889"; transcript_id "NM_080627:uc021wcx.1";
+chr20 hg19_knownGene exon 35438385 35438510 0.000000 - . gene_id "KIAA0889"; transcript_id "NM_080627:uc021wcx.1";
+chr20 hg19_knownGene CDS 35441107 35441247 0.000000 - 0 gene_id "KIAA0889"; transcript_id "NM_080627:uc021wcx.1";
+chr20 hg19_knownGene exon 35441107 35441247 0.000000 - . gene_id "KIAA0889"; transcript_id "NM_080627:uc021wcx.1";
+chr20 hg19_knownGene CDS 35443529 35444710 0.000000 - 0 gene_id "KIAA0889"; transcript_id "NM_080627:uc021wcx.1";
+chr20 hg19_knownGene exon 35443529 35444710 0.000000 - . gene_id "KIAA0889"; transcript_id "NM_080627:uc021wcx.1";
+chr20 hg19_knownGene CDS 35445810 35445872 0.000000 - 0 gene_id "KIAA0889"; transcript_id "NM_080627:uc021wcx.1";
+chr20 hg19_knownGene exon 35445810 35445872 0.000000 - . gene_id "KIAA0889"; transcript_id "NM_080627:uc021wcx.1";
+chr20 hg19_knownGene CDS 35457457 35457615 0.000000 - 0 gene_id "KIAA0889"; transcript_id "NM_080627:uc021wcx.1";
+chr20 hg19_knownGene exon 35457457 35457615 0.000000 - . gene_id "KIAA0889"; transcript_id "NM_080627:uc021wcx.1";
+chr20 hg19_knownGene CDS 35467620 35467844 0.000000 - 0 gene_id "KIAA0889"; transcript_id "NM_080627:uc021wcx.1";
+chr20 hg19_knownGene exon 35467620 35467844 0.000000 - . gene_id "KIAA0889"; transcript_id "NM_080627:uc021wcx.1";
+chr20 hg19_knownGene CDS 35491061 35491747 0.000000 - 0 gene_id "KIAA0889"; transcript_id "NM_080627:uc021wcx.1";
+chr20 hg19_knownGene exon 35491061 35492087 0.000000 - . gene_id "KIAA0889"; transcript_id "NM_080627:uc021wcx.1";
+chr20 hg19_knownGene CDS 35504578 35504610 0.000000 + 0 gene_id "C20orf118"; transcript_id "BC127688:uc021wcz.1";
+chr20 hg19_knownGene exon 35504570 35504610 0.000000 + . gene_id "C20orf118"; transcript_id "BC127688:uc021wcz.1";
+chr20 hg19_knownGene CDS 35506302 35506457 0.000000 + 0 gene_id "C20orf118"; transcript_id "BC127688:uc021wcz.1";
+chr20 hg19_knownGene exon 35506302 35506457 0.000000 + . gene_id "C20orf118"; transcript_id "BC127688:uc021wcz.1";
+chr20 hg19_knownGene CDS 35507444 35507596 0.000000 + 0 gene_id "C20orf118"; transcript_id "BC127688:uc021wcz.1";
+chr20 hg19_knownGene exon 35507444 35507596 0.000000 + . gene_id "C20orf118"; transcript_id "BC127688:uc021wcz.1";
+chr20 hg19_knownGene CDS 35509058 35509153 0.000000 + 0 gene_id "C20orf118"; transcript_id "BC127688:uc021wcz.1";
+chr20 hg19_knownGene exon 35509058 35509153 0.000000 + . gene_id "C20orf118"; transcript_id "BC127688:uc021wcz.1";
+chr20 hg19_knownGene CDS 35515858 35515931 0.000000 + 0 gene_id "C20orf118"; transcript_id "BC127688:uc021wcz.1";
+chr20 hg19_knownGene exon 35515858 35515931 0.000000 + . gene_id "C20orf118"; transcript_id "BC127688:uc021wcz.1";
+chr20 hg19_knownGene CDS 35517654 35517786 0.000000 + 1 gene_id "C20orf118"; transcript_id "BC127688:uc021wcz.1";
+chr20 hg19_knownGene exon 35517654 35517855 0.000000 + . gene_id "C20orf118"; transcript_id "BC127688:uc021wcz.1";
+chr20 hg19_knownGene CDS 35504578 35504610 0.000000 + 0 gene_id "C20orf118"; transcript_id "NM_080628:uc002xgg.1";
+chr20 hg19_knownGene exon 35504570 35504610 0.000000 + . gene_id "C20orf118"; transcript_id "NM_080628:uc002xgg.1";
+chr20 hg19_knownGene CDS 35506302 35506457 0.000000 + 0 gene_id "C20orf118"; transcript_id "NM_080628:uc002xgg.1";
+chr20 hg19_knownGene exon 35506302 35506457 0.000000 + . gene_id "C20orf118"; transcript_id "NM_080628:uc002xgg.1";
+chr20 hg19_knownGene CDS 35507444 35507596 0.000000 + 0 gene_id "C20orf118"; transcript_id "NM_080628:uc002xgg.1";
+chr20 hg19_knownGene exon 35507444 35507596 0.000000 + . gene_id "C20orf118"; transcript_id "NM_080628:uc002xgg.1";
+chr20 hg19_knownGene CDS 35509058 35509153 0.000000 + 0 gene_id "C20orf118"; transcript_id "NM_080628:uc002xgg.1";
+chr20 hg19_knownGene exon 35509058 35509153 0.000000 + . gene_id "C20orf118"; transcript_id "NM_080628:uc002xgg.1";
+chr20 hg19_knownGene CDS 35515858 35515931 0.000000 + 0 gene_id "C20orf118"; transcript_id "NM_080628:uc002xgg.1";
+chr20 hg19_knownGene exon 35515858 35515931 0.000000 + . gene_id "C20orf118"; transcript_id "NM_080628:uc002xgg.1";
+chr20 hg19_knownGene CDS 35517654 35517786 0.000000 + 1 gene_id "C20orf118"; transcript_id "NM_080628:uc002xgg.1";
+chr20 hg19_knownGene exon 35517654 35517806 0.000000 + . gene_id "C20orf118"; transcript_id "NM_080628:uc002xgg.1";
+chr20 hg19_knownGene exon 35521265 35522632 0.000000 + . gene_id "C20orf118"; transcript_id "NM_080628:uc002xgg.1";
+chr20 hg19_knownGene exon 35520227 35521469 0.000000 - . gene_id "SAMHD1"; transcript_id "AK311150:uc010gft.2";
+chr20 hg19_knownGene exon 35526225 35526362 0.000000 - . gene_id "SAMHD1"; transcript_id "AK311150:uc010gft.2";
+chr20 hg19_knownGene exon 35532560 35532652 0.000000 - . gene_id "SAMHD1"; transcript_id "AK311150:uc010gft.2";
+chr20 hg19_knownGene exon 35533767 35533906 0.000000 - . gene_id "SAMHD1"; transcript_id "AK311150:uc010gft.2";
+chr20 hg19_knownGene CDS 35521338 35521469 0.000000 - 0 gene_id "SAMHD1"; transcript_id "NM_015474:uc002xgh.2";
+chr20 hg19_knownGene exon 35520227 35521469 0.000000 - . gene_id "SAMHD1"; transcript_id "NM_015474:uc002xgh.2";
+chr20 hg19_knownGene CDS 35526225 35526362 0.000000 - 0 gene_id "SAMHD1"; transcript_id "NM_015474:uc002xgh.2";
+chr20 hg19_knownGene exon 35526225 35526362 0.000000 - . gene_id "SAMHD1"; transcript_id "NM_015474:uc002xgh.2";
+chr20 hg19_knownGene CDS 35526843 35526947 0.000000 - 0 gene_id "SAMHD1"; transcript_id "NM_015474:uc002xgh.2";
+chr20 hg19_knownGene exon 35526843 35526947 0.000000 - . gene_id "SAMHD1"; transcript_id "NM_015474:uc002xgh.2";
+chr20 hg19_knownGene CDS 35532560 35532652 0.000000 - 0 gene_id "SAMHD1"; transcript_id "NM_015474:uc002xgh.2";
+chr20 hg19_knownGene exon 35532560 35532652 0.000000 - . gene_id "SAMHD1"; transcript_id "NM_015474:uc002xgh.2";
+chr20 hg19_knownGene CDS 35533767 35533906 0.000000 - 2 gene_id "SAMHD1"; transcript_id "NM_015474:uc002xgh.2";
+chr20 hg19_knownGene exon 35533767 35533906 0.000000 - . gene_id "SAMHD1"; transcript_id "NM_015474:uc002xgh.2";
+chr20 hg19_knownGene CDS 35539621 35539736 0.000000 - 1 gene_id "SAMHD1"; transcript_id "NM_015474:uc002xgh.2";
+chr20 hg19_knownGene exon 35539621 35539736 0.000000 - . gene_id "SAMHD1"; transcript_id "NM_015474:uc002xgh.2";
+chr20 hg19_knownGene CDS 35540864 35540955 0.000000 - 0 gene_id "SAMHD1"; transcript_id "NM_015474:uc002xgh.2";
+chr20 hg19_knownGene exon 35540864 35540955 0.000000 - . gene_id "SAMHD1"; transcript_id "NM_015474:uc002xgh.2";
+chr20 hg19_knownGene CDS 35545125 35545233 0.000000 - 1 gene_id "SAMHD1"; transcript_id "NM_015474:uc002xgh.2";
+chr20 hg19_knownGene exon 35545125 35545233 0.000000 - . gene_id "SAMHD1"; transcript_id "NM_015474:uc002xgh.2";
+chr20 hg19_knownGene CDS 35545352 35545452 0.000000 - 0 gene_id "SAMHD1"; transcript_id "NM_015474:uc002xgh.2";
+chr20 hg19_knownGene exon 35545352 35545452 0.000000 - . gene_id "SAMHD1"; transcript_id "NM_015474:uc002xgh.2";
+chr20 hg19_knownGene CDS 35547767 35547922 0.000000 - 0 gene_id "SAMHD1"; transcript_id "NM_015474:uc002xgh.2";
+chr20 hg19_knownGene exon 35547767 35547922 0.000000 - . gene_id "SAMHD1"; transcript_id "NM_015474:uc002xgh.2";
+chr20 hg19_knownGene CDS 35555585 35555655 0.000000 - 2 gene_id "SAMHD1"; transcript_id "NM_015474:uc002xgh.2";
+chr20 hg19_knownGene exon 35555585 35555655 0.000000 - . gene_id "SAMHD1"; transcript_id "NM_015474:uc002xgh.2";
+chr20 hg19_knownGene CDS 35559163 35559278 0.000000 - 1 gene_id "SAMHD1"; transcript_id "NM_015474:uc002xgh.2";
+chr20 hg19_knownGene exon 35559163 35559278 0.000000 - . gene_id "SAMHD1"; transcript_id "NM_015474:uc002xgh.2";
+chr20 hg19_knownGene CDS 35563432 35563592 0.000000 - 0 gene_id "SAMHD1"; transcript_id "NM_015474:uc002xgh.2";
+chr20 hg19_knownGene exon 35563432 35563592 0.000000 - . gene_id "SAMHD1"; transcript_id "NM_015474:uc002xgh.2";
+chr20 hg19_knownGene CDS 35569442 35569514 0.000000 - 1 gene_id "SAMHD1"; transcript_id "NM_015474:uc002xgh.2";
+chr20 hg19_knownGene exon 35569442 35569514 0.000000 - . gene_id "SAMHD1"; transcript_id "NM_015474:uc002xgh.2";
+chr20 hg19_knownGene CDS 35575141 35575207 0.000000 - 2 gene_id "SAMHD1"; transcript_id "NM_015474:uc002xgh.2";
+chr20 hg19_knownGene exon 35575141 35575207 0.000000 - . gene_id "SAMHD1"; transcript_id "NM_015474:uc002xgh.2";
+chr20 hg19_knownGene CDS 35579839 35580046 0.000000 - 0 gene_id "SAMHD1"; transcript_id "NM_015474:uc002xgh.2";
+chr20 hg19_knownGene exon 35579839 35580246 0.000000 - . gene_id "SAMHD1"; transcript_id "NM_015474:uc002xgh.2";
+chr20 hg19_knownGene exon 35629596 35630032 0.000000 - . gene_id "FKSG51"; transcript_id "AF336884:uc021wda.1";
+chr20 hg19_knownGene CDS 35627165 35627332 0.000000 - 0 gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene exon 35626178 35627332 0.000000 - . gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene CDS 35632105 35632269 0.000000 - 0 gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene exon 35632105 35632269 0.000000 - . gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene CDS 35635814 35635962 0.000000 - 2 gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene exon 35635814 35635962 0.000000 - . gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene CDS 35646682 35646772 0.000000 - 0 gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene exon 35646682 35646772 0.000000 - . gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene CDS 35649062 35649133 0.000000 - 0 gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene exon 35649062 35649133 0.000000 - . gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene CDS 35651053 35651229 0.000000 - 0 gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene exon 35651053 35651229 0.000000 - . gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene CDS 35661068 35661279 0.000000 - 2 gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene exon 35661068 35661279 0.000000 - . gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene CDS 35663645 35663911 0.000000 - 2 gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene exon 35663645 35663911 0.000000 - . gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene CDS 35668556 35668688 0.000000 - 0 gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene exon 35668556 35668688 0.000000 - . gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene CDS 35672489 35672653 0.000000 - 0 gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene exon 35672489 35672653 0.000000 - . gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene CDS 35675456 35675593 0.000000 - 0 gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene exon 35675456 35675593 0.000000 - . gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene CDS 35683956 35684059 0.000000 - 2 gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene exon 35683956 35684059 0.000000 - . gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene CDS 35684549 35684661 0.000000 - 1 gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene exon 35684549 35684661 0.000000 - . gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene CDS 35689506 35689672 0.000000 - 0 gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene exon 35689506 35689672 0.000000 - . gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene CDS 35690487 35690673 0.000000 - 1 gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene exon 35690487 35690673 0.000000 - . gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene CDS 35693827 35693876 0.000000 - 0 gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene exon 35693827 35693876 0.000000 - . gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene CDS 35695127 35695287 0.000000 - 2 gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene exon 35695127 35695287 0.000000 - . gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene CDS 35695396 35695524 0.000000 - 2 gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene exon 35695396 35695524 0.000000 - . gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene CDS 35695636 35695700 0.000000 - 1 gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene exon 35695636 35695700 0.000000 - . gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene CDS 35696389 35696589 0.000000 - 1 gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene exon 35696389 35696589 0.000000 - . gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene CDS 35717392 35717525 0.000000 - 0 gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene exon 35717392 35717525 0.000000 - . gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene CDS 35724176 35724331 0.000000 - 0 gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene exon 35724176 35724410 0.000000 - . gene_id "RBL1"; transcript_id "NM_002895:uc002xgi.3";
+chr20 hg19_knownGene CDS 35632099 35632269 0.000000 - 0 gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene exon 35631977 35632269 0.000000 - . gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene CDS 35635814 35635962 0.000000 - 2 gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene exon 35635814 35635962 0.000000 - . gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene CDS 35646682 35646772 0.000000 - 0 gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene exon 35646682 35646772 0.000000 - . gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene CDS 35649062 35649133 0.000000 - 0 gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene exon 35649062 35649133 0.000000 - . gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene CDS 35651053 35651229 0.000000 - 0 gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene exon 35651053 35651229 0.000000 - . gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene CDS 35661068 35661279 0.000000 - 2 gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene exon 35661068 35661279 0.000000 - . gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene CDS 35663645 35663911 0.000000 - 2 gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene exon 35663645 35663911 0.000000 - . gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene CDS 35668556 35668688 0.000000 - 0 gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene exon 35668556 35668688 0.000000 - . gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene CDS 35672489 35672653 0.000000 - 0 gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene exon 35672489 35672653 0.000000 - . gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene CDS 35675456 35675593 0.000000 - 0 gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene exon 35675456 35675593 0.000000 - . gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene CDS 35683956 35684059 0.000000 - 2 gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene exon 35683956 35684059 0.000000 - . gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene CDS 35684549 35684661 0.000000 - 1 gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene exon 35684549 35684661 0.000000 - . gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene CDS 35689506 35689672 0.000000 - 0 gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene exon 35689506 35689672 0.000000 - . gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene CDS 35690487 35690673 0.000000 - 1 gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene exon 35690487 35690673 0.000000 - . gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene CDS 35693827 35693876 0.000000 - 0 gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene exon 35693827 35693876 0.000000 - . gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene CDS 35695127 35695287 0.000000 - 2 gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene exon 35695127 35695287 0.000000 - . gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene CDS 35695396 35695524 0.000000 - 2 gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene exon 35695396 35695524 0.000000 - . gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene CDS 35695636 35695700 0.000000 - 1 gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene exon 35695636 35695700 0.000000 - . gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene CDS 35696389 35696589 0.000000 - 1 gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene exon 35696389 35696589 0.000000 - . gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene CDS 35717392 35717525 0.000000 - 0 gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene exon 35717392 35717525 0.000000 - . gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene CDS 35724176 35724331 0.000000 - 0 gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene exon 35724176 35724410 0.000000 - . gene_id "RBL1"; transcript_id "NM_183404:uc002xgj.1";
+chr20 hg19_knownGene exon 35684549 35684661 0.000000 - . gene_id "RBL1"; transcript_id "AK310870:uc010gfv.1";
+chr20 hg19_knownGene exon 35689506 35689672 0.000000 - . gene_id "RBL1"; transcript_id "AK310870:uc010gfv.1";
+chr20 hg19_knownGene exon 35690349 35690673 0.000000 - . gene_id "RBL1"; transcript_id "AK310870:uc010gfv.1";
+chr20 hg19_knownGene exon 35693827 35693876 0.000000 - . gene_id "RBL1"; transcript_id "AK310870:uc010gfv.1";
+chr20 hg19_knownGene exon 35695127 35695287 0.000000 - . gene_id "RBL1"; transcript_id "AK310870:uc010gfv.1";
+chr20 hg19_knownGene exon 35695396 35695524 0.000000 - . gene_id "RBL1"; transcript_id "AK310870:uc010gfv.1";
+chr20 hg19_knownGene exon 35695636 35695700 0.000000 - . gene_id "RBL1"; transcript_id "AK310870:uc010gfv.1";
+chr20 hg19_knownGene exon 35696389 35696589 0.000000 - . gene_id "RBL1"; transcript_id "AK310870:uc010gfv.1";
+chr20 hg19_knownGene exon 35717392 35717525 0.000000 - . gene_id "RBL1"; transcript_id "AK310870:uc010gfv.1";
+chr20 hg19_knownGene exon 35724176 35724410 0.000000 - . gene_id "RBL1"; transcript_id "AK310870:uc010gfv.1";
+chr20 hg19_knownGene exon 35729629 35729821 0.000000 - . gene_id "C20orf132"; transcript_id "AL833864:uc002xgk.3";
+chr20 hg19_knownGene CDS 35731093 35731238 0.000000 - 2 gene_id "C20orf132"; transcript_id "AL833864:uc002xgk.3";
+chr20 hg19_knownGene exon 35731067 35731238 0.000000 - . gene_id "C20orf132"; transcript_id "AL833864:uc002xgk.3";
+chr20 hg19_knownGene CDS 35737002 35737067 0.000000 - 2 gene_id "C20orf132"; transcript_id "AL833864:uc002xgk.3";
+chr20 hg19_knownGene exon 35737002 35737067 0.000000 - . gene_id "C20orf132"; transcript_id "AL833864:uc002xgk.3";
+chr20 hg19_knownGene CDS 35738659 35738758 0.000000 - 0 gene_id "C20orf132"; transcript_id "AL833864:uc002xgk.3";
+chr20 hg19_knownGene exon 35738659 35738758 0.000000 - . gene_id "C20orf132"; transcript_id "AL833864:uc002xgk.3";
+chr20 hg19_knownGene CDS 35740727 35740849 0.000000 - 0 gene_id "C20orf132"; transcript_id "AL833864:uc002xgk.3";
+chr20 hg19_knownGene exon 35740727 35740849 0.000000 - . gene_id "C20orf132"; transcript_id "AL833864:uc002xgk.3";
+chr20 hg19_knownGene CDS 35742393 35742548 0.000000 - 0 gene_id "C20orf132"; transcript_id "AL833864:uc002xgk.3";
+chr20 hg19_knownGene exon 35742393 35742548 0.000000 - . gene_id "C20orf132"; transcript_id "AL833864:uc002xgk.3";
+chr20 hg19_knownGene CDS 35743576 35743740 0.000000 - 0 gene_id "C20orf132"; transcript_id "AL833864:uc002xgk.3";
+chr20 hg19_knownGene exon 35743576 35743740 0.000000 - . gene_id "C20orf132"; transcript_id "AL833864:uc002xgk.3";
+chr20 hg19_knownGene CDS 35748101 35748241 0.000000 - 0 gene_id "C20orf132"; transcript_id "AL833864:uc002xgk.3";
+chr20 hg19_knownGene exon 35748101 35748241 0.000000 - . gene_id "C20orf132"; transcript_id "AL833864:uc002xgk.3";
+chr20 hg19_knownGene CDS 35748907 35749021 0.000000 - 1 gene_id "C20orf132"; transcript_id "AL833864:uc002xgk.3";
+chr20 hg19_knownGene exon 35748907 35749021 0.000000 - . gene_id "C20orf132"; transcript_id "AL833864:uc002xgk.3";
+chr20 hg19_knownGene CDS 35749302 35749439 0.000000 - 1 gene_id "C20orf132"; transcript_id "AL833864:uc002xgk.3";
+chr20 hg19_knownGene exon 35749302 35749439 0.000000 - . gene_id "C20orf132"; transcript_id "AL833864:uc002xgk.3";
+chr20 hg19_knownGene CDS 35752012 35752202 0.000000 - 0 gene_id "C20orf132"; transcript_id "AL833864:uc002xgk.3";
+chr20 hg19_knownGene exon 35752012 35752202 0.000000 - . gene_id "C20orf132"; transcript_id "AL833864:uc002xgk.3";
+chr20 hg19_knownGene CDS 35757435 35757570 0.000000 - 1 gene_id "C20orf132"; transcript_id "AL833864:uc002xgk.3";
+chr20 hg19_knownGene exon 35757435 35757570 0.000000 - . gene_id "C20orf132"; transcript_id "AL833864:uc002xgk.3";
+chr20 hg19_knownGene CDS 35766213 35766373 0.000000 - 0 gene_id "C20orf132"; transcript_id "AL833864:uc002xgk.3";
+chr20 hg19_knownGene exon 35766213 35766373 0.000000 - . gene_id "C20orf132"; transcript_id "AL833864:uc002xgk.3";
+chr20 hg19_knownGene CDS 35772120 35772244 0.000000 - 2 gene_id "C20orf132"; transcript_id "AL833864:uc002xgk.3";
+chr20 hg19_knownGene exon 35772120 35772244 0.000000 - . gene_id "C20orf132"; transcript_id "AL833864:uc002xgk.3";
+chr20 hg19_knownGene CDS 35776177 35776312 0.000000 - 0 gene_id "C20orf132"; transcript_id "AL833864:uc002xgk.3";
+chr20 hg19_knownGene exon 35776177 35776312 0.000000 - . gene_id "C20orf132"; transcript_id "AL833864:uc002xgk.3";
+chr20 hg19_knownGene CDS 35786263 35786358 0.000000 - 0 gene_id "C20orf132"; transcript_id "AL833864:uc002xgk.3";
+chr20 hg19_knownGene exon 35786263 35786358 0.000000 - . gene_id "C20orf132"; transcript_id "AL833864:uc002xgk.3";
+chr20 hg19_knownGene CDS 35787295 35787321 0.000000 - 0 gene_id "C20orf132"; transcript_id "AL833864:uc002xgk.3";
+chr20 hg19_knownGene exon 35787295 35787439 0.000000 - . gene_id "C20orf132"; transcript_id "AL833864:uc002xgk.3";
+chr20 hg19_knownGene exon 35729629 35729821 0.000000 - . gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene CDS 35731093 35731238 0.000000 - 2 gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene exon 35731067 35731238 0.000000 - . gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene CDS 35737002 35737067 0.000000 - 2 gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene exon 35737002 35737067 0.000000 - . gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene CDS 35738659 35738758 0.000000 - 0 gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene exon 35738659 35738758 0.000000 - . gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene CDS 35740727 35740849 0.000000 - 0 gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene exon 35740727 35740849 0.000000 - . gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene CDS 35742393 35742548 0.000000 - 0 gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene exon 35742393 35742548 0.000000 - . gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene CDS 35743576 35743740 0.000000 - 0 gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene exon 35743576 35743740 0.000000 - . gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene CDS 35748101 35748241 0.000000 - 0 gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene exon 35748101 35748241 0.000000 - . gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene CDS 35748907 35749021 0.000000 - 1 gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene exon 35748907 35749021 0.000000 - . gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene CDS 35749302 35749439 0.000000 - 1 gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene exon 35749302 35749439 0.000000 - . gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene CDS 35752012 35752202 0.000000 - 0 gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene exon 35752012 35752202 0.000000 - . gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene CDS 35757435 35757570 0.000000 - 1 gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene exon 35757435 35757570 0.000000 - . gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene CDS 35766213 35766373 0.000000 - 0 gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene exon 35766213 35766373 0.000000 - . gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene CDS 35769565 35769717 0.000000 - 0 gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene exon 35769565 35769717 0.000000 - . gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene CDS 35772120 35772244 0.000000 - 2 gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene exon 35772120 35772244 0.000000 - . gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene CDS 35776177 35776312 0.000000 - 0 gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene exon 35776177 35776312 0.000000 - . gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene CDS 35783466 35783570 0.000000 - 0 gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene exon 35783466 35783570 0.000000 - . gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene CDS 35786263 35786358 0.000000 - 0 gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene exon 35786263 35786358 0.000000 - . gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene CDS 35787295 35787439 0.000000 - 1 gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene exon 35787295 35787439 0.000000 - . gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene CDS 35788500 35788579 0.000000 - 0 gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene exon 35788500 35788579 0.000000 - . gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene CDS 35796524 35796646 0.000000 - 0 gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene exon 35796524 35796646 0.000000 - . gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene CDS 35800315 35800460 0.000000 - 2 gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene exon 35800315 35800460 0.000000 - . gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene CDS 35802398 35802519 0.000000 - 1 gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene exon 35802398 35802519 0.000000 - . gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene CDS 35807626 35807790 0.000000 - 1 gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene exon 35807626 35807790 0.000000 - . gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene CDS 35807791 35807792 0.000000 - 0 gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene exon 35807791 35807792 0.000000 - . gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene CDS 35807794 35807883 0.000000 - 0 gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene exon 35807794 35807974 0.000000 - . gene_id "C20orf132"; transcript_id "NM_152503:uc010zvu.2";
+chr20 hg19_knownGene CDS 35757426 35757570 0.000000 - 1 gene_id "C20orf132"; transcript_id "NM_213631:uc002xgm.2";
+chr20 hg19_knownGene exon 35757224 35757570 0.000000 - . gene_id "C20orf132"; transcript_id "NM_213631:uc002xgm.2";
+chr20 hg19_knownGene CDS 35766213 35766373 0.000000 - 0 gene_id "C20orf132"; transcript_id "NM_213631:uc002xgm.2";
+chr20 hg19_knownGene exon 35766213 35766373 0.000000 - . gene_id "C20orf132"; transcript_id "NM_213631:uc002xgm.2";
+chr20 hg19_knownGene CDS 35769565 35769717 0.000000 - 0 gene_id "C20orf132"; transcript_id "NM_213631:uc002xgm.2";
+chr20 hg19_knownGene exon 35769565 35769717 0.000000 - . gene_id "C20orf132"; transcript_id "NM_213631:uc002xgm.2";
+chr20 hg19_knownGene CDS 35772120 35772244 0.000000 - 2 gene_id "C20orf132"; transcript_id "NM_213631:uc002xgm.2";
+chr20 hg19_knownGene exon 35772120 35772244 0.000000 - . gene_id "C20orf132"; transcript_id "NM_213631:uc002xgm.2";
+chr20 hg19_knownGene CDS 35776177 35776312 0.000000 - 0 gene_id "C20orf132"; transcript_id "NM_213631:uc002xgm.2";
+chr20 hg19_knownGene exon 35776177 35776312 0.000000 - . gene_id "C20orf132"; transcript_id "NM_213631:uc002xgm.2";
+chr20 hg19_knownGene CDS 35783466 35783570 0.000000 - 0 gene_id "C20orf132"; transcript_id "NM_213631:uc002xgm.2";
+chr20 hg19_knownGene exon 35783466 35783570 0.000000 - . gene_id "C20orf132"; transcript_id "NM_213631:uc002xgm.2";
+chr20 hg19_knownGene CDS 35786263 35786358 0.000000 - 0 gene_id "C20orf132"; transcript_id "NM_213631:uc002xgm.2";
+chr20 hg19_knownGene exon 35786263 35786358 0.000000 - . gene_id "C20orf132"; transcript_id "NM_213631:uc002xgm.2";
+chr20 hg19_knownGene CDS 35787295 35787439 0.000000 - 1 gene_id "C20orf132"; transcript_id "NM_213631:uc002xgm.2";
+chr20 hg19_knownGene exon 35787295 35787439 0.000000 - . gene_id "C20orf132"; transcript_id "NM_213631:uc002xgm.2";
+chr20 hg19_knownGene CDS 35788500 35788579 0.000000 - 0 gene_id "C20orf132"; transcript_id "NM_213631:uc002xgm.2";
+chr20 hg19_knownGene exon 35788500 35788579 0.000000 - . gene_id "C20orf132"; transcript_id "NM_213631:uc002xgm.2";
+chr20 hg19_knownGene CDS 35796524 35796646 0.000000 - 0 gene_id "C20orf132"; transcript_id "NM_213631:uc002xgm.2";
+chr20 hg19_knownGene exon 35796524 35796646 0.000000 - . gene_id "C20orf132"; transcript_id "NM_213631:uc002xgm.2";
+chr20 hg19_knownGene CDS 35800315 35800460 0.000000 - 2 gene_id "C20orf132"; transcript_id "NM_213631:uc002xgm.2";
+chr20 hg19_knownGene exon 35800315 35800460 0.000000 - . gene_id "C20orf132"; transcript_id "NM_213631:uc002xgm.2";
+chr20 hg19_knownGene CDS 35802398 35802519 0.000000 - 1 gene_id "C20orf132"; transcript_id "NM_213631:uc002xgm.2";
+chr20 hg19_knownGene exon 35802398 35802519 0.000000 - . gene_id "C20orf132"; transcript_id "NM_213631:uc002xgm.2";
+chr20 hg19_knownGene CDS 35807626 35807790 0.000000 - 1 gene_id "C20orf132"; transcript_id "NM_213631:uc002xgm.2";
+chr20 hg19_knownGene exon 35807626 35807790 0.000000 - . gene_id "C20orf132"; transcript_id "NM_213631:uc002xgm.2";
+chr20 hg19_knownGene CDS 35807791 35807792 0.000000 - 0 gene_id "C20orf132"; transcript_id "NM_213631:uc002xgm.2";
+chr20 hg19_knownGene exon 35807791 35807792 0.000000 - . gene_id "C20orf132"; transcript_id "NM_213631:uc002xgm.2";
+chr20 hg19_knownGene CDS 35807794 35807883 0.000000 - 0 gene_id "C20orf132"; transcript_id "NM_213631:uc002xgm.2";
+chr20 hg19_knownGene exon 35807794 35807974 0.000000 - . gene_id "C20orf132"; transcript_id "NM_213631:uc002xgm.2";
+chr20 hg19_knownGene CDS 35757426 35757570 0.000000 - 1 gene_id "C20orf132"; transcript_id "NM_213632:uc002xgn.2";
+chr20 hg19_knownGene exon 35757224 35757570 0.000000 - . gene_id "C20orf132"; transcript_id "NM_213632:uc002xgn.2";
+chr20 hg19_knownGene CDS 35766213 35766373 0.000000 - 0 gene_id "C20orf132"; transcript_id "NM_213632:uc002xgn.2";
+chr20 hg19_knownGene exon 35766213 35766373 0.000000 - . gene_id "C20orf132"; transcript_id "NM_213632:uc002xgn.2";
+chr20 hg19_knownGene CDS 35769565 35769717 0.000000 - 0 gene_id "C20orf132"; transcript_id "NM_213632:uc002xgn.2";
+chr20 hg19_knownGene exon 35769565 35769717 0.000000 - . gene_id "C20orf132"; transcript_id "NM_213632:uc002xgn.2";
+chr20 hg19_knownGene CDS 35772120 35772244 0.000000 - 2 gene_id "C20orf132"; transcript_id "NM_213632:uc002xgn.2";
+chr20 hg19_knownGene exon 35772120 35772244 0.000000 - . gene_id "C20orf132"; transcript_id "NM_213632:uc002xgn.2";
+chr20 hg19_knownGene CDS 35776177 35776312 0.000000 - 0 gene_id "C20orf132"; transcript_id "NM_213632:uc002xgn.2";
+chr20 hg19_knownGene exon 35776177 35776312 0.000000 - . gene_id "C20orf132"; transcript_id "NM_213632:uc002xgn.2";
+chr20 hg19_knownGene CDS 35786263 35786358 0.000000 - 0 gene_id "C20orf132"; transcript_id "NM_213632:uc002xgn.2";
+chr20 hg19_knownGene exon 35786263 35786358 0.000000 - . gene_id "C20orf132"; transcript_id "NM_213632:uc002xgn.2";
+chr20 hg19_knownGene CDS 35787295 35787439 0.000000 - 1 gene_id "C20orf132"; transcript_id "NM_213632:uc002xgn.2";
+chr20 hg19_knownGene exon 35787295 35787439 0.000000 - . gene_id "C20orf132"; transcript_id "NM_213632:uc002xgn.2";
+chr20 hg19_knownGene CDS 35788500 35788579 0.000000 - 0 gene_id "C20orf132"; transcript_id "NM_213632:uc002xgn.2";
+chr20 hg19_knownGene exon 35788500 35788579 0.000000 - . gene_id "C20orf132"; transcript_id "NM_213632:uc002xgn.2";
+chr20 hg19_knownGene CDS 35796524 35796646 0.000000 - 0 gene_id "C20orf132"; transcript_id "NM_213632:uc002xgn.2";
+chr20 hg19_knownGene exon 35796524 35796646 0.000000 - . gene_id "C20orf132"; transcript_id "NM_213632:uc002xgn.2";
+chr20 hg19_knownGene CDS 35800315 35800460 0.000000 - 2 gene_id "C20orf132"; transcript_id "NM_213632:uc002xgn.2";
+chr20 hg19_knownGene exon 35800315 35800460 0.000000 - . gene_id "C20orf132"; transcript_id "NM_213632:uc002xgn.2";
+chr20 hg19_knownGene CDS 35802398 35802519 0.000000 - 1 gene_id "C20orf132"; transcript_id "NM_213632:uc002xgn.2";
+chr20 hg19_knownGene exon 35802398 35802519 0.000000 - . gene_id "C20orf132"; transcript_id "NM_213632:uc002xgn.2";
+chr20 hg19_knownGene CDS 35807626 35807790 0.000000 - 1 gene_id "C20orf132"; transcript_id "NM_213632:uc002xgn.2";
+chr20 hg19_knownGene exon 35807626 35807790 0.000000 - . gene_id "C20orf132"; transcript_id "NM_213632:uc002xgn.2";
+chr20 hg19_knownGene CDS 35807791 35807792 0.000000 - 0 gene_id "C20orf132"; transcript_id "NM_213632:uc002xgn.2";
+chr20 hg19_knownGene exon 35807791 35807792 0.000000 - . gene_id "C20orf132"; transcript_id "NM_213632:uc002xgn.2";
+chr20 hg19_knownGene CDS 35807794 35807883 0.000000 - 0 gene_id "C20orf132"; transcript_id "NM_213632:uc002xgn.2";
+chr20 hg19_knownGene exon 35807794 35807974 0.000000 - . gene_id "C20orf132"; transcript_id "NM_213632:uc002xgn.2";
+chr20 hg19_knownGene exon 35807456 35807772 0.000000 + . gene_id "RPN2"; transcript_id "AK308683:uc010gfw.2";
+chr20 hg19_knownGene CDS 35812769 35812776 0.000000 + 0 gene_id "RPN2"; transcript_id "AK308683:uc010gfw.2";
+chr20 hg19_knownGene exon 35812583 35812776 0.000000 + . gene_id "RPN2"; transcript_id "AK308683:uc010gfw.2";
+chr20 hg19_knownGene CDS 35832288 35832363 0.000000 + 1 gene_id "RPN2"; transcript_id "AK308683:uc010gfw.2";
+chr20 hg19_knownGene exon 35832288 35832363 0.000000 + . gene_id "RPN2"; transcript_id "AK308683:uc010gfw.2";
+chr20 hg19_knownGene CDS 35833170 35833304 0.000000 + 0 gene_id "RPN2"; transcript_id "AK308683:uc010gfw.2";
+chr20 hg19_knownGene exon 35833170 35833304 0.000000 + . gene_id "RPN2"; transcript_id "AK308683:uc010gfw.2";
+chr20 hg19_knownGene CDS 35835676 35835852 0.000000 + 0 gene_id "RPN2"; transcript_id "AK308683:uc010gfw.2";
+chr20 hg19_knownGene exon 35835676 35835852 0.000000 + . gene_id "RPN2"; transcript_id "AK308683:uc010gfw.2";
+chr20 hg19_knownGene CDS 35838450 35838568 0.000000 + 0 gene_id "RPN2"; transcript_id "AK308683:uc010gfw.2";
+chr20 hg19_knownGene exon 35838450 35838568 0.000000 + . gene_id "RPN2"; transcript_id "AK308683:uc010gfw.2";
+chr20 hg19_knownGene CDS 35842163 35842268 0.000000 + 1 gene_id "RPN2"; transcript_id "AK308683:uc010gfw.2";
+chr20 hg19_knownGene exon 35842163 35842268 0.000000 + . gene_id "RPN2"; transcript_id "AK308683:uc010gfw.2";
+chr20 hg19_knownGene CDS 35852281 35852372 0.000000 + 0 gene_id "RPN2"; transcript_id "AK308683:uc010gfw.2";
+chr20 hg19_knownGene exon 35852281 35852372 0.000000 + . gene_id "RPN2"; transcript_id "AK308683:uc010gfw.2";
+chr20 hg19_knownGene CDS 35854091 35854205 0.000000 + 1 gene_id "RPN2"; transcript_id "AK308683:uc010gfw.2";
+chr20 hg19_knownGene exon 35854091 35854205 0.000000 + . gene_id "RPN2"; transcript_id "AK308683:uc010gfw.2";
+chr20 hg19_knownGene CDS 35856953 35857156 0.000000 + 0 gene_id "RPN2"; transcript_id "AK308683:uc010gfw.2";
+chr20 hg19_knownGene exon 35856953 35857711 0.000000 + . gene_id "RPN2"; transcript_id "AK308683:uc010gfw.2";
+chr20 hg19_knownGene exon 35826800 35826895 0.000000 + . gene_id "RPN2"; transcript_id "AK296126:uc021wdb.1";
+chr20 hg19_knownGene exon 35827453 35827628 0.000000 + . gene_id "RPN2"; transcript_id "AK296126:uc021wdb.1";
+chr20 hg19_knownGene exon 35832288 35832363 0.000000 + . gene_id "RPN2"; transcript_id "AK296126:uc021wdb.1";
+chr20 hg19_knownGene CDS 35833269 35833304 0.000000 + 0 gene_id "RPN2"; transcript_id "AK296126:uc021wdb.1";
+chr20 hg19_knownGene exon 35833170 35833304 0.000000 + . gene_id "RPN2"; transcript_id "AK296126:uc021wdb.1";
+chr20 hg19_knownGene CDS 35835676 35835852 0.000000 + 0 gene_id "RPN2"; transcript_id "AK296126:uc021wdb.1";
+chr20 hg19_knownGene exon 35835676 35835852 0.000000 + . gene_id "RPN2"; transcript_id "AK296126:uc021wdb.1";
+chr20 hg19_knownGene CDS 35838450 35838568 0.000000 + 0 gene_id "RPN2"; transcript_id "AK296126:uc021wdb.1";
+chr20 hg19_knownGene exon 35838450 35838568 0.000000 + . gene_id "RPN2"; transcript_id "AK296126:uc021wdb.1";
+chr20 hg19_knownGene CDS 35842163 35842268 0.000000 + 1 gene_id "RPN2"; transcript_id "AK296126:uc021wdb.1";
+chr20 hg19_knownGene exon 35842163 35842268 0.000000 + . gene_id "RPN2"; transcript_id "AK296126:uc021wdb.1";
+chr20 hg19_knownGene CDS 35852281 35852372 0.000000 + 0 gene_id "RPN2"; transcript_id "AK296126:uc021wdb.1";
+chr20 hg19_knownGene exon 35852281 35852372 0.000000 + . gene_id "RPN2"; transcript_id "AK296126:uc021wdb.1";
+chr20 hg19_knownGene CDS 35854091 35854205 0.000000 + 1 gene_id "RPN2"; transcript_id "AK296126:uc021wdb.1";
+chr20 hg19_knownGene exon 35854091 35854205 0.000000 + . gene_id "RPN2"; transcript_id "AK296126:uc021wdb.1";
+chr20 hg19_knownGene CDS 35856953 35857156 0.000000 + 0 gene_id "RPN2"; transcript_id "AK296126:uc021wdb.1";
+chr20 hg19_knownGene exon 35856953 35857711 0.000000 + . gene_id "RPN2"; transcript_id "AK296126:uc021wdb.1";
+chr20 hg19_knownGene CDS 35807760 35807772 0.000000 + 0 gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene exon 35807456 35807772 0.000000 + . gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene CDS 35812583 35812776 0.000000 + 2 gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene exon 35812583 35812776 0.000000 + . gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene CDS 35827453 35827628 0.000000 + 0 gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene exon 35827453 35827628 0.000000 + . gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene CDS 35832288 35832363 0.000000 + 1 gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene exon 35832288 35832363 0.000000 + . gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene CDS 35833170 35833304 0.000000 + 0 gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene exon 35833170 35833304 0.000000 + . gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene CDS 35835676 35835852 0.000000 + 0 gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene exon 35835676 35835852 0.000000 + . gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene CDS 35838450 35838568 0.000000 + 0 gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene exon 35838450 35838568 0.000000 + . gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene CDS 35842163 35842268 0.000000 + 1 gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene exon 35842163 35842268 0.000000 + . gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene CDS 35852281 35852372 0.000000 + 0 gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene exon 35852281 35852372 0.000000 + . gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene CDS 35854091 35854205 0.000000 + 1 gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene exon 35854091 35854205 0.000000 + . gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene CDS 35856953 35857147 0.000000 + 0 gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene exon 35856953 35857147 0.000000 + . gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene CDS 35858376 35858462 0.000000 + 0 gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene exon 35858376 35858462 0.000000 + . gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene CDS 35860699 35860794 0.000000 + 0 gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene exon 35860699 35860794 0.000000 + . gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene CDS 35862423 35862498 0.000000 + 0 gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene exon 35862423 35862498 0.000000 + . gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene CDS 35864983 35865112 0.000000 + 2 gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene exon 35864983 35865112 0.000000 + . gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene CDS 35866805 35866852 0.000000 + 1 gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene exon 35866805 35866852 0.000000 + . gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene CDS 35869706 35869715 0.000000 + 1 gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene exon 35869706 35870025 0.000000 + . gene_id "RPN2"; transcript_id "NM_001135771:uc002xgq.3";
+chr20 hg19_knownGene CDS 35807760 35807772 0.000000 + 0 gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene exon 35807456 35807772 0.000000 + . gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene CDS 35812583 35812776 0.000000 + 2 gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene exon 35812583 35812776 0.000000 + . gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene CDS 35826800 35826895 0.000000 + 0 gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene exon 35826800 35826895 0.000000 + . gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene CDS 35827453 35827628 0.000000 + 0 gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene exon 35827453 35827628 0.000000 + . gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene CDS 35832288 35832363 0.000000 + 1 gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene exon 35832288 35832363 0.000000 + . gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene CDS 35833170 35833304 0.000000 + 0 gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene exon 35833170 35833304 0.000000 + . gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene CDS 35835676 35835852 0.000000 + 0 gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene exon 35835676 35835852 0.000000 + . gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene CDS 35838450 35838568 0.000000 + 0 gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene exon 35838450 35838568 0.000000 + . gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene CDS 35842163 35842268 0.000000 + 1 gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene exon 35842163 35842268 0.000000 + . gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene CDS 35852281 35852372 0.000000 + 0 gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene exon 35852281 35852372 0.000000 + . gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene CDS 35854091 35854205 0.000000 + 1 gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene exon 35854091 35854205 0.000000 + . gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene CDS 35856953 35857147 0.000000 + 0 gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene exon 35856953 35857147 0.000000 + . gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene CDS 35858376 35858462 0.000000 + 0 gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene exon 35858376 35858462 0.000000 + . gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene CDS 35860699 35860794 0.000000 + 0 gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene exon 35860699 35860794 0.000000 + . gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene CDS 35862423 35862498 0.000000 + 0 gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene exon 35862423 35862498 0.000000 + . gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene CDS 35864983 35865112 0.000000 + 2 gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene exon 35864983 35865112 0.000000 + . gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene CDS 35869706 35869715 0.000000 + 1 gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene exon 35869706 35870025 0.000000 + . gene_id "RPN2"; transcript_id "NM_002951:uc002xgp.3";
+chr20 hg19_knownGene CDS 35879619 35879631 0.000000 - 1 gene_id "GHRH"; transcript_id "NM_001184731:uc021wdc.1";
+chr20 hg19_knownGene exon 35879490 35879631 0.000000 - . gene_id "GHRH"; transcript_id "NM_001184731:uc021wdc.1";
+chr20 hg19_knownGene CDS 35882613 35882732 0.000000 - 1 gene_id "GHRH"; transcript_id "NM_001184731:uc021wdc.1";
+chr20 hg19_knownGene exon 35882613 35882732 0.000000 - . gene_id "GHRH"; transcript_id "NM_001184731:uc021wdc.1";
+chr20 hg19_knownGene CDS 35884797 35884901 0.000000 - 1 gene_id "GHRH"; transcript_id "NM_001184731:uc021wdc.1";
+chr20 hg19_knownGene exon 35884797 35884901 0.000000 - . gene_id "GHRH"; transcript_id "NM_001184731:uc021wdc.1";
+chr20 hg19_knownGene CDS 35885210 35885292 0.000000 - 0 gene_id "GHRH"; transcript_id "NM_001184731:uc021wdc.1";
+chr20 hg19_knownGene exon 35885210 35885311 0.000000 - . gene_id "GHRH"; transcript_id "NM_001184731:uc021wdc.1";
+chr20 hg19_knownGene CDS 35879619 35879634 0.000000 - 1 gene_id "GHRH"; transcript_id "NM_021081:uc002xgr.3";
+chr20 hg19_knownGene exon 35879490 35879634 0.000000 - . gene_id "GHRH"; transcript_id "NM_021081:uc002xgr.3";
+chr20 hg19_knownGene CDS 35882613 35882732 0.000000 - 1 gene_id "GHRH"; transcript_id "NM_021081:uc002xgr.3";
+chr20 hg19_knownGene exon 35882613 35882732 0.000000 - . gene_id "GHRH"; transcript_id "NM_021081:uc002xgr.3";
+chr20 hg19_knownGene CDS 35884797 35884901 0.000000 - 1 gene_id "GHRH"; transcript_id "NM_021081:uc002xgr.3";
+chr20 hg19_knownGene exon 35884797 35884901 0.000000 - . gene_id "GHRH"; transcript_id "NM_021081:uc002xgr.3";
+chr20 hg19_knownGene CDS 35885210 35885292 0.000000 - 0 gene_id "GHRH"; transcript_id "NM_021081:uc002xgr.3";
+chr20 hg19_knownGene exon 35885210 35885311 0.000000 - . gene_id "GHRH"; transcript_id "NM_021081:uc002xgr.3";
+chr20 hg19_knownGene CDS 35879619 35879631 0.000000 - 1 gene_id "GHRH"; transcript_id "E00274:uc002xgt.3";
+chr20 hg19_knownGene exon 35879490 35879631 0.000000 - . gene_id "GHRH"; transcript_id "E00274:uc002xgt.3";
+chr20 hg19_knownGene CDS 35882613 35882732 0.000000 - 1 gene_id "GHRH"; transcript_id "E00274:uc002xgt.3";
+chr20 hg19_knownGene exon 35882613 35882732 0.000000 - . gene_id "GHRH"; transcript_id "E00274:uc002xgt.3";
+chr20 hg19_knownGene CDS 35884797 35884901 0.000000 - 1 gene_id "GHRH"; transcript_id "E00274:uc002xgt.3";
+chr20 hg19_knownGene exon 35884797 35884901 0.000000 - . gene_id "GHRH"; transcript_id "E00274:uc002xgt.3";
+chr20 hg19_knownGene CDS 35885210 35885292 0.000000 - 0 gene_id "GHRH"; transcript_id "E00274:uc002xgt.3";
+chr20 hg19_knownGene exon 35885210 35885311 0.000000 - . gene_id "GHRH"; transcript_id "E00274:uc002xgt.3";
+chr20 hg19_knownGene exon 35890146 35890238 0.000000 - . gene_id "GHRH"; transcript_id "E00274:uc002xgt.3";
+chr20 hg19_knownGene CDS 35879619 35879634 0.000000 - 1 gene_id "GHRH"; transcript_id "E00273:uc002xgs.3";
+chr20 hg19_knownGene exon 35879490 35879634 0.000000 - . gene_id "GHRH"; transcript_id "E00273:uc002xgs.3";
+chr20 hg19_knownGene CDS 35882613 35882732 0.000000 - 1 gene_id "GHRH"; transcript_id "E00273:uc002xgs.3";
+chr20 hg19_knownGene exon 35882613 35882732 0.000000 - . gene_id "GHRH"; transcript_id "E00273:uc002xgs.3";
+chr20 hg19_knownGene CDS 35884797 35884901 0.000000 - 1 gene_id "GHRH"; transcript_id "E00273:uc002xgs.3";
+chr20 hg19_knownGene exon 35884797 35884901 0.000000 - . gene_id "GHRH"; transcript_id "E00273:uc002xgs.3";
+chr20 hg19_knownGene CDS 35885210 35885292 0.000000 - 0 gene_id "GHRH"; transcript_id "E00273:uc002xgs.3";
+chr20 hg19_knownGene exon 35885210 35885311 0.000000 - . gene_id "GHRH"; transcript_id "E00273:uc002xgs.3";
+chr20 hg19_knownGene exon 35890146 35890238 0.000000 - . gene_id "GHRH"; transcript_id "E00273:uc002xgs.3";
+chr20 hg19_knownGene exon 35918051 35918089 0.000000 + . gene_id "MANBAL"; transcript_id "NM_022077:uc002xgu.3";
+chr20 hg19_knownGene exon 35927166 35927282 0.000000 + . gene_id "MANBAL"; transcript_id "NM_022077:uc002xgu.3";
+chr20 hg19_knownGene CDS 35929667 35929816 0.000000 + 0 gene_id "MANBAL"; transcript_id "NM_022077:uc002xgu.3";
+chr20 hg19_knownGene exon 35929611 35929816 0.000000 + . gene_id "MANBAL"; transcript_id "NM_022077:uc002xgu.3";
+chr20 hg19_knownGene CDS 35944711 35944815 0.000000 + 0 gene_id "MANBAL"; transcript_id "NM_022077:uc002xgu.3";
+chr20 hg19_knownGene exon 35944711 35945663 0.000000 + . gene_id "MANBAL"; transcript_id "NM_022077:uc002xgu.3";
+chr20 hg19_knownGene exon 35918051 35918089 0.000000 + . gene_id "MANBAL"; transcript_id "NM_001003897:uc002xgv.3";
+chr20 hg19_knownGene CDS 35929667 35929816 0.000000 + 0 gene_id "MANBAL"; transcript_id "NM_001003897:uc002xgv.3";
+chr20 hg19_knownGene exon 35929611 35929816 0.000000 + . gene_id "MANBAL"; transcript_id "NM_001003897:uc002xgv.3";
+chr20 hg19_knownGene CDS 35944711 35944815 0.000000 + 0 gene_id "MANBAL"; transcript_id "NM_001003897:uc002xgv.3";
+chr20 hg19_knownGene exon 35944711 35945663 0.000000 + . gene_id "MANBAL"; transcript_id "NM_001003897:uc002xgv.3";
+chr20 hg19_knownGene exon 35918051 35918089 0.000000 + . gene_id "MANBAL"; transcript_id "BC016822:uc002xgw.3";
+chr20 hg19_knownGene exon 35925699 35925937 0.000000 + . gene_id "MANBAL"; transcript_id "BC016822:uc002xgw.3";
+chr20 hg19_knownGene exon 35927166 35927282 0.000000 + . gene_id "MANBAL"; transcript_id "BC016822:uc002xgw.3";
+chr20 hg19_knownGene exon 35929611 35929816 0.000000 + . gene_id "MANBAL"; transcript_id "BC016822:uc002xgw.3";
+chr20 hg19_knownGene exon 35944711 35945663 0.000000 + . gene_id "MANBAL"; transcript_id "BC016822:uc002xgw.3";
+chr20 hg19_knownGene exon 36031514 36033817 0.000000 + . gene_id "AX747164"; transcript_id "AX747164:uc021wdd.1";
+chr20 hg19_knownGene exon 35973088 35973290 0.000000 + . gene_id "SRC"; transcript_id "NM_005417:uc002xgx.3";
+chr20 hg19_knownGene exon 35993607 35993680 0.000000 + . gene_id "SRC"; transcript_id "NM_005417:uc002xgx.3";
+chr20 hg19_knownGene exon 36011022 36011189 0.000000 + . gene_id "SRC"; transcript_id "NM_005417:uc002xgx.3";
+chr20 hg19_knownGene CDS 36012557 36012806 0.000000 + 0 gene_id "SRC"; transcript_id "NM_005417:uc002xgx.3";
+chr20 hg19_knownGene exon 36012553 36012806 0.000000 + . gene_id "SRC"; transcript_id "NM_005417:uc002xgx.3";
+chr20 hg19_knownGene CDS 36014478 36014577 0.000000 + 2 gene_id "SRC"; transcript_id "NM_005417:uc002xgx.3";
+chr20 hg19_knownGene exon 36014478 36014577 0.000000 + . gene_id "SRC"; transcript_id "NM_005417:uc002xgx.3";
+chr20 hg19_knownGene CDS 36022298 36022396 0.000000 + 1 gene_id "SRC"; transcript_id "NM_005417:uc002xgx.3";
+chr20 hg19_knownGene exon 36022298 36022396 0.000000 + . gene_id "SRC"; transcript_id "NM_005417:uc002xgx.3";
+chr20 hg19_knownGene CDS 36022577 36022680 0.000000 + 1 gene_id "SRC"; transcript_id "NM_005417:uc002xgx.3";
+chr20 hg19_knownGene exon 36022577 36022680 0.000000 + . gene_id "SRC"; transcript_id "NM_005417:uc002xgx.3";
+chr20 hg19_knownGene CDS 36024565 36024714 0.000000 + 2 gene_id "SRC"; transcript_id "NM_005417:uc002xgx.3";
+chr20 hg19_knownGene exon 36024565 36024714 0.000000 + . gene_id "SRC"; transcript_id "NM_005417:uc002xgx.3";
+chr20 hg19_knownGene CDS 36026102 36026257 0.000000 + 2 gene_id "SRC"; transcript_id "NM_005417:uc002xgx.3";
+chr20 hg19_knownGene exon 36026102 36026257 0.000000 + . gene_id "SRC"; transcript_id "NM_005417:uc002xgx.3";
+chr20 hg19_knownGene CDS 36028518 36028697 0.000000 + 2 gene_id "SRC"; transcript_id "NM_005417:uc002xgx.3";
+chr20 hg19_knownGene exon 36028518 36028697 0.000000 + . gene_id "SRC"; transcript_id "NM_005417:uc002xgx.3";
+chr20 hg19_knownGene CDS 36030005 36030081 0.000000 + 2 gene_id "SRC"; transcript_id "NM_005417:uc002xgx.3";
+chr20 hg19_knownGene exon 36030005 36030081 0.000000 + . gene_id "SRC"; transcript_id "NM_005417:uc002xgx.3";
+chr20 hg19_knownGene CDS 36030838 36030991 0.000000 + 0 gene_id "SRC"; transcript_id "NM_005417:uc002xgx.3";
+chr20 hg19_knownGene exon 36030838 36030991 0.000000 + . gene_id "SRC"; transcript_id "NM_005417:uc002xgx.3";
+chr20 hg19_knownGene CDS 36031152 36031283 0.000000 + 2 gene_id "SRC"; transcript_id "NM_005417:uc002xgx.3";
+chr20 hg19_knownGene exon 36031152 36031283 0.000000 + . gene_id "SRC"; transcript_id "NM_005417:uc002xgx.3";
+chr20 hg19_knownGene CDS 36031574 36031779 0.000000 + 2 gene_id "SRC"; transcript_id "NM_005417:uc002xgx.3";
+chr20 hg19_knownGene exon 36031574 36033821 0.000000 + . gene_id "SRC"; transcript_id "NM_005417:uc002xgx.3";
+chr20 hg19_knownGene exon 35974557 35974658 0.000000 + . gene_id "SRC"; transcript_id "NM_198291:uc002xgy.3";
+chr20 hg19_knownGene exon 35993607 35993680 0.000000 + . gene_id "SRC"; transcript_id "NM_198291:uc002xgy.3";
+chr20 hg19_knownGene exon 36011022 36011189 0.000000 + . gene_id "SRC"; transcript_id "NM_198291:uc002xgy.3";
+chr20 hg19_knownGene CDS 36012557 36012806 0.000000 + 0 gene_id "SRC"; transcript_id "NM_198291:uc002xgy.3";
+chr20 hg19_knownGene exon 36012553 36012806 0.000000 + . gene_id "SRC"; transcript_id "NM_198291:uc002xgy.3";
+chr20 hg19_knownGene CDS 36014478 36014577 0.000000 + 2 gene_id "SRC"; transcript_id "NM_198291:uc002xgy.3";
+chr20 hg19_knownGene exon 36014478 36014577 0.000000 + . gene_id "SRC"; transcript_id "NM_198291:uc002xgy.3";
+chr20 hg19_knownGene CDS 36022298 36022396 0.000000 + 1 gene_id "SRC"; transcript_id "NM_198291:uc002xgy.3";
+chr20 hg19_knownGene exon 36022298 36022396 0.000000 + . gene_id "SRC"; transcript_id "NM_198291:uc002xgy.3";
+chr20 hg19_knownGene CDS 36022577 36022680 0.000000 + 1 gene_id "SRC"; transcript_id "NM_198291:uc002xgy.3";
+chr20 hg19_knownGene exon 36022577 36022680 0.000000 + . gene_id "SRC"; transcript_id "NM_198291:uc002xgy.3";
+chr20 hg19_knownGene CDS 36024565 36024714 0.000000 + 2 gene_id "SRC"; transcript_id "NM_198291:uc002xgy.3";
+chr20 hg19_knownGene exon 36024565 36024714 0.000000 + . gene_id "SRC"; transcript_id "NM_198291:uc002xgy.3";
+chr20 hg19_knownGene CDS 36026102 36026257 0.000000 + 2 gene_id "SRC"; transcript_id "NM_198291:uc002xgy.3";
+chr20 hg19_knownGene exon 36026102 36026257 0.000000 + . gene_id "SRC"; transcript_id "NM_198291:uc002xgy.3";
+chr20 hg19_knownGene CDS 36028518 36028697 0.000000 + 2 gene_id "SRC"; transcript_id "NM_198291:uc002xgy.3";
+chr20 hg19_knownGene exon 36028518 36028697 0.000000 + . gene_id "SRC"; transcript_id "NM_198291:uc002xgy.3";
+chr20 hg19_knownGene CDS 36030005 36030081 0.000000 + 2 gene_id "SRC"; transcript_id "NM_198291:uc002xgy.3";
+chr20 hg19_knownGene exon 36030005 36030081 0.000000 + . gene_id "SRC"; transcript_id "NM_198291:uc002xgy.3";
+chr20 hg19_knownGene CDS 36030838 36030991 0.000000 + 0 gene_id "SRC"; transcript_id "NM_198291:uc002xgy.3";
+chr20 hg19_knownGene exon 36030838 36030991 0.000000 + . gene_id "SRC"; transcript_id "NM_198291:uc002xgy.3";
+chr20 hg19_knownGene CDS 36031152 36031283 0.000000 + 2 gene_id "SRC"; transcript_id "NM_198291:uc002xgy.3";
+chr20 hg19_knownGene exon 36031152 36031283 0.000000 + . gene_id "SRC"; transcript_id "NM_198291:uc002xgy.3";
+chr20 hg19_knownGene CDS 36031574 36031779 0.000000 + 2 gene_id "SRC"; transcript_id "NM_198291:uc002xgy.3";
+chr20 hg19_knownGene exon 36031574 36033821 0.000000 + . gene_id "SRC"; transcript_id "NM_198291:uc002xgy.3";
+chr20 hg19_knownGene CDS 36147316 36147576 0.000000 - 0 gene_id "BLCAP"; transcript_id "CCDS13295:uc021wdg.1";
+chr20 hg19_knownGene exon 36147313 36147576 0.000000 - . gene_id "BLCAP"; transcript_id "CCDS13295:uc021wdg.1";
+chr20 hg19_knownGene CDS 36149734 36149805 0.000000 + 0 gene_id "NNAT"; transcript_id "NM_005386:uc002xhd.3";
+chr20 hg19_knownGene exon 36149607 36149805 0.000000 + . gene_id "NNAT"; transcript_id "NM_005386:uc002xhd.3";
+chr20 hg19_knownGene CDS 36150760 36150840 0.000000 + 0 gene_id "NNAT"; transcript_id "NM_005386:uc002xhd.3";
+chr20 hg19_knownGene exon 36150760 36150840 0.000000 + . gene_id "NNAT"; transcript_id "NM_005386:uc002xhd.3";
+chr20 hg19_knownGene CDS 36151069 36151158 0.000000 + 0 gene_id "NNAT"; transcript_id "NM_005386:uc002xhd.3";
+chr20 hg19_knownGene exon 36151069 36152090 0.000000 + . gene_id "NNAT"; transcript_id "NM_005386:uc002xhd.3";
+chr20 hg19_knownGene CDS 36149734 36149805 0.000000 + 0 gene_id "NNAT"; transcript_id "NM_181689:uc002xhe.3";
+chr20 hg19_knownGene exon 36149607 36149805 0.000000 + . gene_id "NNAT"; transcript_id "NM_181689:uc002xhe.3";
+chr20 hg19_knownGene CDS 36151069 36151158 0.000000 + 0 gene_id "NNAT"; transcript_id "NM_181689:uc002xhe.3";
+chr20 hg19_knownGene exon 36151069 36152090 0.000000 + . gene_id "NNAT"; transcript_id "NM_181689:uc002xhe.3";
+chr20 hg19_knownGene CDS 36147316 36147576 0.000000 - 0 gene_id "BLCAP"; transcript_id "NM_001167823:uc021wde.1";
+chr20 hg19_knownGene exon 36145819 36147752 0.000000 - . gene_id "BLCAP"; transcript_id "NM_001167823:uc021wde.1";
+chr20 hg19_knownGene exon 36152779 36152953 0.000000 - . gene_id "BLCAP"; transcript_id "NM_001167823:uc021wde.1";
+chr20 hg19_knownGene CDS 36147316 36147576 0.000000 - 0 gene_id "BLCAP"; transcript_id "NM_001167822:uc021wdf.1";
+chr20 hg19_knownGene exon 36145819 36147752 0.000000 - . gene_id "BLCAP"; transcript_id "NM_001167822:uc021wdf.1";
+chr20 hg19_knownGene exon 36155976 36156083 0.000000 - . gene_id "BLCAP"; transcript_id "NM_001167822:uc021wdf.1";
+chr20 hg19_knownGene CDS 36147316 36147576 0.000000 - 0 gene_id "BLCAP"; transcript_id "NM_001167821:uc002xhb.3";
+chr20 hg19_knownGene exon 36145819 36147752 0.000000 - . gene_id "BLCAP"; transcript_id "NM_001167821:uc002xhb.3";
+chr20 hg19_knownGene exon 36156033 36156134 0.000000 - . gene_id "BLCAP"; transcript_id "NM_001167821:uc002xhb.3";
+chr20 hg19_knownGene CDS 36147316 36147576 0.000000 - 0 gene_id "BLCAP"; transcript_id "NM_001167820:uc002xha.3";
+chr20 hg19_knownGene exon 36145819 36147752 0.000000 - . gene_id "BLCAP"; transcript_id "NM_001167820:uc002xha.3";
+chr20 hg19_knownGene exon 36149721 36149853 0.000000 - . gene_id "BLCAP"; transcript_id "NM_001167820:uc002xha.3";
+chr20 hg19_knownGene exon 36156195 36156333 0.000000 - . gene_id "BLCAP"; transcript_id "NM_001167820:uc002xha.3";
+chr20 hg19_knownGene CDS 36147316 36147576 0.000000 - 0 gene_id "BLCAP"; transcript_id "NM_006698:uc002xhc.3";
+chr20 hg19_knownGene exon 36145819 36147752 0.000000 - . gene_id "BLCAP"; transcript_id "NM_006698:uc002xhc.3";
+chr20 hg19_knownGene exon 36156195 36156333 0.000000 - . gene_id "BLCAP"; transcript_id "NM_006698:uc002xhc.3";
+chr20 hg19_knownGene exon 36305312 36305488 0.000000 + . gene_id "LOC100287792"; transcript_id "NR_040021:uc021wdh.1";
+chr20 hg19_knownGene exon 36306360 36307020 0.000000 + . gene_id "LOC100287792"; transcript_id "NR_040021:uc021wdh.1";
+chr20 hg19_knownGene exon 36307318 36307428 0.000000 + . gene_id "LOC100287792"; transcript_id "NR_040021:uc021wdh.1";
+chr20 hg19_knownGene exon 36310474 36311636 0.000000 + . gene_id "LOC100287792"; transcript_id "NR_040021:uc021wdh.1";
+chr20 hg19_knownGene exon 36322434 36322554 0.000000 + . gene_id "CTNNBL1"; transcript_id "AK293420:uc021wdi.1";
+chr20 hg19_knownGene exon 36355704 36355804 0.000000 + . gene_id "CTNNBL1"; transcript_id "AK293420:uc021wdi.1";
+chr20 hg19_knownGene CDS 36361332 36361469 0.000000 + 0 gene_id "CTNNBL1"; transcript_id "AK293420:uc021wdi.1";
+chr20 hg19_knownGene exon 36361281 36361469 0.000000 + . gene_id "CTNNBL1"; transcript_id "AK293420:uc021wdi.1";
+chr20 hg19_knownGene CDS 36365780 36365886 0.000000 + 0 gene_id "CTNNBL1"; transcript_id "AK293420:uc021wdi.1";
+chr20 hg19_knownGene exon 36365780 36365886 0.000000 + . gene_id "CTNNBL1"; transcript_id "AK293420:uc021wdi.1";
+chr20 hg19_knownGene CDS 36374870 36375005 0.000000 + 1 gene_id "CTNNBL1"; transcript_id "AK293420:uc021wdi.1";
+chr20 hg19_knownGene exon 36374870 36375009 0.000000 + . gene_id "CTNNBL1"; transcript_id "AK293420:uc021wdi.1";
+chr20 hg19_knownGene CDS 36322525 36322554 0.000000 + 0 gene_id "CTNNBL1"; transcript_id "NM_030877:uc021wdj.1";
+chr20 hg19_knownGene exon 36322434 36322554 0.000000 + . gene_id "CTNNBL1"; transcript_id "NM_030877:uc021wdj.1";
+chr20 hg19_knownGene CDS 36361281 36361469 0.000000 + 0 gene_id "CTNNBL1"; transcript_id "NM_030877:uc021wdj.1";
+chr20 hg19_knownGene exon 36361281 36361469 0.000000 + . gene_id "CTNNBL1"; transcript_id "NM_030877:uc021wdj.1";
+chr20 hg19_knownGene CDS 36365780 36365886 0.000000 + 0 gene_id "CTNNBL1"; transcript_id "NM_030877:uc021wdj.1";
+chr20 hg19_knownGene exon 36365780 36365886 0.000000 + . gene_id "CTNNBL1"; transcript_id "NM_030877:uc021wdj.1";
+chr20 hg19_knownGene CDS 36374870 36375009 0.000000 + 1 gene_id "CTNNBL1"; transcript_id "NM_030877:uc021wdj.1";
+chr20 hg19_knownGene exon 36374870 36375009 0.000000 + . gene_id "CTNNBL1"; transcript_id "NM_030877:uc021wdj.1";
+chr20 hg19_knownGene CDS 36385961 36386058 0.000000 + 2 gene_id "CTNNBL1"; transcript_id "NM_030877:uc021wdj.1";
+chr20 hg19_knownGene exon 36385961 36386058 0.000000 + . gene_id "CTNNBL1"; transcript_id "NM_030877:uc021wdj.1";
+chr20 hg19_knownGene CDS 36393599 36393692 0.000000 + 0 gene_id "CTNNBL1"; transcript_id "NM_030877:uc021wdj.1";
+chr20 hg19_knownGene exon 36393599 36393692 0.000000 + . gene_id "CTNNBL1"; transcript_id "NM_030877:uc021wdj.1";
+chr20 hg19_knownGene CDS 36396355 36396446 0.000000 + 2 gene_id "CTNNBL1"; transcript_id "NM_030877:uc021wdj.1";
+chr20 hg19_knownGene exon 36396355 36396446 0.000000 + . gene_id "CTNNBL1"; transcript_id "NM_030877:uc021wdj.1";
+chr20 hg19_knownGene CDS 36405747 36405819 0.000000 + 0 gene_id "CTNNBL1"; transcript_id "NM_030877:uc021wdj.1";
+chr20 hg19_knownGene exon 36405747 36405819 0.000000 + . gene_id "CTNNBL1"; transcript_id "NM_030877:uc021wdj.1";
+chr20 hg19_knownGene CDS 36406056 36406114 0.000000 + 2 gene_id "CTNNBL1"; transcript_id "NM_030877:uc021wdj.1";
+chr20 hg19_knownGene exon 36406056 36406114 0.000000 + . gene_id "CTNNBL1"; transcript_id "NM_030877:uc021wdj.1";
+chr20 hg19_knownGene CDS 36407589 36407737 0.000000 + 0 gene_id "CTNNBL1"; transcript_id "NM_030877:uc021wdj.1";
+chr20 hg19_knownGene exon 36407589 36407737 0.000000 + . gene_id "CTNNBL1"; transcript_id "NM_030877:uc021wdj.1";
+chr20 hg19_knownGene CDS 36431269 36431450 0.000000 + 1 gene_id "CTNNBL1"; transcript_id "NM_030877:uc021wdj.1";
+chr20 hg19_knownGene exon 36431269 36431450 0.000000 + . gene_id "CTNNBL1"; transcript_id "NM_030877:uc021wdj.1";
+chr20 hg19_knownGene CDS 36468504 36468601 0.000000 + 2 gene_id "CTNNBL1"; transcript_id "NM_030877:uc021wdj.1";
+chr20 hg19_knownGene exon 36468504 36468601 0.000000 + . gene_id "CTNNBL1"; transcript_id "NM_030877:uc021wdj.1";
+chr20 hg19_knownGene CDS 36470741 36470821 0.000000 + 0 gene_id "CTNNBL1"; transcript_id "NM_030877:uc021wdj.1";
+chr20 hg19_knownGene exon 36470741 36470821 0.000000 + . gene_id "CTNNBL1"; transcript_id "NM_030877:uc021wdj.1";
+chr20 hg19_knownGene CDS 36488301 36488438 0.000000 + 0 gene_id "CTNNBL1"; transcript_id "NM_030877:uc021wdj.1";
+chr20 hg19_knownGene exon 36488301 36488438 0.000000 + . gene_id "CTNNBL1"; transcript_id "NM_030877:uc021wdj.1";
+chr20 hg19_knownGene CDS 36488674 36488746 0.000000 + 0 gene_id "CTNNBL1"; transcript_id "NM_030877:uc021wdj.1";
+chr20 hg19_knownGene exon 36488674 36488746 0.000000 + . gene_id "CTNNBL1"; transcript_id "NM_030877:uc021wdj.1";
+chr20 hg19_knownGene CDS 36500327 36500412 0.000000 + 2 gene_id "CTNNBL1"; transcript_id "NM_030877:uc021wdj.1";
+chr20 hg19_knownGene exon 36500327 36500520 0.000000 + . gene_id "CTNNBL1"; transcript_id "NM_030877:uc021wdj.1";
+chr20 hg19_knownGene exon 36373047 36373115 0.000000 + . gene_id "CTNNBL1"; transcript_id "AF367471:uc002xhh.3";
+chr20 hg19_knownGene CDS 36375047 36375049 0.000000 + 0 gene_id "CTNNBL1"; transcript_id "AF367471:uc002xhh.3";
+chr20 hg19_knownGene exon 36374870 36375049 0.000000 + . gene_id "CTNNBL1"; transcript_id "AF367471:uc002xhh.3";
+chr20 hg19_knownGene CDS 36393599 36393692 0.000000 + 0 gene_id "CTNNBL1"; transcript_id "AF367471:uc002xhh.3";
+chr20 hg19_knownGene exon 36393599 36393692 0.000000 + . gene_id "CTNNBL1"; transcript_id "AF367471:uc002xhh.3";
+chr20 hg19_knownGene CDS 36396355 36396446 0.000000 + 2 gene_id "CTNNBL1"; transcript_id "AF367471:uc002xhh.3";
+chr20 hg19_knownGene exon 36396355 36396446 0.000000 + . gene_id "CTNNBL1"; transcript_id "AF367471:uc002xhh.3";
+chr20 hg19_knownGene CDS 36405747 36405819 0.000000 + 0 gene_id "CTNNBL1"; transcript_id "AF367471:uc002xhh.3";
+chr20 hg19_knownGene exon 36405747 36405819 0.000000 + . gene_id "CTNNBL1"; transcript_id "AF367471:uc002xhh.3";
+chr20 hg19_knownGene CDS 36406056 36406114 0.000000 + 2 gene_id "CTNNBL1"; transcript_id "AF367471:uc002xhh.3";
+chr20 hg19_knownGene exon 36406056 36406114 0.000000 + . gene_id "CTNNBL1"; transcript_id "AF367471:uc002xhh.3";
+chr20 hg19_knownGene CDS 36407589 36407737 0.000000 + 0 gene_id "CTNNBL1"; transcript_id "AF367471:uc002xhh.3";
+chr20 hg19_knownGene exon 36407589 36407737 0.000000 + . gene_id "CTNNBL1"; transcript_id "AF367471:uc002xhh.3";
+chr20 hg19_knownGene CDS 36431269 36431450 0.000000 + 1 gene_id "CTNNBL1"; transcript_id "AF367471:uc002xhh.3";
+chr20 hg19_knownGene exon 36431269 36431450 0.000000 + . gene_id "CTNNBL1"; transcript_id "AF367471:uc002xhh.3";
+chr20 hg19_knownGene CDS 36468504 36468601 0.000000 + 2 gene_id "CTNNBL1"; transcript_id "AF367471:uc002xhh.3";
+chr20 hg19_knownGene exon 36468504 36468601 0.000000 + . gene_id "CTNNBL1"; transcript_id "AF367471:uc002xhh.3";
+chr20 hg19_knownGene CDS 36470741 36470821 0.000000 + 0 gene_id "CTNNBL1"; transcript_id "AF367471:uc002xhh.3";
+chr20 hg19_knownGene exon 36470741 36470821 0.000000 + . gene_id "CTNNBL1"; transcript_id "AF367471:uc002xhh.3";
+chr20 hg19_knownGene CDS 36488301 36488438 0.000000 + 0 gene_id "CTNNBL1"; transcript_id "AF367471:uc002xhh.3";
+chr20 hg19_knownGene exon 36488301 36488438 0.000000 + . gene_id "CTNNBL1"; transcript_id "AF367471:uc002xhh.3";
+chr20 hg19_knownGene CDS 36488674 36488746 0.000000 + 0 gene_id "CTNNBL1"; transcript_id "AF367471:uc002xhh.3";
+chr20 hg19_knownGene exon 36488674 36488746 0.000000 + . gene_id "CTNNBL1"; transcript_id "AF367471:uc002xhh.3";
+chr20 hg19_knownGene CDS 36500327 36500412 0.000000 + 2 gene_id "CTNNBL1"; transcript_id "AF367471:uc002xhh.3";
+chr20 hg19_knownGene exon 36500327 36500520 0.000000 + . gene_id "CTNNBL1"; transcript_id "AF367471:uc002xhh.3";
+chr20 hg19_knownGene exon 36378253 36379532 0.000000 + . gene_id "CTNNBL1"; transcript_id "AK091216:uc002xhi.3";
+chr20 hg19_knownGene exon 36379888 36380068 0.000000 + . gene_id "CTNNBL1"; transcript_id "AK091216:uc002xhi.3";
+chr20 hg19_knownGene exon 36384693 36384793 0.000000 + . gene_id "CTNNBL1"; transcript_id "AK091216:uc002xhi.3";
+chr20 hg19_knownGene exon 36385973 36386058 0.000000 + . gene_id "CTNNBL1"; transcript_id "AK091216:uc002xhi.3";
+chr20 hg19_knownGene exon 36393599 36393692 0.000000 + . gene_id "CTNNBL1"; transcript_id "AK091216:uc002xhi.3";
+chr20 hg19_knownGene exon 36396355 36396446 0.000000 + . gene_id "CTNNBL1"; transcript_id "AK091216:uc002xhi.3";
+chr20 hg19_knownGene exon 36405747 36405819 0.000000 + . gene_id "CTNNBL1"; transcript_id "AK091216:uc002xhi.3";
+chr20 hg19_knownGene exon 36406056 36406114 0.000000 + . gene_id "CTNNBL1"; transcript_id "AK091216:uc002xhi.3";
+chr20 hg19_knownGene exon 36407589 36407737 0.000000 + . gene_id "CTNNBL1"; transcript_id "AK091216:uc002xhi.3";
+chr20 hg19_knownGene exon 36431269 36431450 0.000000 + . gene_id "CTNNBL1"; transcript_id "AK091216:uc002xhi.3";
+chr20 hg19_knownGene exon 36460650 36460747 0.000000 + . gene_id "CTNNBL1"; transcript_id "AK091216:uc002xhi.3";
+chr20 hg19_knownGene exon 36468504 36468601 0.000000 + . gene_id "CTNNBL1"; transcript_id "AK091216:uc002xhi.3";
+chr20 hg19_knownGene exon 36470741 36470821 0.000000 + . gene_id "CTNNBL1"; transcript_id "AK091216:uc002xhi.3";
+chr20 hg19_knownGene exon 36488301 36488438 0.000000 + . gene_id "CTNNBL1"; transcript_id "AK091216:uc002xhi.3";
+chr20 hg19_knownGene exon 36488674 36488746 0.000000 + . gene_id "CTNNBL1"; transcript_id "AK091216:uc002xhi.3";
+chr20 hg19_knownGene exon 36500327 36500520 0.000000 + . gene_id "CTNNBL1"; transcript_id "AK091216:uc002xhi.3";
+chr20 hg19_knownGene CDS 36405753 36405819 0.000000 + 0 gene_id "CTNNBL1"; transcript_id "BC036739:uc002xhj.3";
+chr20 hg19_knownGene exon 36405675 36405819 0.000000 + . gene_id "CTNNBL1"; transcript_id "BC036739:uc002xhj.3";
+chr20 hg19_knownGene CDS 36406056 36406114 0.000000 + 2 gene_id "CTNNBL1"; transcript_id "BC036739:uc002xhj.3";
+chr20 hg19_knownGene exon 36406056 36406114 0.000000 + . gene_id "CTNNBL1"; transcript_id "BC036739:uc002xhj.3";
+chr20 hg19_knownGene CDS 36407589 36407737 0.000000 + 0 gene_id "CTNNBL1"; transcript_id "BC036739:uc002xhj.3";
+chr20 hg19_knownGene exon 36407589 36407737 0.000000 + . gene_id "CTNNBL1"; transcript_id "BC036739:uc002xhj.3";
+chr20 hg19_knownGene CDS 36431269 36431450 0.000000 + 1 gene_id "CTNNBL1"; transcript_id "BC036739:uc002xhj.3";
+chr20 hg19_knownGene exon 36431269 36431450 0.000000 + . gene_id "CTNNBL1"; transcript_id "BC036739:uc002xhj.3";
+chr20 hg19_knownGene CDS 36468504 36468601 0.000000 + 2 gene_id "CTNNBL1"; transcript_id "BC036739:uc002xhj.3";
+chr20 hg19_knownGene exon 36468504 36468601 0.000000 + . gene_id "CTNNBL1"; transcript_id "BC036739:uc002xhj.3";
+chr20 hg19_knownGene CDS 36470741 36470821 0.000000 + 0 gene_id "CTNNBL1"; transcript_id "BC036739:uc002xhj.3";
+chr20 hg19_knownGene exon 36470741 36470821 0.000000 + . gene_id "CTNNBL1"; transcript_id "BC036739:uc002xhj.3";
+chr20 hg19_knownGene CDS 36488301 36488438 0.000000 + 0 gene_id "CTNNBL1"; transcript_id "BC036739:uc002xhj.3";
+chr20 hg19_knownGene exon 36488301 36488438 0.000000 + . gene_id "CTNNBL1"; transcript_id "BC036739:uc002xhj.3";
+chr20 hg19_knownGene CDS 36488674 36488746 0.000000 + 0 gene_id "CTNNBL1"; transcript_id "BC036739:uc002xhj.3";
+chr20 hg19_knownGene exon 36488674 36488746 0.000000 + . gene_id "CTNNBL1"; transcript_id "BC036739:uc002xhj.3";
+chr20 hg19_knownGene CDS 36500327 36500412 0.000000 + 2 gene_id "CTNNBL1"; transcript_id "BC036739:uc002xhj.3";
+chr20 hg19_knownGene exon 36500327 36500520 0.000000 + . gene_id "CTNNBL1"; transcript_id "BC036739:uc002xhj.3";
+chr20 hg19_knownGene CDS 36531753 36531873 0.000000 + 0 gene_id "VSTM2L"; transcript_id "NM_080607:uc002xhk.4";
+chr20 hg19_knownGene exon 36531499 36531873 0.000000 + . gene_id "VSTM2L"; transcript_id "NM_080607:uc002xhk.4";
+chr20 hg19_knownGene CDS 36560037 36560206 0.000000 + 2 gene_id "VSTM2L"; transcript_id "NM_080607:uc002xhk.4";
+chr20 hg19_knownGene exon 36560037 36560206 0.000000 + . gene_id "VSTM2L"; transcript_id "NM_080607:uc002xhk.4";
+chr20 hg19_knownGene CDS 36561941 36561991 0.000000 + 0 gene_id "VSTM2L"; transcript_id "NM_080607:uc002xhk.4";
+chr20 hg19_knownGene exon 36561941 36561991 0.000000 + . gene_id "VSTM2L"; transcript_id "NM_080607:uc002xhk.4";
+chr20 hg19_knownGene CDS 36572383 36572652 0.000000 + 0 gene_id "VSTM2L"; transcript_id "NM_080607:uc002xhk.4";
+chr20 hg19_knownGene exon 36572383 36573747 0.000000 + . gene_id "VSTM2L"; transcript_id "NM_080607:uc002xhk.4";
+chr20 hg19_knownGene CDS 36615490 36615828 0.000000 - 0 gene_id "AK123872"; transcript_id "AK123872:uc002xhn.1";
+chr20 hg19_knownGene exon 36613296 36615884 0.000000 - . gene_id "AK123872"; transcript_id "AK123872:uc002xhn.1";
+chr20 hg19_knownGene CDS 36611861 36612041 0.000000 - 1 gene_id "TTI1"; transcript_id "NM_014657:uc002xhl.3";
+chr20 hg19_knownGene exon 36611423 36612041 0.000000 - . gene_id "TTI1"; transcript_id "NM_014657:uc002xhl.3";
+chr20 hg19_knownGene CDS 36624777 36624864 0.000000 - 2 gene_id "TTI1"; transcript_id "NM_014657:uc002xhl.3";
+chr20 hg19_knownGene exon 36624777 36624864 0.000000 - . gene_id "TTI1"; transcript_id "NM_014657:uc002xhl.3";
+chr20 hg19_knownGene CDS 36625151 36625355 0.000000 - 0 gene_id "TTI1"; transcript_id "NM_014657:uc002xhl.3";
+chr20 hg19_knownGene exon 36625151 36625355 0.000000 - . gene_id "TTI1"; transcript_id "NM_014657:uc002xhl.3";
+chr20 hg19_knownGene CDS 36627590 36627730 0.000000 - 0 gene_id "TTI1"; transcript_id "NM_014657:uc002xhl.3";
+chr20 hg19_knownGene exon 36627590 36627730 0.000000 - . gene_id "TTI1"; transcript_id "NM_014657:uc002xhl.3";
+chr20 hg19_knownGene CDS 36631030 36631178 0.000000 - 2 gene_id "TTI1"; transcript_id "NM_014657:uc002xhl.3";
+chr20 hg19_knownGene exon 36631030 36631178 0.000000 - . gene_id "TTI1"; transcript_id "NM_014657:uc002xhl.3";
+chr20 hg19_knownGene CDS 36634599 36634799 0.000000 - 2 gene_id "TTI1"; transcript_id "NM_014657:uc002xhl.3";
+chr20 hg19_knownGene exon 36634599 36634799 0.000000 - . gene_id "TTI1"; transcript_id "NM_014657:uc002xhl.3";
+chr20 hg19_knownGene CDS 36639917 36642218 0.000000 - 0 gene_id "TTI1"; transcript_id "NM_014657:uc002xhl.3";
+chr20 hg19_knownGene exon 36639917 36642259 0.000000 - . gene_id "TTI1"; transcript_id "NM_014657:uc002xhl.3";
+chr20 hg19_knownGene exon 36647407 36647546 0.000000 - . gene_id "TTI1"; transcript_id "NM_014657:uc002xhl.3";
+chr20 hg19_knownGene exon 36661806 36661833 0.000000 - . gene_id "TTI1"; transcript_id "NM_014657:uc002xhl.3";
+chr20 hg19_knownGene CDS 36611861 36612041 0.000000 - 1 gene_id "TTI1"; transcript_id "AK308164:uc002xhm.3";
+chr20 hg19_knownGene exon 36611423 36612041 0.000000 - . gene_id "TTI1"; transcript_id "AK308164:uc002xhm.3";
+chr20 hg19_knownGene CDS 36624777 36624864 0.000000 - 2 gene_id "TTI1"; transcript_id "AK308164:uc002xhm.3";
+chr20 hg19_knownGene exon 36624777 36624864 0.000000 - . gene_id "TTI1"; transcript_id "AK308164:uc002xhm.3";
+chr20 hg19_knownGene CDS 36625151 36625355 0.000000 - 0 gene_id "TTI1"; transcript_id "AK308164:uc002xhm.3";
+chr20 hg19_knownGene exon 36625151 36625355 0.000000 - . gene_id "TTI1"; transcript_id "AK308164:uc002xhm.3";
+chr20 hg19_knownGene CDS 36627590 36627730 0.000000 - 0 gene_id "TTI1"; transcript_id "AK308164:uc002xhm.3";
+chr20 hg19_knownGene exon 36627590 36627730 0.000000 - . gene_id "TTI1"; transcript_id "AK308164:uc002xhm.3";
+chr20 hg19_knownGene CDS 36631030 36631178 0.000000 - 2 gene_id "TTI1"; transcript_id "AK308164:uc002xhm.3";
+chr20 hg19_knownGene exon 36631030 36631178 0.000000 - . gene_id "TTI1"; transcript_id "AK308164:uc002xhm.3";
+chr20 hg19_knownGene CDS 36634599 36634799 0.000000 - 2 gene_id "TTI1"; transcript_id "AK308164:uc002xhm.3";
+chr20 hg19_knownGene exon 36634599 36634799 0.000000 - . gene_id "TTI1"; transcript_id "AK308164:uc002xhm.3";
+chr20 hg19_knownGene CDS 36639917 36642218 0.000000 - 0 gene_id "TTI1"; transcript_id "AK308164:uc002xhm.3";
+chr20 hg19_knownGene exon 36639917 36642259 0.000000 - . gene_id "TTI1"; transcript_id "AK308164:uc002xhm.3";
+chr20 hg19_knownGene exon 36661806 36661833 0.000000 - . gene_id "TTI1"; transcript_id "AK308164:uc002xhm.3";
+chr20 hg19_knownGene CDS 36662350 36662500 0.000000 + 0 gene_id "RPRD1B"; transcript_id "NM_021215:uc002xho.4";
+chr20 hg19_knownGene exon 36661948 36662500 0.000000 + . gene_id "RPRD1B"; transcript_id "NM_021215:uc002xho.4";
+chr20 hg19_knownGene CDS 36668837 36668966 0.000000 + 2 gene_id "RPRD1B"; transcript_id "NM_021215:uc002xho.4";
+chr20 hg19_knownGene exon 36668837 36668966 0.000000 + . gene_id "RPRD1B"; transcript_id "NM_021215:uc002xho.4";
+chr20 hg19_knownGene CDS 36676750 36676883 0.000000 + 1 gene_id "RPRD1B"; transcript_id "NM_021215:uc002xho.4";
+chr20 hg19_knownGene exon 36676750 36676883 0.000000 + . gene_id "RPRD1B"; transcript_id "NM_021215:uc002xho.4";
+chr20 hg19_knownGene CDS 36685934 36686046 0.000000 + 2 gene_id "RPRD1B"; transcript_id "NM_021215:uc002xho.4";
+chr20 hg19_knownGene exon 36685934 36686046 0.000000 + . gene_id "RPRD1B"; transcript_id "NM_021215:uc002xho.4";
+chr20 hg19_knownGene CDS 36687796 36687922 0.000000 + 0 gene_id "RPRD1B"; transcript_id "NM_021215:uc002xho.4";
+chr20 hg19_knownGene exon 36687796 36687922 0.000000 + . gene_id "RPRD1B"; transcript_id "NM_021215:uc002xho.4";
+chr20 hg19_knownGene CDS 36694483 36694658 0.000000 + 2 gene_id "RPRD1B"; transcript_id "NM_021215:uc002xho.4";
+chr20 hg19_knownGene exon 36694483 36694658 0.000000 + . gene_id "RPRD1B"; transcript_id "NM_021215:uc002xho.4";
+chr20 hg19_knownGene CDS 36718128 36718274 0.000000 + 0 gene_id "RPRD1B"; transcript_id "NM_021215:uc002xho.4";
+chr20 hg19_knownGene exon 36718128 36720766 0.000000 + . gene_id "RPRD1B"; transcript_id "NM_021215:uc002xho.4";
+chr20 hg19_knownGene exon 36694471 36694658 0.000000 + . gene_id "RPRD1B"; transcript_id "AX747603:uc002xhp.4";
+chr20 hg19_knownGene exon 36718128 36720766 0.000000 + . gene_id "RPRD1B"; transcript_id "AX747603:uc002xhp.4";
+chr20 hg19_knownGene exon 36726808 36727102 0.000000 - . gene_id "Metazoa_SRP"; transcript_id ":uc021wdk.1";
+chr20 hg19_knownGene CDS 36758624 36758771 0.000000 - 1 gene_id "TGM2"; transcript_id "AK126508:uc002xhq.3";
+chr20 hg19_knownGene exon 36756864 36758771 0.000000 - . gene_id "TGM2"; transcript_id "AK126508:uc002xhq.3";
+chr20 hg19_knownGene CDS 36759495 36759631 0.000000 - 0 gene_id "TGM2"; transcript_id "AK126508:uc002xhq.3";
+chr20 hg19_knownGene exon 36759495 36759631 0.000000 - . gene_id "TGM2"; transcript_id "AK126508:uc002xhq.3";
+chr20 hg19_knownGene CDS 36760742 36761320 0.000000 - 0 gene_id "TGM2"; transcript_id "AK126508:uc002xhq.3";
+chr20 hg19_knownGene exon 36760742 36762162 0.000000 - . gene_id "TGM2"; transcript_id "AK126508:uc002xhq.3";
+chr20 hg19_knownGene exon 36769766 36769787 0.000000 + . gene_id "DJ417906"; transcript_id "DJ417906:uc021wdl.1";
+chr20 hg19_knownGene exon 36784276 36784297 0.000000 + . gene_id "DJ417913"; transcript_id "DJ417913:uc021wdm.1";
+chr20 hg19_knownGene CDS 36758624 36758771 0.000000 - 1 gene_id "TGM2"; transcript_id "NM_004613:uc002xhr.3";
+chr20 hg19_knownGene exon 36756864 36758771 0.000000 - . gene_id "TGM2"; transcript_id "NM_004613:uc002xhr.3";
+chr20 hg19_knownGene CDS 36759495 36759631 0.000000 - 0 gene_id "TGM2"; transcript_id "NM_004613:uc002xhr.3";
+chr20 hg19_knownGene exon 36759495 36759631 0.000000 - . gene_id "TGM2"; transcript_id "NM_004613:uc002xhr.3";
+chr20 hg19_knownGene CDS 36760742 36760902 0.000000 - 2 gene_id "TGM2"; transcript_id "NM_004613:uc002xhr.3";
+chr20 hg19_knownGene exon 36760742 36760902 0.000000 - . gene_id "TGM2"; transcript_id "NM_004613:uc002xhr.3";
+chr20 hg19_knownGene CDS 36766515 36766787 0.000000 - 2 gene_id "TGM2"; transcript_id "NM_004613:uc002xhr.3";
+chr20 hg19_knownGene exon 36766515 36766787 0.000000 - . gene_id "TGM2"; transcript_id "NM_004613:uc002xhr.3";
+chr20 hg19_knownGene CDS 36767814 36768056 0.000000 - 2 gene_id "TGM2"; transcript_id "NM_004613:uc002xhr.3";
+chr20 hg19_knownGene exon 36767814 36768056 0.000000 - . gene_id "TGM2"; transcript_id "NM_004613:uc002xhr.3";
+chr20 hg19_knownGene CDS 36769684 36769787 0.000000 - 1 gene_id "TGM2"; transcript_id "NM_004613:uc002xhr.3";
+chr20 hg19_knownGene exon 36769684 36769787 0.000000 - . gene_id "TGM2"; transcript_id "NM_004613:uc002xhr.3";
+chr20 hg19_knownGene CDS 36770466 36770601 0.000000 - 2 gene_id "TGM2"; transcript_id "NM_004613:uc002xhr.3";
+chr20 hg19_knownGene exon 36770466 36770601 0.000000 - . gene_id "TGM2"; transcript_id "NM_004613:uc002xhr.3";
+chr20 hg19_knownGene CDS 36775119 36775296 0.000000 - 0 gene_id "TGM2"; transcript_id "NM_004613:uc002xhr.3";
+chr20 hg19_knownGene exon 36775119 36775296 0.000000 - . gene_id "TGM2"; transcript_id "NM_004613:uc002xhr.3";
+chr20 hg19_knownGene CDS 36776363 36776491 0.000000 - 0 gene_id "TGM2"; transcript_id "NM_004613:uc002xhr.3";
+chr20 hg19_knownGene exon 36776363 36776491 0.000000 - . gene_id "TGM2"; transcript_id "NM_004613:uc002xhr.3";
+chr20 hg19_knownGene CDS 36779341 36779459 0.000000 - 2 gene_id "TGM2"; transcript_id "NM_004613:uc002xhr.3";
+chr20 hg19_knownGene exon 36779341 36779459 0.000000 - . gene_id "TGM2"; transcript_id "NM_004613:uc002xhr.3";
+chr20 hg19_knownGene CDS 36784249 36784491 0.000000 - 2 gene_id "TGM2"; transcript_id "NM_004613:uc002xhr.3";
+chr20 hg19_knownGene exon 36784249 36784491 0.000000 - . gene_id "TGM2"; transcript_id "NM_004613:uc002xhr.3";
+chr20 hg19_knownGene CDS 36789822 36790001 0.000000 - 2 gene_id "TGM2"; transcript_id "NM_004613:uc002xhr.3";
+chr20 hg19_knownGene exon 36789822 36790001 0.000000 - . gene_id "TGM2"; transcript_id "NM_004613:uc002xhr.3";
+chr20 hg19_knownGene CDS 36793591 36793600 0.000000 - 0 gene_id "TGM2"; transcript_id "NM_004613:uc002xhr.3";
+chr20 hg19_knownGene exon 36793591 36793700 0.000000 - . gene_id "TGM2"; transcript_id "NM_004613:uc002xhr.3";
+chr20 hg19_knownGene CDS 36758624 36758771 0.000000 - 1 gene_id "TGM2"; transcript_id "AK295775:uc010zvx.2";
+chr20 hg19_knownGene exon 36756864 36758771 0.000000 - . gene_id "TGM2"; transcript_id "AK295775:uc010zvx.2";
+chr20 hg19_knownGene CDS 36759495 36759631 0.000000 - 0 gene_id "TGM2"; transcript_id "AK295775:uc010zvx.2";
+chr20 hg19_knownGene exon 36759495 36759631 0.000000 - . gene_id "TGM2"; transcript_id "AK295775:uc010zvx.2";
+chr20 hg19_knownGene CDS 36760742 36760902 0.000000 - 2 gene_id "TGM2"; transcript_id "AK295775:uc010zvx.2";
+chr20 hg19_knownGene exon 36760742 36760902 0.000000 - . gene_id "TGM2"; transcript_id "AK295775:uc010zvx.2";
+chr20 hg19_knownGene CDS 36766515 36766787 0.000000 - 2 gene_id "TGM2"; transcript_id "AK295775:uc010zvx.2";
+chr20 hg19_knownGene exon 36766515 36766787 0.000000 - . gene_id "TGM2"; transcript_id "AK295775:uc010zvx.2";
+chr20 hg19_knownGene CDS 36767814 36768056 0.000000 - 2 gene_id "TGM2"; transcript_id "AK295775:uc010zvx.2";
+chr20 hg19_knownGene exon 36767814 36768056 0.000000 - . gene_id "TGM2"; transcript_id "AK295775:uc010zvx.2";
+chr20 hg19_knownGene CDS 36769684 36769787 0.000000 - 1 gene_id "TGM2"; transcript_id "AK295775:uc010zvx.2";
+chr20 hg19_knownGene exon 36769684 36769787 0.000000 - . gene_id "TGM2"; transcript_id "AK295775:uc010zvx.2";
+chr20 hg19_knownGene CDS 36770466 36770601 0.000000 - 2 gene_id "TGM2"; transcript_id "AK295775:uc010zvx.2";
+chr20 hg19_knownGene exon 36770466 36770601 0.000000 - . gene_id "TGM2"; transcript_id "AK295775:uc010zvx.2";
+chr20 hg19_knownGene CDS 36775119 36775296 0.000000 - 0 gene_id "TGM2"; transcript_id "AK295775:uc010zvx.2";
+chr20 hg19_knownGene exon 36775119 36775296 0.000000 - . gene_id "TGM2"; transcript_id "AK295775:uc010zvx.2";
+chr20 hg19_knownGene CDS 36776363 36776491 0.000000 - 0 gene_id "TGM2"; transcript_id "AK295775:uc010zvx.2";
+chr20 hg19_knownGene exon 36776363 36776491 0.000000 - . gene_id "TGM2"; transcript_id "AK295775:uc010zvx.2";
+chr20 hg19_knownGene CDS 36779341 36779459 0.000000 - 2 gene_id "TGM2"; transcript_id "AK295775:uc010zvx.2";
+chr20 hg19_knownGene exon 36779341 36779459 0.000000 - . gene_id "TGM2"; transcript_id "AK295775:uc010zvx.2";
+chr20 hg19_knownGene CDS 36789822 36790001 0.000000 - 2 gene_id "TGM2"; transcript_id "AK295775:uc010zvx.2";
+chr20 hg19_knownGene exon 36789822 36790001 0.000000 - . gene_id "TGM2"; transcript_id "AK295775:uc010zvx.2";
+chr20 hg19_knownGene CDS 36793591 36793600 0.000000 - 0 gene_id "TGM2"; transcript_id "AK295775:uc010zvx.2";
+chr20 hg19_knownGene exon 36793591 36793700 0.000000 - . gene_id "TGM2"; transcript_id "AK295775:uc010zvx.2";
+chr20 hg19_knownGene CDS 36758624 36758771 0.000000 - 1 gene_id "TGM2"; transcript_id "AK300292:uc010zvy.2";
+chr20 hg19_knownGene exon 36756864 36758771 0.000000 - . gene_id "TGM2"; transcript_id "AK300292:uc010zvy.2";
+chr20 hg19_knownGene CDS 36759495 36759631 0.000000 - 0 gene_id "TGM2"; transcript_id "AK300292:uc010zvy.2";
+chr20 hg19_knownGene exon 36759495 36759631 0.000000 - . gene_id "TGM2"; transcript_id "AK300292:uc010zvy.2";
+chr20 hg19_knownGene CDS 36760742 36760902 0.000000 - 2 gene_id "TGM2"; transcript_id "AK300292:uc010zvy.2";
+chr20 hg19_knownGene exon 36760742 36760902 0.000000 - . gene_id "TGM2"; transcript_id "AK300292:uc010zvy.2";
+chr20 hg19_knownGene CDS 36766515 36766787 0.000000 - 2 gene_id "TGM2"; transcript_id "AK300292:uc010zvy.2";
+chr20 hg19_knownGene exon 36766515 36766787 0.000000 - . gene_id "TGM2"; transcript_id "AK300292:uc010zvy.2";
+chr20 hg19_knownGene CDS 36767814 36768056 0.000000 - 2 gene_id "TGM2"; transcript_id "AK300292:uc010zvy.2";
+chr20 hg19_knownGene exon 36767814 36768056 0.000000 - . gene_id "TGM2"; transcript_id "AK300292:uc010zvy.2";
+chr20 hg19_knownGene CDS 36769684 36769787 0.000000 - 1 gene_id "TGM2"; transcript_id "AK300292:uc010zvy.2";
+chr20 hg19_knownGene exon 36769684 36769787 0.000000 - . gene_id "TGM2"; transcript_id "AK300292:uc010zvy.2";
+chr20 hg19_knownGene CDS 36770466 36770601 0.000000 - 2 gene_id "TGM2"; transcript_id "AK300292:uc010zvy.2";
+chr20 hg19_knownGene exon 36770466 36770601 0.000000 - . gene_id "TGM2"; transcript_id "AK300292:uc010zvy.2";
+chr20 hg19_knownGene CDS 36775119 36775296 0.000000 - 0 gene_id "TGM2"; transcript_id "AK300292:uc010zvy.2";
+chr20 hg19_knownGene exon 36775119 36775296 0.000000 - . gene_id "TGM2"; transcript_id "AK300292:uc010zvy.2";
+chr20 hg19_knownGene CDS 36776363 36776491 0.000000 - 0 gene_id "TGM2"; transcript_id "AK300292:uc010zvy.2";
+chr20 hg19_knownGene exon 36776363 36776491 0.000000 - . gene_id "TGM2"; transcript_id "AK300292:uc010zvy.2";
+chr20 hg19_knownGene CDS 36779341 36779459 0.000000 - 2 gene_id "TGM2"; transcript_id "AK300292:uc010zvy.2";
+chr20 hg19_knownGene exon 36779341 36779459 0.000000 - . gene_id "TGM2"; transcript_id "AK300292:uc010zvy.2";
+chr20 hg19_knownGene CDS 36784249 36784491 0.000000 - 2 gene_id "TGM2"; transcript_id "AK300292:uc010zvy.2";
+chr20 hg19_knownGene exon 36784249 36784491 0.000000 - . gene_id "TGM2"; transcript_id "AK300292:uc010zvy.2";
+chr20 hg19_knownGene CDS 36793591 36793600 0.000000 - 0 gene_id "TGM2"; transcript_id "AK300292:uc010zvy.2";
+chr20 hg19_knownGene exon 36793591 36793700 0.000000 - . gene_id "TGM2"; transcript_id "AK300292:uc010zvy.2";
+chr20 hg19_knownGene CDS 36759500 36759631 0.000000 - 0 gene_id "TGM2"; transcript_id "AK058031:uc002xhs.1";
+chr20 hg19_knownGene exon 36759495 36759631 0.000000 - . gene_id "TGM2"; transcript_id "AK058031:uc002xhs.1";
+chr20 hg19_knownGene CDS 36760742 36760902 0.000000 - 2 gene_id "TGM2"; transcript_id "AK058031:uc002xhs.1";
+chr20 hg19_knownGene exon 36760742 36760902 0.000000 - . gene_id "TGM2"; transcript_id "AK058031:uc002xhs.1";
+chr20 hg19_knownGene CDS 36766515 36766787 0.000000 - 2 gene_id "TGM2"; transcript_id "AK058031:uc002xhs.1";
+chr20 hg19_knownGene exon 36766515 36766787 0.000000 - . gene_id "TGM2"; transcript_id "AK058031:uc002xhs.1";
+chr20 hg19_knownGene CDS 36767814 36768056 0.000000 - 2 gene_id "TGM2"; transcript_id "AK058031:uc002xhs.1";
+chr20 hg19_knownGene exon 36767814 36768056 0.000000 - . gene_id "TGM2"; transcript_id "AK058031:uc002xhs.1";
+chr20 hg19_knownGene CDS 36769684 36769787 0.000000 - 1 gene_id "TGM2"; transcript_id "AK058031:uc002xhs.1";
+chr20 hg19_knownGene exon 36769684 36769787 0.000000 - . gene_id "TGM2"; transcript_id "AK058031:uc002xhs.1";
+chr20 hg19_knownGene CDS 36770466 36770601 0.000000 - 2 gene_id "TGM2"; transcript_id "AK058031:uc002xhs.1";
+chr20 hg19_knownGene exon 36770466 36770601 0.000000 - . gene_id "TGM2"; transcript_id "AK058031:uc002xhs.1";
+chr20 hg19_knownGene CDS 36775119 36775296 0.000000 - 0 gene_id "TGM2"; transcript_id "AK058031:uc002xhs.1";
+chr20 hg19_knownGene exon 36775119 36775296 0.000000 - . gene_id "TGM2"; transcript_id "AK058031:uc002xhs.1";
+chr20 hg19_knownGene CDS 36776363 36776491 0.000000 - 0 gene_id "TGM2"; transcript_id "AK058031:uc002xhs.1";
+chr20 hg19_knownGene exon 36776363 36776491 0.000000 - . gene_id "TGM2"; transcript_id "AK058031:uc002xhs.1";
+chr20 hg19_knownGene CDS 36779341 36779459 0.000000 - 2 gene_id "TGM2"; transcript_id "AK058031:uc002xhs.1";
+chr20 hg19_knownGene exon 36779341 36779459 0.000000 - . gene_id "TGM2"; transcript_id "AK058031:uc002xhs.1";
+chr20 hg19_knownGene CDS 36784249 36784426 0.000000 - 0 gene_id "TGM2"; transcript_id "AK058031:uc002xhs.1";
+chr20 hg19_knownGene exon 36784249 36784426 0.000000 - . gene_id "TGM2"; transcript_id "AK058031:uc002xhs.1";
+chr20 hg19_knownGene CDS 36789829 36790001 0.000000 - 2 gene_id "TGM2"; transcript_id "AK058031:uc002xhs.1";
+chr20 hg19_knownGene exon 36789829 36790001 0.000000 - . gene_id "TGM2"; transcript_id "AK058031:uc002xhs.1";
+chr20 hg19_knownGene CDS 36793591 36793600 0.000000 - 0 gene_id "TGM2"; transcript_id "AK058031:uc002xhs.1";
+chr20 hg19_knownGene exon 36793591 36793700 0.000000 - . gene_id "TGM2"; transcript_id "AK058031:uc002xhs.1";
+chr20 hg19_knownGene CDS 36766486 36766787 0.000000 - 2 gene_id "TGM2"; transcript_id "NM_198951:uc002xht.3";
+chr20 hg19_knownGene exon 36766351 36766787 0.000000 - . gene_id "TGM2"; transcript_id "NM_198951:uc002xht.3";
+chr20 hg19_knownGene CDS 36767814 36768056 0.000000 - 2 gene_id "TGM2"; transcript_id "NM_198951:uc002xht.3";
+chr20 hg19_knownGene exon 36767814 36768056 0.000000 - . gene_id "TGM2"; transcript_id "NM_198951:uc002xht.3";
+chr20 hg19_knownGene CDS 36769684 36769787 0.000000 - 1 gene_id "TGM2"; transcript_id "NM_198951:uc002xht.3";
+chr20 hg19_knownGene exon 36769684 36769787 0.000000 - . gene_id "TGM2"; transcript_id "NM_198951:uc002xht.3";
+chr20 hg19_knownGene CDS 36770466 36770601 0.000000 - 2 gene_id "TGM2"; transcript_id "NM_198951:uc002xht.3";
+chr20 hg19_knownGene exon 36770466 36770601 0.000000 - . gene_id "TGM2"; transcript_id "NM_198951:uc002xht.3";
+chr20 hg19_knownGene CDS 36775119 36775296 0.000000 - 0 gene_id "TGM2"; transcript_id "NM_198951:uc002xht.3";
+chr20 hg19_knownGene exon 36775119 36775296 0.000000 - . gene_id "TGM2"; transcript_id "NM_198951:uc002xht.3";
+chr20 hg19_knownGene CDS 36776363 36776491 0.000000 - 0 gene_id "TGM2"; transcript_id "NM_198951:uc002xht.3";
+chr20 hg19_knownGene exon 36776363 36776491 0.000000 - . gene_id "TGM2"; transcript_id "NM_198951:uc002xht.3";
+chr20 hg19_knownGene CDS 36779341 36779459 0.000000 - 2 gene_id "TGM2"; transcript_id "NM_198951:uc002xht.3";
+chr20 hg19_knownGene exon 36779341 36779459 0.000000 - . gene_id "TGM2"; transcript_id "NM_198951:uc002xht.3";
+chr20 hg19_knownGene CDS 36784249 36784491 0.000000 - 2 gene_id "TGM2"; transcript_id "NM_198951:uc002xht.3";
+chr20 hg19_knownGene exon 36784249 36784491 0.000000 - . gene_id "TGM2"; transcript_id "NM_198951:uc002xht.3";
+chr20 hg19_knownGene CDS 36789822 36790001 0.000000 - 2 gene_id "TGM2"; transcript_id "NM_198951:uc002xht.3";
+chr20 hg19_knownGene exon 36789822 36790001 0.000000 - . gene_id "TGM2"; transcript_id "NM_198951:uc002xht.3";
+chr20 hg19_knownGene CDS 36793591 36793600 0.000000 - 0 gene_id "TGM2"; transcript_id "NM_198951:uc002xht.3";
+chr20 hg19_knownGene exon 36793591 36793700 0.000000 - . gene_id "TGM2"; transcript_id "NM_198951:uc002xht.3";
+chr20 hg19_knownGene CDS 36774931 36775296 0.000000 - 0 gene_id "TGM2"; transcript_id "S81734:uc002xhu.3";
+chr20 hg19_knownGene exon 36773752 36775296 0.000000 - . gene_id "TGM2"; transcript_id "S81734:uc002xhu.3";
+chr20 hg19_knownGene CDS 36776363 36776491 0.000000 - 0 gene_id "TGM2"; transcript_id "S81734:uc002xhu.3";
+chr20 hg19_knownGene exon 36776363 36776491 0.000000 - . gene_id "TGM2"; transcript_id "S81734:uc002xhu.3";
+chr20 hg19_knownGene CDS 36779341 36779459 0.000000 - 2 gene_id "TGM2"; transcript_id "S81734:uc002xhu.3";
+chr20 hg19_knownGene exon 36779341 36779459 0.000000 - . gene_id "TGM2"; transcript_id "S81734:uc002xhu.3";
+chr20 hg19_knownGene CDS 36784249 36784491 0.000000 - 2 gene_id "TGM2"; transcript_id "S81734:uc002xhu.3";
+chr20 hg19_knownGene exon 36784249 36784491 0.000000 - . gene_id "TGM2"; transcript_id "S81734:uc002xhu.3";
+chr20 hg19_knownGene CDS 36789822 36790001 0.000000 - 2 gene_id "TGM2"; transcript_id "S81734:uc002xhu.3";
+chr20 hg19_knownGene exon 36789822 36790001 0.000000 - . gene_id "TGM2"; transcript_id "S81734:uc002xhu.3";
+chr20 hg19_knownGene CDS 36793591 36793600 0.000000 - 0 gene_id "TGM2"; transcript_id "S81734:uc002xhu.3";
+chr20 hg19_knownGene exon 36793591 36793700 0.000000 - . gene_id "TGM2"; transcript_id "S81734:uc002xhu.3";
+chr20 hg19_knownGene CDS 36841447 36842145 0.000000 - 0 gene_id "KIAA1755"; transcript_id "BC033704:uc002xhv.1";
+chr20 hg19_knownGene exon 36838907 36842145 0.000000 - . gene_id "KIAA1755"; transcript_id "BC033704:uc002xhv.1";
+chr20 hg19_knownGene CDS 36845262 36845354 0.000000 - 0 gene_id "KIAA1755"; transcript_id "BC033704:uc002xhv.1";
+chr20 hg19_knownGene exon 36845262 36845407 0.000000 - . gene_id "KIAA1755"; transcript_id "BC033704:uc002xhv.1";
+chr20 hg19_knownGene exon 36845655 36846585 0.000000 - . gene_id "KIAA1755"; transcript_id "BC033704:uc002xhv.1";
+chr20 hg19_knownGene CDS 36841447 36842145 0.000000 - 0 gene_id "KIAA1755"; transcript_id "BC011516:uc002xhw.1";
+chr20 hg19_knownGene exon 36838907 36842145 0.000000 - . gene_id "KIAA1755"; transcript_id "BC011516:uc002xhw.1";
+chr20 hg19_knownGene CDS 36845655 36845720 0.000000 - 0 gene_id "KIAA1755"; transcript_id "BC011516:uc002xhw.1";
+chr20 hg19_knownGene exon 36845655 36846585 0.000000 - . gene_id "KIAA1755"; transcript_id "BC011516:uc002xhw.1";
+chr20 hg19_knownGene CDS 36841447 36842145 0.000000 - 0 gene_id "KIAA1755"; transcript_id "BC029137:uc002xhx.1";
+chr20 hg19_knownGene exon 36838907 36842145 0.000000 - . gene_id "KIAA1755"; transcript_id "BC029137:uc002xhx.1";
+chr20 hg19_knownGene CDS 36845655 36845876 0.000000 - 0 gene_id "KIAA1755"; transcript_id "BC029137:uc002xhx.1";
+chr20 hg19_knownGene exon 36845655 36845876 0.000000 - . gene_id "KIAA1755"; transcript_id "BC029137:uc002xhx.1";
+chr20 hg19_knownGene CDS 36846646 36846768 0.000000 - 0 gene_id "KIAA1755"; transcript_id "BC029137:uc002xhx.1";
+chr20 hg19_knownGene exon 36846646 36846768 0.000000 - . gene_id "KIAA1755"; transcript_id "BC029137:uc002xhx.1";
+chr20 hg19_knownGene CDS 36848032 36848170 0.000000 - 1 gene_id "KIAA1755"; transcript_id "BC029137:uc002xhx.1";
+chr20 hg19_knownGene exon 36848032 36848170 0.000000 - . gene_id "KIAA1755"; transcript_id "BC029137:uc002xhx.1";
+chr20 hg19_knownGene CDS 36850851 36851101 0.000000 - 0 gene_id "KIAA1755"; transcript_id "BC029137:uc002xhx.1";
+chr20 hg19_knownGene exon 36850851 36851546 0.000000 - . gene_id "KIAA1755"; transcript_id "BC029137:uc002xhx.1";
+chr20 hg19_knownGene CDS 36841447 36842145 0.000000 - 0 gene_id "KIAA1755"; transcript_id "NM_001029864:uc002xhy.1";
+chr20 hg19_knownGene exon 36838907 36842145 0.000000 - . gene_id "KIAA1755"; transcript_id "NM_001029864:uc002xhy.1";
+chr20 hg19_knownGene CDS 36845655 36845876 0.000000 - 0 gene_id "KIAA1755"; transcript_id "NM_001029864:uc002xhy.1";
+chr20 hg19_knownGene exon 36845655 36845876 0.000000 - . gene_id "KIAA1755"; transcript_id "NM_001029864:uc002xhy.1";
+chr20 hg19_knownGene CDS 36846646 36846768 0.000000 - 0 gene_id "KIAA1755"; transcript_id "NM_001029864:uc002xhy.1";
+chr20 hg19_knownGene exon 36846646 36846768 0.000000 - . gene_id "KIAA1755"; transcript_id "NM_001029864:uc002xhy.1";
+chr20 hg19_knownGene CDS 36848032 36848170 0.000000 - 1 gene_id "KIAA1755"; transcript_id "NM_001029864:uc002xhy.1";
+chr20 hg19_knownGene exon 36848032 36848170 0.000000 - . gene_id "KIAA1755"; transcript_id "NM_001029864:uc002xhy.1";
+chr20 hg19_knownGene CDS 36850851 36850999 0.000000 - 0 gene_id "KIAA1755"; transcript_id "NM_001029864:uc002xhy.1";
+chr20 hg19_knownGene exon 36850851 36850999 0.000000 - . gene_id "KIAA1755"; transcript_id "NM_001029864:uc002xhy.1";
+chr20 hg19_knownGene CDS 36851940 36852038 0.000000 - 0 gene_id "KIAA1755"; transcript_id "NM_001029864:uc002xhy.1";
+chr20 hg19_knownGene exon 36851940 36852038 0.000000 - . gene_id "KIAA1755"; transcript_id "NM_001029864:uc002xhy.1";
+chr20 hg19_knownGene CDS 36854067 36854183 0.000000 - 0 gene_id "KIAA1755"; transcript_id "NM_001029864:uc002xhy.1";
+chr20 hg19_knownGene exon 36854067 36854183 0.000000 - . gene_id "KIAA1755"; transcript_id "NM_001029864:uc002xhy.1";
+chr20 hg19_knownGene CDS 36855556 36855642 0.000000 - 0 gene_id "KIAA1755"; transcript_id "NM_001029864:uc002xhy.1";
+chr20 hg19_knownGene exon 36855556 36855642 0.000000 - . gene_id "KIAA1755"; transcript_id "NM_001029864:uc002xhy.1";
+chr20 hg19_knownGene CDS 36856549 36856642 0.000000 - 1 gene_id "KIAA1755"; transcript_id "NM_001029864:uc002xhy.1";
+chr20 hg19_knownGene exon 36856549 36856642 0.000000 - . gene_id "KIAA1755"; transcript_id "NM_001029864:uc002xhy.1";
+chr20 hg19_knownGene CDS 36859604 36859727 0.000000 - 2 gene_id "KIAA1755"; transcript_id "NM_001029864:uc002xhy.1";
+chr20 hg19_knownGene exon 36859604 36859727 0.000000 - . gene_id "KIAA1755"; transcript_id "NM_001029864:uc002xhy.1";
+chr20 hg19_knownGene CDS 36867930 36868127 0.000000 - 2 gene_id "KIAA1755"; transcript_id "NM_001029864:uc002xhy.1";
+chr20 hg19_knownGene exon 36867930 36868127 0.000000 - . gene_id "KIAA1755"; transcript_id "NM_001029864:uc002xhy.1";
+chr20 hg19_knownGene CDS 36868984 36870331 0.000000 - 0 gene_id "KIAA1755"; transcript_id "NM_001029864:uc002xhy.1";
+chr20 hg19_knownGene exon 36868984 36870331 0.000000 - . gene_id "KIAA1755"; transcript_id "NM_001029864:uc002xhy.1";
+chr20 hg19_knownGene CDS 36874331 36874528 0.000000 - 0 gene_id "KIAA1755"; transcript_id "NM_001029864:uc002xhy.1";
+chr20 hg19_knownGene exon 36874331 36874528 0.000000 - . gene_id "KIAA1755"; transcript_id "NM_001029864:uc002xhy.1";
+chr20 hg19_knownGene CDS 36888900 36888902 0.000000 - 0 gene_id "KIAA1755"; transcript_id "NM_001029864:uc002xhy.1";
+chr20 hg19_knownGene exon 36888900 36889174 0.000000 - . gene_id "KIAA1755"; transcript_id "NM_001029864:uc002xhy.1";
+chr20 hg19_knownGene CDS 36854040 36854183 0.000000 - 0 gene_id "KIAA1755"; transcript_id "AK096202:uc002xhz.1";
+chr20 hg19_knownGene exon 36853951 36854183 0.000000 - . gene_id "KIAA1755"; transcript_id "AK096202:uc002xhz.1";
+chr20 hg19_knownGene CDS 36855556 36855642 0.000000 - 0 gene_id "KIAA1755"; transcript_id "AK096202:uc002xhz.1";
+chr20 hg19_knownGene exon 36855556 36855642 0.000000 - . gene_id "KIAA1755"; transcript_id "AK096202:uc002xhz.1";
+chr20 hg19_knownGene CDS 36856549 36856642 0.000000 - 1 gene_id "KIAA1755"; transcript_id "AK096202:uc002xhz.1";
+chr20 hg19_knownGene exon 36856549 36856642 0.000000 - . gene_id "KIAA1755"; transcript_id "AK096202:uc002xhz.1";
+chr20 hg19_knownGene CDS 36859604 36859727 0.000000 - 2 gene_id "KIAA1755"; transcript_id "AK096202:uc002xhz.1";
+chr20 hg19_knownGene exon 36859604 36859727 0.000000 - . gene_id "KIAA1755"; transcript_id "AK096202:uc002xhz.1";
+chr20 hg19_knownGene CDS 36867930 36868127 0.000000 - 2 gene_id "KIAA1755"; transcript_id "AK096202:uc002xhz.1";
+chr20 hg19_knownGene exon 36867930 36868127 0.000000 - . gene_id "KIAA1755"; transcript_id "AK096202:uc002xhz.1";
+chr20 hg19_knownGene CDS 36868984 36870331 0.000000 - 0 gene_id "KIAA1755"; transcript_id "AK096202:uc002xhz.1";
+chr20 hg19_knownGene exon 36868984 36870331 0.000000 - . gene_id "KIAA1755"; transcript_id "AK096202:uc002xhz.1";
+chr20 hg19_knownGene CDS 36874331 36874528 0.000000 - 0 gene_id "KIAA1755"; transcript_id "AK096202:uc002xhz.1";
+chr20 hg19_knownGene exon 36874331 36874528 0.000000 - . gene_id "KIAA1755"; transcript_id "AK096202:uc002xhz.1";
+chr20 hg19_knownGene CDS 36888900 36888902 0.000000 - 0 gene_id "KIAA1755"; transcript_id "AK096202:uc002xhz.1";
+chr20 hg19_knownGene exon 36888900 36889174 0.000000 - . gene_id "KIAA1755"; transcript_id "AK096202:uc002xhz.1";
+chr20 hg19_knownGene exon 36888577 36888758 0.000000 + . gene_id "AK055854"; transcript_id "AK055854:uc002xia.1";
+chr20 hg19_knownGene exon 36917429 36917559 0.000000 + . gene_id "AK055854"; transcript_id "AK055854:uc002xia.1";
+chr20 hg19_knownGene exon 36919751 36922294 0.000000 + . gene_id "AK055854"; transcript_id "AK055854:uc002xia.1";
+chr20 hg19_knownGene CDS 36932614 36932755 0.000000 + 0 gene_id "BPI"; transcript_id "NM_001725:uc002xib.2";
+chr20 hg19_knownGene exon 36932552 36932755 0.000000 + . gene_id "BPI"; transcript_id "NM_001725:uc002xib.2";
+chr20 hg19_knownGene CDS 36935969 36936083 0.000000 + 2 gene_id "BPI"; transcript_id "NM_001725:uc002xib.2";
+chr20 hg19_knownGene exon 36935969 36936083 0.000000 + . gene_id "BPI"; transcript_id "NM_001725:uc002xib.2";
+chr20 hg19_knownGene CDS 36937332 36937460 0.000000 + 1 gene_id "BPI"; transcript_id "NM_001725:uc002xib.2";
+chr20 hg19_knownGene exon 36937332 36937460 0.000000 + . gene_id "BPI"; transcript_id "NM_001725:uc002xib.2";
+chr20 hg19_knownGene CDS 36938893 36939054 0.000000 + 1 gene_id "BPI"; transcript_id "NM_001725:uc002xib.2";
+chr20 hg19_knownGene exon 36938893 36939054 0.000000 + . gene_id "BPI"; transcript_id "NM_001725:uc002xib.2";
+chr20 hg19_knownGene CDS 36940276 36940339 0.000000 + 1 gene_id "BPI"; transcript_id "NM_001725:uc002xib.2";
+chr20 hg19_knownGene exon 36940276 36940339 0.000000 + . gene_id "BPI"; transcript_id "NM_001725:uc002xib.2";
+chr20 hg19_knownGene CDS 36946815 36946878 0.000000 + 0 gene_id "BPI"; transcript_id "NM_001725:uc002xib.2";
+chr20 hg19_knownGene exon 36946815 36946878 0.000000 + . gene_id "BPI"; transcript_id "NM_001725:uc002xib.2";
+chr20 hg19_knownGene CDS 36948585 36948676 0.000000 + 2 gene_id "BPI"; transcript_id "NM_001725:uc002xib.2";
+chr20 hg19_knownGene exon 36948585 36948676 0.000000 + . gene_id "BPI"; transcript_id "NM_001725:uc002xib.2";
+chr20 hg19_knownGene CDS 36952272 36952448 0.000000 + 0 gene_id "BPI"; transcript_id "NM_001725:uc002xib.2";
+chr20 hg19_knownGene exon 36952272 36952448 0.000000 + . gene_id "BPI"; transcript_id "NM_001725:uc002xib.2";
+chr20 hg19_knownGene CDS 36953176 36953235 0.000000 + 0 gene_id "BPI"; transcript_id "NM_001725:uc002xib.2";
+chr20 hg19_knownGene exon 36953176 36953235 0.000000 + . gene_id "BPI"; transcript_id "NM_001725:uc002xib.2";
+chr20 hg19_knownGene CDS 36954667 36954834 0.000000 + 0 gene_id "BPI"; transcript_id "NM_001725:uc002xib.2";
+chr20 hg19_knownGene exon 36954667 36954834 0.000000 + . gene_id "BPI"; transcript_id "NM_001725:uc002xib.2";
+chr20 hg19_knownGene CDS 36955990 36956057 0.000000 + 0 gene_id "BPI"; transcript_id "NM_001725:uc002xib.2";
+chr20 hg19_knownGene exon 36955990 36956057 0.000000 + . gene_id "BPI"; transcript_id "NM_001725:uc002xib.2";
+chr20 hg19_knownGene CDS 36959450 36959492 0.000000 + 1 gene_id "BPI"; transcript_id "NM_001725:uc002xib.2";
+chr20 hg19_knownGene exon 36959450 36959492 0.000000 + . gene_id "BPI"; transcript_id "NM_001725:uc002xib.2";
+chr20 hg19_knownGene CDS 36962832 36962895 0.000000 + 0 gene_id "BPI"; transcript_id "NM_001725:uc002xib.2";
+chr20 hg19_knownGene exon 36962832 36962895 0.000000 + . gene_id "BPI"; transcript_id "NM_001725:uc002xib.2";
+chr20 hg19_knownGene CDS 36964000 36964076 0.000000 + 2 gene_id "BPI"; transcript_id "NM_001725:uc002xib.2";
+chr20 hg19_knownGene exon 36964000 36964076 0.000000 + . gene_id "BPI"; transcript_id "NM_001725:uc002xib.2";
+chr20 hg19_knownGene CDS 36965548 36965583 0.000000 + 0 gene_id "BPI"; transcript_id "NM_001725:uc002xib.2";
+chr20 hg19_knownGene exon 36965548 36965905 0.000000 + . gene_id "BPI"; transcript_id "NM_001725:uc002xib.2";
+chr20 hg19_knownGene CDS 36974920 36975043 0.000000 + 0 gene_id "LBP"; transcript_id "NM_004139:uc002xic.1";
+chr20 hg19_knownGene exon 36974885 36975043 0.000000 + . gene_id "LBP"; transcript_id "NM_004139:uc002xic.1";
+chr20 hg19_knownGene CDS 36977951 36978065 0.000000 + 2 gene_id "LBP"; transcript_id "NM_004139:uc002xic.1";
+chr20 hg19_knownGene exon 36977951 36978065 0.000000 + . gene_id "LBP"; transcript_id "NM_004139:uc002xic.1";
+chr20 hg19_knownGene CDS 36979214 36979342 0.000000 + 1 gene_id "LBP"; transcript_id "NM_004139:uc002xic.1";
+chr20 hg19_knownGene exon 36979214 36979342 0.000000 + . gene_id "LBP"; transcript_id "NM_004139:uc002xic.1";
+chr20 hg19_knownGene CDS 36982684 36982839 0.000000 + 1 gene_id "LBP"; transcript_id "NM_004139:uc002xic.1";
+chr20 hg19_knownGene exon 36982684 36982839 0.000000 + . gene_id "LBP"; transcript_id "NM_004139:uc002xic.1";
+chr20 hg19_knownGene CDS 36983746 36983809 0.000000 + 1 gene_id "LBP"; transcript_id "NM_004139:uc002xic.1";
+chr20 hg19_knownGene exon 36983746 36983809 0.000000 + . gene_id "LBP"; transcript_id "NM_004139:uc002xic.1";
+chr20 hg19_knownGene CDS 36989358 36989421 0.000000 + 0 gene_id "LBP"; transcript_id "NM_004139:uc002xic.1";
+chr20 hg19_knownGene exon 36989358 36989421 0.000000 + . gene_id "LBP"; transcript_id "NM_004139:uc002xic.1";
+chr20 hg19_knownGene CDS 36992629 36992720 0.000000 + 2 gene_id "LBP"; transcript_id "NM_004139:uc002xic.1";
+chr20 hg19_knownGene exon 36992629 36992720 0.000000 + . gene_id "LBP"; transcript_id "NM_004139:uc002xic.1";
+chr20 hg19_knownGene CDS 36993230 36993406 0.000000 + 0 gene_id "LBP"; transcript_id "NM_004139:uc002xic.1";
+chr20 hg19_knownGene exon 36993230 36993406 0.000000 + . gene_id "LBP"; transcript_id "NM_004139:uc002xic.1";
+chr20 hg19_knownGene CDS 36995413 36995472 0.000000 + 0 gene_id "LBP"; transcript_id "NM_004139:uc002xic.1";
+chr20 hg19_knownGene exon 36995413 36995472 0.000000 + . gene_id "LBP"; transcript_id "NM_004139:uc002xic.1";
+chr20 hg19_knownGene CDS 36997639 36997806 0.000000 + 0 gene_id "LBP"; transcript_id "NM_004139:uc002xic.1";
+chr20 hg19_knownGene exon 36997639 36997806 0.000000 + . gene_id "LBP"; transcript_id "NM_004139:uc002xic.1";
+chr20 hg19_knownGene CDS 36999382 36999449 0.000000 + 0 gene_id "LBP"; transcript_id "NM_004139:uc002xic.1";
+chr20 hg19_knownGene exon 36999382 36999449 0.000000 + . gene_id "LBP"; transcript_id "NM_004139:uc002xic.1";
+chr20 hg19_knownGene CDS 36999924 36999966 0.000000 + 1 gene_id "LBP"; transcript_id "NM_004139:uc002xic.1";
+chr20 hg19_knownGene exon 36999924 36999966 0.000000 + . gene_id "LBP"; transcript_id "NM_004139:uc002xic.1";
+chr20 hg19_knownGene CDS 37001716 37001779 0.000000 + 0 gene_id "LBP"; transcript_id "NM_004139:uc002xic.1";
+chr20 hg19_knownGene exon 37001716 37001779 0.000000 + . gene_id "LBP"; transcript_id "NM_004139:uc002xic.1";
+chr20 hg19_knownGene CDS 37002581 37002657 0.000000 + 2 gene_id "LBP"; transcript_id "NM_004139:uc002xic.1";
+chr20 hg19_knownGene exon 37002581 37002657 0.000000 + . gene_id "LBP"; transcript_id "NM_004139:uc002xic.1";
+chr20 hg19_knownGene CDS 37005267 37005308 0.000000 + 0 gene_id "LBP"; transcript_id "NM_004139:uc002xic.1";
+chr20 hg19_knownGene exon 37005267 37005653 0.000000 + . gene_id "LBP"; transcript_id "NM_004139:uc002xic.1";
+chr20 hg19_knownGene exon 37034660 37034969 0.000000 - . gene_id "AX746690"; transcript_id "AX746690:uc002xid.1";
+chr20 hg19_knownGene exon 37043753 37045444 0.000000 - . gene_id "AX746690"; transcript_id "AX746690:uc002xid.1";
+chr20 hg19_knownGene exon 37053843 37053978 0.000000 - . gene_id "SNORA71B"; transcript_id "NR_002910:uc002xik.2";
+chr20 hg19_knownGene exon 37055949 37056086 0.000000 - . gene_id "SNORA71A"; transcript_id "NR_002911:uc002xim.1";
+chr20 hg19_knownGene exon 37049239 37049547 0.000000 - . gene_id "LOC388796"; transcript_id "AK022745:uc002xie.3";
+chr20 hg19_knownGene exon 37049653 37049745 0.000000 - . gene_id "LOC388796"; transcript_id "AK022745:uc002xie.3";
+chr20 hg19_knownGene exon 37055062 37055146 0.000000 - . gene_id "LOC388796"; transcript_id "AK022745:uc002xie.3";
+chr20 hg19_knownGene exon 37056323 37057973 0.000000 - . gene_id "LOC388796"; transcript_id "AK022745:uc002xie.3";
+chr20 hg19_knownGene exon 37058310 37058447 0.000000 - . gene_id "SNORA71C"; transcript_id "NR_003017:uc002xin.1";
+chr20 hg19_knownGene exon 37062505 37062642 0.000000 - . gene_id "SNORA71D"; transcript_id "NR_003018:uc002xio.1";
+chr20 hg19_knownGene exon 37049239 37049547 0.000000 - . gene_id "LOC388796"; transcript_id "NR_015366:uc002xii.3";
+chr20 hg19_knownGene exon 37049653 37049745 0.000000 - . gene_id "LOC388796"; transcript_id "NR_015366:uc002xii.3";
+chr20 hg19_knownGene exon 37050739 37050888 0.000000 - . gene_id "LOC388796"; transcript_id "NR_015366:uc002xii.3";
+chr20 hg19_knownGene exon 37054583 37054700 0.000000 - . gene_id "LOC388796"; transcript_id "NR_015366:uc002xii.3";
+chr20 hg19_knownGene exon 37055062 37055146 0.000000 - . gene_id "LOC388796"; transcript_id "NR_015366:uc002xii.3";
+chr20 hg19_knownGene exon 37059684 37059755 0.000000 - . gene_id "LOC388796"; transcript_id "NR_015366:uc002xii.3";
+chr20 hg19_knownGene exon 37063147 37063269 0.000000 - . gene_id "LOC388796"; transcript_id "NR_015366:uc002xii.3";
+chr20 hg19_knownGene exon 37063840 37063962 0.000000 - . gene_id "LOC388796"; transcript_id "NR_015366:uc002xii.3";
+chr20 hg19_knownGene exon 37049239 37049547 0.000000 - . gene_id "LOC388796"; transcript_id "BC012894:uc002xig.3";
+chr20 hg19_knownGene exon 37049653 37050888 0.000000 - . gene_id "LOC388796"; transcript_id "BC012894:uc002xig.3";
+chr20 hg19_knownGene exon 37054583 37054696 0.000000 - . gene_id "LOC388796"; transcript_id "BC012894:uc002xig.3";
+chr20 hg19_knownGene exon 37055062 37055146 0.000000 - . gene_id "LOC388796"; transcript_id "BC012894:uc002xig.3";
+chr20 hg19_knownGene exon 37056323 37056409 0.000000 - . gene_id "LOC388796"; transcript_id "BC012894:uc002xig.3";
+chr20 hg19_knownGene exon 37059684 37059755 0.000000 - . gene_id "LOC388796"; transcript_id "BC012894:uc002xig.3";
+chr20 hg19_knownGene exon 37063147 37063269 0.000000 - . gene_id "LOC388796"; transcript_id "BC012894:uc002xig.3";
+chr20 hg19_knownGene exon 37063840 37063962 0.000000 - . gene_id "LOC388796"; transcript_id "BC012894:uc002xig.3";
+chr20 hg19_knownGene exon 37049239 37049547 0.000000 - . gene_id "LOC388796"; transcript_id "BC052370:uc002xij.3";
+chr20 hg19_knownGene exon 37049653 37049745 0.000000 - . gene_id "LOC388796"; transcript_id "BC052370:uc002xij.3";
+chr20 hg19_knownGene exon 37055062 37055146 0.000000 - . gene_id "LOC388796"; transcript_id "BC052370:uc002xij.3";
+chr20 hg19_knownGene exon 37059684 37059755 0.000000 - . gene_id "LOC388796"; transcript_id "BC052370:uc002xij.3";
+chr20 hg19_knownGene exon 37063147 37063269 0.000000 - . gene_id "LOC388796"; transcript_id "BC052370:uc002xij.3";
+chr20 hg19_knownGene exon 37063840 37063962 0.000000 - . gene_id "LOC388796"; transcript_id "BC052370:uc002xij.3";
+chr20 hg19_knownGene exon 37049239 37049547 0.000000 - . gene_id "LOC388796"; transcript_id "NR_027241:uc002xif.3";
+chr20 hg19_knownGene exon 37049653 37049745 0.000000 - . gene_id "LOC388796"; transcript_id "NR_027241:uc002xif.3";
+chr20 hg19_knownGene exon 37050734 37050888 0.000000 - . gene_id "LOC388796"; transcript_id "NR_027241:uc002xif.3";
+chr20 hg19_knownGene exon 37055062 37055146 0.000000 - . gene_id "LOC388796"; transcript_id "NR_027241:uc002xif.3";
+chr20 hg19_knownGene exon 37059684 37059755 0.000000 - . gene_id "LOC388796"; transcript_id "NR_027241:uc002xif.3";
+chr20 hg19_knownGene exon 37063147 37063269 0.000000 - . gene_id "LOC388796"; transcript_id "NR_027241:uc002xif.3";
+chr20 hg19_knownGene exon 37063670 37064018 0.000000 - . gene_id "LOC388796"; transcript_id "NR_027241:uc002xif.3";
+chr20 hg19_knownGene exon 37076726 37078147 0.000000 + . gene_id "SNORA39"; transcript_id "NR_002986:uc002xip.2";
+chr20 hg19_knownGene exon 37075297 37075655 0.000000 + . gene_id "SNHG11"; transcript_id "NR_003239:uc002xiq.1";
+chr20 hg19_knownGene exon 37076109 37076266 0.000000 + . gene_id "SNHG11"; transcript_id "NR_003239:uc002xiq.1";
+chr20 hg19_knownGene exon 37077305 37077373 0.000000 + . gene_id "SNHG11"; transcript_id "NR_003239:uc002xiq.1";
+chr20 hg19_knownGene exon 37078979 37079090 0.000000 + . gene_id "SNHG11"; transcript_id "NR_003239:uc002xiq.1";
+chr20 hg19_knownGene exon 37079176 37079564 0.000000 + . gene_id "SNHG11"; transcript_id "NR_003239:uc002xiq.1";
+chr20 hg19_knownGene exon 37075297 37077373 0.000000 + . gene_id "SNHG11"; transcript_id "BC040237:uc002xir.1";
+chr20 hg19_knownGene exon 37078979 37079090 0.000000 + . gene_id "SNHG11"; transcript_id "BC040237:uc002xir.1";
+chr20 hg19_knownGene exon 37079176 37079564 0.000000 + . gene_id "SNHG11"; transcript_id "BC040237:uc002xir.1";
+chr20 hg19_knownGene exon 37075297 37077373 0.000000 + . gene_id "SNHG11"; transcript_id "AK055434:uc002xis.1";
+chr20 hg19_knownGene exon 37078905 37079090 0.000000 + . gene_id "SNHG11"; transcript_id "AK055434:uc002xis.1";
+chr20 hg19_knownGene exon 37079176 37079564 0.000000 + . gene_id "SNHG11"; transcript_id "AK055434:uc002xis.1";
+chr20 hg19_knownGene exon 37075328 37076266 0.000000 + . gene_id "SNHG11"; transcript_id "BC021083:uc002xit.1";
+chr20 hg19_knownGene exon 37077305 37077373 0.000000 + . gene_id "SNHG11"; transcript_id "BC021083:uc002xit.1";
+chr20 hg19_knownGene exon 37078905 37079090 0.000000 + . gene_id "SNHG11"; transcript_id "BC021083:uc002xit.1";
+chr20 hg19_knownGene exon 37079176 37079564 0.000000 + . gene_id "SNHG11"; transcript_id "BC021083:uc002xit.1";
+chr20 hg19_knownGene exon 37075328 37076266 0.000000 + . gene_id "SNHG11"; transcript_id "AF497716:uc002xiu.1";
+chr20 hg19_knownGene exon 37077305 37077373 0.000000 + . gene_id "SNHG11"; transcript_id "AF497716:uc002xiu.1";
+chr20 hg19_knownGene exon 37078979 37079090 0.000000 + . gene_id "SNHG11"; transcript_id "AF497716:uc002xiu.1";
+chr20 hg19_knownGene exon 37079176 37079564 0.000000 + . gene_id "SNHG11"; transcript_id "AF497716:uc002xiu.1";
+chr20 hg19_knownGene exon 37101486 37101712 0.000000 + . gene_id "RALGAPB"; transcript_id "AK304242:uc010zvz.1";
+chr20 hg19_knownGene CDS 37117076 37117261 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AK304242:uc010zvz.1";
+chr20 hg19_knownGene exon 37117046 37117261 0.000000 + . gene_id "RALGAPB"; transcript_id "AK304242:uc010zvz.1";
+chr20 hg19_knownGene CDS 37121573 37121775 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AK304242:uc010zvz.1";
+chr20 hg19_knownGene exon 37121573 37121775 0.000000 + . gene_id "RALGAPB"; transcript_id "AK304242:uc010zvz.1";
+chr20 hg19_knownGene CDS 37125996 37126159 0.000000 + 1 gene_id "RALGAPB"; transcript_id "AK304242:uc010zvz.1";
+chr20 hg19_knownGene exon 37125996 37126159 0.000000 + . gene_id "RALGAPB"; transcript_id "AK304242:uc010zvz.1";
+chr20 hg19_knownGene CDS 37128090 37128276 0.000000 + 2 gene_id "RALGAPB"; transcript_id "AK304242:uc010zvz.1";
+chr20 hg19_knownGene exon 37128090 37128276 0.000000 + . gene_id "RALGAPB"; transcript_id "AK304242:uc010zvz.1";
+chr20 hg19_knownGene CDS 37137720 37137851 0.000000 + 1 gene_id "RALGAPB"; transcript_id "AK304242:uc010zvz.1";
+chr20 hg19_knownGene exon 37137720 37137851 0.000000 + . gene_id "RALGAPB"; transcript_id "AK304242:uc010zvz.1";
+chr20 hg19_knownGene CDS 37144835 37145013 0.000000 + 1 gene_id "RALGAPB"; transcript_id "AK304242:uc010zvz.1";
+chr20 hg19_knownGene exon 37144835 37145013 0.000000 + . gene_id "RALGAPB"; transcript_id "AK304242:uc010zvz.1";
+chr20 hg19_knownGene CDS 37146149 37146297 0.000000 + 2 gene_id "RALGAPB"; transcript_id "AK304242:uc010zvz.1";
+chr20 hg19_knownGene exon 37146149 37146297 0.000000 + . gene_id "RALGAPB"; transcript_id "AK304242:uc010zvz.1";
+chr20 hg19_knownGene CDS 37146427 37146643 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AK304242:uc010zvz.1";
+chr20 hg19_knownGene exon 37146427 37146643 0.000000 + . gene_id "RALGAPB"; transcript_id "AK304242:uc010zvz.1";
+chr20 hg19_knownGene CDS 37153421 37153434 0.000000 + 2 gene_id "RALGAPB"; transcript_id "AK304242:uc010zvz.1";
+chr20 hg19_knownGene exon 37153421 37153588 0.000000 + . gene_id "RALGAPB"; transcript_id "AK304242:uc010zvz.1";
+chr20 hg19_knownGene CDS 37137799 37137851 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AK125916:uc002xja.1";
+chr20 hg19_knownGene exon 37137720 37137851 0.000000 + . gene_id "RALGAPB"; transcript_id "AK125916:uc002xja.1";
+chr20 hg19_knownGene CDS 37144835 37145013 0.000000 + 1 gene_id "RALGAPB"; transcript_id "AK125916:uc002xja.1";
+chr20 hg19_knownGene exon 37144835 37145013 0.000000 + . gene_id "RALGAPB"; transcript_id "AK125916:uc002xja.1";
+chr20 hg19_knownGene CDS 37146149 37146297 0.000000 + 2 gene_id "RALGAPB"; transcript_id "AK125916:uc002xja.1";
+chr20 hg19_knownGene exon 37146149 37146297 0.000000 + . gene_id "RALGAPB"; transcript_id "AK125916:uc002xja.1";
+chr20 hg19_knownGene CDS 37146427 37146643 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AK125916:uc002xja.1";
+chr20 hg19_knownGene exon 37146427 37146643 0.000000 + . gene_id "RALGAPB"; transcript_id "AK125916:uc002xja.1";
+chr20 hg19_knownGene CDS 37150140 37150341 0.000000 + 2 gene_id "RALGAPB"; transcript_id "AK125916:uc002xja.1";
+chr20 hg19_knownGene exon 37150140 37150341 0.000000 + . gene_id "RALGAPB"; transcript_id "AK125916:uc002xja.1";
+chr20 hg19_knownGene CDS 37153421 37153588 0.000000 + 1 gene_id "RALGAPB"; transcript_id "AK125916:uc002xja.1";
+chr20 hg19_knownGene exon 37153421 37153588 0.000000 + . gene_id "RALGAPB"; transcript_id "AK125916:uc002xja.1";
+chr20 hg19_knownGene CDS 37154047 37154161 0.000000 + 1 gene_id "RALGAPB"; transcript_id "AK125916:uc002xja.1";
+chr20 hg19_knownGene exon 37154047 37154161 0.000000 + . gene_id "RALGAPB"; transcript_id "AK125916:uc002xja.1";
+chr20 hg19_knownGene CDS 37154538 37154685 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AK125916:uc002xja.1";
+chr20 hg19_knownGene exon 37154538 37154685 0.000000 + . gene_id "RALGAPB"; transcript_id "AK125916:uc002xja.1";
+chr20 hg19_knownGene CDS 37159810 37159874 0.000000 + 2 gene_id "RALGAPB"; transcript_id "AK125916:uc002xja.1";
+chr20 hg19_knownGene exon 37159810 37159874 0.000000 + . gene_id "RALGAPB"; transcript_id "AK125916:uc002xja.1";
+chr20 hg19_knownGene CDS 37161373 37161502 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AK125916:uc002xja.1";
+chr20 hg19_knownGene exon 37161373 37161502 0.000000 + . gene_id "RALGAPB"; transcript_id "AK125916:uc002xja.1";
+chr20 hg19_knownGene CDS 37163717 37163850 0.000000 + 2 gene_id "RALGAPB"; transcript_id "AK125916:uc002xja.1";
+chr20 hg19_knownGene exon 37163717 37163850 0.000000 + . gene_id "RALGAPB"; transcript_id "AK125916:uc002xja.1";
+chr20 hg19_knownGene CDS 37168419 37168601 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AK125916:uc002xja.1";
+chr20 hg19_knownGene exon 37168419 37168601 0.000000 + . gene_id "RALGAPB"; transcript_id "AK125916:uc002xja.1";
+chr20 hg19_knownGene CDS 37169684 37169835 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AK125916:uc002xja.1";
+chr20 hg19_knownGene exon 37169684 37169835 0.000000 + . gene_id "RALGAPB"; transcript_id "AK125916:uc002xja.1";
+chr20 hg19_knownGene CDS 37174886 37175090 0.000000 + 1 gene_id "RALGAPB"; transcript_id "AK125916:uc002xja.1";
+chr20 hg19_knownGene exon 37174886 37176749 0.000000 + . gene_id "RALGAPB"; transcript_id "AK125916:uc002xja.1";
+chr20 hg19_knownGene CDS 37117076 37117261 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene exon 37117046 37117261 0.000000 + . gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene CDS 37121573 37121775 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene exon 37121573 37121775 0.000000 + . gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene CDS 37125996 37126159 0.000000 + 1 gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene exon 37125996 37126159 0.000000 + . gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene CDS 37128090 37128276 0.000000 + 2 gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene exon 37128090 37128276 0.000000 + . gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene CDS 37137720 37137851 0.000000 + 1 gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene exon 37137720 37137851 0.000000 + . gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene CDS 37144835 37145013 0.000000 + 1 gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene exon 37144835 37145013 0.000000 + . gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene CDS 37146149 37146297 0.000000 + 2 gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene exon 37146149 37146297 0.000000 + . gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene CDS 37146427 37146643 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene exon 37146427 37146643 0.000000 + . gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene CDS 37150140 37150341 0.000000 + 2 gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene exon 37150140 37150341 0.000000 + . gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene CDS 37153421 37153588 0.000000 + 1 gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene exon 37153421 37153588 0.000000 + . gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene CDS 37154047 37154161 0.000000 + 1 gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene exon 37154047 37154161 0.000000 + . gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene CDS 37154538 37154685 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene exon 37154538 37154685 0.000000 + . gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene CDS 37159810 37159874 0.000000 + 2 gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene exon 37159810 37159874 0.000000 + . gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene CDS 37161373 37161502 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene exon 37161373 37161502 0.000000 + . gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene CDS 37163717 37163850 0.000000 + 2 gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene exon 37163717 37163850 0.000000 + . gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene CDS 37168419 37168601 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene exon 37168419 37168601 0.000000 + . gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene CDS 37169684 37169835 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene exon 37169684 37169835 0.000000 + . gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene CDS 37174886 37174996 0.000000 + 1 gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene exon 37174886 37174996 0.000000 + . gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene CDS 37203545 37203623 0.000000 + 1 gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene exon 37203545 37203711 0.000000 + . gene_id "RALGAPB"; transcript_id "AK123576:uc002xiy.1";
+chr20 hg19_knownGene exon 37101486 37101712 0.000000 + . gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene CDS 37117076 37117261 0.000000 + 0 gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene exon 37117046 37117261 0.000000 + . gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene CDS 37121573 37121775 0.000000 + 0 gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene exon 37121573 37121775 0.000000 + . gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene CDS 37125996 37126159 0.000000 + 1 gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene exon 37125996 37126159 0.000000 + . gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene CDS 37128090 37128276 0.000000 + 2 gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene exon 37128090 37128276 0.000000 + . gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene CDS 37137720 37137851 0.000000 + 1 gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene exon 37137720 37137851 0.000000 + . gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene CDS 37144835 37145013 0.000000 + 1 gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene exon 37144835 37145013 0.000000 + . gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene CDS 37146149 37146297 0.000000 + 2 gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene exon 37146149 37146297 0.000000 + . gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene CDS 37146427 37146643 0.000000 + 0 gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene exon 37146427 37146643 0.000000 + . gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene CDS 37150140 37150341 0.000000 + 2 gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene exon 37150140 37150341 0.000000 + . gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene CDS 37153421 37153588 0.000000 + 1 gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene exon 37153421 37153588 0.000000 + . gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene CDS 37154047 37154161 0.000000 + 1 gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene exon 37154047 37154161 0.000000 + . gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene CDS 37154538 37154685 0.000000 + 0 gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene exon 37154538 37154685 0.000000 + . gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene CDS 37159810 37159874 0.000000 + 2 gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene exon 37159810 37159874 0.000000 + . gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene CDS 37161373 37161502 0.000000 + 0 gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene exon 37161373 37161502 0.000000 + . gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene CDS 37163717 37163850 0.000000 + 2 gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene exon 37163717 37163850 0.000000 + . gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene CDS 37168419 37168601 0.000000 + 0 gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene exon 37168419 37168601 0.000000 + . gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene CDS 37169684 37169835 0.000000 + 0 gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene exon 37169684 37169835 0.000000 + . gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene CDS 37174886 37175073 0.000000 + 1 gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene exon 37174886 37175073 0.000000 + . gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene CDS 37177332 37177438 0.000000 + 2 gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene exon 37177332 37177438 0.000000 + . gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene CDS 37179714 37179866 0.000000 + 0 gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene exon 37179714 37179866 0.000000 + . gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene CDS 37182510 37182719 0.000000 + 0 gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene exon 37182510 37182719 0.000000 + . gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene CDS 37186938 37187096 0.000000 + 0 gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene exon 37186938 37187096 0.000000 + . gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene CDS 37191175 37191340 0.000000 + 0 gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene exon 37191175 37191340 0.000000 + . gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene CDS 37194002 37194121 0.000000 + 2 gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene exon 37194002 37194121 0.000000 + . gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene CDS 37195739 37195875 0.000000 + 2 gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene exon 37195739 37195875 0.000000 + . gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene CDS 37198531 37198639 0.000000 + 0 gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene exon 37198531 37198639 0.000000 + . gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene CDS 37199412 37199490 0.000000 + 2 gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene exon 37199412 37199490 0.000000 + . gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene CDS 37202793 37202941 0.000000 + 1 gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene exon 37202793 37202941 0.000000 + . gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene CDS 37203417 37203607 0.000000 + 2 gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene exon 37203417 37207504 0.000000 + . gene_id "RALGAPB"; transcript_id "NM_020336:uc002xiw.3";
+chr20 hg19_knownGene exon 37101486 37101712 0.000000 + . gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene CDS 37117076 37117261 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene exon 37117046 37117261 0.000000 + . gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene CDS 37121573 37121775 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene exon 37121573 37121775 0.000000 + . gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene CDS 37125996 37126159 0.000000 + 1 gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene exon 37125996 37126159 0.000000 + . gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene CDS 37128090 37128276 0.000000 + 2 gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene exon 37128090 37128276 0.000000 + . gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene CDS 37137720 37137851 0.000000 + 1 gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene exon 37137720 37137851 0.000000 + . gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene CDS 37144835 37145013 0.000000 + 1 gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene exon 37144835 37145013 0.000000 + . gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene CDS 37146149 37146297 0.000000 + 2 gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene exon 37146149 37146297 0.000000 + . gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene CDS 37146427 37146643 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene exon 37146427 37146643 0.000000 + . gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene CDS 37150140 37150341 0.000000 + 2 gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene exon 37150140 37150341 0.000000 + . gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene CDS 37153421 37153588 0.000000 + 1 gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene exon 37153421 37153588 0.000000 + . gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene CDS 37154047 37154161 0.000000 + 1 gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene exon 37154047 37154161 0.000000 + . gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene CDS 37154538 37154685 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene exon 37154538 37154685 0.000000 + . gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene CDS 37159810 37159874 0.000000 + 2 gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene exon 37159810 37159874 0.000000 + . gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene CDS 37161373 37161502 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene exon 37161373 37161502 0.000000 + . gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene CDS 37163729 37163850 0.000000 + 2 gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene exon 37163729 37163850 0.000000 + . gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene CDS 37168419 37168601 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene exon 37168419 37168601 0.000000 + . gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene CDS 37169684 37169835 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene exon 37169684 37169835 0.000000 + . gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene CDS 37174886 37175073 0.000000 + 1 gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene exon 37174886 37175073 0.000000 + . gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene CDS 37177332 37177438 0.000000 + 2 gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene exon 37177332 37177438 0.000000 + . gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene CDS 37179714 37179866 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene exon 37179714 37179866 0.000000 + . gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene CDS 37182510 37182719 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene exon 37182510 37182719 0.000000 + . gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene CDS 37186938 37187096 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene exon 37186938 37187096 0.000000 + . gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene CDS 37191175 37191340 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene exon 37191175 37191340 0.000000 + . gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene CDS 37193999 37194121 0.000000 + 2 gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene exon 37193999 37194121 0.000000 + . gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene CDS 37195739 37195875 0.000000 + 2 gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene exon 37195739 37195875 0.000000 + . gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene CDS 37198531 37198639 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene exon 37198531 37198639 0.000000 + . gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene CDS 37199412 37199490 0.000000 + 2 gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene exon 37199412 37199490 0.000000 + . gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene CDS 37202793 37202941 0.000000 + 1 gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene exon 37202793 37202941 0.000000 + . gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene CDS 37203417 37203607 0.000000 + 2 gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene exon 37203417 37207504 0.000000 + . gene_id "RALGAPB"; transcript_id "AB033045:uc002xix.3";
+chr20 hg19_knownGene exon 37121573 37121775 0.000000 + . gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene exon 37126123 37126159 0.000000 + . gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene CDS 37128203 37128276 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene exon 37128090 37128276 0.000000 + . gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene CDS 37137720 37137851 0.000000 + 1 gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene exon 37137720 37137851 0.000000 + . gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene CDS 37144835 37145013 0.000000 + 1 gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene exon 37144835 37145013 0.000000 + . gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene CDS 37146149 37146297 0.000000 + 2 gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene exon 37146149 37146297 0.000000 + . gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene CDS 37146427 37146643 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene exon 37146427 37146643 0.000000 + . gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene CDS 37150140 37150341 0.000000 + 2 gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene exon 37150140 37150341 0.000000 + . gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene CDS 37153421 37153588 0.000000 + 1 gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene exon 37153421 37153588 0.000000 + . gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene CDS 37154047 37154161 0.000000 + 1 gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene exon 37154047 37154161 0.000000 + . gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene CDS 37154538 37154685 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene exon 37154538 37154685 0.000000 + . gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene CDS 37159810 37159874 0.000000 + 2 gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene exon 37159810 37159874 0.000000 + . gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene CDS 37161373 37161502 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene exon 37161373 37161502 0.000000 + . gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene CDS 37163717 37163850 0.000000 + 2 gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene exon 37163717 37163850 0.000000 + . gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene CDS 37168419 37168601 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene exon 37168419 37168601 0.000000 + . gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene CDS 37169684 37169835 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene exon 37169684 37169835 0.000000 + . gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene CDS 37174886 37175073 0.000000 + 1 gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene exon 37174886 37175073 0.000000 + . gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene CDS 37177332 37177438 0.000000 + 2 gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene exon 37177332 37177438 0.000000 + . gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene CDS 37179714 37179866 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene exon 37179714 37179866 0.000000 + . gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene CDS 37182510 37182719 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene exon 37182510 37182719 0.000000 + . gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene CDS 37186938 37187096 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene exon 37186938 37187096 0.000000 + . gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene CDS 37191175 37191340 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene exon 37191175 37191340 0.000000 + . gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene CDS 37193999 37194121 0.000000 + 2 gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene exon 37193999 37194121 0.000000 + . gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene CDS 37195739 37195875 0.000000 + 2 gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene exon 37195739 37195875 0.000000 + . gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene CDS 37198531 37198639 0.000000 + 0 gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene exon 37198531 37198639 0.000000 + . gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene CDS 37199412 37199490 0.000000 + 2 gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene exon 37199412 37199490 0.000000 + . gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene CDS 37202793 37202941 0.000000 + 1 gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene exon 37202793 37202941 0.000000 + . gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene CDS 37203417 37203607 0.000000 + 2 gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene exon 37203417 37207504 0.000000 + . gene_id "RALGAPB"; transcript_id "AL834436:uc002xiz.3";
+chr20 hg19_knownGene CDS 37209894 37210017 0.000000 + 0 gene_id "ADIG"; transcript_id "NM_001018082:uc002xjb.1";
+chr20 hg19_knownGene exon 37209838 37210017 0.000000 + . gene_id "ADIG"; transcript_id "NM_001018082:uc002xjb.1";
+chr20 hg19_knownGene CDS 37214672 37214787 0.000000 + 2 gene_id "ADIG"; transcript_id "NM_001018082:uc002xjb.1";
+chr20 hg19_knownGene exon 37214672 37214900 0.000000 + . gene_id "ADIG"; transcript_id "NM_001018082:uc002xjb.1";
+chr20 hg19_knownGene exon 37216744 37217104 0.000000 + . gene_id "ADIG"; transcript_id "NM_001018082:uc002xjb.1";
+chr20 hg19_knownGene CDS 37230586 37230722 0.000000 + 0 gene_id "ARHGAP40"; transcript_id "NM_001164431:uc021wdn.1";
+chr20 hg19_knownGene exon 37230577 37230722 0.000000 + . gene_id "ARHGAP40"; transcript_id "NM_001164431:uc021wdn.1";
+chr20 hg19_knownGene CDS 37252002 37252201 0.000000 + 1 gene_id "ARHGAP40"; transcript_id "NM_001164431:uc021wdn.1";
+chr20 hg19_knownGene exon 37252002 37252201 0.000000 + . gene_id "ARHGAP40"; transcript_id "NM_001164431:uc021wdn.1";
+chr20 hg19_knownGene CDS 37255641 37255858 0.000000 + 2 gene_id "ARHGAP40"; transcript_id "NM_001164431:uc021wdn.1";
+chr20 hg19_knownGene exon 37255641 37255858 0.000000 + . gene_id "ARHGAP40"; transcript_id "NM_001164431:uc021wdn.1";
+chr20 hg19_knownGene CDS 37257570 37257645 0.000000 + 0 gene_id "ARHGAP40"; transcript_id "NM_001164431:uc021wdn.1";
+chr20 hg19_knownGene exon 37257570 37257645 0.000000 + . gene_id "ARHGAP40"; transcript_id "NM_001164431:uc021wdn.1";
+chr20 hg19_knownGene CDS 37258145 37258293 0.000000 + 2 gene_id "ARHGAP40"; transcript_id "NM_001164431:uc021wdn.1";
+chr20 hg19_knownGene exon 37258145 37258293 0.000000 + . gene_id "ARHGAP40"; transcript_id "NM_001164431:uc021wdn.1";
+chr20 hg19_knownGene CDS 37263263 37263428 0.000000 + 0 gene_id "ARHGAP40"; transcript_id "NM_001164431:uc021wdn.1";
+chr20 hg19_knownGene exon 37263263 37263428 0.000000 + . gene_id "ARHGAP40"; transcript_id "NM_001164431:uc021wdn.1";
+chr20 hg19_knownGene CDS 37266351 37266442 0.000000 + 2 gene_id "ARHGAP40"; transcript_id "NM_001164431:uc021wdn.1";
+chr20 hg19_knownGene exon 37266351 37266442 0.000000 + . gene_id "ARHGAP40"; transcript_id "NM_001164431:uc021wdn.1";
+chr20 hg19_knownGene CDS 37267404 37267481 0.000000 + 0 gene_id "ARHGAP40"; transcript_id "NM_001164431:uc021wdn.1";
+chr20 hg19_knownGene exon 37267404 37267481 0.000000 + . gene_id "ARHGAP40"; transcript_id "NM_001164431:uc021wdn.1";
+chr20 hg19_knownGene CDS 37267870 37268029 0.000000 + 0 gene_id "ARHGAP40"; transcript_id "NM_001164431:uc021wdn.1";
+chr20 hg19_knownGene exon 37267870 37268029 0.000000 + . gene_id "ARHGAP40"; transcript_id "NM_001164431:uc021wdn.1";
+chr20 hg19_knownGene CDS 37270369 37270451 0.000000 + 2 gene_id "ARHGAP40"; transcript_id "NM_001164431:uc021wdn.1";
+chr20 hg19_knownGene exon 37270369 37270451 0.000000 + . gene_id "ARHGAP40"; transcript_id "NM_001164431:uc021wdn.1";
+chr20 hg19_knownGene CDS 37272347 37272553 0.000000 + 0 gene_id "ARHGAP40"; transcript_id "NM_001164431:uc021wdn.1";
+chr20 hg19_knownGene exon 37272347 37272553 0.000000 + . gene_id "ARHGAP40"; transcript_id "NM_001164431:uc021wdn.1";
+chr20 hg19_knownGene CDS 37274690 37274830 0.000000 + 0 gene_id "ARHGAP40"; transcript_id "NM_001164431:uc021wdn.1";
+chr20 hg19_knownGene exon 37274690 37274830 0.000000 + . gene_id "ARHGAP40"; transcript_id "NM_001164431:uc021wdn.1";
+chr20 hg19_knownGene CDS 37275600 37275769 0.000000 + 0 gene_id "ARHGAP40"; transcript_id "NM_001164431:uc021wdn.1";
+chr20 hg19_knownGene exon 37275600 37275769 0.000000 + . gene_id "ARHGAP40"; transcript_id "NM_001164431:uc021wdn.1";
+chr20 hg19_knownGene CDS 37277286 37277341 0.000000 + 1 gene_id "ARHGAP40"; transcript_id "NM_001164431:uc021wdn.1";
+chr20 hg19_knownGene exon 37277286 37277341 0.000000 + . gene_id "ARHGAP40"; transcript_id "NM_001164431:uc021wdn.1";
+chr20 hg19_knownGene CDS 37278400 37278488 0.000000 + 2 gene_id "ARHGAP40"; transcript_id "NM_001164431:uc021wdn.1";
+chr20 hg19_knownGene exon 37278400 37279295 0.000000 + . gene_id "ARHGAP40"; transcript_id "NM_001164431:uc021wdn.1";
+chr20 hg19_knownGene CDS 37353368 37353757 0.000000 + 0 gene_id "SLC32A1"; transcript_id "NM_080552:uc002xjc.3";
+chr20 hg19_knownGene exon 37353105 37353757 0.000000 + . gene_id "SLC32A1"; transcript_id "NM_080552:uc002xjc.3";
+chr20 hg19_knownGene CDS 37356095 37357279 0.000000 + 0 gene_id "SLC32A1"; transcript_id "NM_080552:uc002xjc.3";
+chr20 hg19_knownGene exon 37356095 37358015 0.000000 + . gene_id "SLC32A1"; transcript_id "NM_080552:uc002xjc.3";
+chr20 hg19_knownGene CDS 37377122 37377496 0.000000 + 0 gene_id "ACTR5"; transcript_id "NM_024855:uc002xjd.2";
+chr20 hg19_knownGene exon 37377097 37377496 0.000000 + . gene_id "ACTR5"; transcript_id "NM_024855:uc002xjd.2";
+chr20 hg19_knownGene CDS 37378653 37378882 0.000000 + 0 gene_id "ACTR5"; transcript_id "NM_024855:uc002xjd.2";
+chr20 hg19_knownGene exon 37378653 37378882 0.000000 + . gene_id "ACTR5"; transcript_id "NM_024855:uc002xjd.2";
+chr20 hg19_knownGene CDS 37380774 37380943 0.000000 + 1 gene_id "ACTR5"; transcript_id "NM_024855:uc002xjd.2";
+chr20 hg19_knownGene exon 37380774 37380943 0.000000 + . gene_id "ACTR5"; transcript_id "NM_024855:uc002xjd.2";
+chr20 hg19_knownGene CDS 37383600 37383817 0.000000 + 2 gene_id "ACTR5"; transcript_id "NM_024855:uc002xjd.2";
+chr20 hg19_knownGene exon 37383600 37383817 0.000000 + . gene_id "ACTR5"; transcript_id "NM_024855:uc002xjd.2";
+chr20 hg19_knownGene CDS 37384500 37384682 0.000000 + 0 gene_id "ACTR5"; transcript_id "NM_024855:uc002xjd.2";
+chr20 hg19_knownGene exon 37384500 37384682 0.000000 + . gene_id "ACTR5"; transcript_id "NM_024855:uc002xjd.2";
+chr20 hg19_knownGene CDS 37394045 37394161 0.000000 + 0 gene_id "ACTR5"; transcript_id "NM_024855:uc002xjd.2";
+chr20 hg19_knownGene exon 37394045 37394161 0.000000 + . gene_id "ACTR5"; transcript_id "NM_024855:uc002xjd.2";
+chr20 hg19_knownGene CDS 37394881 37395020 0.000000 + 0 gene_id "ACTR5"; transcript_id "NM_024855:uc002xjd.2";
+chr20 hg19_knownGene exon 37394881 37395020 0.000000 + . gene_id "ACTR5"; transcript_id "NM_024855:uc002xjd.2";
+chr20 hg19_knownGene CDS 37396107 37396239 0.000000 + 1 gene_id "ACTR5"; transcript_id "NM_024855:uc002xjd.2";
+chr20 hg19_knownGene exon 37396107 37396239 0.000000 + . gene_id "ACTR5"; transcript_id "NM_024855:uc002xjd.2";
+chr20 hg19_knownGene CDS 37400202 37400456 0.000000 + 0 gene_id "ACTR5"; transcript_id "NM_024855:uc002xjd.2";
+chr20 hg19_knownGene exon 37400202 37401089 0.000000 + . gene_id "ACTR5"; transcript_id "NM_024855:uc002xjd.2";
+chr20 hg19_knownGene exon 37434348 37434435 0.000000 + . gene_id "PPP1R16B"; transcript_id "AK311244:uc010ggb.1";
+chr20 hg19_knownGene exon 37457986 37459230 0.000000 + . gene_id "PPP1R16B"; transcript_id "AK311244:uc010ggb.1";
+chr20 hg19_knownGene exon 37501411 37501717 0.000000 + . gene_id "Metazoa_SRP"; transcript_id ":uc021wdo.1";
+chr20 hg19_knownGene exon 37434348 37434435 0.000000 + . gene_id "PPP1R16B"; transcript_id "NM_015568:uc002xje.3";
+chr20 hg19_knownGene CDS 37464569 37464818 0.000000 + 0 gene_id "PPP1R16B"; transcript_id "NM_015568:uc002xje.3";
+chr20 hg19_knownGene exon 37464468 37464818 0.000000 + . gene_id "PPP1R16B"; transcript_id "NM_015568:uc002xje.3";
+chr20 hg19_knownGene CDS 37518238 37518308 0.000000 + 2 gene_id "PPP1R16B"; transcript_id "NM_015568:uc002xje.3";
+chr20 hg19_knownGene exon 37518238 37518308 0.000000 + . gene_id "PPP1R16B"; transcript_id "NM_015568:uc002xje.3";
+chr20 hg19_knownGene CDS 37524208 37524353 0.000000 + 0 gene_id "PPP1R16B"; transcript_id "NM_015568:uc002xje.3";
+chr20 hg19_knownGene exon 37524208 37524353 0.000000 + . gene_id "PPP1R16B"; transcript_id "NM_015568:uc002xje.3";
+chr20 hg19_knownGene CDS 37529224 37529327 0.000000 + 1 gene_id "PPP1R16B"; transcript_id "NM_015568:uc002xje.3";
+chr20 hg19_knownGene exon 37529224 37529327 0.000000 + . gene_id "PPP1R16B"; transcript_id "NM_015568:uc002xje.3";
+chr20 hg19_knownGene CDS 37531311 37531435 0.000000 + 2 gene_id "PPP1R16B"; transcript_id "NM_015568:uc002xje.3";
+chr20 hg19_knownGene exon 37531311 37531435 0.000000 + . gene_id "PPP1R16B"; transcript_id "NM_015568:uc002xje.3";
+chr20 hg19_knownGene CDS 37534612 37534737 0.000000 + 0 gene_id "PPP1R16B"; transcript_id "NM_015568:uc002xje.3";
+chr20 hg19_knownGene exon 37534612 37534737 0.000000 + . gene_id "PPP1R16B"; transcript_id "NM_015568:uc002xje.3";
+chr20 hg19_knownGene CDS 37535622 37535697 0.000000 + 0 gene_id "PPP1R16B"; transcript_id "NM_015568:uc002xje.3";
+chr20 hg19_knownGene exon 37535622 37535697 0.000000 + . gene_id "PPP1R16B"; transcript_id "NM_015568:uc002xje.3";
+chr20 hg19_knownGene CDS 37536449 37536578 0.000000 + 2 gene_id "PPP1R16B"; transcript_id "NM_015568:uc002xje.3";
+chr20 hg19_knownGene exon 37536449 37536578 0.000000 + . gene_id "PPP1R16B"; transcript_id "NM_015568:uc002xje.3";
+chr20 hg19_knownGene CDS 37536671 37536836 0.000000 + 1 gene_id "PPP1R16B"; transcript_id "NM_015568:uc002xje.3";
+chr20 hg19_knownGene exon 37536671 37536836 0.000000 + . gene_id "PPP1R16B"; transcript_id "NM_015568:uc002xje.3";
+chr20 hg19_knownGene CDS 37546800 37547306 0.000000 + 0 gene_id "PPP1R16B"; transcript_id "NM_015568:uc002xje.3";
+chr20 hg19_knownGene exon 37546800 37551667 0.000000 + . gene_id "PPP1R16B"; transcript_id "NM_015568:uc002xje.3";
+chr20 hg19_knownGene exon 37434348 37434435 0.000000 + . gene_id "PPP1R16B"; transcript_id "NM_001172735:uc010ggc.3";
+chr20 hg19_knownGene CDS 37464569 37464818 0.000000 + 0 gene_id "PPP1R16B"; transcript_id "NM_001172735:uc010ggc.3";
+chr20 hg19_knownGene exon 37464468 37464818 0.000000 + . gene_id "PPP1R16B"; transcript_id "NM_001172735:uc010ggc.3";
+chr20 hg19_knownGene CDS 37518238 37518308 0.000000 + 2 gene_id "PPP1R16B"; transcript_id "NM_001172735:uc010ggc.3";
+chr20 hg19_knownGene exon 37518238 37518308 0.000000 + . gene_id "PPP1R16B"; transcript_id "NM_001172735:uc010ggc.3";
+chr20 hg19_knownGene CDS 37524208 37524353 0.000000 + 0 gene_id "PPP1R16B"; transcript_id "NM_001172735:uc010ggc.3";
+chr20 hg19_knownGene exon 37524208 37524353 0.000000 + . gene_id "PPP1R16B"; transcript_id "NM_001172735:uc010ggc.3";
+chr20 hg19_knownGene CDS 37529224 37529327 0.000000 + 1 gene_id "PPP1R16B"; transcript_id "NM_001172735:uc010ggc.3";
+chr20 hg19_knownGene exon 37529224 37529327 0.000000 + . gene_id "PPP1R16B"; transcript_id "NM_001172735:uc010ggc.3";
+chr20 hg19_knownGene CDS 37531311 37531435 0.000000 + 2 gene_id "PPP1R16B"; transcript_id "NM_001172735:uc010ggc.3";
+chr20 hg19_knownGene exon 37531311 37531435 0.000000 + . gene_id "PPP1R16B"; transcript_id "NM_001172735:uc010ggc.3";
+chr20 hg19_knownGene CDS 37535622 37535697 0.000000 + 0 gene_id "PPP1R16B"; transcript_id "NM_001172735:uc010ggc.3";
+chr20 hg19_knownGene exon 37535622 37535697 0.000000 + . gene_id "PPP1R16B"; transcript_id "NM_001172735:uc010ggc.3";
+chr20 hg19_knownGene CDS 37536449 37536578 0.000000 + 2 gene_id "PPP1R16B"; transcript_id "NM_001172735:uc010ggc.3";
+chr20 hg19_knownGene exon 37536449 37536578 0.000000 + . gene_id "PPP1R16B"; transcript_id "NM_001172735:uc010ggc.3";
+chr20 hg19_knownGene CDS 37536671 37536836 0.000000 + 1 gene_id "PPP1R16B"; transcript_id "NM_001172735:uc010ggc.3";
+chr20 hg19_knownGene exon 37536671 37536836 0.000000 + . gene_id "PPP1R16B"; transcript_id "NM_001172735:uc010ggc.3";
+chr20 hg19_knownGene CDS 37546800 37547306 0.000000 + 0 gene_id "PPP1R16B"; transcript_id "NM_001172735:uc010ggc.3";
+chr20 hg19_knownGene exon 37546800 37551667 0.000000 + . gene_id "PPP1R16B"; transcript_id "NM_001172735:uc010ggc.3";
+chr20 hg19_knownGene CDS 37554996 37555568 0.000000 + 0 gene_id "FAM83D"; transcript_id "AL832274:uc002xjf.3";
+chr20 hg19_knownGene exon 37554955 37555568 0.000000 + . gene_id "FAM83D"; transcript_id "AL832274:uc002xjf.3";
+chr20 hg19_knownGene CDS 37570602 37570799 0.000000 + 0 gene_id "FAM83D"; transcript_id "AL832274:uc002xjf.3";
+chr20 hg19_knownGene exon 37570602 37574842 0.000000 + . gene_id "FAM83D"; transcript_id "AL832274:uc002xjf.3";
+chr20 hg19_knownGene CDS 37554996 37555568 0.000000 + 0 gene_id "FAM83D"; transcript_id "NM_030919:uc002xjg.3";
+chr20 hg19_knownGene exon 37554955 37555568 0.000000 + . gene_id "FAM83D"; transcript_id "NM_030919:uc002xjg.3";
+chr20 hg19_knownGene CDS 37570602 37570769 0.000000 + 0 gene_id "FAM83D"; transcript_id "NM_030919:uc002xjg.3";
+chr20 hg19_knownGene exon 37570602 37570769 0.000000 + . gene_id "FAM83D"; transcript_id "NM_030919:uc002xjg.3";
+chr20 hg19_knownGene CDS 37576519 37576643 0.000000 + 0 gene_id "FAM83D"; transcript_id "NM_030919:uc002xjg.3";
+chr20 hg19_knownGene exon 37576519 37576643 0.000000 + . gene_id "FAM83D"; transcript_id "NM_030919:uc002xjg.3";
+chr20 hg19_knownGene CDS 37580182 37581160 0.000000 + 1 gene_id "FAM83D"; transcript_id "NM_030919:uc002xjg.3";
+chr20 hg19_knownGene exon 37580182 37581703 0.000000 + . gene_id "FAM83D"; transcript_id "NM_030919:uc002xjg.3";
+chr20 hg19_knownGene exon 37590981 37591050 0.000000 + . gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene exon 37597724 37597857 0.000000 + . gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene exon 37601202 37601294 0.000000 + . gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene exon 37612342 37612419 0.000000 + . gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene exon 37617436 37617560 0.000000 + . gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene CDS 37620112 37620158 0.000000 + 0 gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene exon 37620097 37620158 0.000000 + . gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene CDS 37620999 37621068 0.000000 + 1 gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene exon 37620999 37621068 0.000000 + . gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene CDS 37623464 37623523 0.000000 + 0 gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene exon 37623464 37623523 0.000000 + . gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene CDS 37630373 37630485 0.000000 + 0 gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene exon 37630373 37630485 0.000000 + . gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene CDS 37631415 37631511 0.000000 + 1 gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene exon 37631415 37631511 0.000000 + . gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene CDS 37632392 37632550 0.000000 + 0 gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene exon 37632392 37632550 0.000000 + . gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene CDS 37634789 37634999 0.000000 + 0 gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene exon 37634789 37634999 0.000000 + . gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene CDS 37638923 37639047 0.000000 + 2 gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene exon 37638923 37639047 0.000000 + . gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene CDS 37643523 37643577 0.000000 + 0 gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene exon 37643523 37643577 0.000000 + . gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene CDS 37647447 37647542 0.000000 + 2 gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene exon 37647447 37647542 0.000000 + . gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene CDS 37650484 37650578 0.000000 + 2 gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene exon 37650484 37650578 0.000000 + . gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene CDS 37652333 37652410 0.000000 + 0 gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene exon 37652333 37652410 0.000000 + . gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene CDS 37653873 37654002 0.000000 + 0 gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene exon 37653873 37654002 0.000000 + . gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene CDS 37657061 37657142 0.000000 + 2 gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene exon 37657061 37657142 0.000000 + . gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene CDS 37659347 37659418 0.000000 + 1 gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene exon 37659347 37659418 0.000000 + . gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene CDS 37662849 37662960 0.000000 + 1 gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene exon 37662849 37662960 0.000000 + . gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene CDS 37667142 37667183 0.000000 + 0 gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene exon 37667142 37668366 0.000000 + . gene_id "DHX35"; transcript_id "NR_033905:uc010zwa.2";
+chr20 hg19_knownGene CDS 37591011 37591050 0.000000 + 0 gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene exon 37590981 37591050 0.000000 + . gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene CDS 37597724 37597857 0.000000 + 2 gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene exon 37597724 37597857 0.000000 + . gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene CDS 37601202 37601294 0.000000 + 0 gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene exon 37601202 37601294 0.000000 + . gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene CDS 37612342 37612419 0.000000 + 0 gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene exon 37612342 37612419 0.000000 + . gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene CDS 37617456 37617560 0.000000 + 0 gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene exon 37617456 37617560 0.000000 + . gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene CDS 37620097 37620158 0.000000 + 0 gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene exon 37620097 37620158 0.000000 + . gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene CDS 37620999 37621068 0.000000 + 1 gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene exon 37620999 37621068 0.000000 + . gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene CDS 37623464 37623523 0.000000 + 0 gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene exon 37623464 37623523 0.000000 + . gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene CDS 37630373 37630485 0.000000 + 0 gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene exon 37630373 37630485 0.000000 + . gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene CDS 37631415 37631511 0.000000 + 1 gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene exon 37631415 37631511 0.000000 + . gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene CDS 37632392 37632550 0.000000 + 0 gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene exon 37632392 37632550 0.000000 + . gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene CDS 37634789 37634999 0.000000 + 0 gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene exon 37634789 37634999 0.000000 + . gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene CDS 37638923 37639047 0.000000 + 2 gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene exon 37638923 37639047 0.000000 + . gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene CDS 37643523 37643577 0.000000 + 0 gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene exon 37643523 37643577 0.000000 + . gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene CDS 37647447 37647542 0.000000 + 2 gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene exon 37647447 37647542 0.000000 + . gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene CDS 37650484 37650578 0.000000 + 2 gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene exon 37650484 37650578 0.000000 + . gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene CDS 37652333 37652410 0.000000 + 0 gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene exon 37652333 37652410 0.000000 + . gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene CDS 37653873 37654002 0.000000 + 0 gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene exon 37653873 37654002 0.000000 + . gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene CDS 37657061 37657142 0.000000 + 2 gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene exon 37657061 37657142 0.000000 + . gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene CDS 37659347 37659418 0.000000 + 1 gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene exon 37659347 37659418 0.000000 + . gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene CDS 37662849 37662960 0.000000 + 1 gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene exon 37662849 37662960 0.000000 + . gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene CDS 37667142 37667183 0.000000 + 0 gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene exon 37667142 37668366 0.000000 + . gene_id "DHX35"; transcript_id "NM_021931:uc002xjh.3";
+chr20 hg19_knownGene CDS 37591011 37591050 0.000000 + 0 gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene exon 37590981 37591050 0.000000 + . gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene CDS 37597724 37597857 0.000000 + 2 gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene exon 37597724 37597857 0.000000 + . gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene CDS 37612342 37612419 0.000000 + 0 gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene exon 37612342 37612419 0.000000 + . gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene CDS 37617456 37617560 0.000000 + 0 gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene exon 37617456 37617560 0.000000 + . gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene CDS 37620097 37620158 0.000000 + 0 gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene exon 37620097 37620158 0.000000 + . gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene CDS 37620999 37621068 0.000000 + 1 gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene exon 37620999 37621068 0.000000 + . gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene CDS 37623464 37623523 0.000000 + 0 gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene exon 37623464 37623523 0.000000 + . gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene CDS 37630373 37630485 0.000000 + 0 gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene exon 37630373 37630485 0.000000 + . gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene CDS 37631415 37631511 0.000000 + 1 gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene exon 37631415 37631511 0.000000 + . gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene CDS 37632392 37632550 0.000000 + 0 gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene exon 37632392 37632550 0.000000 + . gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene CDS 37634789 37634999 0.000000 + 0 gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene exon 37634789 37634999 0.000000 + . gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene CDS 37638923 37639047 0.000000 + 2 gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene exon 37638923 37639047 0.000000 + . gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene CDS 37643523 37643577 0.000000 + 0 gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene exon 37643523 37643577 0.000000 + . gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene CDS 37647447 37647542 0.000000 + 2 gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene exon 37647447 37647542 0.000000 + . gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene CDS 37650484 37650578 0.000000 + 2 gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene exon 37650484 37650578 0.000000 + . gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene CDS 37652333 37652410 0.000000 + 0 gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene exon 37652333 37652410 0.000000 + . gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene CDS 37653873 37654002 0.000000 + 0 gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene exon 37653873 37654002 0.000000 + . gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene CDS 37657061 37657142 0.000000 + 2 gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene exon 37657061 37657142 0.000000 + . gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene CDS 37659347 37659418 0.000000 + 1 gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene exon 37659347 37659418 0.000000 + . gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene CDS 37662849 37662960 0.000000 + 1 gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene exon 37662849 37662960 0.000000 + . gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene CDS 37667142 37667183 0.000000 + 0 gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene exon 37667142 37668366 0.000000 + . gene_id "DHX35"; transcript_id "NM_001190809:uc010zwc.2";
+chr20 hg19_knownGene exon 37590981 37591050 0.000000 + . gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene exon 37597724 37597857 0.000000 + . gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene exon 37601207 37601294 0.000000 + . gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene exon 37612342 37612419 0.000000 + . gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene exon 37617456 37617560 0.000000 + . gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene CDS 37620112 37620158 0.000000 + 0 gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene exon 37620097 37620158 0.000000 + . gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene CDS 37620999 37621068 0.000000 + 1 gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene exon 37620999 37621068 0.000000 + . gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene CDS 37623464 37623523 0.000000 + 0 gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene exon 37623464 37623523 0.000000 + . gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene CDS 37630373 37630485 0.000000 + 0 gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene exon 37630373 37630485 0.000000 + . gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene CDS 37631415 37631511 0.000000 + 1 gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene exon 37631415 37631511 0.000000 + . gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene CDS 37632392 37632550 0.000000 + 0 gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene exon 37632392 37632550 0.000000 + . gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene CDS 37634789 37634999 0.000000 + 0 gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene exon 37634789 37634999 0.000000 + . gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene CDS 37638923 37639047 0.000000 + 2 gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene exon 37638923 37639047 0.000000 + . gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene CDS 37643523 37643577 0.000000 + 0 gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene exon 37643523 37643577 0.000000 + . gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene CDS 37647447 37647542 0.000000 + 2 gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene exon 37647447 37647542 0.000000 + . gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene CDS 37650484 37650578 0.000000 + 2 gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene exon 37650484 37650578 0.000000 + . gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene CDS 37652333 37652410 0.000000 + 0 gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene exon 37652333 37652410 0.000000 + . gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene CDS 37653873 37654002 0.000000 + 0 gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene exon 37653873 37654002 0.000000 + . gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene CDS 37657061 37657142 0.000000 + 2 gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene exon 37657061 37657142 0.000000 + . gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene CDS 37659347 37659418 0.000000 + 1 gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene exon 37659347 37659418 0.000000 + . gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene CDS 37662849 37662960 0.000000 + 1 gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene exon 37662849 37662960 0.000000 + . gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene CDS 37667142 37667183 0.000000 + 0 gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene exon 37667142 37668366 0.000000 + . gene_id "DHX35"; transcript_id "BC143941:uc010zwb.2";
+chr20 hg19_knownGene exon 37734394 37734416 0.000000 - . gene_id "miR-449b-3P"; transcript_id "JA429265:uc021wdp.1";
+chr20 hg19_knownGene exon 37842424 37843461 0.000000 - . gene_id "LOC339568"; transcript_id "NR_027124:uc010zwd.1";
+chr20 hg19_knownGene exon 37844190 37844305 0.000000 - . gene_id "LOC339568"; transcript_id "NR_027124:uc010zwd.1";
+chr20 hg19_knownGene exon 37844590 37844755 0.000000 - . gene_id "LOC339568"; transcript_id "NR_027124:uc010zwd.1";
+chr20 hg19_knownGene exon 37853198 37853391 0.000000 - . gene_id "LOC339568"; transcript_id "NR_027124:uc010zwd.1";
+chr20 hg19_knownGene exon 37900182 37900300 0.000000 + . gene_id "Mir_584"; transcript_id ":uc021wdq.1";
+chr20 hg19_knownGene exon 39045515 39045586 0.000000 + . gene_id "SNORD112"; transcript_id ":uc021wdr.1";
+chr20 hg19_knownGene CDS 39316522 39317490 0.000000 - 0 gene_id "MAFB"; transcript_id "NM_005461:uc002xji.3";
+chr20 hg19_knownGene exon 39314517 39317876 0.000000 - . gene_id "MAFB"; transcript_id "NM_005461:uc002xji.3";
+chr20 hg19_knownGene exon 39482759 39482869 0.000000 - . gene_id "5S_rRNA"; transcript_id ":uc021wds.1";
+chr20 hg19_knownGene exon 39634674 39634687 0.000000 + . gene_id "AK023614"; transcript_id "AK023614:uc021wdt.1";
+chr20 hg19_knownGene exon 39652409 39654015 0.000000 + . gene_id "AK023614"; transcript_id "AK023614:uc021wdt.1";
+chr20 hg19_knownGene exon 39657462 39657740 0.000000 + . gene_id "TOP1"; transcript_id "AK310516:uc010ggd.1";
+chr20 hg19_knownGene CDS 39658093 39658401 0.000000 + 0 gene_id "TOP1"; transcript_id "AK310516:uc010ggd.1";
+chr20 hg19_knownGene exon 39658071 39659162 0.000000 + . gene_id "TOP1"; transcript_id "AK310516:uc010ggd.1";
+chr20 hg19_knownGene exon 39657462 39657740 0.000000 + . gene_id "TOP1"; transcript_id "AK310508:uc010gge.1";
+chr20 hg19_knownGene exon 39658071 39658095 0.000000 + . gene_id "TOP1"; transcript_id "AK310508:uc010gge.1";
+chr20 hg19_knownGene exon 39704811 39704934 0.000000 + . gene_id "TOP1"; transcript_id "AK310508:uc010gge.1";
+chr20 hg19_knownGene exon 39706222 39706277 0.000000 + . gene_id "TOP1"; transcript_id "AK310508:uc010gge.1";
+chr20 hg19_knownGene exon 39708725 39708820 0.000000 + . gene_id "TOP1"; transcript_id "AK310508:uc010gge.1";
+chr20 hg19_knownGene exon 39709805 39709880 0.000000 + . gene_id "TOP1"; transcript_id "AK310508:uc010gge.1";
+chr20 hg19_knownGene exon 39713102 39713208 0.000000 + . gene_id "TOP1"; transcript_id "AK310508:uc010gge.1";
+chr20 hg19_knownGene exon 39721112 39721227 0.000000 + . gene_id "TOP1"; transcript_id "AK310508:uc010gge.1";
+chr20 hg19_knownGene exon 39725860 39725981 0.000000 + . gene_id "TOP1"; transcript_id "AK310508:uc010gge.1";
+chr20 hg19_knownGene CDS 39657708 39657740 0.000000 + 0 gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene exon 39657462 39657740 0.000000 + . gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene CDS 39658071 39658095 0.000000 + 0 gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene exon 39658071 39658095 0.000000 + . gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene CDS 39690034 39690130 0.000000 + 2 gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene exon 39690034 39690130 0.000000 + . gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene CDS 39704811 39704934 0.000000 + 1 gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene exon 39704811 39704934 0.000000 + . gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene CDS 39706222 39706277 0.000000 + 0 gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene exon 39706222 39706277 0.000000 + . gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene CDS 39708725 39708820 0.000000 + 1 gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene exon 39708725 39708820 0.000000 + . gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene CDS 39709805 39709880 0.000000 + 1 gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene exon 39709805 39709880 0.000000 + . gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene CDS 39713102 39713208 0.000000 + 0 gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene exon 39713102 39713208 0.000000 + . gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene CDS 39721112 39721227 0.000000 + 1 gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene exon 39721112 39721227 0.000000 + . gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene CDS 39725860 39725981 0.000000 + 2 gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene exon 39725860 39725981 0.000000 + . gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene CDS 39726855 39726977 0.000000 + 0 gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene exon 39726855 39726977 0.000000 + . gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene CDS 39728696 39728883 0.000000 + 0 gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene exon 39728696 39728883 0.000000 + . gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene CDS 39729849 39729993 0.000000 + 1 gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene exon 39729849 39729993 0.000000 + . gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene CDS 39741422 39741565 0.000000 + 0 gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene exon 39741422 39741565 0.000000 + . gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene CDS 39742610 39742795 0.000000 + 0 gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene exon 39742610 39742795 0.000000 + . gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene CDS 39744011 39744079 0.000000 + 0 gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene exon 39744011 39744079 0.000000 + . gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene CDS 39744918 39745032 0.000000 + 0 gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene exon 39744918 39745032 0.000000 + . gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene CDS 39746809 39746936 0.000000 + 2 gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene exon 39746809 39746936 0.000000 + . gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene CDS 39750336 39750430 0.000000 + 0 gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene exon 39750336 39750430 0.000000 + . gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene CDS 39750646 39750795 0.000000 + 1 gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene exon 39750646 39750795 0.000000 + . gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene CDS 39751835 39751934 0.000000 + 1 gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene exon 39751835 39753126 0.000000 + . gene_id "TOP1"; transcript_id "NM_003286:uc002xjl.3";
+chr20 hg19_knownGene exon 39726969 39727464 0.000000 - . gene_id "BC035080"; transcript_id "BC035080:uc002xjn.1";
+chr20 hg19_knownGene exon 39729298 39729432 0.000000 - . gene_id "BC035080"; transcript_id "BC035080:uc002xjn.1";
+chr20 hg19_knownGene exon 39729812 39729929 0.000000 - . gene_id "BC035080"; transcript_id "BC035080:uc002xjn.1";
+chr20 hg19_knownGene exon 39762127 39762285 0.000000 - . gene_id "BC035080"; transcript_id "BC035080:uc002xjn.1";
+chr20 hg19_knownGene exon 39763779 39763932 0.000000 - . gene_id "BC035080"; transcript_id "BC035080:uc002xjn.1";
+chr20 hg19_knownGene exon 39764342 39764451 0.000000 - . gene_id "BC035080"; transcript_id "BC035080:uc002xjn.1";
+chr20 hg19_knownGene exon 39766354 39766640 0.000000 - . gene_id "BC035080"; transcript_id "BC035080:uc002xjn.1";
+chr20 hg19_knownGene CDS 39794985 39795034 0.000000 + 0 gene_id "PLCG1"; transcript_id "AK309606:uc010ggf.3";
+chr20 hg19_knownGene exon 39794834 39795034 0.000000 + . gene_id "PLCG1"; transcript_id "AK309606:uc010ggf.3";
+chr20 hg19_knownGene CDS 39795116 39795235 0.000000 + 1 gene_id "PLCG1"; transcript_id "AK309606:uc010ggf.3";
+chr20 hg19_knownGene exon 39795116 39795235 0.000000 + . gene_id "PLCG1"; transcript_id "AK309606:uc010ggf.3";
+chr20 hg19_knownGene CDS 39795319 39795499 0.000000 + 1 gene_id "PLCG1"; transcript_id "AK309606:uc010ggf.3";
+chr20 hg19_knownGene exon 39795319 39795499 0.000000 + . gene_id "PLCG1"; transcript_id "AK309606:uc010ggf.3";
+chr20 hg19_knownGene CDS 39797407 39797510 0.000000 + 0 gene_id "PLCG1"; transcript_id "AK309606:uc010ggf.3";
+chr20 hg19_knownGene exon 39797407 39797510 0.000000 + . gene_id "PLCG1"; transcript_id "AK309606:uc010ggf.3";
+chr20 hg19_knownGene CDS 39797719 39797815 0.000000 + 1 gene_id "PLCG1"; transcript_id "AK309606:uc010ggf.3";
+chr20 hg19_knownGene exon 39797719 39797815 0.000000 + . gene_id "PLCG1"; transcript_id "AK309606:uc010ggf.3";
+chr20 hg19_knownGene CDS 39798097 39798166 0.000000 + 0 gene_id "PLCG1"; transcript_id "AK309606:uc010ggf.3";
+chr20 hg19_knownGene exon 39798097 39798166 0.000000 + . gene_id "PLCG1"; transcript_id "AK309606:uc010ggf.3";
+chr20 hg19_knownGene CDS 39798752 39799023 0.000000 + 2 gene_id "PLCG1"; transcript_id "AK309606:uc010ggf.3";
+chr20 hg19_knownGene exon 39798752 39799233 0.000000 + . gene_id "PLCG1"; transcript_id "AK309606:uc010ggf.3";
+chr20 hg19_knownGene CDS 39766282 39766498 0.000000 + 0 gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene exon 39766161 39766498 0.000000 + . gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene CDS 39788246 39788398 0.000000 + 2 gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene exon 39788246 39788398 0.000000 + . gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene CDS 39788510 39788603 0.000000 + 2 gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene exon 39788510 39788603 0.000000 + . gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene CDS 39788746 39788793 0.000000 + 1 gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene exon 39788746 39788793 0.000000 + . gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene CDS 39791092 39791176 0.000000 + 1 gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene exon 39791092 39791176 0.000000 + . gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene CDS 39791282 39791365 0.000000 + 0 gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene exon 39791282 39791365 0.000000 + . gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene CDS 39791598 39791632 0.000000 + 0 gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene exon 39791598 39791632 0.000000 + . gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene CDS 39791843 39791915 0.000000 + 1 gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene exon 39791843 39791915 0.000000 + . gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene CDS 39792018 39792119 0.000000 + 0 gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene exon 39792018 39792119 0.000000 + . gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene CDS 39792355 39792473 0.000000 + 0 gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene exon 39792355 39792473 0.000000 + . gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene CDS 39792561 39792646 0.000000 + 1 gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene exon 39792561 39792646 0.000000 + . gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene CDS 39792721 39792841 0.000000 + 2 gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene exon 39792721 39792841 0.000000 + . gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene CDS 39793573 39793741 0.000000 + 1 gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene exon 39793573 39793741 0.000000 + . gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene CDS 39793885 39794007 0.000000 + 0 gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene exon 39793885 39794007 0.000000 + . gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene CDS 39794090 39794191 0.000000 + 0 gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene exon 39794090 39794191 0.000000 + . gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene CDS 39794279 39794466 0.000000 + 0 gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene exon 39794279 39794466 0.000000 + . gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene CDS 39794834 39795034 0.000000 + 1 gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene exon 39794834 39795034 0.000000 + . gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene CDS 39795116 39795235 0.000000 + 1 gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene exon 39795116 39795235 0.000000 + . gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene CDS 39795319 39795499 0.000000 + 1 gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene exon 39795319 39795499 0.000000 + . gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene CDS 39796492 39796569 0.000000 + 0 gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene exon 39796492 39796569 0.000000 + . gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene CDS 39797407 39797510 0.000000 + 0 gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene exon 39797407 39797510 0.000000 + . gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene CDS 39797719 39797815 0.000000 + 1 gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene exon 39797719 39797815 0.000000 + . gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene CDS 39798097 39798166 0.000000 + 0 gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene exon 39798097 39798166 0.000000 + . gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene CDS 39798752 39798909 0.000000 + 2 gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene exon 39798752 39798909 0.000000 + . gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene CDS 39800833 39800929 0.000000 + 0 gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene exon 39800833 39800929 0.000000 + . gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene CDS 39801061 39801285 0.000000 + 2 gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene exon 39801061 39801285 0.000000 + . gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene CDS 39801369 39801517 0.000000 + 2 gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene exon 39801369 39801517 0.000000 + . gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene CDS 39802060 39802174 0.000000 + 0 gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene exon 39802060 39802174 0.000000 + . gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene CDS 39802292 39802453 0.000000 + 2 gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene exon 39802292 39802453 0.000000 + . gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene CDS 39802563 39802651 0.000000 + 2 gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene exon 39802563 39802651 0.000000 + . gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene CDS 39802764 39802951 0.000000 + 0 gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene exon 39802764 39802951 0.000000 + . gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene CDS 39803107 39803146 0.000000 + 1 gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene exon 39803107 39804357 0.000000 + . gene_id "PLCG1"; transcript_id "NM_002660:uc002xjo.1";
+chr20 hg19_knownGene CDS 39766282 39766498 0.000000 + 0 gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene exon 39766161 39766498 0.000000 + . gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene CDS 39788246 39788398 0.000000 + 2 gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene exon 39788246 39788398 0.000000 + . gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene CDS 39788510 39788603 0.000000 + 2 gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene exon 39788510 39788603 0.000000 + . gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene CDS 39788746 39788793 0.000000 + 1 gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene exon 39788746 39788793 0.000000 + . gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene CDS 39791092 39791176 0.000000 + 1 gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene exon 39791092 39791176 0.000000 + . gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene CDS 39791282 39791365 0.000000 + 0 gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene exon 39791282 39791365 0.000000 + . gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene CDS 39791598 39791632 0.000000 + 0 gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene exon 39791598 39791632 0.000000 + . gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene CDS 39791843 39791915 0.000000 + 1 gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene exon 39791843 39791915 0.000000 + . gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene CDS 39792018 39792119 0.000000 + 0 gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene exon 39792018 39792119 0.000000 + . gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene CDS 39792355 39792473 0.000000 + 0 gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene exon 39792355 39792473 0.000000 + . gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene CDS 39792561 39792646 0.000000 + 1 gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene exon 39792561 39792646 0.000000 + . gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene CDS 39792721 39792841 0.000000 + 2 gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene exon 39792721 39792841 0.000000 + . gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene CDS 39793573 39793741 0.000000 + 1 gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene exon 39793573 39793741 0.000000 + . gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene CDS 39793885 39794007 0.000000 + 0 gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene exon 39793885 39794007 0.000000 + . gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene CDS 39794090 39794191 0.000000 + 0 gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene exon 39794090 39794191 0.000000 + . gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene CDS 39794279 39794466 0.000000 + 0 gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene exon 39794279 39794466 0.000000 + . gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene CDS 39794834 39795034 0.000000 + 1 gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene exon 39794834 39795034 0.000000 + . gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene CDS 39795116 39795235 0.000000 + 1 gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene exon 39795116 39795235 0.000000 + . gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene CDS 39795319 39795499 0.000000 + 1 gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene exon 39795319 39795499 0.000000 + . gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene CDS 39796492 39796569 0.000000 + 0 gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene exon 39796492 39796569 0.000000 + . gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene CDS 39797407 39797510 0.000000 + 0 gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene exon 39797407 39797510 0.000000 + . gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene CDS 39797719 39797815 0.000000 + 1 gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene exon 39797719 39797815 0.000000 + . gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene CDS 39798097 39798166 0.000000 + 0 gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene exon 39798097 39798166 0.000000 + . gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene CDS 39798752 39798909 0.000000 + 2 gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene exon 39798752 39798909 0.000000 + . gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene CDS 39800833 39800929 0.000000 + 0 gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene exon 39800833 39800929 0.000000 + . gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene CDS 39801061 39801285 0.000000 + 2 gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene exon 39801061 39801285 0.000000 + . gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene CDS 39801369 39801517 0.000000 + 2 gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene exon 39801369 39801517 0.000000 + . gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene CDS 39802060 39802174 0.000000 + 0 gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene exon 39802060 39802174 0.000000 + . gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene CDS 39802292 39802453 0.000000 + 2 gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene exon 39802292 39802453 0.000000 + . gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene CDS 39802563 39802651 0.000000 + 2 gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene exon 39802563 39802651 0.000000 + . gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene CDS 39802767 39802951 0.000000 + 0 gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene exon 39802767 39802951 0.000000 + . gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene CDS 39803107 39803146 0.000000 + 1 gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene exon 39803107 39804357 0.000000 + . gene_id "PLCG1"; transcript_id "NM_182811:uc002xjp.1";
+chr20 hg19_knownGene CDS 39792747 39792841 0.000000 + 0 gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene exon 39792721 39792841 0.000000 + . gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene CDS 39793573 39793741 0.000000 + 1 gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene exon 39793573 39793741 0.000000 + . gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene CDS 39793885 39794007 0.000000 + 0 gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene exon 39793885 39794007 0.000000 + . gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene CDS 39794090 39794191 0.000000 + 0 gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene exon 39794090 39794191 0.000000 + . gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene CDS 39794279 39794466 0.000000 + 0 gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene exon 39794279 39794466 0.000000 + . gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene CDS 39794834 39795034 0.000000 + 1 gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene exon 39794834 39795034 0.000000 + . gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene CDS 39795116 39795235 0.000000 + 1 gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene exon 39795116 39795235 0.000000 + . gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene CDS 39795319 39795499 0.000000 + 1 gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene exon 39795319 39795499 0.000000 + . gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene CDS 39796492 39796569 0.000000 + 0 gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene exon 39796492 39796569 0.000000 + . gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene CDS 39797407 39797510 0.000000 + 0 gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene exon 39797407 39797510 0.000000 + . gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene CDS 39797719 39797815 0.000000 + 1 gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene exon 39797719 39797815 0.000000 + . gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene CDS 39798097 39798166 0.000000 + 0 gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene exon 39798097 39798166 0.000000 + . gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene CDS 39798752 39798909 0.000000 + 2 gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene exon 39798752 39798909 0.000000 + . gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene CDS 39800833 39800929 0.000000 + 0 gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene exon 39800833 39800929 0.000000 + . gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene CDS 39801061 39801285 0.000000 + 2 gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene exon 39801061 39801285 0.000000 + . gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene CDS 39801369 39801517 0.000000 + 2 gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene exon 39801369 39801517 0.000000 + . gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene CDS 39802060 39802453 0.000000 + 0 gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene exon 39802060 39802453 0.000000 + . gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene CDS 39802563 39802651 0.000000 + 2 gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene exon 39802563 39802651 0.000000 + . gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene CDS 39802764 39802951 0.000000 + 0 gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene exon 39802764 39802951 0.000000 + . gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene CDS 39803107 39803146 0.000000 + 1 gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene exon 39803107 39804357 0.000000 + . gene_id "PLCG1"; transcript_id "AK297370:uc010zwe.1";
+chr20 hg19_knownGene exon 39807089 39813841 0.000000 - . gene_id "ZHX3"; transcript_id "BC020258:uc010ggg.1";
+chr20 hg19_knownGene CDS 39829978 39830024 0.000000 - 2 gene_id "ZHX3"; transcript_id "BC020258:uc010ggg.1";
+chr20 hg19_knownGene exon 39829926 39830024 0.000000 - . gene_id "ZHX3"; transcript_id "BC020258:uc010ggg.1";
+chr20 hg19_knownGene CDS 39830697 39833556 0.000000 - 0 gene_id "ZHX3"; transcript_id "BC020258:uc010ggg.1";
+chr20 hg19_knownGene exon 39830697 39833706 0.000000 - . gene_id "ZHX3"; transcript_id "BC020258:uc010ggg.1";
+chr20 hg19_knownGene CDS 39813569 39813841 0.000000 - 0 gene_id "ZHX3"; transcript_id "BC068569:uc002xjr.1";
+chr20 hg19_knownGene exon 39807089 39813841 0.000000 - . gene_id "ZHX3"; transcript_id "BC068569:uc002xjr.1";
+chr20 hg19_knownGene CDS 39830923 39833556 0.000000 - 0 gene_id "ZHX3"; transcript_id "BC068569:uc002xjr.1";
+chr20 hg19_knownGene exon 39830923 39833706 0.000000 - . gene_id "ZHX3"; transcript_id "BC068569:uc002xjr.1";
+chr20 hg19_knownGene exon 39842374 39842539 0.000000 - . gene_id "ZHX3"; transcript_id "BC068569:uc002xjr.1";
+chr20 hg19_knownGene exon 39897630 39897723 0.000000 - . gene_id "ZHX3"; transcript_id "BC068569:uc002xjr.1";
+chr20 hg19_knownGene exon 39900844 39900896 0.000000 - . gene_id "ZHX3"; transcript_id "BC068569:uc002xjr.1";
+chr20 hg19_knownGene CDS 39813834 39813841 0.000000 - 2 gene_id "ZHX3"; transcript_id "NM_015035:uc002xjs.1";
+chr20 hg19_knownGene exon 39807089 39813841 0.000000 - . gene_id "ZHX3"; transcript_id "NM_015035:uc002xjs.1";
+chr20 hg19_knownGene CDS 39830697 39833556 0.000000 - 0 gene_id "ZHX3"; transcript_id "NM_015035:uc002xjs.1";
+chr20 hg19_knownGene exon 39830697 39833706 0.000000 - . gene_id "ZHX3"; transcript_id "NM_015035:uc002xjs.1";
+chr20 hg19_knownGene exon 39897630 39897723 0.000000 - . gene_id "ZHX3"; transcript_id "NM_015035:uc002xjs.1";
+chr20 hg19_knownGene exon 39928606 39928739 0.000000 - . gene_id "ZHX3"; transcript_id "NM_015035:uc002xjs.1";
+chr20 hg19_knownGene CDS 39813834 39813841 0.000000 - 2 gene_id "ZHX3"; transcript_id "BC047070:uc002xjt.1";
+chr20 hg19_knownGene exon 39807089 39813841 0.000000 - . gene_id "ZHX3"; transcript_id "BC047070:uc002xjt.1";
+chr20 hg19_knownGene CDS 39830697 39833556 0.000000 - 0 gene_id "ZHX3"; transcript_id "BC047070:uc002xjt.1";
+chr20 hg19_knownGene exon 39830697 39833706 0.000000 - . gene_id "ZHX3"; transcript_id "BC047070:uc002xjt.1";
+chr20 hg19_knownGene exon 39842374 39842539 0.000000 - . gene_id "ZHX3"; transcript_id "BC047070:uc002xjt.1";
+chr20 hg19_knownGene exon 39867328 39867436 0.000000 - . gene_id "ZHX3"; transcript_id "BC047070:uc002xjt.1";
+chr20 hg19_knownGene exon 39868238 39868344 0.000000 - . gene_id "ZHX3"; transcript_id "BC047070:uc002xjt.1";
+chr20 hg19_knownGene exon 39896103 39896252 0.000000 - . gene_id "ZHX3"; transcript_id "BC047070:uc002xjt.1";
+chr20 hg19_knownGene exon 39897630 39897723 0.000000 - . gene_id "ZHX3"; transcript_id "BC047070:uc002xjt.1";
+chr20 hg19_knownGene exon 39928606 39928739 0.000000 - . gene_id "ZHX3"; transcript_id "BC047070:uc002xjt.1";
+chr20 hg19_knownGene CDS 39830926 39833556 0.000000 - 0 gene_id "ZHX3"; transcript_id "AK097523:uc002xjv.1";
+chr20 hg19_knownGene exon 39830923 39833706 0.000000 - . gene_id "ZHX3"; transcript_id "AK097523:uc002xjv.1";
+chr20 hg19_knownGene exon 39883228 39883275 0.000000 - . gene_id "ZHX3"; transcript_id "AK097523:uc002xjv.1";
+chr20 hg19_knownGene exon 39897619 39897723 0.000000 - . gene_id "ZHX3"; transcript_id "AK097523:uc002xjv.1";
+chr20 hg19_knownGene exon 39928606 39928739 0.000000 - . gene_id "ZHX3"; transcript_id "AK097523:uc002xjv.1";
+chr20 hg19_knownGene CDS 39830926 39833556 0.000000 - 0 gene_id "ZHX3"; transcript_id "AK122905:uc002xjw.1";
+chr20 hg19_knownGene exon 39830923 39833706 0.000000 - . gene_id "ZHX3"; transcript_id "AK122905:uc002xjw.1";
+chr20 hg19_knownGene exon 39897619 39897723 0.000000 - . gene_id "ZHX3"; transcript_id "AK122905:uc002xjw.1";
+chr20 hg19_knownGene exon 39928606 39928739 0.000000 - . gene_id "ZHX3"; transcript_id "AK122905:uc002xjw.1";
+chr20 hg19_knownGene CDS 39813834 39813841 0.000000 - 2 gene_id "ZHX3"; transcript_id "AB007855:uc002xju.1";
+chr20 hg19_knownGene exon 39807089 39813841 0.000000 - . gene_id "ZHX3"; transcript_id "AB007855:uc002xju.1";
+chr20 hg19_knownGene CDS 39830697 39833556 0.000000 - 0 gene_id "ZHX3"; transcript_id "AB007855:uc002xju.1";
+chr20 hg19_knownGene exon 39830697 39833706 0.000000 - . gene_id "ZHX3"; transcript_id "AB007855:uc002xju.1";
+chr20 hg19_knownGene exon 39897619 39897723 0.000000 - . gene_id "ZHX3"; transcript_id "AB007855:uc002xju.1";
+chr20 hg19_knownGene exon 39946149 39946242 0.000000 - . gene_id "ZHX3"; transcript_id "AB007855:uc002xju.1";
+chr20 hg19_knownGene exon 39969560 39969642 0.000000 + . gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene CDS 39974444 39974635 0.000000 + 0 gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene exon 39974436 39974635 0.000000 + . gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene CDS 39976192 39976287 0.000000 + 0 gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene exon 39976192 39976287 0.000000 + . gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene CDS 39977259 39977527 0.000000 + 0 gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene exon 39977259 39977527 0.000000 + . gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene CDS 39977732 39977812 0.000000 + 1 gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene exon 39977732 39977812 0.000000 + . gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene CDS 39978414 39978534 0.000000 + 1 gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene exon 39978414 39978534 0.000000 + . gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene CDS 39978695 39979037 0.000000 + 0 gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene exon 39978695 39979037 0.000000 + . gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene CDS 39980461 39980560 0.000000 + 2 gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene exon 39980461 39980560 0.000000 + . gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene CDS 39980700 39980860 0.000000 + 1 gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene exon 39980700 39980860 0.000000 + . gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene CDS 39981246 39981339 0.000000 + 2 gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene exon 39981246 39981339 0.000000 + . gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene CDS 39981438 39981507 0.000000 + 1 gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene exon 39981438 39981507 0.000000 + . gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene CDS 39983285 39983377 0.000000 + 0 gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene exon 39983285 39983377 0.000000 + . gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene CDS 39983460 39983503 0.000000 + 0 gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene exon 39983460 39983503 0.000000 + . gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene CDS 39984536 39984674 0.000000 + 1 gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene exon 39984536 39984674 0.000000 + . gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene CDS 39985680 39985828 0.000000 + 0 gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene exon 39985680 39985828 0.000000 + . gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene CDS 39986001 39986087 0.000000 + 1 gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene exon 39986001 39986087 0.000000 + . gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene CDS 39986522 39986674 0.000000 + 1 gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene exon 39986522 39986674 0.000000 + . gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene CDS 39986877 39986991 0.000000 + 1 gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene exon 39986877 39986991 0.000000 + . gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene CDS 39987079 39987182 0.000000 + 0 gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene exon 39987079 39987182 0.000000 + . gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene CDS 39987362 39987503 0.000000 + 1 gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene exon 39987362 39989222 0.000000 + . gene_id "LPIN3"; transcript_id "NM_022896:uc002xjx.3";
+chr20 hg19_knownGene exon 39969560 39969642 0.000000 + . gene_id "LPIN3"; transcript_id "BC144598:uc010zwf.2";
+chr20 hg19_knownGene exon 39974436 39974635 0.000000 + . gene_id "LPIN3"; transcript_id "BC144598:uc010zwf.2";
+chr20 hg19_knownGene exon 39976192 39976287 0.000000 + . gene_id "LPIN3"; transcript_id "BC144598:uc010zwf.2";
+chr20 hg19_knownGene exon 39977259 39977527 0.000000 + . gene_id "LPIN3"; transcript_id "BC144598:uc010zwf.2";
+chr20 hg19_knownGene exon 39977729 39977812 0.000000 + . gene_id "LPIN3"; transcript_id "BC144598:uc010zwf.2";
+chr20 hg19_knownGene exon 39978414 39978534 0.000000 + . gene_id "LPIN3"; transcript_id "BC144598:uc010zwf.2";
+chr20 hg19_knownGene exon 39978695 39979037 0.000000 + . gene_id "LPIN3"; transcript_id "BC144598:uc010zwf.2";
+chr20 hg19_knownGene exon 39980461 39980560 0.000000 + . gene_id "LPIN3"; transcript_id "BC144598:uc010zwf.2";
+chr20 hg19_knownGene exon 39980700 39980860 0.000000 + . gene_id "LPIN3"; transcript_id "BC144598:uc010zwf.2";
+chr20 hg19_knownGene exon 39981246 39981339 0.000000 + . gene_id "LPIN3"; transcript_id "BC144598:uc010zwf.2";
+chr20 hg19_knownGene exon 39981438 39981507 0.000000 + . gene_id "LPIN3"; transcript_id "BC144598:uc010zwf.2";
+chr20 hg19_knownGene exon 39983285 39983377 0.000000 + . gene_id "LPIN3"; transcript_id "BC144598:uc010zwf.2";
+chr20 hg19_knownGene exon 39983465 39983503 0.000000 + . gene_id "LPIN3"; transcript_id "BC144598:uc010zwf.2";
+chr20 hg19_knownGene exon 39984536 39984674 0.000000 + . gene_id "LPIN3"; transcript_id "BC144598:uc010zwf.2";
+chr20 hg19_knownGene exon 39985680 39985828 0.000000 + . gene_id "LPIN3"; transcript_id "BC144598:uc010zwf.2";
+chr20 hg19_knownGene exon 39986001 39986087 0.000000 + . gene_id "LPIN3"; transcript_id "BC144598:uc010zwf.2";
+chr20 hg19_knownGene exon 39986522 39986597 0.000000 + . gene_id "LPIN3"; transcript_id "BC144598:uc010zwf.2";
+chr20 hg19_knownGene exon 39986877 39986991 0.000000 + . gene_id "LPIN3"; transcript_id "BC144598:uc010zwf.2";
+chr20 hg19_knownGene exon 39987079 39987182 0.000000 + . gene_id "LPIN3"; transcript_id "BC144598:uc010zwf.2";
+chr20 hg19_knownGene exon 39987362 39989222 0.000000 + . gene_id "LPIN3"; transcript_id "BC144598:uc010zwf.2";
+chr20 hg19_knownGene exon 39969560 39969642 0.000000 + . gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene CDS 39974444 39974635 0.000000 + 0 gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene exon 39974436 39974635 0.000000 + . gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene CDS 39976192 39976287 0.000000 + 0 gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene exon 39976192 39976287 0.000000 + . gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene CDS 39977259 39977527 0.000000 + 0 gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene exon 39977259 39977527 0.000000 + . gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene CDS 39977729 39977812 0.000000 + 1 gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene exon 39977729 39977812 0.000000 + . gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene CDS 39978414 39978534 0.000000 + 1 gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene exon 39978414 39978534 0.000000 + . gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene CDS 39978695 39979037 0.000000 + 0 gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene exon 39978695 39979037 0.000000 + . gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene CDS 39980461 39980560 0.000000 + 2 gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene exon 39980461 39980560 0.000000 + . gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene CDS 39980700 39980860 0.000000 + 1 gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene exon 39980700 39980860 0.000000 + . gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene CDS 39981246 39981339 0.000000 + 2 gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene exon 39981246 39981339 0.000000 + . gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene CDS 39981438 39981507 0.000000 + 1 gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene exon 39981438 39981507 0.000000 + . gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene CDS 39983285 39983377 0.000000 + 0 gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene exon 39983285 39983377 0.000000 + . gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene CDS 39983460 39983503 0.000000 + 0 gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene exon 39983460 39983503 0.000000 + . gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene CDS 39984536 39984674 0.000000 + 1 gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene exon 39984536 39984674 0.000000 + . gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene CDS 39985680 39985828 0.000000 + 0 gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene exon 39985680 39985828 0.000000 + . gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene CDS 39986001 39986087 0.000000 + 1 gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene exon 39986001 39986087 0.000000 + . gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene CDS 39986522 39986674 0.000000 + 1 gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene exon 39986522 39986674 0.000000 + . gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene CDS 39986877 39986991 0.000000 + 1 gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene exon 39986877 39986991 0.000000 + . gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene CDS 39987079 39987182 0.000000 + 0 gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene exon 39987079 39987182 0.000000 + . gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene CDS 39987362 39987503 0.000000 + 1 gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene exon 39987362 39989222 0.000000 + . gene_id "LPIN3"; transcript_id "BC140806:uc010ggh.3";
+chr20 hg19_knownGene CDS 39989911 39991694 0.000000 - 2 gene_id "EMILIN3"; transcript_id "NM_052846:uc002xjy.1";
+chr20 hg19_knownGene exon 39988606 39991694 0.000000 - . gene_id "EMILIN3"; transcript_id "NM_052846:uc002xjy.1";
+chr20 hg19_knownGene CDS 39992278 39992501 0.000000 - 1 gene_id "EMILIN3"; transcript_id "NM_052846:uc002xjy.1";
+chr20 hg19_knownGene exon 39992278 39992501 0.000000 - . gene_id "EMILIN3"; transcript_id "NM_052846:uc002xjy.1";
+chr20 hg19_knownGene CDS 39993675 39993797 0.000000 - 1 gene_id "EMILIN3"; transcript_id "NM_052846:uc002xjy.1";
+chr20 hg19_knownGene exon 39993675 39993797 0.000000 - . gene_id "EMILIN3"; transcript_id "NM_052846:uc002xjy.1";
+chr20 hg19_knownGene CDS 39995108 39995274 0.000000 - 0 gene_id "EMILIN3"; transcript_id "NM_052846:uc002xjy.1";
+chr20 hg19_knownGene exon 39995108 39995498 0.000000 - . gene_id "EMILIN3"; transcript_id "NM_052846:uc002xjy.1";
+chr20 hg19_knownGene CDS 40033236 40033991 0.000000 - 0 gene_id "CHD6"; transcript_id "AK098144:uc002xjz.1";
+chr20 hg19_knownGene exon 40031170 40034129 0.000000 - . gene_id "CHD6"; transcript_id "AK098144:uc002xjz.1";
+chr20 hg19_knownGene exon 40040784 40040903 0.000000 - . gene_id "CHD6"; transcript_id "AK098144:uc002xjz.1";
+chr20 hg19_knownGene exon 40041964 40043705 0.000000 - . gene_id "CHD6"; transcript_id "AK098144:uc002xjz.1";
+chr20 hg19_knownGene CDS 40065869 40065974 0.000000 - 1 gene_id "CHD6"; transcript_id "CR749575:uc002xkb.1";
+chr20 hg19_knownGene exon 40064665 40065974 0.000000 - . gene_id "CHD6"; transcript_id "CR749575:uc002xkb.1";
+chr20 hg19_knownGene CDS 40068640 40068769 0.000000 - 2 gene_id "CHD6"; transcript_id "CR749575:uc002xkb.1";
+chr20 hg19_knownGene exon 40068640 40068769 0.000000 - . gene_id "CHD6"; transcript_id "CR749575:uc002xkb.1";
+chr20 hg19_knownGene CDS 40074305 40074408 0.000000 - 1 gene_id "CHD6"; transcript_id "CR749575:uc002xkb.1";
+chr20 hg19_knownGene exon 40074305 40074408 0.000000 - . gene_id "CHD6"; transcript_id "CR749575:uc002xkb.1";
+chr20 hg19_knownGene CDS 40076522 40076592 0.000000 - 0 gene_id "CHD6"; transcript_id "CR749575:uc002xkb.1";
+chr20 hg19_knownGene exon 40076522 40076611 0.000000 - . gene_id "CHD6"; transcript_id "CR749575:uc002xkb.1";
+chr20 hg19_knownGene exon 40190978 40191046 0.000000 + . gene_id "Mir_147"; transcript_id ":uc021wdu.1";
+chr20 hg19_knownGene CDS 40033236 40034129 0.000000 - 0 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40031170 40034129 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40040784 40040903 0.000000 - 0 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40040784 40040903 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40041964 40042155 0.000000 - 0 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40041964 40042155 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40043826 40044278 0.000000 - 0 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40043826 40044278 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40045228 40045434 0.000000 - 0 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40045228 40045434 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40045838 40045989 0.000000 - 2 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40045838 40045989 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40049148 40050719 0.000000 - 2 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40049148 40050719 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40052132 40052340 0.000000 - 1 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40052132 40052340 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40053818 40054034 0.000000 - 2 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40053818 40054034 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40054733 40054793 0.000000 - 0 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40054733 40054793 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40065914 40065974 0.000000 - 1 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40065914 40065974 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40068640 40068769 0.000000 - 2 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40068640 40068769 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40074305 40074408 0.000000 - 1 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40074305 40074408 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40076522 40076611 0.000000 - 1 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40076522 40076611 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40079586 40079745 0.000000 - 2 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40079586 40079745 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40080466 40080665 0.000000 - 1 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40080466 40080665 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40081380 40081582 0.000000 - 0 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40081380 40081582 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40083266 40083376 0.000000 - 0 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40083266 40083376 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40084440 40084619 0.000000 - 0 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40084440 40084619 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40085904 40086068 0.000000 - 0 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40085904 40086068 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40101962 40102157 0.000000 - 1 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40101962 40102157 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40111949 40112159 0.000000 - 2 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40111949 40112159 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40112992 40113247 0.000000 - 0 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40112992 40113247 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40116305 40116448 0.000000 - 0 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40116305 40116448 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40117068 40117244 0.000000 - 0 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40117068 40117244 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40118418 40118661 0.000000 - 1 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40118418 40118661 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40120338 40120459 0.000000 - 0 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40120338 40120459 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40122178 40122312 0.000000 - 0 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40122178 40122312 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40122498 40122584 0.000000 - 0 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40122498 40122584 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40126024 40126141 0.000000 - 1 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40126024 40126141 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40126808 40126866 0.000000 - 0 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40126808 40126866 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40127935 40127997 0.000000 - 0 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40127935 40127997 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40141485 40141634 0.000000 - 0 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40141485 40141634 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40143444 40143591 0.000000 - 1 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40143444 40143591 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40161689 40162209 0.000000 - 0 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40161689 40162209 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40179944 40179976 0.000000 - 0 gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40179944 40179999 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene exon 40246979 40247133 0.000000 - . gene_id "CHD6"; transcript_id "NM_032221:uc002xka.1";
+chr20 hg19_knownGene CDS 40083269 40083376 0.000000 - 0 gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene exon 40083266 40083376 0.000000 - . gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene CDS 40084440 40084619 0.000000 - 0 gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene exon 40084440 40084619 0.000000 - . gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene CDS 40085904 40086068 0.000000 - 0 gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene exon 40085904 40086068 0.000000 - . gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene CDS 40101962 40102157 0.000000 - 1 gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene exon 40101962 40102157 0.000000 - . gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene CDS 40111949 40112159 0.000000 - 2 gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene exon 40111949 40112159 0.000000 - . gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene CDS 40112992 40113247 0.000000 - 0 gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene exon 40112992 40113247 0.000000 - . gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene CDS 40116305 40116448 0.000000 - 0 gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene exon 40116305 40116448 0.000000 - . gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene CDS 40117068 40117244 0.000000 - 0 gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene exon 40117068 40117244 0.000000 - . gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene CDS 40118418 40118661 0.000000 - 1 gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene exon 40118418 40118661 0.000000 - . gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene CDS 40120338 40120459 0.000000 - 0 gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene exon 40120338 40120459 0.000000 - . gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene CDS 40122178 40122312 0.000000 - 0 gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene exon 40122178 40122312 0.000000 - . gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene CDS 40122498 40122584 0.000000 - 0 gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene exon 40122498 40122584 0.000000 - . gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene CDS 40126024 40126141 0.000000 - 1 gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene exon 40126024 40126141 0.000000 - . gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene CDS 40126808 40126866 0.000000 - 0 gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene exon 40126808 40126866 0.000000 - . gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene CDS 40127935 40127997 0.000000 - 0 gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene exon 40127935 40127997 0.000000 - . gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene CDS 40141485 40141634 0.000000 - 0 gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene exon 40141485 40141634 0.000000 - . gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene CDS 40143444 40143591 0.000000 - 1 gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene exon 40143444 40143591 0.000000 - . gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene CDS 40161689 40162176 0.000000 - 0 gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene exon 40161689 40162209 0.000000 - . gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene exon 40246979 40247133 0.000000 - . gene_id "CHD6"; transcript_id "AK296955:uc002xkd.2";
+chr20 hg19_knownGene CDS 40126768 40126866 0.000000 - 0 gene_id "CHD6"; transcript_id "BC040016:uc002xkc.3";
+chr20 hg19_knownGene exon 40125449 40126866 0.000000 - . gene_id "CHD6"; transcript_id "BC040016:uc002xkc.3";
+chr20 hg19_knownGene CDS 40127935 40127997 0.000000 - 0 gene_id "CHD6"; transcript_id "BC040016:uc002xkc.3";
+chr20 hg19_knownGene exon 40127935 40127997 0.000000 - . gene_id "CHD6"; transcript_id "BC040016:uc002xkc.3";
+chr20 hg19_knownGene CDS 40141485 40141634 0.000000 - 0 gene_id "CHD6"; transcript_id "BC040016:uc002xkc.3";
+chr20 hg19_knownGene exon 40141485 40141634 0.000000 - . gene_id "CHD6"; transcript_id "BC040016:uc002xkc.3";
+chr20 hg19_knownGene CDS 40143444 40143591 0.000000 - 1 gene_id "CHD6"; transcript_id "BC040016:uc002xkc.3";
+chr20 hg19_knownGene exon 40143444 40143591 0.000000 - . gene_id "CHD6"; transcript_id "BC040016:uc002xkc.3";
+chr20 hg19_knownGene CDS 40161689 40162209 0.000000 - 0 gene_id "CHD6"; transcript_id "BC040016:uc002xkc.3";
+chr20 hg19_knownGene exon 40161689 40162209 0.000000 - . gene_id "CHD6"; transcript_id "BC040016:uc002xkc.3";
+chr20 hg19_knownGene CDS 40192650 40192787 0.000000 - 0 gene_id "CHD6"; transcript_id "BC040016:uc002xkc.3";
+chr20 hg19_knownGene exon 40192650 40192790 0.000000 - . gene_id "CHD6"; transcript_id "BC040016:uc002xkc.3";
+chr20 hg19_knownGene exon 40246979 40247133 0.000000 - . gene_id "CHD6"; transcript_id "BC040016:uc002xkc.3";
+chr20 hg19_knownGene exon 40313625 40313730 0.000000 - . gene_id "U6"; transcript_id ":uc021wdv.1";
+chr20 hg19_knownGene CDS 40709522 40709572 0.000000 - 0 gene_id "PTPRT"; transcript_id "AF043644:uc010ggi.3";
+chr20 hg19_knownGene exon 40701392 40709572 0.000000 - . gene_id "PTPRT"; transcript_id "AF043644:uc010ggi.3";
+chr20 hg19_knownGene CDS 40710522 40710657 0.000000 - 1 gene_id "PTPRT"; transcript_id "AF043644:uc010ggi.3";
+chr20 hg19_knownGene exon 40710522 40710657 0.000000 - . gene_id "PTPRT"; transcript_id "AF043644:uc010ggi.3";
+chr20 hg19_knownGene CDS 40713322 40713485 0.000000 - 0 gene_id "PTPRT"; transcript_id "AF043644:uc010ggi.3";
+chr20 hg19_knownGene exon 40713322 40713485 0.000000 - . gene_id "PTPRT"; transcript_id "AF043644:uc010ggi.3";
+chr20 hg19_knownGene CDS 40714368 40714493 0.000000 - 0 gene_id "PTPRT"; transcript_id "AF043644:uc010ggi.3";
+chr20 hg19_knownGene exon 40714368 40714493 0.000000 - . gene_id "PTPRT"; transcript_id "AF043644:uc010ggi.3";
+chr20 hg19_knownGene CDS 40727061 40727192 0.000000 - 0 gene_id "PTPRT"; transcript_id "AF043644:uc010ggi.3";
+chr20 hg19_knownGene exon 40727061 40727192 0.000000 - . gene_id "PTPRT"; transcript_id "AF043644:uc010ggi.3";
+chr20 hg19_knownGene CDS 40730764 40730937 0.000000 - 0 gene_id "PTPRT"; transcript_id "AF043644:uc010ggi.3";
+chr20 hg19_knownGene exon 40730764 40730937 0.000000 - . gene_id "PTPRT"; transcript_id "AF043644:uc010ggi.3";
+chr20 hg19_knownGene CDS 40733209 40733358 0.000000 - 0 gene_id "PTPRT"; transcript_id "AF043644:uc010ggi.3";
+chr20 hg19_knownGene exon 40733209 40733358 0.000000 - . gene_id "PTPRT"; transcript_id "AF043644:uc010ggi.3";
+chr20 hg19_knownGene CDS 40735426 40735561 0.000000 - 1 gene_id "PTPRT"; transcript_id "AF043644:uc010ggi.3";
+chr20 hg19_knownGene exon 40735426 40735561 0.000000 - . gene_id "PTPRT"; transcript_id "AF043644:uc010ggi.3";
+chr20 hg19_knownGene CDS 40738973 40739127 0.000000 - 0 gene_id "PTPRT"; transcript_id "AF043644:uc010ggi.3";
+chr20 hg19_knownGene exon 40738973 40739127 0.000000 - . gene_id "PTPRT"; transcript_id "AF043644:uc010ggi.3";
+chr20 hg19_knownGene CDS 40743839 40743955 0.000000 - 0 gene_id "PTPRT"; transcript_id "AF043644:uc010ggi.3";
+chr20 hg19_knownGene exon 40743839 40743955 0.000000 - . gene_id "PTPRT"; transcript_id "AF043644:uc010ggi.3";
+chr20 hg19_knownGene CDS 40747043 40747140 0.000000 - 2 gene_id "PTPRT"; transcript_id "AF043644:uc010ggi.3";
+chr20 hg19_knownGene exon 40747043 40747140 0.000000 - . gene_id "PTPRT"; transcript_id "AF043644:uc010ggi.3";
+chr20 hg19_knownGene CDS 40748575 40748611 0.000000 - 0 gene_id "PTPRT"; transcript_id "AF043644:uc010ggi.3";
+chr20 hg19_knownGene exon 40748575 40748611 0.000000 - . gene_id "PTPRT"; transcript_id "AF043644:uc010ggi.3";
+chr20 hg19_knownGene CDS 40757394 40757470 0.000000 - 2 gene_id "PTPRT"; transcript_id "AF043644:uc010ggi.3";
+chr20 hg19_knownGene exon 40757394 40757470 0.000000 - . gene_id "PTPRT"; transcript_id "AF043644:uc010ggi.3";
+chr20 hg19_knownGene CDS 40770555 40770642 0.000000 - 0 gene_id "PTPRT"; transcript_id "AF043644:uc010ggi.3";
+chr20 hg19_knownGene exon 40770555 40770642 0.000000 - . gene_id "PTPRT"; transcript_id "AF043644:uc010ggi.3";
+chr20 hg19_knownGene CDS 40789992 40790182 0.000000 - 2 gene_id "PTPRT"; transcript_id "AF043644:uc010ggi.3";
+chr20 hg19_knownGene exon 40789992 40790182 0.000000 - . gene_id "PTPRT"; transcript_id "AF043644:uc010ggi.3";
+chr20 hg19_knownGene CDS 40827880 40827979 0.000000 - 0 gene_id "PTPRT"; transcript_id "AF043644:uc010ggi.3";
+chr20 hg19_knownGene exon 40827880 40828037 0.000000 - . gene_id "PTPRT"; transcript_id "AF043644:uc010ggi.3";
+chr20 hg19_knownGene exon 41314123 41314471 0.000000 + . gene_id "BC040166"; transcript_id "BC040166:uc002xkh.3";
+chr20 hg19_knownGene exon 41314585 41314699 0.000000 + . gene_id "BC040166"; transcript_id "BC040166:uc002xkh.3";
+chr20 hg19_knownGene exon 41314788 41314952 0.000000 + . gene_id "BC040166"; transcript_id "BC040166:uc002xkh.3";
+chr20 hg19_knownGene exon 41315837 41317202 0.000000 + . gene_id "BC040166"; transcript_id "BC040166:uc002xkh.3";
+chr20 hg19_knownGene exon 41691966 41692249 0.000000 + . gene_id "7SK"; transcript_id ":uc021wdw.1";
+chr20 hg19_knownGene CDS 40709522 40709572 0.000000 - 0 gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene exon 40701392 40709572 0.000000 - . gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene CDS 40710522 40710657 0.000000 - 1 gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene exon 40710522 40710657 0.000000 - . gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene CDS 40713322 40713485 0.000000 - 0 gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene exon 40713322 40713485 0.000000 - . gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene CDS 40714368 40714493 0.000000 - 0 gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene exon 40714368 40714493 0.000000 - . gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene CDS 40727061 40727192 0.000000 - 0 gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene exon 40727061 40727192 0.000000 - . gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene CDS 40730764 40730937 0.000000 - 0 gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene exon 40730764 40730937 0.000000 - . gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene CDS 40733209 40733358 0.000000 - 0 gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene exon 40733209 40733358 0.000000 - . gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene CDS 40735426 40735561 0.000000 - 1 gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene exon 40735426 40735561 0.000000 - . gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene CDS 40738973 40739127 0.000000 - 0 gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene exon 40738973 40739127 0.000000 - . gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene CDS 40743839 40743955 0.000000 - 0 gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene exon 40743839 40743955 0.000000 - . gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene CDS 40747043 40747140 0.000000 - 2 gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene exon 40747043 40747140 0.000000 - . gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene CDS 40748575 40748611 0.000000 - 0 gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene exon 40748575 40748611 0.000000 - . gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene CDS 40757394 40757470 0.000000 - 2 gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene exon 40757394 40757470 0.000000 - . gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene CDS 40770555 40770642 0.000000 - 0 gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene exon 40770555 40770642 0.000000 - . gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene CDS 40789992 40790182 0.000000 - 2 gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene exon 40789992 40790182 0.000000 - . gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene CDS 40827880 40828028 0.000000 - 1 gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene exon 40827880 40828028 0.000000 - . gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene CDS 40864869 40864898 0.000000 - 1 gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene exon 40864869 40864898 0.000000 - . gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene CDS 40877327 40877462 0.000000 - 2 gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene exon 40877327 40877462 0.000000 - . gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene CDS 40899037 40899093 0.000000 - 2 gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene exon 40899037 40899093 0.000000 - . gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene CDS 40911129 40911165 0.000000 - 0 gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene exon 40911129 40911165 0.000000 - . gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene CDS 40944363 40944636 0.000000 - 1 gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene exon 40944363 40944636 0.000000 - . gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene CDS 40979268 40979370 0.000000 - 2 gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene exon 40979268 40979370 0.000000 - . gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene CDS 40980724 40980925 0.000000 - 0 gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene exon 40980724 40980925 0.000000 - . gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene CDS 41076860 41076969 0.000000 - 2 gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene exon 41076860 41076969 0.000000 - . gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene CDS 41100906 41101202 0.000000 - 2 gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene exon 41100906 41101202 0.000000 - . gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene CDS 41306506 41306799 0.000000 - 2 gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene exon 41306506 41306799 0.000000 - . gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene CDS 41385102 41385276 0.000000 - 0 gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene exon 41385102 41385276 0.000000 - . gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene CDS 41400075 41400190 0.000000 - 2 gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene exon 41400075 41400190 0.000000 - . gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene CDS 41408858 41408939 0.000000 - 0 gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene exon 41408858 41408939 0.000000 - . gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene CDS 41419835 41420106 0.000000 - 2 gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene exon 41419835 41420106 0.000000 - . gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene CDS 41514447 41514572 0.000000 - 2 gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene exon 41514447 41514572 0.000000 - . gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene CDS 41818286 41818373 0.000000 - 0 gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene exon 41818286 41818557 0.000000 - . gene_id "PTPRT"; transcript_id "NM_133170:uc010ggj.3";
+chr20 hg19_knownGene CDS 40709522 40709572 0.000000 - 0 gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene exon 40701392 40709572 0.000000 - . gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene CDS 40710522 40710657 0.000000 - 1 gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene exon 40710522 40710657 0.000000 - . gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene CDS 40713322 40713485 0.000000 - 0 gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene exon 40713322 40713485 0.000000 - . gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene CDS 40714368 40714493 0.000000 - 0 gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene exon 40714368 40714493 0.000000 - . gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene CDS 40727061 40727192 0.000000 - 0 gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene exon 40727061 40727192 0.000000 - . gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene CDS 40730764 40730937 0.000000 - 0 gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene exon 40730764 40730937 0.000000 - . gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene CDS 40733209 40733358 0.000000 - 0 gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene exon 40733209 40733358 0.000000 - . gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene CDS 40735426 40735561 0.000000 - 1 gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene exon 40735426 40735561 0.000000 - . gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene CDS 40738973 40739127 0.000000 - 0 gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene exon 40738973 40739127 0.000000 - . gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene CDS 40743839 40743955 0.000000 - 0 gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene exon 40743839 40743955 0.000000 - . gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene CDS 40747043 40747140 0.000000 - 2 gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene exon 40747043 40747140 0.000000 - . gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene CDS 40748575 40748611 0.000000 - 0 gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene exon 40748575 40748611 0.000000 - . gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene CDS 40757394 40757470 0.000000 - 2 gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene exon 40757394 40757470 0.000000 - . gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene CDS 40770555 40770642 0.000000 - 0 gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene exon 40770555 40770642 0.000000 - . gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene CDS 40789992 40790182 0.000000 - 2 gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene exon 40789992 40790182 0.000000 - . gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene CDS 40827880 40828028 0.000000 - 1 gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene exon 40827880 40828028 0.000000 - . gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene CDS 40864869 40864898 0.000000 - 1 gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene exon 40864869 40864898 0.000000 - . gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene CDS 40877327 40877462 0.000000 - 2 gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene exon 40877327 40877462 0.000000 - . gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene CDS 40911129 40911165 0.000000 - 0 gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene exon 40911129 40911165 0.000000 - . gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene CDS 40944363 40944636 0.000000 - 1 gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene exon 40944363 40944636 0.000000 - . gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene CDS 40979268 40979370 0.000000 - 2 gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene exon 40979268 40979370 0.000000 - . gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene CDS 40980724 40980925 0.000000 - 0 gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene exon 40980724 40980925 0.000000 - . gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene CDS 41076860 41076969 0.000000 - 2 gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene exon 41076860 41076969 0.000000 - . gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene CDS 41100906 41101202 0.000000 - 2 gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene exon 41100906 41101202 0.000000 - . gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene CDS 41306506 41306799 0.000000 - 2 gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene exon 41306506 41306799 0.000000 - . gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene CDS 41385102 41385276 0.000000 - 0 gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene exon 41385102 41385276 0.000000 - . gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene CDS 41400075 41400190 0.000000 - 2 gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene exon 41400075 41400190 0.000000 - . gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene CDS 41408858 41408939 0.000000 - 0 gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene exon 41408858 41408939 0.000000 - . gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene CDS 41419835 41420106 0.000000 - 2 gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene exon 41419835 41420106 0.000000 - . gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene CDS 41514447 41514572 0.000000 - 2 gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene exon 41514447 41514572 0.000000 - . gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene CDS 41818286 41818373 0.000000 - 0 gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene exon 41818286 41818557 0.000000 - . gene_id "PTPRT"; transcript_id "NM_007050:uc002xkg.3";
+chr20 hg19_knownGene exon 41850846 41851150 0.000000 + . gene_id "Metazoa_SRP"; transcript_id ":uc021wdx.1";
+chr20 hg19_knownGene exon 41933195 41933319 0.000000 + . gene_id "SCARNA15"; transcript_id ":uc021wdy.1";
+chr20 hg19_knownGene exon 42086504 42086780 0.000000 + . gene_id "SRSF6"; transcript_id "NR_034009:uc002xki.3";
+chr20 hg19_knownGene exon 42087001 42087149 0.000000 + . gene_id "SRSF6"; transcript_id "NR_034009:uc002xki.3";
+chr20 hg19_knownGene exon 42087793 42088060 0.000000 + . gene_id "SRSF6"; transcript_id "NR_034009:uc002xki.3";
+chr20 hg19_knownGene exon 42088411 42088535 0.000000 + . gene_id "SRSF6"; transcript_id "NR_034009:uc002xki.3";
+chr20 hg19_knownGene CDS 42088679 42088881 0.000000 + 0 gene_id "SRSF6"; transcript_id "NR_034009:uc002xki.3";
+chr20 hg19_knownGene exon 42088673 42088881 0.000000 + . gene_id "SRSF6"; transcript_id "NR_034009:uc002xki.3";
+chr20 hg19_knownGene CDS 42089155 42089238 0.000000 + 1 gene_id "SRSF6"; transcript_id "NR_034009:uc002xki.3";
+chr20 hg19_knownGene exon 42089155 42089238 0.000000 + . gene_id "SRSF6"; transcript_id "NR_034009:uc002xki.3";
+chr20 hg19_knownGene CDS 42089343 42089700 0.000000 + 1 gene_id "SRSF6"; transcript_id "NR_034009:uc002xki.3";
+chr20 hg19_knownGene exon 42089343 42092244 0.000000 + . gene_id "SRSF6"; transcript_id "NR_034009:uc002xki.3";
+chr20 hg19_knownGene CDS 42086674 42086780 0.000000 + 0 gene_id "SRSF6"; transcript_id "NM_006275:uc010zwg.2";
+chr20 hg19_knownGene exon 42086504 42086780 0.000000 + . gene_id "SRSF6"; transcript_id "NM_006275:uc010zwg.2";
+chr20 hg19_knownGene CDS 42087001 42087149 0.000000 + 1 gene_id "SRSF6"; transcript_id "NM_006275:uc010zwg.2";
+chr20 hg19_knownGene exon 42087001 42087149 0.000000 + . gene_id "SRSF6"; transcript_id "NM_006275:uc010zwg.2";
+chr20 hg19_knownGene CDS 42088411 42088535 0.000000 + 2 gene_id "SRSF6"; transcript_id "NM_006275:uc010zwg.2";
+chr20 hg19_knownGene exon 42088411 42088535 0.000000 + . gene_id "SRSF6"; transcript_id "NM_006275:uc010zwg.2";
+chr20 hg19_knownGene CDS 42088673 42088881 0.000000 + 0 gene_id "SRSF6"; transcript_id "NM_006275:uc010zwg.2";
+chr20 hg19_knownGene exon 42088673 42088881 0.000000 + . gene_id "SRSF6"; transcript_id "NM_006275:uc010zwg.2";
+chr20 hg19_knownGene CDS 42089155 42089238 0.000000 + 1 gene_id "SRSF6"; transcript_id "NM_006275:uc010zwg.2";
+chr20 hg19_knownGene exon 42089155 42089238 0.000000 + . gene_id "SRSF6"; transcript_id "NM_006275:uc010zwg.2";
+chr20 hg19_knownGene CDS 42089343 42089700 0.000000 + 1 gene_id "SRSF6"; transcript_id "NM_006275:uc010zwg.2";
+chr20 hg19_knownGene exon 42089343 42092244 0.000000 + . gene_id "SRSF6"; transcript_id "NM_006275:uc010zwg.2";
+chr20 hg19_knownGene CDS 42143185 42143416 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "AK308334:uc010ggk.2";
+chr20 hg19_knownGene exon 42143076 42143416 0.000000 + . gene_id "L3MBTL1"; transcript_id "AK308334:uc010ggk.2";
+chr20 hg19_knownGene CDS 42143649 42143799 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "AK308334:uc010ggk.2";
+chr20 hg19_knownGene exon 42143649 42143799 0.000000 + . gene_id "L3MBTL1"; transcript_id "AK308334:uc010ggk.2";
+chr20 hg19_knownGene CDS 42143932 42144055 0.000000 + 1 gene_id "L3MBTL1"; transcript_id "AK308334:uc010ggk.2";
+chr20 hg19_knownGene exon 42143932 42144055 0.000000 + . gene_id "L3MBTL1"; transcript_id "AK308334:uc010ggk.2";
+chr20 hg19_knownGene CDS 42144733 42144817 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "AK308334:uc010ggk.2";
+chr20 hg19_knownGene exon 42144733 42144817 0.000000 + . gene_id "L3MBTL1"; transcript_id "AK308334:uc010ggk.2";
+chr20 hg19_knownGene CDS 42157297 42157406 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "AK308334:uc010ggk.2";
+chr20 hg19_knownGene exon 42157297 42157531 0.000000 + . gene_id "L3MBTL1"; transcript_id "AK308334:uc010ggk.2";
+chr20 hg19_knownGene CDS 42143185 42143416 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene exon 42143076 42143416 0.000000 + . gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene CDS 42143649 42143799 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene exon 42143649 42143799 0.000000 + . gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene CDS 42143932 42144055 0.000000 + 1 gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene exon 42143932 42144055 0.000000 + . gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene CDS 42144733 42144817 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene exon 42144733 42144817 0.000000 + . gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene CDS 42157297 42157385 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene exon 42157297 42157385 0.000000 + . gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene CDS 42157904 42158008 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene exon 42157904 42158008 0.000000 + . gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene CDS 42158924 42159059 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene exon 42158924 42159059 0.000000 + . gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene CDS 42159438 42159529 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene exon 42159438 42159529 0.000000 + . gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene CDS 42161413 42161564 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene exon 42161413 42161564 0.000000 + . gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene CDS 42161982 42162058 0.000000 + 1 gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene exon 42161982 42162058 0.000000 + . gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene CDS 42162648 42162733 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene exon 42162648 42162733 0.000000 + . gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene CDS 42162924 42163034 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene exon 42162924 42163034 0.000000 + . gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene CDS 42163468 42163582 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene exon 42163468 42163582 0.000000 + . gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene CDS 42164477 42164576 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene exon 42164477 42164576 0.000000 + . gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene CDS 42164737 42164934 0.000000 + 1 gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene exon 42164737 42164934 0.000000 + . gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene CDS 42165049 42165098 0.000000 + 1 gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene exon 42165049 42165098 0.000000 + . gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene CDS 42168791 42168948 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene exon 42168791 42168948 0.000000 + . gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene CDS 42169393 42169545 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene exon 42169393 42169548 0.000000 + . gene_id "L3MBTL1"; transcript_id "CCDS46602:uc002xkm.3";
+chr20 hg19_knownGene CDS 42143185 42143416 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene exon 42143076 42143416 0.000000 + . gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene CDS 42143649 42143799 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene exon 42143649 42143799 0.000000 + . gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene CDS 42143932 42144055 0.000000 + 1 gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene exon 42143932 42144055 0.000000 + . gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene CDS 42144733 42144817 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene exon 42144733 42144817 0.000000 + . gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene CDS 42157297 42157385 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene exon 42157297 42157385 0.000000 + . gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene CDS 42157904 42158008 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene exon 42157904 42158008 0.000000 + . gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene CDS 42158924 42159059 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene exon 42158924 42159059 0.000000 + . gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene CDS 42159438 42159529 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene exon 42159438 42159529 0.000000 + . gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene CDS 42161413 42161564 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene exon 42161413 42161564 0.000000 + . gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene CDS 42161982 42162058 0.000000 + 1 gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene exon 42161982 42162058 0.000000 + . gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene CDS 42162648 42162733 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene exon 42162648 42162733 0.000000 + . gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene CDS 42162924 42163034 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene exon 42162924 42163034 0.000000 + . gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene CDS 42163468 42163582 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene exon 42163468 42163582 0.000000 + . gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene CDS 42164477 42164576 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene exon 42164477 42164576 0.000000 + . gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene CDS 42164722 42164934 0.000000 + 1 gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene exon 42164722 42164934 0.000000 + . gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene CDS 42165049 42165098 0.000000 + 1 gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene exon 42165049 42165098 0.000000 + . gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene CDS 42168791 42168948 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene exon 42168791 42168948 0.000000 + . gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene CDS 42169393 42169545 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene exon 42169393 42169548 0.000000 + . gene_id "L3MBTL1"; transcript_id "BC034398:uc010ggl.3";
+chr20 hg19_knownGene CDS 42161443 42161564 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "AL110279:uc002xko.3";
+chr20 hg19_knownGene exon 42159609 42161564 0.000000 + . gene_id "L3MBTL1"; transcript_id "AL110279:uc002xko.3";
+chr20 hg19_knownGene CDS 42161982 42162058 0.000000 + 1 gene_id "L3MBTL1"; transcript_id "AL110279:uc002xko.3";
+chr20 hg19_knownGene exon 42161982 42162058 0.000000 + . gene_id "L3MBTL1"; transcript_id "AL110279:uc002xko.3";
+chr20 hg19_knownGene CDS 42162648 42162733 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "AL110279:uc002xko.3";
+chr20 hg19_knownGene exon 42162648 42162733 0.000000 + . gene_id "L3MBTL1"; transcript_id "AL110279:uc002xko.3";
+chr20 hg19_knownGene CDS 42162924 42163034 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "AL110279:uc002xko.3";
+chr20 hg19_knownGene exon 42162924 42163034 0.000000 + . gene_id "L3MBTL1"; transcript_id "AL110279:uc002xko.3";
+chr20 hg19_knownGene CDS 42163468 42163582 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "AL110279:uc002xko.3";
+chr20 hg19_knownGene exon 42163468 42163582 0.000000 + . gene_id "L3MBTL1"; transcript_id "AL110279:uc002xko.3";
+chr20 hg19_knownGene CDS 42164477 42164576 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "AL110279:uc002xko.3";
+chr20 hg19_knownGene exon 42164477 42164576 0.000000 + . gene_id "L3MBTL1"; transcript_id "AL110279:uc002xko.3";
+chr20 hg19_knownGene CDS 42164737 42164934 0.000000 + 1 gene_id "L3MBTL1"; transcript_id "AL110279:uc002xko.3";
+chr20 hg19_knownGene exon 42164737 42164934 0.000000 + . gene_id "L3MBTL1"; transcript_id "AL110279:uc002xko.3";
+chr20 hg19_knownGene CDS 42165049 42165098 0.000000 + 1 gene_id "L3MBTL1"; transcript_id "AL110279:uc002xko.3";
+chr20 hg19_knownGene exon 42165049 42165098 0.000000 + . gene_id "L3MBTL1"; transcript_id "AL110279:uc002xko.3";
+chr20 hg19_knownGene CDS 42168791 42168948 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "AL110279:uc002xko.3";
+chr20 hg19_knownGene exon 42168791 42168948 0.000000 + . gene_id "L3MBTL1"; transcript_id "AL110279:uc002xko.3";
+chr20 hg19_knownGene CDS 42169393 42169545 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "AL110279:uc002xko.3";
+chr20 hg19_knownGene exon 42169393 42169548 0.000000 + . gene_id "L3MBTL1"; transcript_id "AL110279:uc002xko.3";
+chr20 hg19_knownGene exon 42136320 42136384 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene CDS 42142210 42142279 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene exon 42142199 42142279 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene CDS 42142478 42142701 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene exon 42142478 42142701 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene CDS 42143275 42143416 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene exon 42143275 42143416 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene CDS 42143649 42143799 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene exon 42143649 42143799 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene CDS 42143932 42144055 0.000000 + 1 gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene exon 42143932 42144055 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene CDS 42144733 42144817 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene exon 42144733 42144817 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene CDS 42157297 42157385 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene exon 42157297 42157385 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene CDS 42157904 42158008 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene exon 42157904 42158008 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene CDS 42158924 42159059 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene exon 42158924 42159059 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene CDS 42159438 42159529 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene exon 42159438 42159529 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene CDS 42161413 42161564 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene exon 42161413 42161564 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene CDS 42161982 42162058 0.000000 + 1 gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene exon 42161982 42162058 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene CDS 42162648 42162733 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene exon 42162648 42162733 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene CDS 42162924 42163034 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene exon 42162924 42163034 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene CDS 42163468 42163582 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene exon 42163468 42163582 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene CDS 42164477 42164576 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene exon 42164477 42164576 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene CDS 42164737 42164934 0.000000 + 1 gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene exon 42164737 42164934 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene CDS 42165049 42165098 0.000000 + 1 gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene exon 42165049 42165098 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene CDS 42168791 42168948 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene exon 42168791 42168948 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene CDS 42169393 42169455 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene exon 42169393 42169455 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene CDS 42169574 42169765 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene exon 42169574 42170535 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_032107:uc010zwh.2";
+chr20 hg19_knownGene CDS 42143185 42143416 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene exon 42143076 42143416 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene CDS 42143649 42143799 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene exon 42143649 42143799 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene CDS 42143932 42144055 0.000000 + 1 gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene exon 42143932 42144055 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene CDS 42144733 42144817 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene exon 42144733 42144817 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene CDS 42157297 42157385 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene exon 42157297 42157385 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene CDS 42157904 42158008 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene exon 42157904 42158008 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene CDS 42158924 42159059 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene exon 42158924 42159059 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene CDS 42159438 42159529 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene exon 42159438 42159529 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene CDS 42161413 42161564 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene exon 42161413 42161564 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene CDS 42161982 42162058 0.000000 + 1 gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene exon 42161982 42162058 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene CDS 42162648 42162733 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene exon 42162648 42162733 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene CDS 42162924 42163034 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene exon 42162924 42163034 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene CDS 42163468 42163582 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene exon 42163468 42163582 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene CDS 42164477 42164576 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene exon 42164477 42164576 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene CDS 42164737 42164934 0.000000 + 1 gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene exon 42164737 42164934 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene CDS 42165049 42165098 0.000000 + 1 gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene exon 42165049 42165098 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene CDS 42168791 42168948 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene exon 42168791 42168948 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene CDS 42169393 42169455 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene exon 42169393 42169455 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene CDS 42169574 42169765 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene exon 42169574 42170535 0.000000 + . gene_id "L3MBTL1"; transcript_id "NM_015478:uc002xkl.3";
+chr20 hg19_knownGene CDS 42168724 42168948 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "AK123176:uc002xkp.3";
+chr20 hg19_knownGene exon 42168221 42168948 0.000000 + . gene_id "L3MBTL1"; transcript_id "AK123176:uc002xkp.3";
+chr20 hg19_knownGene CDS 42169393 42169455 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "AK123176:uc002xkp.3";
+chr20 hg19_knownGene exon 42169393 42169455 0.000000 + . gene_id "L3MBTL1"; transcript_id "AK123176:uc002xkp.3";
+chr20 hg19_knownGene CDS 42169574 42169765 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "AK123176:uc002xkp.3";
+chr20 hg19_knownGene exon 42169574 42170535 0.000000 + . gene_id "L3MBTL1"; transcript_id "AK123176:uc002xkp.3";
+chr20 hg19_knownGene exon 42157297 42157385 0.000000 + . gene_id "L3MBTL1"; transcript_id "AB014581:uc002xkn.1";
+chr20 hg19_knownGene CDS 42157946 42158008 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "AB014581:uc002xkn.1";
+chr20 hg19_knownGene exon 42157904 42158008 0.000000 + . gene_id "L3MBTL1"; transcript_id "AB014581:uc002xkn.1";
+chr20 hg19_knownGene CDS 42158924 42159059 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "AB014581:uc002xkn.1";
+chr20 hg19_knownGene exon 42158924 42159059 0.000000 + . gene_id "L3MBTL1"; transcript_id "AB014581:uc002xkn.1";
+chr20 hg19_knownGene CDS 42159438 42159529 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "AB014581:uc002xkn.1";
+chr20 hg19_knownGene exon 42159438 42159529 0.000000 + . gene_id "L3MBTL1"; transcript_id "AB014581:uc002xkn.1";
+chr20 hg19_knownGene CDS 42161413 42161564 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "AB014581:uc002xkn.1";
+chr20 hg19_knownGene exon 42161413 42161564 0.000000 + . gene_id "L3MBTL1"; transcript_id "AB014581:uc002xkn.1";
+chr20 hg19_knownGene CDS 42161982 42162058 0.000000 + 1 gene_id "L3MBTL1"; transcript_id "AB014581:uc002xkn.1";
+chr20 hg19_knownGene exon 42161982 42162058 0.000000 + . gene_id "L3MBTL1"; transcript_id "AB014581:uc002xkn.1";
+chr20 hg19_knownGene CDS 42162648 42162733 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "AB014581:uc002xkn.1";
+chr20 hg19_knownGene exon 42162648 42162733 0.000000 + . gene_id "L3MBTL1"; transcript_id "AB014581:uc002xkn.1";
+chr20 hg19_knownGene CDS 42162924 42163034 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "AB014581:uc002xkn.1";
+chr20 hg19_knownGene exon 42162924 42163034 0.000000 + . gene_id "L3MBTL1"; transcript_id "AB014581:uc002xkn.1";
+chr20 hg19_knownGene CDS 42163468 42163582 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "AB014581:uc002xkn.1";
+chr20 hg19_knownGene exon 42163468 42163582 0.000000 + . gene_id "L3MBTL1"; transcript_id "AB014581:uc002xkn.1";
+chr20 hg19_knownGene CDS 42164477 42164576 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "AB014581:uc002xkn.1";
+chr20 hg19_knownGene exon 42164477 42164576 0.000000 + . gene_id "L3MBTL1"; transcript_id "AB014581:uc002xkn.1";
+chr20 hg19_knownGene CDS 42164737 42164934 0.000000 + 1 gene_id "L3MBTL1"; transcript_id "AB014581:uc002xkn.1";
+chr20 hg19_knownGene exon 42164737 42164934 0.000000 + . gene_id "L3MBTL1"; transcript_id "AB014581:uc002xkn.1";
+chr20 hg19_knownGene CDS 42165049 42165098 0.000000 + 1 gene_id "L3MBTL1"; transcript_id "AB014581:uc002xkn.1";
+chr20 hg19_knownGene exon 42165049 42165098 0.000000 + . gene_id "L3MBTL1"; transcript_id "AB014581:uc002xkn.1";
+chr20 hg19_knownGene CDS 42168791 42168948 0.000000 + 2 gene_id "L3MBTL1"; transcript_id "AB014581:uc002xkn.1";
+chr20 hg19_knownGene exon 42168791 42168948 0.000000 + . gene_id "L3MBTL1"; transcript_id "AB014581:uc002xkn.1";
+chr20 hg19_knownGene CDS 42169393 42169455 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "AB014581:uc002xkn.1";
+chr20 hg19_knownGene exon 42169393 42169455 0.000000 + . gene_id "L3MBTL1"; transcript_id "AB014581:uc002xkn.1";
+chr20 hg19_knownGene CDS 42176751 42176882 0.000000 + 0 gene_id "L3MBTL1"; transcript_id "AB014581:uc002xkn.1";
+chr20 hg19_knownGene exon 42176751 42179593 0.000000 + . gene_id "L3MBTL1"; transcript_id "AB014581:uc002xkn.1";
+chr20 hg19_knownGene exon 42168791 42168948 0.000000 + . gene_id "SGK2"; transcript_id "AY927520:uc002xkq.1";
+chr20 hg19_knownGene exon 42169393 42169455 0.000000 + . gene_id "SGK2"; transcript_id "AY927520:uc002xkq.1";
+chr20 hg19_knownGene CDS 42195136 42195171 0.000000 + 0 gene_id "SGK2"; transcript_id "AY927520:uc002xkq.1";
+chr20 hg19_knownGene exon 42195113 42195171 0.000000 + . gene_id "SGK2"; transcript_id "AY927520:uc002xkq.1";
+chr20 hg19_knownGene CDS 42195708 42195757 0.000000 + 0 gene_id "SGK2"; transcript_id "AY927520:uc002xkq.1";
+chr20 hg19_knownGene exon 42195708 42195757 0.000000 + . gene_id "SGK2"; transcript_id "AY927520:uc002xkq.1";
+chr20 hg19_knownGene CDS 42196305 42196362 0.000000 + 1 gene_id "SGK2"; transcript_id "AY927520:uc002xkq.1";
+chr20 hg19_knownGene exon 42196305 42196362 0.000000 + . gene_id "SGK2"; transcript_id "AY927520:uc002xkq.1";
+chr20 hg19_knownGene CDS 42196556 42196639 0.000000 + 0 gene_id "SGK2"; transcript_id "AY927520:uc002xkq.1";
+chr20 hg19_knownGene exon 42196556 42196639 0.000000 + . gene_id "SGK2"; transcript_id "AY927520:uc002xkq.1";
+chr20 hg19_knownGene CDS 42198025 42198153 0.000000 + 0 gene_id "SGK2"; transcript_id "AY927520:uc002xkq.1";
+chr20 hg19_knownGene exon 42198025 42198156 0.000000 + . gene_id "SGK2"; transcript_id "AY927520:uc002xkq.1";
+chr20 hg19_knownGene exon 42187635 42187799 0.000000 + . gene_id "SGK2"; transcript_id "NM_170693:uc002xkr.3";
+chr20 hg19_knownGene CDS 42195136 42195171 0.000000 + 0 gene_id "SGK2"; transcript_id "NM_170693:uc002xkr.3";
+chr20 hg19_knownGene exon 42195113 42195171 0.000000 + . gene_id "SGK2"; transcript_id "NM_170693:uc002xkr.3";
+chr20 hg19_knownGene CDS 42195708 42195757 0.000000 + 0 gene_id "SGK2"; transcript_id "NM_170693:uc002xkr.3";
+chr20 hg19_knownGene exon 42195708 42195757 0.000000 + . gene_id "SGK2"; transcript_id "NM_170693:uc002xkr.3";
+chr20 hg19_knownGene CDS 42196305 42196362 0.000000 + 1 gene_id "SGK2"; transcript_id "NM_170693:uc002xkr.3";
+chr20 hg19_knownGene exon 42196305 42196362 0.000000 + . gene_id "SGK2"; transcript_id "NM_170693:uc002xkr.3";
+chr20 hg19_knownGene CDS 42196556 42196639 0.000000 + 0 gene_id "SGK2"; transcript_id "NM_170693:uc002xkr.3";
+chr20 hg19_knownGene exon 42196556 42196639 0.000000 + . gene_id "SGK2"; transcript_id "NM_170693:uc002xkr.3";
+chr20 hg19_knownGene CDS 42198025 42198156 0.000000 + 0 gene_id "SGK2"; transcript_id "NM_170693:uc002xkr.3";
+chr20 hg19_knownGene exon 42198025 42198156 0.000000 + . gene_id "SGK2"; transcript_id "NM_170693:uc002xkr.3";
+chr20 hg19_knownGene CDS 42199257 42199369 0.000000 + 0 gene_id "SGK2"; transcript_id "NM_170693:uc002xkr.3";
+chr20 hg19_knownGene exon 42199257 42199369 0.000000 + . gene_id "SGK2"; transcript_id "NM_170693:uc002xkr.3";
+chr20 hg19_knownGene CDS 42199664 42199700 0.000000 + 1 gene_id "SGK2"; transcript_id "NM_170693:uc002xkr.3";
+chr20 hg19_knownGene exon 42199664 42199700 0.000000 + . gene_id "SGK2"; transcript_id "NM_170693:uc002xkr.3";
+chr20 hg19_knownGene CDS 42200691 42200777 0.000000 + 0 gene_id "SGK2"; transcript_id "NM_170693:uc002xkr.3";
+chr20 hg19_knownGene exon 42200691 42200777 0.000000 + . gene_id "SGK2"; transcript_id "NM_170693:uc002xkr.3";
+chr20 hg19_knownGene CDS 42203549 42203644 0.000000 + 0 gene_id "SGK2"; transcript_id "NM_170693:uc002xkr.3";
+chr20 hg19_knownGene exon 42203549 42203644 0.000000 + . gene_id "SGK2"; transcript_id "NM_170693:uc002xkr.3";
+chr20 hg19_knownGene CDS 42204864 42205019 0.000000 + 0 gene_id "SGK2"; transcript_id "NM_170693:uc002xkr.3";
+chr20 hg19_knownGene exon 42204864 42205019 0.000000 + . gene_id "SGK2"; transcript_id "NM_170693:uc002xkr.3";
+chr20 hg19_knownGene CDS 42208612 42208701 0.000000 + 0 gene_id "SGK2"; transcript_id "NM_170693:uc002xkr.3";
+chr20 hg19_knownGene exon 42208612 42208701 0.000000 + . gene_id "SGK2"; transcript_id "NM_170693:uc002xkr.3";
+chr20 hg19_knownGene CDS 42213492 42213653 0.000000 + 0 gene_id "SGK2"; transcript_id "NM_170693:uc002xkr.3";
+chr20 hg19_knownGene exon 42213492 42214273 0.000000 + . gene_id "SGK2"; transcript_id "NM_170693:uc002xkr.3";
+chr20 hg19_knownGene exon 42187635 42187799 0.000000 + . gene_id "SGK2"; transcript_id "AK308502:uc010ggm.3";
+chr20 hg19_knownGene CDS 42195136 42195171 0.000000 + 0 gene_id "SGK2"; transcript_id "AK308502:uc010ggm.3";
+chr20 hg19_knownGene exon 42195113 42195171 0.000000 + . gene_id "SGK2"; transcript_id "AK308502:uc010ggm.3";
+chr20 hg19_knownGene CDS 42195708 42195757 0.000000 + 0 gene_id "SGK2"; transcript_id "AK308502:uc010ggm.3";
+chr20 hg19_knownGene exon 42195708 42195757 0.000000 + . gene_id "SGK2"; transcript_id "AK308502:uc010ggm.3";
+chr20 hg19_knownGene CDS 42196305 42196362 0.000000 + 1 gene_id "SGK2"; transcript_id "AK308502:uc010ggm.3";
+chr20 hg19_knownGene exon 42196305 42196362 0.000000 + . gene_id "SGK2"; transcript_id "AK308502:uc010ggm.3";
+chr20 hg19_knownGene CDS 42196556 42196639 0.000000 + 0 gene_id "SGK2"; transcript_id "AK308502:uc010ggm.3";
+chr20 hg19_knownGene exon 42196556 42196639 0.000000 + . gene_id "SGK2"; transcript_id "AK308502:uc010ggm.3";
+chr20 hg19_knownGene CDS 42198025 42198156 0.000000 + 0 gene_id "SGK2"; transcript_id "AK308502:uc010ggm.3";
+chr20 hg19_knownGene exon 42198025 42198156 0.000000 + . gene_id "SGK2"; transcript_id "AK308502:uc010ggm.3";
+chr20 hg19_knownGene CDS 42199257 42199369 0.000000 + 0 gene_id "SGK2"; transcript_id "AK308502:uc010ggm.3";
+chr20 hg19_knownGene exon 42199257 42199369 0.000000 + . gene_id "SGK2"; transcript_id "AK308502:uc010ggm.3";
+chr20 hg19_knownGene CDS 42199664 42199700 0.000000 + 1 gene_id "SGK2"; transcript_id "AK308502:uc010ggm.3";
+chr20 hg19_knownGene exon 42199664 42199700 0.000000 + . gene_id "SGK2"; transcript_id "AK308502:uc010ggm.3";
+chr20 hg19_knownGene CDS 42200691 42200777 0.000000 + 0 gene_id "SGK2"; transcript_id "AK308502:uc010ggm.3";
+chr20 hg19_knownGene exon 42200691 42200777 0.000000 + . gene_id "SGK2"; transcript_id "AK308502:uc010ggm.3";
+chr20 hg19_knownGene CDS 42203549 42203644 0.000000 + 0 gene_id "SGK2"; transcript_id "AK308502:uc010ggm.3";
+chr20 hg19_knownGene exon 42203549 42203644 0.000000 + . gene_id "SGK2"; transcript_id "AK308502:uc010ggm.3";
+chr20 hg19_knownGene CDS 42204864 42205019 0.000000 + 0 gene_id "SGK2"; transcript_id "AK308502:uc010ggm.3";
+chr20 hg19_knownGene exon 42204864 42205019 0.000000 + . gene_id "SGK2"; transcript_id "AK308502:uc010ggm.3";
+chr20 hg19_knownGene CDS 42208612 42208701 0.000000 + 0 gene_id "SGK2"; transcript_id "AK308502:uc010ggm.3";
+chr20 hg19_knownGene exon 42208612 42208701 0.000000 + . gene_id "SGK2"; transcript_id "AK308502:uc010ggm.3";
+chr20 hg19_knownGene CDS 42211823 42211957 0.000000 + 0 gene_id "SGK2"; transcript_id "AK308502:uc010ggm.3";
+chr20 hg19_knownGene exon 42211823 42212014 0.000000 + . gene_id "SGK2"; transcript_id "AK308502:uc010ggm.3";
+chr20 hg19_knownGene exon 42213492 42214273 0.000000 + . gene_id "SGK2"; transcript_id "AK308502:uc010ggm.3";
+chr20 hg19_knownGene exon 42187635 42187799 0.000000 + . gene_id "SGK2"; transcript_id "BC006523:uc002xkt.3";
+chr20 hg19_knownGene exon 42195113 42195171 0.000000 + . gene_id "SGK2"; transcript_id "BC006523:uc002xkt.3";
+chr20 hg19_knownGene exon 42195708 42195757 0.000000 + . gene_id "SGK2"; transcript_id "BC006523:uc002xkt.3";
+chr20 hg19_knownGene exon 42196305 42196362 0.000000 + . gene_id "SGK2"; transcript_id "BC006523:uc002xkt.3";
+chr20 hg19_knownGene exon 42196556 42196639 0.000000 + . gene_id "SGK2"; transcript_id "BC006523:uc002xkt.3";
+chr20 hg19_knownGene exon 42198025 42198156 0.000000 + . gene_id "SGK2"; transcript_id "BC006523:uc002xkt.3";
+chr20 hg19_knownGene exon 42199257 42199369 0.000000 + . gene_id "SGK2"; transcript_id "BC006523:uc002xkt.3";
+chr20 hg19_knownGene exon 42199664 42199700 0.000000 + . gene_id "SGK2"; transcript_id "BC006523:uc002xkt.3";
+chr20 hg19_knownGene exon 42200691 42200777 0.000000 + . gene_id "SGK2"; transcript_id "BC006523:uc002xkt.3";
+chr20 hg19_knownGene exon 42203549 42203644 0.000000 + . gene_id "SGK2"; transcript_id "BC006523:uc002xkt.3";
+chr20 hg19_knownGene exon 42204864 42205023 0.000000 + . gene_id "SGK2"; transcript_id "BC006523:uc002xkt.3";
+chr20 hg19_knownGene exon 42208612 42208701 0.000000 + . gene_id "SGK2"; transcript_id "BC006523:uc002xkt.3";
+chr20 hg19_knownGene exon 42213492 42214273 0.000000 + . gene_id "SGK2"; transcript_id "BC006523:uc002xkt.3";
+chr20 hg19_knownGene exon 42193755 42193926 0.000000 + . gene_id "SGK2"; transcript_id "NM_001199264:uc002xku.3";
+chr20 hg19_knownGene CDS 42195136 42195171 0.000000 + 0 gene_id "SGK2"; transcript_id "NM_001199264:uc002xku.3";
+chr20 hg19_knownGene exon 42195113 42195171 0.000000 + . gene_id "SGK2"; transcript_id "NM_001199264:uc002xku.3";
+chr20 hg19_knownGene CDS 42195708 42195757 0.000000 + 0 gene_id "SGK2"; transcript_id "NM_001199264:uc002xku.3";
+chr20 hg19_knownGene exon 42195708 42195757 0.000000 + . gene_id "SGK2"; transcript_id "NM_001199264:uc002xku.3";
+chr20 hg19_knownGene CDS 42196305 42196362 0.000000 + 1 gene_id "SGK2"; transcript_id "NM_001199264:uc002xku.3";
+chr20 hg19_knownGene exon 42196305 42196362 0.000000 + . gene_id "SGK2"; transcript_id "NM_001199264:uc002xku.3";
+chr20 hg19_knownGene CDS 42196556 42196639 0.000000 + 0 gene_id "SGK2"; transcript_id "NM_001199264:uc002xku.3";
+chr20 hg19_knownGene exon 42196556 42196639 0.000000 + . gene_id "SGK2"; transcript_id "NM_001199264:uc002xku.3";
+chr20 hg19_knownGene CDS 42198025 42198156 0.000000 + 0 gene_id "SGK2"; transcript_id "NM_001199264:uc002xku.3";
+chr20 hg19_knownGene exon 42198025 42198156 0.000000 + . gene_id "SGK2"; transcript_id "NM_001199264:uc002xku.3";
+chr20 hg19_knownGene CDS 42199257 42199369 0.000000 + 0 gene_id "SGK2"; transcript_id "NM_001199264:uc002xku.3";
+chr20 hg19_knownGene exon 42199257 42199369 0.000000 + . gene_id "SGK2"; transcript_id "NM_001199264:uc002xku.3";
+chr20 hg19_knownGene CDS 42199664 42199700 0.000000 + 1 gene_id "SGK2"; transcript_id "NM_001199264:uc002xku.3";
+chr20 hg19_knownGene exon 42199664 42199700 0.000000 + . gene_id "SGK2"; transcript_id "NM_001199264:uc002xku.3";
+chr20 hg19_knownGene CDS 42200691 42200777 0.000000 + 0 gene_id "SGK2"; transcript_id "NM_001199264:uc002xku.3";
+chr20 hg19_knownGene exon 42200691 42200777 0.000000 + . gene_id "SGK2"; transcript_id "NM_001199264:uc002xku.3";
+chr20 hg19_knownGene CDS 42203549 42203644 0.000000 + 0 gene_id "SGK2"; transcript_id "NM_001199264:uc002xku.3";
+chr20 hg19_knownGene exon 42203549 42203644 0.000000 + . gene_id "SGK2"; transcript_id "NM_001199264:uc002xku.3";
+chr20 hg19_knownGene CDS 42204864 42205019 0.000000 + 0 gene_id "SGK2"; transcript_id "NM_001199264:uc002xku.3";
+chr20 hg19_knownGene exon 42204864 42205019 0.000000 + . gene_id "SGK2"; transcript_id "NM_001199264:uc002xku.3";
+chr20 hg19_knownGene CDS 42208612 42208701 0.000000 + 0 gene_id "SGK2"; transcript_id "NM_001199264:uc002xku.3";
+chr20 hg19_knownGene exon 42208612 42208701 0.000000 + . gene_id "SGK2"; transcript_id "NM_001199264:uc002xku.3";
+chr20 hg19_knownGene CDS 42213492 42213653 0.000000 + 0 gene_id "SGK2"; transcript_id "NM_001199264:uc002xku.3";
+chr20 hg19_knownGene exon 42213492 42214273 0.000000 + . gene_id "SGK2"; transcript_id "NM_001199264:uc002xku.3";
+chr20 hg19_knownGene CDS 42194956 42195171 0.000000 + 0 gene_id "SGK2"; transcript_id "NM_016276:uc002xkv.3";
+chr20 hg19_knownGene exon 42194737 42195171 0.000000 + . gene_id "SGK2"; transcript_id "NM_016276:uc002xkv.3";
+chr20 hg19_knownGene CDS 42195708 42195757 0.000000 + 0 gene_id "SGK2"; transcript_id "NM_016276:uc002xkv.3";
+chr20 hg19_knownGene exon 42195708 42195757 0.000000 + . gene_id "SGK2"; transcript_id "NM_016276:uc002xkv.3";
+chr20 hg19_knownGene CDS 42196305 42196362 0.000000 + 1 gene_id "SGK2"; transcript_id "NM_016276:uc002xkv.3";
+chr20 hg19_knownGene exon 42196305 42196362 0.000000 + . gene_id "SGK2"; transcript_id "NM_016276:uc002xkv.3";
+chr20 hg19_knownGene CDS 42196556 42196639 0.000000 + 0 gene_id "SGK2"; transcript_id "NM_016276:uc002xkv.3";
+chr20 hg19_knownGene exon 42196556 42196639 0.000000 + . gene_id "SGK2"; transcript_id "NM_016276:uc002xkv.3";
+chr20 hg19_knownGene CDS 42198025 42198156 0.000000 + 0 gene_id "SGK2"; transcript_id "NM_016276:uc002xkv.3";
+chr20 hg19_knownGene exon 42198025 42198156 0.000000 + . gene_id "SGK2"; transcript_id "NM_016276:uc002xkv.3";
+chr20 hg19_knownGene CDS 42199257 42199369 0.000000 + 0 gene_id "SGK2"; transcript_id "NM_016276:uc002xkv.3";
+chr20 hg19_knownGene exon 42199257 42199369 0.000000 + . gene_id "SGK2"; transcript_id "NM_016276:uc002xkv.3";
+chr20 hg19_knownGene CDS 42199664 42199700 0.000000 + 1 gene_id "SGK2"; transcript_id "NM_016276:uc002xkv.3";
+chr20 hg19_knownGene exon 42199664 42199700 0.000000 + . gene_id "SGK2"; transcript_id "NM_016276:uc002xkv.3";
+chr20 hg19_knownGene CDS 42200691 42200777 0.000000 + 0 gene_id "SGK2"; transcript_id "NM_016276:uc002xkv.3";
+chr20 hg19_knownGene exon 42200691 42200777 0.000000 + . gene_id "SGK2"; transcript_id "NM_016276:uc002xkv.3";
+chr20 hg19_knownGene CDS 42203549 42203644 0.000000 + 0 gene_id "SGK2"; transcript_id "NM_016276:uc002xkv.3";
+chr20 hg19_knownGene exon 42203549 42203644 0.000000 + . gene_id "SGK2"; transcript_id "NM_016276:uc002xkv.3";
+chr20 hg19_knownGene CDS 42204864 42205019 0.000000 + 0 gene_id "SGK2"; transcript_id "NM_016276:uc002xkv.3";
+chr20 hg19_knownGene exon 42204864 42205019 0.000000 + . gene_id "SGK2"; transcript_id "NM_016276:uc002xkv.3";
+chr20 hg19_knownGene CDS 42208612 42208701 0.000000 + 0 gene_id "SGK2"; transcript_id "NM_016276:uc002xkv.3";
+chr20 hg19_knownGene exon 42208612 42208701 0.000000 + . gene_id "SGK2"; transcript_id "NM_016276:uc002xkv.3";
+chr20 hg19_knownGene CDS 42213492 42213653 0.000000 + 0 gene_id "SGK2"; transcript_id "NM_016276:uc002xkv.3";
+chr20 hg19_knownGene exon 42213492 42214273 0.000000 + . gene_id "SGK2"; transcript_id "NM_016276:uc002xkv.3";
+chr20 hg19_knownGene exon 42219579 42219694 0.000000 + . gene_id "IFT52"; transcript_id "AK301915:uc010zwi.1";
+chr20 hg19_knownGene exon 42223333 42223457 0.000000 + . gene_id "IFT52"; transcript_id "AK301915:uc010zwi.1";
+chr20 hg19_knownGene exon 42225075 42225162 0.000000 + . gene_id "IFT52"; transcript_id "AK301915:uc010zwi.1";
+chr20 hg19_knownGene exon 42232823 42232898 0.000000 + . gene_id "IFT52"; transcript_id "AK301915:uc010zwi.1";
+chr20 hg19_knownGene exon 42233642 42233856 0.000000 + . gene_id "IFT52"; transcript_id "AK301915:uc010zwi.1";
+chr20 hg19_knownGene exon 42242490 42242616 0.000000 + . gene_id "IFT52"; transcript_id "AK301915:uc010zwi.1";
+chr20 hg19_knownGene exon 42247524 42247666 0.000000 + . gene_id "IFT52"; transcript_id "AK301915:uc010zwi.1";
+chr20 hg19_knownGene exon 42249497 42249565 0.000000 + . gene_id "IFT52"; transcript_id "AK301915:uc010zwi.1";
+chr20 hg19_knownGene exon 42219579 42219694 0.000000 + . gene_id "IFT52"; transcript_id "NM_016004:uc002xkw.3";
+chr20 hg19_knownGene CDS 42223339 42223457 0.000000 + 0 gene_id "IFT52"; transcript_id "NM_016004:uc002xkw.3";
+chr20 hg19_knownGene exon 42223333 42223457 0.000000 + . gene_id "IFT52"; transcript_id "NM_016004:uc002xkw.3";
+chr20 hg19_knownGene CDS 42225075 42225162 0.000000 + 1 gene_id "IFT52"; transcript_id "NM_016004:uc002xkw.3";
+chr20 hg19_knownGene exon 42225075 42225162 0.000000 + . gene_id "IFT52"; transcript_id "NM_016004:uc002xkw.3";
+chr20 hg19_knownGene CDS 42232400 42232529 0.000000 + 0 gene_id "IFT52"; transcript_id "NM_016004:uc002xkw.3";
+chr20 hg19_knownGene exon 42232400 42232529 0.000000 + . gene_id "IFT52"; transcript_id "NM_016004:uc002xkw.3";
+chr20 hg19_knownGene CDS 42232823 42232898 0.000000 + 2 gene_id "IFT52"; transcript_id "NM_016004:uc002xkw.3";
+chr20 hg19_knownGene exon 42232823 42232898 0.000000 + . gene_id "IFT52"; transcript_id "NM_016004:uc002xkw.3";
+chr20 hg19_knownGene CDS 42233642 42233713 0.000000 + 1 gene_id "IFT52"; transcript_id "NM_016004:uc002xkw.3";
+chr20 hg19_knownGene exon 42233642 42233713 0.000000 + . gene_id "IFT52"; transcript_id "NM_016004:uc002xkw.3";
+chr20 hg19_knownGene CDS 42242490 42242616 0.000000 + 1 gene_id "IFT52"; transcript_id "NM_016004:uc002xkw.3";
+chr20 hg19_knownGene exon 42242490 42242616 0.000000 + . gene_id "IFT52"; transcript_id "NM_016004:uc002xkw.3";
+chr20 hg19_knownGene CDS 42247580 42247666 0.000000 + 0 gene_id "IFT52"; transcript_id "NM_016004:uc002xkw.3";
+chr20 hg19_knownGene exon 42247580 42247666 0.000000 + . gene_id "IFT52"; transcript_id "NM_016004:uc002xkw.3";
+chr20 hg19_knownGene CDS 42249497 42249565 0.000000 + 0 gene_id "IFT52"; transcript_id "NM_016004:uc002xkw.3";
+chr20 hg19_knownGene exon 42249497 42249565 0.000000 + . gene_id "IFT52"; transcript_id "NM_016004:uc002xkw.3";
+chr20 hg19_knownGene CDS 42252531 42252685 0.000000 + 0 gene_id "IFT52"; transcript_id "NM_016004:uc002xkw.3";
+chr20 hg19_knownGene exon 42252531 42252685 0.000000 + . gene_id "IFT52"; transcript_id "NM_016004:uc002xkw.3";
+chr20 hg19_knownGene CDS 42264566 42264653 0.000000 + 1 gene_id "IFT52"; transcript_id "NM_016004:uc002xkw.3";
+chr20 hg19_knownGene exon 42264566 42264653 0.000000 + . gene_id "IFT52"; transcript_id "NM_016004:uc002xkw.3";
+chr20 hg19_knownGene CDS 42265785 42265893 0.000000 + 0 gene_id "IFT52"; transcript_id "NM_016004:uc002xkw.3";
+chr20 hg19_knownGene exon 42265785 42265893 0.000000 + . gene_id "IFT52"; transcript_id "NM_016004:uc002xkw.3";
+chr20 hg19_knownGene CDS 42271119 42271264 0.000000 + 2 gene_id "IFT52"; transcript_id "NM_016004:uc002xkw.3";
+chr20 hg19_knownGene exon 42271119 42271264 0.000000 + . gene_id "IFT52"; transcript_id "NM_016004:uc002xkw.3";
+chr20 hg19_knownGene CDS 42275576 42275620 0.000000 + 0 gene_id "IFT52"; transcript_id "NM_016004:uc002xkw.3";
+chr20 hg19_knownGene exon 42275576 42275862 0.000000 + . gene_id "IFT52"; transcript_id "NM_016004:uc002xkw.3";
+chr20 hg19_knownGene exon 42219584 42219669 0.000000 + . gene_id "IFT52"; transcript_id "AF151811:uc002xkx.3";
+chr20 hg19_knownGene exon 42223333 42223457 0.000000 + . gene_id "IFT52"; transcript_id "AF151811:uc002xkx.3";
+chr20 hg19_knownGene exon 42225075 42225162 0.000000 + . gene_id "IFT52"; transcript_id "AF151811:uc002xkx.3";
+chr20 hg19_knownGene exon 42232400 42232529 0.000000 + . gene_id "IFT52"; transcript_id "AF151811:uc002xkx.3";
+chr20 hg19_knownGene exon 42232823 42232898 0.000000 + . gene_id "IFT52"; transcript_id "AF151811:uc002xkx.3";
+chr20 hg19_knownGene exon 42233642 42233713 0.000000 + . gene_id "IFT52"; transcript_id "AF151811:uc002xkx.3";
+chr20 hg19_knownGene exon 42242490 42242616 0.000000 + . gene_id "IFT52"; transcript_id "AF151811:uc002xkx.3";
+chr20 hg19_knownGene exon 42247580 42247670 0.000000 + . gene_id "IFT52"; transcript_id "AF151811:uc002xkx.3";
+chr20 hg19_knownGene exon 42249497 42249565 0.000000 + . gene_id "IFT52"; transcript_id "AF151811:uc002xkx.3";
+chr20 hg19_knownGene exon 42252531 42252685 0.000000 + . gene_id "IFT52"; transcript_id "AF151811:uc002xkx.3";
+chr20 hg19_knownGene exon 42264566 42264653 0.000000 + . gene_id "IFT52"; transcript_id "AF151811:uc002xkx.3";
+chr20 hg19_knownGene exon 42265785 42265893 0.000000 + . gene_id "IFT52"; transcript_id "AF151811:uc002xkx.3";
+chr20 hg19_knownGene exon 42271119 42271264 0.000000 + . gene_id "IFT52"; transcript_id "AF151811:uc002xkx.3";
+chr20 hg19_knownGene exon 42275576 42275862 0.000000 + . gene_id "IFT52"; transcript_id "AF151811:uc002xkx.3";
+chr20 hg19_knownGene exon 42219584 42219669 0.000000 + . gene_id "IFT52"; transcript_id "BC021086:uc002xkz.3";
+chr20 hg19_knownGene CDS 42223339 42223457 0.000000 + 0 gene_id "IFT52"; transcript_id "BC021086:uc002xkz.3";
+chr20 hg19_knownGene exon 42223333 42223457 0.000000 + . gene_id "IFT52"; transcript_id "BC021086:uc002xkz.3";
+chr20 hg19_knownGene CDS 42225075 42225162 0.000000 + 1 gene_id "IFT52"; transcript_id "BC021086:uc002xkz.3";
+chr20 hg19_knownGene exon 42225075 42225162 0.000000 + . gene_id "IFT52"; transcript_id "BC021086:uc002xkz.3";
+chr20 hg19_knownGene CDS 42232400 42232529 0.000000 + 0 gene_id "IFT52"; transcript_id "BC021086:uc002xkz.3";
+chr20 hg19_knownGene exon 42232400 42232529 0.000000 + . gene_id "IFT52"; transcript_id "BC021086:uc002xkz.3";
+chr20 hg19_knownGene CDS 42232823 42232898 0.000000 + 2 gene_id "IFT52"; transcript_id "BC021086:uc002xkz.3";
+chr20 hg19_knownGene exon 42232823 42232898 0.000000 + . gene_id "IFT52"; transcript_id "BC021086:uc002xkz.3";
+chr20 hg19_knownGene CDS 42233642 42233713 0.000000 + 1 gene_id "IFT52"; transcript_id "BC021086:uc002xkz.3";
+chr20 hg19_knownGene exon 42233642 42233713 0.000000 + . gene_id "IFT52"; transcript_id "BC021086:uc002xkz.3";
+chr20 hg19_knownGene CDS 42242490 42242616 0.000000 + 1 gene_id "IFT52"; transcript_id "BC021086:uc002xkz.3";
+chr20 hg19_knownGene exon 42242490 42242616 0.000000 + . gene_id "IFT52"; transcript_id "BC021086:uc002xkz.3";
+chr20 hg19_knownGene CDS 42247580 42247666 0.000000 + 0 gene_id "IFT52"; transcript_id "BC021086:uc002xkz.3";
+chr20 hg19_knownGene exon 42247580 42247666 0.000000 + . gene_id "IFT52"; transcript_id "BC021086:uc002xkz.3";
+chr20 hg19_knownGene CDS 42249497 42249565 0.000000 + 0 gene_id "IFT52"; transcript_id "BC021086:uc002xkz.3";
+chr20 hg19_knownGene exon 42249497 42249565 0.000000 + . gene_id "IFT52"; transcript_id "BC021086:uc002xkz.3";
+chr20 hg19_knownGene CDS 42252531 42252685 0.000000 + 0 gene_id "IFT52"; transcript_id "BC021086:uc002xkz.3";
+chr20 hg19_knownGene exon 42252531 42252685 0.000000 + . gene_id "IFT52"; transcript_id "BC021086:uc002xkz.3";
+chr20 hg19_knownGene CDS 42264566 42264653 0.000000 + 1 gene_id "IFT52"; transcript_id "BC021086:uc002xkz.3";
+chr20 hg19_knownGene exon 42264566 42264653 0.000000 + . gene_id "IFT52"; transcript_id "BC021086:uc002xkz.3";
+chr20 hg19_knownGene CDS 42265785 42265892 0.000000 + 0 gene_id "IFT52"; transcript_id "BC021086:uc002xkz.3";
+chr20 hg19_knownGene exon 42265785 42265893 0.000000 + . gene_id "IFT52"; transcript_id "BC021086:uc002xkz.3";
+chr20 hg19_knownGene exon 42275576 42275862 0.000000 + . gene_id "IFT52"; transcript_id "BC021086:uc002xkz.3";
+chr20 hg19_knownGene CDS 42295924 42295943 0.000000 + 0 gene_id "MYBL2"; transcript_id "NM_002466:uc002xlb.1";
+chr20 hg19_knownGene exon 42295709 42295943 0.000000 + . gene_id "MYBL2"; transcript_id "NM_002466:uc002xlb.1";
+chr20 hg19_knownGene CDS 42302446 42302539 0.000000 + 1 gene_id "MYBL2"; transcript_id "NM_002466:uc002xlb.1";
+chr20 hg19_knownGene exon 42302446 42302539 0.000000 + . gene_id "MYBL2"; transcript_id "NM_002466:uc002xlb.1";
+chr20 hg19_knownGene CDS 42310424 42310495 0.000000 + 0 gene_id "MYBL2"; transcript_id "NM_002466:uc002xlb.1";
+chr20 hg19_knownGene exon 42310424 42310495 0.000000 + . gene_id "MYBL2"; transcript_id "NM_002466:uc002xlb.1";
+chr20 hg19_knownGene CDS 42311434 42311526 0.000000 + 0 gene_id "MYBL2"; transcript_id "NM_002466:uc002xlb.1";
+chr20 hg19_knownGene exon 42311434 42311526 0.000000 + . gene_id "MYBL2"; transcript_id "NM_002466:uc002xlb.1";
+chr20 hg19_knownGene CDS 42315492 42315712 0.000000 + 0 gene_id "MYBL2"; transcript_id "NM_002466:uc002xlb.1";
+chr20 hg19_knownGene exon 42315492 42315712 0.000000 + . gene_id "MYBL2"; transcript_id "NM_002466:uc002xlb.1";
+chr20 hg19_knownGene CDS 42320797 42320959 0.000000 + 1 gene_id "MYBL2"; transcript_id "NM_002466:uc002xlb.1";
+chr20 hg19_knownGene exon 42320797 42320959 0.000000 + . gene_id "MYBL2"; transcript_id "NM_002466:uc002xlb.1";
+chr20 hg19_knownGene CDS 42328397 42328684 0.000000 + 0 gene_id "MYBL2"; transcript_id "NM_002466:uc002xlb.1";
+chr20 hg19_knownGene exon 42328397 42328684 0.000000 + . gene_id "MYBL2"; transcript_id "NM_002466:uc002xlb.1";
+chr20 hg19_knownGene CDS 42331130 42331543 0.000000 + 0 gene_id "MYBL2"; transcript_id "NM_002466:uc002xlb.1";
+chr20 hg19_knownGene exon 42331130 42331543 0.000000 + . gene_id "MYBL2"; transcript_id "NM_002466:uc002xlb.1";
+chr20 hg19_knownGene CDS 42333859 42333998 0.000000 + 0 gene_id "MYBL2"; transcript_id "NM_002466:uc002xlb.1";
+chr20 hg19_knownGene exon 42333859 42333998 0.000000 + . gene_id "MYBL2"; transcript_id "NM_002466:uc002xlb.1";
+chr20 hg19_knownGene CDS 42338603 42338702 0.000000 + 1 gene_id "MYBL2"; transcript_id "NM_002466:uc002xlb.1";
+chr20 hg19_knownGene exon 42338603 42338702 0.000000 + . gene_id "MYBL2"; transcript_id "NM_002466:uc002xlb.1";
+chr20 hg19_knownGene CDS 42340128 42340241 0.000000 + 0 gene_id "MYBL2"; transcript_id "NM_002466:uc002xlb.1";
+chr20 hg19_knownGene exon 42340128 42340241 0.000000 + . gene_id "MYBL2"; transcript_id "NM_002466:uc002xlb.1";
+chr20 hg19_knownGene CDS 42341642 42341746 0.000000 + 0 gene_id "MYBL2"; transcript_id "NM_002466:uc002xlb.1";
+chr20 hg19_knownGene exon 42341642 42341746 0.000000 + . gene_id "MYBL2"; transcript_id "NM_002466:uc002xlb.1";
+chr20 hg19_knownGene CDS 42343774 42343923 0.000000 + 0 gene_id "MYBL2"; transcript_id "NM_002466:uc002xlb.1";
+chr20 hg19_knownGene exon 42343774 42343923 0.000000 + . gene_id "MYBL2"; transcript_id "NM_002466:uc002xlb.1";
+chr20 hg19_knownGene CDS 42344599 42344724 0.000000 + 0 gene_id "MYBL2"; transcript_id "NM_002466:uc002xlb.1";
+chr20 hg19_knownGene exon 42344599 42345122 0.000000 + . gene_id "MYBL2"; transcript_id "NM_002466:uc002xlb.1";
+chr20 hg19_knownGene CDS 42295924 42295943 0.000000 + 0 gene_id "MYBL2"; transcript_id "AK303249:uc010zwj.1";
+chr20 hg19_knownGene exon 42295709 42295943 0.000000 + . gene_id "MYBL2"; transcript_id "AK303249:uc010zwj.1";
+chr20 hg19_knownGene CDS 42302446 42302539 0.000000 + 1 gene_id "MYBL2"; transcript_id "AK303249:uc010zwj.1";
+chr20 hg19_knownGene exon 42302446 42302539 0.000000 + . gene_id "MYBL2"; transcript_id "AK303249:uc010zwj.1";
+chr20 hg19_knownGene CDS 42311434 42311526 0.000000 + 0 gene_id "MYBL2"; transcript_id "AK303249:uc010zwj.1";
+chr20 hg19_knownGene exon 42311434 42311526 0.000000 + . gene_id "MYBL2"; transcript_id "AK303249:uc010zwj.1";
+chr20 hg19_knownGene CDS 42315492 42315712 0.000000 + 0 gene_id "MYBL2"; transcript_id "AK303249:uc010zwj.1";
+chr20 hg19_knownGene exon 42315492 42315712 0.000000 + . gene_id "MYBL2"; transcript_id "AK303249:uc010zwj.1";
+chr20 hg19_knownGene CDS 42320797 42320959 0.000000 + 1 gene_id "MYBL2"; transcript_id "AK303249:uc010zwj.1";
+chr20 hg19_knownGene exon 42320797 42320959 0.000000 + . gene_id "MYBL2"; transcript_id "AK303249:uc010zwj.1";
+chr20 hg19_knownGene CDS 42328397 42328684 0.000000 + 0 gene_id "MYBL2"; transcript_id "AK303249:uc010zwj.1";
+chr20 hg19_knownGene exon 42328397 42328684 0.000000 + . gene_id "MYBL2"; transcript_id "AK303249:uc010zwj.1";
+chr20 hg19_knownGene CDS 42331130 42331543 0.000000 + 0 gene_id "MYBL2"; transcript_id "AK303249:uc010zwj.1";
+chr20 hg19_knownGene exon 42331130 42331543 0.000000 + . gene_id "MYBL2"; transcript_id "AK303249:uc010zwj.1";
+chr20 hg19_knownGene CDS 42333859 42333998 0.000000 + 0 gene_id "MYBL2"; transcript_id "AK303249:uc010zwj.1";
+chr20 hg19_knownGene exon 42333859 42333998 0.000000 + . gene_id "MYBL2"; transcript_id "AK303249:uc010zwj.1";
+chr20 hg19_knownGene CDS 42338603 42338702 0.000000 + 1 gene_id "MYBL2"; transcript_id "AK303249:uc010zwj.1";
+chr20 hg19_knownGene exon 42338603 42338702 0.000000 + . gene_id "MYBL2"; transcript_id "AK303249:uc010zwj.1";
+chr20 hg19_knownGene CDS 42340128 42340241 0.000000 + 0 gene_id "MYBL2"; transcript_id "AK303249:uc010zwj.1";
+chr20 hg19_knownGene exon 42340128 42340241 0.000000 + . gene_id "MYBL2"; transcript_id "AK303249:uc010zwj.1";
+chr20 hg19_knownGene CDS 42341642 42341746 0.000000 + 0 gene_id "MYBL2"; transcript_id "AK303249:uc010zwj.1";
+chr20 hg19_knownGene exon 42341642 42341746 0.000000 + . gene_id "MYBL2"; transcript_id "AK303249:uc010zwj.1";
+chr20 hg19_knownGene CDS 42343774 42343923 0.000000 + 0 gene_id "MYBL2"; transcript_id "AK303249:uc010zwj.1";
+chr20 hg19_knownGene exon 42343774 42343923 0.000000 + . gene_id "MYBL2"; transcript_id "AK303249:uc010zwj.1";
+chr20 hg19_knownGene CDS 42344599 42344724 0.000000 + 0 gene_id "MYBL2"; transcript_id "AK303249:uc010zwj.1";
+chr20 hg19_knownGene exon 42344599 42345122 0.000000 + . gene_id "MYBL2"; transcript_id "AK303249:uc010zwj.1";
+chr20 hg19_knownGene CDS 42354891 42354980 0.000000 - 0 gene_id "GTSF1L"; transcript_id "NM_001008901:uc002xlc.3";
+chr20 hg19_knownGene exon 42354801 42354980 0.000000 - . gene_id "GTSF1L"; transcript_id "NM_001008901:uc002xlc.3";
+chr20 hg19_knownGene CDS 42355056 42355334 0.000000 - 0 gene_id "GTSF1L"; transcript_id "NM_001008901:uc002xlc.3";
+chr20 hg19_knownGene exon 42355056 42355642 0.000000 - . gene_id "GTSF1L"; transcript_id "NM_001008901:uc002xlc.3";
+chr20 hg19_knownGene CDS 42354891 42355334 0.000000 - 0 gene_id "GTSF1L"; transcript_id "NM_176791:uc002xld.3";
+chr20 hg19_knownGene exon 42354801 42355642 0.000000 - . gene_id "GTSF1L"; transcript_id "NM_176791:uc002xld.3";
+chr20 hg19_knownGene exon 42635888 42636179 0.000000 + . gene_id "Metazoa_SRP"; transcript_id ":uc021wdz.1";
+chr20 hg19_knownGene CDS 42543532 42543630 0.000000 + 0 gene_id "TOX2"; transcript_id "NM_001098797:uc010ggo.3";
+chr20 hg19_knownGene exon 42543492 42543630 0.000000 + . gene_id "TOX2"; transcript_id "NM_001098797:uc010ggo.3";
+chr20 hg19_knownGene CDS 42602007 42602072 0.000000 + 0 gene_id "TOX2"; transcript_id "NM_001098797:uc010ggo.3";
+chr20 hg19_knownGene exon 42602007 42602072 0.000000 + . gene_id "TOX2"; transcript_id "NM_001098797:uc010ggo.3";
+chr20 hg19_knownGene CDS 42635187 42635432 0.000000 + 0 gene_id "TOX2"; transcript_id "NM_001098797:uc010ggo.3";
+chr20 hg19_knownGene exon 42635187 42635432 0.000000 + . gene_id "TOX2"; transcript_id "NM_001098797:uc010ggo.3";
+chr20 hg19_knownGene CDS 42679946 42680185 0.000000 + 0 gene_id "TOX2"; transcript_id "NM_001098797:uc010ggo.3";
+chr20 hg19_knownGene exon 42679946 42680185 0.000000 + . gene_id "TOX2"; transcript_id "NM_001098797:uc010ggo.3";
+chr20 hg19_knownGene CDS 42682939 42683166 0.000000 + 0 gene_id "TOX2"; transcript_id "NM_001098797:uc010ggo.3";
+chr20 hg19_knownGene exon 42682939 42683166 0.000000 + . gene_id "TOX2"; transcript_id "NM_001098797:uc010ggo.3";
+chr20 hg19_knownGene CDS 42693417 42693497 0.000000 + 0 gene_id "TOX2"; transcript_id "NM_001098797:uc010ggo.3";
+chr20 hg19_knownGene exon 42693417 42693497 0.000000 + . gene_id "TOX2"; transcript_id "NM_001098797:uc010ggo.3";
+chr20 hg19_knownGene CDS 42694352 42694747 0.000000 + 0 gene_id "TOX2"; transcript_id "NM_001098797:uc010ggo.3";
+chr20 hg19_knownGene exon 42694352 42694747 0.000000 + . gene_id "TOX2"; transcript_id "NM_001098797:uc010ggo.3";
+chr20 hg19_knownGene CDS 42695370 42695497 0.000000 + 0 gene_id "TOX2"; transcript_id "NM_001098797:uc010ggo.3";
+chr20 hg19_knownGene exon 42695370 42695497 0.000000 + . gene_id "TOX2"; transcript_id "NM_001098797:uc010ggo.3";
+chr20 hg19_knownGene CDS 42697290 42697323 0.000000 + 1 gene_id "TOX2"; transcript_id "NM_001098797:uc010ggo.3";
+chr20 hg19_knownGene exon 42697290 42698254 0.000000 + . gene_id "TOX2"; transcript_id "NM_001098797:uc010ggo.3";
+chr20 hg19_knownGene exon 42544782 42544848 0.000000 + . gene_id "TOX2"; transcript_id "NM_032883:uc002xle.4";
+chr20 hg19_knownGene exon 42583788 42583912 0.000000 + . gene_id "TOX2"; transcript_id "NM_032883:uc002xle.4";
+chr20 hg19_knownGene CDS 42602034 42602072 0.000000 + 0 gene_id "TOX2"; transcript_id "NM_032883:uc002xle.4";
+chr20 hg19_knownGene exon 42602007 42602072 0.000000 + . gene_id "TOX2"; transcript_id "NM_032883:uc002xle.4";
+chr20 hg19_knownGene CDS 42635187 42635432 0.000000 + 0 gene_id "TOX2"; transcript_id "NM_032883:uc002xle.4";
+chr20 hg19_knownGene exon 42635187 42635432 0.000000 + . gene_id "TOX2"; transcript_id "NM_032883:uc002xle.4";
+chr20 hg19_knownGene CDS 42679946 42680185 0.000000 + 0 gene_id "TOX2"; transcript_id "NM_032883:uc002xle.4";
+chr20 hg19_knownGene exon 42679946 42680185 0.000000 + . gene_id "TOX2"; transcript_id "NM_032883:uc002xle.4";
+chr20 hg19_knownGene CDS 42682939 42683166 0.000000 + 0 gene_id "TOX2"; transcript_id "NM_032883:uc002xle.4";
+chr20 hg19_knownGene exon 42682939 42683166 0.000000 + . gene_id "TOX2"; transcript_id "NM_032883:uc002xle.4";
+chr20 hg19_knownGene CDS 42693417 42693497 0.000000 + 0 gene_id "TOX2"; transcript_id "NM_032883:uc002xle.4";
+chr20 hg19_knownGene exon 42693417 42693497 0.000000 + . gene_id "TOX2"; transcript_id "NM_032883:uc002xle.4";
+chr20 hg19_knownGene CDS 42694352 42694747 0.000000 + 0 gene_id "TOX2"; transcript_id "NM_032883:uc002xle.4";
+chr20 hg19_knownGene exon 42694352 42694747 0.000000 + . gene_id "TOX2"; transcript_id "NM_032883:uc002xle.4";
+chr20 hg19_knownGene CDS 42695370 42695497 0.000000 + 0 gene_id "TOX2"; transcript_id "NM_032883:uc002xle.4";
+chr20 hg19_knownGene exon 42695370 42695497 0.000000 + . gene_id "TOX2"; transcript_id "NM_032883:uc002xle.4";
+chr20 hg19_knownGene CDS 42697290 42697323 0.000000 + 1 gene_id "TOX2"; transcript_id "NM_032883:uc002xle.4";
+chr20 hg19_knownGene exon 42697290 42698254 0.000000 + . gene_id "TOX2"; transcript_id "NM_032883:uc002xle.4";
+chr20 hg19_knownGene exon 42544782 42544848 0.000000 + . gene_id "TOX2"; transcript_id "NM_001098796:uc010ggp.3";
+chr20 hg19_knownGene CDS 42602034 42602072 0.000000 + 0 gene_id "TOX2"; transcript_id "NM_001098796:uc010ggp.3";
+chr20 hg19_knownGene exon 42602007 42602072 0.000000 + . gene_id "TOX2"; transcript_id "NM_001098796:uc010ggp.3";
+chr20 hg19_knownGene CDS 42635187 42635432 0.000000 + 0 gene_id "TOX2"; transcript_id "NM_001098796:uc010ggp.3";
+chr20 hg19_knownGene exon 42635187 42635432 0.000000 + . gene_id "TOX2"; transcript_id "NM_001098796:uc010ggp.3";
+chr20 hg19_knownGene CDS 42679946 42680185 0.000000 + 0 gene_id "TOX2"; transcript_id "NM_001098796:uc010ggp.3";
+chr20 hg19_knownGene exon 42679946 42680185 0.000000 + . gene_id "TOX2"; transcript_id "NM_001098796:uc010ggp.3";
+chr20 hg19_knownGene CDS 42682939 42683166 0.000000 + 0 gene_id "TOX2"; transcript_id "NM_001098796:uc010ggp.3";
+chr20 hg19_knownGene exon 42682939 42683166 0.000000 + . gene_id "TOX2"; transcript_id "NM_001098796:uc010ggp.3";
+chr20 hg19_knownGene CDS 42693417 42693497 0.000000 + 0 gene_id "TOX2"; transcript_id "NM_001098796:uc010ggp.3";
+chr20 hg19_knownGene exon 42693417 42693497 0.000000 + . gene_id "TOX2"; transcript_id "NM_001098796:uc010ggp.3";
+chr20 hg19_knownGene CDS 42694352 42694747 0.000000 + 0 gene_id "TOX2"; transcript_id "NM_001098796:uc010ggp.3";
+chr20 hg19_knownGene exon 42694352 42694747 0.000000 + . gene_id "TOX2"; transcript_id "NM_001098796:uc010ggp.3";
+chr20 hg19_knownGene CDS 42695370 42695497 0.000000 + 0 gene_id "TOX2"; transcript_id "NM_001098796:uc010ggp.3";
+chr20 hg19_knownGene exon 42695370 42695497 0.000000 + . gene_id "TOX2"; transcript_id "NM_001098796:uc010ggp.3";
+chr20 hg19_knownGene CDS 42697290 42697323 0.000000 + 1 gene_id "TOX2"; transcript_id "NM_001098796:uc010ggp.3";
+chr20 hg19_knownGene exon 42697290 42698254 0.000000 + . gene_id "TOX2"; transcript_id "NM_001098796:uc010ggp.3";
+chr20 hg19_knownGene CDS 42574553 42574678 0.000000 + 0 gene_id "TOX2"; transcript_id "NM_001098798:uc002xlf.4";
+chr20 hg19_knownGene exon 42574536 42574678 0.000000 + . gene_id "TOX2"; transcript_id "NM_001098798:uc002xlf.4";
+chr20 hg19_knownGene CDS 42602007 42602072 0.000000 + 0 gene_id "TOX2"; transcript_id "NM_001098798:uc002xlf.4";
+chr20 hg19_knownGene exon 42602007 42602072 0.000000 + . gene_id "TOX2"; transcript_id "NM_001098798:uc002xlf.4";
+chr20 hg19_knownGene CDS 42635187 42635432 0.000000 + 0 gene_id "TOX2"; transcript_id "NM_001098798:uc002xlf.4";
+chr20 hg19_knownGene exon 42635187 42635432 0.000000 + . gene_id "TOX2"; transcript_id "NM_001098798:uc002xlf.4";
+chr20 hg19_knownGene CDS 42679946 42680185 0.000000 + 0 gene_id "TOX2"; transcript_id "NM_001098798:uc002xlf.4";
+chr20 hg19_knownGene exon 42679946 42680185 0.000000 + . gene_id "TOX2"; transcript_id "NM_001098798:uc002xlf.4";
+chr20 hg19_knownGene CDS 42682939 42683166 0.000000 + 0 gene_id "TOX2"; transcript_id "NM_001098798:uc002xlf.4";
+chr20 hg19_knownGene exon 42682939 42683166 0.000000 + . gene_id "TOX2"; transcript_id "NM_001098798:uc002xlf.4";
+chr20 hg19_knownGene CDS 42694352 42694747 0.000000 + 0 gene_id "TOX2"; transcript_id "NM_001098798:uc002xlf.4";
+chr20 hg19_knownGene exon 42694352 42694747 0.000000 + . gene_id "TOX2"; transcript_id "NM_001098798:uc002xlf.4";
+chr20 hg19_knownGene CDS 42695370 42695497 0.000000 + 0 gene_id "TOX2"; transcript_id "NM_001098798:uc002xlf.4";
+chr20 hg19_knownGene exon 42695370 42695497 0.000000 + . gene_id "TOX2"; transcript_id "NM_001098798:uc002xlf.4";
+chr20 hg19_knownGene CDS 42697290 42697323 0.000000 + 1 gene_id "TOX2"; transcript_id "NM_001098798:uc002xlf.4";
+chr20 hg19_knownGene exon 42697290 42698254 0.000000 + . gene_id "TOX2"; transcript_id "NM_001098798:uc002xlf.4";
+chr20 hg19_knownGene CDS 42667825 42667869 0.000000 + 0 gene_id "TOX2"; transcript_id "AK298976:uc010zwk.2";
+chr20 hg19_knownGene exon 42667644 42667869 0.000000 + . gene_id "TOX2"; transcript_id "AK298976:uc010zwk.2";
+chr20 hg19_knownGene CDS 42679946 42680185 0.000000 + 0 gene_id "TOX2"; transcript_id "AK298976:uc010zwk.2";
+chr20 hg19_knownGene exon 42679946 42680185 0.000000 + . gene_id "TOX2"; transcript_id "AK298976:uc010zwk.2";
+chr20 hg19_knownGene CDS 42682939 42683166 0.000000 + 0 gene_id "TOX2"; transcript_id "AK298976:uc010zwk.2";
+chr20 hg19_knownGene exon 42682939 42683166 0.000000 + . gene_id "TOX2"; transcript_id "AK298976:uc010zwk.2";
+chr20 hg19_knownGene CDS 42693417 42693497 0.000000 + 0 gene_id "TOX2"; transcript_id "AK298976:uc010zwk.2";
+chr20 hg19_knownGene exon 42693417 42693497 0.000000 + . gene_id "TOX2"; transcript_id "AK298976:uc010zwk.2";
+chr20 hg19_knownGene CDS 42694352 42694747 0.000000 + 0 gene_id "TOX2"; transcript_id "AK298976:uc010zwk.2";
+chr20 hg19_knownGene exon 42694352 42694747 0.000000 + . gene_id "TOX2"; transcript_id "AK298976:uc010zwk.2";
+chr20 hg19_knownGene CDS 42695370 42695497 0.000000 + 0 gene_id "TOX2"; transcript_id "AK298976:uc010zwk.2";
+chr20 hg19_knownGene exon 42695370 42695497 0.000000 + . gene_id "TOX2"; transcript_id "AK298976:uc010zwk.2";
+chr20 hg19_knownGene CDS 42697290 42697323 0.000000 + 1 gene_id "TOX2"; transcript_id "AK298976:uc010zwk.2";
+chr20 hg19_knownGene exon 42697290 42698254 0.000000 + . gene_id "TOX2"; transcript_id "AK298976:uc010zwk.2";
+chr20 hg19_knownGene exon 42740336 42742643 0.000000 - . gene_id "AK098303"; transcript_id "AK098303:uc021wea.1";
+chr20 hg19_knownGene exon 42800789 42800907 0.000000 + . gene_id "Mir_584"; transcript_id ":uc021web.1";
+chr20 hg19_knownGene exon 42740337 42742143 0.000000 - . gene_id "JPH2"; transcript_id "NM_020433:uc002xli.1";
+chr20 hg19_knownGene CDS 42743439 42743516 0.000000 - 0 gene_id "JPH2"; transcript_id "NM_020433:uc002xli.1";
+chr20 hg19_knownGene exon 42743422 42743516 0.000000 - . gene_id "JPH2"; transcript_id "NM_020433:uc002xli.1";
+chr20 hg19_knownGene CDS 42744305 42745026 0.000000 - 2 gene_id "JPH2"; transcript_id "NM_020433:uc002xli.1";
+chr20 hg19_knownGene exon 42744305 42745026 0.000000 - . gene_id "JPH2"; transcript_id "NM_020433:uc002xli.1";
+chr20 hg19_knownGene CDS 42747145 42747263 0.000000 - 1 gene_id "JPH2"; transcript_id "NM_020433:uc002xli.1";
+chr20 hg19_knownGene exon 42747145 42747263 0.000000 - . gene_id "JPH2"; transcript_id "NM_020433:uc002xli.1";
+chr20 hg19_knownGene CDS 42788258 42789047 0.000000 - 2 gene_id "JPH2"; transcript_id "NM_020433:uc002xli.1";
+chr20 hg19_knownGene exon 42788258 42789047 0.000000 - . gene_id "JPH2"; transcript_id "NM_020433:uc002xli.1";
+chr20 hg19_knownGene CDS 42814967 42815345 0.000000 - 0 gene_id "JPH2"; transcript_id "NM_020433:uc002xli.1";
+chr20 hg19_knownGene exon 42814967 42816218 0.000000 - . gene_id "JPH2"; transcript_id "NM_020433:uc002xli.1";
+chr20 hg19_knownGene CDS 42806605 42806612 0.000000 - 2 gene_id "JPH2"; transcript_id "NM_175913:uc002xlj.3";
+chr20 hg19_knownGene exon 42805457 42806612 0.000000 - . gene_id "JPH2"; transcript_id "NM_175913:uc002xlj.3";
+chr20 hg19_knownGene CDS 42814967 42815345 0.000000 - 0 gene_id "JPH2"; transcript_id "NM_175913:uc002xlj.3";
+chr20 hg19_knownGene exon 42814967 42816218 0.000000 - . gene_id "JPH2"; transcript_id "NM_175913:uc002xlj.3";
+chr20 hg19_knownGene CDS 42825695 42826379 0.000000 - 1 gene_id "C20orf111"; transcript_id "NM_016470:uc002xlk.3";
+chr20 hg19_knownGene exon 42824581 42826379 0.000000 - . gene_id "C20orf111"; transcript_id "NM_016470:uc002xlk.3";
+chr20 hg19_knownGene CDS 42831601 42831714 0.000000 - 1 gene_id "C20orf111"; transcript_id "NM_016470:uc002xlk.3";
+chr20 hg19_knownGene exon 42831601 42831714 0.000000 - . gene_id "C20orf111"; transcript_id "NM_016470:uc002xlk.3";
+chr20 hg19_knownGene CDS 42835521 42835597 0.000000 - 0 gene_id "C20orf111"; transcript_id "NM_016470:uc002xlk.3";
+chr20 hg19_knownGene exon 42835521 42835638 0.000000 - . gene_id "C20orf111"; transcript_id "NM_016470:uc002xlk.3";
+chr20 hg19_knownGene exon 42839336 42839546 0.000000 - . gene_id "C20orf111"; transcript_id "NM_016470:uc002xlk.3";
+chr20 hg19_knownGene exon 42846122 42846322 0.000000 + . gene_id "BC036500"; transcript_id "BC036500:uc002xlo.3";
+chr20 hg19_knownGene exon 42848429 42852332 0.000000 + . gene_id "BC036500"; transcript_id "BC036500:uc002xlo.3";
+chr20 hg19_knownGene exon 42839600 42839717 0.000000 + . gene_id "LOC100505783"; transcript_id "NR_038339:uc002xll.3";
+chr20 hg19_knownGene exon 42843528 42843643 0.000000 + . gene_id "LOC100505783"; transcript_id "NR_038339:uc002xll.3";
+chr20 hg19_knownGene exon 42853461 42854667 0.000000 + . gene_id "LOC100505783"; transcript_id "NR_038339:uc002xll.3";
+chr20 hg19_knownGene exon 42839722 42839996 0.000000 + . gene_id "LOC100505783"; transcript_id "NR_038338:uc021wec.1";
+chr20 hg19_knownGene exon 42843528 42843643 0.000000 + . gene_id "LOC100505783"; transcript_id "NR_038338:uc021wec.1";
+chr20 hg19_knownGene exon 42853461 42854667 0.000000 + . gene_id "LOC100505783"; transcript_id "NR_038338:uc021wec.1";
+chr20 hg19_knownGene exon 42839722 42839996 0.000000 + . gene_id "LOC100505783"; transcript_id "BC019858:uc002xlm.3";
+chr20 hg19_knownGene exon 42853461 42854667 0.000000 + . gene_id "LOC100505783"; transcript_id "BC019858:uc002xlm.3";
+chr20 hg19_knownGene exon 42839726 42840131 0.000000 + . gene_id "LOC100505783"; transcript_id "NR_038337:uc002xln.3";
+chr20 hg19_knownGene exon 42843528 42843643 0.000000 + . gene_id "LOC100505783"; transcript_id "NR_038337:uc002xln.3";
+chr20 hg19_knownGene exon 42853461 42854667 0.000000 + . gene_id "LOC100505783"; transcript_id "NR_038337:uc002xln.3";
+chr20 hg19_knownGene CDS 42875975 42876154 0.000000 + 0 gene_id "GDAP1L1"; transcript_id "AK225166:uc002xlp.1";
+chr20 hg19_knownGene exon 42875908 42876154 0.000000 + . gene_id "GDAP1L1"; transcript_id "AK225166:uc002xlp.1";
+chr20 hg19_knownGene CDS 42885793 42885985 0.000000 + 0 gene_id "GDAP1L1"; transcript_id "AK225166:uc002xlp.1";
+chr20 hg19_knownGene exon 42885793 42885985 0.000000 + . gene_id "GDAP1L1"; transcript_id "AK225166:uc002xlp.1";
+chr20 hg19_knownGene CDS 42887074 42887247 0.000000 + 2 gene_id "GDAP1L1"; transcript_id "AK225166:uc002xlp.1";
+chr20 hg19_knownGene exon 42887074 42887247 0.000000 + . gene_id "GDAP1L1"; transcript_id "AK225166:uc002xlp.1";
+chr20 hg19_knownGene CDS 42891870 42891967 0.000000 + 2 gene_id "GDAP1L1"; transcript_id "AK225166:uc002xlp.1";
+chr20 hg19_knownGene exon 42891870 42891967 0.000000 + . gene_id "GDAP1L1"; transcript_id "AK225166:uc002xlp.1";
+chr20 hg19_knownGene CDS 42893085 42893351 0.000000 + 0 gene_id "GDAP1L1"; transcript_id "AK225166:uc002xlp.1";
+chr20 hg19_knownGene exon 42893085 42894266 0.000000 + . gene_id "GDAP1L1"; transcript_id "AK225166:uc002xlp.1";
+chr20 hg19_knownGene CDS 42875975 42876154 0.000000 + 0 gene_id "GDAP1L1"; transcript_id "NM_024034:uc002xlq.3";
+chr20 hg19_knownGene exon 42875908 42876154 0.000000 + . gene_id "GDAP1L1"; transcript_id "NM_024034:uc002xlq.3";
+chr20 hg19_knownGene CDS 42885793 42885985 0.000000 + 0 gene_id "GDAP1L1"; transcript_id "NM_024034:uc002xlq.3";
+chr20 hg19_knownGene exon 42885793 42885985 0.000000 + . gene_id "GDAP1L1"; transcript_id "NM_024034:uc002xlq.3";
+chr20 hg19_knownGene CDS 42887074 42887247 0.000000 + 2 gene_id "GDAP1L1"; transcript_id "NM_024034:uc002xlq.3";
+chr20 hg19_knownGene exon 42887074 42887247 0.000000 + . gene_id "GDAP1L1"; transcript_id "NM_024034:uc002xlq.3";
+chr20 hg19_knownGene CDS 42891870 42891967 0.000000 + 2 gene_id "GDAP1L1"; transcript_id "NM_024034:uc002xlq.3";
+chr20 hg19_knownGene exon 42891870 42891967 0.000000 + . gene_id "GDAP1L1"; transcript_id "NM_024034:uc002xlq.3";
+chr20 hg19_knownGene CDS 42893085 42893199 0.000000 + 0 gene_id "GDAP1L1"; transcript_id "NM_024034:uc002xlq.3";
+chr20 hg19_knownGene exon 42893085 42893199 0.000000 + . gene_id "GDAP1L1"; transcript_id "NM_024034:uc002xlq.3";
+chr20 hg19_knownGene CDS 42907597 42907937 0.000000 + 2 gene_id "GDAP1L1"; transcript_id "NM_024034:uc002xlq.3";
+chr20 hg19_knownGene exon 42907597 42909013 0.000000 + . gene_id "GDAP1L1"; transcript_id "NM_024034:uc002xlq.3";
+chr20 hg19_knownGene CDS 42875975 42876154 0.000000 + 0 gene_id "GDAP1L1"; transcript_id "AK299700:uc010zwl.2";
+chr20 hg19_knownGene exon 42875908 42876154 0.000000 + . gene_id "GDAP1L1"; transcript_id "AK299700:uc010zwl.2";
+chr20 hg19_knownGene CDS 42885793 42885985 0.000000 + 0 gene_id "GDAP1L1"; transcript_id "AK299700:uc010zwl.2";
+chr20 hg19_knownGene exon 42885793 42885985 0.000000 + . gene_id "GDAP1L1"; transcript_id "AK299700:uc010zwl.2";
+chr20 hg19_knownGene CDS 42887017 42887247 0.000000 + 2 gene_id "GDAP1L1"; transcript_id "AK299700:uc010zwl.2";
+chr20 hg19_knownGene exon 42887017 42887247 0.000000 + . gene_id "GDAP1L1"; transcript_id "AK299700:uc010zwl.2";
+chr20 hg19_knownGene CDS 42891870 42891967 0.000000 + 2 gene_id "GDAP1L1"; transcript_id "AK299700:uc010zwl.2";
+chr20 hg19_knownGene exon 42891870 42891967 0.000000 + . gene_id "GDAP1L1"; transcript_id "AK299700:uc010zwl.2";
+chr20 hg19_knownGene CDS 42893085 42893199 0.000000 + 0 gene_id "GDAP1L1"; transcript_id "AK299700:uc010zwl.2";
+chr20 hg19_knownGene exon 42893085 42893199 0.000000 + . gene_id "GDAP1L1"; transcript_id "AK299700:uc010zwl.2";
+chr20 hg19_knownGene CDS 42907597 42907937 0.000000 + 2 gene_id "GDAP1L1"; transcript_id "AK299700:uc010zwl.2";
+chr20 hg19_knownGene exon 42907597 42909013 0.000000 + . gene_id "GDAP1L1"; transcript_id "AK299700:uc010zwl.2";
+chr20 hg19_knownGene CDS 42875975 42876154 0.000000 + 0 gene_id "GDAP1L1"; transcript_id "AK293484:uc010zwm.2";
+chr20 hg19_knownGene exon 42875908 42876154 0.000000 + . gene_id "GDAP1L1"; transcript_id "AK293484:uc010zwm.2";
+chr20 hg19_knownGene CDS 42885793 42885985 0.000000 + 0 gene_id "GDAP1L1"; transcript_id "AK293484:uc010zwm.2";
+chr20 hg19_knownGene exon 42885793 42885985 0.000000 + . gene_id "GDAP1L1"; transcript_id "AK293484:uc010zwm.2";
+chr20 hg19_knownGene CDS 42891870 42891967 0.000000 + 2 gene_id "GDAP1L1"; transcript_id "AK293484:uc010zwm.2";
+chr20 hg19_knownGene exon 42891870 42891967 0.000000 + . gene_id "GDAP1L1"; transcript_id "AK293484:uc010zwm.2";
+chr20 hg19_knownGene CDS 42893085 42893199 0.000000 + 0 gene_id "GDAP1L1"; transcript_id "AK293484:uc010zwm.2";
+chr20 hg19_knownGene exon 42893085 42893199 0.000000 + . gene_id "GDAP1L1"; transcript_id "AK293484:uc010zwm.2";
+chr20 hg19_knownGene CDS 42907597 42907937 0.000000 + 2 gene_id "GDAP1L1"; transcript_id "AK293484:uc010zwm.2";
+chr20 hg19_knownGene exon 42907597 42909013 0.000000 + . gene_id "GDAP1L1"; transcript_id "AK293484:uc010zwm.2";
+chr20 hg19_knownGene exon 42875908 42876154 0.000000 + . gene_id "GDAP1L1"; transcript_id "AK297348:uc010zwn.2";
+chr20 hg19_knownGene CDS 42891899 42891967 0.000000 + 0 gene_id "GDAP1L1"; transcript_id "AK297348:uc010zwn.2";
+chr20 hg19_knownGene exon 42891870 42891967 0.000000 + . gene_id "GDAP1L1"; transcript_id "AK297348:uc010zwn.2";
+chr20 hg19_knownGene CDS 42893085 42893199 0.000000 + 0 gene_id "GDAP1L1"; transcript_id "AK297348:uc010zwn.2";
+chr20 hg19_knownGene exon 42893085 42893199 0.000000 + . gene_id "GDAP1L1"; transcript_id "AK297348:uc010zwn.2";
+chr20 hg19_knownGene CDS 42907597 42907937 0.000000 + 2 gene_id "GDAP1L1"; transcript_id "AK297348:uc010zwn.2";
+chr20 hg19_knownGene exon 42907597 42909013 0.000000 + . gene_id "GDAP1L1"; transcript_id "AK297348:uc010zwn.2";
+chr20 hg19_knownGene CDS 42935268 42935880 0.000000 - 1 gene_id "FITM2"; transcript_id "NM_001080472:uc002xlr.1";
+chr20 hg19_knownGene exon 42935197 42935880 0.000000 - . gene_id "FITM2"; transcript_id "NM_001080472:uc002xlr.1";
+chr20 hg19_knownGene CDS 42939616 42939788 0.000000 - 0 gene_id "FITM2"; transcript_id "NM_001080472:uc002xlr.1";
+chr20 hg19_knownGene exon 42939616 42939889 0.000000 - . gene_id "FITM2"; transcript_id "NM_001080472:uc002xlr.1";
+chr20 hg19_knownGene CDS 42965798 42966058 0.000000 + 0 gene_id "R3HDML"; transcript_id "NM_178491:uc002xls.1";
+chr20 hg19_knownGene exon 42965626 42966058 0.000000 + . gene_id "R3HDML"; transcript_id "NM_178491:uc002xls.1";
+chr20 hg19_knownGene CDS 42969836 42969954 0.000000 + 0 gene_id "R3HDML"; transcript_id "NM_178491:uc002xls.1";
+chr20 hg19_knownGene exon 42969836 42969954 0.000000 + . gene_id "R3HDML"; transcript_id "NM_178491:uc002xls.1";
+chr20 hg19_knownGene CDS 42972017 42972149 0.000000 + 1 gene_id "R3HDML"; transcript_id "NM_178491:uc002xls.1";
+chr20 hg19_knownGene exon 42972017 42972149 0.000000 + . gene_id "R3HDML"; transcript_id "NM_178491:uc002xls.1";
+chr20 hg19_knownGene CDS 42973903 42974018 0.000000 + 0 gene_id "R3HDML"; transcript_id "NM_178491:uc002xls.1";
+chr20 hg19_knownGene exon 42973903 42974018 0.000000 + . gene_id "R3HDML"; transcript_id "NM_178491:uc002xls.1";
+chr20 hg19_knownGene CDS 42979300 42979429 0.000000 + 1 gene_id "R3HDML"; transcript_id "NM_178491:uc002xls.1";
+chr20 hg19_knownGene exon 42979300 42979875 0.000000 + . gene_id "R3HDML"; transcript_id "NM_178491:uc002xls.1";
+chr20 hg19_knownGene exon 43006383 43006524 0.000000 - . gene_id "AF143870"; transcript_id "AF143870:uc002xlx.3";
+chr20 hg19_knownGene exon 43013163 43013312 0.000000 - . gene_id "AF143870"; transcript_id "AF143870:uc002xlx.3";
+chr20 hg19_knownGene exon 43020649 43020750 0.000000 - . gene_id "AF143870"; transcript_id "AF143870:uc002xlx.3";
+chr20 hg19_knownGene exon 43024093 43024346 0.000000 - . gene_id "AF143870"; transcript_id "AF143870:uc002xlx.3";
+chr20 hg19_knownGene exon 43001507 43001649 0.000000 - . gene_id "BC071794"; transcript_id "BC071794:uc002xlw.1";
+chr20 hg19_knownGene exon 43013163 43013312 0.000000 - . gene_id "BC071794"; transcript_id "BC071794:uc002xlw.1";
+chr20 hg19_knownGene exon 43020076 43020273 0.000000 - . gene_id "BC071794"; transcript_id "BC071794:uc002xlw.1";
+chr20 hg19_knownGene exon 43031149 43031509 0.000000 - . gene_id "BC071794"; transcript_id "BC071794:uc002xlw.1";
+chr20 hg19_knownGene exon 42984441 42984493 0.000000 + . gene_id "HNF4A"; transcript_id "FJ608822:uc010zwo.1";
+chr20 hg19_knownGene CDS 43019233 43019319 0.000000 + 0 gene_id "HNF4A"; transcript_id "FJ608822:uc010zwo.1";
+chr20 hg19_knownGene exon 43019098 43019319 0.000000 + . gene_id "HNF4A"; transcript_id "FJ608822:uc010zwo.1";
+chr20 hg19_knownGene CDS 43034698 43034872 0.000000 + 0 gene_id "HNF4A"; transcript_id "FJ608822:uc010zwo.1";
+chr20 hg19_knownGene exon 43034698 43034872 0.000000 + . gene_id "HNF4A"; transcript_id "FJ608822:uc010zwo.1";
+chr20 hg19_knownGene CDS 43036021 43036103 0.000000 + 2 gene_id "HNF4A"; transcript_id "FJ608822:uc010zwo.1";
+chr20 hg19_knownGene exon 43036021 43036115 0.000000 + . gene_id "HNF4A"; transcript_id "FJ608822:uc010zwo.1";
+chr20 hg19_knownGene exon 43036760 43036843 0.000000 + . gene_id "MIR3646"; transcript_id "NR_037419:uc021wed.1";
+chr20 hg19_knownGene CDS 42984445 42984493 0.000000 + 0 gene_id "HNF4A"; transcript_id "NM_001030004:uc002xlt.3";
+chr20 hg19_knownGene exon 42984441 42984493 0.000000 + . gene_id "HNF4A"; transcript_id "NM_001030004:uc002xlt.3";
+chr20 hg19_knownGene CDS 43034698 43034872 0.000000 + 2 gene_id "HNF4A"; transcript_id "NM_001030004:uc002xlt.3";
+chr20 hg19_knownGene exon 43034698 43034872 0.000000 + . gene_id "HNF4A"; transcript_id "NM_001030004:uc002xlt.3";
+chr20 hg19_knownGene CDS 43036021 43036115 0.000000 + 1 gene_id "HNF4A"; transcript_id "NM_001030004:uc002xlt.3";
+chr20 hg19_knownGene exon 43036021 43036115 0.000000 + . gene_id "HNF4A"; transcript_id "NM_001030004:uc002xlt.3";
+chr20 hg19_knownGene CDS 43042334 43042440 0.000000 + 2 gene_id "HNF4A"; transcript_id "NM_001030004:uc002xlt.3";
+chr20 hg19_knownGene exon 43042334 43042440 0.000000 + . gene_id "HNF4A"; transcript_id "NM_001030004:uc002xlt.3";
+chr20 hg19_knownGene CDS 43043147 43043302 0.000000 + 0 gene_id "HNF4A"; transcript_id "NM_001030004:uc002xlt.3";
+chr20 hg19_knownGene exon 43043147 43043302 0.000000 + . gene_id "HNF4A"; transcript_id "NM_001030004:uc002xlt.3";
+chr20 hg19_knownGene CDS 43047065 43047152 0.000000 + 0 gene_id "HNF4A"; transcript_id "NM_001030004:uc002xlt.3";
+chr20 hg19_knownGene exon 43047065 43047152 0.000000 + . gene_id "HNF4A"; transcript_id "NM_001030004:uc002xlt.3";
+chr20 hg19_knownGene CDS 43048361 43048516 0.000000 + 2 gene_id "HNF4A"; transcript_id "NM_001030004:uc002xlt.3";
+chr20 hg19_knownGene exon 43048361 43048516 0.000000 + . gene_id "HNF4A"; transcript_id "NM_001030004:uc002xlt.3";
+chr20 hg19_knownGene CDS 43052658 43053016 0.000000 + 2 gene_id "HNF4A"; transcript_id "NM_001030004:uc002xlt.3";
+chr20 hg19_knownGene exon 43052658 43053276 0.000000 + . gene_id "HNF4A"; transcript_id "NM_001030004:uc002xlt.3";
+chr20 hg19_knownGene CDS 43030013 43030127 0.000000 + 0 gene_id "HNF4A"; transcript_id "NM_178850:uc002xly.3";
+chr20 hg19_knownGene exon 43029924 43030127 0.000000 + . gene_id "HNF4A"; transcript_id "NM_178850:uc002xly.3";
+chr20 hg19_knownGene CDS 43034698 43034872 0.000000 + 2 gene_id "HNF4A"; transcript_id "NM_178850:uc002xly.3";
+chr20 hg19_knownGene exon 43034698 43034872 0.000000 + . gene_id "HNF4A"; transcript_id "NM_178850:uc002xly.3";
+chr20 hg19_knownGene CDS 43036021 43036115 0.000000 + 1 gene_id "HNF4A"; transcript_id "NM_178850:uc002xly.3";
+chr20 hg19_knownGene exon 43036021 43036115 0.000000 + . gene_id "HNF4A"; transcript_id "NM_178850:uc002xly.3";
+chr20 hg19_knownGene CDS 43042334 43042440 0.000000 + 2 gene_id "HNF4A"; transcript_id "NM_178850:uc002xly.3";
+chr20 hg19_knownGene exon 43042334 43042440 0.000000 + . gene_id "HNF4A"; transcript_id "NM_178850:uc002xly.3";
+chr20 hg19_knownGene CDS 43043147 43043302 0.000000 + 0 gene_id "HNF4A"; transcript_id "NM_178850:uc002xly.3";
+chr20 hg19_knownGene exon 43043147 43043302 0.000000 + . gene_id "HNF4A"; transcript_id "NM_178850:uc002xly.3";
+chr20 hg19_knownGene CDS 43047065 43047152 0.000000 + 0 gene_id "HNF4A"; transcript_id "NM_178850:uc002xly.3";
+chr20 hg19_knownGene exon 43047065 43047152 0.000000 + . gene_id "HNF4A"; transcript_id "NM_178850:uc002xly.3";
+chr20 hg19_knownGene CDS 43048361 43048516 0.000000 + 2 gene_id "HNF4A"; transcript_id "NM_178850:uc002xly.3";
+chr20 hg19_knownGene exon 43048361 43048516 0.000000 + . gene_id "HNF4A"; transcript_id "NM_178850:uc002xly.3";
+chr20 hg19_knownGene CDS 43052658 43053016 0.000000 + 2 gene_id "HNF4A"; transcript_id "NM_178850:uc002xly.3";
+chr20 hg19_knownGene exon 43052658 43053276 0.000000 + . gene_id "HNF4A"; transcript_id "NM_178850:uc002xly.3";
+chr20 hg19_knownGene CDS 42984445 42984493 0.000000 + 0 gene_id "HNF4A"; transcript_id "NM_001030003:uc002xlu.3";
+chr20 hg19_knownGene exon 42984441 42984493 0.000000 + . gene_id "HNF4A"; transcript_id "NM_001030003:uc002xlu.3";
+chr20 hg19_knownGene CDS 43034698 43034872 0.000000 + 2 gene_id "HNF4A"; transcript_id "NM_001030003:uc002xlu.3";
+chr20 hg19_knownGene exon 43034698 43034872 0.000000 + . gene_id "HNF4A"; transcript_id "NM_001030003:uc002xlu.3";
+chr20 hg19_knownGene CDS 43036021 43036115 0.000000 + 1 gene_id "HNF4A"; transcript_id "NM_001030003:uc002xlu.3";
+chr20 hg19_knownGene exon 43036021 43036115 0.000000 + . gene_id "HNF4A"; transcript_id "NM_001030003:uc002xlu.3";
+chr20 hg19_knownGene CDS 43042334 43042440 0.000000 + 2 gene_id "HNF4A"; transcript_id "NM_001030003:uc002xlu.3";
+chr20 hg19_knownGene exon 43042334 43042440 0.000000 + . gene_id "HNF4A"; transcript_id "NM_001030003:uc002xlu.3";
+chr20 hg19_knownGene CDS 43043147 43043302 0.000000 + 0 gene_id "HNF4A"; transcript_id "NM_001030003:uc002xlu.3";
+chr20 hg19_knownGene exon 43043147 43043302 0.000000 + . gene_id "HNF4A"; transcript_id "NM_001030003:uc002xlu.3";
+chr20 hg19_knownGene CDS 43047065 43047152 0.000000 + 0 gene_id "HNF4A"; transcript_id "NM_001030003:uc002xlu.3";
+chr20 hg19_knownGene exon 43047065 43047152 0.000000 + . gene_id "HNF4A"; transcript_id "NM_001030003:uc002xlu.3";
+chr20 hg19_knownGene CDS 43048361 43048516 0.000000 + 2 gene_id "HNF4A"; transcript_id "NM_001030003:uc002xlu.3";
+chr20 hg19_knownGene exon 43048361 43048516 0.000000 + . gene_id "HNF4A"; transcript_id "NM_001030003:uc002xlu.3";
+chr20 hg19_knownGene CDS 43052658 43052894 0.000000 + 2 gene_id "HNF4A"; transcript_id "NM_001030003:uc002xlu.3";
+chr20 hg19_knownGene exon 43052658 43052894 0.000000 + . gene_id "HNF4A"; transcript_id "NM_001030003:uc002xlu.3";
+chr20 hg19_knownGene CDS 43056975 43057097 0.000000 + 2 gene_id "HNF4A"; transcript_id "NM_001030003:uc002xlu.3";
+chr20 hg19_knownGene exon 43056975 43057097 0.000000 + . gene_id "HNF4A"; transcript_id "NM_001030003:uc002xlu.3";
+chr20 hg19_knownGene CDS 43058163 43058302 0.000000 + 2 gene_id "HNF4A"; transcript_id "NM_001030003:uc002xlu.3";
+chr20 hg19_knownGene exon 43058163 43060030 0.000000 + . gene_id "HNF4A"; transcript_id "NM_001030003:uc002xlu.3";
+chr20 hg19_knownGene CDS 42984445 42984493 0.000000 + 0 gene_id "HNF4A"; transcript_id "NM_175914:uc002xlv.3";
+chr20 hg19_knownGene exon 42984441 42984493 0.000000 + . gene_id "HNF4A"; transcript_id "NM_175914:uc002xlv.3";
+chr20 hg19_knownGene CDS 43034698 43034872 0.000000 + 2 gene_id "HNF4A"; transcript_id "NM_175914:uc002xlv.3";
+chr20 hg19_knownGene exon 43034698 43034872 0.000000 + . gene_id "HNF4A"; transcript_id "NM_175914:uc002xlv.3";
+chr20 hg19_knownGene CDS 43036021 43036115 0.000000 + 1 gene_id "HNF4A"; transcript_id "NM_175914:uc002xlv.3";
+chr20 hg19_knownGene exon 43036021 43036115 0.000000 + . gene_id "HNF4A"; transcript_id "NM_175914:uc002xlv.3";
+chr20 hg19_knownGene CDS 43042334 43042440 0.000000 + 2 gene_id "HNF4A"; transcript_id "NM_175914:uc002xlv.3";
+chr20 hg19_knownGene exon 43042334 43042440 0.000000 + . gene_id "HNF4A"; transcript_id "NM_175914:uc002xlv.3";
+chr20 hg19_knownGene CDS 43043147 43043302 0.000000 + 0 gene_id "HNF4A"; transcript_id "NM_175914:uc002xlv.3";
+chr20 hg19_knownGene exon 43043147 43043302 0.000000 + . gene_id "HNF4A"; transcript_id "NM_175914:uc002xlv.3";
+chr20 hg19_knownGene CDS 43047065 43047152 0.000000 + 0 gene_id "HNF4A"; transcript_id "NM_175914:uc002xlv.3";
+chr20 hg19_knownGene exon 43047065 43047152 0.000000 + . gene_id "HNF4A"; transcript_id "NM_175914:uc002xlv.3";
+chr20 hg19_knownGene CDS 43048361 43048516 0.000000 + 2 gene_id "HNF4A"; transcript_id "NM_175914:uc002xlv.3";
+chr20 hg19_knownGene exon 43048361 43048516 0.000000 + . gene_id "HNF4A"; transcript_id "NM_175914:uc002xlv.3";
+chr20 hg19_knownGene CDS 43052658 43052894 0.000000 + 2 gene_id "HNF4A"; transcript_id "NM_175914:uc002xlv.3";
+chr20 hg19_knownGene exon 43052658 43052894 0.000000 + . gene_id "HNF4A"; transcript_id "NM_175914:uc002xlv.3";
+chr20 hg19_knownGene CDS 43056975 43057127 0.000000 + 2 gene_id "HNF4A"; transcript_id "NM_175914:uc002xlv.3";
+chr20 hg19_knownGene exon 43056975 43057127 0.000000 + . gene_id "HNF4A"; transcript_id "NM_175914:uc002xlv.3";
+chr20 hg19_knownGene CDS 43058163 43058302 0.000000 + 2 gene_id "HNF4A"; transcript_id "NM_175914:uc002xlv.3";
+chr20 hg19_knownGene exon 43058163 43060030 0.000000 + . gene_id "HNF4A"; transcript_id "NM_175914:uc002xlv.3";
+chr20 hg19_knownGene CDS 43030013 43030127 0.000000 + 0 gene_id "HNF4A"; transcript_id "NM_178849:uc002xlz.3";
+chr20 hg19_knownGene exon 43029924 43030127 0.000000 + . gene_id "HNF4A"; transcript_id "NM_178849:uc002xlz.3";
+chr20 hg19_knownGene CDS 43034698 43034872 0.000000 + 2 gene_id "HNF4A"; transcript_id "NM_178849:uc002xlz.3";
+chr20 hg19_knownGene exon 43034698 43034872 0.000000 + . gene_id "HNF4A"; transcript_id "NM_178849:uc002xlz.3";
+chr20 hg19_knownGene CDS 43036021 43036115 0.000000 + 1 gene_id "HNF4A"; transcript_id "NM_178849:uc002xlz.3";
+chr20 hg19_knownGene exon 43036021 43036115 0.000000 + . gene_id "HNF4A"; transcript_id "NM_178849:uc002xlz.3";
+chr20 hg19_knownGene CDS 43042334 43042440 0.000000 + 2 gene_id "HNF4A"; transcript_id "NM_178849:uc002xlz.3";
+chr20 hg19_knownGene exon 43042334 43042440 0.000000 + . gene_id "HNF4A"; transcript_id "NM_178849:uc002xlz.3";
+chr20 hg19_knownGene CDS 43043147 43043302 0.000000 + 0 gene_id "HNF4A"; transcript_id "NM_178849:uc002xlz.3";
+chr20 hg19_knownGene exon 43043147 43043302 0.000000 + . gene_id "HNF4A"; transcript_id "NM_178849:uc002xlz.3";
+chr20 hg19_knownGene CDS 43047065 43047152 0.000000 + 0 gene_id "HNF4A"; transcript_id "NM_178849:uc002xlz.3";
+chr20 hg19_knownGene exon 43047065 43047152 0.000000 + . gene_id "HNF4A"; transcript_id "NM_178849:uc002xlz.3";
+chr20 hg19_knownGene CDS 43048361 43048516 0.000000 + 2 gene_id "HNF4A"; transcript_id "NM_178849:uc002xlz.3";
+chr20 hg19_knownGene exon 43048361 43048516 0.000000 + . gene_id "HNF4A"; transcript_id "NM_178849:uc002xlz.3";
+chr20 hg19_knownGene CDS 43052658 43052894 0.000000 + 2 gene_id "HNF4A"; transcript_id "NM_178849:uc002xlz.3";
+chr20 hg19_knownGene exon 43052658 43052894 0.000000 + . gene_id "HNF4A"; transcript_id "NM_178849:uc002xlz.3";
+chr20 hg19_knownGene CDS 43056975 43057097 0.000000 + 2 gene_id "HNF4A"; transcript_id "NM_178849:uc002xlz.3";
+chr20 hg19_knownGene exon 43056975 43057097 0.000000 + . gene_id "HNF4A"; transcript_id "NM_178849:uc002xlz.3";
+chr20 hg19_knownGene CDS 43058163 43058302 0.000000 + 2 gene_id "HNF4A"; transcript_id "NM_178849:uc002xlz.3";
+chr20 hg19_knownGene exon 43058163 43060030 0.000000 + . gene_id "HNF4A"; transcript_id "NM_178849:uc002xlz.3";
+chr20 hg19_knownGene CDS 43030013 43030127 0.000000 + 0 gene_id "HNF4A"; transcript_id "NM_000457:uc002xma.3";
+chr20 hg19_knownGene exon 43029924 43030127 0.000000 + . gene_id "HNF4A"; transcript_id "NM_000457:uc002xma.3";
+chr20 hg19_knownGene CDS 43034698 43034872 0.000000 + 2 gene_id "HNF4A"; transcript_id "NM_000457:uc002xma.3";
+chr20 hg19_knownGene exon 43034698 43034872 0.000000 + . gene_id "HNF4A"; transcript_id "NM_000457:uc002xma.3";
+chr20 hg19_knownGene CDS 43036021 43036115 0.000000 + 1 gene_id "HNF4A"; transcript_id "NM_000457:uc002xma.3";
+chr20 hg19_knownGene exon 43036021 43036115 0.000000 + . gene_id "HNF4A"; transcript_id "NM_000457:uc002xma.3";
+chr20 hg19_knownGene CDS 43042334 43042440 0.000000 + 2 gene_id "HNF4A"; transcript_id "NM_000457:uc002xma.3";
+chr20 hg19_knownGene exon 43042334 43042440 0.000000 + . gene_id "HNF4A"; transcript_id "NM_000457:uc002xma.3";
+chr20 hg19_knownGene CDS 43043147 43043302 0.000000 + 0 gene_id "HNF4A"; transcript_id "NM_000457:uc002xma.3";
+chr20 hg19_knownGene exon 43043147 43043302 0.000000 + . gene_id "HNF4A"; transcript_id "NM_000457:uc002xma.3";
+chr20 hg19_knownGene CDS 43047065 43047152 0.000000 + 0 gene_id "HNF4A"; transcript_id "NM_000457:uc002xma.3";
+chr20 hg19_knownGene exon 43047065 43047152 0.000000 + . gene_id "HNF4A"; transcript_id "NM_000457:uc002xma.3";
+chr20 hg19_knownGene CDS 43048361 43048516 0.000000 + 2 gene_id "HNF4A"; transcript_id "NM_000457:uc002xma.3";
+chr20 hg19_knownGene exon 43048361 43048516 0.000000 + . gene_id "HNF4A"; transcript_id "NM_000457:uc002xma.3";
+chr20 hg19_knownGene CDS 43052658 43052894 0.000000 + 2 gene_id "HNF4A"; transcript_id "NM_000457:uc002xma.3";
+chr20 hg19_knownGene exon 43052658 43052894 0.000000 + . gene_id "HNF4A"; transcript_id "NM_000457:uc002xma.3";
+chr20 hg19_knownGene CDS 43056975 43057127 0.000000 + 2 gene_id "HNF4A"; transcript_id "NM_000457:uc002xma.3";
+chr20 hg19_knownGene exon 43056975 43057127 0.000000 + . gene_id "HNF4A"; transcript_id "NM_000457:uc002xma.3";
+chr20 hg19_knownGene CDS 43058163 43058302 0.000000 + 2 gene_id "HNF4A"; transcript_id "NM_000457:uc002xma.3";
+chr20 hg19_knownGene exon 43058163 43060030 0.000000 + . gene_id "HNF4A"; transcript_id "NM_000457:uc002xma.3";
+chr20 hg19_knownGene CDS 43030125 43030127 0.000000 + 0 gene_id "HNF4A"; transcript_id "Z49825:uc010ggq.3";
+chr20 hg19_knownGene exon 43029924 43030127 0.000000 + . gene_id "HNF4A"; transcript_id "Z49825:uc010ggq.3";
+chr20 hg19_knownGene CDS 43031194 43031284 0.000000 + 0 gene_id "HNF4A"; transcript_id "Z49825:uc010ggq.3";
+chr20 hg19_knownGene exon 43031194 43031284 0.000000 + . gene_id "HNF4A"; transcript_id "Z49825:uc010ggq.3";
+chr20 hg19_knownGene CDS 43034698 43034872 0.000000 + 2 gene_id "HNF4A"; transcript_id "Z49825:uc010ggq.3";
+chr20 hg19_knownGene exon 43034698 43034872 0.000000 + . gene_id "HNF4A"; transcript_id "Z49825:uc010ggq.3";
+chr20 hg19_knownGene CDS 43036021 43036115 0.000000 + 1 gene_id "HNF4A"; transcript_id "Z49825:uc010ggq.3";
+chr20 hg19_knownGene exon 43036021 43036115 0.000000 + . gene_id "HNF4A"; transcript_id "Z49825:uc010ggq.3";
+chr20 hg19_knownGene CDS 43042334 43042440 0.000000 + 2 gene_id "HNF4A"; transcript_id "Z49825:uc010ggq.3";
+chr20 hg19_knownGene exon 43042334 43042440 0.000000 + . gene_id "HNF4A"; transcript_id "Z49825:uc010ggq.3";
+chr20 hg19_knownGene CDS 43043147 43043302 0.000000 + 0 gene_id "HNF4A"; transcript_id "Z49825:uc010ggq.3";
+chr20 hg19_knownGene exon 43043147 43043302 0.000000 + . gene_id "HNF4A"; transcript_id "Z49825:uc010ggq.3";
+chr20 hg19_knownGene CDS 43047065 43047152 0.000000 + 0 gene_id "HNF4A"; transcript_id "Z49825:uc010ggq.3";
+chr20 hg19_knownGene exon 43047065 43047152 0.000000 + . gene_id "HNF4A"; transcript_id "Z49825:uc010ggq.3";
+chr20 hg19_knownGene CDS 43048361 43048516 0.000000 + 2 gene_id "HNF4A"; transcript_id "Z49825:uc010ggq.3";
+chr20 hg19_knownGene exon 43048361 43048516 0.000000 + . gene_id "HNF4A"; transcript_id "Z49825:uc010ggq.3";
+chr20 hg19_knownGene CDS 43052658 43052894 0.000000 + 2 gene_id "HNF4A"; transcript_id "Z49825:uc010ggq.3";
+chr20 hg19_knownGene exon 43052658 43052894 0.000000 + . gene_id "HNF4A"; transcript_id "Z49825:uc010ggq.3";
+chr20 hg19_knownGene CDS 43056975 43057127 0.000000 + 2 gene_id "HNF4A"; transcript_id "Z49825:uc010ggq.3";
+chr20 hg19_knownGene exon 43056975 43057127 0.000000 + . gene_id "HNF4A"; transcript_id "Z49825:uc010ggq.3";
+chr20 hg19_knownGene CDS 43058163 43058302 0.000000 + 2 gene_id "HNF4A"; transcript_id "Z49825:uc010ggq.3";
+chr20 hg19_knownGene exon 43058163 43060030 0.000000 + . gene_id "HNF4A"; transcript_id "Z49825:uc010ggq.3";
+chr20 hg19_knownGene exon 43089673 43089934 0.000000 + . gene_id "Metazoa_SRP"; transcript_id ":uc021wee.1";
+chr20 hg19_knownGene CDS 43090528 43090922 0.000000 - 2 gene_id "C20orf62"; transcript_id "BC030259:uc002xmb.3";
+chr20 hg19_knownGene exon 43090403 43090922 0.000000 - . gene_id "C20orf62"; transcript_id "BC030259:uc002xmb.3";
+chr20 hg19_knownGene CDS 43093805 43093919 0.000000 - 0 gene_id "C20orf62"; transcript_id "BC030259:uc002xmb.3";
+chr20 hg19_knownGene exon 43093805 43093984 0.000000 - . gene_id "C20orf62"; transcript_id "BC030259:uc002xmb.3";
+chr20 hg19_knownGene exon 43104547 43104631 0.000000 + . gene_id "TTPAL"; transcript_id "NM_024331:uc002xmc.1";
+chr20 hg19_knownGene exon 43107264 43107287 0.000000 + . gene_id "TTPAL"; transcript_id "NM_024331:uc002xmc.1";
+chr20 hg19_knownGene CDS 43108640 43109084 0.000000 + 0 gene_id "TTPAL"; transcript_id "NM_024331:uc002xmc.1";
+chr20 hg19_knownGene exon 43108625 43109084 0.000000 + . gene_id "TTPAL"; transcript_id "NM_024331:uc002xmc.1";
+chr20 hg19_knownGene CDS 43112977 43113170 0.000000 + 2 gene_id "TTPAL"; transcript_id "NM_024331:uc002xmc.1";
+chr20 hg19_knownGene exon 43112977 43113170 0.000000 + . gene_id "TTPAL"; transcript_id "NM_024331:uc002xmc.1";
+chr20 hg19_knownGene CDS 43115236 43115346 0.000000 + 0 gene_id "TTPAL"; transcript_id "NM_024331:uc002xmc.1";
+chr20 hg19_knownGene exon 43115236 43115346 0.000000 + . gene_id "TTPAL"; transcript_id "NM_024331:uc002xmc.1";
+chr20 hg19_knownGene CDS 43117904 43118179 0.000000 + 0 gene_id "TTPAL"; transcript_id "NM_024331:uc002xmc.1";
+chr20 hg19_knownGene exon 43117904 43123244 0.000000 + . gene_id "TTPAL"; transcript_id "NM_024331:uc002xmc.1";
+chr20 hg19_knownGene exon 43104547 43104631 0.000000 + . gene_id "TTPAL"; transcript_id "NM_001039199:uc002xmd.1";
+chr20 hg19_knownGene CDS 43108640 43109084 0.000000 + 0 gene_id "TTPAL"; transcript_id "NM_001039199:uc002xmd.1";
+chr20 hg19_knownGene exon 43108625 43109084 0.000000 + . gene_id "TTPAL"; transcript_id "NM_001039199:uc002xmd.1";
+chr20 hg19_knownGene CDS 43112977 43113170 0.000000 + 2 gene_id "TTPAL"; transcript_id "NM_001039199:uc002xmd.1";
+chr20 hg19_knownGene exon 43112977 43113170 0.000000 + . gene_id "TTPAL"; transcript_id "NM_001039199:uc002xmd.1";
+chr20 hg19_knownGene CDS 43115236 43115346 0.000000 + 0 gene_id "TTPAL"; transcript_id "NM_001039199:uc002xmd.1";
+chr20 hg19_knownGene exon 43115236 43115346 0.000000 + . gene_id "TTPAL"; transcript_id "NM_001039199:uc002xmd.1";
+chr20 hg19_knownGene CDS 43117904 43118179 0.000000 + 0 gene_id "TTPAL"; transcript_id "NM_001039199:uc002xmd.1";
+chr20 hg19_knownGene exon 43117904 43123244 0.000000 + . gene_id "TTPAL"; transcript_id "NM_001039199:uc002xmd.1";
+chr20 hg19_knownGene CDS 43109007 43109084 0.000000 + 0 gene_id "TTPAL"; transcript_id "AK307236:uc010ggr.1";
+chr20 hg19_knownGene exon 43108609 43109084 0.000000 + . gene_id "TTPAL"; transcript_id "AK307236:uc010ggr.1";
+chr20 hg19_knownGene CDS 43115236 43115346 0.000000 + 0 gene_id "TTPAL"; transcript_id "AK307236:uc010ggr.1";
+chr20 hg19_knownGene exon 43115236 43115346 0.000000 + . gene_id "TTPAL"; transcript_id "AK307236:uc010ggr.1";
+chr20 hg19_knownGene CDS 43117904 43118179 0.000000 + 0 gene_id "TTPAL"; transcript_id "AK307236:uc010ggr.1";
+chr20 hg19_knownGene exon 43117904 43123244 0.000000 + . gene_id "TTPAL"; transcript_id "AK307236:uc010ggr.1";
+chr20 hg19_knownGene exon 43124864 43124996 0.000000 - . gene_id "SERINC3"; transcript_id "NM_198941:uc002xme.3";
+chr20 hg19_knownGene CDS 43128940 43129075 0.000000 - 1 gene_id "SERINC3"; transcript_id "NM_198941:uc002xme.3";
+chr20 hg19_knownGene exon 43128899 43129075 0.000000 - . gene_id "SERINC3"; transcript_id "NM_198941:uc002xme.3";
+chr20 hg19_knownGene CDS 43129714 43129941 0.000000 - 1 gene_id "SERINC3"; transcript_id "NM_198941:uc002xme.3";
+chr20 hg19_knownGene exon 43129714 43129941 0.000000 - . gene_id "SERINC3"; transcript_id "NM_198941:uc002xme.3";
+chr20 hg19_knownGene CDS 43132456 43132636 0.000000 - 2 gene_id "SERINC3"; transcript_id "NM_198941:uc002xme.3";
+chr20 hg19_knownGene exon 43132456 43132636 0.000000 - . gene_id "SERINC3"; transcript_id "NM_198941:uc002xme.3";
+chr20 hg19_knownGene CDS 43133442 43133532 0.000000 - 0 gene_id "SERINC3"; transcript_id "NM_198941:uc002xme.3";
+chr20 hg19_knownGene exon 43133442 43133532 0.000000 - . gene_id "SERINC3"; transcript_id "NM_198941:uc002xme.3";
+chr20 hg19_knownGene CDS 43135468 43135637 0.000000 - 2 gene_id "SERINC3"; transcript_id "NM_198941:uc002xme.3";
+chr20 hg19_knownGene exon 43135468 43135637 0.000000 - . gene_id "SERINC3"; transcript_id "NM_198941:uc002xme.3";
+chr20 hg19_knownGene CDS 43138532 43138669 0.000000 - 2 gene_id "SERINC3"; transcript_id "NM_198941:uc002xme.3";
+chr20 hg19_knownGene exon 43138532 43138669 0.000000 - . gene_id "SERINC3"; transcript_id "NM_198941:uc002xme.3";
+chr20 hg19_knownGene CDS 43139930 43140009 0.000000 - 1 gene_id "SERINC3"; transcript_id "NM_198941:uc002xme.3";
+chr20 hg19_knownGene exon 43139930 43140009 0.000000 - . gene_id "SERINC3"; transcript_id "NM_198941:uc002xme.3";
+chr20 hg19_knownGene CDS 43141442 43141635 0.000000 - 0 gene_id "SERINC3"; transcript_id "NM_198941:uc002xme.3";
+chr20 hg19_knownGene exon 43141442 43141635 0.000000 - . gene_id "SERINC3"; transcript_id "NM_198941:uc002xme.3";
+chr20 hg19_knownGene CDS 43142520 43142681 0.000000 - 0 gene_id "SERINC3"; transcript_id "NM_198941:uc002xme.3";
+chr20 hg19_knownGene exon 43142520 43142681 0.000000 - . gene_id "SERINC3"; transcript_id "NM_198941:uc002xme.3";
+chr20 hg19_knownGene CDS 43150554 43150592 0.000000 - 0 gene_id "SERINC3"; transcript_id "NM_198941:uc002xme.3";
+chr20 hg19_knownGene exon 43150554 43150726 0.000000 - . gene_id "SERINC3"; transcript_id "NM_198941:uc002xme.3";
+chr20 hg19_knownGene CDS 43128940 43129075 0.000000 - 1 gene_id "SERINC3"; transcript_id "NM_006811:uc002xmf.1";
+chr20 hg19_knownGene exon 43127901 43129075 0.000000 - . gene_id "SERINC3"; transcript_id "NM_006811:uc002xmf.1";
+chr20 hg19_knownGene CDS 43129714 43129941 0.000000 - 1 gene_id "SERINC3"; transcript_id "NM_006811:uc002xmf.1";
+chr20 hg19_knownGene exon 43129714 43129941 0.000000 - . gene_id "SERINC3"; transcript_id "NM_006811:uc002xmf.1";
+chr20 hg19_knownGene CDS 43132456 43132636 0.000000 - 2 gene_id "SERINC3"; transcript_id "NM_006811:uc002xmf.1";
+chr20 hg19_knownGene exon 43132456 43132636 0.000000 - . gene_id "SERINC3"; transcript_id "NM_006811:uc002xmf.1";
+chr20 hg19_knownGene CDS 43133442 43133532 0.000000 - 0 gene_id "SERINC3"; transcript_id "NM_006811:uc002xmf.1";
+chr20 hg19_knownGene exon 43133442 43133532 0.000000 - . gene_id "SERINC3"; transcript_id "NM_006811:uc002xmf.1";
+chr20 hg19_knownGene CDS 43135468 43135637 0.000000 - 2 gene_id "SERINC3"; transcript_id "NM_006811:uc002xmf.1";
+chr20 hg19_knownGene exon 43135468 43135637 0.000000 - . gene_id "SERINC3"; transcript_id "NM_006811:uc002xmf.1";
+chr20 hg19_knownGene CDS 43138532 43138669 0.000000 - 2 gene_id "SERINC3"; transcript_id "NM_006811:uc002xmf.1";
+chr20 hg19_knownGene exon 43138532 43138669 0.000000 - . gene_id "SERINC3"; transcript_id "NM_006811:uc002xmf.1";
+chr20 hg19_knownGene CDS 43139930 43140009 0.000000 - 1 gene_id "SERINC3"; transcript_id "NM_006811:uc002xmf.1";
+chr20 hg19_knownGene exon 43139930 43140009 0.000000 - . gene_id "SERINC3"; transcript_id "NM_006811:uc002xmf.1";
+chr20 hg19_knownGene CDS 43141442 43141635 0.000000 - 0 gene_id "SERINC3"; transcript_id "NM_006811:uc002xmf.1";
+chr20 hg19_knownGene exon 43141442 43141635 0.000000 - . gene_id "SERINC3"; transcript_id "NM_006811:uc002xmf.1";
+chr20 hg19_knownGene CDS 43142520 43142681 0.000000 - 0 gene_id "SERINC3"; transcript_id "NM_006811:uc002xmf.1";
+chr20 hg19_knownGene exon 43142520 43142681 0.000000 - . gene_id "SERINC3"; transcript_id "NM_006811:uc002xmf.1";
+chr20 hg19_knownGene CDS 43150554 43150592 0.000000 - 0 gene_id "SERINC3"; transcript_id "NM_006811:uc002xmf.1";
+chr20 hg19_knownGene exon 43150554 43150726 0.000000 - . gene_id "SERINC3"; transcript_id "NM_006811:uc002xmf.1";
+chr20 hg19_knownGene CDS 43128940 43129075 0.000000 - 1 gene_id "SERINC3"; transcript_id "AK309993:uc010ggs.1";
+chr20 hg19_knownGene exon 43127901 43129075 0.000000 - . gene_id "SERINC3"; transcript_id "AK309993:uc010ggs.1";
+chr20 hg19_knownGene CDS 43129714 43129941 0.000000 - 1 gene_id "SERINC3"; transcript_id "AK309993:uc010ggs.1";
+chr20 hg19_knownGene exon 43129714 43129941 0.000000 - . gene_id "SERINC3"; transcript_id "AK309993:uc010ggs.1";
+chr20 hg19_knownGene CDS 43132456 43132636 0.000000 - 2 gene_id "SERINC3"; transcript_id "AK309993:uc010ggs.1";
+chr20 hg19_knownGene exon 43132456 43132636 0.000000 - . gene_id "SERINC3"; transcript_id "AK309993:uc010ggs.1";
+chr20 hg19_knownGene CDS 43133442 43133532 0.000000 - 0 gene_id "SERINC3"; transcript_id "AK309993:uc010ggs.1";
+chr20 hg19_knownGene exon 43133442 43133532 0.000000 - . gene_id "SERINC3"; transcript_id "AK309993:uc010ggs.1";
+chr20 hg19_knownGene CDS 43135468 43135637 0.000000 - 2 gene_id "SERINC3"; transcript_id "AK309993:uc010ggs.1";
+chr20 hg19_knownGene exon 43135468 43135637 0.000000 - . gene_id "SERINC3"; transcript_id "AK309993:uc010ggs.1";
+chr20 hg19_knownGene CDS 43138532 43138669 0.000000 - 2 gene_id "SERINC3"; transcript_id "AK309993:uc010ggs.1";
+chr20 hg19_knownGene exon 43138532 43138669 0.000000 - . gene_id "SERINC3"; transcript_id "AK309993:uc010ggs.1";
+chr20 hg19_knownGene CDS 43139930 43140009 0.000000 - 1 gene_id "SERINC3"; transcript_id "AK309993:uc010ggs.1";
+chr20 hg19_knownGene exon 43139930 43140009 0.000000 - . gene_id "SERINC3"; transcript_id "AK309993:uc010ggs.1";
+chr20 hg19_knownGene CDS 43141442 43141635 0.000000 - 0 gene_id "SERINC3"; transcript_id "AK309993:uc010ggs.1";
+chr20 hg19_knownGene exon 43141442 43141635 0.000000 - . gene_id "SERINC3"; transcript_id "AK309993:uc010ggs.1";
+chr20 hg19_knownGene CDS 43142520 43142699 0.000000 - 0 gene_id "SERINC3"; transcript_id "AK309993:uc010ggs.1";
+chr20 hg19_knownGene exon 43142520 43142705 0.000000 - . gene_id "SERINC3"; transcript_id "AK309993:uc010ggs.1";
+chr20 hg19_knownGene exon 43147953 43148055 0.000000 - . gene_id "SERINC3"; transcript_id "AK309993:uc010ggs.1";
+chr20 hg19_knownGene exon 43150554 43150726 0.000000 - . gene_id "SERINC3"; transcript_id "AK309993:uc010ggs.1";
+chr20 hg19_knownGene CDS 43128940 43129075 0.000000 - 1 gene_id "SERINC3"; transcript_id "AK300618:uc010zwp.1";
+chr20 hg19_knownGene exon 43127901 43129075 0.000000 - . gene_id "SERINC3"; transcript_id "AK300618:uc010zwp.1";
+chr20 hg19_knownGene CDS 43129714 43129941 0.000000 - 1 gene_id "SERINC3"; transcript_id "AK300618:uc010zwp.1";
+chr20 hg19_knownGene exon 43129714 43129941 0.000000 - . gene_id "SERINC3"; transcript_id "AK300618:uc010zwp.1";
+chr20 hg19_knownGene CDS 43132456 43132636 0.000000 - 2 gene_id "SERINC3"; transcript_id "AK300618:uc010zwp.1";
+chr20 hg19_knownGene exon 43132456 43132636 0.000000 - . gene_id "SERINC3"; transcript_id "AK300618:uc010zwp.1";
+chr20 hg19_knownGene CDS 43133442 43133532 0.000000 - 0 gene_id "SERINC3"; transcript_id "AK300618:uc010zwp.1";
+chr20 hg19_knownGene exon 43133442 43133532 0.000000 - . gene_id "SERINC3"; transcript_id "AK300618:uc010zwp.1";
+chr20 hg19_knownGene CDS 43135468 43135637 0.000000 - 2 gene_id "SERINC3"; transcript_id "AK300618:uc010zwp.1";
+chr20 hg19_knownGene exon 43135468 43135637 0.000000 - . gene_id "SERINC3"; transcript_id "AK300618:uc010zwp.1";
+chr20 hg19_knownGene CDS 43138532 43138669 0.000000 - 2 gene_id "SERINC3"; transcript_id "AK300618:uc010zwp.1";
+chr20 hg19_knownGene exon 43138532 43138669 0.000000 - . gene_id "SERINC3"; transcript_id "AK300618:uc010zwp.1";
+chr20 hg19_knownGene CDS 43139930 43140009 0.000000 - 1 gene_id "SERINC3"; transcript_id "AK300618:uc010zwp.1";
+chr20 hg19_knownGene exon 43139930 43140009 0.000000 - . gene_id "SERINC3"; transcript_id "AK300618:uc010zwp.1";
+chr20 hg19_knownGene CDS 43141442 43141635 0.000000 - 0 gene_id "SERINC3"; transcript_id "AK300618:uc010zwp.1";
+chr20 hg19_knownGene exon 43141442 43141635 0.000000 - . gene_id "SERINC3"; transcript_id "AK300618:uc010zwp.1";
+chr20 hg19_knownGene CDS 43142520 43142555 0.000000 - 0 gene_id "SERINC3"; transcript_id "AK300618:uc010zwp.1";
+chr20 hg19_knownGene exon 43142520 43142681 0.000000 - . gene_id "SERINC3"; transcript_id "AK300618:uc010zwp.1";
+chr20 hg19_knownGene exon 43147953 43148055 0.000000 - . gene_id "SERINC3"; transcript_id "AK300618:uc010zwp.1";
+chr20 hg19_knownGene exon 43150554 43150726 0.000000 - . gene_id "SERINC3"; transcript_id "AK300618:uc010zwp.1";
+chr20 hg19_knownGene exon 43160436 43160619 0.000000 + . gene_id "PKIG"; transcript_id "NM_181805:uc002xmg.3";
+chr20 hg19_knownGene exon 43211226 43211372 0.000000 + . gene_id "PKIG"; transcript_id "NM_181805:uc002xmg.3";
+chr20 hg19_knownGene exon 43213741 43213845 0.000000 + . gene_id "PKIG"; transcript_id "NM_181805:uc002xmg.3";
+chr20 hg19_knownGene exon 43218438 43218507 0.000000 + . gene_id "PKIG"; transcript_id "NM_181805:uc002xmg.3";
+chr20 hg19_knownGene CDS 43243198 43243348 0.000000 + 0 gene_id "PKIG"; transcript_id "NM_181805:uc002xmg.3";
+chr20 hg19_knownGene exon 43243175 43243348 0.000000 + . gene_id "PKIG"; transcript_id "NM_181805:uc002xmg.3";
+chr20 hg19_knownGene CDS 43246926 43247002 0.000000 + 2 gene_id "PKIG"; transcript_id "NM_181805:uc002xmg.3";
+chr20 hg19_knownGene exon 43246926 43247678 0.000000 + . gene_id "PKIG"; transcript_id "NM_181805:uc002xmg.3";
+chr20 hg19_knownGene exon 43160436 43160619 0.000000 + . gene_id "PKIG"; transcript_id "NM_181804:uc002xmh.3";
+chr20 hg19_knownGene exon 43211226 43211372 0.000000 + . gene_id "PKIG"; transcript_id "NM_181804:uc002xmh.3";
+chr20 hg19_knownGene exon 43218438 43218507 0.000000 + . gene_id "PKIG"; transcript_id "NM_181804:uc002xmh.3";
+chr20 hg19_knownGene CDS 43243198 43243348 0.000000 + 0 gene_id "PKIG"; transcript_id "NM_181804:uc002xmh.3";
+chr20 hg19_knownGene exon 43243175 43243348 0.000000 + . gene_id "PKIG"; transcript_id "NM_181804:uc002xmh.3";
+chr20 hg19_knownGene CDS 43246926 43247002 0.000000 + 2 gene_id "PKIG"; transcript_id "NM_181804:uc002xmh.3";
+chr20 hg19_knownGene exon 43246926 43247678 0.000000 + . gene_id "PKIG"; transcript_id "NM_181804:uc002xmh.3";
+chr20 hg19_knownGene exon 43160436 43160619 0.000000 + . gene_id "PKIG"; transcript_id "NM_007066:uc002xmi.3";
+chr20 hg19_knownGene exon 43218438 43218507 0.000000 + . gene_id "PKIG"; transcript_id "NM_007066:uc002xmi.3";
+chr20 hg19_knownGene CDS 43243198 43243348 0.000000 + 0 gene_id "PKIG"; transcript_id "NM_007066:uc002xmi.3";
+chr20 hg19_knownGene exon 43243175 43243348 0.000000 + . gene_id "PKIG"; transcript_id "NM_007066:uc002xmi.3";
+chr20 hg19_knownGene CDS 43246926 43247002 0.000000 + 2 gene_id "PKIG"; transcript_id "NM_007066:uc002xmi.3";
+chr20 hg19_knownGene exon 43246926 43247678 0.000000 + . gene_id "PKIG"; transcript_id "NM_007066:uc002xmi.3";
+chr20 hg19_knownGene CDS 43248478 43248488 0.000000 - 2 gene_id "ADA"; transcript_id "NM_000022:uc002xmj.3";
+chr20 hg19_knownGene exon 43248163 43248488 0.000000 - . gene_id "ADA"; transcript_id "NM_000022:uc002xmj.3";
+chr20 hg19_knownGene CDS 43248940 43249042 0.000000 - 0 gene_id "ADA"; transcript_id "NM_000022:uc002xmj.3";
+chr20 hg19_knownGene exon 43248940 43249042 0.000000 - . gene_id "ADA"; transcript_id "NM_000022:uc002xmj.3";
+chr20 hg19_knownGene CDS 43249659 43249788 0.000000 - 1 gene_id "ADA"; transcript_id "NM_000022:uc002xmj.3";
+chr20 hg19_knownGene exon 43249659 43249788 0.000000 - . gene_id "ADA"; transcript_id "NM_000022:uc002xmj.3";
+chr20 hg19_knownGene CDS 43251229 43251293 0.000000 - 0 gene_id "ADA"; transcript_id "NM_000022:uc002xmj.3";
+chr20 hg19_knownGene exon 43251229 43251293 0.000000 - . gene_id "ADA"; transcript_id "NM_000022:uc002xmj.3";
+chr20 hg19_knownGene CDS 43251470 43251571 0.000000 - 0 gene_id "ADA"; transcript_id "NM_000022:uc002xmj.3";
+chr20 hg19_knownGene exon 43251470 43251571 0.000000 - . gene_id "ADA"; transcript_id "NM_000022:uc002xmj.3";
+chr20 hg19_knownGene CDS 43251648 43251719 0.000000 - 0 gene_id "ADA"; transcript_id "NM_000022:uc002xmj.3";
+chr20 hg19_knownGene exon 43251648 43251719 0.000000 - . gene_id "ADA"; transcript_id "NM_000022:uc002xmj.3";
+chr20 hg19_knownGene CDS 43252843 43252970 0.000000 - 2 gene_id "ADA"; transcript_id "NM_000022:uc002xmj.3";
+chr20 hg19_knownGene exon 43252843 43252970 0.000000 - . gene_id "ADA"; transcript_id "NM_000022:uc002xmj.3";
+chr20 hg19_knownGene CDS 43254210 43254325 0.000000 - 1 gene_id "ADA"; transcript_id "NM_000022:uc002xmj.3";
+chr20 hg19_knownGene exon 43254210 43254325 0.000000 - . gene_id "ADA"; transcript_id "NM_000022:uc002xmj.3";
+chr20 hg19_knownGene CDS 43255097 43255240 0.000000 - 1 gene_id "ADA"; transcript_id "NM_000022:uc002xmj.3";
+chr20 hg19_knownGene exon 43255097 43255240 0.000000 - . gene_id "ADA"; transcript_id "NM_000022:uc002xmj.3";
+chr20 hg19_knownGene CDS 43257688 43257810 0.000000 - 1 gene_id "ADA"; transcript_id "NM_000022:uc002xmj.3";
+chr20 hg19_knownGene exon 43257688 43257810 0.000000 - . gene_id "ADA"; transcript_id "NM_000022:uc002xmj.3";
+chr20 hg19_knownGene CDS 43264868 43264929 0.000000 - 0 gene_id "ADA"; transcript_id "NM_000022:uc002xmj.3";
+chr20 hg19_knownGene exon 43264868 43264929 0.000000 - . gene_id "ADA"; transcript_id "NM_000022:uc002xmj.3";
+chr20 hg19_knownGene CDS 43280216 43280248 0.000000 - 0 gene_id "ADA"; transcript_id "NM_000022:uc002xmj.3";
+chr20 hg19_knownGene exon 43280216 43280376 0.000000 - . gene_id "ADA"; transcript_id "NM_000022:uc002xmj.3";
+chr20 hg19_knownGene exon 43285092 43285692 0.000000 - . gene_id "LOC79015"; transcript_id "NR_034104:uc002xmk.4";
+chr20 hg19_knownGene exon 43287636 43287822 0.000000 - . gene_id "LOC79015"; transcript_id "NR_034104:uc002xmk.4";
+chr20 hg19_knownGene exon 43288352 43288419 0.000000 - . gene_id "LOC79015"; transcript_id "NR_034104:uc002xmk.4";
+chr20 hg19_knownGene exon 43291995 43292194 0.000000 - . gene_id "LOC79015"; transcript_id "NR_034104:uc002xmk.4";
+chr20 hg19_knownGene exon 43300280 43300380 0.000000 - . gene_id "LOC79015"; transcript_id "NR_034104:uc002xmk.4";
+chr20 hg19_knownGene CDS 43344032 43344091 0.000000 + 0 gene_id "WISP2"; transcript_id "AK074695:uc002xmo.1";
+chr20 hg19_knownGene exon 43343885 43344091 0.000000 + . gene_id "WISP2"; transcript_id "AK074695:uc002xmo.1";
+chr20 hg19_knownGene CDS 43348538 43348789 0.000000 + 0 gene_id "WISP2"; transcript_id "AK074695:uc002xmo.1";
+chr20 hg19_knownGene exon 43348538 43350152 0.000000 + . gene_id "WISP2"; transcript_id "AK074695:uc002xmo.1";
+chr20 hg19_knownGene CDS 43344032 43344091 0.000000 + 0 gene_id "WISP2"; transcript_id "NM_003881:uc002xmp.3";
+chr20 hg19_knownGene exon 43343885 43344091 0.000000 + . gene_id "WISP2"; transcript_id "NM_003881:uc002xmp.3";
+chr20 hg19_knownGene CDS 43348538 43348754 0.000000 + 0 gene_id "WISP2"; transcript_id "NM_003881:uc002xmp.3";
+chr20 hg19_knownGene exon 43348538 43348754 0.000000 + . gene_id "WISP2"; transcript_id "NM_003881:uc002xmp.3";
+chr20 hg19_knownGene CDS 43353379 43353633 0.000000 + 2 gene_id "WISP2"; transcript_id "NM_003881:uc002xmp.3";
+chr20 hg19_knownGene exon 43353379 43353633 0.000000 + . gene_id "WISP2"; transcript_id "NM_003881:uc002xmp.3";
+chr20 hg19_knownGene CDS 43355728 43355945 0.000000 + 2 gene_id "WISP2"; transcript_id "NM_003881:uc002xmp.3";
+chr20 hg19_knownGene exon 43355728 43356452 0.000000 + . gene_id "WISP2"; transcript_id "NM_003881:uc002xmp.3";
+chr20 hg19_knownGene CDS 43344032 43344091 0.000000 + 0 gene_id "WISP2"; transcript_id "BC058074:uc002xmq.3";
+chr20 hg19_knownGene exon 43343885 43344091 0.000000 + . gene_id "WISP2"; transcript_id "BC058074:uc002xmq.3";
+chr20 hg19_knownGene CDS 43348538 43348762 0.000000 + 0 gene_id "WISP2"; transcript_id "BC058074:uc002xmq.3";
+chr20 hg19_knownGene exon 43348538 43348762 0.000000 + . gene_id "WISP2"; transcript_id "BC058074:uc002xmq.3";
+chr20 hg19_knownGene CDS 43355728 43356096 0.000000 + 0 gene_id "WISP2"; transcript_id "BC058074:uc002xmq.3";
+chr20 hg19_knownGene exon 43355728 43356452 0.000000 + . gene_id "WISP2"; transcript_id "BC058074:uc002xmq.3";
+chr20 hg19_knownGene exon 43289219 43292194 0.000000 - . gene_id "LOC79015"; transcript_id "AK090842:uc002xml.1";
+chr20 hg19_knownGene exon 43297225 43297317 0.000000 - . gene_id "LOC79015"; transcript_id "AK090842:uc002xml.1";
+chr20 hg19_knownGene exon 43324032 43324148 0.000000 - . gene_id "LOC79015"; transcript_id "AK090842:uc002xml.1";
+chr20 hg19_knownGene exon 43367461 43367608 0.000000 - . gene_id "LOC79015"; transcript_id "AK090842:uc002xml.1";
+chr20 hg19_knownGene CDS 43374552 43374834 0.000000 + 0 gene_id "KCNK15"; transcript_id "NM_022358:uc002xmr.3";
+chr20 hg19_knownGene exon 43374488 43374834 0.000000 + . gene_id "KCNK15"; transcript_id "NM_022358:uc002xmr.3";
+chr20 hg19_knownGene CDS 43378770 43379476 0.000000 + 2 gene_id "KCNK15"; transcript_id "NM_022358:uc002xmr.3";
+chr20 hg19_knownGene exon 43378770 43380954 0.000000 + . gene_id "KCNK15"; transcript_id "NM_022358:uc002xmr.3";
+chr20 hg19_knownGene CDS 43384778 43384993 0.000000 - 0 gene_id "RIMS4"; transcript_id "NM_001205317:uc010ggu.3";
+chr20 hg19_knownGene exon 43380445 43384993 0.000000 - . gene_id "RIMS4"; transcript_id "NM_001205317:uc010ggu.3";
+chr20 hg19_knownGene CDS 43385539 43385678 0.000000 - 2 gene_id "RIMS4"; transcript_id "NM_001205317:uc010ggu.3";
+chr20 hg19_knownGene exon 43385539 43385678 0.000000 - . gene_id "RIMS4"; transcript_id "NM_001205317:uc010ggu.3";
+chr20 hg19_knownGene CDS 43386311 43386412 0.000000 - 2 gene_id "RIMS4"; transcript_id "NM_001205317:uc010ggu.3";
+chr20 hg19_knownGene exon 43386311 43386412 0.000000 - . gene_id "RIMS4"; transcript_id "NM_001205317:uc010ggu.3";
+chr20 hg19_knownGene CDS 43386713 43386825 0.000000 - 1 gene_id "RIMS4"; transcript_id "NM_001205317:uc010ggu.3";
+chr20 hg19_knownGene exon 43386713 43386825 0.000000 - . gene_id "RIMS4"; transcript_id "NM_001205317:uc010ggu.3";
+chr20 hg19_knownGene CDS 43399916 43400057 0.000000 - 2 gene_id "RIMS4"; transcript_id "NM_001205317:uc010ggu.3";
+chr20 hg19_knownGene exon 43399916 43400057 0.000000 - . gene_id "RIMS4"; transcript_id "NM_001205317:uc010ggu.3";
+chr20 hg19_knownGene CDS 43438816 43438912 0.000000 - 0 gene_id "RIMS4"; transcript_id "NM_001205317:uc010ggu.3";
+chr20 hg19_knownGene exon 43438816 43438979 0.000000 - . gene_id "RIMS4"; transcript_id "NM_001205317:uc010ggu.3";
+chr20 hg19_knownGene CDS 43384778 43384993 0.000000 - 0 gene_id "RIMS4"; transcript_id "NM_182970:uc002xms.3";
+chr20 hg19_knownGene exon 43380445 43384993 0.000000 - . gene_id "RIMS4"; transcript_id "NM_182970:uc002xms.3";
+chr20 hg19_knownGene CDS 43385539 43385678 0.000000 - 2 gene_id "RIMS4"; transcript_id "NM_182970:uc002xms.3";
+chr20 hg19_knownGene exon 43385539 43385678 0.000000 - . gene_id "RIMS4"; transcript_id "NM_182970:uc002xms.3";
+chr20 hg19_knownGene CDS 43386311 43386412 0.000000 - 2 gene_id "RIMS4"; transcript_id "NM_182970:uc002xms.3";
+chr20 hg19_knownGene exon 43386311 43386412 0.000000 - . gene_id "RIMS4"; transcript_id "NM_182970:uc002xms.3";
+chr20 hg19_knownGene CDS 43386713 43386825 0.000000 - 1 gene_id "RIMS4"; transcript_id "NM_182970:uc002xms.3";
+chr20 hg19_knownGene exon 43386713 43386825 0.000000 - . gene_id "RIMS4"; transcript_id "NM_182970:uc002xms.3";
+chr20 hg19_knownGene CDS 43399916 43400054 0.000000 - 2 gene_id "RIMS4"; transcript_id "NM_182970:uc002xms.3";
+chr20 hg19_knownGene exon 43399916 43400054 0.000000 - . gene_id "RIMS4"; transcript_id "NM_182970:uc002xms.3";
+chr20 hg19_knownGene CDS 43438816 43438912 0.000000 - 0 gene_id "RIMS4"; transcript_id "NM_182970:uc002xms.3";
+chr20 hg19_knownGene exon 43438816 43438979 0.000000 - . gene_id "RIMS4"; transcript_id "NM_182970:uc002xms.3";
+chr20 hg19_knownGene exon 43514344 43514527 0.000000 + . gene_id "YWHAB"; transcript_id "NM_003404:uc002xmt.3";
+chr20 hg19_knownGene exon 43516289 43516383 0.000000 + . gene_id "YWHAB"; transcript_id "NM_003404:uc002xmt.3";
+chr20 hg19_knownGene CDS 43530175 43530474 0.000000 + 0 gene_id "YWHAB"; transcript_id "NM_003404:uc002xmt.3";
+chr20 hg19_knownGene exon 43530172 43530474 0.000000 + . gene_id "YWHAB"; transcript_id "NM_003404:uc002xmt.3";
+chr20 hg19_knownGene CDS 43532634 43532757 0.000000 + 0 gene_id "YWHAB"; transcript_id "NM_003404:uc002xmt.3";
+chr20 hg19_knownGene exon 43532634 43532757 0.000000 + . gene_id "YWHAB"; transcript_id "NM_003404:uc002xmt.3";
+chr20 hg19_knownGene CDS 43533609 43533772 0.000000 + 2 gene_id "YWHAB"; transcript_id "NM_003404:uc002xmt.3";
+chr20 hg19_knownGene exon 43533609 43533772 0.000000 + . gene_id "YWHAB"; transcript_id "NM_003404:uc002xmt.3";
+chr20 hg19_knownGene CDS 43534642 43534737 0.000000 + 0 gene_id "YWHAB"; transcript_id "NM_003404:uc002xmt.3";
+chr20 hg19_knownGene exon 43534642 43534737 0.000000 + . gene_id "YWHAB"; transcript_id "NM_003404:uc002xmt.3";
+chr20 hg19_knownGene CDS 43535023 43535076 0.000000 + 0 gene_id "YWHAB"; transcript_id "NM_003404:uc002xmt.3";
+chr20 hg19_knownGene exon 43535023 43537161 0.000000 + . gene_id "YWHAB"; transcript_id "NM_003404:uc002xmt.3";
+chr20 hg19_knownGene exon 43514344 43514527 0.000000 + . gene_id "YWHAB"; transcript_id "NM_139323:uc002xmu.3";
+chr20 hg19_knownGene CDS 43530175 43530474 0.000000 + 0 gene_id "YWHAB"; transcript_id "NM_139323:uc002xmu.3";
+chr20 hg19_knownGene exon 43530172 43530474 0.000000 + . gene_id "YWHAB"; transcript_id "NM_139323:uc002xmu.3";
+chr20 hg19_knownGene CDS 43532634 43532757 0.000000 + 0 gene_id "YWHAB"; transcript_id "NM_139323:uc002xmu.3";
+chr20 hg19_knownGene exon 43532634 43532757 0.000000 + . gene_id "YWHAB"; transcript_id "NM_139323:uc002xmu.3";
+chr20 hg19_knownGene CDS 43533609 43533772 0.000000 + 2 gene_id "YWHAB"; transcript_id "NM_139323:uc002xmu.3";
+chr20 hg19_knownGene exon 43533609 43533772 0.000000 + . gene_id "YWHAB"; transcript_id "NM_139323:uc002xmu.3";
+chr20 hg19_knownGene CDS 43534642 43534737 0.000000 + 0 gene_id "YWHAB"; transcript_id "NM_139323:uc002xmu.3";
+chr20 hg19_knownGene exon 43534642 43534737 0.000000 + . gene_id "YWHAB"; transcript_id "NM_139323:uc002xmu.3";
+chr20 hg19_knownGene CDS 43535023 43535076 0.000000 + 0 gene_id "YWHAB"; transcript_id "NM_139323:uc002xmu.3";
+chr20 hg19_knownGene exon 43535023 43537161 0.000000 + . gene_id "YWHAB"; transcript_id "NM_139323:uc002xmu.3";
+chr20 hg19_knownGene CDS 43538785 43538977 0.000000 + 0 gene_id "PABPC1L"; transcript_id "NM_001124756:uc010ggv.1";
+chr20 hg19_knownGene exon 43538703 43538977 0.000000 + . gene_id "PABPC1L"; transcript_id "NM_001124756:uc010ggv.1";
+chr20 hg19_knownGene CDS 43541301 43541494 0.000000 + 2 gene_id "PABPC1L"; transcript_id "NM_001124756:uc010ggv.1";
+chr20 hg19_knownGene exon 43541301 43541494 0.000000 + . gene_id "PABPC1L"; transcript_id "NM_001124756:uc010ggv.1";
+chr20 hg19_knownGene CDS 43545397 43545512 0.000000 + 0 gene_id "PABPC1L"; transcript_id "NM_001124756:uc010ggv.1";
+chr20 hg19_knownGene exon 43545397 43545512 0.000000 + . gene_id "PABPC1L"; transcript_id "NM_001124756:uc010ggv.1";
+chr20 hg19_knownGene CDS 43547547 43547686 0.000000 + 1 gene_id "PABPC1L"; transcript_id "NM_001124756:uc010ggv.1";
+chr20 hg19_knownGene exon 43547547 43547686 0.000000 + . gene_id "PABPC1L"; transcript_id "NM_001124756:uc010ggv.1";
+chr20 hg19_knownGene CDS 43547824 43547918 0.000000 + 2 gene_id "PABPC1L"; transcript_id "NM_001124756:uc010ggv.1";
+chr20 hg19_knownGene exon 43547824 43547918 0.000000 + . gene_id "PABPC1L"; transcript_id "NM_001124756:uc010ggv.1";
+chr20 hg19_knownGene CDS 43550235 43550372 0.000000 + 0 gene_id "PABPC1L"; transcript_id "NM_001124756:uc010ggv.1";
+chr20 hg19_knownGene exon 43550235 43550372 0.000000 + . gene_id "PABPC1L"; transcript_id "NM_001124756:uc010ggv.1";
+chr20 hg19_knownGene CDS 43552802 43552897 0.000000 + 0 gene_id "PABPC1L"; transcript_id "NM_001124756:uc010ggv.1";
+chr20 hg19_knownGene exon 43552802 43552897 0.000000 + . gene_id "PABPC1L"; transcript_id "NM_001124756:uc010ggv.1";
+chr20 hg19_knownGene CDS 43559101 43559367 0.000000 + 0 gene_id "PABPC1L"; transcript_id "NM_001124756:uc010ggv.1";
+chr20 hg19_knownGene exon 43559101 43559367 0.000000 + . gene_id "PABPC1L"; transcript_id "NM_001124756:uc010ggv.1";
+chr20 hg19_knownGene CDS 43560983 43561073 0.000000 + 0 gene_id "PABPC1L"; transcript_id "NM_001124756:uc010ggv.1";
+chr20 hg19_knownGene exon 43560983 43561073 0.000000 + . gene_id "PABPC1L"; transcript_id "NM_001124756:uc010ggv.1";
+chr20 hg19_knownGene CDS 43561713 43561826 0.000000 + 2 gene_id "PABPC1L"; transcript_id "NM_001124756:uc010ggv.1";
+chr20 hg19_knownGene exon 43561713 43561826 0.000000 + . gene_id "PABPC1L"; transcript_id "NM_001124756:uc010ggv.1";
+chr20 hg19_knownGene CDS 43564032 43564138 0.000000 + 2 gene_id "PABPC1L"; transcript_id "NM_001124756:uc010ggv.1";
+chr20 hg19_knownGene exon 43564032 43564138 0.000000 + . gene_id "PABPC1L"; transcript_id "NM_001124756:uc010ggv.1";
+chr20 hg19_knownGene CDS 43565278 43565371 0.000000 + 0 gene_id "PABPC1L"; transcript_id "NM_001124756:uc010ggv.1";
+chr20 hg19_knownGene exon 43565278 43565371 0.000000 + . gene_id "PABPC1L"; transcript_id "NM_001124756:uc010ggv.1";
+chr20 hg19_knownGene CDS 43566702 43566832 0.000000 + 2 gene_id "PABPC1L"; transcript_id "NM_001124756:uc010ggv.1";
+chr20 hg19_knownGene exon 43566702 43566832 0.000000 + . gene_id "PABPC1L"; transcript_id "NM_001124756:uc010ggv.1";
+chr20 hg19_knownGene CDS 43567315 43567380 0.000000 + 0 gene_id "PABPC1L"; transcript_id "NM_001124756:uc010ggv.1";
+chr20 hg19_knownGene exon 43567315 43567389 0.000000 + . gene_id "PABPC1L"; transcript_id "NM_001124756:uc010ggv.1";
+chr20 hg19_knownGene exon 43567767 43567962 0.000000 + . gene_id "PABPC1L"; transcript_id "NM_001124756:uc010ggv.1";
+chr20 hg19_knownGene exon 43538703 43538977 0.000000 + . gene_id "PABPC1L"; transcript_id "EU190483:uc010zwq.1";
+chr20 hg19_knownGene exon 43541301 43541494 0.000000 + . gene_id "PABPC1L"; transcript_id "EU190483:uc010zwq.1";
+chr20 hg19_knownGene exon 43545397 43545512 0.000000 + . gene_id "PABPC1L"; transcript_id "EU190483:uc010zwq.1";
+chr20 hg19_knownGene exon 43547547 43547686 0.000000 + . gene_id "PABPC1L"; transcript_id "EU190483:uc010zwq.1";
+chr20 hg19_knownGene exon 43547824 43547918 0.000000 + . gene_id "PABPC1L"; transcript_id "EU190483:uc010zwq.1";
+chr20 hg19_knownGene exon 43550235 43550372 0.000000 + . gene_id "PABPC1L"; transcript_id "EU190483:uc010zwq.1";
+chr20 hg19_knownGene exon 43552802 43552897 0.000000 + . gene_id "PABPC1L"; transcript_id "EU190483:uc010zwq.1";
+chr20 hg19_knownGene exon 43559159 43559367 0.000000 + . gene_id "PABPC1L"; transcript_id "EU190483:uc010zwq.1";
+chr20 hg19_knownGene exon 43561713 43561826 0.000000 + . gene_id "PABPC1L"; transcript_id "EU190483:uc010zwq.1";
+chr20 hg19_knownGene exon 43564032 43564138 0.000000 + . gene_id "PABPC1L"; transcript_id "EU190483:uc010zwq.1";
+chr20 hg19_knownGene exon 43565278 43565371 0.000000 + . gene_id "PABPC1L"; transcript_id "EU190483:uc010zwq.1";
+chr20 hg19_knownGene exon 43566702 43566832 0.000000 + . gene_id "PABPC1L"; transcript_id "EU190483:uc010zwq.1";
+chr20 hg19_knownGene exon 43567315 43567389 0.000000 + . gene_id "PABPC1L"; transcript_id "EU190483:uc010zwq.1";
+chr20 hg19_knownGene exon 43567767 43567962 0.000000 + . gene_id "PABPC1L"; transcript_id "EU190483:uc010zwq.1";
+chr20 hg19_knownGene exon 43552794 43552897 0.000000 + . gene_id "PABPC1L"; transcript_id "AX721304:uc002xmv.2";
+chr20 hg19_knownGene exon 43559101 43559367 0.000000 + . gene_id "PABPC1L"; transcript_id "AX721304:uc002xmv.2";
+chr20 hg19_knownGene exon 43561698 43561826 0.000000 + . gene_id "PABPC1L"; transcript_id "AX721304:uc002xmv.2";
+chr20 hg19_knownGene exon 43564032 43564143 0.000000 + . gene_id "PABPC1L"; transcript_id "AX721304:uc002xmv.2";
+chr20 hg19_knownGene exon 43565278 43565371 0.000000 + . gene_id "PABPC1L"; transcript_id "AX721304:uc002xmv.2";
+chr20 hg19_knownGene exon 43566686 43566832 0.000000 + . gene_id "PABPC1L"; transcript_id "AX721304:uc002xmv.2";
+chr20 hg19_knownGene exon 43567315 43567389 0.000000 + . gene_id "PABPC1L"; transcript_id "AX721304:uc002xmv.2";
+chr20 hg19_knownGene exon 43567767 43567962 0.000000 + . gene_id "PABPC1L"; transcript_id "AX721304:uc002xmv.2";
+chr20 hg19_knownGene CDS 43561721 43561826 0.000000 + 0 gene_id "PABPC1L"; transcript_id "AK124047:uc002xmw.2";
+chr20 hg19_knownGene exon 43560820 43561826 0.000000 + . gene_id "PABPC1L"; transcript_id "AK124047:uc002xmw.2";
+chr20 hg19_knownGene CDS 43564032 43564138 0.000000 + 2 gene_id "PABPC1L"; transcript_id "AK124047:uc002xmw.2";
+chr20 hg19_knownGene exon 43564032 43564138 0.000000 + . gene_id "PABPC1L"; transcript_id "AK124047:uc002xmw.2";
+chr20 hg19_knownGene CDS 43565278 43565371 0.000000 + 0 gene_id "PABPC1L"; transcript_id "AK124047:uc002xmw.2";
+chr20 hg19_knownGene exon 43565278 43565371 0.000000 + . gene_id "PABPC1L"; transcript_id "AK124047:uc002xmw.2";
+chr20 hg19_knownGene CDS 43566702 43566832 0.000000 + 2 gene_id "PABPC1L"; transcript_id "AK124047:uc002xmw.2";
+chr20 hg19_knownGene exon 43566702 43566832 0.000000 + . gene_id "PABPC1L"; transcript_id "AK124047:uc002xmw.2";
+chr20 hg19_knownGene CDS 43567315 43567380 0.000000 + 0 gene_id "PABPC1L"; transcript_id "AK124047:uc002xmw.2";
+chr20 hg19_knownGene exon 43567315 43567389 0.000000 + . gene_id "PABPC1L"; transcript_id "AK124047:uc002xmw.2";
+chr20 hg19_knownGene exon 43567767 43567962 0.000000 + . gene_id "PABPC1L"; transcript_id "AK124047:uc002xmw.2";
+chr20 hg19_knownGene CDS 43561721 43561826 0.000000 + 0 gene_id "PABPC1L"; transcript_id "BC068104:uc002xmx.3";
+chr20 hg19_knownGene exon 43560820 43561826 0.000000 + . gene_id "PABPC1L"; transcript_id "BC068104:uc002xmx.3";
+chr20 hg19_knownGene CDS 43564032 43564138 0.000000 + 2 gene_id "PABPC1L"; transcript_id "BC068104:uc002xmx.3";
+chr20 hg19_knownGene exon 43564032 43564138 0.000000 + . gene_id "PABPC1L"; transcript_id "BC068104:uc002xmx.3";
+chr20 hg19_knownGene CDS 43565278 43565371 0.000000 + 0 gene_id "PABPC1L"; transcript_id "BC068104:uc002xmx.3";
+chr20 hg19_knownGene exon 43565278 43565371 0.000000 + . gene_id "PABPC1L"; transcript_id "BC068104:uc002xmx.3";
+chr20 hg19_knownGene CDS 43566702 43566832 0.000000 + 2 gene_id "PABPC1L"; transcript_id "BC068104:uc002xmx.3";
+chr20 hg19_knownGene exon 43566702 43566832 0.000000 + . gene_id "PABPC1L"; transcript_id "BC068104:uc002xmx.3";
+chr20 hg19_knownGene CDS 43584174 43584245 0.000000 + 0 gene_id "PABPC1L"; transcript_id "BC068104:uc002xmx.3";
+chr20 hg19_knownGene exon 43584174 43584261 0.000000 + . gene_id "PABPC1L"; transcript_id "BC068104:uc002xmx.3";
+chr20 hg19_knownGene exon 43586978 43587799 0.000000 + . gene_id "PABPC1L"; transcript_id "BC068104:uc002xmx.3";
+chr20 hg19_knownGene CDS 43571753 43571854 0.000000 - 0 gene_id "TOMM34"; transcript_id "NM_006809:uc002xmy.3";
+chr20 hg19_knownGene exon 43570771 43571854 0.000000 - . gene_id "TOMM34"; transcript_id "NM_006809:uc002xmy.3";
+chr20 hg19_knownGene CDS 43572094 43572220 0.000000 - 1 gene_id "TOMM34"; transcript_id "NM_006809:uc002xmy.3";
+chr20 hg19_knownGene exon 43572094 43572220 0.000000 - . gene_id "TOMM34"; transcript_id "NM_006809:uc002xmy.3";
+chr20 hg19_knownGene CDS 43577371 43577518 0.000000 - 2 gene_id "TOMM34"; transcript_id "NM_006809:uc002xmy.3";
+chr20 hg19_knownGene exon 43577371 43577518 0.000000 - . gene_id "TOMM34"; transcript_id "NM_006809:uc002xmy.3";
+chr20 hg19_knownGene CDS 43580474 43580643 0.000000 - 1 gene_id "TOMM34"; transcript_id "NM_006809:uc002xmy.3";
+chr20 hg19_knownGene exon 43580474 43580643 0.000000 - . gene_id "TOMM34"; transcript_id "NM_006809:uc002xmy.3";
+chr20 hg19_knownGene CDS 43583709 43583861 0.000000 - 1 gene_id "TOMM34"; transcript_id "NM_006809:uc002xmy.3";
+chr20 hg19_knownGene exon 43583709 43583861 0.000000 - . gene_id "TOMM34"; transcript_id "NM_006809:uc002xmy.3";
+chr20 hg19_knownGene CDS 43585027 43585126 0.000000 - 2 gene_id "TOMM34"; transcript_id "NM_006809:uc002xmy.3";
+chr20 hg19_knownGene exon 43585027 43585126 0.000000 - . gene_id "TOMM34"; transcript_id "NM_006809:uc002xmy.3";
+chr20 hg19_knownGene CDS 43588848 43588974 0.000000 - 0 gene_id "TOMM34"; transcript_id "NM_006809:uc002xmy.3";
+chr20 hg19_knownGene exon 43588848 43589114 0.000000 - . gene_id "TOMM34"; transcript_id "NM_006809:uc002xmy.3";
+chr20 hg19_knownGene exon 43592440 43594089 0.000000 - . gene_id "LOC100505826"; transcript_id "NR_038341:uc002xna.2";
+chr20 hg19_knownGene exon 43594203 43594326 0.000000 - . gene_id "LOC100505826"; transcript_id "NR_038341:uc002xna.2";
+chr20 hg19_knownGene exon 43594758 43595099 0.000000 - . gene_id "LOC100505826"; transcript_id "NR_038341:uc002xna.2";
+chr20 hg19_knownGene CDS 43595210 43595244 0.000000 + 0 gene_id "STK4"; transcript_id "AK309169:uc010ggw.1";
+chr20 hg19_knownGene exon 43595120 43595244 0.000000 + . gene_id "STK4"; transcript_id "AK309169:uc010ggw.1";
+chr20 hg19_knownGene CDS 43600719 43600799 0.000000 + 1 gene_id "STK4"; transcript_id "AK309169:uc010ggw.1";
+chr20 hg19_knownGene exon 43600719 43600799 0.000000 + . gene_id "STK4"; transcript_id "AK309169:uc010ggw.1";
+chr20 hg19_knownGene CDS 43607084 43607212 0.000000 + 1 gene_id "STK4"; transcript_id "AK309169:uc010ggw.1";
+chr20 hg19_knownGene exon 43607084 43607212 0.000000 + . gene_id "STK4"; transcript_id "AK309169:uc010ggw.1";
+chr20 hg19_knownGene CDS 43610470 43610584 0.000000 + 1 gene_id "STK4"; transcript_id "AK309169:uc010ggw.1";
+chr20 hg19_knownGene exon 43610470 43610584 0.000000 + . gene_id "STK4"; transcript_id "AK309169:uc010ggw.1";
+chr20 hg19_knownGene CDS 43615773 43615937 0.000000 + 0 gene_id "STK4"; transcript_id "AK309169:uc010ggw.1";
+chr20 hg19_knownGene exon 43615773 43615937 0.000000 + . gene_id "STK4"; transcript_id "AK309169:uc010ggw.1";
+chr20 hg19_knownGene CDS 43623731 43623898 0.000000 + 0 gene_id "STK4"; transcript_id "AK309169:uc010ggw.1";
+chr20 hg19_knownGene exon 43623731 43623898 0.000000 + . gene_id "STK4"; transcript_id "AK309169:uc010ggw.1";
+chr20 hg19_knownGene CDS 43625810 43625947 0.000000 + 0 gene_id "STK4"; transcript_id "AK309169:uc010ggw.1";
+chr20 hg19_knownGene exon 43625810 43625947 0.000000 + . gene_id "STK4"; transcript_id "AK309169:uc010ggw.1";
+chr20 hg19_knownGene CDS 43629033 43629212 0.000000 + 0 gene_id "STK4"; transcript_id "AK309169:uc010ggw.1";
+chr20 hg19_knownGene exon 43629033 43629632 0.000000 + . gene_id "STK4"; transcript_id "AK309169:uc010ggw.1";
+chr20 hg19_knownGene CDS 43595210 43595244 0.000000 + 0 gene_id "STK4"; transcript_id "NM_006282:uc002xnb.3";
+chr20 hg19_knownGene exon 43595120 43595244 0.000000 + . gene_id "STK4"; transcript_id "NM_006282:uc002xnb.3";
+chr20 hg19_knownGene CDS 43600719 43600799 0.000000 + 1 gene_id "STK4"; transcript_id "NM_006282:uc002xnb.3";
+chr20 hg19_knownGene exon 43600719 43600799 0.000000 + . gene_id "STK4"; transcript_id "NM_006282:uc002xnb.3";
+chr20 hg19_knownGene CDS 43607084 43607212 0.000000 + 1 gene_id "STK4"; transcript_id "NM_006282:uc002xnb.3";
+chr20 hg19_knownGene exon 43607084 43607212 0.000000 + . gene_id "STK4"; transcript_id "NM_006282:uc002xnb.3";
+chr20 hg19_knownGene CDS 43610470 43610584 0.000000 + 1 gene_id "STK4"; transcript_id "NM_006282:uc002xnb.3";
+chr20 hg19_knownGene exon 43610470 43610584 0.000000 + . gene_id "STK4"; transcript_id "NM_006282:uc002xnb.3";
+chr20 hg19_knownGene CDS 43615773 43615937 0.000000 + 0 gene_id "STK4"; transcript_id "NM_006282:uc002xnb.3";
+chr20 hg19_knownGene exon 43615773 43615937 0.000000 + . gene_id "STK4"; transcript_id "NM_006282:uc002xnb.3";
+chr20 hg19_knownGene CDS 43623731 43623898 0.000000 + 0 gene_id "STK4"; transcript_id "NM_006282:uc002xnb.3";
+chr20 hg19_knownGene exon 43623731 43623898 0.000000 + . gene_id "STK4"; transcript_id "NM_006282:uc002xnb.3";
+chr20 hg19_knownGene CDS 43625810 43625947 0.000000 + 0 gene_id "STK4"; transcript_id "NM_006282:uc002xnb.3";
+chr20 hg19_knownGene exon 43625810 43625947 0.000000 + . gene_id "STK4"; transcript_id "NM_006282:uc002xnb.3";
+chr20 hg19_knownGene CDS 43629033 43629161 0.000000 + 0 gene_id "STK4"; transcript_id "NM_006282:uc002xnb.3";
+chr20 hg19_knownGene exon 43629033 43629161 0.000000 + . gene_id "STK4"; transcript_id "NM_006282:uc002xnb.3";
+chr20 hg19_knownGene CDS 43629808 43629994 0.000000 + 0 gene_id "STK4"; transcript_id "NM_006282:uc002xnb.3";
+chr20 hg19_knownGene exon 43629808 43629994 0.000000 + . gene_id "STK4"; transcript_id "NM_006282:uc002xnb.3";
+chr20 hg19_knownGene CDS 43653614 43653771 0.000000 + 2 gene_id "STK4"; transcript_id "NM_006282:uc002xnb.3";
+chr20 hg19_knownGene exon 43653614 43653771 0.000000 + . gene_id "STK4"; transcript_id "NM_006282:uc002xnb.3";
+chr20 hg19_knownGene CDS 43703659 43703814 0.000000 + 0 gene_id "STK4"; transcript_id "NM_006282:uc002xnb.3";
+chr20 hg19_knownGene exon 43703659 43708593 0.000000 + . gene_id "STK4"; transcript_id "NM_006282:uc002xnb.3";
+chr20 hg19_knownGene CDS 43595210 43595244 0.000000 + 0 gene_id "STK4"; transcript_id "BC038850:uc010ggx.3";
+chr20 hg19_knownGene exon 43595120 43595244 0.000000 + . gene_id "STK4"; transcript_id "BC038850:uc010ggx.3";
+chr20 hg19_knownGene CDS 43600719 43600799 0.000000 + 1 gene_id "STK4"; transcript_id "BC038850:uc010ggx.3";
+chr20 hg19_knownGene exon 43600719 43600799 0.000000 + . gene_id "STK4"; transcript_id "BC038850:uc010ggx.3";
+chr20 hg19_knownGene CDS 43607084 43607212 0.000000 + 1 gene_id "STK4"; transcript_id "BC038850:uc010ggx.3";
+chr20 hg19_knownGene exon 43607084 43607212 0.000000 + . gene_id "STK4"; transcript_id "BC038850:uc010ggx.3";
+chr20 hg19_knownGene CDS 43610470 43610584 0.000000 + 1 gene_id "STK4"; transcript_id "BC038850:uc010ggx.3";
+chr20 hg19_knownGene exon 43610470 43610584 0.000000 + . gene_id "STK4"; transcript_id "BC038850:uc010ggx.3";
+chr20 hg19_knownGene CDS 43615773 43615937 0.000000 + 0 gene_id "STK4"; transcript_id "BC038850:uc010ggx.3";
+chr20 hg19_knownGene exon 43615773 43615937 0.000000 + . gene_id "STK4"; transcript_id "BC038850:uc010ggx.3";
+chr20 hg19_knownGene CDS 43623731 43623898 0.000000 + 0 gene_id "STK4"; transcript_id "BC038850:uc010ggx.3";
+chr20 hg19_knownGene exon 43623731 43623898 0.000000 + . gene_id "STK4"; transcript_id "BC038850:uc010ggx.3";
+chr20 hg19_knownGene CDS 43625810 43625947 0.000000 + 0 gene_id "STK4"; transcript_id "BC038850:uc010ggx.3";
+chr20 hg19_knownGene exon 43625810 43625947 0.000000 + . gene_id "STK4"; transcript_id "BC038850:uc010ggx.3";
+chr20 hg19_knownGene CDS 43629033 43629161 0.000000 + 0 gene_id "STK4"; transcript_id "BC038850:uc010ggx.3";
+chr20 hg19_knownGene exon 43629033 43629161 0.000000 + . gene_id "STK4"; transcript_id "BC038850:uc010ggx.3";
+chr20 hg19_knownGene CDS 43629808 43629994 0.000000 + 0 gene_id "STK4"; transcript_id "BC038850:uc010ggx.3";
+chr20 hg19_knownGene exon 43629808 43629994 0.000000 + . gene_id "STK4"; transcript_id "BC038850:uc010ggx.3";
+chr20 hg19_knownGene CDS 43653614 43653771 0.000000 + 2 gene_id "STK4"; transcript_id "BC038850:uc010ggx.3";
+chr20 hg19_knownGene exon 43653614 43653771 0.000000 + . gene_id "STK4"; transcript_id "BC038850:uc010ggx.3";
+chr20 hg19_knownGene CDS 43681727 43681807 0.000000 + 0 gene_id "STK4"; transcript_id "BC038850:uc010ggx.3";
+chr20 hg19_knownGene exon 43681727 43681821 0.000000 + . gene_id "STK4"; transcript_id "BC038850:uc010ggx.3";
+chr20 hg19_knownGene exon 43703659 43708593 0.000000 + . gene_id "STK4"; transcript_id "BC038850:uc010ggx.3";
+chr20 hg19_knownGene CDS 43595210 43595244 0.000000 + 0 gene_id "STK4"; transcript_id "CR933633:uc010ggy.3";
+chr20 hg19_knownGene exon 43595120 43595244 0.000000 + . gene_id "STK4"; transcript_id "CR933633:uc010ggy.3";
+chr20 hg19_knownGene CDS 43600719 43600799 0.000000 + 1 gene_id "STK4"; transcript_id "CR933633:uc010ggy.3";
+chr20 hg19_knownGene exon 43600719 43600799 0.000000 + . gene_id "STK4"; transcript_id "CR933633:uc010ggy.3";
+chr20 hg19_knownGene CDS 43607084 43607212 0.000000 + 1 gene_id "STK4"; transcript_id "CR933633:uc010ggy.3";
+chr20 hg19_knownGene exon 43607084 43607212 0.000000 + . gene_id "STK4"; transcript_id "CR933633:uc010ggy.3";
+chr20 hg19_knownGene CDS 43610470 43610584 0.000000 + 1 gene_id "STK4"; transcript_id "CR933633:uc010ggy.3";
+chr20 hg19_knownGene exon 43610470 43610584 0.000000 + . gene_id "STK4"; transcript_id "CR933633:uc010ggy.3";
+chr20 hg19_knownGene CDS 43623731 43623898 0.000000 + 0 gene_id "STK4"; transcript_id "CR933633:uc010ggy.3";
+chr20 hg19_knownGene exon 43623731 43623898 0.000000 + . gene_id "STK4"; transcript_id "CR933633:uc010ggy.3";
+chr20 hg19_knownGene CDS 43625810 43625947 0.000000 + 0 gene_id "STK4"; transcript_id "CR933633:uc010ggy.3";
+chr20 hg19_knownGene exon 43625810 43625947 0.000000 + . gene_id "STK4"; transcript_id "CR933633:uc010ggy.3";
+chr20 hg19_knownGene CDS 43629033 43629161 0.000000 + 0 gene_id "STK4"; transcript_id "CR933633:uc010ggy.3";
+chr20 hg19_knownGene exon 43629033 43629161 0.000000 + . gene_id "STK4"; transcript_id "CR933633:uc010ggy.3";
+chr20 hg19_knownGene CDS 43629808 43629994 0.000000 + 0 gene_id "STK4"; transcript_id "CR933633:uc010ggy.3";
+chr20 hg19_knownGene exon 43629808 43629994 0.000000 + . gene_id "STK4"; transcript_id "CR933633:uc010ggy.3";
+chr20 hg19_knownGene CDS 43653614 43653771 0.000000 + 2 gene_id "STK4"; transcript_id "CR933633:uc010ggy.3";
+chr20 hg19_knownGene exon 43653614 43653771 0.000000 + . gene_id "STK4"; transcript_id "CR933633:uc010ggy.3";
+chr20 hg19_knownGene CDS 43703659 43703814 0.000000 + 0 gene_id "STK4"; transcript_id "CR933633:uc010ggy.3";
+chr20 hg19_knownGene exon 43703659 43708593 0.000000 + . gene_id "STK4"; transcript_id "CR933633:uc010ggy.3";
+chr20 hg19_knownGene exon 43706692 43708618 0.000000 + . gene_id "AB209315"; transcript_id "AB209315:uc021wef.1";
+chr20 hg19_knownGene CDS 43723514 43723981 0.000000 - 0 gene_id "KCNS1"; transcript_id "NM_002251:uc002xnc.3";
+chr20 hg19_knownGene exon 43720950 43723981 0.000000 - . gene_id "KCNS1"; transcript_id "NM_002251:uc002xnc.3";
+chr20 hg19_knownGene CDS 43726303 43727336 0.000000 - 2 gene_id "KCNS1"; transcript_id "NM_002251:uc002xnc.3";
+chr20 hg19_knownGene exon 43726303 43727336 0.000000 - . gene_id "KCNS1"; transcript_id "NM_002251:uc002xnc.3";
+chr20 hg19_knownGene CDS 43727802 43727877 0.000000 - 0 gene_id "KCNS1"; transcript_id "NM_002251:uc002xnc.3";
+chr20 hg19_knownGene exon 43727802 43727880 0.000000 - . gene_id "KCNS1"; transcript_id "NM_002251:uc002xnc.3";
+chr20 hg19_knownGene exon 43728801 43729002 0.000000 - . gene_id "KCNS1"; transcript_id "NM_002251:uc002xnc.3";
+chr20 hg19_knownGene exon 43729562 43729753 0.000000 - . gene_id "KCNS1"; transcript_id "NM_002251:uc002xnc.3";
+chr20 hg19_knownGene CDS 43723514 43723981 0.000000 - 0 gene_id "KCNS1"; transcript_id "AK289735:uc002xnd.3";
+chr20 hg19_knownGene exon 43720950 43723981 0.000000 - . gene_id "KCNS1"; transcript_id "AK289735:uc002xnd.3";
+chr20 hg19_knownGene CDS 43726303 43727336 0.000000 - 2 gene_id "KCNS1"; transcript_id "AK289735:uc002xnd.3";
+chr20 hg19_knownGene exon 43726303 43727336 0.000000 - . gene_id "KCNS1"; transcript_id "AK289735:uc002xnd.3";
+chr20 hg19_knownGene CDS 43727802 43727877 0.000000 - 0 gene_id "KCNS1"; transcript_id "AK289735:uc002xnd.3";
+chr20 hg19_knownGene exon 43727802 43727880 0.000000 - . gene_id "KCNS1"; transcript_id "AK289735:uc002xnd.3";
+chr20 hg19_knownGene exon 43729562 43729753 0.000000 - . gene_id "KCNS1"; transcript_id "AK289735:uc002xnd.3";
+chr20 hg19_knownGene CDS 43738653 43738654 0.000000 - 2 gene_id "WFDC5"; transcript_id "NM_145652:uc002xne.2";
+chr20 hg19_knownGene exon 43738093 43738654 0.000000 - . gene_id "WFDC5"; transcript_id "NM_145652:uc002xne.2";
+chr20 hg19_knownGene CDS 43739041 43739181 0.000000 - 2 gene_id "WFDC5"; transcript_id "NM_145652:uc002xne.2";
+chr20 hg19_knownGene exon 43739041 43739181 0.000000 - . gene_id "WFDC5"; transcript_id "NM_145652:uc002xne.2";
+chr20 hg19_knownGene CDS 43739276 43739416 0.000000 - 2 gene_id "WFDC5"; transcript_id "NM_145652:uc002xne.2";
+chr20 hg19_knownGene exon 43739276 43739416 0.000000 - . gene_id "WFDC5"; transcript_id "NM_145652:uc002xne.2";
+chr20 hg19_knownGene CDS 43743640 43743724 0.000000 - 0 gene_id "WFDC5"; transcript_id "NM_145652:uc002xne.2";
+chr20 hg19_knownGene exon 43743640 43743813 0.000000 - . gene_id "WFDC5"; transcript_id "NM_145652:uc002xne.2";
+chr20 hg19_knownGene CDS 43752490 43752584 0.000000 - 2 gene_id "WFDC12"; transcript_id "NM_080869:uc002xnf.1";
+chr20 hg19_knownGene exon 43752067 43752584 0.000000 - . gene_id "WFDC12"; transcript_id "NM_080869:uc002xnf.1";
+chr20 hg19_knownGene CDS 43752748 43752906 0.000000 - 2 gene_id "WFDC12"; transcript_id "NM_080869:uc002xnf.1";
+chr20 hg19_knownGene exon 43752748 43752906 0.000000 - . gene_id "WFDC12"; transcript_id "NM_080869:uc002xnf.1";
+chr20 hg19_knownGene CDS 43753010 43753088 0.000000 - 0 gene_id "WFDC12"; transcript_id "NM_080869:uc002xnf.1";
+chr20 hg19_knownGene exon 43753010 43753106 0.000000 - . gene_id "WFDC12"; transcript_id "NM_080869:uc002xnf.1";
+chr20 hg19_knownGene CDS 43803564 43803642 0.000000 + 0 gene_id "PI3"; transcript_id "NM_002638:uc002xng.3";
+chr20 hg19_knownGene exon 43803540 43803642 0.000000 + . gene_id "PI3"; transcript_id "NM_002638:uc002xng.3";
+chr20 hg19_knownGene CDS 43804502 43804773 0.000000 + 2 gene_id "PI3"; transcript_id "NM_002638:uc002xng.3";
+chr20 hg19_knownGene exon 43804502 43804777 0.000000 + . gene_id "PI3"; transcript_id "NM_002638:uc002xng.3";
+chr20 hg19_knownGene exon 43805011 43805185 0.000000 + . gene_id "PI3"; transcript_id "NM_002638:uc002xng.3";
+chr20 hg19_knownGene CDS 43835695 43835770 0.000000 + 0 gene_id "SEMG1"; transcript_id "NM_003007:uc002xni.2";
+chr20 hg19_knownGene exon 43835638 43835770 0.000000 + . gene_id "SEMG1"; transcript_id "NM_003007:uc002xni.2";
+chr20 hg19_knownGene CDS 43836015 43837324 0.000000 + 2 gene_id "SEMG1"; transcript_id "NM_003007:uc002xni.2";
+chr20 hg19_knownGene exon 43836015 43837371 0.000000 + . gene_id "SEMG1"; transcript_id "NM_003007:uc002xni.2";
+chr20 hg19_knownGene exon 43838242 43838414 0.000000 + . gene_id "SEMG1"; transcript_id "NM_003007:uc002xni.2";
+chr20 hg19_knownGene CDS 43835695 43835770 0.000000 + 0 gene_id "SEMG1"; transcript_id "BC007096:uc002xnj.2";
+chr20 hg19_knownGene exon 43835638 43835770 0.000000 + . gene_id "SEMG1"; transcript_id "BC007096:uc002xnj.2";
+chr20 hg19_knownGene CDS 43836015 43836784 0.000000 + 2 gene_id "SEMG1"; transcript_id "BC007096:uc002xnj.2";
+chr20 hg19_knownGene exon 43836015 43836784 0.000000 + . gene_id "SEMG1"; transcript_id "BC007096:uc002xnj.2";
+chr20 hg19_knownGene CDS 43836965 43837324 0.000000 + 0 gene_id "SEMG1"; transcript_id "BC007096:uc002xnj.2";
+chr20 hg19_knownGene exon 43836965 43837371 0.000000 + . gene_id "SEMG1"; transcript_id "BC007096:uc002xnj.2";
+chr20 hg19_knownGene exon 43838242 43838414 0.000000 + . gene_id "SEMG1"; transcript_id "BC007096:uc002xnj.2";
+chr20 hg19_knownGene CDS 43835695 43835770 0.000000 + 0 gene_id "SEMG2"; transcript_id "AK291811:uc010ggz.3";
+chr20 hg19_knownGene exon 43835638 43835770 0.000000 + . gene_id "SEMG2"; transcript_id "AK291811:uc010ggz.3";
+chr20 hg19_knownGene CDS 43850350 43852019 0.000000 + 2 gene_id "SEMG2"; transcript_id "AK291811:uc010ggz.3";
+chr20 hg19_knownGene exon 43850350 43852066 0.000000 + . gene_id "SEMG2"; transcript_id "AK291811:uc010ggz.3";
+chr20 hg19_knownGene exon 43852932 43853099 0.000000 + . gene_id "SEMG2"; transcript_id "AK291811:uc010ggz.3";
+chr20 hg19_knownGene CDS 43850031 43850106 0.000000 + 0 gene_id "SEMG2"; transcript_id "NM_003008:uc002xnk.3";
+chr20 hg19_knownGene exon 43850010 43850106 0.000000 + . gene_id "SEMG2"; transcript_id "NM_003008:uc002xnk.3";
+chr20 hg19_knownGene CDS 43850350 43852019 0.000000 + 2 gene_id "SEMG2"; transcript_id "NM_003008:uc002xnk.3";
+chr20 hg19_knownGene exon 43850350 43852066 0.000000 + . gene_id "SEMG2"; transcript_id "NM_003008:uc002xnk.3";
+chr20 hg19_knownGene exon 43852932 43853099 0.000000 + . gene_id "SEMG2"; transcript_id "NM_003008:uc002xnk.3";
+chr20 hg19_knownGene CDS 43850031 43850106 0.000000 + 0 gene_id "SEMG2"; transcript_id "AX772816:uc002xnl.3";
+chr20 hg19_knownGene exon 43850010 43850106 0.000000 + . gene_id "SEMG2"; transcript_id "AX772816:uc002xnl.3";
+chr20 hg19_knownGene CDS 43850350 43851423 0.000000 + 2 gene_id "SEMG2"; transcript_id "AX772816:uc002xnl.3";
+chr20 hg19_knownGene exon 43850350 43851423 0.000000 + . gene_id "SEMG2"; transcript_id "AX772816:uc002xnl.3";
+chr20 hg19_knownGene CDS 43851784 43852019 0.000000 + 2 gene_id "SEMG2"; transcript_id "AX772816:uc002xnl.3";
+chr20 hg19_knownGene exon 43851784 43852066 0.000000 + . gene_id "SEMG2"; transcript_id "AX772816:uc002xnl.3";
+chr20 hg19_knownGene exon 43852932 43853099 0.000000 + . gene_id "SEMG2"; transcript_id "AX772816:uc002xnl.3";
+chr20 hg19_knownGene CDS 43881059 43881060 0.000000 - 2 gene_id "SLPI"; transcript_id "NM_003064:uc002xnm.1";
+chr20 hg19_knownGene exon 43880879 43881060 0.000000 - . gene_id "SLPI"; transcript_id "NM_003064:uc002xnm.1";
+chr20 hg19_knownGene CDS 43881643 43881792 0.000000 - 2 gene_id "SLPI"; transcript_id "NM_003064:uc002xnm.1";
+chr20 hg19_knownGene exon 43881643 43881792 0.000000 - . gene_id "SLPI"; transcript_id "NM_003064:uc002xnm.1";
+chr20 hg19_knownGene CDS 43882216 43882374 0.000000 - 2 gene_id "SLPI"; transcript_id "NM_003064:uc002xnm.1";
+chr20 hg19_knownGene exon 43882216 43882374 0.000000 - . gene_id "SLPI"; transcript_id "NM_003064:uc002xnm.1";
+chr20 hg19_knownGene CDS 43883100 43883184 0.000000 - 0 gene_id "SLPI"; transcript_id "NM_003064:uc002xnm.1";
+chr20 hg19_knownGene exon 43883100 43883206 0.000000 - . gene_id "SLPI"; transcript_id "NM_003064:uc002xnm.1";
+chr20 hg19_knownGene CDS 43922552 43922655 0.000000 - 2 gene_id "MATN4"; transcript_id "BC143625:uc010zwr.1";
+chr20 hg19_knownGene exon 43922548 43922655 0.000000 - . gene_id "MATN4"; transcript_id "BC143625:uc010zwr.1";
+chr20 hg19_knownGene CDS 43926558 43926710 0.000000 - 2 gene_id "MATN4"; transcript_id "BC143625:uc010zwr.1";
+chr20 hg19_knownGene exon 43926558 43926710 0.000000 - . gene_id "MATN4"; transcript_id "BC143625:uc010zwr.1";
+chr20 hg19_knownGene CDS 43926810 43927223 0.000000 - 2 gene_id "MATN4"; transcript_id "BC143625:uc010zwr.1";
+chr20 hg19_knownGene exon 43926810 43927223 0.000000 - . gene_id "MATN4"; transcript_id "BC143625:uc010zwr.1";
+chr20 hg19_knownGene CDS 43929527 43929649 0.000000 - 2 gene_id "MATN4"; transcript_id "BC143625:uc010zwr.1";
+chr20 hg19_knownGene exon 43929527 43929649 0.000000 - . gene_id "MATN4"; transcript_id "BC143625:uc010zwr.1";
+chr20 hg19_knownGene CDS 43929742 43929864 0.000000 - 2 gene_id "MATN4"; transcript_id "BC143625:uc010zwr.1";
+chr20 hg19_knownGene exon 43929742 43929864 0.000000 - . gene_id "MATN4"; transcript_id "BC143625:uc010zwr.1";
+chr20 hg19_knownGene CDS 43929961 43930083 0.000000 - 2 gene_id "MATN4"; transcript_id "BC143625:uc010zwr.1";
+chr20 hg19_knownGene exon 43929961 43930083 0.000000 - . gene_id "MATN4"; transcript_id "BC143625:uc010zwr.1";
+chr20 hg19_knownGene CDS 43932868 43933354 0.000000 - 0 gene_id "MATN4"; transcript_id "BC143625:uc010zwr.1";
+chr20 hg19_knownGene exon 43932868 43933388 0.000000 - . gene_id "MATN4"; transcript_id "BC143625:uc010zwr.1";
+chr20 hg19_knownGene exon 43934150 43934256 0.000000 - . gene_id "MATN4"; transcript_id "BC143625:uc010zwr.1";
+chr20 hg19_knownGene CDS 43922410 43922465 0.000000 - 2 gene_id "MATN4"; transcript_id "NM_003833:uc002xnn.2";
+chr20 hg19_knownGene exon 43922087 43922465 0.000000 - . gene_id "MATN4"; transcript_id "NM_003833:uc002xnn.2";
+chr20 hg19_knownGene CDS 43922548 43922655 0.000000 - 2 gene_id "MATN4"; transcript_id "NM_003833:uc002xnn.2";
+chr20 hg19_knownGene exon 43922548 43922655 0.000000 - . gene_id "MATN4"; transcript_id "NM_003833:uc002xnn.2";
+chr20 hg19_knownGene CDS 43926558 43926710 0.000000 - 2 gene_id "MATN4"; transcript_id "NM_003833:uc002xnn.2";
+chr20 hg19_knownGene exon 43926558 43926710 0.000000 - . gene_id "MATN4"; transcript_id "NM_003833:uc002xnn.2";
+chr20 hg19_knownGene CDS 43926810 43927223 0.000000 - 2 gene_id "MATN4"; transcript_id "NM_003833:uc002xnn.2";
+chr20 hg19_knownGene exon 43926810 43927223 0.000000 - . gene_id "MATN4"; transcript_id "NM_003833:uc002xnn.2";
+chr20 hg19_knownGene CDS 43929527 43929649 0.000000 - 2 gene_id "MATN4"; transcript_id "NM_003833:uc002xnn.2";
+chr20 hg19_knownGene exon 43929527 43929649 0.000000 - . gene_id "MATN4"; transcript_id "NM_003833:uc002xnn.2";
+chr20 hg19_knownGene CDS 43929742 43929864 0.000000 - 2 gene_id "MATN4"; transcript_id "NM_003833:uc002xnn.2";
+chr20 hg19_knownGene exon 43929742 43929864 0.000000 - . gene_id "MATN4"; transcript_id "NM_003833:uc002xnn.2";
+chr20 hg19_knownGene CDS 43929961 43930083 0.000000 - 2 gene_id "MATN4"; transcript_id "NM_003833:uc002xnn.2";
+chr20 hg19_knownGene exon 43929961 43930083 0.000000 - . gene_id "MATN4"; transcript_id "NM_003833:uc002xnn.2";
+chr20 hg19_knownGene CDS 43932868 43933437 0.000000 - 2 gene_id "MATN4"; transcript_id "NM_003833:uc002xnn.2";
+chr20 hg19_knownGene exon 43932868 43933437 0.000000 - . gene_id "MATN4"; transcript_id "NM_003833:uc002xnn.2";
+chr20 hg19_knownGene CDS 43934150 43934222 0.000000 - 0 gene_id "MATN4"; transcript_id "NM_003833:uc002xnn.2";
+chr20 hg19_knownGene exon 43934150 43934256 0.000000 - . gene_id "MATN4"; transcript_id "NM_003833:uc002xnn.2";
+chr20 hg19_knownGene exon 43936815 43936967 0.000000 - . gene_id "MATN4"; transcript_id "NM_003833:uc002xnn.2";
+chr20 hg19_knownGene CDS 43922410 43922465 0.000000 - 2 gene_id "MATN4"; transcript_id "NM_030590:uc002xno.2";
+chr20 hg19_knownGene exon 43922087 43922465 0.000000 - . gene_id "MATN4"; transcript_id "NM_030590:uc002xno.2";
+chr20 hg19_knownGene CDS 43922548 43922655 0.000000 - 2 gene_id "MATN4"; transcript_id "NM_030590:uc002xno.2";
+chr20 hg19_knownGene exon 43922548 43922655 0.000000 - . gene_id "MATN4"; transcript_id "NM_030590:uc002xno.2";
+chr20 hg19_knownGene CDS 43926558 43926710 0.000000 - 2 gene_id "MATN4"; transcript_id "NM_030590:uc002xno.2";
+chr20 hg19_knownGene exon 43926558 43926710 0.000000 - . gene_id "MATN4"; transcript_id "NM_030590:uc002xno.2";
+chr20 hg19_knownGene CDS 43926810 43927223 0.000000 - 2 gene_id "MATN4"; transcript_id "NM_030590:uc002xno.2";
+chr20 hg19_knownGene exon 43926810 43927223 0.000000 - . gene_id "MATN4"; transcript_id "NM_030590:uc002xno.2";
+chr20 hg19_knownGene CDS 43929527 43929649 0.000000 - 2 gene_id "MATN4"; transcript_id "NM_030590:uc002xno.2";
+chr20 hg19_knownGene exon 43929527 43929649 0.000000 - . gene_id "MATN4"; transcript_id "NM_030590:uc002xno.2";
+chr20 hg19_knownGene CDS 43929742 43929864 0.000000 - 2 gene_id "MATN4"; transcript_id "NM_030590:uc002xno.2";
+chr20 hg19_knownGene exon 43929742 43929864 0.000000 - . gene_id "MATN4"; transcript_id "NM_030590:uc002xno.2";
+chr20 hg19_knownGene CDS 43932868 43933437 0.000000 - 2 gene_id "MATN4"; transcript_id "NM_030590:uc002xno.2";
+chr20 hg19_knownGene exon 43932868 43933437 0.000000 - . gene_id "MATN4"; transcript_id "NM_030590:uc002xno.2";
+chr20 hg19_knownGene CDS 43934150 43934222 0.000000 - 0 gene_id "MATN4"; transcript_id "NM_030590:uc002xno.2";
+chr20 hg19_knownGene exon 43934150 43934256 0.000000 - . gene_id "MATN4"; transcript_id "NM_030590:uc002xno.2";
+chr20 hg19_knownGene exon 43936815 43936967 0.000000 - . gene_id "MATN4"; transcript_id "NM_030590:uc002xno.2";
+chr20 hg19_knownGene CDS 43922410 43922465 0.000000 - 2 gene_id "MATN4"; transcript_id "NM_030592:uc002xnp.2";
+chr20 hg19_knownGene exon 43922087 43922465 0.000000 - . gene_id "MATN4"; transcript_id "NM_030592:uc002xnp.2";
+chr20 hg19_knownGene CDS 43922548 43922655 0.000000 - 2 gene_id "MATN4"; transcript_id "NM_030592:uc002xnp.2";
+chr20 hg19_knownGene exon 43922548 43922655 0.000000 - . gene_id "MATN4"; transcript_id "NM_030592:uc002xnp.2";
+chr20 hg19_knownGene CDS 43926558 43926710 0.000000 - 2 gene_id "MATN4"; transcript_id "NM_030592:uc002xnp.2";
+chr20 hg19_knownGene exon 43926558 43926710 0.000000 - . gene_id "MATN4"; transcript_id "NM_030592:uc002xnp.2";
+chr20 hg19_knownGene CDS 43926810 43927223 0.000000 - 2 gene_id "MATN4"; transcript_id "NM_030592:uc002xnp.2";
+chr20 hg19_knownGene exon 43926810 43927223 0.000000 - . gene_id "MATN4"; transcript_id "NM_030592:uc002xnp.2";
+chr20 hg19_knownGene CDS 43929527 43929649 0.000000 - 2 gene_id "MATN4"; transcript_id "NM_030592:uc002xnp.2";
+chr20 hg19_knownGene exon 43929527 43929649 0.000000 - . gene_id "MATN4"; transcript_id "NM_030592:uc002xnp.2";
+chr20 hg19_knownGene CDS 43932868 43933437 0.000000 - 2 gene_id "MATN4"; transcript_id "NM_030592:uc002xnp.2";
+chr20 hg19_knownGene exon 43932868 43933437 0.000000 - . gene_id "MATN4"; transcript_id "NM_030592:uc002xnp.2";
+chr20 hg19_knownGene CDS 43934150 43934222 0.000000 - 0 gene_id "MATN4"; transcript_id "NM_030592:uc002xnp.2";
+chr20 hg19_knownGene exon 43934150 43934256 0.000000 - . gene_id "MATN4"; transcript_id "NM_030592:uc002xnp.2";
+chr20 hg19_knownGene exon 43936815 43936967 0.000000 - . gene_id "MATN4"; transcript_id "NM_030592:uc002xnp.2";
+chr20 hg19_knownGene CDS 43922552 43922655 0.000000 - 2 gene_id "MATN4"; transcript_id "AK074593:uc002xnr.1";
+chr20 hg19_knownGene exon 43922548 43922655 0.000000 - . gene_id "MATN4"; transcript_id "AK074593:uc002xnr.1";
+chr20 hg19_knownGene CDS 43926558 43926710 0.000000 - 2 gene_id "MATN4"; transcript_id "AK074593:uc002xnr.1";
+chr20 hg19_knownGene exon 43926558 43926710 0.000000 - . gene_id "MATN4"; transcript_id "AK074593:uc002xnr.1";
+chr20 hg19_knownGene CDS 43926810 43927223 0.000000 - 2 gene_id "MATN4"; transcript_id "AK074593:uc002xnr.1";
+chr20 hg19_knownGene exon 43926810 43927223 0.000000 - . gene_id "MATN4"; transcript_id "AK074593:uc002xnr.1";
+chr20 hg19_knownGene CDS 43929527 43929649 0.000000 - 2 gene_id "MATN4"; transcript_id "AK074593:uc002xnr.1";
+chr20 hg19_knownGene exon 43929527 43929649 0.000000 - . gene_id "MATN4"; transcript_id "AK074593:uc002xnr.1";
+chr20 hg19_knownGene CDS 43929742 43929864 0.000000 - 2 gene_id "MATN4"; transcript_id "AK074593:uc002xnr.1";
+chr20 hg19_knownGene exon 43929742 43929864 0.000000 - . gene_id "MATN4"; transcript_id "AK074593:uc002xnr.1";
+chr20 hg19_knownGene CDS 43929961 43930083 0.000000 - 2 gene_id "MATN4"; transcript_id "AK074593:uc002xnr.1";
+chr20 hg19_knownGene exon 43929961 43930083 0.000000 - . gene_id "MATN4"; transcript_id "AK074593:uc002xnr.1";
+chr20 hg19_knownGene CDS 43932868 43933437 0.000000 - 2 gene_id "MATN4"; transcript_id "AK074593:uc002xnr.1";
+chr20 hg19_knownGene exon 43932868 43933437 0.000000 - . gene_id "MATN4"; transcript_id "AK074593:uc002xnr.1";
+chr20 hg19_knownGene CDS 43934150 43934222 0.000000 - 0 gene_id "MATN4"; transcript_id "AK074593:uc002xnr.1";
+chr20 hg19_knownGene exon 43934150 43934256 0.000000 - . gene_id "MATN4"; transcript_id "AK074593:uc002xnr.1";
+chr20 hg19_knownGene exon 43936815 43936937 0.000000 - . gene_id "MATN4"; transcript_id "AK074593:uc002xnr.1";
+chr20 hg19_knownGene exon 43937082 43937169 0.000000 - . gene_id "MATN4"; transcript_id "AK074593:uc002xnr.1";
+chr20 hg19_knownGene CDS 43935563 43935584 0.000000 + 0 gene_id "RBPJL"; transcript_id "NM_014276:uc002xns.3";
+chr20 hg19_knownGene exon 43935491 43935584 0.000000 + . gene_id "RBPJL"; transcript_id "NM_014276:uc002xns.3";
+chr20 hg19_knownGene CDS 43936783 43936891 0.000000 + 2 gene_id "RBPJL"; transcript_id "NM_014276:uc002xns.3";
+chr20 hg19_knownGene exon 43936783 43936891 0.000000 + . gene_id "RBPJL"; transcript_id "NM_014276:uc002xns.3";
+chr20 hg19_knownGene CDS 43938207 43938332 0.000000 + 1 gene_id "RBPJL"; transcript_id "NM_014276:uc002xns.3";
+chr20 hg19_knownGene exon 43938207 43938332 0.000000 + . gene_id "RBPJL"; transcript_id "NM_014276:uc002xns.3";
+chr20 hg19_knownGene CDS 43940229 43940299 0.000000 + 1 gene_id "RBPJL"; transcript_id "NM_014276:uc002xns.3";
+chr20 hg19_knownGene exon 43940229 43940299 0.000000 + . gene_id "RBPJL"; transcript_id "NM_014276:uc002xns.3";
+chr20 hg19_knownGene CDS 43940479 43940594 0.000000 + 2 gene_id "RBPJL"; transcript_id "NM_014276:uc002xns.3";
+chr20 hg19_knownGene exon 43940479 43940594 0.000000 + . gene_id "RBPJL"; transcript_id "NM_014276:uc002xns.3";
+chr20 hg19_knownGene CDS 43940861 43941035 0.000000 + 0 gene_id "RBPJL"; transcript_id "NM_014276:uc002xns.3";
+chr20 hg19_knownGene exon 43940861 43941035 0.000000 + . gene_id "RBPJL"; transcript_id "NM_014276:uc002xns.3";
+chr20 hg19_knownGene CDS 43942108 43942245 0.000000 + 2 gene_id "RBPJL"; transcript_id "NM_014276:uc002xns.3";
+chr20 hg19_knownGene exon 43942108 43942245 0.000000 + . gene_id "RBPJL"; transcript_id "NM_014276:uc002xns.3";
+chr20 hg19_knownGene CDS 43942675 43942784 0.000000 + 2 gene_id "RBPJL"; transcript_id "NM_014276:uc002xns.3";
+chr20 hg19_knownGene exon 43942675 43942784 0.000000 + . gene_id "RBPJL"; transcript_id "NM_014276:uc002xns.3";
+chr20 hg19_knownGene CDS 43943053 43943205 0.000000 + 0 gene_id "RBPJL"; transcript_id "NM_014276:uc002xns.3";
+chr20 hg19_knownGene exon 43943053 43943205 0.000000 + . gene_id "RBPJL"; transcript_id "NM_014276:uc002xns.3";
+chr20 hg19_knownGene CDS 43944827 43944982 0.000000 + 0 gene_id "RBPJL"; transcript_id "NM_014276:uc002xns.3";
+chr20 hg19_knownGene exon 43944827 43944982 0.000000 + . gene_id "RBPJL"; transcript_id "NM_014276:uc002xns.3";
+chr20 hg19_knownGene CDS 43945117 43945220 0.000000 + 0 gene_id "RBPJL"; transcript_id "NM_014276:uc002xns.3";
+chr20 hg19_knownGene exon 43945117 43945220 0.000000 + . gene_id "RBPJL"; transcript_id "NM_014276:uc002xns.3";
+chr20 hg19_knownGene CDS 43945326 43945596 0.000000 + 1 gene_id "RBPJL"; transcript_id "NM_014276:uc002xns.3";
+chr20 hg19_knownGene exon 43945326 43946464 0.000000 + . gene_id "RBPJL"; transcript_id "NM_014276:uc002xns.3";
+chr20 hg19_knownGene CDS 43935563 43935584 0.000000 + 0 gene_id "RBPJL"; transcript_id "AB026048:uc002xnt.3";
+chr20 hg19_knownGene exon 43935491 43935584 0.000000 + . gene_id "RBPJL"; transcript_id "AB026048:uc002xnt.3";
+chr20 hg19_knownGene CDS 43936783 43936891 0.000000 + 2 gene_id "RBPJL"; transcript_id "AB026048:uc002xnt.3";
+chr20 hg19_knownGene exon 43936783 43936891 0.000000 + . gene_id "RBPJL"; transcript_id "AB026048:uc002xnt.3";
+chr20 hg19_knownGene CDS 43938207 43938332 0.000000 + 1 gene_id "RBPJL"; transcript_id "AB026048:uc002xnt.3";
+chr20 hg19_knownGene exon 43938207 43938332 0.000000 + . gene_id "RBPJL"; transcript_id "AB026048:uc002xnt.3";
+chr20 hg19_knownGene CDS 43940229 43940299 0.000000 + 1 gene_id "RBPJL"; transcript_id "AB026048:uc002xnt.3";
+chr20 hg19_knownGene exon 43940229 43940299 0.000000 + . gene_id "RBPJL"; transcript_id "AB026048:uc002xnt.3";
+chr20 hg19_knownGene CDS 43940479 43940594 0.000000 + 2 gene_id "RBPJL"; transcript_id "AB026048:uc002xnt.3";
+chr20 hg19_knownGene exon 43940479 43940594 0.000000 + . gene_id "RBPJL"; transcript_id "AB026048:uc002xnt.3";
+chr20 hg19_knownGene CDS 43940861 43941035 0.000000 + 0 gene_id "RBPJL"; transcript_id "AB026048:uc002xnt.3";
+chr20 hg19_knownGene exon 43940861 43941035 0.000000 + . gene_id "RBPJL"; transcript_id "AB026048:uc002xnt.3";
+chr20 hg19_knownGene CDS 43942108 43942245 0.000000 + 2 gene_id "RBPJL"; transcript_id "AB026048:uc002xnt.3";
+chr20 hg19_knownGene exon 43942108 43942245 0.000000 + . gene_id "RBPJL"; transcript_id "AB026048:uc002xnt.3";
+chr20 hg19_knownGene CDS 43942675 43942784 0.000000 + 2 gene_id "RBPJL"; transcript_id "AB026048:uc002xnt.3";
+chr20 hg19_knownGene exon 43942675 43942784 0.000000 + . gene_id "RBPJL"; transcript_id "AB026048:uc002xnt.3";
+chr20 hg19_knownGene CDS 43943053 43943205 0.000000 + 0 gene_id "RBPJL"; transcript_id "AB026048:uc002xnt.3";
+chr20 hg19_knownGene exon 43943053 43943205 0.000000 + . gene_id "RBPJL"; transcript_id "AB026048:uc002xnt.3";
+chr20 hg19_knownGene CDS 43944827 43944982 0.000000 + 0 gene_id "RBPJL"; transcript_id "AB026048:uc002xnt.3";
+chr20 hg19_knownGene exon 43944827 43944982 0.000000 + . gene_id "RBPJL"; transcript_id "AB026048:uc002xnt.3";
+chr20 hg19_knownGene CDS 43945117 43945230 0.000000 + 0 gene_id "RBPJL"; transcript_id "AB026048:uc002xnt.3";
+chr20 hg19_knownGene exon 43945117 43945230 0.000000 + . gene_id "RBPJL"; transcript_id "AB026048:uc002xnt.3";
+chr20 hg19_knownGene CDS 43945326 43945448 0.000000 + 0 gene_id "RBPJL"; transcript_id "AB026048:uc002xnt.3";
+chr20 hg19_knownGene exon 43945326 43946464 0.000000 + . gene_id "RBPJL"; transcript_id "AB026048:uc002xnt.3";
+chr20 hg19_knownGene exon 43951001 43951073 0.000000 + . gene_id "TRNA_Pseudo"; transcript_id ":uc021weg.1";
+chr20 hg19_knownGene CDS 43955907 43956055 0.000000 - 2 gene_id "SDC4"; transcript_id "NM_002999:uc002xnu.3";
+chr20 hg19_knownGene exon 43953929 43956055 0.000000 - . gene_id "SDC4"; transcript_id "NM_002999:uc002xnu.3";
+chr20 hg19_knownGene CDS 43959006 43959204 0.000000 - 0 gene_id "SDC4"; transcript_id "NM_002999:uc002xnu.3";
+chr20 hg19_knownGene exon 43959006 43959204 0.000000 - . gene_id "SDC4"; transcript_id "NM_002999:uc002xnu.3";
+chr20 hg19_knownGene CDS 43961663 43961709 0.000000 - 2 gene_id "SDC4"; transcript_id "NM_002999:uc002xnu.3";
+chr20 hg19_knownGene exon 43961663 43961709 0.000000 - . gene_id "SDC4"; transcript_id "NM_002999:uc002xnu.3";
+chr20 hg19_knownGene CDS 43964422 43964560 0.000000 - 0 gene_id "SDC4"; transcript_id "NM_002999:uc002xnu.3";
+chr20 hg19_knownGene exon 43964422 43964560 0.000000 - . gene_id "SDC4"; transcript_id "NM_002999:uc002xnu.3";
+chr20 hg19_knownGene CDS 43976965 43977024 0.000000 - 0 gene_id "SDC4"; transcript_id "NM_002999:uc002xnu.3";
+chr20 hg19_knownGene exon 43976965 43977064 0.000000 - . gene_id "SDC4"; transcript_id "NM_002999:uc002xnu.3";
+chr20 hg19_knownGene CDS 43955907 43956055 0.000000 - 2 gene_id "SDC4"; transcript_id "AK303964:uc010zws.2";
+chr20 hg19_knownGene exon 43953929 43956055 0.000000 - . gene_id "SDC4"; transcript_id "AK303964:uc010zws.2";
+chr20 hg19_knownGene CDS 43959006 43959204 0.000000 - 0 gene_id "SDC4"; transcript_id "AK303964:uc010zws.2";
+chr20 hg19_knownGene exon 43959006 43959204 0.000000 - . gene_id "SDC4"; transcript_id "AK303964:uc010zws.2";
+chr20 hg19_knownGene CDS 43961663 43961692 0.000000 - 0 gene_id "SDC4"; transcript_id "AK303964:uc010zws.2";
+chr20 hg19_knownGene exon 43961663 43961709 0.000000 - . gene_id "SDC4"; transcript_id "AK303964:uc010zws.2";
+chr20 hg19_knownGene exon 43976965 43977064 0.000000 - . gene_id "SDC4"; transcript_id "AK303964:uc010zws.2";
+chr20 hg19_knownGene exon 43990577 43990669 0.000000 + . gene_id "SYS1"; transcript_id "NM_001197129:uc021weh.1";
+chr20 hg19_knownGene exon 43991809 43991955 0.000000 + . gene_id "SYS1"; transcript_id "NM_001197129:uc021weh.1";
+chr20 hg19_knownGene CDS 43992172 43992333 0.000000 + 0 gene_id "SYS1"; transcript_id "NM_001197129:uc021weh.1";
+chr20 hg19_knownGene exon 43992169 43992333 0.000000 + . gene_id "SYS1"; transcript_id "NM_001197129:uc021weh.1";
+chr20 hg19_knownGene CDS 43994259 43994326 0.000000 + 0 gene_id "SYS1"; transcript_id "NM_001197129:uc021weh.1";
+chr20 hg19_knownGene exon 43994259 43994326 0.000000 + . gene_id "SYS1"; transcript_id "NM_001197129:uc021weh.1";
+chr20 hg19_knownGene CDS 43995515 43995752 0.000000 + 1 gene_id "SYS1"; transcript_id "NM_001197129:uc021weh.1";
+chr20 hg19_knownGene exon 43995515 43997862 0.000000 + . gene_id "SYS1"; transcript_id "NM_001197129:uc021weh.1";
+chr20 hg19_knownGene exon 43991740 43991955 0.000000 + . gene_id "SYS1"; transcript_id "NM_033542:uc002xnv.3";
+chr20 hg19_knownGene CDS 43992172 43992333 0.000000 + 0 gene_id "SYS1"; transcript_id "NM_033542:uc002xnv.3";
+chr20 hg19_knownGene exon 43992169 43992333 0.000000 + . gene_id "SYS1"; transcript_id "NM_033542:uc002xnv.3";
+chr20 hg19_knownGene CDS 43994259 43994326 0.000000 + 0 gene_id "SYS1"; transcript_id "NM_033542:uc002xnv.3";
+chr20 hg19_knownGene exon 43994259 43994326 0.000000 + . gene_id "SYS1"; transcript_id "NM_033542:uc002xnv.3";
+chr20 hg19_knownGene CDS 43995515 43995752 0.000000 + 1 gene_id "SYS1"; transcript_id "NM_033542:uc002xnv.3";
+chr20 hg19_knownGene exon 43995515 43997862 0.000000 + . gene_id "SYS1"; transcript_id "NM_033542:uc002xnv.3";
+chr20 hg19_knownGene exon 43991809 43991955 0.000000 + . gene_id "SYS1"; transcript_id "AK309429:uc010gha.3";
+chr20 hg19_knownGene exon 43992169 43992333 0.000000 + . gene_id "SYS1"; transcript_id "AK309429:uc010gha.3";
+chr20 hg19_knownGene exon 43994187 43994326 0.000000 + . gene_id "SYS1"; transcript_id "AK309429:uc010gha.3";
+chr20 hg19_knownGene exon 43995515 43997862 0.000000 + . gene_id "SYS1"; transcript_id "AK309429:uc010gha.3";
+chr20 hg19_knownGene exon 43991740 43991955 0.000000 + . gene_id "SYS1"; transcript_id "NM_001099791:uc002xnw.2";
+chr20 hg19_knownGene CDS 43992172 43992333 0.000000 + 0 gene_id "SYS1"; transcript_id "NM_001099791:uc002xnw.2";
+chr20 hg19_knownGene exon 43992169 43992333 0.000000 + . gene_id "SYS1"; transcript_id "NM_001099791:uc002xnw.2";
+chr20 hg19_knownGene CDS 43994259 43994324 0.000000 + 0 gene_id "SYS1"; transcript_id "NM_001099791:uc002xnw.2";
+chr20 hg19_knownGene exon 43994259 43994326 0.000000 + . gene_id "SYS1"; transcript_id "NM_001099791:uc002xnw.2";
+chr20 hg19_knownGene exon 44002934 44005442 0.000000 + . gene_id "SYS1"; transcript_id "NM_001099791:uc002xnw.2";
+chr20 hg19_knownGene CDS 44002550 44002651 0.000000 - 0 gene_id "TP53TG5"; transcript_id "NM_014477:uc002xny.3";
+chr20 hg19_knownGene exon 44002520 44002651 0.000000 - . gene_id "TP53TG5"; transcript_id "NM_014477:uc002xny.3";
+chr20 hg19_knownGene CDS 44003679 44004192 0.000000 - 1 gene_id "TP53TG5"; transcript_id "NM_014477:uc002xny.3";
+chr20 hg19_knownGene exon 44003679 44004192 0.000000 - . gene_id "TP53TG5"; transcript_id "NM_014477:uc002xny.3";
+chr20 hg19_knownGene CDS 44005852 44005982 0.000000 - 0 gene_id "TP53TG5"; transcript_id "NM_014477:uc002xny.3";
+chr20 hg19_knownGene exon 44005852 44005982 0.000000 - . gene_id "TP53TG5"; transcript_id "NM_014477:uc002xny.3";
+chr20 hg19_knownGene CDS 44006179 44006253 0.000000 - 0 gene_id "TP53TG5"; transcript_id "NM_014477:uc002xny.3";
+chr20 hg19_knownGene exon 44006179 44006253 0.000000 - . gene_id "TP53TG5"; transcript_id "NM_014477:uc002xny.3";
+chr20 hg19_knownGene CDS 44006829 44006876 0.000000 - 0 gene_id "TP53TG5"; transcript_id "NM_014477:uc002xny.3";
+chr20 hg19_knownGene exon 44006829 44006957 0.000000 - . gene_id "TP53TG5"; transcript_id "NM_014477:uc002xny.3";
+chr20 hg19_knownGene exon 43991809 43991955 0.000000 + . gene_id "DBNDD2"; transcript_id "NR_003189:uc002xnx.3";
+chr20 hg19_knownGene exon 43992169 43992333 0.000000 + . gene_id "DBNDD2"; transcript_id "NR_003189:uc002xnx.3";
+chr20 hg19_knownGene exon 43994259 43994326 0.000000 + . gene_id "DBNDD2"; transcript_id "NR_003189:uc002xnx.3";
+chr20 hg19_knownGene CDS 44037108 44037246 0.000000 + 0 gene_id "DBNDD2"; transcript_id "NR_003189:uc002xnx.3";
+chr20 hg19_knownGene exon 44037100 44037246 0.000000 + . gene_id "DBNDD2"; transcript_id "NR_003189:uc002xnx.3";
+chr20 hg19_knownGene CDS 44037441 44037578 0.000000 + 2 gene_id "DBNDD2"; transcript_id "NR_003189:uc002xnx.3";
+chr20 hg19_knownGene exon 44037441 44037578 0.000000 + . gene_id "DBNDD2"; transcript_id "NR_003189:uc002xnx.3";
+chr20 hg19_knownGene CDS 44038572 44038777 0.000000 + 2 gene_id "DBNDD2"; transcript_id "NR_003189:uc002xnx.3";
+chr20 hg19_knownGene exon 44038572 44039250 0.000000 + . gene_id "DBNDD2"; transcript_id "NR_003189:uc002xnx.3";
+chr20 hg19_knownGene exon 44034633 44034661 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_001197139:uc021wei.1";
+chr20 hg19_knownGene CDS 44037108 44037246 0.000000 + 0 gene_id "DBNDD2"; transcript_id "NM_001197139:uc021wei.1";
+chr20 hg19_knownGene exon 44037100 44037246 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_001197139:uc021wei.1";
+chr20 hg19_knownGene CDS 44037441 44037578 0.000000 + 2 gene_id "DBNDD2"; transcript_id "NM_001197139:uc021wei.1";
+chr20 hg19_knownGene exon 44037441 44037578 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_001197139:uc021wei.1";
+chr20 hg19_knownGene CDS 44038572 44038777 0.000000 + 2 gene_id "DBNDD2"; transcript_id "NM_001197139:uc021wei.1";
+chr20 hg19_knownGene exon 44038572 44039250 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_001197139:uc021wei.1";
+chr20 hg19_knownGene exon 44034655 44034850 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_001048221:uc002xnz.3";
+chr20 hg19_knownGene CDS 44037108 44037246 0.000000 + 0 gene_id "DBNDD2"; transcript_id "NM_001048221:uc002xnz.3";
+chr20 hg19_knownGene exon 44037100 44037246 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_001048221:uc002xnz.3";
+chr20 hg19_knownGene CDS 44037441 44037578 0.000000 + 2 gene_id "DBNDD2"; transcript_id "NM_001048221:uc002xnz.3";
+chr20 hg19_knownGene exon 44037441 44037578 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_001048221:uc002xnz.3";
+chr20 hg19_knownGene CDS 44038572 44038777 0.000000 + 2 gene_id "DBNDD2"; transcript_id "NM_001048221:uc002xnz.3";
+chr20 hg19_knownGene exon 44038572 44039250 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_001048221:uc002xnz.3";
+chr20 hg19_knownGene exon 44034655 44034850 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_001048222:uc002xoa.3";
+chr20 hg19_knownGene CDS 44037108 44037246 0.000000 + 0 gene_id "DBNDD2"; transcript_id "NM_001048222:uc002xoa.3";
+chr20 hg19_knownGene exon 44037100 44037246 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_001048222:uc002xoa.3";
+chr20 hg19_knownGene CDS 44037441 44037637 0.000000 + 2 gene_id "DBNDD2"; transcript_id "NM_001048222:uc002xoa.3";
+chr20 hg19_knownGene exon 44037441 44037676 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_001048222:uc002xoa.3";
+chr20 hg19_knownGene exon 44038572 44039250 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_001048222:uc002xoa.3";
+chr20 hg19_knownGene exon 44034821 44034895 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_001197140:uc021wej.1";
+chr20 hg19_knownGene CDS 44037108 44037246 0.000000 + 0 gene_id "DBNDD2"; transcript_id "NM_001197140:uc021wej.1";
+chr20 hg19_knownGene exon 44037100 44037246 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_001197140:uc021wej.1";
+chr20 hg19_knownGene CDS 44037441 44037578 0.000000 + 2 gene_id "DBNDD2"; transcript_id "NM_001197140:uc021wej.1";
+chr20 hg19_knownGene exon 44037441 44037578 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_001197140:uc021wej.1";
+chr20 hg19_knownGene CDS 44038572 44038777 0.000000 + 2 gene_id "DBNDD2"; transcript_id "NM_001197140:uc021wej.1";
+chr20 hg19_knownGene exon 44038572 44039250 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_001197140:uc021wej.1";
+chr20 hg19_knownGene CDS 44035092 44035250 0.000000 + 0 gene_id "DBNDD2"; transcript_id "NM_018478:uc002xob.3";
+chr20 hg19_knownGene exon 44034861 44035250 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_018478:uc002xob.3";
+chr20 hg19_knownGene CDS 44036973 44037246 0.000000 + 0 gene_id "DBNDD2"; transcript_id "NM_018478:uc002xob.3";
+chr20 hg19_knownGene exon 44036973 44037246 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_018478:uc002xob.3";
+chr20 hg19_knownGene CDS 44037441 44037578 0.000000 + 2 gene_id "DBNDD2"; transcript_id "NM_018478:uc002xob.3";
+chr20 hg19_knownGene exon 44037441 44037578 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_018478:uc002xob.3";
+chr20 hg19_knownGene CDS 44038572 44038777 0.000000 + 2 gene_id "DBNDD2"; transcript_id "NM_018478:uc002xob.3";
+chr20 hg19_knownGene exon 44038572 44039250 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_018478:uc002xob.3";
+chr20 hg19_knownGene exon 44035228 44035372 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_001048223:uc002xoc.3";
+chr20 hg19_knownGene CDS 44037108 44037246 0.000000 + 0 gene_id "DBNDD2"; transcript_id "NM_001048223:uc002xoc.3";
+chr20 hg19_knownGene exon 44037100 44037246 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_001048223:uc002xoc.3";
+chr20 hg19_knownGene CDS 44037441 44037578 0.000000 + 2 gene_id "DBNDD2"; transcript_id "NM_001048223:uc002xoc.3";
+chr20 hg19_knownGene exon 44037441 44037578 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_001048223:uc002xoc.3";
+chr20 hg19_knownGene CDS 44038572 44038777 0.000000 + 2 gene_id "DBNDD2"; transcript_id "NM_001048223:uc002xoc.3";
+chr20 hg19_knownGene exon 44038572 44039250 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_001048223:uc002xoc.3";
+chr20 hg19_knownGene exon 44035228 44035372 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_001048224:uc002xod.3";
+chr20 hg19_knownGene CDS 44037108 44037246 0.000000 + 0 gene_id "DBNDD2"; transcript_id "NM_001048224:uc002xod.3";
+chr20 hg19_knownGene exon 44037100 44037246 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_001048224:uc002xod.3";
+chr20 hg19_knownGene CDS 44037441 44037637 0.000000 + 2 gene_id "DBNDD2"; transcript_id "NM_001048224:uc002xod.3";
+chr20 hg19_knownGene exon 44037441 44037676 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_001048224:uc002xod.3";
+chr20 hg19_knownGene exon 44038572 44039250 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_001048224:uc002xod.3";
+chr20 hg19_knownGene CDS 44036802 44037246 0.000000 + 0 gene_id "DBNDD2"; transcript_id "NM_001048226:uc002xog.3";
+chr20 hg19_knownGene exon 44036629 44037246 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_001048226:uc002xog.3";
+chr20 hg19_knownGene CDS 44037441 44037637 0.000000 + 2 gene_id "DBNDD2"; transcript_id "NM_001048226:uc002xog.3";
+chr20 hg19_knownGene exon 44037441 44037676 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_001048226:uc002xog.3";
+chr20 hg19_knownGene exon 44038572 44039250 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_001048226:uc002xog.3";
+chr20 hg19_knownGene CDS 44036802 44037246 0.000000 + 0 gene_id "DBNDD2"; transcript_id "NM_001048225:uc002xof.3";
+chr20 hg19_knownGene exon 44036629 44037246 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_001048225:uc002xof.3";
+chr20 hg19_knownGene CDS 44037441 44037578 0.000000 + 2 gene_id "DBNDD2"; transcript_id "NM_001048225:uc002xof.3";
+chr20 hg19_knownGene exon 44037441 44037578 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_001048225:uc002xof.3";
+chr20 hg19_knownGene CDS 44038572 44038777 0.000000 + 2 gene_id "DBNDD2"; transcript_id "NM_001048225:uc002xof.3";
+chr20 hg19_knownGene exon 44038572 44039250 0.000000 + . gene_id "DBNDD2"; transcript_id "NM_001048225:uc002xof.3";
+chr20 hg19_knownGene CDS 44044797 44044983 0.000000 + 0 gene_id "PIGT"; transcript_id "AK311492:uc010ghb.2";
+chr20 hg19_knownGene exon 44044707 44044983 0.000000 + . gene_id "PIGT"; transcript_id "AK311492:uc010ghb.2";
+chr20 hg19_knownGene CDS 44045157 44045304 0.000000 + 2 gene_id "PIGT"; transcript_id "AK311492:uc010ghb.2";
+chr20 hg19_knownGene exon 44045157 44045304 0.000000 + . gene_id "PIGT"; transcript_id "AK311492:uc010ghb.2";
+chr20 hg19_knownGene CDS 44047492 44047619 0.000000 + 1 gene_id "PIGT"; transcript_id "AK311492:uc010ghb.2";
+chr20 hg19_knownGene exon 44047492 44047619 0.000000 + . gene_id "PIGT"; transcript_id "AK311492:uc010ghb.2";
+chr20 hg19_knownGene CDS 44047935 44048035 0.000000 + 2 gene_id "PIGT"; transcript_id "AK311492:uc010ghb.2";
+chr20 hg19_knownGene exon 44047935 44048035 0.000000 + . gene_id "PIGT"; transcript_id "AK311492:uc010ghb.2";
+chr20 hg19_knownGene CDS 44048144 44048230 0.000000 + 0 gene_id "PIGT"; transcript_id "AK311492:uc010ghb.2";
+chr20 hg19_knownGene exon 44048144 44048230 0.000000 + . gene_id "PIGT"; transcript_id "AK311492:uc010ghb.2";
+chr20 hg19_knownGene CDS 44048776 44048863 0.000000 + 0 gene_id "PIGT"; transcript_id "AK311492:uc010ghb.2";
+chr20 hg19_knownGene exon 44048776 44048863 0.000000 + . gene_id "PIGT"; transcript_id "AK311492:uc010ghb.2";
+chr20 hg19_knownGene CDS 44048972 44049069 0.000000 + 2 gene_id "PIGT"; transcript_id "AK311492:uc010ghb.2";
+chr20 hg19_knownGene exon 44048972 44049069 0.000000 + . gene_id "PIGT"; transcript_id "AK311492:uc010ghb.2";
+chr20 hg19_knownGene CDS 44049168 44049329 0.000000 + 0 gene_id "PIGT"; transcript_id "AK311492:uc010ghb.2";
+chr20 hg19_knownGene exon 44049168 44049333 0.000000 + . gene_id "PIGT"; transcript_id "AK311492:uc010ghb.2";
+chr20 hg19_knownGene exon 44044707 44044983 0.000000 + . gene_id "PIGT"; transcript_id "AK301815:uc010zwt.2";
+chr20 hg19_knownGene exon 44045157 44045334 0.000000 + . gene_id "PIGT"; transcript_id "AK301815:uc010zwt.2";
+chr20 hg19_knownGene exon 44047935 44048035 0.000000 + . gene_id "PIGT"; transcript_id "AK301815:uc010zwt.2";
+chr20 hg19_knownGene exon 44048144 44048230 0.000000 + . gene_id "PIGT"; transcript_id "AK301815:uc010zwt.2";
+chr20 hg19_knownGene exon 44048776 44048863 0.000000 + . gene_id "PIGT"; transcript_id "AK301815:uc010zwt.2";
+chr20 hg19_knownGene exon 44048972 44049069 0.000000 + . gene_id "PIGT"; transcript_id "AK301815:uc010zwt.2";
+chr20 hg19_knownGene exon 44049168 44049333 0.000000 + . gene_id "PIGT"; transcript_id "AK301815:uc010zwt.2";
+chr20 hg19_knownGene CDS 44044797 44044983 0.000000 + 0 gene_id "PIGT"; transcript_id "AK311416:uc010ghd.2";
+chr20 hg19_knownGene exon 44044707 44044983 0.000000 + . gene_id "PIGT"; transcript_id "AK311416:uc010ghd.2";
+chr20 hg19_knownGene CDS 44047492 44047619 0.000000 + 2 gene_id "PIGT"; transcript_id "AK311416:uc010ghd.2";
+chr20 hg19_knownGene exon 44047492 44047619 0.000000 + . gene_id "PIGT"; transcript_id "AK311416:uc010ghd.2";
+chr20 hg19_knownGene CDS 44048144 44048230 0.000000 + 0 gene_id "PIGT"; transcript_id "AK311416:uc010ghd.2";
+chr20 hg19_knownGene exon 44048144 44048230 0.000000 + . gene_id "PIGT"; transcript_id "AK311416:uc010ghd.2";
+chr20 hg19_knownGene CDS 44048776 44048863 0.000000 + 0 gene_id "PIGT"; transcript_id "AK311416:uc010ghd.2";
+chr20 hg19_knownGene exon 44048776 44048863 0.000000 + . gene_id "PIGT"; transcript_id "AK311416:uc010ghd.2";
+chr20 hg19_knownGene CDS 44048972 44049069 0.000000 + 2 gene_id "PIGT"; transcript_id "AK311416:uc010ghd.2";
+chr20 hg19_knownGene exon 44048972 44049069 0.000000 + . gene_id "PIGT"; transcript_id "AK311416:uc010ghd.2";
+chr20 hg19_knownGene CDS 44049168 44049333 0.000000 + 0 gene_id "PIGT"; transcript_id "AK311416:uc010ghd.2";
+chr20 hg19_knownGene exon 44049168 44049333 0.000000 + . gene_id "PIGT"; transcript_id "AK311416:uc010ghd.2";
+chr20 hg19_knownGene CDS 44050023 44050219 0.000000 + 2 gene_id "PIGT"; transcript_id "AK311416:uc010ghd.2";
+chr20 hg19_knownGene exon 44050023 44050223 0.000000 + . gene_id "PIGT"; transcript_id "AK311416:uc010ghd.2";
+chr20 hg19_knownGene exon 44044707 44044983 0.000000 + . gene_id "PIGT"; transcript_id "AK311520:uc010ghc.2";
+chr20 hg19_knownGene exon 44045157 44045334 0.000000 + . gene_id "PIGT"; transcript_id "AK311520:uc010ghc.2";
+chr20 hg19_knownGene exon 44048144 44048230 0.000000 + . gene_id "PIGT"; transcript_id "AK311520:uc010ghc.2";
+chr20 hg19_knownGene exon 44048776 44048863 0.000000 + . gene_id "PIGT"; transcript_id "AK311520:uc010ghc.2";
+chr20 hg19_knownGene exon 44048972 44049069 0.000000 + . gene_id "PIGT"; transcript_id "AK311520:uc010ghc.2";
+chr20 hg19_knownGene exon 44049168 44049333 0.000000 + . gene_id "PIGT"; transcript_id "AK311520:uc010ghc.2";
+chr20 hg19_knownGene exon 44050023 44050223 0.000000 + . gene_id "PIGT"; transcript_id "AK311520:uc010ghc.2";
+chr20 hg19_knownGene CDS 44044797 44044983 0.000000 + 0 gene_id "PIGT"; transcript_id "AK311522:uc010ghe.2";
+chr20 hg19_knownGene exon 44044707 44044983 0.000000 + . gene_id "PIGT"; transcript_id "AK311522:uc010ghe.2";
+chr20 hg19_knownGene CDS 44045157 44045334 0.000000 + 2 gene_id "PIGT"; transcript_id "AK311522:uc010ghe.2";
+chr20 hg19_knownGene exon 44045157 44045334 0.000000 + . gene_id "PIGT"; transcript_id "AK311522:uc010ghe.2";
+chr20 hg19_knownGene CDS 44047918 44048035 0.000000 + 1 gene_id "PIGT"; transcript_id "AK311522:uc010ghe.2";
+chr20 hg19_knownGene exon 44047918 44048035 0.000000 + . gene_id "PIGT"; transcript_id "AK311522:uc010ghe.2";
+chr20 hg19_knownGene CDS 44048144 44048230 0.000000 + 0 gene_id "PIGT"; transcript_id "AK311522:uc010ghe.2";
+chr20 hg19_knownGene exon 44048144 44048230 0.000000 + . gene_id "PIGT"; transcript_id "AK311522:uc010ghe.2";
+chr20 hg19_knownGene CDS 44048776 44048863 0.000000 + 0 gene_id "PIGT"; transcript_id "AK311522:uc010ghe.2";
+chr20 hg19_knownGene exon 44048776 44048863 0.000000 + . gene_id "PIGT"; transcript_id "AK311522:uc010ghe.2";
+chr20 hg19_knownGene CDS 44048972 44049069 0.000000 + 2 gene_id "PIGT"; transcript_id "AK311522:uc010ghe.2";
+chr20 hg19_knownGene exon 44048972 44049069 0.000000 + . gene_id "PIGT"; transcript_id "AK311522:uc010ghe.2";
+chr20 hg19_knownGene CDS 44049168 44049333 0.000000 + 0 gene_id "PIGT"; transcript_id "AK311522:uc010ghe.2";
+chr20 hg19_knownGene exon 44049168 44049333 0.000000 + . gene_id "PIGT"; transcript_id "AK311522:uc010ghe.2";
+chr20 hg19_knownGene CDS 44050023 44050219 0.000000 + 2 gene_id "PIGT"; transcript_id "AK311522:uc010ghe.2";
+chr20 hg19_knownGene exon 44050023 44050223 0.000000 + . gene_id "PIGT"; transcript_id "AK311522:uc010ghe.2";
+chr20 hg19_knownGene CDS 44044797 44044983 0.000000 + 0 gene_id "PIGT"; transcript_id "AK311100:uc010ghf.2";
+chr20 hg19_knownGene exon 44044707 44044983 0.000000 + . gene_id "PIGT"; transcript_id "AK311100:uc010ghf.2";
+chr20 hg19_knownGene CDS 44045157 44045294 0.000000 + 2 gene_id "PIGT"; transcript_id "AK311100:uc010ghf.2";
+chr20 hg19_knownGene exon 44045157 44045294 0.000000 + . gene_id "PIGT"; transcript_id "AK311100:uc010ghf.2";
+chr20 hg19_knownGene CDS 44047492 44047619 0.000000 + 2 gene_id "PIGT"; transcript_id "AK311100:uc010ghf.2";
+chr20 hg19_knownGene exon 44047492 44047619 0.000000 + . gene_id "PIGT"; transcript_id "AK311100:uc010ghf.2";
+chr20 hg19_knownGene CDS 44048144 44048230 0.000000 + 0 gene_id "PIGT"; transcript_id "AK311100:uc010ghf.2";
+chr20 hg19_knownGene exon 44048144 44048230 0.000000 + . gene_id "PIGT"; transcript_id "AK311100:uc010ghf.2";
+chr20 hg19_knownGene CDS 44048776 44048863 0.000000 + 0 gene_id "PIGT"; transcript_id "AK311100:uc010ghf.2";
+chr20 hg19_knownGene exon 44048776 44048863 0.000000 + . gene_id "PIGT"; transcript_id "AK311100:uc010ghf.2";
+chr20 hg19_knownGene CDS 44048972 44049069 0.000000 + 2 gene_id "PIGT"; transcript_id "AK311100:uc010ghf.2";
+chr20 hg19_knownGene exon 44048972 44049069 0.000000 + . gene_id "PIGT"; transcript_id "AK311100:uc010ghf.2";
+chr20 hg19_knownGene CDS 44049168 44049333 0.000000 + 0 gene_id "PIGT"; transcript_id "AK311100:uc010ghf.2";
+chr20 hg19_knownGene exon 44049168 44049333 0.000000 + . gene_id "PIGT"; transcript_id "AK311100:uc010ghf.2";
+chr20 hg19_knownGene CDS 44050023 44050223 0.000000 + 2 gene_id "PIGT"; transcript_id "AK311100:uc010ghf.2";
+chr20 hg19_knownGene exon 44050023 44050223 0.000000 + . gene_id "PIGT"; transcript_id "AK311100:uc010ghf.2";
+chr20 hg19_knownGene CDS 44052856 44053016 0.000000 + 2 gene_id "PIGT"; transcript_id "AK311100:uc010ghf.2";
+chr20 hg19_knownGene exon 44052856 44053021 0.000000 + . gene_id "PIGT"; transcript_id "AK311100:uc010ghf.2";
+chr20 hg19_knownGene CDS 44044797 44044983 0.000000 + 0 gene_id "PIGT"; transcript_id "NM_015937:uc002xoh.2";
+chr20 hg19_knownGene exon 44044707 44044983 0.000000 + . gene_id "PIGT"; transcript_id "NM_015937:uc002xoh.2";
+chr20 hg19_knownGene CDS 44045157 44045334 0.000000 + 2 gene_id "PIGT"; transcript_id "NM_015937:uc002xoh.2";
+chr20 hg19_knownGene exon 44045157 44045334 0.000000 + . gene_id "PIGT"; transcript_id "NM_015937:uc002xoh.2";
+chr20 hg19_knownGene CDS 44047492 44047619 0.000000 + 1 gene_id "PIGT"; transcript_id "NM_015937:uc002xoh.2";
+chr20 hg19_knownGene exon 44047492 44047619 0.000000 + . gene_id "PIGT"; transcript_id "NM_015937:uc002xoh.2";
+chr20 hg19_knownGene CDS 44047935 44048035 0.000000 + 2 gene_id "PIGT"; transcript_id "NM_015937:uc002xoh.2";
+chr20 hg19_knownGene exon 44047935 44048035 0.000000 + . gene_id "PIGT"; transcript_id "NM_015937:uc002xoh.2";
+chr20 hg19_knownGene CDS 44048144 44048230 0.000000 + 0 gene_id "PIGT"; transcript_id "NM_015937:uc002xoh.2";
+chr20 hg19_knownGene exon 44048144 44048230 0.000000 + . gene_id "PIGT"; transcript_id "NM_015937:uc002xoh.2";
+chr20 hg19_knownGene CDS 44048776 44048863 0.000000 + 0 gene_id "PIGT"; transcript_id "NM_015937:uc002xoh.2";
+chr20 hg19_knownGene exon 44048776 44048863 0.000000 + . gene_id "PIGT"; transcript_id "NM_015937:uc002xoh.2";
+chr20 hg19_knownGene CDS 44048972 44049069 0.000000 + 2 gene_id "PIGT"; transcript_id "NM_015937:uc002xoh.2";
+chr20 hg19_knownGene exon 44048972 44049069 0.000000 + . gene_id "PIGT"; transcript_id "NM_015937:uc002xoh.2";
+chr20 hg19_knownGene CDS 44049168 44049333 0.000000 + 0 gene_id "PIGT"; transcript_id "NM_015937:uc002xoh.2";
+chr20 hg19_knownGene exon 44049168 44049333 0.000000 + . gene_id "PIGT"; transcript_id "NM_015937:uc002xoh.2";
+chr20 hg19_knownGene CDS 44050023 44050223 0.000000 + 2 gene_id "PIGT"; transcript_id "NM_015937:uc002xoh.2";
+chr20 hg19_knownGene exon 44050023 44050223 0.000000 + . gene_id "PIGT"; transcript_id "NM_015937:uc002xoh.2";
+chr20 hg19_knownGene CDS 44052856 44053021 0.000000 + 2 gene_id "PIGT"; transcript_id "NM_015937:uc002xoh.2";
+chr20 hg19_knownGene exon 44052856 44053021 0.000000 + . gene_id "PIGT"; transcript_id "NM_015937:uc002xoh.2";
+chr20 hg19_knownGene CDS 44053136 44053219 0.000000 + 1 gene_id "PIGT"; transcript_id "NM_015937:uc002xoh.2";
+chr20 hg19_knownGene exon 44053136 44053219 0.000000 + . gene_id "PIGT"; transcript_id "NM_015937:uc002xoh.2";
+chr20 hg19_knownGene CDS 44054214 44054463 0.000000 + 1 gene_id "PIGT"; transcript_id "NM_015937:uc002xoh.2";
+chr20 hg19_knownGene exon 44054214 44054884 0.000000 + . gene_id "PIGT"; transcript_id "NM_015937:uc002xoh.2";
+chr20 hg19_knownGene exon 44044707 44044983 0.000000 + . gene_id "PIGT"; transcript_id "AK299013:uc010zwz.2";
+chr20 hg19_knownGene exon 44048144 44048230 0.000000 + . gene_id "PIGT"; transcript_id "AK299013:uc010zwz.2";
+chr20 hg19_knownGene exon 44048776 44048863 0.000000 + . gene_id "PIGT"; transcript_id "AK299013:uc010zwz.2";
+chr20 hg19_knownGene CDS 44048989 44049069 0.000000 + 0 gene_id "PIGT"; transcript_id "AK299013:uc010zwz.2";
+chr20 hg19_knownGene exon 44048972 44049069 0.000000 + . gene_id "PIGT"; transcript_id "AK299013:uc010zwz.2";
+chr20 hg19_knownGene CDS 44049168 44049333 0.000000 + 0 gene_id "PIGT"; transcript_id "AK299013:uc010zwz.2";
+chr20 hg19_knownGene exon 44049168 44049333 0.000000 + . gene_id "PIGT"; transcript_id "AK299013:uc010zwz.2";
+chr20 hg19_knownGene CDS 44050023 44050223 0.000000 + 2 gene_id "PIGT"; transcript_id "AK299013:uc010zwz.2";
+chr20 hg19_knownGene exon 44050023 44050223 0.000000 + . gene_id "PIGT"; transcript_id "AK299013:uc010zwz.2";
+chr20 hg19_knownGene CDS 44052856 44053021 0.000000 + 2 gene_id "PIGT"; transcript_id "AK299013:uc010zwz.2";
+chr20 hg19_knownGene exon 44052856 44053021 0.000000 + . gene_id "PIGT"; transcript_id "AK299013:uc010zwz.2";
+chr20 hg19_knownGene CDS 44053136 44053219 0.000000 + 1 gene_id "PIGT"; transcript_id "AK299013:uc010zwz.2";
+chr20 hg19_knownGene exon 44053136 44053219 0.000000 + . gene_id "PIGT"; transcript_id "AK299013:uc010zwz.2";
+chr20 hg19_knownGene CDS 44054214 44054463 0.000000 + 1 gene_id "PIGT"; transcript_id "AK299013:uc010zwz.2";
+chr20 hg19_knownGene exon 44054214 44054884 0.000000 + . gene_id "PIGT"; transcript_id "AK299013:uc010zwz.2";
+chr20 hg19_knownGene CDS 44044797 44044983 0.000000 + 0 gene_id "PIGT"; transcript_id "NM_001184728:uc010zww.2";
+chr20 hg19_knownGene exon 44044707 44044983 0.000000 + . gene_id "PIGT"; transcript_id "NM_001184728:uc010zww.2";
+chr20 hg19_knownGene CDS 44045157 44045294 0.000000 + 2 gene_id "PIGT"; transcript_id "NM_001184728:uc010zww.2";
+chr20 hg19_knownGene exon 44045157 44045294 0.000000 + . gene_id "PIGT"; transcript_id "NM_001184728:uc010zww.2";
+chr20 hg19_knownGene CDS 44047935 44048035 0.000000 + 2 gene_id "PIGT"; transcript_id "NM_001184728:uc010zww.2";
+chr20 hg19_knownGene exon 44047935 44048035 0.000000 + . gene_id "PIGT"; transcript_id "NM_001184728:uc010zww.2";
+chr20 hg19_knownGene CDS 44048144 44048230 0.000000 + 0 gene_id "PIGT"; transcript_id "NM_001184728:uc010zww.2";
+chr20 hg19_knownGene exon 44048144 44048230 0.000000 + . gene_id "PIGT"; transcript_id "NM_001184728:uc010zww.2";
+chr20 hg19_knownGene CDS 44048776 44048863 0.000000 + 0 gene_id "PIGT"; transcript_id "NM_001184728:uc010zww.2";
+chr20 hg19_knownGene exon 44048776 44048863 0.000000 + . gene_id "PIGT"; transcript_id "NM_001184728:uc010zww.2";
+chr20 hg19_knownGene CDS 44048972 44049069 0.000000 + 2 gene_id "PIGT"; transcript_id "NM_001184728:uc010zww.2";
+chr20 hg19_knownGene exon 44048972 44049069 0.000000 + . gene_id "PIGT"; transcript_id "NM_001184728:uc010zww.2";
+chr20 hg19_knownGene CDS 44049168 44049333 0.000000 + 0 gene_id "PIGT"; transcript_id "NM_001184728:uc010zww.2";
+chr20 hg19_knownGene exon 44049168 44049333 0.000000 + . gene_id "PIGT"; transcript_id "NM_001184728:uc010zww.2";
+chr20 hg19_knownGene CDS 44050023 44050223 0.000000 + 2 gene_id "PIGT"; transcript_id "NM_001184728:uc010zww.2";
+chr20 hg19_knownGene exon 44050023 44050223 0.000000 + . gene_id "PIGT"; transcript_id "NM_001184728:uc010zww.2";
+chr20 hg19_knownGene CDS 44052856 44053021 0.000000 + 2 gene_id "PIGT"; transcript_id "NM_001184728:uc010zww.2";
+chr20 hg19_knownGene exon 44052856 44053021 0.000000 + . gene_id "PIGT"; transcript_id "NM_001184728:uc010zww.2";
+chr20 hg19_knownGene CDS 44053136 44053219 0.000000 + 1 gene_id "PIGT"; transcript_id "NM_001184728:uc010zww.2";
+chr20 hg19_knownGene exon 44053136 44053219 0.000000 + . gene_id "PIGT"; transcript_id "NM_001184728:uc010zww.2";
+chr20 hg19_knownGene CDS 44054214 44054463 0.000000 + 1 gene_id "PIGT"; transcript_id "NM_001184728:uc010zww.2";
+chr20 hg19_knownGene exon 44054214 44054884 0.000000 + . gene_id "PIGT"; transcript_id "NM_001184728:uc010zww.2";
+chr20 hg19_knownGene CDS 44044797 44044983 0.000000 + 0 gene_id "PIGT"; transcript_id "NM_001184730:uc010zwy.2";
+chr20 hg19_knownGene exon 44044707 44044983 0.000000 + . gene_id "PIGT"; transcript_id "NM_001184730:uc010zwy.2";
+chr20 hg19_knownGene CDS 44047935 44048035 0.000000 + 2 gene_id "PIGT"; transcript_id "NM_001184730:uc010zwy.2";
+chr20 hg19_knownGene exon 44047935 44048035 0.000000 + . gene_id "PIGT"; transcript_id "NM_001184730:uc010zwy.2";
+chr20 hg19_knownGene CDS 44048144 44048230 0.000000 + 0 gene_id "PIGT"; transcript_id "NM_001184730:uc010zwy.2";
+chr20 hg19_knownGene exon 44048144 44048230 0.000000 + . gene_id "PIGT"; transcript_id "NM_001184730:uc010zwy.2";
+chr20 hg19_knownGene CDS 44048776 44048863 0.000000 + 0 gene_id "PIGT"; transcript_id "NM_001184730:uc010zwy.2";
+chr20 hg19_knownGene exon 44048776 44048863 0.000000 + . gene_id "PIGT"; transcript_id "NM_001184730:uc010zwy.2";
+chr20 hg19_knownGene CDS 44048972 44049069 0.000000 + 2 gene_id "PIGT"; transcript_id "NM_001184730:uc010zwy.2";
+chr20 hg19_knownGene exon 44048972 44049069 0.000000 + . gene_id "PIGT"; transcript_id "NM_001184730:uc010zwy.2";
+chr20 hg19_knownGene CDS 44049168 44049333 0.000000 + 0 gene_id "PIGT"; transcript_id "NM_001184730:uc010zwy.2";
+chr20 hg19_knownGene exon 44049168 44049333 0.000000 + . gene_id "PIGT"; transcript_id "NM_001184730:uc010zwy.2";
+chr20 hg19_knownGene CDS 44050023 44050223 0.000000 + 2 gene_id "PIGT"; transcript_id "NM_001184730:uc010zwy.2";
+chr20 hg19_knownGene exon 44050023 44050223 0.000000 + . gene_id "PIGT"; transcript_id "NM_001184730:uc010zwy.2";
+chr20 hg19_knownGene CDS 44052856 44053021 0.000000 + 2 gene_id "PIGT"; transcript_id "NM_001184730:uc010zwy.2";
+chr20 hg19_knownGene exon 44052856 44053021 0.000000 + . gene_id "PIGT"; transcript_id "NM_001184730:uc010zwy.2";
+chr20 hg19_knownGene CDS 44053136 44053219 0.000000 + 1 gene_id "PIGT"; transcript_id "NM_001184730:uc010zwy.2";
+chr20 hg19_knownGene exon 44053136 44053219 0.000000 + . gene_id "PIGT"; transcript_id "NM_001184730:uc010zwy.2";
+chr20 hg19_knownGene CDS 44054214 44054463 0.000000 + 1 gene_id "PIGT"; transcript_id "NM_001184730:uc010zwy.2";
+chr20 hg19_knownGene exon 44054214 44054884 0.000000 + . gene_id "PIGT"; transcript_id "NM_001184730:uc010zwy.2";
+chr20 hg19_knownGene CDS 44044797 44044983 0.000000 + 0 gene_id "PIGT"; transcript_id "NM_001184729:uc002xoj.2";
+chr20 hg19_knownGene exon 44044707 44044983 0.000000 + . gene_id "PIGT"; transcript_id "NM_001184729:uc002xoj.2";
+chr20 hg19_knownGene CDS 44045157 44045334 0.000000 + 2 gene_id "PIGT"; transcript_id "NM_001184729:uc002xoj.2";
+chr20 hg19_knownGene exon 44045157 44045334 0.000000 + . gene_id "PIGT"; transcript_id "NM_001184729:uc002xoj.2";
+chr20 hg19_knownGene CDS 44047492 44047619 0.000000 + 1 gene_id "PIGT"; transcript_id "NM_001184729:uc002xoj.2";
+chr20 hg19_knownGene exon 44047492 44047619 0.000000 + . gene_id "PIGT"; transcript_id "NM_001184729:uc002xoj.2";
+chr20 hg19_knownGene CDS 44047935 44048035 0.000000 + 2 gene_id "PIGT"; transcript_id "NM_001184729:uc002xoj.2";
+chr20 hg19_knownGene exon 44047935 44048035 0.000000 + . gene_id "PIGT"; transcript_id "NM_001184729:uc002xoj.2";
+chr20 hg19_knownGene CDS 44048144 44048230 0.000000 + 0 gene_id "PIGT"; transcript_id "NM_001184729:uc002xoj.2";
+chr20 hg19_knownGene exon 44048144 44048230 0.000000 + . gene_id "PIGT"; transcript_id "NM_001184729:uc002xoj.2";
+chr20 hg19_knownGene CDS 44048776 44048863 0.000000 + 0 gene_id "PIGT"; transcript_id "NM_001184729:uc002xoj.2";
+chr20 hg19_knownGene exon 44048776 44048863 0.000000 + . gene_id "PIGT"; transcript_id "NM_001184729:uc002xoj.2";
+chr20 hg19_knownGene CDS 44048972 44049069 0.000000 + 2 gene_id "PIGT"; transcript_id "NM_001184729:uc002xoj.2";
+chr20 hg19_knownGene exon 44048972 44049069 0.000000 + . gene_id "PIGT"; transcript_id "NM_001184729:uc002xoj.2";
+chr20 hg19_knownGene CDS 44049168 44049333 0.000000 + 0 gene_id "PIGT"; transcript_id "NM_001184729:uc002xoj.2";
+chr20 hg19_knownGene exon 44049168 44049333 0.000000 + . gene_id "PIGT"; transcript_id "NM_001184729:uc002xoj.2";
+chr20 hg19_knownGene CDS 44052856 44053021 0.000000 + 2 gene_id "PIGT"; transcript_id "NM_001184729:uc002xoj.2";
+chr20 hg19_knownGene exon 44052856 44053021 0.000000 + . gene_id "PIGT"; transcript_id "NM_001184729:uc002xoj.2";
+chr20 hg19_knownGene CDS 44053136 44053219 0.000000 + 1 gene_id "PIGT"; transcript_id "NM_001184729:uc002xoj.2";
+chr20 hg19_knownGene exon 44053136 44053219 0.000000 + . gene_id "PIGT"; transcript_id "NM_001184729:uc002xoj.2";
+chr20 hg19_knownGene CDS 44054214 44054463 0.000000 + 1 gene_id "PIGT"; transcript_id "NM_001184729:uc002xoj.2";
+chr20 hg19_knownGene exon 44054214 44054884 0.000000 + . gene_id "PIGT"; transcript_id "NM_001184729:uc002xoj.2";
+chr20 hg19_knownGene exon 44044707 44044983 0.000000 + . gene_id "PIGT"; transcript_id "AK316358:uc010zwu.2";
+chr20 hg19_knownGene exon 44045157 44045294 0.000000 + . gene_id "PIGT"; transcript_id "AK316358:uc010zwu.2";
+chr20 hg19_knownGene exon 44047492 44047619 0.000000 + . gene_id "PIGT"; transcript_id "AK316358:uc010zwu.2";
+chr20 hg19_knownGene exon 44047935 44048035 0.000000 + . gene_id "PIGT"; transcript_id "AK316358:uc010zwu.2";
+chr20 hg19_knownGene exon 44048144 44048230 0.000000 + . gene_id "PIGT"; transcript_id "AK316358:uc010zwu.2";
+chr20 hg19_knownGene exon 44048776 44048863 0.000000 + . gene_id "PIGT"; transcript_id "AK316358:uc010zwu.2";
+chr20 hg19_knownGene CDS 44048989 44049069 0.000000 + 0 gene_id "PIGT"; transcript_id "AK316358:uc010zwu.2";
+chr20 hg19_knownGene exon 44048972 44049069 0.000000 + . gene_id "PIGT"; transcript_id "AK316358:uc010zwu.2";
+chr20 hg19_knownGene CDS 44049168 44049333 0.000000 + 0 gene_id "PIGT"; transcript_id "AK316358:uc010zwu.2";
+chr20 hg19_knownGene exon 44049168 44049333 0.000000 + . gene_id "PIGT"; transcript_id "AK316358:uc010zwu.2";
+chr20 hg19_knownGene CDS 44050023 44050223 0.000000 + 2 gene_id "PIGT"; transcript_id "AK316358:uc010zwu.2";
+chr20 hg19_knownGene exon 44050023 44050223 0.000000 + . gene_id "PIGT"; transcript_id "AK316358:uc010zwu.2";
+chr20 hg19_knownGene CDS 44052856 44053021 0.000000 + 2 gene_id "PIGT"; transcript_id "AK316358:uc010zwu.2";
+chr20 hg19_knownGene exon 44052856 44053021 0.000000 + . gene_id "PIGT"; transcript_id "AK316358:uc010zwu.2";
+chr20 hg19_knownGene CDS 44053136 44053219 0.000000 + 1 gene_id "PIGT"; transcript_id "AK316358:uc010zwu.2";
+chr20 hg19_knownGene exon 44053136 44053219 0.000000 + . gene_id "PIGT"; transcript_id "AK316358:uc010zwu.2";
+chr20 hg19_knownGene CDS 44054214 44054463 0.000000 + 1 gene_id "PIGT"; transcript_id "AK316358:uc010zwu.2";
+chr20 hg19_knownGene exon 44054214 44054884 0.000000 + . gene_id "PIGT"; transcript_id "AK316358:uc010zwu.2";
+chr20 hg19_knownGene exon 44044707 44044983 0.000000 + . gene_id "PIGT"; transcript_id "AK123590:uc002xoi.2";
+chr20 hg19_knownGene exon 44045157 44045334 0.000000 + . gene_id "PIGT"; transcript_id "AK123590:uc002xoi.2";
+chr20 hg19_knownGene exon 44047492 44047619 0.000000 + . gene_id "PIGT"; transcript_id "AK123590:uc002xoi.2";
+chr20 hg19_knownGene exon 44047935 44048035 0.000000 + . gene_id "PIGT"; transcript_id "AK123590:uc002xoi.2";
+chr20 hg19_knownGene exon 44048144 44048230 0.000000 + . gene_id "PIGT"; transcript_id "AK123590:uc002xoi.2";
+chr20 hg19_knownGene exon 44048776 44048863 0.000000 + . gene_id "PIGT"; transcript_id "AK123590:uc002xoi.2";
+chr20 hg19_knownGene exon 44048972 44049069 0.000000 + . gene_id "PIGT"; transcript_id "AK123590:uc002xoi.2";
+chr20 hg19_knownGene exon 44049148 44049333 0.000000 + . gene_id "PIGT"; transcript_id "AK123590:uc002xoi.2";
+chr20 hg19_knownGene exon 44050023 44050223 0.000000 + . gene_id "PIGT"; transcript_id "AK123590:uc002xoi.2";
+chr20 hg19_knownGene exon 44052856 44053021 0.000000 + . gene_id "PIGT"; transcript_id "AK123590:uc002xoi.2";
+chr20 hg19_knownGene exon 44053136 44053219 0.000000 + . gene_id "PIGT"; transcript_id "AK123590:uc002xoi.2";
+chr20 hg19_knownGene exon 44054214 44054884 0.000000 + . gene_id "PIGT"; transcript_id "AK123590:uc002xoi.2";
+chr20 hg19_knownGene exon 44044707 44044983 0.000000 + . gene_id "PIGT"; transcript_id "AK293686:uc010zwv.2";
+chr20 hg19_knownGene exon 44047492 44047619 0.000000 + . gene_id "PIGT"; transcript_id "AK293686:uc010zwv.2";
+chr20 hg19_knownGene exon 44047935 44048035 0.000000 + . gene_id "PIGT"; transcript_id "AK293686:uc010zwv.2";
+chr20 hg19_knownGene exon 44048144 44048230 0.000000 + . gene_id "PIGT"; transcript_id "AK293686:uc010zwv.2";
+chr20 hg19_knownGene exon 44048776 44048863 0.000000 + . gene_id "PIGT"; transcript_id "AK293686:uc010zwv.2";
+chr20 hg19_knownGene CDS 44048989 44049069 0.000000 + 0 gene_id "PIGT"; transcript_id "AK293686:uc010zwv.2";
+chr20 hg19_knownGene exon 44048972 44049069 0.000000 + . gene_id "PIGT"; transcript_id "AK293686:uc010zwv.2";
+chr20 hg19_knownGene CDS 44049168 44049333 0.000000 + 0 gene_id "PIGT"; transcript_id "AK293686:uc010zwv.2";
+chr20 hg19_knownGene exon 44049168 44049333 0.000000 + . gene_id "PIGT"; transcript_id "AK293686:uc010zwv.2";
+chr20 hg19_knownGene CDS 44050023 44050223 0.000000 + 2 gene_id "PIGT"; transcript_id "AK293686:uc010zwv.2";
+chr20 hg19_knownGene exon 44050023 44050223 0.000000 + . gene_id "PIGT"; transcript_id "AK293686:uc010zwv.2";
+chr20 hg19_knownGene CDS 44052856 44053021 0.000000 + 2 gene_id "PIGT"; transcript_id "AK293686:uc010zwv.2";
+chr20 hg19_knownGene exon 44052856 44053021 0.000000 + . gene_id "PIGT"; transcript_id "AK293686:uc010zwv.2";
+chr20 hg19_knownGene CDS 44053136 44053219 0.000000 + 1 gene_id "PIGT"; transcript_id "AK293686:uc010zwv.2";
+chr20 hg19_knownGene exon 44053136 44053219 0.000000 + . gene_id "PIGT"; transcript_id "AK293686:uc010zwv.2";
+chr20 hg19_knownGene CDS 44054214 44054463 0.000000 + 1 gene_id "PIGT"; transcript_id "AK293686:uc010zwv.2";
+chr20 hg19_knownGene exon 44054214 44054884 0.000000 + . gene_id "PIGT"; transcript_id "AK293686:uc010zwv.2";
+chr20 hg19_knownGene exon 44044707 44044983 0.000000 + . gene_id "PIGT"; transcript_id "AK293294:uc010zwx.2";
+chr20 hg19_knownGene exon 44045157 44045334 0.000000 + . gene_id "PIGT"; transcript_id "AK293294:uc010zwx.2";
+chr20 hg19_knownGene CDS 44047521 44047619 0.000000 + 0 gene_id "PIGT"; transcript_id "AK293294:uc010zwx.2";
+chr20 hg19_knownGene exon 44047492 44047619 0.000000 + . gene_id "PIGT"; transcript_id "AK293294:uc010zwx.2";
+chr20 hg19_knownGene CDS 44048144 44048230 0.000000 + 0 gene_id "PIGT"; transcript_id "AK293294:uc010zwx.2";
+chr20 hg19_knownGene exon 44048144 44048230 0.000000 + . gene_id "PIGT"; transcript_id "AK293294:uc010zwx.2";
+chr20 hg19_knownGene CDS 44048776 44048863 0.000000 + 0 gene_id "PIGT"; transcript_id "AK293294:uc010zwx.2";
+chr20 hg19_knownGene exon 44048776 44048863 0.000000 + . gene_id "PIGT"; transcript_id "AK293294:uc010zwx.2";
+chr20 hg19_knownGene CDS 44048972 44049069 0.000000 + 2 gene_id "PIGT"; transcript_id "AK293294:uc010zwx.2";
+chr20 hg19_knownGene exon 44048972 44049069 0.000000 + . gene_id "PIGT"; transcript_id "AK293294:uc010zwx.2";
+chr20 hg19_knownGene CDS 44049168 44049333 0.000000 + 0 gene_id "PIGT"; transcript_id "AK293294:uc010zwx.2";
+chr20 hg19_knownGene exon 44049168 44049333 0.000000 + . gene_id "PIGT"; transcript_id "AK293294:uc010zwx.2";
+chr20 hg19_knownGene CDS 44050023 44050223 0.000000 + 2 gene_id "PIGT"; transcript_id "AK293294:uc010zwx.2";
+chr20 hg19_knownGene exon 44050023 44050223 0.000000 + . gene_id "PIGT"; transcript_id "AK293294:uc010zwx.2";
+chr20 hg19_knownGene CDS 44052856 44053021 0.000000 + 2 gene_id "PIGT"; transcript_id "AK293294:uc010zwx.2";
+chr20 hg19_knownGene exon 44052856 44053021 0.000000 + . gene_id "PIGT"; transcript_id "AK293294:uc010zwx.2";
+chr20 hg19_knownGene CDS 44053136 44053219 0.000000 + 1 gene_id "PIGT"; transcript_id "AK293294:uc010zwx.2";
+chr20 hg19_knownGene exon 44053136 44053219 0.000000 + . gene_id "PIGT"; transcript_id "AK293294:uc010zwx.2";
+chr20 hg19_knownGene CDS 44054214 44054463 0.000000 + 1 gene_id "PIGT"; transcript_id "AK293294:uc010zwx.2";
+chr20 hg19_knownGene exon 44054214 44054884 0.000000 + . gene_id "PIGT"; transcript_id "AK293294:uc010zwx.2";
+chr20 hg19_knownGene exon 44044707 44044983 0.000000 + . gene_id "PIGT"; transcript_id "AK296063:uc010zxa.2";
+chr20 hg19_knownGene exon 44045157 44045334 0.000000 + . gene_id "PIGT"; transcript_id "AK296063:uc010zxa.2";
+chr20 hg19_knownGene CDS 44047959 44048035 0.000000 + 0 gene_id "PIGT"; transcript_id "AK296063:uc010zxa.2";
+chr20 hg19_knownGene exon 44047935 44048035 0.000000 + . gene_id "PIGT"; transcript_id "AK296063:uc010zxa.2";
+chr20 hg19_knownGene CDS 44048113 44048230 0.000000 + 1 gene_id "PIGT"; transcript_id "AK296063:uc010zxa.2";
+chr20 hg19_knownGene exon 44048113 44048230 0.000000 + . gene_id "PIGT"; transcript_id "AK296063:uc010zxa.2";
+chr20 hg19_knownGene CDS 44048776 44048863 0.000000 + 0 gene_id "PIGT"; transcript_id "AK296063:uc010zxa.2";
+chr20 hg19_knownGene exon 44048776 44048863 0.000000 + . gene_id "PIGT"; transcript_id "AK296063:uc010zxa.2";
+chr20 hg19_knownGene CDS 44048972 44049069 0.000000 + 2 gene_id "PIGT"; transcript_id "AK296063:uc010zxa.2";
+chr20 hg19_knownGene exon 44048972 44049069 0.000000 + . gene_id "PIGT"; transcript_id "AK296063:uc010zxa.2";
+chr20 hg19_knownGene CDS 44049168 44049333 0.000000 + 0 gene_id "PIGT"; transcript_id "AK296063:uc010zxa.2";
+chr20 hg19_knownGene exon 44049168 44049333 0.000000 + . gene_id "PIGT"; transcript_id "AK296063:uc010zxa.2";
+chr20 hg19_knownGene CDS 44050023 44050223 0.000000 + 2 gene_id "PIGT"; transcript_id "AK296063:uc010zxa.2";
+chr20 hg19_knownGene exon 44050023 44050223 0.000000 + . gene_id "PIGT"; transcript_id "AK296063:uc010zxa.2";
+chr20 hg19_knownGene CDS 44052856 44053021 0.000000 + 2 gene_id "PIGT"; transcript_id "AK296063:uc010zxa.2";
+chr20 hg19_knownGene exon 44052856 44053021 0.000000 + . gene_id "PIGT"; transcript_id "AK296063:uc010zxa.2";
+chr20 hg19_knownGene CDS 44053136 44053219 0.000000 + 1 gene_id "PIGT"; transcript_id "AK296063:uc010zxa.2";
+chr20 hg19_knownGene exon 44053136 44053219 0.000000 + . gene_id "PIGT"; transcript_id "AK296063:uc010zxa.2";
+chr20 hg19_knownGene CDS 44054214 44054463 0.000000 + 1 gene_id "PIGT"; transcript_id "AK296063:uc010zxa.2";
+chr20 hg19_knownGene exon 44054214 44054884 0.000000 + . gene_id "PIGT"; transcript_id "AK296063:uc010zxa.2";
+chr20 hg19_knownGene CDS 44047874 44048035 0.000000 + 0 gene_id "PIGT"; transcript_id "BX537612:uc002xol.1";
+chr20 hg19_knownGene exon 44046813 44048035 0.000000 + . gene_id "PIGT"; transcript_id "BX537612:uc002xol.1";
+chr20 hg19_knownGene CDS 44048144 44048230 0.000000 + 0 gene_id "PIGT"; transcript_id "BX537612:uc002xol.1";
+chr20 hg19_knownGene exon 44048144 44048230 0.000000 + . gene_id "PIGT"; transcript_id "BX537612:uc002xol.1";
+chr20 hg19_knownGene CDS 44048776 44048863 0.000000 + 0 gene_id "PIGT"; transcript_id "BX537612:uc002xol.1";
+chr20 hg19_knownGene exon 44048776 44048863 0.000000 + . gene_id "PIGT"; transcript_id "BX537612:uc002xol.1";
+chr20 hg19_knownGene CDS 44048972 44049069 0.000000 + 2 gene_id "PIGT"; transcript_id "BX537612:uc002xol.1";
+chr20 hg19_knownGene exon 44048972 44049069 0.000000 + . gene_id "PIGT"; transcript_id "BX537612:uc002xol.1";
+chr20 hg19_knownGene CDS 44049168 44049333 0.000000 + 0 gene_id "PIGT"; transcript_id "BX537612:uc002xol.1";
+chr20 hg19_knownGene exon 44049168 44049333 0.000000 + . gene_id "PIGT"; transcript_id "BX537612:uc002xol.1";
+chr20 hg19_knownGene CDS 44052856 44053021 0.000000 + 2 gene_id "PIGT"; transcript_id "BX537612:uc002xol.1";
+chr20 hg19_knownGene exon 44052856 44053021 0.000000 + . gene_id "PIGT"; transcript_id "BX537612:uc002xol.1";
+chr20 hg19_knownGene CDS 44053136 44053219 0.000000 + 1 gene_id "PIGT"; transcript_id "BX537612:uc002xol.1";
+chr20 hg19_knownGene exon 44053136 44053219 0.000000 + . gene_id "PIGT"; transcript_id "BX537612:uc002xol.1";
+chr20 hg19_knownGene CDS 44054214 44054463 0.000000 + 1 gene_id "PIGT"; transcript_id "BX537612:uc002xol.1";
+chr20 hg19_knownGene exon 44054214 44054884 0.000000 + . gene_id "PIGT"; transcript_id "BX537612:uc002xol.1";
+chr20 hg19_knownGene exon 44048546 44048863 0.000000 + . gene_id "PIGT"; transcript_id "AK297830:uc010zxb.1";
+chr20 hg19_knownGene exon 44048972 44049069 0.000000 + . gene_id "PIGT"; transcript_id "AK297830:uc010zxb.1";
+chr20 hg19_knownGene CDS 44049273 44049333 0.000000 + 0 gene_id "PIGT"; transcript_id "AK297830:uc010zxb.1";
+chr20 hg19_knownGene exon 44049148 44049333 0.000000 + . gene_id "PIGT"; transcript_id "AK297830:uc010zxb.1";
+chr20 hg19_knownGene CDS 44050023 44050223 0.000000 + 2 gene_id "PIGT"; transcript_id "AK297830:uc010zxb.1";
+chr20 hg19_knownGene exon 44050023 44050223 0.000000 + . gene_id "PIGT"; transcript_id "AK297830:uc010zxb.1";
+chr20 hg19_knownGene CDS 44052856 44053021 0.000000 + 2 gene_id "PIGT"; transcript_id "AK297830:uc010zxb.1";
+chr20 hg19_knownGene exon 44052856 44053021 0.000000 + . gene_id "PIGT"; transcript_id "AK297830:uc010zxb.1";
+chr20 hg19_knownGene CDS 44053136 44053219 0.000000 + 1 gene_id "PIGT"; transcript_id "AK297830:uc010zxb.1";
+chr20 hg19_knownGene exon 44053136 44053219 0.000000 + . gene_id "PIGT"; transcript_id "AK297830:uc010zxb.1";
+chr20 hg19_knownGene CDS 44054214 44054463 0.000000 + 1 gene_id "PIGT"; transcript_id "AK297830:uc010zxb.1";
+chr20 hg19_knownGene exon 44054214 44054884 0.000000 + . gene_id "PIGT"; transcript_id "AK297830:uc010zxb.1";
+chr20 hg19_knownGene CDS 44098422 44098500 0.000000 + 0 gene_id "WFDC2"; transcript_id "NM_006103:uc002xoo.3";
+chr20 hg19_knownGene exon 44098394 44098500 0.000000 + . gene_id "WFDC2"; transcript_id "NM_006103:uc002xoo.3";
+chr20 hg19_knownGene CDS 44099029 44099172 0.000000 + 2 gene_id "WFDC2"; transcript_id "NM_006103:uc002xoo.3";
+chr20 hg19_knownGene exon 44099029 44099172 0.000000 + . gene_id "WFDC2"; transcript_id "NM_006103:uc002xoo.3";
+chr20 hg19_knownGene CDS 44108582 44108730 0.000000 + 2 gene_id "WFDC2"; transcript_id "NM_006103:uc002xoo.3";
+chr20 hg19_knownGene exon 44108582 44108734 0.000000 + . gene_id "WFDC2"; transcript_id "NM_006103:uc002xoo.3";
+chr20 hg19_knownGene exon 44110011 44110172 0.000000 + . gene_id "WFDC2"; transcript_id "NM_006103:uc002xoo.3";
+chr20 hg19_knownGene exon 44098394 44098500 0.000000 + . gene_id "WFDC2"; transcript_id "AF330259:uc002xoq.3";
+chr20 hg19_knownGene exon 44099029 44099172 0.000000 + . gene_id "WFDC2"; transcript_id "AF330259:uc002xoq.3";
+chr20 hg19_knownGene exon 44099793 44099921 0.000000 + . gene_id "WFDC2"; transcript_id "AF330259:uc002xoq.3";
+chr20 hg19_knownGene exon 44108582 44108734 0.000000 + . gene_id "WFDC2"; transcript_id "AF330259:uc002xoq.3";
+chr20 hg19_knownGene exon 44110011 44110172 0.000000 + . gene_id "WFDC2"; transcript_id "AF330259:uc002xoq.3";
+chr20 hg19_knownGene CDS 44098422 44098500 0.000000 + 0 gene_id "WFDC2"; transcript_id "AF330260:uc002xop.3";
+chr20 hg19_knownGene exon 44098394 44098500 0.000000 + . gene_id "WFDC2"; transcript_id "AF330260:uc002xop.3";
+chr20 hg19_knownGene CDS 44108582 44108730 0.000000 + 2 gene_id "WFDC2"; transcript_id "AF330260:uc002xop.3";
+chr20 hg19_knownGene exon 44108582 44108734 0.000000 + . gene_id "WFDC2"; transcript_id "AF330260:uc002xop.3";
+chr20 hg19_knownGene exon 44110011 44110172 0.000000 + . gene_id "WFDC2"; transcript_id "AF330260:uc002xop.3";
+chr20 hg19_knownGene CDS 44108512 44108730 0.000000 + 0 gene_id "WFDC2"; transcript_id "AF330261:uc002xor.3";
+chr20 hg19_knownGene exon 44108485 44108734 0.000000 + . gene_id "WFDC2"; transcript_id "AF330261:uc002xor.3";
+chr20 hg19_knownGene exon 44110011 44110172 0.000000 + . gene_id "WFDC2"; transcript_id "AF330261:uc002xor.3";
+chr20 hg19_knownGene CDS 44141294 44141484 0.000000 - 2 gene_id "SPINT3"; transcript_id "NM_006652:uc010ghg.1";
+chr20 hg19_knownGene exon 44141101 44141484 0.000000 - . gene_id "SPINT3"; transcript_id "NM_006652:uc010ghg.1";
+chr20 hg19_knownGene CDS 44144173 44144248 0.000000 - 0 gene_id "SPINT3"; transcript_id "NM_006652:uc010ghg.1";
+chr20 hg19_knownGene exon 44144173 44144264 0.000000 - . gene_id "SPINT3"; transcript_id "NM_006652:uc010ghg.1";
+chr20 hg19_knownGene CDS 44163109 44163144 0.000000 - 0 gene_id "WFDC6"; transcript_id "NM_080827:uc002xos.1";
+chr20 hg19_knownGene exon 44162836 44163144 0.000000 - . gene_id "WFDC6"; transcript_id "NM_080827:uc002xos.1";
+chr20 hg19_knownGene CDS 44166603 44166733 0.000000 - 2 gene_id "WFDC6"; transcript_id "NM_080827:uc002xos.1";
+chr20 hg19_knownGene exon 44166603 44166733 0.000000 - . gene_id "WFDC6"; transcript_id "NM_080827:uc002xos.1";
+chr20 hg19_knownGene CDS 44167956 44168046 0.000000 - 0 gene_id "WFDC6"; transcript_id "NM_080827:uc002xos.1";
+chr20 hg19_knownGene exon 44167956 44168134 0.000000 - . gene_id "WFDC6"; transcript_id "NM_080827:uc002xos.1";
+chr20 hg19_knownGene CDS 44166175 44166189 0.000000 - 0 gene_id "SPINLW1-WFDC6"; transcript_id "NM_001198986:uc010zxc.2";
+chr20 hg19_knownGene exon 44164919 44166189 0.000000 - . gene_id "SPINLW1-WFDC6"; transcript_id "NM_001198986:uc010zxc.2";
+chr20 hg19_knownGene CDS 44166603 44166733 0.000000 - 2 gene_id "SPINLW1-WFDC6"; transcript_id "NM_001198986:uc010zxc.2";
+chr20 hg19_knownGene exon 44166603 44166733 0.000000 - . gene_id "SPINLW1-WFDC6"; transcript_id "NM_001198986:uc010zxc.2";
+chr20 hg19_knownGene CDS 44171339 44171506 0.000000 - 2 gene_id "SPINLW1-WFDC6"; transcript_id "NM_001198986:uc010zxc.2";
+chr20 hg19_knownGene exon 44171339 44171506 0.000000 - . gene_id "SPINLW1-WFDC6"; transcript_id "NM_001198986:uc010zxc.2";
+chr20 hg19_knownGene CDS 44174278 44174409 0.000000 - 2 gene_id "SPINLW1-WFDC6"; transcript_id "NM_001198986:uc010zxc.2";
+chr20 hg19_knownGene exon 44174278 44174409 0.000000 - . gene_id "SPINLW1-WFDC6"; transcript_id "NM_001198986:uc010zxc.2";
+chr20 hg19_knownGene CDS 44175906 44175996 0.000000 - 0 gene_id "SPINLW1-WFDC6"; transcript_id "NM_001198986:uc010zxc.2";
+chr20 hg19_knownGene exon 44175906 44176065 0.000000 - . gene_id "SPINLW1-WFDC6"; transcript_id "NM_001198986:uc010zxc.2";
+chr20 hg19_knownGene CDS 44170786 44170793 0.000000 - 2 gene_id "SPINLW1"; transcript_id "NM_020398:uc002xou.3";
+chr20 hg19_knownGene exon 44169265 44170793 0.000000 - . gene_id "SPINLW1"; transcript_id "NM_020398:uc002xou.3";
+chr20 hg19_knownGene CDS 44171339 44171506 0.000000 - 2 gene_id "SPINLW1"; transcript_id "NM_020398:uc002xou.3";
+chr20 hg19_knownGene exon 44171339 44171506 0.000000 - . gene_id "SPINLW1"; transcript_id "NM_020398:uc002xou.3";
+chr20 hg19_knownGene CDS 44174278 44174409 0.000000 - 2 gene_id "SPINLW1"; transcript_id "NM_020398:uc002xou.3";
+chr20 hg19_knownGene exon 44174278 44174409 0.000000 - . gene_id "SPINLW1"; transcript_id "NM_020398:uc002xou.3";
+chr20 hg19_knownGene CDS 44175906 44175996 0.000000 - 0 gene_id "SPINLW1"; transcript_id "NM_020398:uc002xou.3";
+chr20 hg19_knownGene exon 44175906 44176065 0.000000 - . gene_id "SPINLW1"; transcript_id "NM_020398:uc002xou.3";
+chr20 hg19_knownGene CDS 44174198 44174409 0.000000 - 2 gene_id "SPINLW1"; transcript_id "AK126022:uc002xov.2";
+chr20 hg19_knownGene exon 44170484 44174409 0.000000 - . gene_id "SPINLW1"; transcript_id "AK126022:uc002xov.2";
+chr20 hg19_knownGene CDS 44175906 44175996 0.000000 - 0 gene_id "SPINLW1"; transcript_id "AK126022:uc002xov.2";
+chr20 hg19_knownGene exon 44175906 44176065 0.000000 - . gene_id "SPINLW1"; transcript_id "AK126022:uc002xov.2";
+chr20 hg19_knownGene exon 44188397 44188515 0.000000 - . gene_id "5S_rRNA"; transcript_id ":uc021wek.1";
+chr20 hg19_knownGene exon 44179791 44180251 0.000000 - . gene_id "WFDC8"; transcript_id "NM_181510:uc002xow.3";
+chr20 hg19_knownGene CDS 44180668 44180804 0.000000 - 2 gene_id "WFDC8"; transcript_id "NM_181510:uc002xow.3";
+chr20 hg19_knownGene exon 44180662 44180804 0.000000 - . gene_id "WFDC8"; transcript_id "NM_181510:uc002xow.3";
+chr20 hg19_knownGene CDS 44181775 44181915 0.000000 - 2 gene_id "WFDC8"; transcript_id "NM_181510:uc002xow.3";
+chr20 hg19_knownGene exon 44181775 44181915 0.000000 - . gene_id "WFDC8"; transcript_id "NM_181510:uc002xow.3";
+chr20 hg19_knownGene CDS 44184340 44184507 0.000000 - 2 gene_id "WFDC8"; transcript_id "NM_181510:uc002xow.3";
+chr20 hg19_knownGene exon 44184340 44184507 0.000000 - . gene_id "WFDC8"; transcript_id "NM_181510:uc002xow.3";
+chr20 hg19_knownGene CDS 44187491 44187631 0.000000 - 2 gene_id "WFDC8"; transcript_id "NM_181510:uc002xow.3";
+chr20 hg19_knownGene exon 44187491 44187631 0.000000 - . gene_id "WFDC8"; transcript_id "NM_181510:uc002xow.3";
+chr20 hg19_knownGene CDS 44190749 44190858 0.000000 - 1 gene_id "WFDC8"; transcript_id "NM_181510:uc002xow.3";
+chr20 hg19_knownGene exon 44190749 44190858 0.000000 - . gene_id "WFDC8"; transcript_id "NM_181510:uc002xow.3";
+chr20 hg19_knownGene CDS 44207861 44207886 0.000000 - 0 gene_id "WFDC8"; transcript_id "NM_181510:uc002xow.3";
+chr20 hg19_knownGene exon 44207861 44207965 0.000000 - . gene_id "WFDC8"; transcript_id "NM_181510:uc002xow.3";
+chr20 hg19_knownGene CDS 44180668 44180804 0.000000 - 2 gene_id "WFDC8"; transcript_id "NM_130896:uc002xox.3";
+chr20 hg19_knownGene exon 44180401 44180804 0.000000 - . gene_id "WFDC8"; transcript_id "NM_130896:uc002xox.3";
+chr20 hg19_knownGene CDS 44181775 44181915 0.000000 - 2 gene_id "WFDC8"; transcript_id "NM_130896:uc002xox.3";
+chr20 hg19_knownGene exon 44181775 44181915 0.000000 - . gene_id "WFDC8"; transcript_id "NM_130896:uc002xox.3";
+chr20 hg19_knownGene CDS 44184340 44184507 0.000000 - 2 gene_id "WFDC8"; transcript_id "NM_130896:uc002xox.3";
+chr20 hg19_knownGene exon 44184340 44184507 0.000000 - . gene_id "WFDC8"; transcript_id "NM_130896:uc002xox.3";
+chr20 hg19_knownGene CDS 44187491 44187631 0.000000 - 2 gene_id "WFDC8"; transcript_id "NM_130896:uc002xox.3";
+chr20 hg19_knownGene exon 44187491 44187631 0.000000 - . gene_id "WFDC8"; transcript_id "NM_130896:uc002xox.3";
+chr20 hg19_knownGene CDS 44190749 44190858 0.000000 - 1 gene_id "WFDC8"; transcript_id "NM_130896:uc002xox.3";
+chr20 hg19_knownGene exon 44190749 44190858 0.000000 - . gene_id "WFDC8"; transcript_id "NM_130896:uc002xox.3";
+chr20 hg19_knownGene CDS 44207861 44207886 0.000000 - 0 gene_id "WFDC8"; transcript_id "NM_130896:uc002xox.3";
+chr20 hg19_knownGene exon 44207861 44207965 0.000000 - . gene_id "WFDC8"; transcript_id "NM_130896:uc002xox.3";
+chr20 hg19_knownGene CDS 44258453 44258543 0.000000 + 0 gene_id "WFDC10A"; transcript_id "NM_080753:uc002xoz.3";
+chr20 hg19_knownGene exon 44258385 44258543 0.000000 + . gene_id "WFDC10A"; transcript_id "NM_080753:uc002xoz.3";
+chr20 hg19_knownGene CDS 44259509 44259654 0.000000 + 2 gene_id "WFDC10A"; transcript_id "NM_080753:uc002xoz.3";
+chr20 hg19_knownGene exon 44259509 44259831 0.000000 + . gene_id "WFDC10A"; transcript_id "NM_080753:uc002xoz.3";
+chr20 hg19_knownGene CDS 44236752 44236779 0.000000 - 1 gene_id "WFDC9"; transcript_id "NM_147198:uc002xoy.3";
+chr20 hg19_knownGene exon 44236578 44236779 0.000000 - . gene_id "WFDC9"; transcript_id "NM_147198:uc002xoy.3";
+chr20 hg19_knownGene CDS 44237302 44237449 0.000000 - 2 gene_id "WFDC9"; transcript_id "NM_147198:uc002xoy.3";
+chr20 hg19_knownGene exon 44237302 44237449 0.000000 - . gene_id "WFDC9"; transcript_id "NM_147198:uc002xoy.3";
+chr20 hg19_knownGene CDS 44238730 44238820 0.000000 - 0 gene_id "WFDC9"; transcript_id "NM_147198:uc002xoy.3";
+chr20 hg19_knownGene exon 44238730 44238878 0.000000 - . gene_id "WFDC9"; transcript_id "NM_147198:uc002xoy.3";
+chr20 hg19_knownGene exon 44243267 44243360 0.000000 - . gene_id "WFDC9"; transcript_id "NM_147198:uc002xoy.3";
+chr20 hg19_knownGene exon 44259842 44259907 0.000000 - . gene_id "WFDC9"; transcript_id "NM_147198:uc002xoy.3";
+chr20 hg19_knownGene CDS 44277361 44277378 0.000000 - 0 gene_id "WFDC11"; transcript_id "NM_147197:uc002xpa.3";
+chr20 hg19_knownGene exon 44277202 44277378 0.000000 - . gene_id "WFDC11"; transcript_id "NM_147197:uc002xpa.3";
+chr20 hg19_knownGene CDS 44277896 44278038 0.000000 - 2 gene_id "WFDC11"; transcript_id "NM_147197:uc002xpa.3";
+chr20 hg19_knownGene exon 44277896 44278038 0.000000 - . gene_id "WFDC11"; transcript_id "NM_147197:uc002xpa.3";
+chr20 hg19_knownGene CDS 44279140 44279239 0.000000 - 0 gene_id "WFDC11"; transcript_id "NM_147197:uc002xpa.3";
+chr20 hg19_knownGene exon 44279140 44279290 0.000000 - . gene_id "WFDC11"; transcript_id "NM_147197:uc002xpa.3";
+chr20 hg19_knownGene exon 44295727 44295808 0.000000 - . gene_id "WFDC11"; transcript_id "NM_147197:uc002xpa.3";
+chr20 hg19_knownGene exon 44298817 44298878 0.000000 - . gene_id "WFDC11"; transcript_id "NM_147197:uc002xpa.3";
+chr20 hg19_knownGene CDS 44313472 44313599 0.000000 - 2 gene_id "WFDC10B"; transcript_id "NM_172006:uc002xpb.3";
+chr20 hg19_knownGene exon 44313290 44313599 0.000000 - . gene_id "WFDC10B"; transcript_id "NM_172006:uc002xpb.3";
+chr20 hg19_knownGene CDS 44314541 44314631 0.000000 - 0 gene_id "WFDC10B"; transcript_id "NM_172006:uc002xpb.3";
+chr20 hg19_knownGene exon 44314541 44314695 0.000000 - . gene_id "WFDC10B"; transcript_id "NM_172006:uc002xpb.3";
+chr20 hg19_knownGene exon 44333136 44333200 0.000000 - . gene_id "WFDC10B"; transcript_id "NM_172006:uc002xpb.3";
+chr20 hg19_knownGene exon 44333557 44333658 0.000000 - . gene_id "WFDC10B"; transcript_id "NM_172006:uc002xpb.3";
+chr20 hg19_knownGene CDS 44313472 44313599 0.000000 - 2 gene_id "WFDC10B"; transcript_id "NM_172131:uc002xpc.3";
+chr20 hg19_knownGene exon 44313290 44313599 0.000000 - . gene_id "WFDC10B"; transcript_id "NM_172131:uc002xpc.3";
+chr20 hg19_knownGene CDS 44333136 44333200 0.000000 - 1 gene_id "WFDC10B"; transcript_id "NM_172131:uc002xpc.3";
+chr20 hg19_knownGene exon 44333136 44333200 0.000000 - . gene_id "WFDC10B"; transcript_id "NM_172131:uc002xpc.3";
+chr20 hg19_knownGene CDS 44333557 44333630 0.000000 - 0 gene_id "WFDC10B"; transcript_id "NM_172131:uc002xpc.3";
+chr20 hg19_knownGene exon 44333557 44333658 0.000000 - . gene_id "WFDC10B"; transcript_id "NM_172131:uc002xpc.3";
+chr20 hg19_knownGene CDS 44330763 44330850 0.000000 + 0 gene_id "WFDC13"; transcript_id "NM_172005:uc002xpd.3";
+chr20 hg19_knownGene exon 44330655 44330850 0.000000 + . gene_id "WFDC13"; transcript_id "NM_172005:uc002xpd.3";
+chr20 hg19_knownGene CDS 44333083 44333233 0.000000 + 2 gene_id "WFDC13"; transcript_id "NM_172005:uc002xpd.3";
+chr20 hg19_knownGene exon 44333083 44333233 0.000000 + . gene_id "WFDC13"; transcript_id "NM_172005:uc002xpd.3";
+chr20 hg19_knownGene CDS 44334502 44334541 0.000000 + 1 gene_id "WFDC13"; transcript_id "NM_172005:uc002xpd.3";
+chr20 hg19_knownGene exon 44334502 44334566 0.000000 + . gene_id "WFDC13"; transcript_id "NM_172005:uc002xpd.3";
+chr20 hg19_knownGene exon 44336497 44337456 0.000000 + . gene_id "WFDC13"; transcript_id "NM_172005:uc002xpd.3";
+chr20 hg19_knownGene CDS 44351007 44351121 0.000000 + 0 gene_id "SPINT4"; transcript_id "NM_178455:uc002xpe.1";
+chr20 hg19_knownGene exon 44350988 44351121 0.000000 + . gene_id "SPINT4"; transcript_id "NM_178455:uc002xpe.1";
+chr20 hg19_knownGene CDS 44352519 44352696 0.000000 + 2 gene_id "SPINT4"; transcript_id "NM_178455:uc002xpe.1";
+chr20 hg19_knownGene exon 44352519 44352696 0.000000 + . gene_id "SPINT4"; transcript_id "NM_178455:uc002xpe.1";
+chr20 hg19_knownGene CDS 44354268 44354271 0.000000 + 1 gene_id "SPINT4"; transcript_id "NM_178455:uc002xpe.1";
+chr20 hg19_knownGene exon 44354268 44354335 0.000000 + . gene_id "SPINT4"; transcript_id "NM_178455:uc002xpe.1";
+chr20 hg19_knownGene exon 44407337 44407462 0.000000 + . gene_id "U6atac"; transcript_id ":uc021wel.1";
+chr20 hg19_knownGene CDS 44403070 44403083 0.000000 - 2 gene_id "WFDC3"; transcript_id "NM_080614:uc002xpf.1";
+chr20 hg19_knownGene exon 44402847 44403083 0.000000 - . gene_id "WFDC3"; transcript_id "NM_080614:uc002xpf.1";
+chr20 hg19_knownGene CDS 44404056 44404241 0.000000 - 2 gene_id "WFDC3"; transcript_id "NM_080614:uc002xpf.1";
+chr20 hg19_knownGene exon 44404056 44404241 0.000000 - . gene_id "WFDC3"; transcript_id "NM_080614:uc002xpf.1";
+chr20 hg19_knownGene CDS 44405714 44405848 0.000000 - 2 gene_id "WFDC3"; transcript_id "NM_080614:uc002xpf.1";
+chr20 hg19_knownGene exon 44405714 44405848 0.000000 - . gene_id "WFDC3"; transcript_id "NM_080614:uc002xpf.1";
+chr20 hg19_knownGene CDS 44416475 44416621 0.000000 - 2 gene_id "WFDC3"; transcript_id "NM_080614:uc002xpf.1";
+chr20 hg19_knownGene exon 44416475 44416621 0.000000 - . gene_id "WFDC3"; transcript_id "NM_080614:uc002xpf.1";
+chr20 hg19_knownGene CDS 44417570 44417698 0.000000 - 2 gene_id "WFDC3"; transcript_id "NM_080614:uc002xpf.1";
+chr20 hg19_knownGene exon 44417570 44417698 0.000000 - . gene_id "WFDC3"; transcript_id "NM_080614:uc002xpf.1";
+chr20 hg19_knownGene CDS 44418533 44418614 0.000000 - 0 gene_id "WFDC3"; transcript_id "NM_080614:uc002xpf.1";
+chr20 hg19_knownGene exon 44418533 44418621 0.000000 - . gene_id "WFDC3"; transcript_id "NM_080614:uc002xpf.1";
+chr20 hg19_knownGene exon 44420471 44420547 0.000000 - . gene_id "WFDC3"; transcript_id "NM_080614:uc002xpf.1";
+chr20 hg19_knownGene exon 44402847 44403083 0.000000 - . gene_id "WFDC3"; transcript_id "BC102013:uc002xpj.1";
+chr20 hg19_knownGene exon 44404056 44404241 0.000000 - . gene_id "WFDC3"; transcript_id "BC102013:uc002xpj.1";
+chr20 hg19_knownGene exon 44405714 44405848 0.000000 - . gene_id "WFDC3"; transcript_id "BC102013:uc002xpj.1";
+chr20 hg19_knownGene exon 44416475 44416621 0.000000 - . gene_id "WFDC3"; transcript_id "BC102013:uc002xpj.1";
+chr20 hg19_knownGene exon 44417570 44417698 0.000000 - . gene_id "WFDC3"; transcript_id "BC102013:uc002xpj.1";
+chr20 hg19_knownGene exon 44420471 44420547 0.000000 - . gene_id "WFDC3"; transcript_id "BC102013:uc002xpj.1";
+chr20 hg19_knownGene exon 44402847 44403083 0.000000 - . gene_id "WFDC3"; transcript_id "BC026014:uc002xph.1";
+chr20 hg19_knownGene exon 44404056 44404241 0.000000 - . gene_id "WFDC3"; transcript_id "BC026014:uc002xph.1";
+chr20 hg19_knownGene exon 44416475 44416621 0.000000 - . gene_id "WFDC3"; transcript_id "BC026014:uc002xph.1";
+chr20 hg19_knownGene exon 44417570 44417698 0.000000 - . gene_id "WFDC3"; transcript_id "BC026014:uc002xph.1";
+chr20 hg19_knownGene exon 44420471 44420547 0.000000 - . gene_id "WFDC3"; transcript_id "BC026014:uc002xph.1";
+chr20 hg19_knownGene exon 44402847 44403083 0.000000 - . gene_id "WFDC3"; transcript_id "BC102014:uc010ghh.1";
+chr20 hg19_knownGene exon 44404056 44404241 0.000000 - . gene_id "WFDC3"; transcript_id "BC102014:uc010ghh.1";
+chr20 hg19_knownGene exon 44416475 44416621 0.000000 - . gene_id "WFDC3"; transcript_id "BC102014:uc010ghh.1";
+chr20 hg19_knownGene exon 44420471 44420547 0.000000 - . gene_id "WFDC3"; transcript_id "BC102014:uc010ghh.1";
+chr20 hg19_knownGene CDS 44420644 44420748 0.000000 + 0 gene_id "DNTTIP1"; transcript_id "NM_052951:uc002xpk.3";
+chr20 hg19_knownGene exon 44420576 44420748 0.000000 + . gene_id "DNTTIP1"; transcript_id "NM_052951:uc002xpk.3";
+chr20 hg19_knownGene CDS 44421316 44421386 0.000000 + 0 gene_id "DNTTIP1"; transcript_id "NM_052951:uc002xpk.3";
+chr20 hg19_knownGene exon 44421316 44421386 0.000000 + . gene_id "DNTTIP1"; transcript_id "NM_052951:uc002xpk.3";
+chr20 hg19_knownGene CDS 44422560 44422656 0.000000 + 1 gene_id "DNTTIP1"; transcript_id "NM_052951:uc002xpk.3";
+chr20 hg19_knownGene exon 44422560 44422656 0.000000 + . gene_id "DNTTIP1"; transcript_id "NM_052951:uc002xpk.3";
+chr20 hg19_knownGene CDS 44423984 44424082 0.000000 + 0 gene_id "DNTTIP1"; transcript_id "NM_052951:uc002xpk.3";
+chr20 hg19_knownGene exon 44423984 44424082 0.000000 + . gene_id "DNTTIP1"; transcript_id "NM_052951:uc002xpk.3";
+chr20 hg19_knownGene CDS 44429713 44429781 0.000000 + 0 gene_id "DNTTIP1"; transcript_id "NM_052951:uc002xpk.3";
+chr20 hg19_knownGene exon 44429713 44429781 0.000000 + . gene_id "DNTTIP1"; transcript_id "NM_052951:uc002xpk.3";
+chr20 hg19_knownGene CDS 44430041 44430097 0.000000 + 0 gene_id "DNTTIP1"; transcript_id "NM_052951:uc002xpk.3";
+chr20 hg19_knownGene exon 44430041 44430097 0.000000 + . gene_id "DNTTIP1"; transcript_id "NM_052951:uc002xpk.3";
+chr20 hg19_knownGene CDS 44430638 44430696 0.000000 + 0 gene_id "DNTTIP1"; transcript_id "NM_052951:uc002xpk.3";
+chr20 hg19_knownGene exon 44430638 44430696 0.000000 + . gene_id "DNTTIP1"; transcript_id "NM_052951:uc002xpk.3";
+chr20 hg19_knownGene CDS 44431972 44432017 0.000000 + 1 gene_id "DNTTIP1"; transcript_id "NM_052951:uc002xpk.3";
+chr20 hg19_knownGene exon 44431972 44432017 0.000000 + . gene_id "DNTTIP1"; transcript_id "NM_052951:uc002xpk.3";
+chr20 hg19_knownGene CDS 44433785 44433843 0.000000 + 0 gene_id "DNTTIP1"; transcript_id "NM_052951:uc002xpk.3";
+chr20 hg19_knownGene exon 44433785 44433843 0.000000 + . gene_id "DNTTIP1"; transcript_id "NM_052951:uc002xpk.3";
+chr20 hg19_knownGene CDS 44433945 44434005 0.000000 + 1 gene_id "DNTTIP1"; transcript_id "NM_052951:uc002xpk.3";
+chr20 hg19_knownGene exon 44433945 44434005 0.000000 + . gene_id "DNTTIP1"; transcript_id "NM_052951:uc002xpk.3";
+chr20 hg19_knownGene CDS 44437753 44437824 0.000000 + 0 gene_id "DNTTIP1"; transcript_id "NM_052951:uc002xpk.3";
+chr20 hg19_knownGene exon 44437753 44437824 0.000000 + . gene_id "DNTTIP1"; transcript_id "NM_052951:uc002xpk.3";
+chr20 hg19_knownGene CDS 44439524 44439579 0.000000 + 0 gene_id "DNTTIP1"; transcript_id "NM_052951:uc002xpk.3";
+chr20 hg19_knownGene exon 44439524 44439579 0.000000 + . gene_id "DNTTIP1"; transcript_id "NM_052951:uc002xpk.3";
+chr20 hg19_knownGene CDS 44439696 44439831 0.000000 + 1 gene_id "DNTTIP1"; transcript_id "NM_052951:uc002xpk.3";
+chr20 hg19_knownGene exon 44439696 44440066 0.000000 + . gene_id "DNTTIP1"; transcript_id "NM_052951:uc002xpk.3";
+chr20 hg19_knownGene CDS 44441335 44441435 0.000000 + 0 gene_id "UBE2C"; transcript_id "NM_181799:uc002xpl.3";
+chr20 hg19_knownGene exon 44441255 44441435 0.000000 + . gene_id "UBE2C"; transcript_id "NM_181799:uc002xpl.3";
+chr20 hg19_knownGene CDS 44442076 44442103 0.000000 + 1 gene_id "UBE2C"; transcript_id "NM_181799:uc002xpl.3";
+chr20 hg19_knownGene exon 44442076 44442103 0.000000 + . gene_id "UBE2C"; transcript_id "NM_181799:uc002xpl.3";
+chr20 hg19_knownGene CDS 44443023 44443109 0.000000 + 0 gene_id "UBE2C"; transcript_id "NM_181799:uc002xpl.3";
+chr20 hg19_knownGene exon 44443023 44443109 0.000000 + . gene_id "UBE2C"; transcript_id "NM_181799:uc002xpl.3";
+chr20 hg19_knownGene CDS 44444029 44444179 0.000000 + 0 gene_id "UBE2C"; transcript_id "NM_181799:uc002xpl.3";
+chr20 hg19_knownGene exon 44444029 44444179 0.000000 + . gene_id "UBE2C"; transcript_id "NM_181799:uc002xpl.3";
+chr20 hg19_knownGene CDS 44444493 44444552 0.000000 + 2 gene_id "UBE2C"; transcript_id "NM_181799:uc002xpl.3";
+chr20 hg19_knownGene exon 44444493 44444552 0.000000 + . gene_id "UBE2C"; transcript_id "NM_181799:uc002xpl.3";
+chr20 hg19_knownGene CDS 44445348 44445403 0.000000 + 2 gene_id "UBE2C"; transcript_id "NM_181799:uc002xpl.3";
+chr20 hg19_knownGene exon 44445348 44445596 0.000000 + . gene_id "UBE2C"; transcript_id "NM_181799:uc002xpl.3";
+chr20 hg19_knownGene CDS 44441335 44441435 0.000000 + 0 gene_id "UBE2C"; transcript_id "NM_007019:uc002xpm.3";
+chr20 hg19_knownGene exon 44441255 44441435 0.000000 + . gene_id "UBE2C"; transcript_id "NM_007019:uc002xpm.3";
+chr20 hg19_knownGene CDS 44442076 44442103 0.000000 + 1 gene_id "UBE2C"; transcript_id "NM_007019:uc002xpm.3";
+chr20 hg19_knownGene exon 44442076 44442103 0.000000 + . gene_id "UBE2C"; transcript_id "NM_007019:uc002xpm.3";
+chr20 hg19_knownGene CDS 44443023 44443109 0.000000 + 0 gene_id "UBE2C"; transcript_id "NM_007019:uc002xpm.3";
+chr20 hg19_knownGene exon 44443023 44443109 0.000000 + . gene_id "UBE2C"; transcript_id "NM_007019:uc002xpm.3";
+chr20 hg19_knownGene CDS 44444180 44444384 0.000000 + 0 gene_id "UBE2C"; transcript_id "NM_007019:uc002xpm.3";
+chr20 hg19_knownGene exon 44444180 44444384 0.000000 + . gene_id "UBE2C"; transcript_id "NM_007019:uc002xpm.3";
+chr20 hg19_knownGene CDS 44444493 44444552 0.000000 + 2 gene_id "UBE2C"; transcript_id "NM_007019:uc002xpm.3";
+chr20 hg19_knownGene exon 44444493 44444552 0.000000 + . gene_id "UBE2C"; transcript_id "NM_007019:uc002xpm.3";
+chr20 hg19_knownGene CDS 44445348 44445403 0.000000 + 2 gene_id "UBE2C"; transcript_id "NM_007019:uc002xpm.3";
+chr20 hg19_knownGene exon 44445348 44445596 0.000000 + . gene_id "UBE2C"; transcript_id "NM_007019:uc002xpm.3";
+chr20 hg19_knownGene CDS 44442092 44442103 0.000000 + 0 gene_id "UBE2C"; transcript_id "NM_181802:uc002xpn.3";
+chr20 hg19_knownGene exon 44441255 44442103 0.000000 + . gene_id "UBE2C"; transcript_id "NM_181802:uc002xpn.3";
+chr20 hg19_knownGene CDS 44443023 44443109 0.000000 + 0 gene_id "UBE2C"; transcript_id "NM_181802:uc002xpn.3";
+chr20 hg19_knownGene exon 44443023 44443109 0.000000 + . gene_id "UBE2C"; transcript_id "NM_181802:uc002xpn.3";
+chr20 hg19_knownGene CDS 44444180 44444384 0.000000 + 0 gene_id "UBE2C"; transcript_id "NM_181802:uc002xpn.3";
+chr20 hg19_knownGene exon 44444180 44444384 0.000000 + . gene_id "UBE2C"; transcript_id "NM_181802:uc002xpn.3";
+chr20 hg19_knownGene CDS 44444493 44444552 0.000000 + 2 gene_id "UBE2C"; transcript_id "NM_181802:uc002xpn.3";
+chr20 hg19_knownGene exon 44444493 44444552 0.000000 + . gene_id "UBE2C"; transcript_id "NM_181802:uc002xpn.3";
+chr20 hg19_knownGene CDS 44445348 44445403 0.000000 + 2 gene_id "UBE2C"; transcript_id "NM_181802:uc002xpn.3";
+chr20 hg19_knownGene exon 44445348 44445596 0.000000 + . gene_id "UBE2C"; transcript_id "NM_181802:uc002xpn.3";
+chr20 hg19_knownGene CDS 44441335 44441435 0.000000 + 0 gene_id "UBE2C"; transcript_id "NM_181800:uc002xpo.3";
+chr20 hg19_knownGene exon 44441255 44441435 0.000000 + . gene_id "UBE2C"; transcript_id "NM_181800:uc002xpo.3";
+chr20 hg19_knownGene CDS 44442076 44442103 0.000000 + 1 gene_id "UBE2C"; transcript_id "NM_181800:uc002xpo.3";
+chr20 hg19_knownGene exon 44442076 44442103 0.000000 + . gene_id "UBE2C"; transcript_id "NM_181800:uc002xpo.3";
+chr20 hg19_knownGene CDS 44444180 44444384 0.000000 + 0 gene_id "UBE2C"; transcript_id "NM_181800:uc002xpo.3";
+chr20 hg19_knownGene exon 44444180 44444384 0.000000 + . gene_id "UBE2C"; transcript_id "NM_181800:uc002xpo.3";
+chr20 hg19_knownGene CDS 44444493 44444552 0.000000 + 2 gene_id "UBE2C"; transcript_id "NM_181800:uc002xpo.3";
+chr20 hg19_knownGene exon 44444493 44444552 0.000000 + . gene_id "UBE2C"; transcript_id "NM_181800:uc002xpo.3";
+chr20 hg19_knownGene CDS 44445348 44445403 0.000000 + 2 gene_id "UBE2C"; transcript_id "NM_181800:uc002xpo.3";
+chr20 hg19_knownGene exon 44445348 44445596 0.000000 + . gene_id "UBE2C"; transcript_id "NM_181800:uc002xpo.3";
+chr20 hg19_knownGene CDS 44441335 44441435 0.000000 + 0 gene_id "UBE2C"; transcript_id "NM_181803:uc002xpp.3";
+chr20 hg19_knownGene exon 44441255 44441435 0.000000 + . gene_id "UBE2C"; transcript_id "NM_181803:uc002xpp.3";
+chr20 hg19_knownGene CDS 44442076 44442103 0.000000 + 1 gene_id "UBE2C"; transcript_id "NM_181803:uc002xpp.3";
+chr20 hg19_knownGene exon 44442076 44442103 0.000000 + . gene_id "UBE2C"; transcript_id "NM_181803:uc002xpp.3";
+chr20 hg19_knownGene CDS 44444493 44444513 0.000000 + 0 gene_id "UBE2C"; transcript_id "NM_181803:uc002xpp.3";
+chr20 hg19_knownGene exon 44444493 44444552 0.000000 + . gene_id "UBE2C"; transcript_id "NM_181803:uc002xpp.3";
+chr20 hg19_knownGene exon 44445348 44445596 0.000000 + . gene_id "UBE2C"; transcript_id "NM_181803:uc002xpp.3";
+chr20 hg19_knownGene exon 44441672 44441929 0.000000 + . gene_id "UBE2C"; transcript_id "NM_181801:uc002xpq.3";
+chr20 hg19_knownGene CDS 44442092 44442103 0.000000 + 0 gene_id "UBE2C"; transcript_id "NM_181801:uc002xpq.3";
+chr20 hg19_knownGene exon 44442076 44442103 0.000000 + . gene_id "UBE2C"; transcript_id "NM_181801:uc002xpq.3";
+chr20 hg19_knownGene CDS 44443023 44443109 0.000000 + 0 gene_id "UBE2C"; transcript_id "NM_181801:uc002xpq.3";
+chr20 hg19_knownGene exon 44443023 44443109 0.000000 + . gene_id "UBE2C"; transcript_id "NM_181801:uc002xpq.3";
+chr20 hg19_knownGene CDS 44444180 44444384 0.000000 + 0 gene_id "UBE2C"; transcript_id "NM_181801:uc002xpq.3";
+chr20 hg19_knownGene exon 44444180 44444384 0.000000 + . gene_id "UBE2C"; transcript_id "NM_181801:uc002xpq.3";
+chr20 hg19_knownGene CDS 44444493 44444552 0.000000 + 2 gene_id "UBE2C"; transcript_id "NM_181801:uc002xpq.3";
+chr20 hg19_knownGene exon 44444493 44444552 0.000000 + . gene_id "UBE2C"; transcript_id "NM_181801:uc002xpq.3";
+chr20 hg19_knownGene CDS 44445348 44445403 0.000000 + 2 gene_id "UBE2C"; transcript_id "NM_181801:uc002xpq.3";
+chr20 hg19_knownGene exon 44445348 44445596 0.000000 + . gene_id "UBE2C"; transcript_id "NM_181801:uc002xpq.3";
+chr20 hg19_knownGene CDS 44451990 44452018 0.000000 - 2 gene_id "TNNC2"; transcript_id "NM_003279:uc002xpr.3";
+chr20 hg19_knownGene exon 44451855 44452018 0.000000 - . gene_id "TNNC2"; transcript_id "NM_003279:uc002xpr.3";
+chr20 hg19_knownGene CDS 44452630 44452766 0.000000 - 1 gene_id "TNNC2"; transcript_id "NM_003279:uc002xpr.3";
+chr20 hg19_knownGene exon 44452630 44452766 0.000000 - . gene_id "TNNC2"; transcript_id "NM_003279:uc002xpr.3";
+chr20 hg19_knownGene CDS 44452931 44453045 0.000000 - 2 gene_id "TNNC2"; transcript_id "NM_003279:uc002xpr.3";
+chr20 hg19_knownGene exon 44452931 44453045 0.000000 - . gene_id "TNNC2"; transcript_id "NM_003279:uc002xpr.3";
+chr20 hg19_knownGene CDS 44453134 44453277 0.000000 - 2 gene_id "TNNC2"; transcript_id "NM_003279:uc002xpr.3";
+chr20 hg19_knownGene exon 44453134 44453277 0.000000 - . gene_id "TNNC2"; transcript_id "NM_003279:uc002xpr.3";
+chr20 hg19_knownGene CDS 44453422 44453473 0.000000 - 0 gene_id "TNNC2"; transcript_id "NM_003279:uc002xpr.3";
+chr20 hg19_knownGene exon 44453422 44453473 0.000000 - . gene_id "TNNC2"; transcript_id "NM_003279:uc002xpr.3";
+chr20 hg19_knownGene CDS 44455885 44455887 0.000000 - 0 gene_id "TNNC2"; transcript_id "NM_003279:uc002xpr.3";
+chr20 hg19_knownGene exon 44455885 44455953 0.000000 - . gene_id "TNNC2"; transcript_id "NM_003279:uc002xpr.3";
+chr20 hg19_knownGene CDS 44469398 44469949 0.000000 + 0 gene_id "SNX21"; transcript_id "AF258570:uc002xpz.1";
+chr20 hg19_knownGene exon 44469087 44471102 0.000000 + . gene_id "SNX21"; transcript_id "AF258570:uc002xpz.1";
+chr20 hg19_knownGene CDS 44462559 44462579 0.000000 + 0 gene_id "SNX21"; transcript_id "NM_001042632:uc002xpt.1";
+chr20 hg19_knownGene exon 44462470 44462579 0.000000 + . gene_id "SNX21"; transcript_id "NM_001042632:uc002xpt.1";
+chr20 hg19_knownGene CDS 44462840 44463107 0.000000 + 0 gene_id "SNX21"; transcript_id "NM_001042632:uc002xpt.1";
+chr20 hg19_knownGene exon 44462840 44463107 0.000000 + . gene_id "SNX21"; transcript_id "NM_001042632:uc002xpt.1";
+chr20 hg19_knownGene CDS 44463598 44463748 0.000000 + 2 gene_id "SNX21"; transcript_id "NM_001042632:uc002xpt.1";
+chr20 hg19_knownGene exon 44463598 44463748 0.000000 + . gene_id "SNX21"; transcript_id "NM_001042632:uc002xpt.1";
+chr20 hg19_knownGene CDS 44469278 44469293 0.000000 + 1 gene_id "SNX21"; transcript_id "NM_001042632:uc002xpt.1";
+chr20 hg19_knownGene exon 44469278 44471914 0.000000 + . gene_id "SNX21"; transcript_id "NM_001042632:uc002xpt.1";
+chr20 hg19_knownGene CDS 44462559 44462579 0.000000 + 0 gene_id "SNX21"; transcript_id "NM_152897:uc002xps.1";
+chr20 hg19_knownGene exon 44462470 44462579 0.000000 + . gene_id "SNX21"; transcript_id "NM_152897:uc002xps.1";
+chr20 hg19_knownGene CDS 44462840 44463107 0.000000 + 0 gene_id "SNX21"; transcript_id "NM_152897:uc002xps.1";
+chr20 hg19_knownGene exon 44462840 44463107 0.000000 + . gene_id "SNX21"; transcript_id "NM_152897:uc002xps.1";
+chr20 hg19_knownGene CDS 44463598 44463755 0.000000 + 2 gene_id "SNX21"; transcript_id "NM_152897:uc002xps.1";
+chr20 hg19_knownGene exon 44463598 44463755 0.000000 + . gene_id "SNX21"; transcript_id "NM_152897:uc002xps.1";
+chr20 hg19_knownGene CDS 44469278 44469419 0.000000 + 0 gene_id "SNX21"; transcript_id "NM_152897:uc002xps.1";
+chr20 hg19_knownGene exon 44469278 44469419 0.000000 + . gene_id "SNX21"; transcript_id "NM_152897:uc002xps.1";
+chr20 hg19_knownGene CDS 44470672 44470679 0.000000 + 2 gene_id "SNX21"; transcript_id "NM_152897:uc002xps.1";
+chr20 hg19_knownGene exon 44470672 44471914 0.000000 + . gene_id "SNX21"; transcript_id "NM_152897:uc002xps.1";
+chr20 hg19_knownGene CDS 44462559 44462579 0.000000 + 0 gene_id "SNX21"; transcript_id "NM_001042633:uc002xpu.1";
+chr20 hg19_knownGene exon 44462470 44462579 0.000000 + . gene_id "SNX21"; transcript_id "NM_001042633:uc002xpu.1";
+chr20 hg19_knownGene CDS 44462840 44463107 0.000000 + 0 gene_id "SNX21"; transcript_id "NM_001042633:uc002xpu.1";
+chr20 hg19_knownGene exon 44462840 44463107 0.000000 + . gene_id "SNX21"; transcript_id "NM_001042633:uc002xpu.1";
+chr20 hg19_knownGene CDS 44463598 44463755 0.000000 + 2 gene_id "SNX21"; transcript_id "NM_001042633:uc002xpu.1";
+chr20 hg19_knownGene exon 44463598 44463755 0.000000 + . gene_id "SNX21"; transcript_id "NM_001042633:uc002xpu.1";
+chr20 hg19_knownGene CDS 44469087 44469097 0.000000 + 0 gene_id "SNX21"; transcript_id "NM_001042633:uc002xpu.1";
+chr20 hg19_knownGene exon 44469087 44469097 0.000000 + . gene_id "SNX21"; transcript_id "NM_001042633:uc002xpu.1";
+chr20 hg19_knownGene CDS 44469278 44469293 0.000000 + 1 gene_id "SNX21"; transcript_id "NM_001042633:uc002xpu.1";
+chr20 hg19_knownGene exon 44469278 44471914 0.000000 + . gene_id "SNX21"; transcript_id "NM_001042633:uc002xpu.1";
+chr20 hg19_knownGene CDS 44462559 44462579 0.000000 + 0 gene_id "SNX21"; transcript_id "NM_033421:uc002xpv.1";
+chr20 hg19_knownGene exon 44462470 44462579 0.000000 + . gene_id "SNX21"; transcript_id "NM_033421:uc002xpv.1";
+chr20 hg19_knownGene CDS 44462840 44463107 0.000000 + 0 gene_id "SNX21"; transcript_id "NM_033421:uc002xpv.1";
+chr20 hg19_knownGene exon 44462840 44463107 0.000000 + . gene_id "SNX21"; transcript_id "NM_033421:uc002xpv.1";
+chr20 hg19_knownGene CDS 44463598 44463755 0.000000 + 2 gene_id "SNX21"; transcript_id "NM_033421:uc002xpv.1";
+chr20 hg19_knownGene exon 44463598 44463755 0.000000 + . gene_id "SNX21"; transcript_id "NM_033421:uc002xpv.1";
+chr20 hg19_knownGene CDS 44469278 44469949 0.000000 + 0 gene_id "SNX21"; transcript_id "NM_033421:uc002xpv.1";
+chr20 hg19_knownGene exon 44469278 44471914 0.000000 + . gene_id "SNX21"; transcript_id "NM_033421:uc002xpv.1";
+chr20 hg19_knownGene exon 44462470 44462579 0.000000 + . gene_id "SNX21"; transcript_id "BC012904:uc002xpw.1";
+chr20 hg19_knownGene exon 44462840 44463107 0.000000 + . gene_id "SNX21"; transcript_id "BC012904:uc002xpw.1";
+chr20 hg19_knownGene exon 44463598 44463755 0.000000 + . gene_id "SNX21"; transcript_id "BC012904:uc002xpw.1";
+chr20 hg19_knownGene exon 44466907 44466999 0.000000 + . gene_id "SNX21"; transcript_id "BC012904:uc002xpw.1";
+chr20 hg19_knownGene exon 44468961 44469097 0.000000 + . gene_id "SNX21"; transcript_id "BC012904:uc002xpw.1";
+chr20 hg19_knownGene CDS 44469398 44469949 0.000000 + 0 gene_id "SNX21"; transcript_id "BC012904:uc002xpw.1";
+chr20 hg19_knownGene exon 44469278 44471914 0.000000 + . gene_id "SNX21"; transcript_id "BC012904:uc002xpw.1";
+chr20 hg19_knownGene CDS 44462846 44463107 0.000000 + 0 gene_id "SNX21"; transcript_id "AK297622:uc010zxd.1";
+chr20 hg19_knownGene exon 44462807 44463107 0.000000 + . gene_id "SNX21"; transcript_id "AK297622:uc010zxd.1";
+chr20 hg19_knownGene CDS 44463598 44463755 0.000000 + 2 gene_id "SNX21"; transcript_id "AK297622:uc010zxd.1";
+chr20 hg19_knownGene exon 44463598 44463755 0.000000 + . gene_id "SNX21"; transcript_id "AK297622:uc010zxd.1";
+chr20 hg19_knownGene CDS 44469087 44469097 0.000000 + 0 gene_id "SNX21"; transcript_id "AK297622:uc010zxd.1";
+chr20 hg19_knownGene exon 44469087 44469097 0.000000 + . gene_id "SNX21"; transcript_id "AK297622:uc010zxd.1";
+chr20 hg19_knownGene CDS 44469278 44469293 0.000000 + 1 gene_id "SNX21"; transcript_id "AK297622:uc010zxd.1";
+chr20 hg19_knownGene exon 44469278 44471914 0.000000 + . gene_id "SNX21"; transcript_id "AK297622:uc010zxd.1";
+chr20 hg19_knownGene exon 44463216 44463755 0.000000 + . gene_id "SNX21"; transcript_id "AX746933:uc002xpy.1";
+chr20 hg19_knownGene exon 44469087 44469097 0.000000 + . gene_id "SNX21"; transcript_id "AX746933:uc002xpy.1";
+chr20 hg19_knownGene CDS 44469398 44469949 0.000000 + 0 gene_id "SNX21"; transcript_id "AX746933:uc002xpy.1";
+chr20 hg19_knownGene exon 44469278 44471914 0.000000 + . gene_id "SNX21"; transcript_id "AX746933:uc002xpy.1";
+chr20 hg19_knownGene CDS 44470480 44470595 0.000000 - 2 gene_id "ACOT8"; transcript_id "NM_005469:uc002xqa.2";
+chr20 hg19_knownGene exon 44470360 44470595 0.000000 - . gene_id "ACOT8"; transcript_id "NM_005469:uc002xqa.2";
+chr20 hg19_knownGene CDS 44472166 44472360 0.000000 - 2 gene_id "ACOT8"; transcript_id "NM_005469:uc002xqa.2";
+chr20 hg19_knownGene exon 44472166 44472360 0.000000 - . gene_id "ACOT8"; transcript_id "NM_005469:uc002xqa.2";
+chr20 hg19_knownGene CDS 44472902 44473059 0.000000 - 1 gene_id "ACOT8"; transcript_id "NM_005469:uc002xqa.2";
+chr20 hg19_knownGene exon 44472902 44473059 0.000000 - . gene_id "ACOT8"; transcript_id "NM_005469:uc002xqa.2";
+chr20 hg19_knownGene CDS 44477089 44477314 0.000000 - 2 gene_id "ACOT8"; transcript_id "NM_005469:uc002xqa.2";
+chr20 hg19_knownGene exon 44477089 44477314 0.000000 - . gene_id "ACOT8"; transcript_id "NM_005469:uc002xqa.2";
+chr20 hg19_knownGene CDS 44483798 44483931 0.000000 - 1 gene_id "ACOT8"; transcript_id "NM_005469:uc002xqa.2";
+chr20 hg19_knownGene exon 44483798 44483931 0.000000 - . gene_id "ACOT8"; transcript_id "NM_005469:uc002xqa.2";
+chr20 hg19_knownGene CDS 44485827 44485954 0.000000 - 0 gene_id "ACOT8"; transcript_id "NM_005469:uc002xqa.2";
+chr20 hg19_knownGene exon 44485827 44486048 0.000000 - . gene_id "ACOT8"; transcript_id "NM_005469:uc002xqa.2";
+chr20 hg19_knownGene CDS 44472825 44473059 0.000000 - 1 gene_id "ACOT8"; transcript_id "AK296973:uc010zxe.2";
+chr20 hg19_knownGene exon 44470662 44473059 0.000000 - . gene_id "ACOT8"; transcript_id "AK296973:uc010zxe.2";
+chr20 hg19_knownGene CDS 44477089 44477314 0.000000 - 2 gene_id "ACOT8"; transcript_id "AK296973:uc010zxe.2";
+chr20 hg19_knownGene exon 44477089 44477314 0.000000 - . gene_id "ACOT8"; transcript_id "AK296973:uc010zxe.2";
+chr20 hg19_knownGene CDS 44483798 44483931 0.000000 - 1 gene_id "ACOT8"; transcript_id "AK296973:uc010zxe.2";
+chr20 hg19_knownGene exon 44483798 44483931 0.000000 - . gene_id "ACOT8"; transcript_id "AK296973:uc010zxe.2";
+chr20 hg19_knownGene CDS 44485827 44485954 0.000000 - 0 gene_id "ACOT8"; transcript_id "AK296973:uc010zxe.2";
+chr20 hg19_knownGene exon 44485827 44486048 0.000000 - . gene_id "ACOT8"; transcript_id "AK296973:uc010zxe.2";
+chr20 hg19_knownGene CDS 44472825 44473059 0.000000 - 1 gene_id "ACOT8"; transcript_id "AK292494:uc002xqc.2";
+chr20 hg19_knownGene exon 44470662 44473059 0.000000 - . gene_id "ACOT8"; transcript_id "AK292494:uc002xqc.2";
+chr20 hg19_knownGene CDS 44477089 44477314 0.000000 - 2 gene_id "ACOT8"; transcript_id "AK292494:uc002xqc.2";
+chr20 hg19_knownGene exon 44477089 44477314 0.000000 - . gene_id "ACOT8"; transcript_id "AK292494:uc002xqc.2";
+chr20 hg19_knownGene CDS 44485827 44485929 0.000000 - 0 gene_id "ACOT8"; transcript_id "AK292494:uc002xqc.2";
+chr20 hg19_knownGene exon 44485827 44486048 0.000000 - . gene_id "ACOT8"; transcript_id "AK292494:uc002xqc.2";
+chr20 hg19_knownGene CDS 44472006 44472037 0.000000 - 2 gene_id "ACOT8"; transcript_id "AK298783:uc010zxf.2";
+chr20 hg19_knownGene exon 44471386 44472037 0.000000 - . gene_id "ACOT8"; transcript_id "AK298783:uc010zxf.2";
+chr20 hg19_knownGene CDS 44472166 44472360 0.000000 - 2 gene_id "ACOT8"; transcript_id "AK298783:uc010zxf.2";
+chr20 hg19_knownGene exon 44472166 44472360 0.000000 - . gene_id "ACOT8"; transcript_id "AK298783:uc010zxf.2";
+chr20 hg19_knownGene CDS 44472902 44473059 0.000000 - 1 gene_id "ACOT8"; transcript_id "AK298783:uc010zxf.2";
+chr20 hg19_knownGene exon 44472902 44473059 0.000000 - . gene_id "ACOT8"; transcript_id "AK298783:uc010zxf.2";
+chr20 hg19_knownGene CDS 44485827 44485954 0.000000 - 0 gene_id "ACOT8"; transcript_id "AK298783:uc010zxf.2";
+chr20 hg19_knownGene exon 44485827 44486048 0.000000 - . gene_id "ACOT8"; transcript_id "AK298783:uc010zxf.2";
+chr20 hg19_knownGene exon 44486220 44486619 0.000000 + . gene_id "ZSWIM3"; transcript_id "NR_037628:uc010zxg.2";
+chr20 hg19_knownGene CDS 44501328 44501464 0.000000 + 0 gene_id "ZSWIM3"; transcript_id "NR_037628:uc010zxg.2";
+chr20 hg19_knownGene exon 44501310 44501464 0.000000 + . gene_id "ZSWIM3"; transcript_id "NR_037628:uc010zxg.2";
+chr20 hg19_knownGene CDS 44505353 44507285 0.000000 + 1 gene_id "ZSWIM3"; transcript_id "NR_037628:uc010zxg.2";
+chr20 hg19_knownGene exon 44505353 44507769 0.000000 + . gene_id "ZSWIM3"; transcript_id "NR_037628:uc010zxg.2";
+chr20 hg19_knownGene CDS 44486465 44486619 0.000000 + 0 gene_id "ZSWIM3"; transcript_id "NM_080752:uc002xqd.3";
+chr20 hg19_knownGene exon 44486220 44486619 0.000000 + . gene_id "ZSWIM3"; transcript_id "NM_080752:uc002xqd.3";
+chr20 hg19_knownGene CDS 44505353 44507285 0.000000 + 1 gene_id "ZSWIM3"; transcript_id "NM_080752:uc002xqd.3";
+chr20 hg19_knownGene exon 44505353 44507769 0.000000 + . gene_id "ZSWIM3"; transcript_id "NM_080752:uc002xqd.3";
+chr20 hg19_knownGene CDS 44511232 44512686 0.000000 + 0 gene_id "ZSWIM1"; transcript_id "CCDS13382:uc021wem.1";
+chr20 hg19_knownGene exon 44511232 44512689 0.000000 + . gene_id "ZSWIM1"; transcript_id "CCDS13382:uc021wem.1";
+chr20 hg19_knownGene exon 44509848 44509900 0.000000 + . gene_id "ZSWIM1"; transcript_id "NM_080603:uc010ghi.3";
+chr20 hg19_knownGene CDS 44511232 44512686 0.000000 + 0 gene_id "ZSWIM1"; transcript_id "NM_080603:uc010ghi.3";
+chr20 hg19_knownGene exon 44511172 44513905 0.000000 + . gene_id "ZSWIM1"; transcript_id "NM_080603:uc010ghi.3";
+chr20 hg19_knownGene CDS 44515159 44515784 0.000000 - 2 gene_id "SPATA25"; transcript_id "NM_080608:uc002xqf.3";
+chr20 hg19_knownGene exon 44515130 44515784 0.000000 - . gene_id "SPATA25"; transcript_id "NM_080608:uc002xqf.3";
+chr20 hg19_knownGene CDS 44516175 44516229 0.000000 - 0 gene_id "SPATA25"; transcript_id "NM_080608:uc002xqf.3";
+chr20 hg19_knownGene exon 44516175 44516238 0.000000 - . gene_id "SPATA25"; transcript_id "NM_080608:uc002xqf.3";
+chr20 hg19_knownGene CDS 44517400 44517512 0.000000 - 2 gene_id "NEURL2"; transcript_id "NM_080749:uc002xqg.1";
+chr20 hg19_knownGene exon 44517267 44517512 0.000000 - . gene_id "NEURL2"; transcript_id "NM_080749:uc002xqg.1";
+chr20 hg19_knownGene CDS 44518889 44519630 0.000000 - 0 gene_id "NEURL2"; transcript_id "NM_080749:uc002xqg.1";
+chr20 hg19_knownGene exon 44518889 44519901 0.000000 - . gene_id "NEURL2"; transcript_id "NM_080749:uc002xqg.1";
+chr20 hg19_knownGene CDS 44519965 44520018 0.000000 + 0 gene_id "CTSA"; transcript_id "NM_000308:uc002xqh.3";
+chr20 hg19_knownGene exon 44519591 44520018 0.000000 + . gene_id "CTSA"; transcript_id "NM_000308:uc002xqh.3";
+chr20 hg19_knownGene CDS 44520208 44520401 0.000000 + 0 gene_id "CTSA"; transcript_id "NM_000308:uc002xqh.3";
+chr20 hg19_knownGene exon 44520208 44520401 0.000000 + . gene_id "CTSA"; transcript_id "NM_000308:uc002xqh.3";
+chr20 hg19_knownGene CDS 44520555 44520666 0.000000 + 1 gene_id "CTSA"; transcript_id "NM_000308:uc002xqh.3";
+chr20 hg19_knownGene exon 44520555 44520666 0.000000 + . gene_id "CTSA"; transcript_id "NM_000308:uc002xqh.3";
+chr20 hg19_knownGene CDS 44520912 44520962 0.000000 + 0 gene_id "CTSA"; transcript_id "NM_000308:uc002xqh.3";
+chr20 hg19_knownGene exon 44520912 44520962 0.000000 + . gene_id "CTSA"; transcript_id "NM_000308:uc002xqh.3";
+chr20 hg19_knownGene CDS 44521037 44521123 0.000000 + 0 gene_id "CTSA"; transcript_id "NM_000308:uc002xqh.3";
+chr20 hg19_knownGene exon 44521037 44521123 0.000000 + . gene_id "CTSA"; transcript_id "NM_000308:uc002xqh.3";
+chr20 hg19_knownGene CDS 44521364 44521519 0.000000 + 0 gene_id "CTSA"; transcript_id "NM_000308:uc002xqh.3";
+chr20 hg19_knownGene exon 44521364 44521519 0.000000 + . gene_id "CTSA"; transcript_id "NM_000308:uc002xqh.3";
+chr20 hg19_knownGene CDS 44521859 44521950 0.000000 + 0 gene_id "CTSA"; transcript_id "NM_000308:uc002xqh.3";
+chr20 hg19_knownGene exon 44521859 44521950 0.000000 + . gene_id "CTSA"; transcript_id "NM_000308:uc002xqh.3";
+chr20 hg19_knownGene CDS 44522627 44522711 0.000000 + 1 gene_id "CTSA"; transcript_id "NM_000308:uc002xqh.3";
+chr20 hg19_knownGene exon 44522627 44522711 0.000000 + . gene_id "CTSA"; transcript_id "NM_000308:uc002xqh.3";
+chr20 hg19_knownGene CDS 44523289 44523380 0.000000 + 0 gene_id "CTSA"; transcript_id "NM_000308:uc002xqh.3";
+chr20 hg19_knownGene exon 44523289 44523380 0.000000 + . gene_id "CTSA"; transcript_id "NM_000308:uc002xqh.3";
+chr20 hg19_knownGene CDS 44523462 44523540 0.000000 + 1 gene_id "CTSA"; transcript_id "NM_000308:uc002xqh.3";
+chr20 hg19_knownGene exon 44523462 44523540 0.000000 + . gene_id "CTSA"; transcript_id "NM_000308:uc002xqh.3";
+chr20 hg19_knownGene CDS 44523633 44523772 0.000000 + 0 gene_id "CTSA"; transcript_id "NM_000308:uc002xqh.3";
+chr20 hg19_knownGene exon 44523633 44523772 0.000000 + . gene_id "CTSA"; transcript_id "NM_000308:uc002xqh.3";
+chr20 hg19_knownGene CDS 44525604 44525679 0.000000 + 1 gene_id "CTSA"; transcript_id "NM_000308:uc002xqh.3";
+chr20 hg19_knownGene exon 44525604 44525679 0.000000 + . gene_id "CTSA"; transcript_id "NM_000308:uc002xqh.3";
+chr20 hg19_knownGene CDS 44526356 44526445 0.000000 + 0 gene_id "CTSA"; transcript_id "NM_000308:uc002xqh.3";
+chr20 hg19_knownGene exon 44526356 44526445 0.000000 + . gene_id "CTSA"; transcript_id "NM_000308:uc002xqh.3";
+chr20 hg19_knownGene CDS 44526644 44526748 0.000000 + 0 gene_id "CTSA"; transcript_id "NM_000308:uc002xqh.3";
+chr20 hg19_knownGene exon 44526644 44526748 0.000000 + . gene_id "CTSA"; transcript_id "NM_000308:uc002xqh.3";
+chr20 hg19_knownGene CDS 44527006 44527086 0.000000 + 0 gene_id "CTSA"; transcript_id "NM_000308:uc002xqh.3";
+chr20 hg19_knownGene exon 44527006 44527458 0.000000 + . gene_id "CTSA"; transcript_id "NM_000308:uc002xqh.3";
+chr20 hg19_knownGene exon 44519591 44520064 0.000000 + . gene_id "CTSA"; transcript_id "NM_001127695:uc002xqj.4";
+chr20 hg19_knownGene CDS 44520208 44520401 0.000000 + 0 gene_id "CTSA"; transcript_id "NM_001127695:uc002xqj.4";
+chr20 hg19_knownGene exon 44520208 44520401 0.000000 + . gene_id "CTSA"; transcript_id "NM_001127695:uc002xqj.4";
+chr20 hg19_knownGene CDS 44520555 44520666 0.000000 + 1 gene_id "CTSA"; transcript_id "NM_001127695:uc002xqj.4";
+chr20 hg19_knownGene exon 44520555 44520666 0.000000 + . gene_id "CTSA"; transcript_id "NM_001127695:uc002xqj.4";
+chr20 hg19_knownGene CDS 44520912 44520962 0.000000 + 0 gene_id "CTSA"; transcript_id "NM_001127695:uc002xqj.4";
+chr20 hg19_knownGene exon 44520912 44520962 0.000000 + . gene_id "CTSA"; transcript_id "NM_001127695:uc002xqj.4";
+chr20 hg19_knownGene CDS 44521037 44521123 0.000000 + 0 gene_id "CTSA"; transcript_id "NM_001127695:uc002xqj.4";
+chr20 hg19_knownGene exon 44521037 44521123 0.000000 + . gene_id "CTSA"; transcript_id "NM_001127695:uc002xqj.4";
+chr20 hg19_knownGene CDS 44521364 44521519 0.000000 + 0 gene_id "CTSA"; transcript_id "NM_001127695:uc002xqj.4";
+chr20 hg19_knownGene exon 44521364 44521519 0.000000 + . gene_id "CTSA"; transcript_id "NM_001127695:uc002xqj.4";
+chr20 hg19_knownGene CDS 44521859 44521950 0.000000 + 0 gene_id "CTSA"; transcript_id "NM_001127695:uc002xqj.4";
+chr20 hg19_knownGene exon 44521859 44521950 0.000000 + . gene_id "CTSA"; transcript_id "NM_001127695:uc002xqj.4";
+chr20 hg19_knownGene CDS 44522627 44522711 0.000000 + 1 gene_id "CTSA"; transcript_id "NM_001127695:uc002xqj.4";
+chr20 hg19_knownGene exon 44522627 44522711 0.000000 + . gene_id "CTSA"; transcript_id "NM_001127695:uc002xqj.4";
+chr20 hg19_knownGene CDS 44523289 44523380 0.000000 + 0 gene_id "CTSA"; transcript_id "NM_001127695:uc002xqj.4";
+chr20 hg19_knownGene exon 44523289 44523380 0.000000 + . gene_id "CTSA"; transcript_id "NM_001127695:uc002xqj.4";
+chr20 hg19_knownGene CDS 44523462 44523540 0.000000 + 1 gene_id "CTSA"; transcript_id "NM_001127695:uc002xqj.4";
+chr20 hg19_knownGene exon 44523462 44523540 0.000000 + . gene_id "CTSA"; transcript_id "NM_001127695:uc002xqj.4";
+chr20 hg19_knownGene CDS 44523633 44523772 0.000000 + 0 gene_id "CTSA"; transcript_id "NM_001127695:uc002xqj.4";
+chr20 hg19_knownGene exon 44523633 44523772 0.000000 + . gene_id "CTSA"; transcript_id "NM_001127695:uc002xqj.4";
+chr20 hg19_knownGene CDS 44525604 44525679 0.000000 + 1 gene_id "CTSA"; transcript_id "NM_001127695:uc002xqj.4";
+chr20 hg19_knownGene exon 44525604 44525679 0.000000 + . gene_id "CTSA"; transcript_id "NM_001127695:uc002xqj.4";
+chr20 hg19_knownGene CDS 44526356 44526445 0.000000 + 0 gene_id "CTSA"; transcript_id "NM_001127695:uc002xqj.4";
+chr20 hg19_knownGene exon 44526356 44526445 0.000000 + . gene_id "CTSA"; transcript_id "NM_001127695:uc002xqj.4";
+chr20 hg19_knownGene CDS 44526644 44526748 0.000000 + 0 gene_id "CTSA"; transcript_id "NM_001127695:uc002xqj.4";
+chr20 hg19_knownGene exon 44526644 44526748 0.000000 + . gene_id "CTSA"; transcript_id "NM_001127695:uc002xqj.4";
+chr20 hg19_knownGene CDS 44527006 44527086 0.000000 + 0 gene_id "CTSA"; transcript_id "NM_001127695:uc002xqj.4";
+chr20 hg19_knownGene exon 44527006 44527458 0.000000 + . gene_id "CTSA"; transcript_id "NM_001127695:uc002xqj.4";
+chr20 hg19_knownGene CDS 44519965 44520018 0.000000 + 0 gene_id "CTSA"; transcript_id "NM_001167594:uc010zxi.2";
+chr20 hg19_knownGene exon 44519591 44520018 0.000000 + . gene_id "CTSA"; transcript_id "NM_001167594:uc010zxi.2";
+chr20 hg19_knownGene CDS 44520208 44520401 0.000000 + 0 gene_id "CTSA"; transcript_id "NM_001167594:uc010zxi.2";
+chr20 hg19_knownGene exon 44520208 44520401 0.000000 + . gene_id "CTSA"; transcript_id "NM_001167594:uc010zxi.2";
+chr20 hg19_knownGene CDS 44520555 44520666 0.000000 + 1 gene_id "CTSA"; transcript_id "NM_001167594:uc010zxi.2";
+chr20 hg19_knownGene exon 44520555 44520666 0.000000 + . gene_id "CTSA"; transcript_id "NM_001167594:uc010zxi.2";
+chr20 hg19_knownGene CDS 44521037 44521123 0.000000 + 0 gene_id "CTSA"; transcript_id "NM_001167594:uc010zxi.2";
+chr20 hg19_knownGene exon 44521037 44521123 0.000000 + . gene_id "CTSA"; transcript_id "NM_001167594:uc010zxi.2";
+chr20 hg19_knownGene CDS 44521364 44521519 0.000000 + 0 gene_id "CTSA"; transcript_id "NM_001167594:uc010zxi.2";
+chr20 hg19_knownGene exon 44521364 44521519 0.000000 + . gene_id "CTSA"; transcript_id "NM_001167594:uc010zxi.2";
+chr20 hg19_knownGene CDS 44521859 44521950 0.000000 + 0 gene_id "CTSA"; transcript_id "NM_001167594:uc010zxi.2";
+chr20 hg19_knownGene exon 44521859 44521950 0.000000 + . gene_id "CTSA"; transcript_id "NM_001167594:uc010zxi.2";
+chr20 hg19_knownGene CDS 44522627 44522711 0.000000 + 1 gene_id "CTSA"; transcript_id "NM_001167594:uc010zxi.2";
+chr20 hg19_knownGene exon 44522627 44522711 0.000000 + . gene_id "CTSA"; transcript_id "NM_001167594:uc010zxi.2";
+chr20 hg19_knownGene CDS 44523289 44523380 0.000000 + 0 gene_id "CTSA"; transcript_id "NM_001167594:uc010zxi.2";
+chr20 hg19_knownGene exon 44523289 44523380 0.000000 + . gene_id "CTSA"; transcript_id "NM_001167594:uc010zxi.2";
+chr20 hg19_knownGene CDS 44523462 44523540 0.000000 + 1 gene_id "CTSA"; transcript_id "NM_001167594:uc010zxi.2";
+chr20 hg19_knownGene exon 44523462 44523540 0.000000 + . gene_id "CTSA"; transcript_id "NM_001167594:uc010zxi.2";
+chr20 hg19_knownGene CDS 44523633 44523772 0.000000 + 0 gene_id "CTSA"; transcript_id "NM_001167594:uc010zxi.2";
+chr20 hg19_knownGene exon 44523633 44523772 0.000000 + . gene_id "CTSA"; transcript_id "NM_001167594:uc010zxi.2";
+chr20 hg19_knownGene CDS 44525604 44525679 0.000000 + 1 gene_id "CTSA"; transcript_id "NM_001167594:uc010zxi.2";
+chr20 hg19_knownGene exon 44525604 44525679 0.000000 + . gene_id "CTSA"; transcript_id "NM_001167594:uc010zxi.2";
+chr20 hg19_knownGene CDS 44526356 44526445 0.000000 + 0 gene_id "CTSA"; transcript_id "NM_001167594:uc010zxi.2";
+chr20 hg19_knownGene exon 44526356 44526445 0.000000 + . gene_id "CTSA"; transcript_id "NM_001167594:uc010zxi.2";
+chr20 hg19_knownGene CDS 44526644 44526748 0.000000 + 0 gene_id "CTSA"; transcript_id "NM_001167594:uc010zxi.2";
+chr20 hg19_knownGene exon 44526644 44526748 0.000000 + . gene_id "CTSA"; transcript_id "NM_001167594:uc010zxi.2";
+chr20 hg19_knownGene CDS 44527006 44527086 0.000000 + 0 gene_id "CTSA"; transcript_id "NM_001167594:uc010zxi.2";
+chr20 hg19_knownGene exon 44527006 44527458 0.000000 + . gene_id "CTSA"; transcript_id "NM_001167594:uc010zxi.2";
+chr20 hg19_knownGene exon 44519591 44520018 0.000000 + . gene_id "CTSA"; transcript_id "AK172808:uc002xqi.3";
+chr20 hg19_knownGene exon 44520208 44520401 0.000000 + . gene_id "CTSA"; transcript_id "AK172808:uc002xqi.3";
+chr20 hg19_knownGene exon 44520555 44520666 0.000000 + . gene_id "CTSA"; transcript_id "AK172808:uc002xqi.3";
+chr20 hg19_knownGene exon 44520912 44520962 0.000000 + . gene_id "CTSA"; transcript_id "AK172808:uc002xqi.3";
+chr20 hg19_knownGene exon 44521037 44521123 0.000000 + . gene_id "CTSA"; transcript_id "AK172808:uc002xqi.3";
+chr20 hg19_knownGene exon 44521364 44521526 0.000000 + . gene_id "CTSA"; transcript_id "AK172808:uc002xqi.3";
+chr20 hg19_knownGene exon 44521859 44521950 0.000000 + . gene_id "CTSA"; transcript_id "AK172808:uc002xqi.3";
+chr20 hg19_knownGene exon 44522627 44522711 0.000000 + . gene_id "CTSA"; transcript_id "AK172808:uc002xqi.3";
+chr20 hg19_knownGene exon 44523289 44523380 0.000000 + . gene_id "CTSA"; transcript_id "AK172808:uc002xqi.3";
+chr20 hg19_knownGene exon 44523462 44523540 0.000000 + . gene_id "CTSA"; transcript_id "AK172808:uc002xqi.3";
+chr20 hg19_knownGene exon 44523633 44523772 0.000000 + . gene_id "CTSA"; transcript_id "AK172808:uc002xqi.3";
+chr20 hg19_knownGene exon 44525604 44525679 0.000000 + . gene_id "CTSA"; transcript_id "AK172808:uc002xqi.3";
+chr20 hg19_knownGene exon 44526356 44526445 0.000000 + . gene_id "CTSA"; transcript_id "AK172808:uc002xqi.3";
+chr20 hg19_knownGene exon 44526644 44526748 0.000000 + . gene_id "CTSA"; transcript_id "AK172808:uc002xqi.3";
+chr20 hg19_knownGene exon 44527006 44527458 0.000000 + . gene_id "CTSA"; transcript_id "AK172808:uc002xqi.3";
+chr20 hg19_knownGene CDS 44527583 44527702 0.000000 - 0 gene_id "PLTP"; transcript_id "NM_001242921:uc002xql.2";
+chr20 hg19_knownGene exon 44527259 44527702 0.000000 - . gene_id "PLTP"; transcript_id "NM_001242921:uc002xql.2";
+chr20 hg19_knownGene CDS 44528101 44528177 0.000000 - 2 gene_id "PLTP"; transcript_id "NM_001242921:uc002xql.2";
+chr20 hg19_knownGene exon 44528101 44528177 0.000000 - . gene_id "PLTP"; transcript_id "NM_001242921:uc002xql.2";
+chr20 hg19_knownGene CDS 44528261 44528324 0.000000 - 0 gene_id "PLTP"; transcript_id "NM_001242921:uc002xql.2";
+chr20 hg19_knownGene exon 44528261 44528324 0.000000 - . gene_id "PLTP"; transcript_id "NM_001242921:uc002xql.2";
+chr20 hg19_knownGene CDS 44528475 44528517 0.000000 - 1 gene_id "PLTP"; transcript_id "NM_001242921:uc002xql.2";
+chr20 hg19_knownGene exon 44528475 44528517 0.000000 - . gene_id "PLTP"; transcript_id "NM_001242921:uc002xql.2";
+chr20 hg19_knownGene CDS 44530906 44530973 0.000000 - 0 gene_id "PLTP"; transcript_id "NM_001242921:uc002xql.2";
+chr20 hg19_knownGene exon 44530906 44530973 0.000000 - . gene_id "PLTP"; transcript_id "NM_001242921:uc002xql.2";
+chr20 hg19_knownGene CDS 44531079 44531243 0.000000 - 0 gene_id "PLTP"; transcript_id "NM_001242921:uc002xql.2";
+chr20 hg19_knownGene exon 44531079 44531243 0.000000 - . gene_id "PLTP"; transcript_id "NM_001242921:uc002xql.2";
+chr20 hg19_knownGene CDS 44533439 44533498 0.000000 - 0 gene_id "PLTP"; transcript_id "NM_001242921:uc002xql.2";
+chr20 hg19_knownGene exon 44533439 44533498 0.000000 - . gene_id "PLTP"; transcript_id "NM_001242921:uc002xql.2";
+chr20 hg19_knownGene CDS 44533581 44533757 0.000000 - 0 gene_id "PLTP"; transcript_id "NM_001242921:uc002xql.2";
+chr20 hg19_knownGene exon 44533581 44533757 0.000000 - . gene_id "PLTP"; transcript_id "NM_001242921:uc002xql.2";
+chr20 hg19_knownGene CDS 44534907 44534998 0.000000 - 2 gene_id "PLTP"; transcript_id "NM_001242921:uc002xql.2";
+chr20 hg19_knownGene exon 44534907 44534998 0.000000 - . gene_id "PLTP"; transcript_id "NM_001242921:uc002xql.2";
+chr20 hg19_knownGene CDS 44536331 44536394 0.000000 - 0 gene_id "PLTP"; transcript_id "NM_001242921:uc002xql.2";
+chr20 hg19_knownGene exon 44536331 44536394 0.000000 - . gene_id "PLTP"; transcript_id "NM_001242921:uc002xql.2";
+chr20 hg19_knownGene CDS 44536480 44536543 0.000000 - 1 gene_id "PLTP"; transcript_id "NM_001242921:uc002xql.2";
+chr20 hg19_knownGene exon 44536480 44536543 0.000000 - . gene_id "PLTP"; transcript_id "NM_001242921:uc002xql.2";
+chr20 hg19_knownGene CDS 44538155 44538310 0.000000 - 1 gene_id "PLTP"; transcript_id "NM_001242921:uc002xql.2";
+chr20 hg19_knownGene exon 44538155 44538310 0.000000 - . gene_id "PLTP"; transcript_id "NM_001242921:uc002xql.2";
+chr20 hg19_knownGene CDS 44538581 44538645 0.000000 - 0 gene_id "PLTP"; transcript_id "NM_001242921:uc002xql.2";
+chr20 hg19_knownGene exon 44538581 44538709 0.000000 - . gene_id "PLTP"; transcript_id "NM_001242921:uc002xql.2";
+chr20 hg19_knownGene exon 44539510 44539633 0.000000 - . gene_id "PLTP"; transcript_id "NM_001242921:uc002xql.2";
+chr20 hg19_knownGene CDS 44527583 44527702 0.000000 - 0 gene_id "PLTP"; transcript_id "AK097009:uc002xqm.2";
+chr20 hg19_knownGene exon 44527259 44527702 0.000000 - . gene_id "PLTP"; transcript_id "AK097009:uc002xqm.2";
+chr20 hg19_knownGene CDS 44528101 44528177 0.000000 - 2 gene_id "PLTP"; transcript_id "AK097009:uc002xqm.2";
+chr20 hg19_knownGene exon 44528101 44528177 0.000000 - . gene_id "PLTP"; transcript_id "AK097009:uc002xqm.2";
+chr20 hg19_knownGene CDS 44528261 44528324 0.000000 - 0 gene_id "PLTP"; transcript_id "AK097009:uc002xqm.2";
+chr20 hg19_knownGene exon 44528261 44528324 0.000000 - . gene_id "PLTP"; transcript_id "AK097009:uc002xqm.2";
+chr20 hg19_knownGene CDS 44528475 44528517 0.000000 - 1 gene_id "PLTP"; transcript_id "AK097009:uc002xqm.2";
+chr20 hg19_knownGene exon 44528475 44528517 0.000000 - . gene_id "PLTP"; transcript_id "AK097009:uc002xqm.2";
+chr20 hg19_knownGene CDS 44530906 44530973 0.000000 - 0 gene_id "PLTP"; transcript_id "AK097009:uc002xqm.2";
+chr20 hg19_knownGene exon 44530906 44530973 0.000000 - . gene_id "PLTP"; transcript_id "AK097009:uc002xqm.2";
+chr20 hg19_knownGene CDS 44531079 44531243 0.000000 - 0 gene_id "PLTP"; transcript_id "AK097009:uc002xqm.2";
+chr20 hg19_knownGene exon 44531079 44531243 0.000000 - . gene_id "PLTP"; transcript_id "AK097009:uc002xqm.2";
+chr20 hg19_knownGene CDS 44533439 44533498 0.000000 - 0 gene_id "PLTP"; transcript_id "AK097009:uc002xqm.2";
+chr20 hg19_knownGene exon 44533439 44533498 0.000000 - . gene_id "PLTP"; transcript_id "AK097009:uc002xqm.2";
+chr20 hg19_knownGene CDS 44533581 44533757 0.000000 - 0 gene_id "PLTP"; transcript_id "AK097009:uc002xqm.2";
+chr20 hg19_knownGene exon 44533581 44533757 0.000000 - . gene_id "PLTP"; transcript_id "AK097009:uc002xqm.2";
+chr20 hg19_knownGene CDS 44534907 44534998 0.000000 - 2 gene_id "PLTP"; transcript_id "AK097009:uc002xqm.2";
+chr20 hg19_knownGene exon 44534907 44534998 0.000000 - . gene_id "PLTP"; transcript_id "AK097009:uc002xqm.2";
+chr20 hg19_knownGene CDS 44536331 44536394 0.000000 - 0 gene_id "PLTP"; transcript_id "AK097009:uc002xqm.2";
+chr20 hg19_knownGene exon 44536331 44536394 0.000000 - . gene_id "PLTP"; transcript_id "AK097009:uc002xqm.2";
+chr20 hg19_knownGene CDS 44536480 44536543 0.000000 - 1 gene_id "PLTP"; transcript_id "AK097009:uc002xqm.2";
+chr20 hg19_knownGene exon 44536480 44536543 0.000000 - . gene_id "PLTP"; transcript_id "AK097009:uc002xqm.2";
+chr20 hg19_knownGene CDS 44538155 44538310 0.000000 - 1 gene_id "PLTP"; transcript_id "AK097009:uc002xqm.2";
+chr20 hg19_knownGene exon 44538155 44538310 0.000000 - . gene_id "PLTP"; transcript_id "AK097009:uc002xqm.2";
+chr20 hg19_knownGene CDS 44538581 44538709 0.000000 - 1 gene_id "PLTP"; transcript_id "AK097009:uc002xqm.2";
+chr20 hg19_knownGene exon 44538581 44538709 0.000000 - . gene_id "PLTP"; transcript_id "AK097009:uc002xqm.2";
+chr20 hg19_knownGene CDS 44539791 44539890 0.000000 - 2 gene_id "PLTP"; transcript_id "AK097009:uc002xqm.2";
+chr20 hg19_knownGene exon 44539791 44539890 0.000000 - . gene_id "PLTP"; transcript_id "AK097009:uc002xqm.2";
+chr20 hg19_knownGene CDS 44539992 44540151 0.000000 - 0 gene_id "PLTP"; transcript_id "AK097009:uc002xqm.2";
+chr20 hg19_knownGene exon 44539992 44540686 0.000000 - . gene_id "PLTP"; transcript_id "AK097009:uc002xqm.2";
+chr20 hg19_knownGene CDS 44527583 44527702 0.000000 - 0 gene_id "PLTP"; transcript_id "NM_006227:uc002xqn.2";
+chr20 hg19_knownGene exon 44527259 44527702 0.000000 - . gene_id "PLTP"; transcript_id "NM_006227:uc002xqn.2";
+chr20 hg19_knownGene CDS 44528101 44528177 0.000000 - 2 gene_id "PLTP"; transcript_id "NM_006227:uc002xqn.2";
+chr20 hg19_knownGene exon 44528101 44528177 0.000000 - . gene_id "PLTP"; transcript_id "NM_006227:uc002xqn.2";
+chr20 hg19_knownGene CDS 44528261 44528324 0.000000 - 0 gene_id "PLTP"; transcript_id "NM_006227:uc002xqn.2";
+chr20 hg19_knownGene exon 44528261 44528324 0.000000 - . gene_id "PLTP"; transcript_id "NM_006227:uc002xqn.2";
+chr20 hg19_knownGene CDS 44528475 44528517 0.000000 - 1 gene_id "PLTP"; transcript_id "NM_006227:uc002xqn.2";
+chr20 hg19_knownGene exon 44528475 44528517 0.000000 - . gene_id "PLTP"; transcript_id "NM_006227:uc002xqn.2";
+chr20 hg19_knownGene CDS 44530906 44530973 0.000000 - 0 gene_id "PLTP"; transcript_id "NM_006227:uc002xqn.2";
+chr20 hg19_knownGene exon 44530906 44530973 0.000000 - . gene_id "PLTP"; transcript_id "NM_006227:uc002xqn.2";
+chr20 hg19_knownGene CDS 44531079 44531243 0.000000 - 0 gene_id "PLTP"; transcript_id "NM_006227:uc002xqn.2";
+chr20 hg19_knownGene exon 44531079 44531243 0.000000 - . gene_id "PLTP"; transcript_id "NM_006227:uc002xqn.2";
+chr20 hg19_knownGene CDS 44533439 44533498 0.000000 - 0 gene_id "PLTP"; transcript_id "NM_006227:uc002xqn.2";
+chr20 hg19_knownGene exon 44533439 44533498 0.000000 - . gene_id "PLTP"; transcript_id "NM_006227:uc002xqn.2";
+chr20 hg19_knownGene CDS 44533581 44533757 0.000000 - 0 gene_id "PLTP"; transcript_id "NM_006227:uc002xqn.2";
+chr20 hg19_knownGene exon 44533581 44533757 0.000000 - . gene_id "PLTP"; transcript_id "NM_006227:uc002xqn.2";
+chr20 hg19_knownGene CDS 44534907 44534998 0.000000 - 2 gene_id "PLTP"; transcript_id "NM_006227:uc002xqn.2";
+chr20 hg19_knownGene exon 44534907 44534998 0.000000 - . gene_id "PLTP"; transcript_id "NM_006227:uc002xqn.2";
+chr20 hg19_knownGene CDS 44536331 44536394 0.000000 - 0 gene_id "PLTP"; transcript_id "NM_006227:uc002xqn.2";
+chr20 hg19_knownGene exon 44536331 44536394 0.000000 - . gene_id "PLTP"; transcript_id "NM_006227:uc002xqn.2";
+chr20 hg19_knownGene CDS 44536480 44536543 0.000000 - 1 gene_id "PLTP"; transcript_id "NM_006227:uc002xqn.2";
+chr20 hg19_knownGene exon 44536480 44536543 0.000000 - . gene_id "PLTP"; transcript_id "NM_006227:uc002xqn.2";
+chr20 hg19_knownGene CDS 44538155 44538310 0.000000 - 1 gene_id "PLTP"; transcript_id "NM_006227:uc002xqn.2";
+chr20 hg19_knownGene exon 44538155 44538310 0.000000 - . gene_id "PLTP"; transcript_id "NM_006227:uc002xqn.2";
+chr20 hg19_knownGene CDS 44538581 44538709 0.000000 - 1 gene_id "PLTP"; transcript_id "NM_006227:uc002xqn.2";
+chr20 hg19_knownGene exon 44538581 44538709 0.000000 - . gene_id "PLTP"; transcript_id "NM_006227:uc002xqn.2";
+chr20 hg19_knownGene CDS 44539791 44539890 0.000000 - 2 gene_id "PLTP"; transcript_id "NM_006227:uc002xqn.2";
+chr20 hg19_knownGene exon 44539791 44539890 0.000000 - . gene_id "PLTP"; transcript_id "NM_006227:uc002xqn.2";
+chr20 hg19_knownGene CDS 44539992 44540091 0.000000 - 0 gene_id "PLTP"; transcript_id "NM_006227:uc002xqn.2";
+chr20 hg19_knownGene exon 44539992 44540102 0.000000 - . gene_id "PLTP"; transcript_id "NM_006227:uc002xqn.2";
+chr20 hg19_knownGene exon 44540718 44541003 0.000000 - . gene_id "PLTP"; transcript_id "NM_006227:uc002xqn.2";
+chr20 hg19_knownGene CDS 44527583 44527702 0.000000 - 0 gene_id "PLTP"; transcript_id "NM_182676:uc002xqo.2";
+chr20 hg19_knownGene exon 44527259 44527702 0.000000 - . gene_id "PLTP"; transcript_id "NM_182676:uc002xqo.2";
+chr20 hg19_knownGene CDS 44528101 44528177 0.000000 - 2 gene_id "PLTP"; transcript_id "NM_182676:uc002xqo.2";
+chr20 hg19_knownGene exon 44528101 44528177 0.000000 - . gene_id "PLTP"; transcript_id "NM_182676:uc002xqo.2";
+chr20 hg19_knownGene CDS 44528261 44528324 0.000000 - 0 gene_id "PLTP"; transcript_id "NM_182676:uc002xqo.2";
+chr20 hg19_knownGene exon 44528261 44528324 0.000000 - . gene_id "PLTP"; transcript_id "NM_182676:uc002xqo.2";
+chr20 hg19_knownGene CDS 44528475 44528517 0.000000 - 1 gene_id "PLTP"; transcript_id "NM_182676:uc002xqo.2";
+chr20 hg19_knownGene exon 44528475 44528517 0.000000 - . gene_id "PLTP"; transcript_id "NM_182676:uc002xqo.2";
+chr20 hg19_knownGene CDS 44530906 44530973 0.000000 - 0 gene_id "PLTP"; transcript_id "NM_182676:uc002xqo.2";
+chr20 hg19_knownGene exon 44530906 44530973 0.000000 - . gene_id "PLTP"; transcript_id "NM_182676:uc002xqo.2";
+chr20 hg19_knownGene CDS 44531079 44531243 0.000000 - 0 gene_id "PLTP"; transcript_id "NM_182676:uc002xqo.2";
+chr20 hg19_knownGene exon 44531079 44531243 0.000000 - . gene_id "PLTP"; transcript_id "NM_182676:uc002xqo.2";
+chr20 hg19_knownGene CDS 44533439 44533498 0.000000 - 0 gene_id "PLTP"; transcript_id "NM_182676:uc002xqo.2";
+chr20 hg19_knownGene exon 44533439 44533498 0.000000 - . gene_id "PLTP"; transcript_id "NM_182676:uc002xqo.2";
+chr20 hg19_knownGene CDS 44533581 44533757 0.000000 - 0 gene_id "PLTP"; transcript_id "NM_182676:uc002xqo.2";
+chr20 hg19_knownGene exon 44533581 44533757 0.000000 - . gene_id "PLTP"; transcript_id "NM_182676:uc002xqo.2";
+chr20 hg19_knownGene CDS 44534907 44534998 0.000000 - 2 gene_id "PLTP"; transcript_id "NM_182676:uc002xqo.2";
+chr20 hg19_knownGene exon 44534907 44534998 0.000000 - . gene_id "PLTP"; transcript_id "NM_182676:uc002xqo.2";
+chr20 hg19_knownGene CDS 44536331 44536394 0.000000 - 0 gene_id "PLTP"; transcript_id "NM_182676:uc002xqo.2";
+chr20 hg19_knownGene exon 44536331 44536394 0.000000 - . gene_id "PLTP"; transcript_id "NM_182676:uc002xqo.2";
+chr20 hg19_knownGene CDS 44536480 44536543 0.000000 - 1 gene_id "PLTP"; transcript_id "NM_182676:uc002xqo.2";
+chr20 hg19_knownGene exon 44536480 44536543 0.000000 - . gene_id "PLTP"; transcript_id "NM_182676:uc002xqo.2";
+chr20 hg19_knownGene CDS 44538581 44538709 0.000000 - 1 gene_id "PLTP"; transcript_id "NM_182676:uc002xqo.2";
+chr20 hg19_knownGene exon 44538581 44538709 0.000000 - . gene_id "PLTP"; transcript_id "NM_182676:uc002xqo.2";
+chr20 hg19_knownGene CDS 44539791 44539890 0.000000 - 2 gene_id "PLTP"; transcript_id "NM_182676:uc002xqo.2";
+chr20 hg19_knownGene exon 44539791 44539890 0.000000 - . gene_id "PLTP"; transcript_id "NM_182676:uc002xqo.2";
+chr20 hg19_knownGene CDS 44539992 44540091 0.000000 - 0 gene_id "PLTP"; transcript_id "NM_182676:uc002xqo.2";
+chr20 hg19_knownGene exon 44539992 44540102 0.000000 - . gene_id "PLTP"; transcript_id "NM_182676:uc002xqo.2";
+chr20 hg19_knownGene exon 44540718 44541003 0.000000 - . gene_id "PLTP"; transcript_id "NM_182676:uc002xqo.2";
+chr20 hg19_knownGene CDS 44527583 44527702 0.000000 - 0 gene_id "PLTP"; transcript_id "NM_001242920:uc010zxj.2";
+chr20 hg19_knownGene exon 44527259 44527702 0.000000 - . gene_id "PLTP"; transcript_id "NM_001242920:uc010zxj.2";
+chr20 hg19_knownGene CDS 44528101 44528177 0.000000 - 2 gene_id "PLTP"; transcript_id "NM_001242920:uc010zxj.2";
+chr20 hg19_knownGene exon 44528101 44528177 0.000000 - . gene_id "PLTP"; transcript_id "NM_001242920:uc010zxj.2";
+chr20 hg19_knownGene CDS 44528261 44528324 0.000000 - 0 gene_id "PLTP"; transcript_id "NM_001242920:uc010zxj.2";
+chr20 hg19_knownGene exon 44528261 44528324 0.000000 - . gene_id "PLTP"; transcript_id "NM_001242920:uc010zxj.2";
+chr20 hg19_knownGene CDS 44528475 44528517 0.000000 - 1 gene_id "PLTP"; transcript_id "NM_001242920:uc010zxj.2";
+chr20 hg19_knownGene exon 44528475 44528517 0.000000 - . gene_id "PLTP"; transcript_id "NM_001242920:uc010zxj.2";
+chr20 hg19_knownGene CDS 44530906 44530973 0.000000 - 0 gene_id "PLTP"; transcript_id "NM_001242920:uc010zxj.2";
+chr20 hg19_knownGene exon 44530906 44530973 0.000000 - . gene_id "PLTP"; transcript_id "NM_001242920:uc010zxj.2";
+chr20 hg19_knownGene CDS 44531079 44531243 0.000000 - 0 gene_id "PLTP"; transcript_id "NM_001242920:uc010zxj.2";
+chr20 hg19_knownGene exon 44531079 44531243 0.000000 - . gene_id "PLTP"; transcript_id "NM_001242920:uc010zxj.2";
+chr20 hg19_knownGene CDS 44533439 44533498 0.000000 - 0 gene_id "PLTP"; transcript_id "NM_001242920:uc010zxj.2";
+chr20 hg19_knownGene exon 44533439 44533498 0.000000 - . gene_id "PLTP"; transcript_id "NM_001242920:uc010zxj.2";
+chr20 hg19_knownGene CDS 44533581 44533757 0.000000 - 0 gene_id "PLTP"; transcript_id "NM_001242920:uc010zxj.2";
+chr20 hg19_knownGene exon 44533581 44533757 0.000000 - . gene_id "PLTP"; transcript_id "NM_001242920:uc010zxj.2";
+chr20 hg19_knownGene CDS 44534907 44534998 0.000000 - 2 gene_id "PLTP"; transcript_id "NM_001242920:uc010zxj.2";
+chr20 hg19_knownGene exon 44534907 44534998 0.000000 - . gene_id "PLTP"; transcript_id "NM_001242920:uc010zxj.2";
+chr20 hg19_knownGene CDS 44536331 44536394 0.000000 - 0 gene_id "PLTP"; transcript_id "NM_001242920:uc010zxj.2";
+chr20 hg19_knownGene exon 44536331 44536394 0.000000 - . gene_id "PLTP"; transcript_id "NM_001242920:uc010zxj.2";
+chr20 hg19_knownGene CDS 44536480 44536543 0.000000 - 1 gene_id "PLTP"; transcript_id "NM_001242920:uc010zxj.2";
+chr20 hg19_knownGene exon 44536480 44536543 0.000000 - . gene_id "PLTP"; transcript_id "NM_001242920:uc010zxj.2";
+chr20 hg19_knownGene CDS 44539791 44539890 0.000000 - 2 gene_id "PLTP"; transcript_id "NM_001242920:uc010zxj.2";
+chr20 hg19_knownGene exon 44539791 44539890 0.000000 - . gene_id "PLTP"; transcript_id "NM_001242920:uc010zxj.2";
+chr20 hg19_knownGene CDS 44539992 44540091 0.000000 - 0 gene_id "PLTP"; transcript_id "NM_001242920:uc010zxj.2";
+chr20 hg19_knownGene exon 44539992 44540102 0.000000 - . gene_id "PLTP"; transcript_id "NM_001242920:uc010zxj.2";
+chr20 hg19_knownGene exon 44540718 44541003 0.000000 - . gene_id "PLTP"; transcript_id "NM_001242920:uc010zxj.2";
+chr20 hg19_knownGene CDS 44527583 44527702 0.000000 - 0 gene_id "PLTP"; transcript_id "AK092397:uc002xqq.2";
+chr20 hg19_knownGene exon 44527259 44527702 0.000000 - . gene_id "PLTP"; transcript_id "AK092397:uc002xqq.2";
+chr20 hg19_knownGene CDS 44528101 44528177 0.000000 - 2 gene_id "PLTP"; transcript_id "AK092397:uc002xqq.2";
+chr20 hg19_knownGene exon 44528101 44528177 0.000000 - . gene_id "PLTP"; transcript_id "AK092397:uc002xqq.2";
+chr20 hg19_knownGene CDS 44528261 44528324 0.000000 - 0 gene_id "PLTP"; transcript_id "AK092397:uc002xqq.2";
+chr20 hg19_knownGene exon 44528261 44528324 0.000000 - . gene_id "PLTP"; transcript_id "AK092397:uc002xqq.2";
+chr20 hg19_knownGene CDS 44528475 44528517 0.000000 - 1 gene_id "PLTP"; transcript_id "AK092397:uc002xqq.2";
+chr20 hg19_knownGene exon 44528475 44528517 0.000000 - . gene_id "PLTP"; transcript_id "AK092397:uc002xqq.2";
+chr20 hg19_knownGene CDS 44530906 44530973 0.000000 - 0 gene_id "PLTP"; transcript_id "AK092397:uc002xqq.2";
+chr20 hg19_knownGene exon 44530906 44530973 0.000000 - . gene_id "PLTP"; transcript_id "AK092397:uc002xqq.2";
+chr20 hg19_knownGene CDS 44531079 44531243 0.000000 - 0 gene_id "PLTP"; transcript_id "AK092397:uc002xqq.2";
+chr20 hg19_knownGene exon 44531079 44531243 0.000000 - . gene_id "PLTP"; transcript_id "AK092397:uc002xqq.2";
+chr20 hg19_knownGene CDS 44533439 44533498 0.000000 - 0 gene_id "PLTP"; transcript_id "AK092397:uc002xqq.2";
+chr20 hg19_knownGene exon 44533439 44533498 0.000000 - . gene_id "PLTP"; transcript_id "AK092397:uc002xqq.2";
+chr20 hg19_knownGene CDS 44533581 44533757 0.000000 - 0 gene_id "PLTP"; transcript_id "AK092397:uc002xqq.2";
+chr20 hg19_knownGene exon 44533581 44533757 0.000000 - . gene_id "PLTP"; transcript_id "AK092397:uc002xqq.2";
+chr20 hg19_knownGene CDS 44534907 44534998 0.000000 - 2 gene_id "PLTP"; transcript_id "AK092397:uc002xqq.2";
+chr20 hg19_knownGene exon 44534907 44534998 0.000000 - . gene_id "PLTP"; transcript_id "AK092397:uc002xqq.2";
+chr20 hg19_knownGene CDS 44536331 44536394 0.000000 - 0 gene_id "PLTP"; transcript_id "AK092397:uc002xqq.2";
+chr20 hg19_knownGene exon 44536331 44536394 0.000000 - . gene_id "PLTP"; transcript_id "AK092397:uc002xqq.2";
+chr20 hg19_knownGene CDS 44536480 44536543 0.000000 - 1 gene_id "PLTP"; transcript_id "AK092397:uc002xqq.2";
+chr20 hg19_knownGene exon 44536480 44536543 0.000000 - . gene_id "PLTP"; transcript_id "AK092397:uc002xqq.2";
+chr20 hg19_knownGene CDS 44538155 44538310 0.000000 - 1 gene_id "PLTP"; transcript_id "AK092397:uc002xqq.2";
+chr20 hg19_knownGene exon 44538155 44538310 0.000000 - . gene_id "PLTP"; transcript_id "AK092397:uc002xqq.2";
+chr20 hg19_knownGene CDS 44538581 44538709 0.000000 - 1 gene_id "PLTP"; transcript_id "AK092397:uc002xqq.2";
+chr20 hg19_knownGene exon 44538581 44538709 0.000000 - . gene_id "PLTP"; transcript_id "AK092397:uc002xqq.2";
+chr20 hg19_knownGene CDS 44539791 44539882 0.000000 - 0 gene_id "PLTP"; transcript_id "AK092397:uc002xqq.2";
+chr20 hg19_knownGene exon 44539791 44539882 0.000000 - . gene_id "PLTP"; transcript_id "AK092397:uc002xqq.2";
+chr20 hg19_knownGene CDS 44540031 44540045 0.000000 - 0 gene_id "PLTP"; transcript_id "AK092397:uc002xqq.2";
+chr20 hg19_knownGene exon 44540031 44540102 0.000000 - . gene_id "PLTP"; transcript_id "AK092397:uc002xqq.2";
+chr20 hg19_knownGene exon 44540718 44541003 0.000000 - . gene_id "PLTP"; transcript_id "AK092397:uc002xqq.2";
+chr20 hg19_knownGene exon 44563317 44563443 0.000000 + . gene_id "PCIF1"; transcript_id "NM_022104:uc002xqs.3";
+chr20 hg19_knownGene exon 44566057 44566224 0.000000 + . gene_id "PCIF1"; transcript_id "NM_022104:uc002xqs.3";
+chr20 hg19_knownGene CDS 44567639 44567762 0.000000 + 0 gene_id "PCIF1"; transcript_id "NM_022104:uc002xqs.3";
+chr20 hg19_knownGene exon 44567620 44567762 0.000000 + . gene_id "PCIF1"; transcript_id "NM_022104:uc002xqs.3";
+chr20 hg19_knownGene CDS 44567854 44567978 0.000000 + 2 gene_id "PCIF1"; transcript_id "NM_022104:uc002xqs.3";
+chr20 hg19_knownGene exon 44567854 44567978 0.000000 + . gene_id "PCIF1"; transcript_id "NM_022104:uc002xqs.3";
+chr20 hg19_knownGene CDS 44569114 44569251 0.000000 + 0 gene_id "PCIF1"; transcript_id "NM_022104:uc002xqs.3";
+chr20 hg19_knownGene exon 44569114 44569251 0.000000 + . gene_id "PCIF1"; transcript_id "NM_022104:uc002xqs.3";
+chr20 hg19_knownGene CDS 44569448 44569578 0.000000 + 0 gene_id "PCIF1"; transcript_id "NM_022104:uc002xqs.3";
+chr20 hg19_knownGene exon 44569448 44569578 0.000000 + . gene_id "PCIF1"; transcript_id "NM_022104:uc002xqs.3";
+chr20 hg19_knownGene CDS 44569692 44569846 0.000000 + 1 gene_id "PCIF1"; transcript_id "NM_022104:uc002xqs.3";
+chr20 hg19_knownGene exon 44569692 44569846 0.000000 + . gene_id "PCIF1"; transcript_id "NM_022104:uc002xqs.3";
+chr20 hg19_knownGene CDS 44571736 44571883 0.000000 + 2 gene_id "PCIF1"; transcript_id "NM_022104:uc002xqs.3";
+chr20 hg19_knownGene exon 44571736 44571883 0.000000 + . gene_id "PCIF1"; transcript_id "NM_022104:uc002xqs.3";
+chr20 hg19_knownGene CDS 44571979 44572062 0.000000 + 1 gene_id "PCIF1"; transcript_id "NM_022104:uc002xqs.3";
+chr20 hg19_knownGene exon 44571979 44572062 0.000000 + . gene_id "PCIF1"; transcript_id "NM_022104:uc002xqs.3";
+chr20 hg19_knownGene CDS 44572305 44572404 0.000000 + 1 gene_id "PCIF1"; transcript_id "NM_022104:uc002xqs.3";
+chr20 hg19_knownGene exon 44572305 44572404 0.000000 + . gene_id "PCIF1"; transcript_id "NM_022104:uc002xqs.3";
+chr20 hg19_knownGene CDS 44573507 44573669 0.000000 + 0 gene_id "PCIF1"; transcript_id "NM_022104:uc002xqs.3";
+chr20 hg19_knownGene exon 44573507 44573669 0.000000 + . gene_id "PCIF1"; transcript_id "NM_022104:uc002xqs.3";
+chr20 hg19_knownGene CDS 44574350 44574522 0.000000 + 2 gene_id "PCIF1"; transcript_id "NM_022104:uc002xqs.3";
+chr20 hg19_knownGene exon 44574350 44574522 0.000000 + . gene_id "PCIF1"; transcript_id "NM_022104:uc002xqs.3";
+chr20 hg19_knownGene CDS 44574668 44574754 0.000000 + 0 gene_id "PCIF1"; transcript_id "NM_022104:uc002xqs.3";
+chr20 hg19_knownGene exon 44574668 44574754 0.000000 + . gene_id "PCIF1"; transcript_id "NM_022104:uc002xqs.3";
+chr20 hg19_knownGene CDS 44574839 44575023 0.000000 + 0 gene_id "PCIF1"; transcript_id "NM_022104:uc002xqs.3";
+chr20 hg19_knownGene exon 44574839 44575023 0.000000 + . gene_id "PCIF1"; transcript_id "NM_022104:uc002xqs.3";
+chr20 hg19_knownGene CDS 44575712 44575805 0.000000 + 1 gene_id "PCIF1"; transcript_id "NM_022104:uc002xqs.3";
+chr20 hg19_knownGene exon 44575712 44575805 0.000000 + . gene_id "PCIF1"; transcript_id "NM_022104:uc002xqs.3";
+chr20 hg19_knownGene CDS 44575902 44576077 0.000000 + 0 gene_id "PCIF1"; transcript_id "NM_022104:uc002xqs.3";
+chr20 hg19_knownGene exon 44575902 44576077 0.000000 + . gene_id "PCIF1"; transcript_id "NM_022104:uc002xqs.3";
+chr20 hg19_knownGene CDS 44576163 44576391 0.000000 + 1 gene_id "PCIF1"; transcript_id "NM_022104:uc002xqs.3";
+chr20 hg19_knownGene exon 44576163 44576662 0.000000 + . gene_id "PCIF1"; transcript_id "NM_022104:uc002xqs.3";
+chr20 hg19_knownGene exon 44573507 44573669 0.000000 + . gene_id "PCIF1"; transcript_id "AL137473:uc002xqt.3";
+chr20 hg19_knownGene CDS 44574442 44574522 0.000000 + 0 gene_id "PCIF1"; transcript_id "AL137473:uc002xqt.3";
+chr20 hg19_knownGene exon 44574350 44574522 0.000000 + . gene_id "PCIF1"; transcript_id "AL137473:uc002xqt.3";
+chr20 hg19_knownGene CDS 44574668 44574754 0.000000 + 0 gene_id "PCIF1"; transcript_id "AL137473:uc002xqt.3";
+chr20 hg19_knownGene exon 44574668 44574754 0.000000 + . gene_id "PCIF1"; transcript_id "AL137473:uc002xqt.3";
+chr20 hg19_knownGene CDS 44574839 44575023 0.000000 + 0 gene_id "PCIF1"; transcript_id "AL137473:uc002xqt.3";
+chr20 hg19_knownGene exon 44574839 44575023 0.000000 + . gene_id "PCIF1"; transcript_id "AL137473:uc002xqt.3";
+chr20 hg19_knownGene CDS 44575712 44575805 0.000000 + 1 gene_id "PCIF1"; transcript_id "AL137473:uc002xqt.3";
+chr20 hg19_knownGene exon 44575712 44575805 0.000000 + . gene_id "PCIF1"; transcript_id "AL137473:uc002xqt.3";
+chr20 hg19_knownGene CDS 44575902 44576249 0.000000 + 0 gene_id "PCIF1"; transcript_id "AL137473:uc002xqt.3";
+chr20 hg19_knownGene exon 44575902 44576662 0.000000 + . gene_id "PCIF1"; transcript_id "AL137473:uc002xqt.3";
+chr20 hg19_knownGene CDS 44577595 44577719 0.000000 - 2 gene_id "ZNF335"; transcript_id "AK122963:uc002xqv.3";
+chr20 hg19_knownGene exon 44577292 44577719 0.000000 - . gene_id "ZNF335"; transcript_id "AK122963:uc002xqv.3";
+chr20 hg19_knownGene CDS 44577809 44577890 0.000000 - 0 gene_id "ZNF335"; transcript_id "AK122963:uc002xqv.3";
+chr20 hg19_knownGene exon 44577809 44577890 0.000000 - . gene_id "ZNF335"; transcript_id "AK122963:uc002xqv.3";
+chr20 hg19_knownGene CDS 44577972 44578037 0.000000 - 0 gene_id "ZNF335"; transcript_id "AK122963:uc002xqv.3";
+chr20 hg19_knownGene exon 44577972 44578037 0.000000 - . gene_id "ZNF335"; transcript_id "AK122963:uc002xqv.3";
+chr20 hg19_knownGene CDS 44578124 44578207 0.000000 - 0 gene_id "ZNF335"; transcript_id "AK122963:uc002xqv.3";
+chr20 hg19_knownGene exon 44578124 44578207 0.000000 - . gene_id "ZNF335"; transcript_id "AK122963:uc002xqv.3";
+chr20 hg19_knownGene CDS 44578439 44578516 0.000000 - 0 gene_id "ZNF335"; transcript_id "AK122963:uc002xqv.3";
+chr20 hg19_knownGene exon 44578439 44578516 0.000000 - . gene_id "ZNF335"; transcript_id "AK122963:uc002xqv.3";
+chr20 hg19_knownGene CDS 44578605 44578708 0.000000 - 2 gene_id "ZNF335"; transcript_id "AK122963:uc002xqv.3";
+chr20 hg19_knownGene exon 44578605 44578708 0.000000 - . gene_id "ZNF335"; transcript_id "AK122963:uc002xqv.3";
+chr20 hg19_knownGene CDS 44578858 44579012 0.000000 - 1 gene_id "ZNF335"; transcript_id "AK122963:uc002xqv.3";
+chr20 hg19_knownGene exon 44578858 44579012 0.000000 - . gene_id "ZNF335"; transcript_id "AK122963:uc002xqv.3";
+chr20 hg19_knownGene CDS 44579092 44579234 0.000000 - 0 gene_id "ZNF335"; transcript_id "AK122963:uc002xqv.3";
+chr20 hg19_knownGene exon 44579092 44579234 0.000000 - . gene_id "ZNF335"; transcript_id "AK122963:uc002xqv.3";
+chr20 hg19_knownGene CDS 44580786 44581160 0.000000 - 0 gene_id "ZNF335"; transcript_id "AK122963:uc002xqv.3";
+chr20 hg19_knownGene exon 44580786 44581160 0.000000 - . gene_id "ZNF335"; transcript_id "AK122963:uc002xqv.3";
+chr20 hg19_knownGene CDS 44581237 44581348 0.000000 - 1 gene_id "ZNF335"; transcript_id "AK122963:uc002xqv.3";
+chr20 hg19_knownGene exon 44581237 44581348 0.000000 - . gene_id "ZNF335"; transcript_id "AK122963:uc002xqv.3";
+chr20 hg19_knownGene CDS 44582328 44582365 0.000000 - 0 gene_id "ZNF335"; transcript_id "AK122963:uc002xqv.3";
+chr20 hg19_knownGene exon 44582328 44583343 0.000000 - . gene_id "ZNF335"; transcript_id "AK122963:uc002xqv.3";
+chr20 hg19_knownGene CDS 44596077 44596273 0.000000 - 2 gene_id "ZNF335"; transcript_id "AK054694:uc002xqy.3";
+chr20 hg19_knownGene exon 44595520 44596273 0.000000 - . gene_id "ZNF335"; transcript_id "AK054694:uc002xqy.3";
+chr20 hg19_knownGene CDS 44596373 44596721 0.000000 - 0 gene_id "ZNF335"; transcript_id "AK054694:uc002xqy.3";
+chr20 hg19_knownGene exon 44596373 44597497 0.000000 - . gene_id "ZNF335"; transcript_id "AK054694:uc002xqy.3";
+chr20 hg19_knownGene CDS 44594271 44594413 0.000000 - 2 gene_id "ZNF335"; transcript_id "AX747567:uc002xqx.1";
+chr20 hg19_knownGene exon 44594267 44594413 0.000000 - . gene_id "ZNF335"; transcript_id "AX747567:uc002xqx.1";
+chr20 hg19_knownGene CDS 44596133 44596273 0.000000 - 2 gene_id "ZNF335"; transcript_id "AX747567:uc002xqx.1";
+chr20 hg19_knownGene exon 44596133 44596273 0.000000 - . gene_id "ZNF335"; transcript_id "AX747567:uc002xqx.1";
+chr20 hg19_knownGene CDS 44596373 44596666 0.000000 - 2 gene_id "ZNF335"; transcript_id "AX747567:uc002xqx.1";
+chr20 hg19_knownGene exon 44596373 44596666 0.000000 - . gene_id "ZNF335"; transcript_id "AX747567:uc002xqx.1";
+chr20 hg19_knownGene CDS 44596924 44597001 0.000000 - 2 gene_id "ZNF335"; transcript_id "AX747567:uc002xqx.1";
+chr20 hg19_knownGene exon 44596924 44597001 0.000000 - . gene_id "ZNF335"; transcript_id "AX747567:uc002xqx.1";
+chr20 hg19_knownGene CDS 44598090 44598435 0.000000 - 0 gene_id "ZNF335"; transcript_id "AX747567:uc002xqx.1";
+chr20 hg19_knownGene exon 44598090 44598864 0.000000 - . gene_id "ZNF335"; transcript_id "AX747567:uc002xqx.1";
+chr20 hg19_knownGene CDS 44577595 44577719 0.000000 - 2 gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene exon 44577292 44577719 0.000000 - . gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene CDS 44577809 44577890 0.000000 - 0 gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene exon 44577809 44577890 0.000000 - . gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene CDS 44577972 44578037 0.000000 - 0 gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene exon 44577972 44578037 0.000000 - . gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene CDS 44578124 44578207 0.000000 - 0 gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene exon 44578124 44578207 0.000000 - . gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene CDS 44578439 44578516 0.000000 - 0 gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene exon 44578439 44578516 0.000000 - . gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene CDS 44578605 44578708 0.000000 - 2 gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene exon 44578605 44578708 0.000000 - . gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene CDS 44578858 44579012 0.000000 - 1 gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene exon 44578858 44579012 0.000000 - . gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene CDS 44579092 44579234 0.000000 - 0 gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene exon 44579092 44579234 0.000000 - . gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene CDS 44580786 44581160 0.000000 - 0 gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene exon 44580786 44581160 0.000000 - . gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene CDS 44581237 44581348 0.000000 - 1 gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene exon 44581237 44581348 0.000000 - . gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene CDS 44582328 44582587 0.000000 - 0 gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene exon 44582328 44582587 0.000000 - . gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene CDS 44586225 44586319 0.000000 - 2 gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene exon 44586225 44586319 0.000000 - . gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene CDS 44586474 44586567 0.000000 - 0 gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene exon 44586474 44586567 0.000000 - . gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene CDS 44587840 44588072 0.000000 - 2 gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene exon 44587840 44588072 0.000000 - . gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene CDS 44588847 44589007 0.000000 - 1 gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene exon 44588847 44589007 0.000000 - . gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene CDS 44589088 44589164 0.000000 - 0 gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene exon 44589088 44589164 0.000000 - . gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene CDS 44589255 44589371 0.000000 - 0 gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene exon 44589255 44589371 0.000000 - . gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene CDS 44589503 44589521 0.000000 - 1 gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene exon 44589503 44589521 0.000000 - . gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene CDS 44590709 44590821 0.000000 - 0 gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene exon 44590709 44590821 0.000000 - . gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene CDS 44592112 44592289 0.000000 - 1 gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene exon 44592112 44592289 0.000000 - . gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene CDS 44592377 44592629 0.000000 - 2 gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene exon 44592377 44592629 0.000000 - . gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene CDS 44594267 44594413 0.000000 - 2 gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene exon 44594267 44594413 0.000000 - . gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene CDS 44596133 44596273 0.000000 - 2 gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene exon 44596133 44596273 0.000000 - . gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene CDS 44596373 44596666 0.000000 - 2 gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene exon 44596373 44596666 0.000000 - . gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene CDS 44596924 44597001 0.000000 - 2 gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene exon 44596924 44597001 0.000000 - . gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene CDS 44598090 44598330 0.000000 - 0 gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene exon 44598090 44598330 0.000000 - . gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene CDS 44599849 44600049 0.000000 - 0 gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene exon 44599849 44600099 0.000000 - . gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene exon 44600761 44600833 0.000000 - . gene_id "ZNF335"; transcript_id "NM_022095:uc002xqw.3";
+chr20 hg19_knownGene CDS 44577595 44577719 0.000000 - 2 gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene exon 44577292 44577719 0.000000 - . gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene CDS 44577809 44577890 0.000000 - 0 gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene exon 44577809 44577890 0.000000 - . gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene CDS 44577972 44578037 0.000000 - 0 gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene exon 44577972 44578037 0.000000 - . gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene CDS 44578124 44578207 0.000000 - 0 gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene exon 44578124 44578207 0.000000 - . gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene CDS 44578439 44578516 0.000000 - 0 gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene exon 44578439 44578516 0.000000 - . gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene CDS 44578605 44578708 0.000000 - 2 gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene exon 44578605 44578708 0.000000 - . gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene CDS 44578858 44579012 0.000000 - 1 gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene exon 44578858 44579012 0.000000 - . gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene CDS 44579092 44579234 0.000000 - 0 gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene exon 44579092 44579234 0.000000 - . gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene CDS 44580786 44581160 0.000000 - 0 gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene exon 44580786 44581160 0.000000 - . gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene CDS 44581237 44581348 0.000000 - 1 gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene exon 44581237 44581348 0.000000 - . gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene CDS 44582328 44582587 0.000000 - 0 gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene exon 44582328 44582587 0.000000 - . gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene CDS 44586225 44586319 0.000000 - 2 gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene exon 44586225 44586319 0.000000 - . gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene CDS 44586474 44586567 0.000000 - 0 gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene exon 44586474 44586567 0.000000 - . gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene CDS 44587840 44588072 0.000000 - 2 gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene exon 44587840 44588072 0.000000 - . gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene CDS 44588847 44589007 0.000000 - 1 gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene exon 44588847 44589007 0.000000 - . gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene CDS 44589088 44589164 0.000000 - 0 gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene exon 44589088 44589164 0.000000 - . gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene CDS 44589255 44589371 0.000000 - 0 gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene exon 44589255 44589371 0.000000 - . gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene CDS 44589503 44589521 0.000000 - 1 gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene exon 44589503 44589521 0.000000 - . gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene CDS 44590709 44590821 0.000000 - 0 gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene exon 44590709 44590821 0.000000 - . gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene CDS 44592112 44592289 0.000000 - 1 gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene exon 44592112 44592289 0.000000 - . gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene CDS 44592377 44592629 0.000000 - 2 gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene exon 44592377 44592629 0.000000 - . gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene CDS 44594267 44594413 0.000000 - 2 gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene exon 44594267 44594413 0.000000 - . gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene CDS 44596133 44596273 0.000000 - 2 gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene exon 44596133 44596273 0.000000 - . gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene CDS 44596373 44596666 0.000000 - 2 gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene exon 44596373 44596666 0.000000 - . gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene CDS 44600761 44600815 0.000000 - 0 gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene exon 44600761 44600833 0.000000 - . gene_id "ZNF335"; transcript_id "AK296989:uc010zxk.2";
+chr20 hg19_knownGene CDS 44637566 44637703 0.000000 + 0 gene_id "MMP9"; transcript_id "NM_004994:uc002xqz.3";
+chr20 hg19_knownGene exon 44637547 44637703 0.000000 + . gene_id "MMP9"; transcript_id "NM_004994:uc002xqz.3";
+chr20 hg19_knownGene CDS 44638505 44638737 0.000000 + 0 gene_id "MMP9"; transcript_id "NM_004994:uc002xqz.3";
+chr20 hg19_knownGene exon 44638505 44638737 0.000000 + . gene_id "MMP9"; transcript_id "NM_004994:uc002xqz.3";
+chr20 hg19_knownGene CDS 44639122 44639270 0.000000 + 1 gene_id "MMP9"; transcript_id "NM_004994:uc002xqz.3";
+chr20 hg19_knownGene exon 44639122 44639270 0.000000 + . gene_id "MMP9"; transcript_id "NM_004994:uc002xqz.3";
+chr20 hg19_knownGene CDS 44639561 44639689 0.000000 + 2 gene_id "MMP9"; transcript_id "NM_004994:uc002xqz.3";
+chr20 hg19_knownGene exon 44639561 44639689 0.000000 + . gene_id "MMP9"; transcript_id "NM_004994:uc002xqz.3";
+chr20 hg19_knownGene CDS 44639782 44639955 0.000000 + 2 gene_id "MMP9"; transcript_id "NM_004994:uc002xqz.3";
+chr20 hg19_knownGene exon 44639782 44639955 0.000000 + . gene_id "MMP9"; transcript_id "NM_004994:uc002xqz.3";
+chr20 hg19_knownGene CDS 44640213 44640386 0.000000 + 2 gene_id "MMP9"; transcript_id "NM_004994:uc002xqz.3";
+chr20 hg19_knownGene exon 44640213 44640386 0.000000 + . gene_id "MMP9"; transcript_id "NM_004994:uc002xqz.3";
+chr20 hg19_knownGene CDS 44640776 44640952 0.000000 + 2 gene_id "MMP9"; transcript_id "NM_004994:uc002xqz.3";
+chr20 hg19_knownGene exon 44640776 44640952 0.000000 + . gene_id "MMP9"; transcript_id "NM_004994:uc002xqz.3";
+chr20 hg19_knownGene CDS 44641066 44641221 0.000000 + 2 gene_id "MMP9"; transcript_id "NM_004994:uc002xqz.3";
+chr20 hg19_knownGene exon 44641066 44641221 0.000000 + . gene_id "MMP9"; transcript_id "NM_004994:uc002xqz.3";
+chr20 hg19_knownGene CDS 44641894 44642173 0.000000 + 2 gene_id "MMP9"; transcript_id "NM_004994:uc002xqz.3";
+chr20 hg19_knownGene exon 44641894 44642173 0.000000 + . gene_id "MMP9"; transcript_id "NM_004994:uc002xqz.3";
+chr20 hg19_knownGene CDS 44642296 44642435 0.000000 + 1 gene_id "MMP9"; transcript_id "NM_004994:uc002xqz.3";
+chr20 hg19_knownGene exon 44642296 44642435 0.000000 + . gene_id "MMP9"; transcript_id "NM_004994:uc002xqz.3";
+chr20 hg19_knownGene CDS 44642763 44642913 0.000000 + 2 gene_id "MMP9"; transcript_id "NM_004994:uc002xqz.3";
+chr20 hg19_knownGene exon 44642763 44642913 0.000000 + . gene_id "MMP9"; transcript_id "NM_004994:uc002xqz.3";
+chr20 hg19_knownGene CDS 44643010 44643113 0.000000 + 1 gene_id "MMP9"; transcript_id "NM_004994:uc002xqz.3";
+chr20 hg19_knownGene exon 44643010 44643113 0.000000 + . gene_id "MMP9"; transcript_id "NM_004994:uc002xqz.3";
+chr20 hg19_knownGene CDS 44644889 44645004 0.000000 + 2 gene_id "MMP9"; transcript_id "NM_004994:uc002xqz.3";
+chr20 hg19_knownGene exon 44644889 44645200 0.000000 + . gene_id "MMP9"; transcript_id "NM_004994:uc002xqz.3";
+chr20 hg19_knownGene CDS 44657984 44658035 0.000000 + 0 gene_id "SLC12A5"; transcript_id "AK098371:uc002xra.2";
+chr20 hg19_knownGene exon 44657821 44658035 0.000000 + . gene_id "SLC12A5"; transcript_id "AK098371:uc002xra.2";
+chr20 hg19_knownGene CDS 44663587 44663681 0.000000 + 2 gene_id "SLC12A5"; transcript_id "AK098371:uc002xra.2";
+chr20 hg19_knownGene exon 44663587 44663681 0.000000 + . gene_id "SLC12A5"; transcript_id "AK098371:uc002xra.2";
+chr20 hg19_knownGene CDS 44664043 44664174 0.000000 + 0 gene_id "SLC12A5"; transcript_id "AK098371:uc002xra.2";
+chr20 hg19_knownGene exon 44664043 44664174 0.000000 + . gene_id "SLC12A5"; transcript_id "AK098371:uc002xra.2";
+chr20 hg19_knownGene CDS 44664416 44664562 0.000000 + 0 gene_id "SLC12A5"; transcript_id "AK098371:uc002xra.2";
+chr20 hg19_knownGene exon 44664416 44664562 0.000000 + . gene_id "SLC12A5"; transcript_id "AK098371:uc002xra.2";
+chr20 hg19_knownGene CDS 44665380 44665434 0.000000 + 0 gene_id "SLC12A5"; transcript_id "AK098371:uc002xra.2";
+chr20 hg19_knownGene exon 44665380 44665434 0.000000 + . gene_id "SLC12A5"; transcript_id "AK098371:uc002xra.2";
+chr20 hg19_knownGene CDS 44665894 44666024 0.000000 + 2 gene_id "SLC12A5"; transcript_id "AK098371:uc002xra.2";
+chr20 hg19_knownGene exon 44665894 44666024 0.000000 + . gene_id "SLC12A5"; transcript_id "AK098371:uc002xra.2";
+chr20 hg19_knownGene CDS 44669012 44669254 0.000000 + 0 gene_id "SLC12A5"; transcript_id "AK098371:uc002xra.2";
+chr20 hg19_knownGene exon 44669012 44669799 0.000000 + . gene_id "SLC12A5"; transcript_id "AK098371:uc002xra.2";
+chr20 hg19_knownGene exon 44657821 44658035 0.000000 + . gene_id "SLC12A5"; transcript_id "AK296331:uc010zxm.1";
+chr20 hg19_knownGene exon 44663587 44663681 0.000000 + . gene_id "SLC12A5"; transcript_id "AK296331:uc010zxm.1";
+chr20 hg19_knownGene exon 44664043 44664174 0.000000 + . gene_id "SLC12A5"; transcript_id "AK296331:uc010zxm.1";
+chr20 hg19_knownGene exon 44664416 44664562 0.000000 + . gene_id "SLC12A5"; transcript_id "AK296331:uc010zxm.1";
+chr20 hg19_knownGene exon 44665380 44665434 0.000000 + . gene_id "SLC12A5"; transcript_id "AK296331:uc010zxm.1";
+chr20 hg19_knownGene exon 44665894 44665921 0.000000 + . gene_id "SLC12A5"; transcript_id "AK296331:uc010zxm.1";
+chr20 hg19_knownGene exon 44674517 44674635 0.000000 + . gene_id "SLC12A5"; transcript_id "AK296331:uc010zxm.1";
+chr20 hg19_knownGene exon 44674977 44675075 0.000000 + . gene_id "SLC12A5"; transcript_id "AK296331:uc010zxm.1";
+chr20 hg19_knownGene exon 44676093 44676212 0.000000 + . gene_id "SLC12A5"; transcript_id "AK296331:uc010zxm.1";
+chr20 hg19_knownGene exon 44676620 44676724 0.000000 + . gene_id "SLC12A5"; transcript_id "AK296331:uc010zxm.1";
+chr20 hg19_knownGene exon 44678261 44678429 0.000000 + . gene_id "SLC12A5"; transcript_id "AK296331:uc010zxm.1";
+chr20 hg19_knownGene CDS 44650405 44650525 0.000000 + 0 gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene exon 44650329 44650525 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene CDS 44663587 44663681 0.000000 + 2 gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene exon 44663587 44663681 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene CDS 44664043 44664174 0.000000 + 0 gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene exon 44664043 44664174 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene CDS 44664416 44664562 0.000000 + 0 gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene exon 44664416 44664562 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene CDS 44665380 44665434 0.000000 + 0 gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene exon 44665380 44665434 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene CDS 44665894 44666024 0.000000 + 2 gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene exon 44665894 44666024 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene CDS 44669012 44669253 0.000000 + 0 gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene exon 44669012 44669253 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene CDS 44669968 44670179 0.000000 + 1 gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene exon 44669968 44670179 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene CDS 44671792 44671962 0.000000 + 2 gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene exon 44671792 44671962 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene CDS 44672272 44672370 0.000000 + 2 gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene exon 44672272 44672370 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene CDS 44672515 44672572 0.000000 + 2 gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene exon 44672515 44672572 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene CDS 44673605 44673779 0.000000 + 1 gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene exon 44673605 44673779 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene CDS 44674517 44674635 0.000000 + 0 gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene exon 44674517 44674635 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene CDS 44674977 44675075 0.000000 + 1 gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene exon 44674977 44675075 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene CDS 44676093 44676212 0.000000 + 1 gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene exon 44676093 44676212 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene CDS 44676620 44676724 0.000000 + 1 gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene exon 44676620 44676724 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene CDS 44678261 44678429 0.000000 + 1 gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene exon 44678261 44678429 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene CDS 44680314 44680509 0.000000 + 0 gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene exon 44680314 44680509 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene CDS 44681596 44681765 0.000000 + 2 gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene exon 44681596 44681765 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene CDS 44682217 44682348 0.000000 + 0 gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene exon 44682217 44682348 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene CDS 44683555 44683662 0.000000 + 0 gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene exon 44683555 44683662 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene CDS 44684789 44684911 0.000000 + 0 gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene exon 44684789 44684911 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene CDS 44685004 44685203 0.000000 + 0 gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene exon 44685004 44685203 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene CDS 44685536 44685550 0.000000 + 1 gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene exon 44685536 44685550 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene CDS 44685809 44685942 0.000000 + 1 gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene exon 44685809 44685942 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene CDS 44686153 44686241 0.000000 + 2 gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene exon 44686153 44688789 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_001134771:uc010zxl.1";
+chr20 hg19_knownGene CDS 44657984 44658035 0.000000 + 0 gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene exon 44657821 44658035 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene CDS 44663587 44663681 0.000000 + 2 gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene exon 44663587 44663681 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene CDS 44664043 44664174 0.000000 + 0 gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene exon 44664043 44664174 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene CDS 44664416 44664562 0.000000 + 0 gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene exon 44664416 44664562 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene CDS 44665380 44665434 0.000000 + 0 gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene exon 44665380 44665434 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene CDS 44665894 44666024 0.000000 + 2 gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene exon 44665894 44666024 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene CDS 44669012 44669253 0.000000 + 0 gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene exon 44669012 44669253 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene CDS 44669968 44670179 0.000000 + 1 gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene exon 44669968 44670179 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene CDS 44671792 44671962 0.000000 + 2 gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene exon 44671792 44671962 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene CDS 44672272 44672370 0.000000 + 2 gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene exon 44672272 44672370 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene CDS 44672515 44672572 0.000000 + 2 gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene exon 44672515 44672572 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene CDS 44673605 44673779 0.000000 + 1 gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene exon 44673605 44673779 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene CDS 44674517 44674635 0.000000 + 0 gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene exon 44674517 44674635 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene CDS 44674977 44675075 0.000000 + 1 gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene exon 44674977 44675075 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene CDS 44676093 44676212 0.000000 + 1 gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene exon 44676093 44676212 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene CDS 44676620 44676724 0.000000 + 1 gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene exon 44676620 44676724 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene CDS 44678261 44678429 0.000000 + 1 gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene exon 44678261 44678429 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene CDS 44680314 44680509 0.000000 + 0 gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene exon 44680314 44680509 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene CDS 44681596 44681765 0.000000 + 2 gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene exon 44681596 44681765 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene CDS 44682217 44682348 0.000000 + 0 gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene exon 44682217 44682348 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene CDS 44683555 44683662 0.000000 + 0 gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene exon 44683555 44683662 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene CDS 44684789 44684911 0.000000 + 0 gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene exon 44684789 44684911 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene CDS 44685004 44685203 0.000000 + 0 gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene exon 44685004 44685203 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene CDS 44685536 44685550 0.000000 + 1 gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene exon 44685536 44685550 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene CDS 44685809 44685942 0.000000 + 1 gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene exon 44685809 44685942 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene CDS 44686153 44686241 0.000000 + 2 gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene exon 44686153 44688789 0.000000 + . gene_id "SLC12A5"; transcript_id "NM_020708:uc002xrb.2";
+chr20 hg19_knownGene CDS 44691484 44691528 0.000000 - 0 gene_id "NCOA5"; transcript_id "BC056872:uc002xrc.3";
+chr20 hg19_knownGene exon 44689626 44691528 0.000000 - . gene_id "NCOA5"; transcript_id "BC056872:uc002xrc.3";
+chr20 hg19_knownGene CDS 44691976 44692319 0.000000 - 2 gene_id "NCOA5"; transcript_id "BC056872:uc002xrc.3";
+chr20 hg19_knownGene exon 44691976 44692319 0.000000 - . gene_id "NCOA5"; transcript_id "BC056872:uc002xrc.3";
+chr20 hg19_knownGene CDS 44693668 44693867 0.000000 - 1 gene_id "NCOA5"; transcript_id "BC056872:uc002xrc.3";
+chr20 hg19_knownGene exon 44693668 44693867 0.000000 - . gene_id "NCOA5"; transcript_id "BC056872:uc002xrc.3";
+chr20 hg19_knownGene CDS 44695694 44695820 0.000000 - 2 gene_id "NCOA5"; transcript_id "BC056872:uc002xrc.3";
+chr20 hg19_knownGene exon 44695694 44695820 0.000000 - . gene_id "NCOA5"; transcript_id "BC056872:uc002xrc.3";
+chr20 hg19_knownGene CDS 44697141 44697277 0.000000 - 1 gene_id "NCOA5"; transcript_id "BC056872:uc002xrc.3";
+chr20 hg19_knownGene exon 44697141 44697277 0.000000 - . gene_id "NCOA5"; transcript_id "BC056872:uc002xrc.3";
+chr20 hg19_knownGene CDS 44698849 44698877 0.000000 - 0 gene_id "NCOA5"; transcript_id "BC056872:uc002xrc.3";
+chr20 hg19_knownGene exon 44698849 44699175 0.000000 - . gene_id "NCOA5"; transcript_id "BC056872:uc002xrc.3";
+chr20 hg19_knownGene CDS 44690942 44691528 0.000000 - 2 gene_id "NCOA5"; transcript_id "AF470686:uc002xrd.3";
+chr20 hg19_knownGene exon 44689626 44691528 0.000000 - . gene_id "NCOA5"; transcript_id "AF470686:uc002xrd.3";
+chr20 hg19_knownGene CDS 44691999 44692319 0.000000 - 2 gene_id "NCOA5"; transcript_id "AF470686:uc002xrd.3";
+chr20 hg19_knownGene exon 44691999 44692319 0.000000 - . gene_id "NCOA5"; transcript_id "AF470686:uc002xrd.3";
+chr20 hg19_knownGene CDS 44693668 44693867 0.000000 - 1 gene_id "NCOA5"; transcript_id "AF470686:uc002xrd.3";
+chr20 hg19_knownGene exon 44693668 44693867 0.000000 - . gene_id "NCOA5"; transcript_id "AF470686:uc002xrd.3";
+chr20 hg19_knownGene CDS 44695694 44695820 0.000000 - 2 gene_id "NCOA5"; transcript_id "AF470686:uc002xrd.3";
+chr20 hg19_knownGene exon 44695694 44695820 0.000000 - . gene_id "NCOA5"; transcript_id "AF470686:uc002xrd.3";
+chr20 hg19_knownGene CDS 44697141 44697277 0.000000 - 1 gene_id "NCOA5"; transcript_id "AF470686:uc002xrd.3";
+chr20 hg19_knownGene exon 44697141 44697277 0.000000 - . gene_id "NCOA5"; transcript_id "AF470686:uc002xrd.3";
+chr20 hg19_knownGene CDS 44698849 44699175 0.000000 - 1 gene_id "NCOA5"; transcript_id "AF470686:uc002xrd.3";
+chr20 hg19_knownGene exon 44698849 44699175 0.000000 - . gene_id "NCOA5"; transcript_id "AF470686:uc002xrd.3";
+chr20 hg19_knownGene CDS 44708026 44708063 0.000000 - 0 gene_id "NCOA5"; transcript_id "AF470686:uc002xrd.3";
+chr20 hg19_knownGene exon 44708026 44708591 0.000000 - . gene_id "NCOA5"; transcript_id "AF470686:uc002xrd.3";
+chr20 hg19_knownGene CDS 44690942 44691528 0.000000 - 2 gene_id "NCOA5"; transcript_id "NM_020967:uc002xre.3";
+chr20 hg19_knownGene exon 44689626 44691528 0.000000 - . gene_id "NCOA5"; transcript_id "NM_020967:uc002xre.3";
+chr20 hg19_knownGene CDS 44691999 44692319 0.000000 - 2 gene_id "NCOA5"; transcript_id "NM_020967:uc002xre.3";
+chr20 hg19_knownGene exon 44691999 44692319 0.000000 - . gene_id "NCOA5"; transcript_id "NM_020967:uc002xre.3";
+chr20 hg19_knownGene CDS 44693668 44693867 0.000000 - 1 gene_id "NCOA5"; transcript_id "NM_020967:uc002xre.3";
+chr20 hg19_knownGene exon 44693668 44693867 0.000000 - . gene_id "NCOA5"; transcript_id "NM_020967:uc002xre.3";
+chr20 hg19_knownGene CDS 44695694 44695820 0.000000 - 2 gene_id "NCOA5"; transcript_id "NM_020967:uc002xre.3";
+chr20 hg19_knownGene exon 44695694 44695820 0.000000 - . gene_id "NCOA5"; transcript_id "NM_020967:uc002xre.3";
+chr20 hg19_knownGene CDS 44697141 44697277 0.000000 - 1 gene_id "NCOA5"; transcript_id "NM_020967:uc002xre.3";
+chr20 hg19_knownGene exon 44697141 44697277 0.000000 - . gene_id "NCOA5"; transcript_id "NM_020967:uc002xre.3";
+chr20 hg19_knownGene CDS 44698849 44699175 0.000000 - 1 gene_id "NCOA5"; transcript_id "NM_020967:uc002xre.3";
+chr20 hg19_knownGene exon 44698849 44699175 0.000000 - . gene_id "NCOA5"; transcript_id "NM_020967:uc002xre.3";
+chr20 hg19_knownGene CDS 44708026 44708063 0.000000 - 0 gene_id "NCOA5"; transcript_id "NM_020967:uc002xre.3";
+chr20 hg19_knownGene exon 44708026 44708092 0.000000 - . gene_id "NCOA5"; transcript_id "NM_020967:uc002xre.3";
+chr20 hg19_knownGene exon 44718456 44718580 0.000000 - . gene_id "NCOA5"; transcript_id "NM_020967:uc002xre.3";
+chr20 hg19_knownGene CDS 44746983 44747033 0.000000 + 0 gene_id "CD40"; transcript_id "AB209660:uc002xrf.1";
+chr20 hg19_knownGene exon 44746906 44747033 0.000000 + . gene_id "CD40"; transcript_id "AB209660:uc002xrf.1";
+chr20 hg19_knownGene CDS 44750459 44750537 0.000000 + 0 gene_id "CD40"; transcript_id "AB209660:uc002xrf.1";
+chr20 hg19_knownGene exon 44750459 44750537 0.000000 + . gene_id "CD40"; transcript_id "AB209660:uc002xrf.1";
+chr20 hg19_knownGene CDS 44750872 44750997 0.000000 + 2 gene_id "CD40"; transcript_id "AB209660:uc002xrf.1";
+chr20 hg19_knownGene exon 44750872 44750997 0.000000 + . gene_id "CD40"; transcript_id "AB209660:uc002xrf.1";
+chr20 hg19_knownGene CDS 44751249 44751442 0.000000 + 2 gene_id "CD40"; transcript_id "AB209660:uc002xrf.1";
+chr20 hg19_knownGene exon 44751249 44752939 0.000000 + . gene_id "CD40"; transcript_id "AB209660:uc002xrf.1";
+chr20 hg19_knownGene CDS 44746983 44747033 0.000000 + 0 gene_id "CD40"; transcript_id "NM_001250:uc002xrg.1";
+chr20 hg19_knownGene exon 44746906 44747033 0.000000 + . gene_id "CD40"; transcript_id "NM_001250:uc002xrg.1";
+chr20 hg19_knownGene CDS 44750459 44750537 0.000000 + 0 gene_id "CD40"; transcript_id "NM_001250:uc002xrg.1";
+chr20 hg19_knownGene exon 44750459 44750537 0.000000 + . gene_id "CD40"; transcript_id "NM_001250:uc002xrg.1";
+chr20 hg19_knownGene CDS 44750872 44750997 0.000000 + 2 gene_id "CD40"; transcript_id "NM_001250:uc002xrg.1";
+chr20 hg19_knownGene exon 44750872 44750997 0.000000 + . gene_id "CD40"; transcript_id "NM_001250:uc002xrg.1";
+chr20 hg19_knownGene CDS 44751249 44751395 0.000000 + 2 gene_id "CD40"; transcript_id "NM_001250:uc002xrg.1";
+chr20 hg19_knownGene exon 44751249 44751395 0.000000 + . gene_id "CD40"; transcript_id "NM_001250:uc002xrg.1";
+chr20 hg19_knownGene CDS 44751765 44751858 0.000000 + 2 gene_id "CD40"; transcript_id "NM_001250:uc002xrg.1";
+chr20 hg19_knownGene exon 44751765 44751858 0.000000 + . gene_id "CD40"; transcript_id "NM_001250:uc002xrg.1";
+chr20 hg19_knownGene CDS 44755279 44755340 0.000000 + 1 gene_id "CD40"; transcript_id "NM_001250:uc002xrg.1";
+chr20 hg19_knownGene exon 44755279 44755340 0.000000 + . gene_id "CD40"; transcript_id "NM_001250:uc002xrg.1";
+chr20 hg19_knownGene CDS 44756777 44756863 0.000000 + 2 gene_id "CD40"; transcript_id "NM_001250:uc002xrg.1";
+chr20 hg19_knownGene exon 44756777 44756863 0.000000 + . gene_id "CD40"; transcript_id "NM_001250:uc002xrg.1";
+chr20 hg19_knownGene CDS 44756969 44756997 0.000000 + 2 gene_id "CD40"; transcript_id "NM_001250:uc002xrg.1";
+chr20 hg19_knownGene exon 44756969 44756997 0.000000 + . gene_id "CD40"; transcript_id "NM_001250:uc002xrg.1";
+chr20 hg19_knownGene CDS 44757521 44757676 0.000000 + 0 gene_id "CD40"; transcript_id "NM_001250:uc002xrg.1";
+chr20 hg19_knownGene exon 44757521 44758384 0.000000 + . gene_id "CD40"; transcript_id "NM_001250:uc002xrg.1";
+chr20 hg19_knownGene CDS 44746983 44747033 0.000000 + 0 gene_id "CD40"; transcript_id "NM_152854:uc002xrh.1";
+chr20 hg19_knownGene exon 44746906 44747033 0.000000 + . gene_id "CD40"; transcript_id "NM_152854:uc002xrh.1";
+chr20 hg19_knownGene CDS 44750459 44750537 0.000000 + 0 gene_id "CD40"; transcript_id "NM_152854:uc002xrh.1";
+chr20 hg19_knownGene exon 44750459 44750537 0.000000 + . gene_id "CD40"; transcript_id "NM_152854:uc002xrh.1";
+chr20 hg19_knownGene CDS 44750872 44750997 0.000000 + 2 gene_id "CD40"; transcript_id "NM_152854:uc002xrh.1";
+chr20 hg19_knownGene exon 44750872 44750997 0.000000 + . gene_id "CD40"; transcript_id "NM_152854:uc002xrh.1";
+chr20 hg19_knownGene CDS 44751249 44751395 0.000000 + 2 gene_id "CD40"; transcript_id "NM_152854:uc002xrh.1";
+chr20 hg19_knownGene exon 44751249 44751395 0.000000 + . gene_id "CD40"; transcript_id "NM_152854:uc002xrh.1";
+chr20 hg19_knownGene CDS 44751765 44751858 0.000000 + 2 gene_id "CD40"; transcript_id "NM_152854:uc002xrh.1";
+chr20 hg19_knownGene exon 44751765 44751858 0.000000 + . gene_id "CD40"; transcript_id "NM_152854:uc002xrh.1";
+chr20 hg19_knownGene CDS 44756777 44756863 0.000000 + 1 gene_id "CD40"; transcript_id "NM_152854:uc002xrh.1";
+chr20 hg19_knownGene exon 44756777 44756863 0.000000 + . gene_id "CD40"; transcript_id "NM_152854:uc002xrh.1";
+chr20 hg19_knownGene CDS 44756969 44756993 0.000000 + 1 gene_id "CD40"; transcript_id "NM_152854:uc002xrh.1";
+chr20 hg19_knownGene exon 44756969 44756997 0.000000 + . gene_id "CD40"; transcript_id "NM_152854:uc002xrh.1";
+chr20 hg19_knownGene exon 44757521 44758384 0.000000 + . gene_id "CD40"; transcript_id "NM_152854:uc002xrh.1";
+chr20 hg19_knownGene exon 44746906 44747033 0.000000 + . gene_id "CD40"; transcript_id "AX781593:uc002xrj.1";
+chr20 hg19_knownGene exon 44750459 44750537 0.000000 + . gene_id "CD40"; transcript_id "AX781593:uc002xrj.1";
+chr20 hg19_knownGene exon 44750872 44750997 0.000000 + . gene_id "CD40"; transcript_id "AX781593:uc002xrj.1";
+chr20 hg19_knownGene exon 44751249 44751395 0.000000 + . gene_id "CD40"; transcript_id "AX781593:uc002xrj.1";
+chr20 hg19_knownGene exon 44755279 44755340 0.000000 + . gene_id "CD40"; transcript_id "AX781593:uc002xrj.1";
+chr20 hg19_knownGene exon 44756777 44756863 0.000000 + . gene_id "CD40"; transcript_id "AX781593:uc002xrj.1";
+chr20 hg19_knownGene exon 44756969 44756997 0.000000 + . gene_id "CD40"; transcript_id "AX781593:uc002xrj.1";
+chr20 hg19_knownGene exon 44757521 44758384 0.000000 + . gene_id "CD40"; transcript_id "AX781593:uc002xrj.1";
+chr20 hg19_knownGene exon 44746906 44747033 0.000000 + . gene_id "CD40"; transcript_id "BC064518:uc002xrk.1";
+chr20 hg19_knownGene exon 44750459 44750537 0.000000 + . gene_id "CD40"; transcript_id "BC064518:uc002xrk.1";
+chr20 hg19_knownGene exon 44750872 44750997 0.000000 + . gene_id "CD40"; transcript_id "BC064518:uc002xrk.1";
+chr20 hg19_knownGene exon 44751249 44751395 0.000000 + . gene_id "CD40"; transcript_id "BC064518:uc002xrk.1";
+chr20 hg19_knownGene exon 44756618 44756863 0.000000 + . gene_id "CD40"; transcript_id "BC064518:uc002xrk.1";
+chr20 hg19_knownGene exon 44756969 44756997 0.000000 + . gene_id "CD40"; transcript_id "BC064518:uc002xrk.1";
+chr20 hg19_knownGene exon 44757521 44758384 0.000000 + . gene_id "CD40"; transcript_id "BC064518:uc002xrk.1";
+chr20 hg19_knownGene CDS 44838945 44839199 0.000000 - 0 gene_id "CDH22"; transcript_id "BC031232:uc002xrn.2";
+chr20 hg19_knownGene exon 44838460 44839199 0.000000 - . gene_id "CDH22"; transcript_id "BC031232:uc002xrn.2";
+chr20 hg19_knownGene CDS 44841634 44841827 0.000000 - 2 gene_id "CDH22"; transcript_id "BC031232:uc002xrn.2";
+chr20 hg19_knownGene exon 44841634 44841827 0.000000 - . gene_id "CDH22"; transcript_id "BC031232:uc002xrn.2";
+chr20 hg19_knownGene CDS 44845465 44845555 0.000000 - 0 gene_id "CDH22"; transcript_id "BC031232:uc002xrn.2";
+chr20 hg19_knownGene exon 44845465 44845632 0.000000 - . gene_id "CDH22"; transcript_id "BC031232:uc002xrn.2";
+chr20 hg19_knownGene exon 44848437 44848552 0.000000 - . gene_id "CDH22"; transcript_id "BC031232:uc002xrn.2";
+chr20 hg19_knownGene exon 44849067 44849488 0.000000 - . gene_id "CDH22"; transcript_id "BC031232:uc002xrn.2";
+chr20 hg19_knownGene CDS 44803148 44803716 0.000000 - 2 gene_id "CDH22"; transcript_id "NM_021248:uc002xrm.2";
+chr20 hg19_knownGene exon 44802376 44803716 0.000000 - . gene_id "CDH22"; transcript_id "NM_021248:uc002xrm.2";
+chr20 hg19_knownGene CDS 44806585 44806836 0.000000 - 2 gene_id "CDH22"; transcript_id "NM_021248:uc002xrm.2";
+chr20 hg19_knownGene exon 44806585 44806836 0.000000 - . gene_id "CDH22"; transcript_id "NM_021248:uc002xrm.2";
+chr20 hg19_knownGene CDS 44815227 44815344 0.000000 - 0 gene_id "CDH22"; transcript_id "NM_021248:uc002xrm.2";
+chr20 hg19_knownGene exon 44815227 44815344 0.000000 - . gene_id "CDH22"; transcript_id "NM_021248:uc002xrm.2";
+chr20 hg19_knownGene CDS 44815465 44815586 0.000000 - 2 gene_id "CDH22"; transcript_id "NM_021248:uc002xrm.2";
+chr20 hg19_knownGene exon 44815465 44815586 0.000000 - . gene_id "CDH22"; transcript_id "NM_021248:uc002xrm.2";
+chr20 hg19_knownGene CDS 44828062 44828198 0.000000 - 1 gene_id "CDH22"; transcript_id "NM_021248:uc002xrm.2";
+chr20 hg19_knownGene exon 44828062 44828198 0.000000 - . gene_id "CDH22"; transcript_id "NM_021248:uc002xrm.2";
+chr20 hg19_knownGene CDS 44838946 44839199 0.000000 - 0 gene_id "CDH22"; transcript_id "NM_021248:uc002xrm.2";
+chr20 hg19_knownGene exon 44838946 44839199 0.000000 - . gene_id "CDH22"; transcript_id "NM_021248:uc002xrm.2";
+chr20 hg19_knownGene CDS 44841634 44841827 0.000000 - 2 gene_id "CDH22"; transcript_id "NM_021248:uc002xrm.2";
+chr20 hg19_knownGene exon 44841634 44841827 0.000000 - . gene_id "CDH22"; transcript_id "NM_021248:uc002xrm.2";
+chr20 hg19_knownGene CDS 44845465 44845632 0.000000 - 2 gene_id "CDH22"; transcript_id "NM_021248:uc002xrm.2";
+chr20 hg19_knownGene exon 44845465 44845632 0.000000 - . gene_id "CDH22"; transcript_id "NM_021248:uc002xrm.2";
+chr20 hg19_knownGene CDS 44856147 44856266 0.000000 - 2 gene_id "CDH22"; transcript_id "NM_021248:uc002xrm.2";
+chr20 hg19_knownGene exon 44856147 44856266 0.000000 - . gene_id "CDH22"; transcript_id "NM_021248:uc002xrm.2";
+chr20 hg19_knownGene CDS 44869602 44869896 0.000000 - 0 gene_id "CDH22"; transcript_id "NM_021248:uc002xrm.2";
+chr20 hg19_knownGene exon 44869602 44869896 0.000000 - . gene_id "CDH22"; transcript_id "NM_021248:uc002xrm.2";
+chr20 hg19_knownGene CDS 44879679 44879933 0.000000 - 0 gene_id "CDH22"; transcript_id "NM_021248:uc002xrm.2";
+chr20 hg19_knownGene exon 44879679 44880332 0.000000 - . gene_id "CDH22"; transcript_id "NM_021248:uc002xrm.2";
+chr20 hg19_knownGene CDS 44803148 44803716 0.000000 - 2 gene_id "CDH22"; transcript_id "AK289584:uc010ghk.1";
+chr20 hg19_knownGene exon 44802376 44803716 0.000000 - . gene_id "CDH22"; transcript_id "AK289584:uc010ghk.1";
+chr20 hg19_knownGene CDS 44806585 44806836 0.000000 - 2 gene_id "CDH22"; transcript_id "AK289584:uc010ghk.1";
+chr20 hg19_knownGene exon 44806585 44806836 0.000000 - . gene_id "CDH22"; transcript_id "AK289584:uc010ghk.1";
+chr20 hg19_knownGene CDS 44815227 44815344 0.000000 - 0 gene_id "CDH22"; transcript_id "AK289584:uc010ghk.1";
+chr20 hg19_knownGene exon 44815227 44815344 0.000000 - . gene_id "CDH22"; transcript_id "AK289584:uc010ghk.1";
+chr20 hg19_knownGene CDS 44815465 44815586 0.000000 - 2 gene_id "CDH22"; transcript_id "AK289584:uc010ghk.1";
+chr20 hg19_knownGene exon 44815465 44815586 0.000000 - . gene_id "CDH22"; transcript_id "AK289584:uc010ghk.1";
+chr20 hg19_knownGene CDS 44828062 44828198 0.000000 - 1 gene_id "CDH22"; transcript_id "AK289584:uc010ghk.1";
+chr20 hg19_knownGene exon 44828062 44828198 0.000000 - . gene_id "CDH22"; transcript_id "AK289584:uc010ghk.1";
+chr20 hg19_knownGene CDS 44838946 44839199 0.000000 - 0 gene_id "CDH22"; transcript_id "AK289584:uc010ghk.1";
+chr20 hg19_knownGene exon 44838946 44839199 0.000000 - . gene_id "CDH22"; transcript_id "AK289584:uc010ghk.1";
+chr20 hg19_knownGene CDS 44841634 44841827 0.000000 - 2 gene_id "CDH22"; transcript_id "AK289584:uc010ghk.1";
+chr20 hg19_knownGene exon 44841634 44841827 0.000000 - . gene_id "CDH22"; transcript_id "AK289584:uc010ghk.1";
+chr20 hg19_knownGene CDS 44845465 44845632 0.000000 - 2 gene_id "CDH22"; transcript_id "AK289584:uc010ghk.1";
+chr20 hg19_knownGene exon 44845465 44845632 0.000000 - . gene_id "CDH22"; transcript_id "AK289584:uc010ghk.1";
+chr20 hg19_knownGene CDS 44856147 44856266 0.000000 - 2 gene_id "CDH22"; transcript_id "AK289584:uc010ghk.1";
+chr20 hg19_knownGene exon 44856147 44856266 0.000000 - . gene_id "CDH22"; transcript_id "AK289584:uc010ghk.1";
+chr20 hg19_knownGene CDS 44869602 44869896 0.000000 - 0 gene_id "CDH22"; transcript_id "AK289584:uc010ghk.1";
+chr20 hg19_knownGene exon 44869602 44869896 0.000000 - . gene_id "CDH22"; transcript_id "AK289584:uc010ghk.1";
+chr20 hg19_knownGene CDS 44879679 44879933 0.000000 - 0 gene_id "CDH22"; transcript_id "AK289584:uc010ghk.1";
+chr20 hg19_knownGene exon 44879679 44880332 0.000000 - . gene_id "CDH22"; transcript_id "AK289584:uc010ghk.1";
+chr20 hg19_knownGene exon 44936894 44937137 0.000000 - . gene_id "CDH22"; transcript_id "AK289584:uc010ghk.1";
+chr20 hg19_knownGene exon 44987234 44987262 0.000000 - . gene_id "DQ587006"; transcript_id "DQ587006:uc021wen.1";
+chr20 hg19_knownGene CDS 44979036 44979163 0.000000 - 2 gene_id "SLC35C2"; transcript_id "BC025277:uc002xro.3";
+chr20 hg19_knownGene exon 44978177 44979163 0.000000 - . gene_id "SLC35C2"; transcript_id "BC025277:uc002xro.3";
+chr20 hg19_knownGene CDS 44979400 44979529 0.000000 - 0 gene_id "SLC35C2"; transcript_id "BC025277:uc002xro.3";
+chr20 hg19_knownGene exon 44979400 44979529 0.000000 - . gene_id "SLC35C2"; transcript_id "BC025277:uc002xro.3";
+chr20 hg19_knownGene CDS 44980690 44980865 0.000000 - 2 gene_id "SLC35C2"; transcript_id "BC025277:uc002xro.3";
+chr20 hg19_knownGene exon 44980690 44980865 0.000000 - . gene_id "SLC35C2"; transcript_id "BC025277:uc002xro.3";
+chr20 hg19_knownGene CDS 44983521 44983604 0.000000 - 2 gene_id "SLC35C2"; transcript_id "BC025277:uc002xro.3";
+chr20 hg19_knownGene exon 44983521 44983604 0.000000 - . gene_id "SLC35C2"; transcript_id "BC025277:uc002xro.3";
+chr20 hg19_knownGene CDS 44983712 44983880 0.000000 - 0 gene_id "SLC35C2"; transcript_id "BC025277:uc002xro.3";
+chr20 hg19_knownGene exon 44983712 44983880 0.000000 - . gene_id "SLC35C2"; transcript_id "BC025277:uc002xro.3";
+chr20 hg19_knownGene CDS 44984441 44984513 0.000000 - 1 gene_id "SLC35C2"; transcript_id "BC025277:uc002xro.3";
+chr20 hg19_knownGene exon 44984441 44984513 0.000000 - . gene_id "SLC35C2"; transcript_id "BC025277:uc002xro.3";
+chr20 hg19_knownGene CDS 44985213 44985276 0.000000 - 2 gene_id "SLC35C2"; transcript_id "BC025277:uc002xro.3";
+chr20 hg19_knownGene exon 44985213 44985276 0.000000 - . gene_id "SLC35C2"; transcript_id "BC025277:uc002xro.3";
+chr20 hg19_knownGene CDS 44986262 44986412 0.000000 - 0 gene_id "SLC35C2"; transcript_id "BC025277:uc002xro.3";
+chr20 hg19_knownGene exon 44986262 44986412 0.000000 - . gene_id "SLC35C2"; transcript_id "BC025277:uc002xro.3";
+chr20 hg19_knownGene CDS 44987026 44987145 0.000000 - 0 gene_id "SLC35C2"; transcript_id "BC025277:uc002xro.3";
+chr20 hg19_knownGene exon 44987026 44987597 0.000000 - . gene_id "SLC35C2"; transcript_id "BC025277:uc002xro.3";
+chr20 hg19_knownGene exon 44991725 44991813 0.000000 - . gene_id "SLC35C2"; transcript_id "BC025277:uc002xro.3";
+chr20 hg19_knownGene CDS 44979036 44979163 0.000000 - 2 gene_id "SLC35C2"; transcript_id "NM_173073:uc002xrp.3";
+chr20 hg19_knownGene exon 44978177 44979163 0.000000 - . gene_id "SLC35C2"; transcript_id "NM_173073:uc002xrp.3";
+chr20 hg19_knownGene CDS 44979400 44979529 0.000000 - 0 gene_id "SLC35C2"; transcript_id "NM_173073:uc002xrp.3";
+chr20 hg19_knownGene exon 44979400 44979529 0.000000 - . gene_id "SLC35C2"; transcript_id "NM_173073:uc002xrp.3";
+chr20 hg19_knownGene CDS 44980690 44980865 0.000000 - 2 gene_id "SLC35C2"; transcript_id "NM_173073:uc002xrp.3";
+chr20 hg19_knownGene exon 44980690 44980865 0.000000 - . gene_id "SLC35C2"; transcript_id "NM_173073:uc002xrp.3";
+chr20 hg19_knownGene CDS 44983521 44983604 0.000000 - 2 gene_id "SLC35C2"; transcript_id "NM_173073:uc002xrp.3";
+chr20 hg19_knownGene exon 44983521 44983604 0.000000 - . gene_id "SLC35C2"; transcript_id "NM_173073:uc002xrp.3";
+chr20 hg19_knownGene CDS 44983712 44983817 0.000000 - 0 gene_id "SLC35C2"; transcript_id "NM_173073:uc002xrp.3";
+chr20 hg19_knownGene exon 44983712 44983817 0.000000 - . gene_id "SLC35C2"; transcript_id "NM_173073:uc002xrp.3";
+chr20 hg19_knownGene CDS 44984441 44984513 0.000000 - 1 gene_id "SLC35C2"; transcript_id "NM_173073:uc002xrp.3";
+chr20 hg19_knownGene exon 44984441 44984513 0.000000 - . gene_id "SLC35C2"; transcript_id "NM_173073:uc002xrp.3";
+chr20 hg19_knownGene CDS 44985213 44985276 0.000000 - 2 gene_id "SLC35C2"; transcript_id "NM_173073:uc002xrp.3";
+chr20 hg19_knownGene exon 44985213 44985276 0.000000 - . gene_id "SLC35C2"; transcript_id "NM_173073:uc002xrp.3";
+chr20 hg19_knownGene CDS 44986262 44986412 0.000000 - 0 gene_id "SLC35C2"; transcript_id "NM_173073:uc002xrp.3";
+chr20 hg19_knownGene exon 44986262 44986412 0.000000 - . gene_id "SLC35C2"; transcript_id "NM_173073:uc002xrp.3";
+chr20 hg19_knownGene CDS 44987026 44987145 0.000000 - 0 gene_id "SLC35C2"; transcript_id "NM_173073:uc002xrp.3";
+chr20 hg19_knownGene exon 44987026 44987402 0.000000 - . gene_id "SLC35C2"; transcript_id "NM_173073:uc002xrp.3";
+chr20 hg19_knownGene exon 44993010 44993064 0.000000 - . gene_id "SLC35C2"; transcript_id "NM_173073:uc002xrp.3";
+chr20 hg19_knownGene CDS 44979036 44979163 0.000000 - 2 gene_id "SLC35C2"; transcript_id "NM_015945:uc002xrq.3";
+chr20 hg19_knownGene exon 44978177 44979163 0.000000 - . gene_id "SLC35C2"; transcript_id "NM_015945:uc002xrq.3";
+chr20 hg19_knownGene CDS 44979400 44979529 0.000000 - 0 gene_id "SLC35C2"; transcript_id "NM_015945:uc002xrq.3";
+chr20 hg19_knownGene exon 44979400 44979529 0.000000 - . gene_id "SLC35C2"; transcript_id "NM_015945:uc002xrq.3";
+chr20 hg19_knownGene CDS 44980690 44980865 0.000000 - 2 gene_id "SLC35C2"; transcript_id "NM_015945:uc002xrq.3";
+chr20 hg19_knownGene exon 44980690 44980865 0.000000 - . gene_id "SLC35C2"; transcript_id "NM_015945:uc002xrq.3";
+chr20 hg19_knownGene CDS 44983521 44983604 0.000000 - 2 gene_id "SLC35C2"; transcript_id "NM_015945:uc002xrq.3";
+chr20 hg19_knownGene exon 44983521 44983604 0.000000 - . gene_id "SLC35C2"; transcript_id "NM_015945:uc002xrq.3";
+chr20 hg19_knownGene CDS 44983712 44983880 0.000000 - 0 gene_id "SLC35C2"; transcript_id "NM_015945:uc002xrq.3";
+chr20 hg19_knownGene exon 44983712 44983880 0.000000 - . gene_id "SLC35C2"; transcript_id "NM_015945:uc002xrq.3";
+chr20 hg19_knownGene CDS 44984441 44984513 0.000000 - 1 gene_id "SLC35C2"; transcript_id "NM_015945:uc002xrq.3";
+chr20 hg19_knownGene exon 44984441 44984513 0.000000 - . gene_id "SLC35C2"; transcript_id "NM_015945:uc002xrq.3";
+chr20 hg19_knownGene CDS 44985213 44985276 0.000000 - 2 gene_id "SLC35C2"; transcript_id "NM_015945:uc002xrq.3";
+chr20 hg19_knownGene exon 44985213 44985276 0.000000 - . gene_id "SLC35C2"; transcript_id "NM_015945:uc002xrq.3";
+chr20 hg19_knownGene CDS 44986262 44986412 0.000000 - 0 gene_id "SLC35C2"; transcript_id "NM_015945:uc002xrq.3";
+chr20 hg19_knownGene exon 44986262 44986412 0.000000 - . gene_id "SLC35C2"; transcript_id "NM_015945:uc002xrq.3";
+chr20 hg19_knownGene CDS 44987026 44987145 0.000000 - 0 gene_id "SLC35C2"; transcript_id "NM_015945:uc002xrq.3";
+chr20 hg19_knownGene exon 44987026 44987402 0.000000 - . gene_id "SLC35C2"; transcript_id "NM_015945:uc002xrq.3";
+chr20 hg19_knownGene exon 44993010 44993064 0.000000 - . gene_id "SLC35C2"; transcript_id "NM_015945:uc002xrq.3";
+chr20 hg19_knownGene CDS 44979036 44979163 0.000000 - 2 gene_id "SLC35C2"; transcript_id "NM_173179:uc002xrr.3";
+chr20 hg19_knownGene exon 44978177 44979163 0.000000 - . gene_id "SLC35C2"; transcript_id "NM_173179:uc002xrr.3";
+chr20 hg19_knownGene CDS 44979400 44979529 0.000000 - 0 gene_id "SLC35C2"; transcript_id "NM_173179:uc002xrr.3";
+chr20 hg19_knownGene exon 44979400 44979529 0.000000 - . gene_id "SLC35C2"; transcript_id "NM_173179:uc002xrr.3";
+chr20 hg19_knownGene CDS 44980690 44980865 0.000000 - 2 gene_id "SLC35C2"; transcript_id "NM_173179:uc002xrr.3";
+chr20 hg19_knownGene exon 44980690 44980865 0.000000 - . gene_id "SLC35C2"; transcript_id "NM_173179:uc002xrr.3";
+chr20 hg19_knownGene CDS 44983521 44983604 0.000000 - 2 gene_id "SLC35C2"; transcript_id "NM_173179:uc002xrr.3";
+chr20 hg19_knownGene exon 44983521 44983604 0.000000 - . gene_id "SLC35C2"; transcript_id "NM_173179:uc002xrr.3";
+chr20 hg19_knownGene CDS 44983712 44983880 0.000000 - 0 gene_id "SLC35C2"; transcript_id "NM_173179:uc002xrr.3";
+chr20 hg19_knownGene exon 44983712 44983880 0.000000 - . gene_id "SLC35C2"; transcript_id "NM_173179:uc002xrr.3";
+chr20 hg19_knownGene CDS 44984441 44984513 0.000000 - 1 gene_id "SLC35C2"; transcript_id "NM_173179:uc002xrr.3";
+chr20 hg19_knownGene exon 44984441 44984513 0.000000 - . gene_id "SLC35C2"; transcript_id "NM_173179:uc002xrr.3";
+chr20 hg19_knownGene CDS 44985213 44985276 0.000000 - 2 gene_id "SLC35C2"; transcript_id "NM_173179:uc002xrr.3";
+chr20 hg19_knownGene exon 44985213 44985276 0.000000 - . gene_id "SLC35C2"; transcript_id "NM_173179:uc002xrr.3";
+chr20 hg19_knownGene CDS 44986262 44986412 0.000000 - 0 gene_id "SLC35C2"; transcript_id "NM_173179:uc002xrr.3";
+chr20 hg19_knownGene exon 44986262 44986412 0.000000 - . gene_id "SLC35C2"; transcript_id "NM_173179:uc002xrr.3";
+chr20 hg19_knownGene CDS 44987026 44987145 0.000000 - 0 gene_id "SLC35C2"; transcript_id "NM_173179:uc002xrr.3";
+chr20 hg19_knownGene exon 44987026 44987597 0.000000 - . gene_id "SLC35C2"; transcript_id "NM_173179:uc002xrr.3";
+chr20 hg19_knownGene exon 44993010 44993064 0.000000 - . gene_id "SLC35C2"; transcript_id "NM_173179:uc002xrr.3";
+chr20 hg19_knownGene CDS 44979036 44979163 0.000000 - 2 gene_id "SLC35C2"; transcript_id "AK300798:uc010zxn.2";
+chr20 hg19_knownGene exon 44978177 44979163 0.000000 - . gene_id "SLC35C2"; transcript_id "AK300798:uc010zxn.2";
+chr20 hg19_knownGene CDS 44979400 44979529 0.000000 - 0 gene_id "SLC35C2"; transcript_id "AK300798:uc010zxn.2";
+chr20 hg19_knownGene exon 44979400 44979529 0.000000 - . gene_id "SLC35C2"; transcript_id "AK300798:uc010zxn.2";
+chr20 hg19_knownGene CDS 44980690 44980865 0.000000 - 2 gene_id "SLC35C2"; transcript_id "AK300798:uc010zxn.2";
+chr20 hg19_knownGene exon 44980690 44980865 0.000000 - . gene_id "SLC35C2"; transcript_id "AK300798:uc010zxn.2";
+chr20 hg19_knownGene CDS 44983521 44983604 0.000000 - 2 gene_id "SLC35C2"; transcript_id "AK300798:uc010zxn.2";
+chr20 hg19_knownGene exon 44983521 44983604 0.000000 - . gene_id "SLC35C2"; transcript_id "AK300798:uc010zxn.2";
+chr20 hg19_knownGene CDS 44983712 44983817 0.000000 - 0 gene_id "SLC35C2"; transcript_id "AK300798:uc010zxn.2";
+chr20 hg19_knownGene exon 44983712 44983817 0.000000 - . gene_id "SLC35C2"; transcript_id "AK300798:uc010zxn.2";
+chr20 hg19_knownGene CDS 44984441 44984506 0.000000 - 0 gene_id "SLC35C2"; transcript_id "AK300798:uc010zxn.2";
+chr20 hg19_knownGene exon 44984441 44984513 0.000000 - . gene_id "SLC35C2"; transcript_id "AK300798:uc010zxn.2";
+chr20 hg19_knownGene exon 44985213 44985276 0.000000 - . gene_id "SLC35C2"; transcript_id "AK300798:uc010zxn.2";
+chr20 hg19_knownGene exon 44986262 44986341 0.000000 - . gene_id "SLC35C2"; transcript_id "AK300798:uc010zxn.2";
+chr20 hg19_knownGene exon 44987026 44987402 0.000000 - . gene_id "SLC35C2"; transcript_id "AK300798:uc010zxn.2";
+chr20 hg19_knownGene exon 44993010 44993064 0.000000 - . gene_id "SLC35C2"; transcript_id "AK300798:uc010zxn.2";
+chr20 hg19_knownGene CDS 44979036 44979163 0.000000 - 2 gene_id "SLC35C2"; transcript_id "AK300207:uc010zxo.2";
+chr20 hg19_knownGene exon 44978177 44979163 0.000000 - . gene_id "SLC35C2"; transcript_id "AK300207:uc010zxo.2";
+chr20 hg19_knownGene CDS 44979400 44979529 0.000000 - 0 gene_id "SLC35C2"; transcript_id "AK300207:uc010zxo.2";
+chr20 hg19_knownGene exon 44979400 44979529 0.000000 - . gene_id "SLC35C2"; transcript_id "AK300207:uc010zxo.2";
+chr20 hg19_knownGene CDS 44980690 44980865 0.000000 - 2 gene_id "SLC35C2"; transcript_id "AK300207:uc010zxo.2";
+chr20 hg19_knownGene exon 44980690 44980865 0.000000 - . gene_id "SLC35C2"; transcript_id "AK300207:uc010zxo.2";
+chr20 hg19_knownGene CDS 44983521 44983604 0.000000 - 2 gene_id "SLC35C2"; transcript_id "AK300207:uc010zxo.2";
+chr20 hg19_knownGene exon 44983521 44983604 0.000000 - . gene_id "SLC35C2"; transcript_id "AK300207:uc010zxo.2";
+chr20 hg19_knownGene CDS 44983712 44983880 0.000000 - 0 gene_id "SLC35C2"; transcript_id "AK300207:uc010zxo.2";
+chr20 hg19_knownGene exon 44983712 44983880 0.000000 - . gene_id "SLC35C2"; transcript_id "AK300207:uc010zxo.2";
+chr20 hg19_knownGene CDS 44984441 44984506 0.000000 - 0 gene_id "SLC35C2"; transcript_id "AK300207:uc010zxo.2";
+chr20 hg19_knownGene exon 44984441 44984513 0.000000 - . gene_id "SLC35C2"; transcript_id "AK300207:uc010zxo.2";
+chr20 hg19_knownGene exon 44985213 44985276 0.000000 - . gene_id "SLC35C2"; transcript_id "AK300207:uc010zxo.2";
+chr20 hg19_knownGene exon 44986262 44986341 0.000000 - . gene_id "SLC35C2"; transcript_id "AK300207:uc010zxo.2";
+chr20 hg19_knownGene exon 44987026 44987402 0.000000 - . gene_id "SLC35C2"; transcript_id "AK300207:uc010zxo.2";
+chr20 hg19_knownGene exon 44993010 44993064 0.000000 - . gene_id "SLC35C2"; transcript_id "AK300207:uc010zxo.2";
+chr20 hg19_knownGene CDS 44979036 44979163 0.000000 - 2 gene_id "SLC35C2"; transcript_id "AK301022:uc010zxp.2";
+chr20 hg19_knownGene exon 44978177 44979163 0.000000 - . gene_id "SLC35C2"; transcript_id "AK301022:uc010zxp.2";
+chr20 hg19_knownGene CDS 44979400 44979529 0.000000 - 0 gene_id "SLC35C2"; transcript_id "AK301022:uc010zxp.2";
+chr20 hg19_knownGene exon 44979400 44979529 0.000000 - . gene_id "SLC35C2"; transcript_id "AK301022:uc010zxp.2";
+chr20 hg19_knownGene CDS 44980690 44980865 0.000000 - 2 gene_id "SLC35C2"; transcript_id "AK301022:uc010zxp.2";
+chr20 hg19_knownGene exon 44980690 44980865 0.000000 - . gene_id "SLC35C2"; transcript_id "AK301022:uc010zxp.2";
+chr20 hg19_knownGene CDS 44983521 44983604 0.000000 - 2 gene_id "SLC35C2"; transcript_id "AK301022:uc010zxp.2";
+chr20 hg19_knownGene exon 44983521 44983604 0.000000 - . gene_id "SLC35C2"; transcript_id "AK301022:uc010zxp.2";
+chr20 hg19_knownGene CDS 44983712 44983880 0.000000 - 0 gene_id "SLC35C2"; transcript_id "AK301022:uc010zxp.2";
+chr20 hg19_knownGene exon 44983712 44983880 0.000000 - . gene_id "SLC35C2"; transcript_id "AK301022:uc010zxp.2";
+chr20 hg19_knownGene CDS 44984441 44984513 0.000000 - 1 gene_id "SLC35C2"; transcript_id "AK301022:uc010zxp.2";
+chr20 hg19_knownGene exon 44984441 44984513 0.000000 - . gene_id "SLC35C2"; transcript_id "AK301022:uc010zxp.2";
+chr20 hg19_knownGene CDS 44985213 44985276 0.000000 - 2 gene_id "SLC35C2"; transcript_id "AK301022:uc010zxp.2";
+chr20 hg19_knownGene exon 44985213 44985276 0.000000 - . gene_id "SLC35C2"; transcript_id "AK301022:uc010zxp.2";
+chr20 hg19_knownGene CDS 44986262 44986412 0.000000 - 0 gene_id "SLC35C2"; transcript_id "AK301022:uc010zxp.2";
+chr20 hg19_knownGene exon 44986262 44986412 0.000000 - . gene_id "SLC35C2"; transcript_id "AK301022:uc010zxp.2";
+chr20 hg19_knownGene CDS 44987026 44987197 0.000000 - 1 gene_id "SLC35C2"; transcript_id "AK301022:uc010zxp.2";
+chr20 hg19_knownGene exon 44987026 44987197 0.000000 - . gene_id "SLC35C2"; transcript_id "AK301022:uc010zxp.2";
+chr20 hg19_knownGene CDS 44987330 44987364 0.000000 - 0 gene_id "SLC35C2"; transcript_id "AK301022:uc010zxp.2";
+chr20 hg19_knownGene exon 44987330 44987402 0.000000 - . gene_id "SLC35C2"; transcript_id "AK301022:uc010zxp.2";
+chr20 hg19_knownGene exon 44993010 44993064 0.000000 - . gene_id "SLC35C2"; transcript_id "AK301022:uc010zxp.2";
+chr20 hg19_knownGene CDS 44998818 44999164 0.000000 - 2 gene_id "ELMO2"; transcript_id "AL713765:uc002xrv.1";
+chr20 hg19_knownGene exon 44998605 44999164 0.000000 - . gene_id "ELMO2"; transcript_id "AL713765:uc002xrv.1";
+chr20 hg19_knownGene CDS 44999991 45000098 0.000000 - 2 gene_id "ELMO2"; transcript_id "AL713765:uc002xrv.1";
+chr20 hg19_knownGene exon 44999991 45000098 0.000000 - . gene_id "ELMO2"; transcript_id "AL713765:uc002xrv.1";
+chr20 hg19_knownGene CDS 45000218 45000330 0.000000 - 1 gene_id "ELMO2"; transcript_id "AL713765:uc002xrv.1";
+chr20 hg19_knownGene exon 45000218 45000330 0.000000 - . gene_id "ELMO2"; transcript_id "AL713765:uc002xrv.1";
+chr20 hg19_knownGene CDS 45000445 45000608 0.000000 - 0 gene_id "ELMO2"; transcript_id "AL713765:uc002xrv.1";
+chr20 hg19_knownGene exon 45000445 45000608 0.000000 - . gene_id "ELMO2"; transcript_id "AL713765:uc002xrv.1";
+chr20 hg19_knownGene CDS 45002038 45002174 0.000000 - 2 gene_id "ELMO2"; transcript_id "AL713765:uc002xrv.1";
+chr20 hg19_knownGene exon 45002038 45002174 0.000000 - . gene_id "ELMO2"; transcript_id "AL713765:uc002xrv.1";
+chr20 hg19_knownGene CDS 45002971 45003079 0.000000 - 0 gene_id "ELMO2"; transcript_id "AL713765:uc002xrv.1";
+chr20 hg19_knownGene exon 45002971 45003079 0.000000 - . gene_id "ELMO2"; transcript_id "AL713765:uc002xrv.1";
+chr20 hg19_knownGene CDS 45003175 45003279 0.000000 - 0 gene_id "ELMO2"; transcript_id "AL713765:uc002xrv.1";
+chr20 hg19_knownGene exon 45003175 45003279 0.000000 - . gene_id "ELMO2"; transcript_id "AL713765:uc002xrv.1";
+chr20 hg19_knownGene CDS 45003875 45004009 0.000000 - 0 gene_id "ELMO2"; transcript_id "AL713765:uc002xrv.1";
+chr20 hg19_knownGene exon 45003875 45004009 0.000000 - . gene_id "ELMO2"; transcript_id "AL713765:uc002xrv.1";
+chr20 hg19_knownGene CDS 45004307 45004393 0.000000 - 0 gene_id "ELMO2"; transcript_id "AL713765:uc002xrv.1";
+chr20 hg19_knownGene exon 45004307 45004429 0.000000 - . gene_id "ELMO2"; transcript_id "AL713765:uc002xrv.1";
+chr20 hg19_knownGene CDS 44996002 44996199 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK302710:uc010zxq.1";
+chr20 hg19_knownGene exon 44994690 44996199 0.000000 - . gene_id "ELMO2"; transcript_id "AK302710:uc010zxq.1";
+chr20 hg19_knownGene CDS 44997530 44997607 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK302710:uc010zxq.1";
+chr20 hg19_knownGene exon 44997530 44997607 0.000000 - . gene_id "ELMO2"; transcript_id "AK302710:uc010zxq.1";
+chr20 hg19_knownGene CDS 44999082 44999164 0.000000 - 2 gene_id "ELMO2"; transcript_id "AK302710:uc010zxq.1";
+chr20 hg19_knownGene exon 44999082 44999164 0.000000 - . gene_id "ELMO2"; transcript_id "AK302710:uc010zxq.1";
+chr20 hg19_knownGene CDS 44999991 45000098 0.000000 - 2 gene_id "ELMO2"; transcript_id "AK302710:uc010zxq.1";
+chr20 hg19_knownGene exon 44999991 45000098 0.000000 - . gene_id "ELMO2"; transcript_id "AK302710:uc010zxq.1";
+chr20 hg19_knownGene CDS 45000218 45000330 0.000000 - 1 gene_id "ELMO2"; transcript_id "AK302710:uc010zxq.1";
+chr20 hg19_knownGene exon 45000218 45000330 0.000000 - . gene_id "ELMO2"; transcript_id "AK302710:uc010zxq.1";
+chr20 hg19_knownGene CDS 45000445 45000608 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK302710:uc010zxq.1";
+chr20 hg19_knownGene exon 45000445 45000608 0.000000 - . gene_id "ELMO2"; transcript_id "AK302710:uc010zxq.1";
+chr20 hg19_knownGene CDS 45002038 45002174 0.000000 - 2 gene_id "ELMO2"; transcript_id "AK302710:uc010zxq.1";
+chr20 hg19_knownGene exon 45002038 45002174 0.000000 - . gene_id "ELMO2"; transcript_id "AK302710:uc010zxq.1";
+chr20 hg19_knownGene CDS 45002971 45003079 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK302710:uc010zxq.1";
+chr20 hg19_knownGene exon 45002971 45003079 0.000000 - . gene_id "ELMO2"; transcript_id "AK302710:uc010zxq.1";
+chr20 hg19_knownGene CDS 45003175 45003279 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK302710:uc010zxq.1";
+chr20 hg19_knownGene exon 45003175 45003279 0.000000 - . gene_id "ELMO2"; transcript_id "AK302710:uc010zxq.1";
+chr20 hg19_knownGene CDS 45003875 45004009 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK302710:uc010zxq.1";
+chr20 hg19_knownGene exon 45003875 45004009 0.000000 - . gene_id "ELMO2"; transcript_id "AK302710:uc010zxq.1";
+chr20 hg19_knownGene CDS 45004307 45004429 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK302710:uc010zxq.1";
+chr20 hg19_knownGene exon 45004307 45004429 0.000000 - . gene_id "ELMO2"; transcript_id "AK302710:uc010zxq.1";
+chr20 hg19_knownGene CDS 45005343 45005345 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK302710:uc010zxq.1";
+chr20 hg19_knownGene exon 45005343 45005578 0.000000 - . gene_id "ELMO2"; transcript_id "AK302710:uc010zxq.1";
+chr20 hg19_knownGene CDS 44996002 44996199 0.000000 - 0 gene_id "ELMO2"; transcript_id "BC036483:uc002xrs.1";
+chr20 hg19_knownGene exon 44994690 44996199 0.000000 - . gene_id "ELMO2"; transcript_id "BC036483:uc002xrs.1";
+chr20 hg19_knownGene CDS 44997530 44997607 0.000000 - 0 gene_id "ELMO2"; transcript_id "BC036483:uc002xrs.1";
+chr20 hg19_knownGene exon 44997530 44997607 0.000000 - . gene_id "ELMO2"; transcript_id "BC036483:uc002xrs.1";
+chr20 hg19_knownGene CDS 44999082 44999164 0.000000 - 2 gene_id "ELMO2"; transcript_id "BC036483:uc002xrs.1";
+chr20 hg19_knownGene exon 44999082 44999164 0.000000 - . gene_id "ELMO2"; transcript_id "BC036483:uc002xrs.1";
+chr20 hg19_knownGene CDS 44999991 45000098 0.000000 - 2 gene_id "ELMO2"; transcript_id "BC036483:uc002xrs.1";
+chr20 hg19_knownGene exon 44999991 45000098 0.000000 - . gene_id "ELMO2"; transcript_id "BC036483:uc002xrs.1";
+chr20 hg19_knownGene CDS 45000218 45000330 0.000000 - 1 gene_id "ELMO2"; transcript_id "BC036483:uc002xrs.1";
+chr20 hg19_knownGene exon 45000218 45000330 0.000000 - . gene_id "ELMO2"; transcript_id "BC036483:uc002xrs.1";
+chr20 hg19_knownGene CDS 45000445 45000608 0.000000 - 0 gene_id "ELMO2"; transcript_id "BC036483:uc002xrs.1";
+chr20 hg19_knownGene exon 45000445 45000608 0.000000 - . gene_id "ELMO2"; transcript_id "BC036483:uc002xrs.1";
+chr20 hg19_knownGene CDS 45002038 45002174 0.000000 - 2 gene_id "ELMO2"; transcript_id "BC036483:uc002xrs.1";
+chr20 hg19_knownGene exon 45002038 45002174 0.000000 - . gene_id "ELMO2"; transcript_id "BC036483:uc002xrs.1";
+chr20 hg19_knownGene CDS 45002971 45003079 0.000000 - 0 gene_id "ELMO2"; transcript_id "BC036483:uc002xrs.1";
+chr20 hg19_knownGene exon 45002971 45003079 0.000000 - . gene_id "ELMO2"; transcript_id "BC036483:uc002xrs.1";
+chr20 hg19_knownGene CDS 45003175 45003279 0.000000 - 0 gene_id "ELMO2"; transcript_id "BC036483:uc002xrs.1";
+chr20 hg19_knownGene exon 45003175 45003279 0.000000 - . gene_id "ELMO2"; transcript_id "BC036483:uc002xrs.1";
+chr20 hg19_knownGene CDS 45003875 45004009 0.000000 - 0 gene_id "ELMO2"; transcript_id "BC036483:uc002xrs.1";
+chr20 hg19_knownGene exon 45003875 45004009 0.000000 - . gene_id "ELMO2"; transcript_id "BC036483:uc002xrs.1";
+chr20 hg19_knownGene CDS 45004307 45004429 0.000000 - 0 gene_id "ELMO2"; transcript_id "BC036483:uc002xrs.1";
+chr20 hg19_knownGene exon 45004307 45004429 0.000000 - . gene_id "ELMO2"; transcript_id "BC036483:uc002xrs.1";
+chr20 hg19_knownGene CDS 45008892 45008939 0.000000 - 0 gene_id "ELMO2"; transcript_id "BC036483:uc002xrs.1";
+chr20 hg19_knownGene exon 45008892 45011132 0.000000 - . gene_id "ELMO2"; transcript_id "BC036483:uc002xrs.1";
+chr20 hg19_knownGene CDS 45002017 45002174 0.000000 - 2 gene_id "ELMO2"; transcript_id "BC014207:uc002xrw.3";
+chr20 hg19_knownGene exon 45001474 45002174 0.000000 - . gene_id "ELMO2"; transcript_id "BC014207:uc002xrw.3";
+chr20 hg19_knownGene CDS 45002971 45003079 0.000000 - 0 gene_id "ELMO2"; transcript_id "BC014207:uc002xrw.3";
+chr20 hg19_knownGene exon 45002971 45003079 0.000000 - . gene_id "ELMO2"; transcript_id "BC014207:uc002xrw.3";
+chr20 hg19_knownGene CDS 45003175 45003279 0.000000 - 0 gene_id "ELMO2"; transcript_id "BC014207:uc002xrw.3";
+chr20 hg19_knownGene exon 45003175 45003279 0.000000 - . gene_id "ELMO2"; transcript_id "BC014207:uc002xrw.3";
+chr20 hg19_knownGene CDS 45003875 45004009 0.000000 - 0 gene_id "ELMO2"; transcript_id "BC014207:uc002xrw.3";
+chr20 hg19_knownGene exon 45003875 45004009 0.000000 - . gene_id "ELMO2"; transcript_id "BC014207:uc002xrw.3";
+chr20 hg19_knownGene CDS 45004307 45004429 0.000000 - 0 gene_id "ELMO2"; transcript_id "BC014207:uc002xrw.3";
+chr20 hg19_knownGene exon 45004307 45004429 0.000000 - . gene_id "ELMO2"; transcript_id "BC014207:uc002xrw.3";
+chr20 hg19_knownGene CDS 45008892 45008942 0.000000 - 0 gene_id "ELMO2"; transcript_id "BC014207:uc002xrw.3";
+chr20 hg19_knownGene exon 45008892 45008942 0.000000 - . gene_id "ELMO2"; transcript_id "BC014207:uc002xrw.3";
+chr20 hg19_knownGene CDS 45012055 45012133 0.000000 - 1 gene_id "ELMO2"; transcript_id "BC014207:uc002xrw.3";
+chr20 hg19_knownGene exon 45012055 45012133 0.000000 - . gene_id "ELMO2"; transcript_id "BC014207:uc002xrw.3";
+chr20 hg19_knownGene CDS 45014763 45014890 0.000000 - 0 gene_id "ELMO2"; transcript_id "BC014207:uc002xrw.3";
+chr20 hg19_knownGene exon 45014763 45014914 0.000000 - . gene_id "ELMO2"; transcript_id "BC014207:uc002xrw.3";
+chr20 hg19_knownGene CDS 44996002 44996199 0.000000 - 0 gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene exon 44994690 44996199 0.000000 - . gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene CDS 44997530 44997607 0.000000 - 0 gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene exon 44997530 44997607 0.000000 - . gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene CDS 44999082 44999164 0.000000 - 2 gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene exon 44999082 44999164 0.000000 - . gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene CDS 44999991 45000098 0.000000 - 2 gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene exon 44999991 45000098 0.000000 - . gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene CDS 45000218 45000330 0.000000 - 1 gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene exon 45000218 45000330 0.000000 - . gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene CDS 45000445 45000608 0.000000 - 0 gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene exon 45000445 45000608 0.000000 - . gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene CDS 45002038 45002174 0.000000 - 2 gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene exon 45002038 45002174 0.000000 - . gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene CDS 45002971 45003079 0.000000 - 0 gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene exon 45002971 45003079 0.000000 - . gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene CDS 45003175 45003279 0.000000 - 0 gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene exon 45003175 45003279 0.000000 - . gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene CDS 45003875 45004009 0.000000 - 0 gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene exon 45003875 45004009 0.000000 - . gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene CDS 45004307 45004429 0.000000 - 0 gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene exon 45004307 45004429 0.000000 - . gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene CDS 45008892 45008942 0.000000 - 0 gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene exon 45008892 45008942 0.000000 - . gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene CDS 45012055 45012133 0.000000 - 1 gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene exon 45012055 45012133 0.000000 - . gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene CDS 45014763 45014914 0.000000 - 0 gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene exon 45014763 45014914 0.000000 - . gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene CDS 45015977 45016076 0.000000 - 1 gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene exon 45015977 45016076 0.000000 - . gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene CDS 45017678 45017859 0.000000 - 0 gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene exon 45017678 45017859 0.000000 - . gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene CDS 45021732 45021782 0.000000 - 0 gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene exon 45021732 45021782 0.000000 - . gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene CDS 45022168 45022240 0.000000 - 1 gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene exon 45022168 45022240 0.000000 - . gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene CDS 45022688 45022728 0.000000 - 0 gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene exon 45022688 45022728 0.000000 - . gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene CDS 45023044 45023121 0.000000 - 0 gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene exon 45023044 45023171 0.000000 - . gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene exon 45027336 45027410 0.000000 - . gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene exon 45035187 45035271 0.000000 - . gene_id "ELMO2"; transcript_id "NM_133171:uc002xrt.1";
+chr20 hg19_knownGene CDS 44996002 44996199 0.000000 - 0 gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene exon 44994690 44996199 0.000000 - . gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene CDS 44997530 44997607 0.000000 - 0 gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene exon 44997530 44997607 0.000000 - . gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene CDS 44999082 44999164 0.000000 - 2 gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene exon 44999082 44999164 0.000000 - . gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene CDS 44999991 45000098 0.000000 - 2 gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene exon 44999991 45000098 0.000000 - . gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene CDS 45000218 45000330 0.000000 - 1 gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene exon 45000218 45000330 0.000000 - . gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene CDS 45000445 45000608 0.000000 - 0 gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene exon 45000445 45000608 0.000000 - . gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene CDS 45002038 45002174 0.000000 - 2 gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene exon 45002038 45002174 0.000000 - . gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene CDS 45002971 45003079 0.000000 - 0 gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene exon 45002971 45003079 0.000000 - . gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene CDS 45003175 45003279 0.000000 - 0 gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene exon 45003175 45003279 0.000000 - . gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene CDS 45003875 45004009 0.000000 - 0 gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene exon 45003875 45004009 0.000000 - . gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene CDS 45004307 45004429 0.000000 - 0 gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene exon 45004307 45004429 0.000000 - . gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene CDS 45008892 45008942 0.000000 - 0 gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene exon 45008892 45008942 0.000000 - . gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene CDS 45012055 45012133 0.000000 - 1 gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene exon 45012055 45012133 0.000000 - . gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene CDS 45014763 45014914 0.000000 - 0 gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene exon 45014763 45014914 0.000000 - . gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene CDS 45015977 45016076 0.000000 - 1 gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene exon 45015977 45016076 0.000000 - . gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene CDS 45017678 45017859 0.000000 - 0 gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene exon 45017678 45017859 0.000000 - . gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene CDS 45021732 45021782 0.000000 - 0 gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene exon 45021732 45021782 0.000000 - . gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene CDS 45022168 45022240 0.000000 - 1 gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene exon 45022168 45022240 0.000000 - . gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene CDS 45022688 45022728 0.000000 - 0 gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene exon 45022688 45022728 0.000000 - . gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene CDS 45023044 45023121 0.000000 - 0 gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene exon 45023044 45023142 0.000000 - . gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene exon 45035187 45035271 0.000000 - . gene_id "ELMO2"; transcript_id "NM_182764:uc002xru.1";
+chr20 hg19_knownGene CDS 44996002 44996199 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene exon 44994690 44996199 0.000000 - . gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene CDS 44997530 44997607 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene exon 44997530 44997607 0.000000 - . gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene CDS 44999082 44999164 0.000000 - 2 gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene exon 44999082 44999164 0.000000 - . gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene CDS 44999991 45000098 0.000000 - 2 gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene exon 44999991 45000098 0.000000 - . gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene CDS 45000218 45000330 0.000000 - 1 gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene exon 45000218 45000330 0.000000 - . gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene CDS 45000445 45000608 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene exon 45000445 45000608 0.000000 - . gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene CDS 45002038 45002174 0.000000 - 2 gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene exon 45002038 45002174 0.000000 - . gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene CDS 45002971 45003079 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene exon 45002971 45003079 0.000000 - . gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene CDS 45003175 45003279 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene exon 45003175 45003279 0.000000 - . gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene CDS 45003875 45004009 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene exon 45003875 45004009 0.000000 - . gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene CDS 45004307 45004429 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene exon 45004307 45004429 0.000000 - . gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene CDS 45008892 45008942 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene exon 45008892 45008942 0.000000 - . gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene CDS 45010845 45010880 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene exon 45010845 45010880 0.000000 - . gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene CDS 45012055 45012133 0.000000 - 1 gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene exon 45012055 45012133 0.000000 - . gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene CDS 45014763 45014914 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene exon 45014763 45014914 0.000000 - . gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene CDS 45015977 45016076 0.000000 - 1 gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene exon 45015977 45016076 0.000000 - . gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene CDS 45017678 45017859 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene exon 45017678 45017859 0.000000 - . gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene CDS 45021732 45021782 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene exon 45021732 45021782 0.000000 - . gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene CDS 45022168 45022240 0.000000 - 1 gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene exon 45022168 45022240 0.000000 - . gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene CDS 45022688 45022728 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene exon 45022688 45022728 0.000000 - . gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene CDS 45023044 45023121 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene exon 45023044 45023171 0.000000 - . gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene exon 45027336 45027410 0.000000 - . gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene exon 45035187 45035271 0.000000 - . gene_id "ELMO2"; transcript_id "AK299318:uc010zxr.1";
+chr20 hg19_knownGene CDS 45003878 45004009 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK057032:uc002xrx.1";
+chr20 hg19_knownGene exon 45003875 45004009 0.000000 - . gene_id "ELMO2"; transcript_id "AK057032:uc002xrx.1";
+chr20 hg19_knownGene CDS 45004307 45004429 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK057032:uc002xrx.1";
+chr20 hg19_knownGene exon 45004307 45004429 0.000000 - . gene_id "ELMO2"; transcript_id "AK057032:uc002xrx.1";
+chr20 hg19_knownGene CDS 45008892 45008942 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK057032:uc002xrx.1";
+chr20 hg19_knownGene exon 45008892 45008942 0.000000 - . gene_id "ELMO2"; transcript_id "AK057032:uc002xrx.1";
+chr20 hg19_knownGene CDS 45012055 45012133 0.000000 - 1 gene_id "ELMO2"; transcript_id "AK057032:uc002xrx.1";
+chr20 hg19_knownGene exon 45012055 45012133 0.000000 - . gene_id "ELMO2"; transcript_id "AK057032:uc002xrx.1";
+chr20 hg19_knownGene CDS 45014763 45014914 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK057032:uc002xrx.1";
+chr20 hg19_knownGene exon 45014763 45014914 0.000000 - . gene_id "ELMO2"; transcript_id "AK057032:uc002xrx.1";
+chr20 hg19_knownGene CDS 45015977 45016076 0.000000 - 1 gene_id "ELMO2"; transcript_id "AK057032:uc002xrx.1";
+chr20 hg19_knownGene exon 45015977 45016076 0.000000 - . gene_id "ELMO2"; transcript_id "AK057032:uc002xrx.1";
+chr20 hg19_knownGene CDS 45017678 45017859 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK057032:uc002xrx.1";
+chr20 hg19_knownGene exon 45017678 45017859 0.000000 - . gene_id "ELMO2"; transcript_id "AK057032:uc002xrx.1";
+chr20 hg19_knownGene CDS 45021732 45021782 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK057032:uc002xrx.1";
+chr20 hg19_knownGene exon 45021732 45021782 0.000000 - . gene_id "ELMO2"; transcript_id "AK057032:uc002xrx.1";
+chr20 hg19_knownGene CDS 45022168 45022240 0.000000 - 1 gene_id "ELMO2"; transcript_id "AK057032:uc002xrx.1";
+chr20 hg19_knownGene exon 45022168 45022240 0.000000 - . gene_id "ELMO2"; transcript_id "AK057032:uc002xrx.1";
+chr20 hg19_knownGene CDS 45022688 45022728 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK057032:uc002xrx.1";
+chr20 hg19_knownGene exon 45022688 45022728 0.000000 - . gene_id "ELMO2"; transcript_id "AK057032:uc002xrx.1";
+chr20 hg19_knownGene CDS 45023044 45023121 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK057032:uc002xrx.1";
+chr20 hg19_knownGene exon 45023044 45023142 0.000000 - . gene_id "ELMO2"; transcript_id "AK057032:uc002xrx.1";
+chr20 hg19_knownGene exon 45027336 45027410 0.000000 - . gene_id "ELMO2"; transcript_id "AK057032:uc002xrx.1";
+chr20 hg19_knownGene exon 45035187 45035271 0.000000 - . gene_id "ELMO2"; transcript_id "AK057032:uc002xrx.1";
+chr20 hg19_knownGene CDS 44996002 44996199 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene exon 44994690 44996199 0.000000 - . gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene CDS 44997530 44997607 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene exon 44997530 44997607 0.000000 - . gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene CDS 44999082 44999164 0.000000 - 2 gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene exon 44999082 44999164 0.000000 - . gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene CDS 44999991 45000098 0.000000 - 2 gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene exon 44999991 45000098 0.000000 - . gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene CDS 45000218 45000330 0.000000 - 1 gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene exon 45000218 45000330 0.000000 - . gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene CDS 45000445 45000608 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene exon 45000445 45000608 0.000000 - . gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene CDS 45002038 45002174 0.000000 - 2 gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene exon 45002038 45002174 0.000000 - . gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene CDS 45002971 45003079 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene exon 45002971 45003079 0.000000 - . gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene CDS 45003175 45003279 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene exon 45003175 45003279 0.000000 - . gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene CDS 45003875 45004009 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene exon 45003875 45004009 0.000000 - . gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene CDS 45004307 45004429 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene exon 45004307 45004429 0.000000 - . gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene CDS 45008892 45008942 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene exon 45008892 45008942 0.000000 - . gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene CDS 45012055 45012133 0.000000 - 1 gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene exon 45012055 45012133 0.000000 - . gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene CDS 45014763 45014890 0.000000 - 0 gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene exon 45014763 45014914 0.000000 - . gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene exon 45017678 45017859 0.000000 - . gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene exon 45021732 45021782 0.000000 - . gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene exon 45022168 45022240 0.000000 - . gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene exon 45022688 45022728 0.000000 - . gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene exon 45023044 45023142 0.000000 - . gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene exon 45061533 45061704 0.000000 - . gene_id "ELMO2"; transcript_id "AK293861:uc010zxs.1";
+chr20 hg19_knownGene exon 45085131 45086282 0.000000 - . gene_id "BC100777"; transcript_id "BC100777:uc021weo.1";
+chr20 hg19_knownGene exon 45092299 45093931 0.000000 - . gene_id "MKRN7P"; transcript_id "NR_026640:uc010zxt.2";
+chr20 hg19_knownGene CDS 45129938 45131736 0.000000 - 2 gene_id "ZNF334"; transcript_id "AL833936:uc002xsa.3";
+chr20 hg19_knownGene exon 45129707 45131736 0.000000 - . gene_id "ZNF334"; transcript_id "AL833936:uc002xsa.3";
+chr20 hg19_knownGene CDS 45132853 45132998 0.000000 - 1 gene_id "ZNF334"; transcript_id "AL833936:uc002xsa.3";
+chr20 hg19_knownGene exon 45132853 45132998 0.000000 - . gene_id "ZNF334"; transcript_id "AL833936:uc002xsa.3";
+chr20 hg19_knownGene CDS 45133253 45133379 0.000000 - 2 gene_id "ZNF334"; transcript_id "AL833936:uc002xsa.3";
+chr20 hg19_knownGene exon 45133253 45133379 0.000000 - . gene_id "ZNF334"; transcript_id "AL833936:uc002xsa.3";
+chr20 hg19_knownGene CDS 45134946 45134982 0.000000 - 0 gene_id "ZNF334"; transcript_id "AL833936:uc002xsa.3";
+chr20 hg19_knownGene exon 45134946 45135444 0.000000 - . gene_id "ZNF334"; transcript_id "AL833936:uc002xsa.3";
+chr20 hg19_knownGene CDS 45129938 45131736 0.000000 - 2 gene_id "ZNF334"; transcript_id "AK057717:uc002xsb.3";
+chr20 hg19_knownGene exon 45129707 45131736 0.000000 - . gene_id "ZNF334"; transcript_id "AK057717:uc002xsb.3";
+chr20 hg19_knownGene CDS 45132853 45132945 0.000000 - 2 gene_id "ZNF334"; transcript_id "AK057717:uc002xsb.3";
+chr20 hg19_knownGene exon 45132853 45132945 0.000000 - . gene_id "ZNF334"; transcript_id "AK057717:uc002xsb.3";
+chr20 hg19_knownGene CDS 45133253 45133286 0.000000 - 0 gene_id "ZNF334"; transcript_id "AK057717:uc002xsb.3";
+chr20 hg19_knownGene exon 45133253 45133379 0.000000 - . gene_id "ZNF334"; transcript_id "AK057717:uc002xsb.3";
+chr20 hg19_knownGene exon 45134946 45135444 0.000000 - . gene_id "ZNF334"; transcript_id "AK057717:uc002xsb.3";
+chr20 hg19_knownGene CDS 45129938 45131736 0.000000 - 2 gene_id "ZNF334"; transcript_id "NM_199441:uc002xsd.3";
+chr20 hg19_knownGene exon 45129707 45131736 0.000000 - . gene_id "ZNF334"; transcript_id "NM_199441:uc002xsd.3";
+chr20 hg19_knownGene CDS 45132853 45132945 0.000000 - 2 gene_id "ZNF334"; transcript_id "NM_199441:uc002xsd.3";
+chr20 hg19_knownGene exon 45132853 45132945 0.000000 - . gene_id "ZNF334"; transcript_id "NM_199441:uc002xsd.3";
+chr20 hg19_knownGene CDS 45133253 45133286 0.000000 - 0 gene_id "ZNF334"; transcript_id "NM_199441:uc002xsd.3";
+chr20 hg19_knownGene exon 45133253 45133379 0.000000 - . gene_id "ZNF334"; transcript_id "NM_199441:uc002xsd.3";
+chr20 hg19_knownGene exon 45134946 45135097 0.000000 - . gene_id "ZNF334"; transcript_id "NM_199441:uc002xsd.3";
+chr20 hg19_knownGene exon 45140721 45140779 0.000000 - . gene_id "ZNF334"; transcript_id "NM_199441:uc002xsd.3";
+chr20 hg19_knownGene exon 45141179 45142194 0.000000 - . gene_id "ZNF334"; transcript_id "NM_199441:uc002xsd.3";
+chr20 hg19_knownGene CDS 45129938 45131736 0.000000 - 2 gene_id "ZNF334"; transcript_id "NM_018102:uc002xsc.3";
+chr20 hg19_knownGene exon 45129707 45131736 0.000000 - . gene_id "ZNF334"; transcript_id "NM_018102:uc002xsc.3";
+chr20 hg19_knownGene CDS 45132853 45132945 0.000000 - 2 gene_id "ZNF334"; transcript_id "NM_018102:uc002xsc.3";
+chr20 hg19_knownGene exon 45132853 45132945 0.000000 - . gene_id "ZNF334"; transcript_id "NM_018102:uc002xsc.3";
+chr20 hg19_knownGene CDS 45133253 45133379 0.000000 - 0 gene_id "ZNF334"; transcript_id "NM_018102:uc002xsc.3";
+chr20 hg19_knownGene exon 45133253 45133379 0.000000 - . gene_id "ZNF334"; transcript_id "NM_018102:uc002xsc.3";
+chr20 hg19_knownGene CDS 45140721 45140741 0.000000 - 0 gene_id "ZNF334"; transcript_id "NM_018102:uc002xsc.3";
+chr20 hg19_knownGene exon 45140721 45140779 0.000000 - . gene_id "ZNF334"; transcript_id "NM_018102:uc002xsc.3";
+chr20 hg19_knownGene exon 45142049 45142194 0.000000 - . gene_id "ZNF334"; transcript_id "NM_018102:uc002xsc.3";
+chr20 hg19_knownGene CDS 45129938 45131736 0.000000 - 2 gene_id "ZNF334"; transcript_id "AK095611:uc010ghl.3";
+chr20 hg19_knownGene exon 45129707 45131736 0.000000 - . gene_id "ZNF334"; transcript_id "AK095611:uc010ghl.3";
+chr20 hg19_knownGene CDS 45132853 45132945 0.000000 - 2 gene_id "ZNF334"; transcript_id "AK095611:uc010ghl.3";
+chr20 hg19_knownGene exon 45132853 45132945 0.000000 - . gene_id "ZNF334"; transcript_id "AK095611:uc010ghl.3";
+chr20 hg19_knownGene CDS 45133253 45133379 0.000000 - 0 gene_id "ZNF334"; transcript_id "AK095611:uc010ghl.3";
+chr20 hg19_knownGene exon 45133253 45133379 0.000000 - . gene_id "ZNF334"; transcript_id "AK095611:uc010ghl.3";
+chr20 hg19_knownGene CDS 45138244 45138261 0.000000 - 0 gene_id "ZNF334"; transcript_id "AK095611:uc010ghl.3";
+chr20 hg19_knownGene exon 45138244 45138390 0.000000 - . gene_id "ZNF334"; transcript_id "AK095611:uc010ghl.3";
+chr20 hg19_knownGene exon 45140721 45140779 0.000000 - . gene_id "ZNF334"; transcript_id "AK095611:uc010ghl.3";
+chr20 hg19_knownGene exon 45142136 45142194 0.000000 - . gene_id "ZNF334"; transcript_id "AK095611:uc010ghl.3";
+chr20 hg19_knownGene CDS 45169916 45170566 0.000000 - 0 gene_id "C20orf123"; transcript_id "NM_080721:uc010zxu.1";
+chr20 hg19_knownGene exon 45169585 45170566 0.000000 - . gene_id "C20orf123"; transcript_id "NM_080721:uc010zxu.1";
+chr20 hg19_knownGene CDS 45173966 45174968 0.000000 - 1 gene_id "C20orf123"; transcript_id "NM_080721:uc010zxu.1";
+chr20 hg19_knownGene exon 45173966 45174968 0.000000 - . gene_id "C20orf123"; transcript_id "NM_080721:uc010zxu.1";
+chr20 hg19_knownGene CDS 45179156 45179199 0.000000 - 0 gene_id "C20orf123"; transcript_id "NM_080721:uc010zxu.1";
+chr20 hg19_knownGene exon 45179156 45179213 0.000000 - . gene_id "C20orf123"; transcript_id "NM_080721:uc010zxu.1";
+chr20 hg19_knownGene CDS 45188664 45188837 0.000000 - 0 gene_id "SLC13A3"; transcript_id "AK123351:uc002xse.2";
+chr20 hg19_knownGene exon 45186462 45188837 0.000000 - . gene_id "SLC13A3"; transcript_id "AK123351:uc002xse.2";
+chr20 hg19_knownGene CDS 45192053 45192157 0.000000 - 0 gene_id "SLC13A3"; transcript_id "AK123351:uc002xse.2";
+chr20 hg19_knownGene exon 45192053 45192254 0.000000 - . gene_id "SLC13A3"; transcript_id "AK123351:uc002xse.2";
+chr20 hg19_knownGene CDS 45188664 45188837 0.000000 - 0 gene_id "SLC13A3"; transcript_id "AK310767:uc010ghm.2";
+chr20 hg19_knownGene exon 45186462 45188837 0.000000 - . gene_id "SLC13A3"; transcript_id "AK310767:uc010ghm.2";
+chr20 hg19_knownGene CDS 45192053 45192190 0.000000 - 0 gene_id "SLC13A3"; transcript_id "AK310767:uc010ghm.2";
+chr20 hg19_knownGene exon 45192053 45192190 0.000000 - . gene_id "SLC13A3"; transcript_id "AK310767:uc010ghm.2";
+chr20 hg19_knownGene CDS 45194868 45195122 0.000000 - 0 gene_id "SLC13A3"; transcript_id "AK310767:uc010ghm.2";
+chr20 hg19_knownGene exon 45194868 45195314 0.000000 - . gene_id "SLC13A3"; transcript_id "AK310767:uc010ghm.2";
+chr20 hg19_knownGene CDS 45188664 45188837 0.000000 - 0 gene_id "SLC13A3"; transcript_id "AK303709:uc010zxv.2";
+chr20 hg19_knownGene exon 45186462 45188837 0.000000 - . gene_id "SLC13A3"; transcript_id "AK303709:uc010zxv.2";
+chr20 hg19_knownGene CDS 45192053 45192190 0.000000 - 0 gene_id "SLC13A3"; transcript_id "AK303709:uc010zxv.2";
+chr20 hg19_knownGene exon 45192053 45192190 0.000000 - . gene_id "SLC13A3"; transcript_id "AK303709:uc010zxv.2";
+chr20 hg19_knownGene CDS 45194868 45195029 0.000000 - 0 gene_id "SLC13A3"; transcript_id "AK303709:uc010zxv.2";
+chr20 hg19_knownGene exon 45194868 45195029 0.000000 - . gene_id "SLC13A3"; transcript_id "AK303709:uc010zxv.2";
+chr20 hg19_knownGene CDS 45212211 45212297 0.000000 - 0 gene_id "SLC13A3"; transcript_id "AK303709:uc010zxv.2";
+chr20 hg19_knownGene exon 45212211 45212308 0.000000 - . gene_id "SLC13A3"; transcript_id "AK303709:uc010zxv.2";
+chr20 hg19_knownGene CDS 45188664 45188837 0.000000 - 0 gene_id "SLC13A3"; transcript_id "AK310960:uc010ghn.2";
+chr20 hg19_knownGene exon 45186462 45188837 0.000000 - . gene_id "SLC13A3"; transcript_id "AK310960:uc010ghn.2";
+chr20 hg19_knownGene CDS 45192053 45192190 0.000000 - 0 gene_id "SLC13A3"; transcript_id "AK310960:uc010ghn.2";
+chr20 hg19_knownGene exon 45192053 45192190 0.000000 - . gene_id "SLC13A3"; transcript_id "AK310960:uc010ghn.2";
+chr20 hg19_knownGene CDS 45194868 45195029 0.000000 - 0 gene_id "SLC13A3"; transcript_id "AK310960:uc010ghn.2";
+chr20 hg19_knownGene exon 45194868 45195029 0.000000 - . gene_id "SLC13A3"; transcript_id "AK310960:uc010ghn.2";
+chr20 hg19_knownGene CDS 45204212 45204324 0.000000 - 2 gene_id "SLC13A3"; transcript_id "AK310960:uc010ghn.2";
+chr20 hg19_knownGene exon 45204212 45204324 0.000000 - . gene_id "SLC13A3"; transcript_id "AK310960:uc010ghn.2";
+chr20 hg19_knownGene CDS 45212211 45212308 0.000000 - 1 gene_id "SLC13A3"; transcript_id "AK310960:uc010ghn.2";
+chr20 hg19_knownGene exon 45212211 45212308 0.000000 - . gene_id "SLC13A3"; transcript_id "AK310960:uc010ghn.2";
+chr20 hg19_knownGene CDS 45216698 45216802 0.000000 - 1 gene_id "SLC13A3"; transcript_id "AK310960:uc010ghn.2";
+chr20 hg19_knownGene exon 45216698 45216802 0.000000 - . gene_id "SLC13A3"; transcript_id "AK310960:uc010ghn.2";
+chr20 hg19_knownGene CDS 45217799 45217894 0.000000 - 1 gene_id "SLC13A3"; transcript_id "AK310960:uc010ghn.2";
+chr20 hg19_knownGene exon 45217799 45217894 0.000000 - . gene_id "SLC13A3"; transcript_id "AK310960:uc010ghn.2";
+chr20 hg19_knownGene CDS 45221043 45221168 0.000000 - 1 gene_id "SLC13A3"; transcript_id "AK310960:uc010ghn.2";
+chr20 hg19_knownGene exon 45221043 45221168 0.000000 - . gene_id "SLC13A3"; transcript_id "AK310960:uc010ghn.2";
+chr20 hg19_knownGene CDS 45224796 45224981 0.000000 - 1 gene_id "SLC13A3"; transcript_id "AK310960:uc010ghn.2";
+chr20 hg19_knownGene exon 45224796 45224981 0.000000 - . gene_id "SLC13A3"; transcript_id "AK310960:uc010ghn.2";
+chr20 hg19_knownGene CDS 45228610 45228676 0.000000 - 2 gene_id "SLC13A3"; transcript_id "AK310960:uc010ghn.2";
+chr20 hg19_knownGene exon 45228610 45228676 0.000000 - . gene_id "SLC13A3"; transcript_id "AK310960:uc010ghn.2";
+chr20 hg19_knownGene CDS 45239085 45239248 0.000000 - 1 gene_id "SLC13A3"; transcript_id "AK310960:uc010ghn.2";
+chr20 hg19_knownGene exon 45239085 45239248 0.000000 - . gene_id "SLC13A3"; transcript_id "AK310960:uc010ghn.2";
+chr20 hg19_knownGene CDS 45242099 45242382 0.000000 - 0 gene_id "SLC13A3"; transcript_id "AK310960:uc010ghn.2";
+chr20 hg19_knownGene exon 45242099 45242525 0.000000 - . gene_id "SLC13A3"; transcript_id "AK310960:uc010ghn.2";
+chr20 hg19_knownGene CDS 45188664 45188837 0.000000 - 0 gene_id "SLC13A3"; transcript_id "NM_022829:uc002xsf.2";
+chr20 hg19_knownGene exon 45186462 45188837 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_022829:uc002xsf.2";
+chr20 hg19_knownGene CDS 45192053 45192190 0.000000 - 0 gene_id "SLC13A3"; transcript_id "NM_022829:uc002xsf.2";
+chr20 hg19_knownGene exon 45192053 45192190 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_022829:uc002xsf.2";
+chr20 hg19_knownGene CDS 45194868 45195029 0.000000 - 0 gene_id "SLC13A3"; transcript_id "NM_022829:uc002xsf.2";
+chr20 hg19_knownGene exon 45194868 45195029 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_022829:uc002xsf.2";
+chr20 hg19_knownGene CDS 45204212 45204324 0.000000 - 2 gene_id "SLC13A3"; transcript_id "NM_022829:uc002xsf.2";
+chr20 hg19_knownGene exon 45204212 45204324 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_022829:uc002xsf.2";
+chr20 hg19_knownGene CDS 45212211 45212308 0.000000 - 1 gene_id "SLC13A3"; transcript_id "NM_022829:uc002xsf.2";
+chr20 hg19_knownGene exon 45212211 45212308 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_022829:uc002xsf.2";
+chr20 hg19_knownGene CDS 45216698 45216802 0.000000 - 1 gene_id "SLC13A3"; transcript_id "NM_022829:uc002xsf.2";
+chr20 hg19_knownGene exon 45216698 45216802 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_022829:uc002xsf.2";
+chr20 hg19_knownGene CDS 45217799 45217894 0.000000 - 1 gene_id "SLC13A3"; transcript_id "NM_022829:uc002xsf.2";
+chr20 hg19_knownGene exon 45217799 45217894 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_022829:uc002xsf.2";
+chr20 hg19_knownGene CDS 45221043 45221168 0.000000 - 1 gene_id "SLC13A3"; transcript_id "NM_022829:uc002xsf.2";
+chr20 hg19_knownGene exon 45221043 45221168 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_022829:uc002xsf.2";
+chr20 hg19_knownGene CDS 45224796 45224981 0.000000 - 1 gene_id "SLC13A3"; transcript_id "NM_022829:uc002xsf.2";
+chr20 hg19_knownGene exon 45224796 45224981 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_022829:uc002xsf.2";
+chr20 hg19_knownGene CDS 45228610 45228676 0.000000 - 2 gene_id "SLC13A3"; transcript_id "NM_022829:uc002xsf.2";
+chr20 hg19_knownGene exon 45228610 45228676 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_022829:uc002xsf.2";
+chr20 hg19_knownGene CDS 45239085 45239248 0.000000 - 1 gene_id "SLC13A3"; transcript_id "NM_022829:uc002xsf.2";
+chr20 hg19_knownGene exon 45239085 45239248 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_022829:uc002xsf.2";
+chr20 hg19_knownGene CDS 45242099 45242364 0.000000 - 0 gene_id "SLC13A3"; transcript_id "NM_022829:uc002xsf.2";
+chr20 hg19_knownGene exon 45242099 45242364 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_022829:uc002xsf.2";
+chr20 hg19_knownGene CDS 45279950 45280060 0.000000 - 0 gene_id "SLC13A3"; transcript_id "NM_022829:uc002xsf.2";
+chr20 hg19_knownGene exon 45279950 45280100 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_022829:uc002xsf.2";
+chr20 hg19_knownGene CDS 45188664 45188837 0.000000 - 0 gene_id "SLC13A3"; transcript_id "NM_001193342:uc010zxx.2";
+chr20 hg19_knownGene exon 45186462 45188837 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193342:uc010zxx.2";
+chr20 hg19_knownGene CDS 45192053 45192190 0.000000 - 0 gene_id "SLC13A3"; transcript_id "NM_001193342:uc010zxx.2";
+chr20 hg19_knownGene exon 45192053 45192190 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193342:uc010zxx.2";
+chr20 hg19_knownGene CDS 45194868 45195029 0.000000 - 0 gene_id "SLC13A3"; transcript_id "NM_001193342:uc010zxx.2";
+chr20 hg19_knownGene exon 45194868 45195029 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193342:uc010zxx.2";
+chr20 hg19_knownGene CDS 45204212 45204324 0.000000 - 2 gene_id "SLC13A3"; transcript_id "NM_001193342:uc010zxx.2";
+chr20 hg19_knownGene exon 45204212 45204324 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193342:uc010zxx.2";
+chr20 hg19_knownGene CDS 45212211 45212308 0.000000 - 1 gene_id "SLC13A3"; transcript_id "NM_001193342:uc010zxx.2";
+chr20 hg19_knownGene exon 45212211 45212308 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193342:uc010zxx.2";
+chr20 hg19_knownGene CDS 45216698 45216802 0.000000 - 1 gene_id "SLC13A3"; transcript_id "NM_001193342:uc010zxx.2";
+chr20 hg19_knownGene exon 45216698 45216802 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193342:uc010zxx.2";
+chr20 hg19_knownGene CDS 45217799 45217894 0.000000 - 1 gene_id "SLC13A3"; transcript_id "NM_001193342:uc010zxx.2";
+chr20 hg19_knownGene exon 45217799 45217894 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193342:uc010zxx.2";
+chr20 hg19_knownGene CDS 45221043 45221168 0.000000 - 1 gene_id "SLC13A3"; transcript_id "NM_001193342:uc010zxx.2";
+chr20 hg19_knownGene exon 45221043 45221168 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193342:uc010zxx.2";
+chr20 hg19_knownGene CDS 45224796 45224981 0.000000 - 1 gene_id "SLC13A3"; transcript_id "NM_001193342:uc010zxx.2";
+chr20 hg19_knownGene exon 45224796 45224981 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193342:uc010zxx.2";
+chr20 hg19_knownGene CDS 45228610 45228676 0.000000 - 2 gene_id "SLC13A3"; transcript_id "NM_001193342:uc010zxx.2";
+chr20 hg19_knownGene exon 45228610 45228676 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193342:uc010zxx.2";
+chr20 hg19_knownGene CDS 45239085 45239248 0.000000 - 1 gene_id "SLC13A3"; transcript_id "NM_001193342:uc010zxx.2";
+chr20 hg19_knownGene exon 45239085 45239248 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193342:uc010zxx.2";
+chr20 hg19_knownGene CDS 45242099 45242181 0.000000 - 0 gene_id "SLC13A3"; transcript_id "NM_001193342:uc010zxx.2";
+chr20 hg19_knownGene exon 45242099 45242191 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193342:uc010zxx.2";
+chr20 hg19_knownGene exon 45279950 45280100 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193342:uc010zxx.2";
+chr20 hg19_knownGene CDS 45188664 45188837 0.000000 - 0 gene_id "SLC13A3"; transcript_id "NM_001193339:uc010zxw.2";
+chr20 hg19_knownGene exon 45186462 45188837 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193339:uc010zxw.2";
+chr20 hg19_knownGene CDS 45192053 45192190 0.000000 - 0 gene_id "SLC13A3"; transcript_id "NM_001193339:uc010zxw.2";
+chr20 hg19_knownGene exon 45192053 45192190 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193339:uc010zxw.2";
+chr20 hg19_knownGene CDS 45194868 45195029 0.000000 - 0 gene_id "SLC13A3"; transcript_id "NM_001193339:uc010zxw.2";
+chr20 hg19_knownGene exon 45194868 45195029 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193339:uc010zxw.2";
+chr20 hg19_knownGene CDS 45204212 45204324 0.000000 - 2 gene_id "SLC13A3"; transcript_id "NM_001193339:uc010zxw.2";
+chr20 hg19_knownGene exon 45204212 45204324 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193339:uc010zxw.2";
+chr20 hg19_knownGene CDS 45212211 45212308 0.000000 - 1 gene_id "SLC13A3"; transcript_id "NM_001193339:uc010zxw.2";
+chr20 hg19_knownGene exon 45212211 45212308 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193339:uc010zxw.2";
+chr20 hg19_knownGene CDS 45216698 45216802 0.000000 - 1 gene_id "SLC13A3"; transcript_id "NM_001193339:uc010zxw.2";
+chr20 hg19_knownGene exon 45216698 45216802 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193339:uc010zxw.2";
+chr20 hg19_knownGene CDS 45217799 45217894 0.000000 - 1 gene_id "SLC13A3"; transcript_id "NM_001193339:uc010zxw.2";
+chr20 hg19_knownGene exon 45217799 45217894 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193339:uc010zxw.2";
+chr20 hg19_knownGene CDS 45221043 45221085 0.000000 - 2 gene_id "SLC13A3"; transcript_id "NM_001193339:uc010zxw.2";
+chr20 hg19_knownGene exon 45221043 45221085 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193339:uc010zxw.2";
+chr20 hg19_knownGene CDS 45224796 45224981 0.000000 - 2 gene_id "SLC13A3"; transcript_id "NM_001193339:uc010zxw.2";
+chr20 hg19_knownGene exon 45224796 45224981 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193339:uc010zxw.2";
+chr20 hg19_knownGene CDS 45239085 45239248 0.000000 - 1 gene_id "SLC13A3"; transcript_id "NM_001193339:uc010zxw.2";
+chr20 hg19_knownGene exon 45239085 45239248 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193339:uc010zxw.2";
+chr20 hg19_knownGene CDS 45242099 45242364 0.000000 - 0 gene_id "SLC13A3"; transcript_id "NM_001193339:uc010zxw.2";
+chr20 hg19_knownGene exon 45242099 45242364 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193339:uc010zxw.2";
+chr20 hg19_knownGene CDS 45279950 45280060 0.000000 - 0 gene_id "SLC13A3"; transcript_id "NM_001193339:uc010zxw.2";
+chr20 hg19_knownGene exon 45279950 45280100 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193339:uc010zxw.2";
+chr20 hg19_knownGene CDS 45237542 45237696 0.000000 - 2 gene_id "SLC13A3"; transcript_id "BC014931:uc002xsi.4";
+chr20 hg19_knownGene exon 45237349 45237696 0.000000 - . gene_id "SLC13A3"; transcript_id "BC014931:uc002xsi.4";
+chr20 hg19_knownGene CDS 45239085 45239248 0.000000 - 1 gene_id "SLC13A3"; transcript_id "BC014931:uc002xsi.4";
+chr20 hg19_knownGene exon 45239085 45239248 0.000000 - . gene_id "SLC13A3"; transcript_id "BC014931:uc002xsi.4";
+chr20 hg19_knownGene CDS 45242099 45242334 0.000000 - 0 gene_id "SLC13A3"; transcript_id "BC014931:uc002xsi.4";
+chr20 hg19_knownGene exon 45242099 45242364 0.000000 - . gene_id "SLC13A3"; transcript_id "BC014931:uc002xsi.4";
+chr20 hg19_knownGene exon 45298682 45298778 0.000000 - . gene_id "SLC13A3"; transcript_id "BC014931:uc002xsi.4";
+chr20 hg19_knownGene CDS 45188664 45188837 0.000000 - 0 gene_id "SLC13A3"; transcript_id "NM_001011554:uc002xsg.2";
+chr20 hg19_knownGene exon 45186462 45188837 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001011554:uc002xsg.2";
+chr20 hg19_knownGene CDS 45192053 45192190 0.000000 - 0 gene_id "SLC13A3"; transcript_id "NM_001011554:uc002xsg.2";
+chr20 hg19_knownGene exon 45192053 45192190 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001011554:uc002xsg.2";
+chr20 hg19_knownGene CDS 45194868 45195029 0.000000 - 0 gene_id "SLC13A3"; transcript_id "NM_001011554:uc002xsg.2";
+chr20 hg19_knownGene exon 45194868 45195029 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001011554:uc002xsg.2";
+chr20 hg19_knownGene CDS 45204212 45204324 0.000000 - 2 gene_id "SLC13A3"; transcript_id "NM_001011554:uc002xsg.2";
+chr20 hg19_knownGene exon 45204212 45204324 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001011554:uc002xsg.2";
+chr20 hg19_knownGene CDS 45212211 45212308 0.000000 - 1 gene_id "SLC13A3"; transcript_id "NM_001011554:uc002xsg.2";
+chr20 hg19_knownGene exon 45212211 45212308 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001011554:uc002xsg.2";
+chr20 hg19_knownGene CDS 45216698 45216802 0.000000 - 1 gene_id "SLC13A3"; transcript_id "NM_001011554:uc002xsg.2";
+chr20 hg19_knownGene exon 45216698 45216802 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001011554:uc002xsg.2";
+chr20 hg19_knownGene CDS 45217799 45217894 0.000000 - 1 gene_id "SLC13A3"; transcript_id "NM_001011554:uc002xsg.2";
+chr20 hg19_knownGene exon 45217799 45217894 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001011554:uc002xsg.2";
+chr20 hg19_knownGene CDS 45221043 45221168 0.000000 - 1 gene_id "SLC13A3"; transcript_id "NM_001011554:uc002xsg.2";
+chr20 hg19_knownGene exon 45221043 45221168 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001011554:uc002xsg.2";
+chr20 hg19_knownGene CDS 45224796 45224981 0.000000 - 1 gene_id "SLC13A3"; transcript_id "NM_001011554:uc002xsg.2";
+chr20 hg19_knownGene exon 45224796 45224981 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001011554:uc002xsg.2";
+chr20 hg19_knownGene CDS 45228610 45228676 0.000000 - 2 gene_id "SLC13A3"; transcript_id "NM_001011554:uc002xsg.2";
+chr20 hg19_knownGene exon 45228610 45228676 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001011554:uc002xsg.2";
+chr20 hg19_knownGene CDS 45239085 45239248 0.000000 - 1 gene_id "SLC13A3"; transcript_id "NM_001011554:uc002xsg.2";
+chr20 hg19_knownGene exon 45239085 45239248 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001011554:uc002xsg.2";
+chr20 hg19_knownGene CDS 45242099 45242334 0.000000 - 0 gene_id "SLC13A3"; transcript_id "NM_001011554:uc002xsg.2";
+chr20 hg19_knownGene exon 45242099 45242364 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001011554:uc002xsg.2";
+chr20 hg19_knownGene exon 45298682 45298778 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001011554:uc002xsg.2";
+chr20 hg19_knownGene exon 45313035 45313124 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001011554:uc002xsg.2";
+chr20 hg19_knownGene CDS 45188664 45188837 0.000000 - 0 gene_id "SLC13A3"; transcript_id "NM_001193340:uc010gho.2";
+chr20 hg19_knownGene exon 45186462 45188837 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193340:uc010gho.2";
+chr20 hg19_knownGene CDS 45192053 45192190 0.000000 - 0 gene_id "SLC13A3"; transcript_id "NM_001193340:uc010gho.2";
+chr20 hg19_knownGene exon 45192053 45192190 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193340:uc010gho.2";
+chr20 hg19_knownGene CDS 45194868 45195029 0.000000 - 0 gene_id "SLC13A3"; transcript_id "NM_001193340:uc010gho.2";
+chr20 hg19_knownGene exon 45194868 45195029 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193340:uc010gho.2";
+chr20 hg19_knownGene CDS 45204212 45204324 0.000000 - 2 gene_id "SLC13A3"; transcript_id "NM_001193340:uc010gho.2";
+chr20 hg19_knownGene exon 45204212 45204324 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193340:uc010gho.2";
+chr20 hg19_knownGene CDS 45212211 45212308 0.000000 - 1 gene_id "SLC13A3"; transcript_id "NM_001193340:uc010gho.2";
+chr20 hg19_knownGene exon 45212211 45212308 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193340:uc010gho.2";
+chr20 hg19_knownGene CDS 45217799 45217894 0.000000 - 1 gene_id "SLC13A3"; transcript_id "NM_001193340:uc010gho.2";
+chr20 hg19_knownGene exon 45217799 45217894 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193340:uc010gho.2";
+chr20 hg19_knownGene CDS 45221043 45221168 0.000000 - 1 gene_id "SLC13A3"; transcript_id "NM_001193340:uc010gho.2";
+chr20 hg19_knownGene exon 45221043 45221168 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193340:uc010gho.2";
+chr20 hg19_knownGene CDS 45224796 45224981 0.000000 - 1 gene_id "SLC13A3"; transcript_id "NM_001193340:uc010gho.2";
+chr20 hg19_knownGene exon 45224796 45224981 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193340:uc010gho.2";
+chr20 hg19_knownGene CDS 45228610 45228676 0.000000 - 2 gene_id "SLC13A3"; transcript_id "NM_001193340:uc010gho.2";
+chr20 hg19_knownGene exon 45228610 45228676 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193340:uc010gho.2";
+chr20 hg19_knownGene CDS 45239085 45239248 0.000000 - 1 gene_id "SLC13A3"; transcript_id "NM_001193340:uc010gho.2";
+chr20 hg19_knownGene exon 45239085 45239248 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193340:uc010gho.2";
+chr20 hg19_knownGene CDS 45242099 45242334 0.000000 - 0 gene_id "SLC13A3"; transcript_id "NM_001193340:uc010gho.2";
+chr20 hg19_knownGene exon 45242099 45242364 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193340:uc010gho.2";
+chr20 hg19_knownGene exon 45298682 45298778 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193340:uc010gho.2";
+chr20 hg19_knownGene exon 45313035 45313124 0.000000 - . gene_id "SLC13A3"; transcript_id "NM_001193340:uc010gho.2";
+chr20 hg19_knownGene CDS 45315796 45315870 0.000000 - 0 gene_id "TP53RK"; transcript_id "BC019621:uc002xsj.3";
+chr20 hg19_knownGene exon 45313004 45315870 0.000000 - . gene_id "TP53RK"; transcript_id "BC019621:uc002xsj.3";
+chr20 hg19_knownGene CDS 45317766 45318053 0.000000 - 0 gene_id "TP53RK"; transcript_id "BC019621:uc002xsj.3";
+chr20 hg19_knownGene exon 45317766 45318079 0.000000 - . gene_id "TP53RK"; transcript_id "BC019621:uc002xsj.3";
+chr20 hg19_knownGene CDS 45315395 45315870 0.000000 - 2 gene_id "TP53RK"; transcript_id "NM_033550:uc002xsk.3";
+chr20 hg19_knownGene exon 45313004 45315870 0.000000 - . gene_id "TP53RK"; transcript_id "NM_033550:uc002xsk.3";
+chr20 hg19_knownGene CDS 45317771 45318053 0.000000 - 0 gene_id "TP53RK"; transcript_id "NM_033550:uc002xsk.3";
+chr20 hg19_knownGene exon 45317771 45318276 0.000000 - . gene_id "TP53RK"; transcript_id "NM_033550:uc002xsk.3";
+chr20 hg19_knownGene CDS 45338376 45338379 0.000000 + 0 gene_id "SLC2A10"; transcript_id "NM_030777:uc002xsl.3";
+chr20 hg19_knownGene exon 45338279 45338379 0.000000 + . gene_id "SLC2A10"; transcript_id "NM_030777:uc002xsl.3";
+chr20 hg19_knownGene CDS 45353680 45354963 0.000000 + 2 gene_id "SLC2A10"; transcript_id "NM_030777:uc002xsl.3";
+chr20 hg19_knownGene exon 45353680 45354963 0.000000 + . gene_id "SLC2A10"; transcript_id "NM_030777:uc002xsl.3";
+chr20 hg19_knownGene CDS 45355503 45355625 0.000000 + 2 gene_id "SLC2A10"; transcript_id "NM_030777:uc002xsl.3";
+chr20 hg19_knownGene exon 45355503 45355625 0.000000 + . gene_id "SLC2A10"; transcript_id "NM_030777:uc002xsl.3";
+chr20 hg19_knownGene CDS 45357992 45358127 0.000000 + 2 gene_id "SLC2A10"; transcript_id "NM_030777:uc002xsl.3";
+chr20 hg19_knownGene exon 45357992 45358127 0.000000 + . gene_id "SLC2A10"; transcript_id "NM_030777:uc002xsl.3";
+chr20 hg19_knownGene CDS 45362395 45362470 0.000000 + 1 gene_id "SLC2A10"; transcript_id "NM_030777:uc002xsl.3";
+chr20 hg19_knownGene exon 45362395 45364985 0.000000 + . gene_id "SLC2A10"; transcript_id "NM_030777:uc002xsl.3";
+chr20 hg19_knownGene exon 45606874 45607275 0.000000 + . gene_id "EYA2"; transcript_id "AF387364:uc021wep.1";
+chr20 hg19_knownGene exon 45618640 45618758 0.000000 + . gene_id "EYA2"; transcript_id "AF387364:uc021wep.1";
+chr20 hg19_knownGene exon 45795609 45795700 0.000000 + . gene_id "MIR3616"; transcript_id "NR_037410:uc021weq.1";
+chr20 hg19_knownGene exon 45523263 45523626 0.000000 + . gene_id "EYA2"; transcript_id "NM_005244:uc002xsm.3";
+chr20 hg19_knownGene CDS 45618650 45618758 0.000000 + 0 gene_id "EYA2"; transcript_id "NM_005244:uc002xsm.3";
+chr20 hg19_knownGene exon 45618640 45618758 0.000000 + . gene_id "EYA2"; transcript_id "NM_005244:uc002xsm.3";
+chr20 hg19_knownGene CDS 45630067 45630112 0.000000 + 2 gene_id "EYA2"; transcript_id "NM_005244:uc002xsm.3";
+chr20 hg19_knownGene exon 45630067 45630112 0.000000 + . gene_id "EYA2"; transcript_id "NM_005244:uc002xsm.3";
+chr20 hg19_knownGene CDS 45633581 45633723 0.000000 + 1 gene_id "EYA2"; transcript_id "NM_005244:uc002xsm.3";
+chr20 hg19_knownGene exon 45633581 45633723 0.000000 + . gene_id "EYA2"; transcript_id "NM_005244:uc002xsm.3";
+chr20 hg19_knownGene CDS 45644820 45644936 0.000000 + 2 gene_id "EYA2"; transcript_id "NM_005244:uc002xsm.3";
+chr20 hg19_knownGene exon 45644820 45644936 0.000000 + . gene_id "EYA2"; transcript_id "NM_005244:uc002xsm.3";
+chr20 hg19_knownGene CDS 45700824 45700891 0.000000 + 2 gene_id "EYA2"; transcript_id "NM_005244:uc002xsm.3";
+chr20 hg19_knownGene exon 45700824 45700891 0.000000 + . gene_id "EYA2"; transcript_id "NM_005244:uc002xsm.3";
+chr20 hg19_knownGene CDS 45702797 45702974 0.000000 + 0 gene_id "EYA2"; transcript_id "NM_005244:uc002xsm.3";
+chr20 hg19_knownGene exon 45702797 45702974 0.000000 + . gene_id "EYA2"; transcript_id "NM_005244:uc002xsm.3";
+chr20 hg19_knownGene CDS 45717878 45718020 0.000000 + 2 gene_id "EYA2"; transcript_id "NM_005244:uc002xsm.3";
+chr20 hg19_knownGene exon 45717878 45718020 0.000000 + . gene_id "EYA2"; transcript_id "NM_005244:uc002xsm.3";
+chr20 hg19_knownGene CDS 45725724 45725807 0.000000 + 0 gene_id "EYA2"; transcript_id "NM_005244:uc002xsm.3";
+chr20 hg19_knownGene exon 45725724 45725807 0.000000 + . gene_id "EYA2"; transcript_id "NM_005244:uc002xsm.3";
+chr20 hg19_knownGene CDS 45771698 45771787 0.000000 + 0 gene_id "EYA2"; transcript_id "NM_005244:uc002xsm.3";
+chr20 hg19_knownGene exon 45771698 45771787 0.000000 + . gene_id "EYA2"; transcript_id "NM_005244:uc002xsm.3";
+chr20 hg19_knownGene CDS 45797787 45797845 0.000000 + 0 gene_id "EYA2"; transcript_id "NM_005244:uc002xsm.3";
+chr20 hg19_knownGene exon 45797787 45797845 0.000000 + . gene_id "EYA2"; transcript_id "NM_005244:uc002xsm.3";
+chr20 hg19_knownGene CDS 45801355 45801515 0.000000 + 1 gene_id "EYA2"; transcript_id "NM_005244:uc002xsm.3";
+chr20 hg19_knownGene exon 45801355 45801515 0.000000 + . gene_id "EYA2"; transcript_id "NM_005244:uc002xsm.3";
+chr20 hg19_knownGene CDS 45808446 45808560 0.000000 + 2 gene_id "EYA2"; transcript_id "NM_005244:uc002xsm.3";
+chr20 hg19_knownGene exon 45808446 45808560 0.000000 + . gene_id "EYA2"; transcript_id "NM_005244:uc002xsm.3";
+chr20 hg19_knownGene CDS 45809463 45809584 0.000000 + 1 gene_id "EYA2"; transcript_id "NM_005244:uc002xsm.3";
+chr20 hg19_knownGene exon 45809463 45809584 0.000000 + . gene_id "EYA2"; transcript_id "NM_005244:uc002xsm.3";
+chr20 hg19_knownGene CDS 45811939 45812039 0.000000 + 2 gene_id "EYA2"; transcript_id "NM_005244:uc002xsm.3";
+chr20 hg19_knownGene exon 45811939 45812039 0.000000 + . gene_id "EYA2"; transcript_id "NM_005244:uc002xsm.3";
+chr20 hg19_knownGene CDS 45816701 45816778 0.000000 + 0 gene_id "EYA2"; transcript_id "NM_005244:uc002xsm.3";
+chr20 hg19_knownGene exon 45816701 45817492 0.000000 + . gene_id "EYA2"; transcript_id "NM_005244:uc002xsm.3";
+chr20 hg19_knownGene exon 45523263 45523626 0.000000 + . gene_id "EYA2"; transcript_id "NM_172110:uc010ghp.3";
+chr20 hg19_knownGene CDS 45618650 45618758 0.000000 + 0 gene_id "EYA2"; transcript_id "NM_172110:uc010ghp.3";
+chr20 hg19_knownGene exon 45618640 45618758 0.000000 + . gene_id "EYA2"; transcript_id "NM_172110:uc010ghp.3";
+chr20 hg19_knownGene CDS 45630067 45630112 0.000000 + 2 gene_id "EYA2"; transcript_id "NM_172110:uc010ghp.3";
+chr20 hg19_knownGene exon 45630067 45630112 0.000000 + . gene_id "EYA2"; transcript_id "NM_172110:uc010ghp.3";
+chr20 hg19_knownGene CDS 45633581 45633723 0.000000 + 1 gene_id "EYA2"; transcript_id "NM_172110:uc010ghp.3";
+chr20 hg19_knownGene exon 45633581 45633723 0.000000 + . gene_id "EYA2"; transcript_id "NM_172110:uc010ghp.3";
+chr20 hg19_knownGene CDS 45644820 45644936 0.000000 + 2 gene_id "EYA2"; transcript_id "NM_172110:uc010ghp.3";
+chr20 hg19_knownGene exon 45644820 45644936 0.000000 + . gene_id "EYA2"; transcript_id "NM_172110:uc010ghp.3";
+chr20 hg19_knownGene CDS 45700824 45700891 0.000000 + 2 gene_id "EYA2"; transcript_id "NM_172110:uc010ghp.3";
+chr20 hg19_knownGene exon 45700824 45700891 0.000000 + . gene_id "EYA2"; transcript_id "NM_172110:uc010ghp.3";
+chr20 hg19_knownGene CDS 45702797 45702974 0.000000 + 0 gene_id "EYA2"; transcript_id "NM_172110:uc010ghp.3";
+chr20 hg19_knownGene exon 45702797 45702974 0.000000 + . gene_id "EYA2"; transcript_id "NM_172110:uc010ghp.3";
+chr20 hg19_knownGene CDS 45717878 45718020 0.000000 + 2 gene_id "EYA2"; transcript_id "NM_172110:uc010ghp.3";
+chr20 hg19_knownGene exon 45717878 45718020 0.000000 + . gene_id "EYA2"; transcript_id "NM_172110:uc010ghp.3";
+chr20 hg19_knownGene CDS 45725724 45725807 0.000000 + 0 gene_id "EYA2"; transcript_id "NM_172110:uc010ghp.3";
+chr20 hg19_knownGene exon 45725724 45725807 0.000000 + . gene_id "EYA2"; transcript_id "NM_172110:uc010ghp.3";
+chr20 hg19_knownGene CDS 45771698 45771787 0.000000 + 0 gene_id "EYA2"; transcript_id "NM_172110:uc010ghp.3";
+chr20 hg19_knownGene exon 45771698 45771787 0.000000 + . gene_id "EYA2"; transcript_id "NM_172110:uc010ghp.3";
+chr20 hg19_knownGene CDS 45797787 45797845 0.000000 + 0 gene_id "EYA2"; transcript_id "NM_172110:uc010ghp.3";
+chr20 hg19_knownGene exon 45797787 45797845 0.000000 + . gene_id "EYA2"; transcript_id "NM_172110:uc010ghp.3";
+chr20 hg19_knownGene CDS 45801355 45801515 0.000000 + 1 gene_id "EYA2"; transcript_id "NM_172110:uc010ghp.3";
+chr20 hg19_knownGene exon 45801355 45801515 0.000000 + . gene_id "EYA2"; transcript_id "NM_172110:uc010ghp.3";
+chr20 hg19_knownGene CDS 45811939 45812039 0.000000 + 2 gene_id "EYA2"; transcript_id "NM_172110:uc010ghp.3";
+chr20 hg19_knownGene exon 45811939 45812039 0.000000 + . gene_id "EYA2"; transcript_id "NM_172110:uc010ghp.3";
+chr20 hg19_knownGene CDS 45816701 45816778 0.000000 + 0 gene_id "EYA2"; transcript_id "NM_172110:uc010ghp.3";
+chr20 hg19_knownGene exon 45816701 45817492 0.000000 + . gene_id "EYA2"; transcript_id "NM_172110:uc010ghp.3";
+chr20 hg19_knownGene CDS 45618650 45618758 0.000000 + 0 gene_id "EYA2"; transcript_id "AY705349:uc002xsq.3";
+chr20 hg19_knownGene exon 45618640 45618758 0.000000 + . gene_id "EYA2"; transcript_id "AY705349:uc002xsq.3";
+chr20 hg19_knownGene CDS 45630067 45630112 0.000000 + 2 gene_id "EYA2"; transcript_id "AY705349:uc002xsq.3";
+chr20 hg19_knownGene exon 45630067 45630112 0.000000 + . gene_id "EYA2"; transcript_id "AY705349:uc002xsq.3";
+chr20 hg19_knownGene CDS 45633581 45633723 0.000000 + 1 gene_id "EYA2"; transcript_id "AY705349:uc002xsq.3";
+chr20 hg19_knownGene exon 45633581 45633723 0.000000 + . gene_id "EYA2"; transcript_id "AY705349:uc002xsq.3";
+chr20 hg19_knownGene CDS 45644820 45644936 0.000000 + 2 gene_id "EYA2"; transcript_id "AY705349:uc002xsq.3";
+chr20 hg19_knownGene exon 45644820 45644936 0.000000 + . gene_id "EYA2"; transcript_id "AY705349:uc002xsq.3";
+chr20 hg19_knownGene CDS 45700824 45700891 0.000000 + 2 gene_id "EYA2"; transcript_id "AY705349:uc002xsq.3";
+chr20 hg19_knownGene exon 45700824 45700891 0.000000 + . gene_id "EYA2"; transcript_id "AY705349:uc002xsq.3";
+chr20 hg19_knownGene CDS 45702797 45702974 0.000000 + 0 gene_id "EYA2"; transcript_id "AY705349:uc002xsq.3";
+chr20 hg19_knownGene exon 45702797 45702974 0.000000 + . gene_id "EYA2"; transcript_id "AY705349:uc002xsq.3";
+chr20 hg19_knownGene CDS 45717878 45718020 0.000000 + 2 gene_id "EYA2"; transcript_id "AY705349:uc002xsq.3";
+chr20 hg19_knownGene exon 45717878 45718020 0.000000 + . gene_id "EYA2"; transcript_id "AY705349:uc002xsq.3";
+chr20 hg19_knownGene CDS 45725724 45725807 0.000000 + 0 gene_id "EYA2"; transcript_id "AY705349:uc002xsq.3";
+chr20 hg19_knownGene exon 45725724 45725807 0.000000 + . gene_id "EYA2"; transcript_id "AY705349:uc002xsq.3";
+chr20 hg19_knownGene CDS 45797787 45797845 0.000000 + 0 gene_id "EYA2"; transcript_id "AY705349:uc002xsq.3";
+chr20 hg19_knownGene exon 45797787 45797845 0.000000 + . gene_id "EYA2"; transcript_id "AY705349:uc002xsq.3";
+chr20 hg19_knownGene CDS 45801355 45801515 0.000000 + 1 gene_id "EYA2"; transcript_id "AY705349:uc002xsq.3";
+chr20 hg19_knownGene exon 45801355 45801515 0.000000 + . gene_id "EYA2"; transcript_id "AY705349:uc002xsq.3";
+chr20 hg19_knownGene CDS 45808446 45808560 0.000000 + 2 gene_id "EYA2"; transcript_id "AY705349:uc002xsq.3";
+chr20 hg19_knownGene exon 45808446 45808560 0.000000 + . gene_id "EYA2"; transcript_id "AY705349:uc002xsq.3";
+chr20 hg19_knownGene CDS 45809463 45809584 0.000000 + 1 gene_id "EYA2"; transcript_id "AY705349:uc002xsq.3";
+chr20 hg19_knownGene exon 45809463 45809584 0.000000 + . gene_id "EYA2"; transcript_id "AY705349:uc002xsq.3";
+chr20 hg19_knownGene CDS 45811939 45812039 0.000000 + 2 gene_id "EYA2"; transcript_id "AY705349:uc002xsq.3";
+chr20 hg19_knownGene exon 45811939 45812039 0.000000 + . gene_id "EYA2"; transcript_id "AY705349:uc002xsq.3";
+chr20 hg19_knownGene CDS 45816701 45816778 0.000000 + 0 gene_id "EYA2"; transcript_id "AY705349:uc002xsq.3";
+chr20 hg19_knownGene exon 45816701 45817492 0.000000 + . gene_id "EYA2"; transcript_id "AY705349:uc002xsq.3";
+chr20 hg19_knownGene CDS 45839409 45839542 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK001175:uc002xsr.1";
+chr20 hg19_knownGene exon 45838381 45839542 0.000000 - . gene_id "ZMYND8"; transcript_id "AK001175:uc002xsr.1";
+chr20 hg19_knownGene CDS 45848909 45848975 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK001175:uc002xsr.1";
+chr20 hg19_knownGene exon 45848909 45848975 0.000000 - . gene_id "ZMYND8"; transcript_id "AK001175:uc002xsr.1";
+chr20 hg19_knownGene CDS 45849965 45850125 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK001175:uc002xsr.1";
+chr20 hg19_knownGene exon 45849965 45850125 0.000000 - . gene_id "ZMYND8"; transcript_id "AK001175:uc002xsr.1";
+chr20 hg19_knownGene CDS 45852970 45853209 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK001175:uc002xsr.1";
+chr20 hg19_knownGene exon 45852970 45853209 0.000000 - . gene_id "ZMYND8"; transcript_id "AK001175:uc002xsr.1";
+chr20 hg19_knownGene CDS 45855946 45856024 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK001175:uc002xsr.1";
+chr20 hg19_knownGene exon 45855946 45856024 0.000000 - . gene_id "ZMYND8"; transcript_id "AK001175:uc002xsr.1";
+chr20 hg19_knownGene CDS 45858472 45858552 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK001175:uc002xsr.1";
+chr20 hg19_knownGene exon 45858472 45858552 0.000000 - . gene_id "ZMYND8"; transcript_id "AK001175:uc002xsr.1";
+chr20 hg19_knownGene CDS 45865070 45865162 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK001175:uc002xsr.1";
+chr20 hg19_knownGene exon 45865070 45865260 0.000000 - . gene_id "ZMYND8"; transcript_id "AK001175:uc002xsr.1";
+chr20 hg19_knownGene exon 45867640 45867893 0.000000 - . gene_id "ZMYND8"; transcript_id "AK001175:uc002xsr.1";
+chr20 hg19_knownGene CDS 45839306 45839542 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK074262:uc010ghq.1";
+chr20 hg19_knownGene exon 45838381 45839542 0.000000 - . gene_id "ZMYND8"; transcript_id "AK074262:uc010ghq.1";
+chr20 hg19_knownGene CDS 45841287 45841370 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK074262:uc010ghq.1";
+chr20 hg19_knownGene exon 45841287 45841370 0.000000 - . gene_id "ZMYND8"; transcript_id "AK074262:uc010ghq.1";
+chr20 hg19_knownGene CDS 45849965 45850125 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK074262:uc010ghq.1";
+chr20 hg19_knownGene exon 45849965 45850125 0.000000 - . gene_id "ZMYND8"; transcript_id "AK074262:uc010ghq.1";
+chr20 hg19_knownGene CDS 45852970 45853209 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK074262:uc010ghq.1";
+chr20 hg19_knownGene exon 45852970 45853209 0.000000 - . gene_id "ZMYND8"; transcript_id "AK074262:uc010ghq.1";
+chr20 hg19_knownGene CDS 45855946 45856024 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK074262:uc010ghq.1";
+chr20 hg19_knownGene exon 45855946 45856024 0.000000 - . gene_id "ZMYND8"; transcript_id "AK074262:uc010ghq.1";
+chr20 hg19_knownGene CDS 45858472 45858552 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK074262:uc010ghq.1";
+chr20 hg19_knownGene exon 45858472 45858552 0.000000 - . gene_id "ZMYND8"; transcript_id "AK074262:uc010ghq.1";
+chr20 hg19_knownGene CDS 45865070 45865260 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK074262:uc010ghq.1";
+chr20 hg19_knownGene exon 45865070 45865260 0.000000 - . gene_id "ZMYND8"; transcript_id "AK074262:uc010ghq.1";
+chr20 hg19_knownGene CDS 45867640 45867882 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK074262:uc010ghq.1";
+chr20 hg19_knownGene exon 45867640 45867882 0.000000 - . gene_id "ZMYND8"; transcript_id "AK074262:uc010ghq.1";
+chr20 hg19_knownGene CDS 45874752 45875261 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK074262:uc010ghq.1";
+chr20 hg19_knownGene exon 45874752 45875261 0.000000 - . gene_id "ZMYND8"; transcript_id "AK074262:uc010ghq.1";
+chr20 hg19_knownGene CDS 45878031 45878183 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK074262:uc010ghq.1";
+chr20 hg19_knownGene exon 45878031 45878183 0.000000 - . gene_id "ZMYND8"; transcript_id "AK074262:uc010ghq.1";
+chr20 hg19_knownGene CDS 45891032 45891172 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK074262:uc010ghq.1";
+chr20 hg19_knownGene exon 45891032 45891172 0.000000 - . gene_id "ZMYND8"; transcript_id "AK074262:uc010ghq.1";
+chr20 hg19_knownGene CDS 45905058 45905508 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK074262:uc010ghq.1";
+chr20 hg19_knownGene exon 45905058 45905539 0.000000 - . gene_id "ZMYND8"; transcript_id "AK074262:uc010ghq.1";
+chr20 hg19_knownGene CDS 45867287 45867882 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AL137703:uc002xtg.3";
+chr20 hg19_knownGene exon 45866073 45867882 0.000000 - . gene_id "ZMYND8"; transcript_id "AL137703:uc002xtg.3";
+chr20 hg19_knownGene CDS 45874752 45875261 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AL137703:uc002xtg.3";
+chr20 hg19_knownGene exon 45874752 45875261 0.000000 - . gene_id "ZMYND8"; transcript_id "AL137703:uc002xtg.3";
+chr20 hg19_knownGene CDS 45878031 45878183 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AL137703:uc002xtg.3";
+chr20 hg19_knownGene exon 45878031 45878183 0.000000 - . gene_id "ZMYND8"; transcript_id "AL137703:uc002xtg.3";
+chr20 hg19_knownGene CDS 45891032 45891172 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AL137703:uc002xtg.3";
+chr20 hg19_knownGene exon 45891032 45891172 0.000000 - . gene_id "ZMYND8"; transcript_id "AL137703:uc002xtg.3";
+chr20 hg19_knownGene CDS 45905058 45905539 0.000000 - 1 gene_id "ZMYND8"; transcript_id "AL137703:uc002xtg.3";
+chr20 hg19_knownGene exon 45905058 45905539 0.000000 - . gene_id "ZMYND8"; transcript_id "AL137703:uc002xtg.3";
+chr20 hg19_knownGene CDS 45910846 45910961 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AL137703:uc002xtg.3";
+chr20 hg19_knownGene exon 45910846 45910961 0.000000 - . gene_id "ZMYND8"; transcript_id "AL137703:uc002xtg.3";
+chr20 hg19_knownGene CDS 45912315 45912392 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AL137703:uc002xtg.3";
+chr20 hg19_knownGene exon 45912315 45912392 0.000000 - . gene_id "ZMYND8"; transcript_id "AL137703:uc002xtg.3";
+chr20 hg19_knownGene CDS 45915973 45916028 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AL137703:uc002xtg.3";
+chr20 hg19_knownGene exon 45915973 45916028 0.000000 - . gene_id "ZMYND8"; transcript_id "AL137703:uc002xtg.3";
+chr20 hg19_knownGene CDS 45918931 45919018 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AL137703:uc002xtg.3";
+chr20 hg19_knownGene exon 45918931 45919018 0.000000 - . gene_id "ZMYND8"; transcript_id "AL137703:uc002xtg.3";
+chr20 hg19_knownGene CDS 45920540 45920632 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AL137703:uc002xtg.3";
+chr20 hg19_knownGene exon 45920540 45920632 0.000000 - . gene_id "ZMYND8"; transcript_id "AL137703:uc002xtg.3";
+chr20 hg19_knownGene CDS 45923410 45923523 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AL137703:uc002xtg.3";
+chr20 hg19_knownGene exon 45923410 45923523 0.000000 - . gene_id "ZMYND8"; transcript_id "AL137703:uc002xtg.3";
+chr20 hg19_knownGene CDS 45927473 45927616 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AL137703:uc002xtg.3";
+chr20 hg19_knownGene exon 45927473 45927616 0.000000 - . gene_id "ZMYND8"; transcript_id "AL137703:uc002xtg.3";
+chr20 hg19_knownGene CDS 45938800 45938948 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AL137703:uc002xtg.3";
+chr20 hg19_knownGene exon 45938800 45938948 0.000000 - . gene_id "ZMYND8"; transcript_id "AL137703:uc002xtg.3";
+chr20 hg19_knownGene CDS 45947695 45947776 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AL137703:uc002xtg.3";
+chr20 hg19_knownGene exon 45947695 45947805 0.000000 - . gene_id "ZMYND8"; transcript_id "AL137703:uc002xtg.3";
+chr20 hg19_knownGene CDS 45947365 45947934 0.000000 + 0 gene_id "LOC100131496"; transcript_id "NR_024594:uc010zyb.2";
+chr20 hg19_knownGene exon 45947246 45949498 0.000000 + . gene_id "LOC100131496"; transcript_id "NR_024594:uc010zyb.2";
+chr20 hg19_knownGene CDS 45839409 45839542 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene exon 45838381 45839542 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene CDS 45841287 45841370 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene exon 45841287 45841370 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene CDS 45848909 45848975 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene exon 45848909 45848975 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene CDS 45849965 45850125 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene exon 45849965 45850125 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene CDS 45852970 45853209 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene exon 45852970 45853209 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene CDS 45855946 45856024 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene exon 45855946 45856024 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene CDS 45865070 45865260 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene exon 45865070 45865260 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene CDS 45867640 45867882 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene exon 45867640 45867882 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene CDS 45874752 45875261 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene exon 45874752 45875261 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene CDS 45878031 45878183 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene exon 45878031 45878183 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene CDS 45891032 45891172 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene exon 45891032 45891172 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene CDS 45905058 45905539 0.000000 - 1 gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene exon 45905058 45905539 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene CDS 45910846 45910961 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene exon 45910846 45910961 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene CDS 45912315 45912392 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene exon 45912315 45912392 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene CDS 45915973 45916028 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene exon 45915973 45916028 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene CDS 45918931 45919018 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene exon 45918931 45919018 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene CDS 45920540 45920632 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene exon 45920540 45920632 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene CDS 45923410 45923523 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene exon 45923410 45923523 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene CDS 45927473 45927616 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene exon 45927473 45927616 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene CDS 45938800 45938948 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene exon 45938800 45938948 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene CDS 45976600 45976624 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene exon 45976600 45976670 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368678:uc010ghr.1";
+chr20 hg19_knownGene CDS 45839409 45839542 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene exon 45838381 45839542 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene CDS 45848909 45848975 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene exon 45848909 45848975 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene CDS 45849965 45850125 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene exon 45849965 45850125 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene CDS 45852970 45853209 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene exon 45852970 45853209 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene CDS 45855946 45856024 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene exon 45855946 45856024 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene CDS 45858472 45858552 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene exon 45858472 45858552 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene CDS 45865070 45865260 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene exon 45865070 45865260 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene CDS 45867640 45867882 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene exon 45867640 45867882 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene CDS 45874752 45875261 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene exon 45874752 45875261 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene CDS 45878031 45878183 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene exon 45878031 45878183 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene CDS 45905058 45905539 0.000000 - 1 gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene exon 45905058 45905539 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene CDS 45910846 45910961 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene exon 45910846 45910961 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene CDS 45912315 45912392 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene exon 45912315 45912392 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene CDS 45915973 45916028 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene exon 45915973 45916028 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene CDS 45918931 45919018 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene exon 45918931 45919018 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene CDS 45920540 45920632 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene exon 45920540 45920632 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene CDS 45923410 45923523 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene exon 45923410 45923523 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene CDS 45927473 45927616 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene exon 45927473 45927616 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene CDS 45938800 45938948 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene exon 45938800 45938948 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene CDS 45976600 45976624 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene exon 45976600 45976670 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368677:uc002xst.1";
+chr20 hg19_knownGene CDS 45839409 45839542 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene exon 45838381 45839542 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene CDS 45841287 45841370 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene exon 45841287 45841370 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene CDS 45848909 45848975 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene exon 45848909 45848975 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene CDS 45849965 45850125 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene exon 45849965 45850125 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene CDS 45852970 45853209 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene exon 45852970 45853209 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene CDS 45855946 45856024 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene exon 45855946 45856024 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene CDS 45858472 45858552 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene exon 45858472 45858552 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene CDS 45865070 45865260 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene exon 45865070 45865260 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene CDS 45874752 45875261 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene exon 45874752 45875261 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene CDS 45878031 45878183 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene exon 45878031 45878183 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene CDS 45891032 45891172 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene exon 45891032 45891172 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene CDS 45905058 45905539 0.000000 - 1 gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene exon 45905058 45905539 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene CDS 45910846 45910961 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene exon 45910846 45910961 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene CDS 45912315 45912392 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene exon 45912315 45912392 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene CDS 45915973 45916028 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene exon 45915973 45916028 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene CDS 45918931 45919018 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene exon 45918931 45919018 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene CDS 45920540 45920632 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene exon 45920540 45920632 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene CDS 45923410 45923523 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene exon 45923410 45923523 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene CDS 45927473 45927691 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene exon 45927473 45927691 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene CDS 45938800 45938948 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene exon 45938800 45938948 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene CDS 45976600 45976624 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene exon 45976600 45976670 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ082999:uc002xsu.1";
+chr20 hg19_knownGene CDS 45839409 45839542 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene exon 45838381 45839542 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene CDS 45848909 45848975 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene exon 45848909 45848975 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene CDS 45849965 45850125 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene exon 45849965 45850125 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene CDS 45852970 45853209 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene exon 45852970 45853209 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene CDS 45855946 45856024 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene exon 45855946 45856024 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene CDS 45858472 45858552 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene exon 45858472 45858552 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene CDS 45865070 45865260 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene exon 45865070 45865260 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene CDS 45867502 45867882 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene exon 45867502 45867882 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene CDS 45874752 45875261 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene exon 45874752 45875261 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene CDS 45878031 45878183 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene exon 45878031 45878183 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene CDS 45905058 45905539 0.000000 - 1 gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene exon 45905058 45905539 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene CDS 45910846 45910961 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene exon 45910846 45910961 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene CDS 45912315 45912392 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene exon 45912315 45912392 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene CDS 45915973 45916028 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene exon 45915973 45916028 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene CDS 45918931 45919018 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene exon 45918931 45919018 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene CDS 45920540 45920632 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene exon 45920540 45920632 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene CDS 45923410 45923523 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene exon 45923410 45923523 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene CDS 45927473 45927616 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene exon 45927473 45927616 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene CDS 45938800 45938948 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene exon 45938800 45938948 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene CDS 45976600 45976624 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene exon 45976600 45976670 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368680:uc002xsv.1";
+chr20 hg19_knownGene CDS 45839409 45839542 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene exon 45838381 45839542 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene CDS 45841287 45841370 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene exon 45841287 45841370 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene CDS 45848909 45848975 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene exon 45848909 45848975 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene CDS 45849965 45850125 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene exon 45849965 45850125 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene CDS 45852970 45853209 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene exon 45852970 45853209 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene CDS 45855946 45856024 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene exon 45855946 45856024 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene CDS 45858472 45858552 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene exon 45858472 45858552 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene CDS 45865070 45865260 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene exon 45865070 45865260 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene CDS 45867640 45867882 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene exon 45867640 45867882 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene CDS 45874752 45875261 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene exon 45874752 45875261 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene CDS 45878031 45878183 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene exon 45878031 45878183 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene CDS 45891032 45891172 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene exon 45891032 45891172 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene CDS 45905058 45905539 0.000000 - 1 gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene exon 45905058 45905539 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene CDS 45910846 45910961 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene exon 45910846 45910961 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene CDS 45912315 45912392 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene exon 45912315 45912392 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene exon 45914440 45914570 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene exon 45915973 45916028 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene exon 45918931 45919018 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene exon 45920540 45920632 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene exon 45923410 45923523 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene exon 45927473 45927691 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene exon 45938800 45938948 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene exon 45976600 45976670 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368675:uc002xsw.1";
+chr20 hg19_knownGene CDS 45839409 45839542 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene exon 45838381 45839542 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene CDS 45848909 45848975 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene exon 45848909 45848975 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene CDS 45849965 45850125 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene exon 45849965 45850125 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene CDS 45852970 45853209 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene exon 45852970 45853209 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene CDS 45855946 45856024 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene exon 45855946 45856024 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene CDS 45858472 45858552 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene exon 45858472 45858552 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene CDS 45865070 45865260 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene exon 45865070 45865260 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene CDS 45867640 45867882 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene exon 45867640 45867882 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene CDS 45874752 45875261 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene exon 45874752 45875261 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene CDS 45878031 45878183 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene exon 45878031 45878183 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene CDS 45891032 45891172 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene exon 45891032 45891172 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene CDS 45905058 45905539 0.000000 - 1 gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene exon 45905058 45905539 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene CDS 45910846 45910961 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene exon 45910846 45910961 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene CDS 45912315 45912392 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene exon 45912315 45912392 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene exon 45914440 45914570 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene exon 45915973 45916028 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene exon 45918931 45919018 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene exon 45920540 45920632 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene exon 45923410 45923523 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene exon 45927473 45927691 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene exon 45938800 45938948 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene exon 45976600 45976670 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368676:uc002xsx.1";
+chr20 hg19_knownGene CDS 45839409 45839542 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene exon 45838381 45839542 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene CDS 45841287 45841370 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene exon 45841287 45841370 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene CDS 45848909 45848975 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene exon 45848909 45848975 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene CDS 45849965 45850125 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene exon 45849965 45850125 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene CDS 45852970 45853209 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene exon 45852970 45853209 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene CDS 45855946 45856024 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene exon 45855946 45856024 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene CDS 45858472 45858552 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene exon 45858472 45858552 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene CDS 45865070 45865260 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene exon 45865070 45865260 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene CDS 45867640 45867882 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene exon 45867640 45867882 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene CDS 45874752 45875261 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene exon 45874752 45875261 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene CDS 45878031 45878183 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene exon 45878031 45878183 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene CDS 45891032 45891172 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene exon 45891032 45891172 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene CDS 45905058 45905539 0.000000 - 1 gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene exon 45905058 45905539 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene CDS 45910846 45910961 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene exon 45910846 45910961 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene CDS 45912315 45912392 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene exon 45912315 45912392 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene CDS 45915973 45916028 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene exon 45915973 45916028 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene CDS 45918931 45919018 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene exon 45918931 45919018 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene CDS 45920540 45920632 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene exon 45920540 45920632 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene CDS 45923410 45923523 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene exon 45923410 45923523 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene CDS 45927473 45927616 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene exon 45927473 45927616 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene CDS 45938800 45938948 0.000000 - 2 gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene exon 45938800 45938948 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene CDS 45976600 45976624 0.000000 - 0 gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene exon 45976600 45976670 0.000000 - . gene_id "ZMYND8"; transcript_id "DQ368672:uc002xsy.1";
+chr20 hg19_knownGene CDS 45867287 45867882 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK309228:uc010ghs.2";
+chr20 hg19_knownGene exon 45866073 45867882 0.000000 - . gene_id "ZMYND8"; transcript_id "AK309228:uc010ghs.2";
+chr20 hg19_knownGene CDS 45874752 45875261 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK309228:uc010ghs.2";
+chr20 hg19_knownGene exon 45874752 45875261 0.000000 - . gene_id "ZMYND8"; transcript_id "AK309228:uc010ghs.2";
+chr20 hg19_knownGene CDS 45878031 45878183 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK309228:uc010ghs.2";
+chr20 hg19_knownGene exon 45878031 45878183 0.000000 - . gene_id "ZMYND8"; transcript_id "AK309228:uc010ghs.2";
+chr20 hg19_knownGene CDS 45891032 45891172 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK309228:uc010ghs.2";
+chr20 hg19_knownGene exon 45891032 45891172 0.000000 - . gene_id "ZMYND8"; transcript_id "AK309228:uc010ghs.2";
+chr20 hg19_knownGene CDS 45905058 45905539 0.000000 - 1 gene_id "ZMYND8"; transcript_id "AK309228:uc010ghs.2";
+chr20 hg19_knownGene exon 45905058 45905539 0.000000 - . gene_id "ZMYND8"; transcript_id "AK309228:uc010ghs.2";
+chr20 hg19_knownGene CDS 45910846 45910961 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK309228:uc010ghs.2";
+chr20 hg19_knownGene exon 45910846 45910961 0.000000 - . gene_id "ZMYND8"; transcript_id "AK309228:uc010ghs.2";
+chr20 hg19_knownGene CDS 45912315 45912392 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK309228:uc010ghs.2";
+chr20 hg19_knownGene exon 45912315 45912392 0.000000 - . gene_id "ZMYND8"; transcript_id "AK309228:uc010ghs.2";
+chr20 hg19_knownGene CDS 45915973 45916028 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK309228:uc010ghs.2";
+chr20 hg19_knownGene exon 45915973 45916028 0.000000 - . gene_id "ZMYND8"; transcript_id "AK309228:uc010ghs.2";
+chr20 hg19_knownGene CDS 45918931 45919018 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK309228:uc010ghs.2";
+chr20 hg19_knownGene exon 45918931 45919018 0.000000 - . gene_id "ZMYND8"; transcript_id "AK309228:uc010ghs.2";
+chr20 hg19_knownGene CDS 45920540 45920632 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK309228:uc010ghs.2";
+chr20 hg19_knownGene exon 45920540 45920632 0.000000 - . gene_id "ZMYND8"; transcript_id "AK309228:uc010ghs.2";
+chr20 hg19_knownGene CDS 45923410 45923523 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK309228:uc010ghs.2";
+chr20 hg19_knownGene exon 45923410 45923523 0.000000 - . gene_id "ZMYND8"; transcript_id "AK309228:uc010ghs.2";
+chr20 hg19_knownGene CDS 45927473 45927616 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK309228:uc010ghs.2";
+chr20 hg19_knownGene exon 45927473 45927616 0.000000 - . gene_id "ZMYND8"; transcript_id "AK309228:uc010ghs.2";
+chr20 hg19_knownGene CDS 45938800 45938948 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK309228:uc010ghs.2";
+chr20 hg19_knownGene exon 45938800 45938948 0.000000 - . gene_id "ZMYND8"; transcript_id "AK309228:uc010ghs.2";
+chr20 hg19_knownGene CDS 45976600 45976670 0.000000 - 1 gene_id "ZMYND8"; transcript_id "AK309228:uc010ghs.2";
+chr20 hg19_knownGene exon 45976600 45976670 0.000000 - . gene_id "ZMYND8"; transcript_id "AK309228:uc010ghs.2";
+chr20 hg19_knownGene CDS 45976761 45976771 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK309228:uc010ghs.2";
+chr20 hg19_knownGene exon 45976761 45976859 0.000000 - . gene_id "ZMYND8"; transcript_id "AK309228:uc010ghs.2";
+chr20 hg19_knownGene CDS 45839409 45839542 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene exon 45838381 45839542 0.000000 - . gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene CDS 45841287 45841370 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene exon 45841287 45841370 0.000000 - . gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene CDS 45848909 45848975 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene exon 45848909 45848975 0.000000 - . gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene CDS 45849965 45850125 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene exon 45849965 45850125 0.000000 - . gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene CDS 45852970 45853209 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene exon 45852970 45853209 0.000000 - . gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene CDS 45855946 45856024 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene exon 45855946 45856024 0.000000 - . gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene CDS 45858472 45858552 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene exon 45858472 45858552 0.000000 - . gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene CDS 45865070 45865260 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene exon 45865070 45865260 0.000000 - . gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene CDS 45867640 45867882 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene exon 45867640 45867882 0.000000 - . gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene CDS 45874752 45875261 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene exon 45874752 45875261 0.000000 - . gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene CDS 45878031 45878183 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene exon 45878031 45878183 0.000000 - . gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene CDS 45891032 45891172 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene exon 45891032 45891172 0.000000 - . gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene CDS 45905058 45905539 0.000000 - 1 gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene exon 45905058 45905539 0.000000 - . gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene CDS 45910846 45910961 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene exon 45910846 45910961 0.000000 - . gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene CDS 45912315 45912392 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene exon 45912315 45912392 0.000000 - . gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene CDS 45915973 45916028 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene exon 45915973 45916028 0.000000 - . gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene CDS 45918931 45919018 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene exon 45918931 45919018 0.000000 - . gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene CDS 45920540 45920632 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene exon 45920540 45920632 0.000000 - . gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene CDS 45927473 45927616 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene exon 45927473 45927616 0.000000 - . gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene CDS 45938800 45938948 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene exon 45938800 45938948 0.000000 - . gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene CDS 45976600 45976624 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene exon 45976600 45976670 0.000000 - . gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene exon 45981226 45981268 0.000000 - . gene_id "ZMYND8"; transcript_id "AK122966:uc002xsz.1";
+chr20 hg19_knownGene exon 45979228 45982111 0.000000 - . gene_id "AK098067"; transcript_id "AK098067:uc002xti.1";
+chr20 hg19_knownGene exon 45981305 45981484 0.000000 + . gene_id "BC047609"; transcript_id "BC047609:uc002xtj.3";
+chr20 hg19_knownGene exon 45981749 45983376 0.000000 + . gene_id "BC047609"; transcript_id "BC047609:uc002xtj.3";
+chr20 hg19_knownGene CDS 45839409 45839542 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene exon 45838381 45839542 0.000000 - . gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene CDS 45848909 45848975 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene exon 45848909 45848975 0.000000 - . gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene CDS 45849965 45850125 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene exon 45849965 45850125 0.000000 - . gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene CDS 45852970 45853209 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene exon 45852970 45853209 0.000000 - . gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene CDS 45855946 45856024 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene exon 45855946 45856024 0.000000 - . gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene CDS 45858472 45858552 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene exon 45858472 45858552 0.000000 - . gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene CDS 45865070 45865260 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene exon 45865070 45865260 0.000000 - . gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene CDS 45867502 45867882 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene exon 45867502 45867882 0.000000 - . gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene CDS 45874752 45875261 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene exon 45874752 45875261 0.000000 - . gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene CDS 45878031 45878183 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene exon 45878031 45878183 0.000000 - . gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene CDS 45891032 45891172 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene exon 45891032 45891172 0.000000 - . gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene CDS 45905058 45905539 0.000000 - 1 gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene exon 45905058 45905539 0.000000 - . gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene CDS 45910846 45910961 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene exon 45910846 45910961 0.000000 - . gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene CDS 45912315 45912392 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene exon 45912315 45912392 0.000000 - . gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene CDS 45915973 45916028 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene exon 45915973 45916028 0.000000 - . gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene CDS 45918931 45919018 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene exon 45918931 45919018 0.000000 - . gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene CDS 45920540 45920632 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene exon 45920540 45920632 0.000000 - . gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene CDS 45923410 45923523 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene exon 45923410 45923523 0.000000 - . gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene CDS 45927473 45927691 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene exon 45927473 45927691 0.000000 - . gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene CDS 45938800 45938948 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene exon 45938800 45938948 0.000000 - . gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene CDS 45976600 45976624 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene exon 45976600 45976670 0.000000 - . gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene exon 45984194 45984401 0.000000 - . gene_id "ZMYND8"; transcript_id "AB032951:uc002xta.1";
+chr20 hg19_knownGene CDS 45839409 45839542 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene exon 45838381 45839542 0.000000 - . gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene CDS 45841287 45841370 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene exon 45841287 45841370 0.000000 - . gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene CDS 45848909 45848975 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene exon 45848909 45848975 0.000000 - . gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene CDS 45849965 45850125 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene exon 45849965 45850125 0.000000 - . gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene CDS 45852970 45853209 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene exon 45852970 45853209 0.000000 - . gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene CDS 45855946 45856024 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene exon 45855946 45856024 0.000000 - . gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene CDS 45858472 45858552 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene exon 45858472 45858552 0.000000 - . gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene CDS 45865070 45865260 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene exon 45865070 45865260 0.000000 - . gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene CDS 45867502 45867882 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene exon 45867502 45867882 0.000000 - . gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene CDS 45874752 45875261 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene exon 45874752 45875261 0.000000 - . gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene CDS 45878031 45878183 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene exon 45878031 45878183 0.000000 - . gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene CDS 45891032 45891172 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene exon 45891032 45891172 0.000000 - . gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene CDS 45905058 45905539 0.000000 - 1 gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene exon 45905058 45905539 0.000000 - . gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene CDS 45910846 45910961 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene exon 45910846 45910961 0.000000 - . gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene CDS 45912315 45912392 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene exon 45912315 45912392 0.000000 - . gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene CDS 45915973 45916028 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene exon 45915973 45916028 0.000000 - . gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene CDS 45918931 45919018 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene exon 45918931 45919018 0.000000 - . gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene CDS 45920540 45920632 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene exon 45920540 45920632 0.000000 - . gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene CDS 45923410 45923523 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene exon 45923410 45923523 0.000000 - . gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene CDS 45927473 45927691 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene exon 45927473 45927691 0.000000 - . gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene CDS 45938800 45938948 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene exon 45938800 45938948 0.000000 - . gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene CDS 45976600 45976670 0.000000 - 1 gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene exon 45976600 45976670 0.000000 - . gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene CDS 45985124 45985158 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene exon 45985124 45985240 0.000000 - . gene_id "ZMYND8"; transcript_id "AK295747:uc010zxy.1";
+chr20 hg19_knownGene CDS 45839409 45839542 0.000000 - 2 gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene exon 45838381 45839542 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene CDS 45841287 45841370 0.000000 - 2 gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene exon 45841287 45841370 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene CDS 45848909 45848975 0.000000 - 0 gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene exon 45848909 45848975 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene CDS 45849965 45850125 0.000000 - 2 gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene exon 45849965 45850125 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene CDS 45852970 45853209 0.000000 - 2 gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene exon 45852970 45853209 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene CDS 45855946 45856024 0.000000 - 0 gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene exon 45855946 45856024 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene CDS 45858472 45858552 0.000000 - 0 gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene exon 45858472 45858552 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene CDS 45865070 45865260 0.000000 - 2 gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene exon 45865070 45865260 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene CDS 45867640 45867882 0.000000 - 2 gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene exon 45867640 45867882 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene CDS 45874752 45875261 0.000000 - 2 gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene exon 45874752 45875261 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene CDS 45878031 45878183 0.000000 - 2 gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene exon 45878031 45878183 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene CDS 45891032 45891172 0.000000 - 2 gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene exon 45891032 45891172 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene CDS 45905058 45905539 0.000000 - 1 gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene exon 45905058 45905539 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene CDS 45910846 45910961 0.000000 - 0 gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene exon 45910846 45910961 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene CDS 45912315 45912392 0.000000 - 0 gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene exon 45912315 45912392 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene CDS 45915973 45916028 0.000000 - 2 gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene exon 45915973 45916028 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene CDS 45918931 45919018 0.000000 - 0 gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene exon 45918931 45919018 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene CDS 45920540 45920632 0.000000 - 0 gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene exon 45920540 45920632 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene CDS 45923410 45923523 0.000000 - 0 gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene exon 45923410 45923523 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene CDS 45927473 45927691 0.000000 - 0 gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene exon 45927473 45927691 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene CDS 45938800 45938948 0.000000 - 2 gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene exon 45938800 45938948 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene CDS 45976600 45976670 0.000000 - 1 gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene exon 45976600 45976670 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene CDS 45985401 45985414 0.000000 - 0 gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene exon 45985401 45985474 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183047:uc002xtb.1";
+chr20 hg19_knownGene CDS 45839409 45839542 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene exon 45838381 45839542 0.000000 - . gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene CDS 45848909 45848975 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene exon 45848909 45848975 0.000000 - . gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene CDS 45849965 45850125 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene exon 45849965 45850125 0.000000 - . gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene CDS 45852970 45853209 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene exon 45852970 45853209 0.000000 - . gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene CDS 45855946 45856024 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene exon 45855946 45856024 0.000000 - . gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene CDS 45858472 45858552 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene exon 45858472 45858552 0.000000 - . gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene CDS 45865070 45865260 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene exon 45865070 45865260 0.000000 - . gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene CDS 45867502 45867882 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene exon 45867502 45867882 0.000000 - . gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene CDS 45874752 45875261 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene exon 45874752 45875261 0.000000 - . gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene CDS 45878031 45878183 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene exon 45878031 45878183 0.000000 - . gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene CDS 45891032 45891172 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene exon 45891032 45891172 0.000000 - . gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene CDS 45905058 45905539 0.000000 - 1 gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene exon 45905058 45905539 0.000000 - . gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene CDS 45910846 45910961 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene exon 45910846 45910961 0.000000 - . gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene CDS 45912315 45912392 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene exon 45912315 45912392 0.000000 - . gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene CDS 45915973 45916028 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene exon 45915973 45916028 0.000000 - . gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene CDS 45918931 45919018 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene exon 45918931 45919018 0.000000 - . gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene CDS 45920540 45920632 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene exon 45920540 45920632 0.000000 - . gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene CDS 45923410 45923523 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene exon 45923410 45923523 0.000000 - . gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene CDS 45927473 45927616 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene exon 45927473 45927616 0.000000 - . gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene CDS 45938800 45938948 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene exon 45938800 45938948 0.000000 - . gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene CDS 45976600 45976670 0.000000 - 1 gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene exon 45976600 45976670 0.000000 - . gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene CDS 45978605 45978633 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene exon 45978605 45978732 0.000000 - . gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene exon 45984194 45984264 0.000000 - . gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene exon 45985401 45985474 0.000000 - . gene_id "ZMYND8"; transcript_id "AK294511:uc002xss.2";
+chr20 hg19_knownGene CDS 45839409 45839542 0.000000 - 2 gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene exon 45838381 45839542 0.000000 - . gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene CDS 45848909 45848975 0.000000 - 0 gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene exon 45848909 45848975 0.000000 - . gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene CDS 45849965 45850125 0.000000 - 2 gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene exon 45849965 45850125 0.000000 - . gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene CDS 45852970 45853209 0.000000 - 2 gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene exon 45852970 45853209 0.000000 - . gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene CDS 45855946 45856024 0.000000 - 0 gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene exon 45855946 45856024 0.000000 - . gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene CDS 45858472 45858552 0.000000 - 0 gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene exon 45858472 45858552 0.000000 - . gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene CDS 45865070 45865260 0.000000 - 2 gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene exon 45865070 45865260 0.000000 - . gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene CDS 45874752 45875261 0.000000 - 2 gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene exon 45874752 45875261 0.000000 - . gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene CDS 45878031 45878183 0.000000 - 2 gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene exon 45878031 45878183 0.000000 - . gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene CDS 45891032 45891172 0.000000 - 2 gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene exon 45891032 45891172 0.000000 - . gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene CDS 45905058 45905539 0.000000 - 1 gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene exon 45905058 45905539 0.000000 - . gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene CDS 45910846 45910961 0.000000 - 0 gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene exon 45910846 45910961 0.000000 - . gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene CDS 45912315 45912392 0.000000 - 0 gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene exon 45912315 45912392 0.000000 - . gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene CDS 45915973 45916028 0.000000 - 2 gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene exon 45915973 45916028 0.000000 - . gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene CDS 45918931 45919018 0.000000 - 0 gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene exon 45918931 45919018 0.000000 - . gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene CDS 45920540 45920632 0.000000 - 0 gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene exon 45920540 45920632 0.000000 - . gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene CDS 45923410 45923523 0.000000 - 0 gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene exon 45923410 45923523 0.000000 - . gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene CDS 45927473 45927616 0.000000 - 0 gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene exon 45927473 45927616 0.000000 - . gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene CDS 45938800 45938948 0.000000 - 2 gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene exon 45938800 45938948 0.000000 - . gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene CDS 45976600 45976670 0.000000 - 1 gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene exon 45976600 45976670 0.000000 - . gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene CDS 45985401 45985414 0.000000 - 0 gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene exon 45985401 45985474 0.000000 - . gene_id "ZMYND8"; transcript_id "BC144289:uc010zxz.1";
+chr20 hg19_knownGene CDS 45839409 45839542 0.000000 - 2 gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene exon 45838381 45839542 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene CDS 45848909 45848975 0.000000 - 0 gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene exon 45848909 45848975 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene CDS 45849965 45850125 0.000000 - 2 gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene exon 45849965 45850125 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene CDS 45852970 45853209 0.000000 - 2 gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene exon 45852970 45853209 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene CDS 45855946 45856024 0.000000 - 0 gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene exon 45855946 45856024 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene CDS 45858472 45858552 0.000000 - 0 gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene exon 45858472 45858552 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene CDS 45865070 45865260 0.000000 - 2 gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene exon 45865070 45865260 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene CDS 45867640 45867882 0.000000 - 2 gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene exon 45867640 45867882 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene CDS 45874752 45875261 0.000000 - 2 gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene exon 45874752 45875261 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene CDS 45878031 45878183 0.000000 - 2 gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene exon 45878031 45878183 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene CDS 45891032 45891172 0.000000 - 2 gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene exon 45891032 45891172 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene CDS 45905058 45905539 0.000000 - 1 gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene exon 45905058 45905539 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene CDS 45910846 45910961 0.000000 - 0 gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene exon 45910846 45910961 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene CDS 45912315 45912392 0.000000 - 0 gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene exon 45912315 45912392 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene CDS 45915973 45916028 0.000000 - 2 gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene exon 45915973 45916028 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene CDS 45918931 45919018 0.000000 - 0 gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene exon 45918931 45919018 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene CDS 45920540 45920632 0.000000 - 0 gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene exon 45920540 45920632 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene CDS 45923410 45923523 0.000000 - 0 gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene exon 45923410 45923523 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene CDS 45927473 45927691 0.000000 - 0 gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene exon 45927473 45927691 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene CDS 45938800 45938948 0.000000 - 2 gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene exon 45938800 45938948 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene CDS 45976600 45976670 0.000000 - 1 gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene exon 45976600 45976670 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene CDS 45985401 45985414 0.000000 - 0 gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene exon 45985401 45985474 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_012408:uc002xtc.1";
+chr20 hg19_knownGene CDS 45839409 45839542 0.000000 - 2 gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene exon 45838381 45839542 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene CDS 45848909 45848975 0.000000 - 0 gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene exon 45848909 45848975 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene CDS 45849965 45850125 0.000000 - 2 gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene exon 45849965 45850125 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene CDS 45852970 45853209 0.000000 - 2 gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene exon 45852970 45853209 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene CDS 45855946 45856024 0.000000 - 0 gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene exon 45855946 45856024 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene CDS 45858472 45858552 0.000000 - 0 gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene exon 45858472 45858552 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene CDS 45865070 45865260 0.000000 - 2 gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene exon 45865070 45865260 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene CDS 45867640 45867882 0.000000 - 2 gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene exon 45867640 45867882 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene CDS 45874752 45875261 0.000000 - 2 gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene exon 45874752 45875261 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene CDS 45878031 45878183 0.000000 - 2 gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene exon 45878031 45878183 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene CDS 45891032 45891172 0.000000 - 2 gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene exon 45891032 45891172 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene CDS 45905058 45905539 0.000000 - 1 gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene exon 45905058 45905539 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene CDS 45910846 45910961 0.000000 - 0 gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene exon 45910846 45910961 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene CDS 45912315 45912392 0.000000 - 0 gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene exon 45912315 45912392 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene CDS 45915973 45916028 0.000000 - 2 gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene exon 45915973 45916028 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene CDS 45918931 45919018 0.000000 - 0 gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene exon 45918931 45919018 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene CDS 45920540 45920632 0.000000 - 0 gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene exon 45920540 45920632 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene CDS 45923410 45923523 0.000000 - 0 gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene exon 45923410 45923523 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene CDS 45927473 45927616 0.000000 - 0 gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene exon 45927473 45927616 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene CDS 45938800 45938948 0.000000 - 2 gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene exon 45938800 45938948 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene CDS 45976600 45976670 0.000000 - 1 gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene exon 45976600 45976670 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene CDS 45985401 45985414 0.000000 - 0 gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene exon 45985401 45985474 0.000000 - . gene_id "ZMYND8"; transcript_id "NM_183048:uc002xtd.1";
+chr20 hg19_knownGene CDS 45839409 45839542 0.000000 - 2 gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene exon 45838381 45839542 0.000000 - . gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene CDS 45841287 45841370 0.000000 - 2 gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene exon 45841287 45841370 0.000000 - . gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene CDS 45848909 45848975 0.000000 - 0 gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene exon 45848909 45848975 0.000000 - . gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene CDS 45849965 45850125 0.000000 - 2 gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene exon 45849965 45850125 0.000000 - . gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene CDS 45852970 45853209 0.000000 - 2 gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene exon 45852970 45853209 0.000000 - . gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene CDS 45855946 45856024 0.000000 - 0 gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene exon 45855946 45856024 0.000000 - . gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene CDS 45858472 45858552 0.000000 - 0 gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene exon 45858472 45858552 0.000000 - . gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene CDS 45865070 45865260 0.000000 - 2 gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene exon 45865070 45865260 0.000000 - . gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene CDS 45867640 45867882 0.000000 - 2 gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene exon 45867640 45867882 0.000000 - . gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene CDS 45874752 45875261 0.000000 - 2 gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene exon 45874752 45875261 0.000000 - . gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene CDS 45878031 45878183 0.000000 - 2 gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene exon 45878031 45878183 0.000000 - . gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene CDS 45891032 45891172 0.000000 - 2 gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene exon 45891032 45891172 0.000000 - . gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene CDS 45905058 45905539 0.000000 - 1 gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene exon 45905058 45905539 0.000000 - . gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene CDS 45910846 45910961 0.000000 - 0 gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene exon 45910846 45910961 0.000000 - . gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene CDS 45912315 45912392 0.000000 - 0 gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene exon 45912315 45912392 0.000000 - . gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene CDS 45915973 45916028 0.000000 - 2 gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene exon 45915973 45916028 0.000000 - . gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene CDS 45918931 45919018 0.000000 - 0 gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene exon 45918931 45919018 0.000000 - . gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene CDS 45920540 45920632 0.000000 - 0 gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene exon 45920540 45920632 0.000000 - . gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene CDS 45923410 45923523 0.000000 - 0 gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene exon 45923410 45923523 0.000000 - . gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene CDS 45927473 45927691 0.000000 - 0 gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene exon 45927473 45927691 0.000000 - . gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene CDS 45938800 45938948 0.000000 - 2 gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene exon 45938800 45938948 0.000000 - . gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene CDS 45976600 45976624 0.000000 - 0 gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene exon 45976600 45976670 0.000000 - . gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene exon 45984194 45984264 0.000000 - . gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene exon 45985401 45985474 0.000000 - . gene_id "ZMYND8"; transcript_id "BX641005:uc002xte.1";
+chr20 hg19_knownGene CDS 45839409 45839542 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene exon 45838381 45839542 0.000000 - . gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene CDS 45841287 45841370 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene exon 45841287 45841370 0.000000 - . gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene CDS 45848909 45848975 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene exon 45848909 45848975 0.000000 - . gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene CDS 45849965 45850125 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene exon 45849965 45850125 0.000000 - . gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene CDS 45852970 45853209 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene exon 45852970 45853209 0.000000 - . gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene CDS 45855946 45856024 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene exon 45855946 45856024 0.000000 - . gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene CDS 45858472 45858552 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene exon 45858472 45858552 0.000000 - . gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene CDS 45865070 45865260 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene exon 45865070 45865260 0.000000 - . gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene CDS 45867502 45867882 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene exon 45867502 45867882 0.000000 - . gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene CDS 45874752 45875261 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene exon 45874752 45875261 0.000000 - . gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene CDS 45878031 45878183 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene exon 45878031 45878183 0.000000 - . gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene CDS 45891032 45891172 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene exon 45891032 45891172 0.000000 - . gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene CDS 45905058 45905539 0.000000 - 1 gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene exon 45905058 45905539 0.000000 - . gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene CDS 45910846 45910961 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene exon 45910846 45910961 0.000000 - . gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene CDS 45912315 45912392 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene exon 45912315 45912392 0.000000 - . gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene CDS 45915973 45916028 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene exon 45915973 45916028 0.000000 - . gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene CDS 45918931 45919018 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene exon 45918931 45919018 0.000000 - . gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene CDS 45920540 45920632 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene exon 45920540 45920632 0.000000 - . gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene CDS 45923410 45923523 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene exon 45923410 45923523 0.000000 - . gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene CDS 45927473 45927691 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene exon 45927473 45927691 0.000000 - . gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene CDS 45938800 45938948 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene exon 45938800 45938948 0.000000 - . gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene CDS 45976600 45976624 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene exon 45976600 45976670 0.000000 - . gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene exon 45984194 45984264 0.000000 - . gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene exon 45985401 45985474 0.000000 - . gene_id "ZMYND8"; transcript_id "AK299899:uc010zya.1";
+chr20 hg19_knownGene CDS 45839409 45839542 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene exon 45838381 45839542 0.000000 - . gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene CDS 45841287 45841370 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene exon 45841287 45841370 0.000000 - . gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene CDS 45848909 45848975 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene exon 45848909 45848975 0.000000 - . gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene CDS 45849965 45850125 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene exon 45849965 45850125 0.000000 - . gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene CDS 45852970 45853209 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene exon 45852970 45853209 0.000000 - . gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene CDS 45855946 45856024 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene exon 45855946 45856024 0.000000 - . gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene CDS 45858472 45858552 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene exon 45858472 45858552 0.000000 - . gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene CDS 45865070 45865260 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene exon 45865070 45865260 0.000000 - . gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene CDS 45867502 45867882 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene exon 45867502 45867882 0.000000 - . gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene CDS 45874752 45875261 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene exon 45874752 45875261 0.000000 - . gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene CDS 45878031 45878183 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene exon 45878031 45878183 0.000000 - . gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene CDS 45891032 45891172 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene exon 45891032 45891172 0.000000 - . gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene CDS 45905058 45905539 0.000000 - 1 gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene exon 45905058 45905539 0.000000 - . gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene CDS 45910846 45910961 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene exon 45910846 45910961 0.000000 - . gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene CDS 45912315 45912392 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene exon 45912315 45912392 0.000000 - . gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene CDS 45915973 45916028 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene exon 45915973 45916028 0.000000 - . gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene CDS 45918931 45919018 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene exon 45918931 45919018 0.000000 - . gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene CDS 45920540 45920632 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene exon 45920540 45920632 0.000000 - . gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene CDS 45923410 45923523 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene exon 45923410 45923523 0.000000 - . gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene CDS 45927473 45927691 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene exon 45927473 45927691 0.000000 - . gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene CDS 45938800 45938948 0.000000 - 2 gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene exon 45938800 45938948 0.000000 - . gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene CDS 45976600 45976670 0.000000 - 1 gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene exon 45976600 45976670 0.000000 - . gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene CDS 45985401 45985414 0.000000 - 0 gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene exon 45985401 45985474 0.000000 - . gene_id "ZMYND8"; transcript_id "AK225857:uc002xtf.1";
+chr20 hg19_knownGene CDS 45927464 45927691 0.000000 - 0 gene_id "ZMYND8"; transcript_id "BC092432:uc002xth.3";
+chr20 hg19_knownGene exon 45926888 45927691 0.000000 - . gene_id "ZMYND8"; transcript_id "BC092432:uc002xth.3";
+chr20 hg19_knownGene CDS 45938800 45938948 0.000000 - 2 gene_id "ZMYND8"; transcript_id "BC092432:uc002xth.3";
+chr20 hg19_knownGene exon 45938800 45938948 0.000000 - . gene_id "ZMYND8"; transcript_id "BC092432:uc002xth.3";
+chr20 hg19_knownGene CDS 45976600 45976670 0.000000 - 1 gene_id "ZMYND8"; transcript_id "BC092432:uc002xth.3";
+chr20 hg19_knownGene exon 45976600 45976670 0.000000 - . gene_id "ZMYND8"; transcript_id "BC092432:uc002xth.3";
+chr20 hg19_knownGene CDS 45985401 45985414 0.000000 - 0 gene_id "ZMYND8"; transcript_id "BC092432:uc002xth.3";
+chr20 hg19_knownGene exon 45985401 45985474 0.000000 - . gene_id "ZMYND8"; transcript_id "BC092432:uc002xth.3";
+chr20 hg19_knownGene exon 46130675 46133202 0.000000 + . gene_id "BC036778"; transcript_id "BC036778:uc010ghu.1";
+chr20 hg19_knownGene exon 46130601 46130763 0.000000 + . gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene exon 46211927 46212005 0.000000 + . gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene CDS 46250992 46251074 0.000000 + 0 gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene exon 46250973 46251074 0.000000 + . gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene CDS 46252655 46252827 0.000000 + 1 gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene exon 46252655 46252827 0.000000 + . gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene CDS 46254125 46254225 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene exon 46254125 46254225 0.000000 + . gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene CDS 46255746 46255920 0.000000 + 0 gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene exon 46255746 46255920 0.000000 + . gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene CDS 46256305 46256493 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene exon 46256305 46256493 0.000000 + . gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene CDS 46256666 46256767 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene exon 46256666 46256767 0.000000 + . gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene CDS 46262240 46262380 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene exon 46262240 46262380 0.000000 + . gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene CDS 46262792 46262939 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene exon 46262792 46262939 0.000000 + . gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene CDS 46264066 46264457 0.000000 + 1 gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene exon 46264066 46264457 0.000000 + . gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene CDS 46264635 46265506 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene exon 46264635 46265506 0.000000 + . gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene CDS 46266392 46266527 0.000000 + 0 gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene exon 46266392 46266527 0.000000 + . gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene CDS 46267752 46267946 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene exon 46267752 46267946 0.000000 + . gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene CDS 46268321 46268566 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene exon 46268321 46268566 0.000000 + . gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene CDS 46268669 46268795 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene exon 46268669 46268795 0.000000 + . gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene CDS 46270957 46271128 0.000000 + 1 gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene exon 46270957 46271128 0.000000 + . gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene CDS 46275817 46276110 0.000000 + 0 gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene exon 46275817 46276110 0.000000 + . gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene CDS 46277749 46277853 0.000000 + 0 gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene exon 46277749 46277853 0.000000 + . gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene CDS 46279726 46280020 0.000000 + 0 gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene exon 46279726 46280020 0.000000 + . gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene CDS 46281150 46281324 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene exon 46281150 46281324 0.000000 + . gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene CDS 46281675 46281816 0.000000 + 1 gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene exon 46281675 46281816 0.000000 + . gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene CDS 46282150 46282158 0.000000 + 0 gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene exon 46282150 46285621 0.000000 + . gene_id "NCOA3"; transcript_id "NM_181659:uc002xtk.3";
+chr20 hg19_knownGene exon 46130601 46130763 0.000000 + . gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene exon 46211927 46212005 0.000000 + . gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene CDS 46250992 46251074 0.000000 + 0 gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene exon 46250973 46251074 0.000000 + . gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene CDS 46252655 46252827 0.000000 + 1 gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene exon 46252655 46252827 0.000000 + . gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene CDS 46254125 46254225 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene exon 46254125 46254225 0.000000 + . gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene CDS 46255746 46255920 0.000000 + 0 gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene exon 46255746 46255920 0.000000 + . gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene CDS 46256305 46256493 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene exon 46256305 46256493 0.000000 + . gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene CDS 46256666 46256767 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene exon 46256666 46256767 0.000000 + . gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene CDS 46262240 46262380 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene exon 46262240 46262380 0.000000 + . gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene CDS 46262792 46262939 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene exon 46262792 46262939 0.000000 + . gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene CDS 46264066 46264457 0.000000 + 1 gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene exon 46264066 46264457 0.000000 + . gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene CDS 46264635 46265506 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene exon 46264635 46265506 0.000000 + . gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene CDS 46266392 46266527 0.000000 + 0 gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene exon 46266392 46266527 0.000000 + . gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene CDS 46267752 46267946 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene exon 46267752 46267946 0.000000 + . gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene CDS 46268321 46268566 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene exon 46268321 46268566 0.000000 + . gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene CDS 46268669 46268795 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene exon 46268669 46268795 0.000000 + . gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene CDS 46270957 46271128 0.000000 + 1 gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene exon 46270957 46271128 0.000000 + . gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene CDS 46275817 46276110 0.000000 + 0 gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene exon 46275817 46276110 0.000000 + . gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene CDS 46277749 46277841 0.000000 + 0 gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene exon 46277749 46277841 0.000000 + . gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene CDS 46279726 46280020 0.000000 + 0 gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene exon 46279726 46280020 0.000000 + . gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene CDS 46281150 46281324 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene exon 46281150 46281324 0.000000 + . gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene CDS 46281675 46281816 0.000000 + 1 gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene exon 46281675 46281816 0.000000 + . gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene CDS 46282150 46282158 0.000000 + 0 gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene exon 46282150 46285621 0.000000 + . gene_id "NCOA3"; transcript_id "NM_006534:uc002xtl.3";
+chr20 hg19_knownGene exon 46130601 46130763 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene exon 46211927 46212005 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene CDS 46250992 46251074 0.000000 + 0 gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene exon 46250973 46251074 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene CDS 46252655 46252827 0.000000 + 1 gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene exon 46252655 46252827 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene CDS 46254125 46254225 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene exon 46254125 46254225 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene CDS 46255746 46255920 0.000000 + 0 gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene exon 46255746 46255920 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene CDS 46256305 46256493 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene exon 46256305 46256493 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene CDS 46256666 46256767 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene exon 46256666 46256767 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene CDS 46262240 46262380 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene exon 46262240 46262380 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene CDS 46262792 46262939 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene exon 46262792 46262939 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene CDS 46264066 46264457 0.000000 + 1 gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene exon 46264066 46264457 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene CDS 46264635 46265506 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene exon 46264635 46265506 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene CDS 46266392 46266527 0.000000 + 0 gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene exon 46266392 46266527 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene CDS 46267752 46267946 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene exon 46267752 46267946 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene CDS 46268321 46268566 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene exon 46268321 46268566 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene CDS 46268669 46268795 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene exon 46268669 46268795 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene CDS 46270957 46271128 0.000000 + 1 gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene exon 46270957 46271128 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene CDS 46275817 46276110 0.000000 + 0 gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene exon 46275817 46276110 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene CDS 46277749 46277853 0.000000 + 0 gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene exon 46277749 46277853 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene CDS 46279729 46280020 0.000000 + 0 gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene exon 46279729 46280020 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene CDS 46281150 46281324 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene exon 46281150 46281324 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene CDS 46281675 46281816 0.000000 + 1 gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene exon 46281675 46281816 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene CDS 46282150 46282158 0.000000 + 0 gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene exon 46282150 46285621 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174087:uc002xtn.3";
+chr20 hg19_knownGene exon 46130601 46130763 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene exon 46211927 46212005 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene CDS 46250992 46251074 0.000000 + 0 gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene exon 46250973 46251074 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene CDS 46252655 46252827 0.000000 + 1 gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene exon 46252655 46252827 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene CDS 46254125 46254225 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene exon 46254125 46254225 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene CDS 46255746 46255920 0.000000 + 0 gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene exon 46255746 46255920 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene CDS 46256305 46256493 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene exon 46256305 46256493 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene CDS 46256666 46256767 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene exon 46256666 46256767 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene CDS 46262240 46262380 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene exon 46262240 46262380 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene CDS 46262762 46262939 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene exon 46262762 46262939 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene CDS 46264066 46264457 0.000000 + 1 gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene exon 46264066 46264457 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene CDS 46264635 46265506 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene exon 46264635 46265506 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene CDS 46266392 46266527 0.000000 + 0 gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene exon 46266392 46266527 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene CDS 46267752 46267946 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene exon 46267752 46267946 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene CDS 46268366 46268566 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene exon 46268366 46268566 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene CDS 46268669 46268795 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene exon 46268669 46268795 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene CDS 46270957 46271128 0.000000 + 1 gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene exon 46270957 46271128 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene CDS 46275817 46276110 0.000000 + 0 gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene exon 46275817 46276110 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene CDS 46277749 46277841 0.000000 + 0 gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene exon 46277749 46277841 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene CDS 46279726 46280020 0.000000 + 0 gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene exon 46279726 46280020 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene CDS 46281150 46281324 0.000000 + 2 gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene exon 46281150 46281324 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene CDS 46281675 46281816 0.000000 + 1 gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene exon 46281675 46281816 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene CDS 46282150 46282158 0.000000 + 0 gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene exon 46282150 46285621 0.000000 + . gene_id "NCOA3"; transcript_id "NM_001174088:uc010ght.2";
+chr20 hg19_knownGene exon 46130601 46130763 0.000000 + . gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene exon 46211927 46212005 0.000000 + . gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene CDS 46250992 46251074 0.000000 + 0 gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene exon 46250973 46251074 0.000000 + . gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene CDS 46252655 46252827 0.000000 + 1 gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene exon 46252655 46252827 0.000000 + . gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene CDS 46254125 46254225 0.000000 + 2 gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene exon 46254125 46254225 0.000000 + . gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene CDS 46255746 46255920 0.000000 + 0 gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene exon 46255746 46255920 0.000000 + . gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene CDS 46256305 46256493 0.000000 + 2 gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene exon 46256305 46256493 0.000000 + . gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene CDS 46256666 46256767 0.000000 + 2 gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene exon 46256666 46256767 0.000000 + . gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene CDS 46262240 46262380 0.000000 + 2 gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene exon 46262240 46262380 0.000000 + . gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene CDS 46262792 46262939 0.000000 + 2 gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene exon 46262792 46262939 0.000000 + . gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene CDS 46264066 46264457 0.000000 + 1 gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene exon 46264066 46264457 0.000000 + . gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene CDS 46264635 46265506 0.000000 + 2 gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene exon 46264635 46265506 0.000000 + . gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene CDS 46266392 46266527 0.000000 + 0 gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene exon 46266392 46266527 0.000000 + . gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene CDS 46267752 46267946 0.000000 + 2 gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene exon 46267752 46267946 0.000000 + . gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene CDS 46268321 46268566 0.000000 + 2 gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene exon 46268321 46268566 0.000000 + . gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene CDS 46268669 46268795 0.000000 + 2 gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene exon 46268669 46268795 0.000000 + . gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene CDS 46270957 46271128 0.000000 + 1 gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene exon 46270957 46271128 0.000000 + . gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene CDS 46275817 46276110 0.000000 + 0 gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene exon 46275817 46276110 0.000000 + . gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene CDS 46277749 46277841 0.000000 + 0 gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene exon 46277749 46277841 0.000000 + . gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene CDS 46279729 46280020 0.000000 + 0 gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene exon 46279729 46280020 0.000000 + . gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene CDS 46281150 46281324 0.000000 + 2 gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene exon 46281150 46281324 0.000000 + . gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene CDS 46281675 46281816 0.000000 + 1 gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene exon 46281675 46281816 0.000000 + . gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene CDS 46282150 46282158 0.000000 + 0 gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene exon 46282150 46285621 0.000000 + . gene_id "NCOA3"; transcript_id "BC122547:uc002xtm.3";
+chr20 hg19_knownGene exon 46255746 46255920 0.000000 + . gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene CDS 46256367 46256493 0.000000 + 0 gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene exon 46256305 46256493 0.000000 + . gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene CDS 46256666 46256767 0.000000 + 2 gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene exon 46256666 46256767 0.000000 + . gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene CDS 46262240 46262380 0.000000 + 2 gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene exon 46262240 46262380 0.000000 + . gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene CDS 46262813 46262939 0.000000 + 2 gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene exon 46262813 46262939 0.000000 + . gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene CDS 46264066 46264457 0.000000 + 1 gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene exon 46264066 46264457 0.000000 + . gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene CDS 46264635 46265506 0.000000 + 2 gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene exon 46264635 46265506 0.000000 + . gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene CDS 46266392 46266527 0.000000 + 0 gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene exon 46266392 46266527 0.000000 + . gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene CDS 46267752 46267946 0.000000 + 2 gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene exon 46267752 46267946 0.000000 + . gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene CDS 46268321 46268566 0.000000 + 2 gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene exon 46268321 46268566 0.000000 + . gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene CDS 46268669 46268795 0.000000 + 2 gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene exon 46268669 46268795 0.000000 + . gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene CDS 46270957 46271128 0.000000 + 1 gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene exon 46270957 46271128 0.000000 + . gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene CDS 46275817 46276110 0.000000 + 0 gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene exon 46275817 46276110 0.000000 + . gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene CDS 46277749 46277853 0.000000 + 0 gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene exon 46277749 46277853 0.000000 + . gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene CDS 46279726 46280020 0.000000 + 0 gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene exon 46279726 46280020 0.000000 + . gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene CDS 46281150 46281324 0.000000 + 2 gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene exon 46281150 46281324 0.000000 + . gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene CDS 46281675 46281816 0.000000 + 1 gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene exon 46281675 46281816 0.000000 + . gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene CDS 46282150 46282158 0.000000 + 0 gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene exon 46282150 46285621 0.000000 + . gene_id "NCOA3"; transcript_id "AK302595:uc010zyc.2";
+chr20 hg19_knownGene CDS 46287109 46287136 0.000000 - 1 gene_id "SULF2"; transcript_id "BC073790:uc010zyd.2";
+chr20 hg19_knownGene exon 46286150 46287136 0.000000 - . gene_id "SULF2"; transcript_id "BC073790:uc010zyd.2";
+chr20 hg19_knownGene CDS 46288441 46288474 0.000000 - 2 gene_id "SULF2"; transcript_id "BC073790:uc010zyd.2";
+chr20 hg19_knownGene exon 46288441 46288474 0.000000 - . gene_id "SULF2"; transcript_id "BC073790:uc010zyd.2";
+chr20 hg19_knownGene CDS 46290517 46290640 0.000000 - 0 gene_id "SULF2"; transcript_id "BC073790:uc010zyd.2";
+chr20 hg19_knownGene exon 46290517 46290640 0.000000 - . gene_id "SULF2"; transcript_id "BC073790:uc010zyd.2";
+chr20 hg19_knownGene CDS 46291814 46291956 0.000000 - 2 gene_id "SULF2"; transcript_id "BC073790:uc010zyd.2";
+chr20 hg19_knownGene exon 46291814 46291956 0.000000 - . gene_id "SULF2"; transcript_id "BC073790:uc010zyd.2";
+chr20 hg19_knownGene CDS 46292197 46292260 0.000000 - 0 gene_id "SULF2"; transcript_id "BC073790:uc010zyd.2";
+chr20 hg19_knownGene exon 46292197 46292366 0.000000 - . gene_id "SULF2"; transcript_id "BC073790:uc010zyd.2";
+chr20 hg19_knownGene exon 46292874 46292933 0.000000 - . gene_id "SULF2"; transcript_id "BC073790:uc010zyd.2";
+chr20 hg19_knownGene exon 46293943 46294037 0.000000 - . gene_id "SULF2"; transcript_id "BC073790:uc010zyd.2";
+chr20 hg19_knownGene CDS 46287109 46287136 0.000000 - 1 gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene exon 46286150 46287136 0.000000 - . gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene CDS 46288143 46288196 0.000000 - 1 gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene exon 46288143 46288196 0.000000 - . gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene CDS 46288441 46288474 0.000000 - 2 gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene exon 46288441 46288474 0.000000 - . gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene CDS 46290517 46290640 0.000000 - 0 gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene exon 46290517 46290640 0.000000 - . gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene CDS 46291814 46291956 0.000000 - 2 gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene exon 46291814 46291956 0.000000 - . gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene CDS 46292197 46292366 0.000000 - 1 gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene exon 46292197 46292366 0.000000 - . gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene CDS 46292874 46292933 0.000000 - 1 gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene exon 46292874 46292933 0.000000 - . gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene CDS 46293943 46294037 0.000000 - 0 gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene exon 46293943 46294037 0.000000 - . gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene CDS 46294601 46294697 0.000000 - 1 gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene exon 46294601 46294697 0.000000 - . gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene CDS 46295004 46295232 0.000000 - 2 gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene exon 46295004 46295232 0.000000 - . gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene CDS 46300942 46301137 0.000000 - 0 gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene exon 46300942 46301137 0.000000 - . gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene CDS 46305238 46305367 0.000000 - 1 gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene exon 46305238 46305367 0.000000 - . gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene CDS 46305822 46305878 0.000000 - 1 gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene exon 46305822 46305878 0.000000 - . gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene CDS 46307420 46307548 0.000000 - 1 gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene exon 46307420 46307548 0.000000 - . gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene CDS 46311738 46311913 0.000000 - 0 gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene exon 46311738 46311913 0.000000 - . gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene CDS 46313175 46313325 0.000000 - 1 gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene exon 46313175 46313325 0.000000 - . gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene CDS 46318870 46319039 0.000000 - 0 gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene exon 46318870 46319039 0.000000 - . gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene CDS 46331263 46331414 0.000000 - 2 gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene exon 46331263 46331414 0.000000 - . gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene CDS 46365447 46365686 0.000000 - 2 gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene exon 46365447 46365686 0.000000 - . gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene CDS 46385933 46386107 0.000000 - 0 gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene exon 46385933 46386207 0.000000 - . gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene exon 46414579 46414808 0.000000 - . gene_id "SULF2"; transcript_id "NM_018837:uc002xto.3";
+chr20 hg19_knownGene CDS 46318869 46319039 0.000000 - 0 gene_id "SULF2"; transcript_id "AK308829:uc010ghv.1";
+chr20 hg19_knownGene exon 46318292 46319039 0.000000 - . gene_id "SULF2"; transcript_id "AK308829:uc010ghv.1";
+chr20 hg19_knownGene CDS 46331263 46331414 0.000000 - 2 gene_id "SULF2"; transcript_id "AK308829:uc010ghv.1";
+chr20 hg19_knownGene exon 46331263 46331414 0.000000 - . gene_id "SULF2"; transcript_id "AK308829:uc010ghv.1";
+chr20 hg19_knownGene CDS 46365447 46365686 0.000000 - 2 gene_id "SULF2"; transcript_id "AK308829:uc010ghv.1";
+chr20 hg19_knownGene exon 46365447 46365686 0.000000 - . gene_id "SULF2"; transcript_id "AK308829:uc010ghv.1";
+chr20 hg19_knownGene CDS 46385933 46386107 0.000000 - 0 gene_id "SULF2"; transcript_id "AK308829:uc010ghv.1";
+chr20 hg19_knownGene exon 46385933 46386207 0.000000 - . gene_id "SULF2"; transcript_id "AK308829:uc010ghv.1";
+chr20 hg19_knownGene exon 46414579 46414808 0.000000 - . gene_id "SULF2"; transcript_id "AK308829:uc010ghv.1";
+chr20 hg19_knownGene CDS 46287109 46287136 0.000000 - 1 gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene exon 46286150 46287136 0.000000 - . gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene CDS 46288143 46288196 0.000000 - 1 gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene exon 46288143 46288196 0.000000 - . gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene CDS 46288441 46288465 0.000000 - 2 gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene exon 46288441 46288465 0.000000 - . gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene CDS 46290517 46290640 0.000000 - 0 gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene exon 46290517 46290640 0.000000 - . gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene CDS 46291814 46291956 0.000000 - 2 gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene exon 46291814 46291956 0.000000 - . gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene CDS 46292197 46292366 0.000000 - 1 gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene exon 46292197 46292366 0.000000 - . gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene CDS 46292874 46292933 0.000000 - 1 gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene exon 46292874 46292933 0.000000 - . gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene CDS 46293943 46294037 0.000000 - 0 gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene exon 46293943 46294037 0.000000 - . gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene CDS 46294601 46294697 0.000000 - 1 gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene exon 46294601 46294697 0.000000 - . gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene CDS 46295004 46295232 0.000000 - 2 gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene exon 46295004 46295232 0.000000 - . gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene CDS 46300942 46301137 0.000000 - 0 gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene exon 46300942 46301137 0.000000 - . gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene CDS 46305238 46305367 0.000000 - 1 gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene exon 46305238 46305367 0.000000 - . gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene CDS 46305822 46305878 0.000000 - 1 gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene exon 46305822 46305878 0.000000 - . gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene CDS 46307420 46307548 0.000000 - 1 gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene exon 46307420 46307548 0.000000 - . gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene CDS 46311738 46311913 0.000000 - 0 gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene exon 46311738 46311913 0.000000 - . gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene CDS 46313175 46313325 0.000000 - 1 gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene exon 46313175 46313325 0.000000 - . gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene CDS 46318870 46319039 0.000000 - 0 gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene exon 46318870 46319039 0.000000 - . gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene CDS 46331263 46331414 0.000000 - 2 gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene exon 46331263 46331414 0.000000 - . gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene CDS 46365447 46365686 0.000000 - 2 gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene exon 46365447 46365686 0.000000 - . gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene CDS 46385933 46386107 0.000000 - 0 gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene exon 46385933 46386207 0.000000 - . gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene exon 46414792 46415360 0.000000 - . gene_id "SULF2"; transcript_id "NM_198596:uc002xtr.3";
+chr20 hg19_knownGene CDS 46287109 46287136 0.000000 - 1 gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene exon 46286150 46287136 0.000000 - . gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene CDS 46288143 46288196 0.000000 - 1 gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene exon 46288143 46288196 0.000000 - . gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene CDS 46288441 46288474 0.000000 - 2 gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene exon 46288441 46288474 0.000000 - . gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene CDS 46290517 46290640 0.000000 - 0 gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene exon 46290517 46290640 0.000000 - . gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene CDS 46291814 46291956 0.000000 - 2 gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene exon 46291814 46291956 0.000000 - . gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene CDS 46292197 46292366 0.000000 - 1 gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene exon 46292197 46292366 0.000000 - . gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene CDS 46292874 46292933 0.000000 - 1 gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene exon 46292874 46292933 0.000000 - . gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene CDS 46293943 46294037 0.000000 - 0 gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene exon 46293943 46294037 0.000000 - . gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene CDS 46294601 46294697 0.000000 - 1 gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene exon 46294601 46294697 0.000000 - . gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene CDS 46295004 46295232 0.000000 - 2 gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene exon 46295004 46295232 0.000000 - . gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene CDS 46300942 46301137 0.000000 - 0 gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene exon 46300942 46301137 0.000000 - . gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene CDS 46305238 46305367 0.000000 - 1 gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene exon 46305238 46305367 0.000000 - . gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene CDS 46305822 46305878 0.000000 - 1 gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene exon 46305822 46305878 0.000000 - . gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene CDS 46307420 46307548 0.000000 - 1 gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene exon 46307420 46307548 0.000000 - . gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene CDS 46311738 46311913 0.000000 - 0 gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene exon 46311738 46311913 0.000000 - . gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene CDS 46313175 46313325 0.000000 - 1 gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene exon 46313175 46313325 0.000000 - . gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene CDS 46318870 46319039 0.000000 - 0 gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene exon 46318870 46319039 0.000000 - . gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene CDS 46331263 46331414 0.000000 - 2 gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene exon 46331263 46331414 0.000000 - . gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene CDS 46365447 46365686 0.000000 - 2 gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene exon 46365447 46365686 0.000000 - . gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene CDS 46385933 46386107 0.000000 - 0 gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene exon 46385933 46386207 0.000000 - . gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene exon 46414792 46415360 0.000000 - . gene_id "SULF2"; transcript_id "NM_001161841:uc002xtq.3";
+chr20 hg19_knownGene exon 46585043 46585193 0.000000 + . gene_id "BX648826"; transcript_id "BX648826:uc002xts.1";
+chr20 hg19_knownGene exon 46585484 46585597 0.000000 + . gene_id "BX648826"; transcript_id "BX648826:uc002xts.1";
+chr20 hg19_knownGene exon 46585732 46586880 0.000000 + . gene_id "BX648826"; transcript_id "BX648826:uc002xts.1";
+chr20 hg19_knownGene exon 46587007 46589679 0.000000 + . gene_id "BX648826"; transcript_id "BX648826:uc002xts.1";
+chr20 hg19_knownGene exon 46988654 46988893 0.000000 + . gene_id "LINC00494"; transcript_id "NR_026958:uc002xtt.2";
+chr20 hg19_knownGene exon 46993632 46993940 0.000000 + . gene_id "LINC00494"; transcript_id "NR_026958:uc002xtt.2";
+chr20 hg19_knownGene exon 46995217 46995376 0.000000 + . gene_id "LINC00494"; transcript_id "NR_026958:uc002xtt.2";
+chr20 hg19_knownGene exon 46995479 46995802 0.000000 + . gene_id "LINC00494"; transcript_id "NR_026958:uc002xtt.2";
+chr20 hg19_knownGene exon 46996823 46999381 0.000000 + . gene_id "LINC00494"; transcript_id "NR_026958:uc002xtt.2";
+chr20 hg19_knownGene exon 46994390 46994750 0.000000 + . gene_id "LINC00494"; transcript_id "AL832259:uc010zye.1";
+chr20 hg19_knownGene exon 46995217 46995376 0.000000 + . gene_id "LINC00494"; transcript_id "AL832259:uc010zye.1";
+chr20 hg19_knownGene exon 46996823 46999381 0.000000 + . gene_id "LINC00494"; transcript_id "AL832259:uc010zye.1";
+chr20 hg19_knownGene exon 47240793 47243446 0.000000 - . gene_id "AX746653"; transcript_id "AX746653:uc021wer.1";
+chr20 hg19_knownGene CDS 47242426 47242465 0.000000 - 1 gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene exon 47240793 47242465 0.000000 - . gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene CDS 47244086 47244153 0.000000 - 0 gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene exon 47244086 47244153 0.000000 - . gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene CDS 47244399 47244501 0.000000 - 1 gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene exon 47244399 47244501 0.000000 - . gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene CDS 47245987 47246159 0.000000 - 0 gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene exon 47245987 47246159 0.000000 - . gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene CDS 47247266 47247332 0.000000 - 1 gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene exon 47247266 47247332 0.000000 - . gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene CDS 47248815 47248929 0.000000 - 2 gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene exon 47248815 47248929 0.000000 - . gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene CDS 47249034 47249177 0.000000 - 2 gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene exon 47249034 47249177 0.000000 - . gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene CDS 47251214 47251313 0.000000 - 0 gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene exon 47251214 47251313 0.000000 - . gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene CDS 47253001 47253221 0.000000 - 2 gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene exon 47253001 47253221 0.000000 - . gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene CDS 47254249 47254290 0.000000 - 2 gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene exon 47254249 47254290 0.000000 - . gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene CDS 47256304 47256432 0.000000 - 2 gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene exon 47256304 47256432 0.000000 - . gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene CDS 47258706 47258796 0.000000 - 0 gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene exon 47258706 47258796 0.000000 - . gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene CDS 47258945 47259027 0.000000 - 2 gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene exon 47258945 47259027 0.000000 - . gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene CDS 47260947 47261035 0.000000 - 1 gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene exon 47260947 47261035 0.000000 - . gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene CDS 47262389 47262595 0.000000 - 1 gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene exon 47262389 47262595 0.000000 - . gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene CDS 47265838 47266114 0.000000 - 2 gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene exon 47265838 47266114 0.000000 - . gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene CDS 47266534 47266744 0.000000 - 0 gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene exon 47266534 47266744 0.000000 - . gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene CDS 47267432 47267593 0.000000 - 0 gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene exon 47267432 47267593 0.000000 - . gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene CDS 47267934 47268121 0.000000 - 2 gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene exon 47267934 47268121 0.000000 - . gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene CDS 47269124 47269244 0.000000 - 0 gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene exon 47269124 47269244 0.000000 - . gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene CDS 47269899 47270035 0.000000 - 2 gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene exon 47269899 47270035 0.000000 - . gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene CDS 47271828 47271913 0.000000 - 1 gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene exon 47271828 47271913 0.000000 - . gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene CDS 47273016 47273029 0.000000 - 0 gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene exon 47273016 47273118 0.000000 - . gene_id "PREX1"; transcript_id "AL136579:uc002xtv.1";
+chr20 hg19_knownGene CDS 47242426 47242465 0.000000 - 1 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47240793 47242465 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47244086 47244153 0.000000 - 0 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47244086 47244153 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47244399 47244501 0.000000 - 1 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47244399 47244501 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47245987 47246159 0.000000 - 0 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47245987 47246159 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47247266 47247332 0.000000 - 1 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47247266 47247332 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47248815 47248929 0.000000 - 2 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47248815 47248929 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47249034 47249177 0.000000 - 2 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47249034 47249177 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47251214 47251313 0.000000 - 0 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47251214 47251313 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47253001 47253221 0.000000 - 2 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47253001 47253221 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47254249 47254290 0.000000 - 2 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47254249 47254290 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47256304 47256432 0.000000 - 2 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47256304 47256432 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47258706 47258796 0.000000 - 0 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47258706 47258796 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47258945 47259027 0.000000 - 2 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47258945 47259027 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47260947 47261035 0.000000 - 1 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47260947 47261035 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47262389 47262595 0.000000 - 1 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47262389 47262595 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47265838 47266114 0.000000 - 2 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47265838 47266114 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47266534 47266744 0.000000 - 0 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47266534 47266744 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47267432 47267593 0.000000 - 0 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47267432 47267593 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47267934 47268121 0.000000 - 2 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47267934 47268121 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47269124 47269244 0.000000 - 0 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47269124 47269244 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47269899 47270035 0.000000 - 2 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47269899 47270035 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47271828 47271913 0.000000 - 1 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47271828 47271913 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47273578 47273726 0.000000 - 0 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47273578 47273726 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47274674 47274766 0.000000 - 0 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47274674 47274766 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47276457 47276599 0.000000 - 2 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47276457 47276599 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47282821 47282893 0.000000 - 0 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47282821 47282893 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47292731 47292806 0.000000 - 1 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47292731 47292806 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47295898 47295947 0.000000 - 0 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47295898 47295947 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47296189 47296292 0.000000 - 2 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47296189 47296292 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47297773 47297873 0.000000 - 1 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47297773 47297873 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47305195 47305342 0.000000 - 2 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47305195 47305342 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47307485 47307634 0.000000 - 2 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47307485 47307634 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47309210 47309328 0.000000 - 1 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47309210 47309328 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47317291 47317424 0.000000 - 0 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47317291 47317424 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47324798 47324959 0.000000 - 0 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47324798 47324959 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47342827 47342928 0.000000 - 0 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47342827 47342928 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47351083 47351187 0.000000 - 0 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47351083 47351187 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47361562 47361684 0.000000 - 0 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47361562 47361684 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47364346 47364417 0.000000 - 0 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47364346 47364417 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene CDS 47444179 47444397 0.000000 - 0 gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47444179 47444420 0.000000 - . gene_id "PREX1"; transcript_id "NM_020820:uc002xtw.1";
+chr20 hg19_knownGene exon 47551778 47552227 0.000000 + . gene_id "FKSG56"; transcript_id "AF336886:uc010ghw.2";
+chr20 hg19_knownGene CDS 47538427 47538547 0.000000 + 0 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47538275 47538547 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47557736 47557766 0.000000 + 2 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47557736 47557766 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47558401 47558524 0.000000 + 1 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47558401 47558524 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47567860 47568006 0.000000 + 0 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47567860 47568006 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47569242 47569421 0.000000 + 0 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47569242 47569421 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47570093 47570327 0.000000 + 0 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47570093 47570327 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47580367 47580435 0.000000 + 2 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47580367 47580435 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47582409 47582560 0.000000 + 2 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47582409 47582560 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47585684 47585814 0.000000 + 0 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47585684 47585814 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47587657 47587891 0.000000 + 1 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47587657 47587891 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47588863 47588962 0.000000 + 0 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47588863 47588962 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47589682 47589821 0.000000 + 2 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47589682 47589821 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47591303 47591411 0.000000 + 0 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47591303 47591411 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47592553 47592736 0.000000 + 2 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47592553 47592736 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47601266 47601377 0.000000 + 1 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47601266 47601377 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47601945 47602150 0.000000 + 0 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47601945 47602150 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47604841 47604925 0.000000 + 1 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47604841 47604925 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47605028 47605199 0.000000 + 0 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47605028 47605199 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47605822 47605973 0.000000 + 2 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47605822 47605973 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47606093 47606221 0.000000 + 0 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47606093 47606221 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47607577 47607735 0.000000 + 0 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47607577 47607735 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47610988 47611135 0.000000 + 0 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47610988 47611135 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47612320 47612419 0.000000 + 2 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47612320 47612419 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47614730 47614770 0.000000 + 1 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47614730 47614770 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47614873 47615042 0.000000 + 2 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47614873 47615042 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47621607 47621758 0.000000 + 0 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47621607 47621758 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47626769 47626941 0.000000 + 1 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47626769 47626941 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47628461 47628621 0.000000 + 2 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47628461 47628621 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47630101 47630231 0.000000 + 0 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47630101 47630231 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47630368 47630497 0.000000 + 1 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47630368 47630497 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47632817 47632952 0.000000 + 0 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47632817 47632952 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47633786 47633924 0.000000 + 2 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47633786 47633924 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47634033 47634087 0.000000 + 1 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47634033 47634087 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47635421 47635535 0.000000 + 0 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47635421 47635535 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47639588 47639718 0.000000 + 2 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47639588 47639718 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47641850 47642018 0.000000 + 0 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47641850 47642018 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47645067 47645205 0.000000 + 2 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47645067 47645205 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47648586 47648703 0.000000 + 1 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47648586 47648703 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene CDS 47649560 47649733 0.000000 + 0 gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47649560 47653230 0.000000 + . gene_id "ARFGEF2"; transcript_id "NM_006420:uc002xtx.4";
+chr20 hg19_knownGene exon 47601329 47601405 0.000000 + . gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene CDS 47601996 47602150 0.000000 + 0 gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene exon 47601945 47602150 0.000000 + . gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene CDS 47604841 47604925 0.000000 + 1 gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene exon 47604841 47604925 0.000000 + . gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene CDS 47605028 47605199 0.000000 + 0 gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene exon 47605028 47605199 0.000000 + . gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene CDS 47605822 47605973 0.000000 + 2 gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene exon 47605822 47605973 0.000000 + . gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene CDS 47606093 47606221 0.000000 + 0 gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene exon 47606093 47606221 0.000000 + . gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene CDS 47607577 47607735 0.000000 + 0 gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene exon 47607577 47607735 0.000000 + . gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene CDS 47610988 47611135 0.000000 + 0 gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene exon 47610988 47611135 0.000000 + . gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene CDS 47612320 47612419 0.000000 + 2 gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene exon 47612320 47612419 0.000000 + . gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene CDS 47614730 47614770 0.000000 + 1 gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene exon 47614730 47614770 0.000000 + . gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene CDS 47614873 47615042 0.000000 + 2 gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene exon 47614873 47615042 0.000000 + . gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene CDS 47621607 47621758 0.000000 + 0 gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene exon 47621607 47621758 0.000000 + . gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene CDS 47626769 47626941 0.000000 + 1 gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene exon 47626769 47626941 0.000000 + . gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene CDS 47628461 47628621 0.000000 + 2 gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene exon 47628461 47628621 0.000000 + . gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene CDS 47630101 47630231 0.000000 + 0 gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene exon 47630101 47630231 0.000000 + . gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene CDS 47630368 47630497 0.000000 + 1 gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene exon 47630368 47630497 0.000000 + . gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene CDS 47632817 47632952 0.000000 + 0 gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene exon 47632817 47632952 0.000000 + . gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene CDS 47633786 47633924 0.000000 + 2 gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene exon 47633786 47633924 0.000000 + . gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene CDS 47634033 47634087 0.000000 + 1 gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene exon 47634033 47634087 0.000000 + . gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene CDS 47635421 47635535 0.000000 + 0 gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene exon 47635421 47635535 0.000000 + . gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene CDS 47639588 47639718 0.000000 + 2 gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene exon 47639588 47639718 0.000000 + . gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene CDS 47641850 47642018 0.000000 + 0 gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene exon 47641850 47642018 0.000000 + . gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene CDS 47645067 47645205 0.000000 + 2 gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene exon 47645067 47645205 0.000000 + . gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene CDS 47648586 47648703 0.000000 + 1 gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene exon 47648586 47648703 0.000000 + . gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene CDS 47649560 47649733 0.000000 + 0 gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene exon 47649560 47653230 0.000000 + . gene_id "ARFGEF2"; transcript_id "AK302526:uc010zyf.2";
+chr20 hg19_knownGene exon 47662838 47662960 0.000000 + . gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene CDS 47675001 47675085 0.000000 + 0 gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene exon 47674990 47675085 0.000000 + . gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene CDS 47679739 47679881 0.000000 + 2 gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene exon 47679739 47679881 0.000000 + . gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene CDS 47682729 47682830 0.000000 + 0 gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene exon 47682729 47682830 0.000000 + . gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene CDS 47682902 47683047 0.000000 + 0 gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene exon 47682902 47683047 0.000000 + . gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene CDS 47683727 47683817 0.000000 + 1 gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene exon 47683727 47683817 0.000000 + . gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene CDS 47685252 47685359 0.000000 + 0 gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene exon 47685252 47685359 0.000000 + . gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene CDS 47686742 47686834 0.000000 + 0 gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene exon 47686742 47686834 0.000000 + . gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene CDS 47688823 47688990 0.000000 + 0 gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene exon 47688823 47688990 0.000000 + . gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene CDS 47689105 47689234 0.000000 + 0 gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene exon 47689105 47689234 0.000000 + . gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene CDS 47691322 47691387 0.000000 + 2 gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene exon 47691322 47691387 0.000000 + . gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene CDS 47691855 47692057 0.000000 + 2 gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene exon 47691855 47692057 0.000000 + . gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene CDS 47693517 47693601 0.000000 + 0 gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene exon 47693517 47693601 0.000000 + . gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene CDS 47695098 47695159 0.000000 + 2 gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene exon 47695098 47695159 0.000000 + . gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene CDS 47700563 47700699 0.000000 + 0 gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene exon 47700563 47700699 0.000000 + . gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene CDS 47701820 47701923 0.000000 + 1 gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene exon 47701820 47701923 0.000000 + . gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene CDS 47704546 47704643 0.000000 + 2 gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene exon 47704546 47704643 0.000000 + . gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene CDS 47705784 47705934 0.000000 + 0 gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene exon 47705784 47705934 0.000000 + . gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene CDS 47706075 47706283 0.000000 + 2 gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene exon 47706075 47706283 0.000000 + . gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene CDS 47707279 47707376 0.000000 + 0 gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene exon 47707279 47707376 0.000000 + . gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene CDS 47707474 47707559 0.000000 + 1 gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene exon 47707474 47707559 0.000000 + . gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene CDS 47708583 47708664 0.000000 + 2 gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene exon 47708583 47708664 0.000000 + . gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene CDS 47710677 47710823 0.000000 + 1 gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene exon 47710677 47710823 0.000000 + . gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene CDS 47711269 47711500 0.000000 + 1 gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene exon 47711269 47711500 0.000000 + . gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene CDS 47712886 47712972 0.000000 + 0 gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene exon 47712886 47713486 0.000000 + . gene_id "CSE1L"; transcript_id "NM_001316:uc002xty.3";
+chr20 hg19_knownGene exon 47662838 47662960 0.000000 + . gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene exon 47674990 47675085 0.000000 + . gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene CDS 47679820 47679830 0.000000 + 0 gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene exon 47679739 47679830 0.000000 + . gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene CDS 47685347 47685359 0.000000 + 1 gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene exon 47685347 47685359 0.000000 + . gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene CDS 47686742 47686834 0.000000 + 0 gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene exon 47686742 47686834 0.000000 + . gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene CDS 47688823 47688990 0.000000 + 0 gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene exon 47688823 47688990 0.000000 + . gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene CDS 47689105 47689234 0.000000 + 0 gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene exon 47689105 47689234 0.000000 + . gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene CDS 47691322 47691387 0.000000 + 2 gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene exon 47691322 47691387 0.000000 + . gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene CDS 47691855 47692057 0.000000 + 2 gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene exon 47691855 47692057 0.000000 + . gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene CDS 47693517 47693601 0.000000 + 0 gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene exon 47693517 47693601 0.000000 + . gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene CDS 47695098 47695159 0.000000 + 2 gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene exon 47695098 47695159 0.000000 + . gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene CDS 47700563 47700699 0.000000 + 0 gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene exon 47700563 47700699 0.000000 + . gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene CDS 47701820 47701923 0.000000 + 1 gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene exon 47701820 47701923 0.000000 + . gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene CDS 47704546 47704643 0.000000 + 2 gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene exon 47704546 47704643 0.000000 + . gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene CDS 47705784 47705934 0.000000 + 0 gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene exon 47705784 47705934 0.000000 + . gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene CDS 47706075 47706283 0.000000 + 2 gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene exon 47706075 47706283 0.000000 + . gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene CDS 47707279 47707376 0.000000 + 0 gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene exon 47707279 47707376 0.000000 + . gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene CDS 47707474 47707559 0.000000 + 1 gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene exon 47707474 47707559 0.000000 + . gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene CDS 47708583 47708664 0.000000 + 2 gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene exon 47708583 47708664 0.000000 + . gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene CDS 47710677 47710823 0.000000 + 1 gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene exon 47710677 47710823 0.000000 + . gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene CDS 47711269 47711500 0.000000 + 1 gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene exon 47711269 47711500 0.000000 + . gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene CDS 47712886 47712972 0.000000 + 0 gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene exon 47712886 47713486 0.000000 + . gene_id "CSE1L"; transcript_id "AK300589:uc010zyg.2";
+chr20 hg19_knownGene CDS 47675001 47675085 0.000000 + 0 gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene exon 47674990 47675085 0.000000 + . gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene CDS 47679739 47679881 0.000000 + 2 gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene exon 47679739 47679881 0.000000 + . gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene CDS 47682729 47682830 0.000000 + 0 gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene exon 47682729 47682830 0.000000 + . gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene CDS 47682902 47683047 0.000000 + 0 gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene exon 47682902 47683047 0.000000 + . gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene CDS 47683727 47683817 0.000000 + 1 gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene exon 47683727 47683817 0.000000 + . gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene CDS 47685252 47685359 0.000000 + 0 gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene exon 47685252 47685359 0.000000 + . gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene CDS 47686742 47686834 0.000000 + 0 gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene exon 47686742 47686834 0.000000 + . gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene CDS 47689105 47689234 0.000000 + 0 gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene exon 47689105 47689234 0.000000 + . gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene CDS 47691322 47691387 0.000000 + 2 gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene exon 47691322 47691387 0.000000 + . gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene CDS 47691855 47692057 0.000000 + 2 gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene exon 47691855 47692057 0.000000 + . gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene CDS 47693517 47693601 0.000000 + 0 gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene exon 47693517 47693601 0.000000 + . gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene CDS 47695098 47695159 0.000000 + 2 gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene exon 47695098 47695159 0.000000 + . gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene CDS 47700563 47700699 0.000000 + 0 gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene exon 47700563 47700699 0.000000 + . gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene CDS 47701820 47701923 0.000000 + 1 gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene exon 47701820 47701923 0.000000 + . gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene CDS 47704546 47704643 0.000000 + 2 gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene exon 47704546 47704643 0.000000 + . gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene CDS 47705784 47705934 0.000000 + 0 gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene exon 47705784 47705934 0.000000 + . gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene CDS 47706075 47706283 0.000000 + 2 gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene exon 47706075 47706283 0.000000 + . gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene CDS 47707279 47707376 0.000000 + 0 gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene exon 47707279 47707376 0.000000 + . gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene CDS 47707474 47707559 0.000000 + 1 gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene exon 47707474 47707559 0.000000 + . gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene CDS 47708583 47708664 0.000000 + 2 gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene exon 47708583 47708664 0.000000 + . gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene CDS 47710677 47710823 0.000000 + 1 gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene exon 47710677 47710823 0.000000 + . gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene CDS 47711269 47711500 0.000000 + 1 gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene exon 47711269 47711500 0.000000 + . gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene CDS 47712886 47712972 0.000000 + 0 gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene exon 47712886 47713486 0.000000 + . gene_id "CSE1L"; transcript_id "EF426455:uc010ghx.3";
+chr20 hg19_knownGene exon 47688823 47688990 0.000000 + . gene_id "CSE1L"; transcript_id "AK225610:uc010ghy.3";
+chr20 hg19_knownGene CDS 47689222 47689234 0.000000 + 0 gene_id "CSE1L"; transcript_id "AK225610:uc010ghy.3";
+chr20 hg19_knownGene exon 47689105 47689234 0.000000 + . gene_id "CSE1L"; transcript_id "AK225610:uc010ghy.3";
+chr20 hg19_knownGene CDS 47691322 47691387 0.000000 + 2 gene_id "CSE1L"; transcript_id "AK225610:uc010ghy.3";
+chr20 hg19_knownGene exon 47691322 47691387 0.000000 + . gene_id "CSE1L"; transcript_id "AK225610:uc010ghy.3";
+chr20 hg19_knownGene CDS 47691855 47692057 0.000000 + 2 gene_id "CSE1L"; transcript_id "AK225610:uc010ghy.3";
+chr20 hg19_knownGene exon 47691855 47692057 0.000000 + . gene_id "CSE1L"; transcript_id "AK225610:uc010ghy.3";
+chr20 hg19_knownGene CDS 47693517 47693601 0.000000 + 0 gene_id "CSE1L"; transcript_id "AK225610:uc010ghy.3";
+chr20 hg19_knownGene exon 47693517 47693601 0.000000 + . gene_id "CSE1L"; transcript_id "AK225610:uc010ghy.3";
+chr20 hg19_knownGene CDS 47695098 47695159 0.000000 + 2 gene_id "CSE1L"; transcript_id "AK225610:uc010ghy.3";
+chr20 hg19_knownGene exon 47695098 47695159 0.000000 + . gene_id "CSE1L"; transcript_id "AK225610:uc010ghy.3";
+chr20 hg19_knownGene CDS 47700563 47700623 0.000000 + 0 gene_id "CSE1L"; transcript_id "AK225610:uc010ghy.3";
+chr20 hg19_knownGene exon 47700563 47700623 0.000000 + . gene_id "CSE1L"; transcript_id "AK225610:uc010ghy.3";
+chr20 hg19_knownGene CDS 47701828 47701923 0.000000 + 2 gene_id "CSE1L"; transcript_id "AK225610:uc010ghy.3";
+chr20 hg19_knownGene exon 47701828 47701923 0.000000 + . gene_id "CSE1L"; transcript_id "AK225610:uc010ghy.3";
+chr20 hg19_knownGene CDS 47704546 47704643 0.000000 + 2 gene_id "CSE1L"; transcript_id "AK225610:uc010ghy.3";
+chr20 hg19_knownGene exon 47704546 47704643 0.000000 + . gene_id "CSE1L"; transcript_id "AK225610:uc010ghy.3";
+chr20 hg19_knownGene CDS 47705784 47705934 0.000000 + 0 gene_id "CSE1L"; transcript_id "AK225610:uc010ghy.3";
+chr20 hg19_knownGene exon 47705784 47705934 0.000000 + . gene_id "CSE1L"; transcript_id "AK225610:uc010ghy.3";
+chr20 hg19_knownGene CDS 47706075 47706283 0.000000 + 2 gene_id "CSE1L"; transcript_id "AK225610:uc010ghy.3";
+chr20 hg19_knownGene exon 47706075 47706283 0.000000 + . gene_id "CSE1L"; transcript_id "AK225610:uc010ghy.3";
+chr20 hg19_knownGene CDS 47707279 47707376 0.000000 + 0 gene_id "CSE1L"; transcript_id "AK225610:uc010ghy.3";
+chr20 hg19_knownGene exon 47707279 47707376 0.000000 + . gene_id "CSE1L"; transcript_id "AK225610:uc010ghy.3";
+chr20 hg19_knownGene CDS 47707474 47707559 0.000000 + 1 gene_id "CSE1L"; transcript_id "AK225610:uc010ghy.3";
+chr20 hg19_knownGene exon 47707474 47707559 0.000000 + . gene_id "CSE1L"; transcript_id "AK225610:uc010ghy.3";
+chr20 hg19_knownGene CDS 47708583 47708664 0.000000 + 2 gene_id "CSE1L"; transcript_id "AK225610:uc010ghy.3";
+chr20 hg19_knownGene exon 47708583 47708664 0.000000 + . gene_id "CSE1L"; transcript_id "AK225610:uc010ghy.3";
+chr20 hg19_knownGene CDS 47710677 47710823 0.000000 + 1 gene_id "CSE1L"; transcript_id "AK225610:uc010ghy.3";
+chr20 hg19_knownGene exon 47710677 47710823 0.000000 + . gene_id "CSE1L"; transcript_id "AK225610:uc010ghy.3";
+chr20 hg19_knownGene CDS 47711269 47711500 0.000000 + 1 gene_id "CSE1L"; transcript_id "AK225610:uc010ghy.3";
+chr20 hg19_knownGene exon 47711269 47711500 0.000000 + . gene_id "CSE1L"; transcript_id "AK225610:uc010ghy.3";
+chr20 hg19_knownGene CDS 47712886 47712972 0.000000 + 0 gene_id "CSE1L"; transcript_id "AK225610:uc010ghy.3";
+chr20 hg19_knownGene exon 47712886 47713486 0.000000 + . gene_id "CSE1L"; transcript_id "AK225610:uc010ghy.3";
+chr20 hg19_knownGene CDS 47689222 47689234 0.000000 + 0 gene_id "CSE1L"; transcript_id "AK298477:uc010zyh.2";
+chr20 hg19_knownGene exon 47689105 47689234 0.000000 + . gene_id "CSE1L"; transcript_id "AK298477:uc010zyh.2";
+chr20 hg19_knownGene CDS 47691322 47691387 0.000000 + 2 gene_id "CSE1L"; transcript_id "AK298477:uc010zyh.2";
+chr20 hg19_knownGene exon 47691322 47691387 0.000000 + . gene_id "CSE1L"; transcript_id "AK298477:uc010zyh.2";
+chr20 hg19_knownGene CDS 47691855 47692057 0.000000 + 2 gene_id "CSE1L"; transcript_id "AK298477:uc010zyh.2";
+chr20 hg19_knownGene exon 47691855 47692057 0.000000 + . gene_id "CSE1L"; transcript_id "AK298477:uc010zyh.2";
+chr20 hg19_knownGene CDS 47693517 47693601 0.000000 + 0 gene_id "CSE1L"; transcript_id "AK298477:uc010zyh.2";
+chr20 hg19_knownGene exon 47693517 47693601 0.000000 + . gene_id "CSE1L"; transcript_id "AK298477:uc010zyh.2";
+chr20 hg19_knownGene CDS 47695098 47695159 0.000000 + 2 gene_id "CSE1L"; transcript_id "AK298477:uc010zyh.2";
+chr20 hg19_knownGene exon 47695098 47695159 0.000000 + . gene_id "CSE1L"; transcript_id "AK298477:uc010zyh.2";
+chr20 hg19_knownGene CDS 47700563 47700699 0.000000 + 0 gene_id "CSE1L"; transcript_id "AK298477:uc010zyh.2";
+chr20 hg19_knownGene exon 47700563 47700699 0.000000 + . gene_id "CSE1L"; transcript_id "AK298477:uc010zyh.2";
+chr20 hg19_knownGene CDS 47701820 47701923 0.000000 + 1 gene_id "CSE1L"; transcript_id "AK298477:uc010zyh.2";
+chr20 hg19_knownGene exon 47701820 47701923 0.000000 + . gene_id "CSE1L"; transcript_id "AK298477:uc010zyh.2";
+chr20 hg19_knownGene CDS 47704546 47704643 0.000000 + 2 gene_id "CSE1L"; transcript_id "AK298477:uc010zyh.2";
+chr20 hg19_knownGene exon 47704546 47704643 0.000000 + . gene_id "CSE1L"; transcript_id "AK298477:uc010zyh.2";
+chr20 hg19_knownGene CDS 47705784 47705934 0.000000 + 0 gene_id "CSE1L"; transcript_id "AK298477:uc010zyh.2";
+chr20 hg19_knownGene exon 47705784 47705934 0.000000 + . gene_id "CSE1L"; transcript_id "AK298477:uc010zyh.2";
+chr20 hg19_knownGene CDS 47706075 47706283 0.000000 + 2 gene_id "CSE1L"; transcript_id "AK298477:uc010zyh.2";
+chr20 hg19_knownGene exon 47706075 47706283 0.000000 + . gene_id "CSE1L"; transcript_id "AK298477:uc010zyh.2";
+chr20 hg19_knownGene CDS 47707279 47707376 0.000000 + 0 gene_id "CSE1L"; transcript_id "AK298477:uc010zyh.2";
+chr20 hg19_knownGene exon 47707279 47707376 0.000000 + . gene_id "CSE1L"; transcript_id "AK298477:uc010zyh.2";
+chr20 hg19_knownGene CDS 47707474 47707559 0.000000 + 1 gene_id "CSE1L"; transcript_id "AK298477:uc010zyh.2";
+chr20 hg19_knownGene exon 47707474 47707559 0.000000 + . gene_id "CSE1L"; transcript_id "AK298477:uc010zyh.2";
+chr20 hg19_knownGene CDS 47708583 47708664 0.000000 + 2 gene_id "CSE1L"; transcript_id "AK298477:uc010zyh.2";
+chr20 hg19_knownGene exon 47708583 47708664 0.000000 + . gene_id "CSE1L"; transcript_id "AK298477:uc010zyh.2";
+chr20 hg19_knownGene CDS 47710677 47710823 0.000000 + 1 gene_id "CSE1L"; transcript_id "AK298477:uc010zyh.2";
+chr20 hg19_knownGene exon 47710677 47710823 0.000000 + . gene_id "CSE1L"; transcript_id "AK298477:uc010zyh.2";
+chr20 hg19_knownGene CDS 47711269 47711500 0.000000 + 1 gene_id "CSE1L"; transcript_id "AK298477:uc010zyh.2";
+chr20 hg19_knownGene exon 47711269 47711500 0.000000 + . gene_id "CSE1L"; transcript_id "AK298477:uc010zyh.2";
+chr20 hg19_knownGene CDS 47712713 47712721 0.000000 + 0 gene_id "CSE1L"; transcript_id "AK298477:uc010zyh.2";
+chr20 hg19_knownGene exon 47712713 47712737 0.000000 + . gene_id "CSE1L"; transcript_id "AK298477:uc010zyh.2";
+chr20 hg19_knownGene exon 47712886 47713486 0.000000 + . gene_id "CSE1L"; transcript_id "AK298477:uc010zyh.2";
+chr20 hg19_knownGene CDS 47731418 47731430 0.000000 - 1 gene_id "STAU1"; transcript_id "NM_004602:uc002xua.3";
+chr20 hg19_knownGene exon 47729876 47731430 0.000000 - . gene_id "STAU1"; transcript_id "NM_004602:uc002xua.3";
+chr20 hg19_knownGene CDS 47732319 47732404 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_004602:uc002xua.3";
+chr20 hg19_knownGene exon 47732319 47732404 0.000000 - . gene_id "STAU1"; transcript_id "NM_004602:uc002xua.3";
+chr20 hg19_knownGene CDS 47733663 47733785 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_004602:uc002xua.3";
+chr20 hg19_knownGene exon 47733663 47733785 0.000000 - . gene_id "STAU1"; transcript_id "NM_004602:uc002xua.3";
+chr20 hg19_knownGene CDS 47734314 47734633 0.000000 - 2 gene_id "STAU1"; transcript_id "NM_004602:uc002xua.3";
+chr20 hg19_knownGene exon 47734314 47734633 0.000000 - . gene_id "STAU1"; transcript_id "NM_004602:uc002xua.3";
+chr20 hg19_knownGene CDS 47734870 47734945 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_004602:uc002xua.3";
+chr20 hg19_knownGene exon 47734870 47734945 0.000000 - . gene_id "STAU1"; transcript_id "NM_004602:uc002xua.3";
+chr20 hg19_knownGene CDS 47736519 47736665 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_004602:uc002xua.3";
+chr20 hg19_knownGene exon 47736519 47736665 0.000000 - . gene_id "STAU1"; transcript_id "NM_004602:uc002xua.3";
+chr20 hg19_knownGene CDS 47739629 47739772 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_004602:uc002xua.3";
+chr20 hg19_knownGene exon 47739629 47739772 0.000000 - . gene_id "STAU1"; transcript_id "NM_004602:uc002xua.3";
+chr20 hg19_knownGene CDS 47740912 47741124 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_004602:uc002xua.3";
+chr20 hg19_knownGene exon 47740912 47741124 0.000000 - . gene_id "STAU1"; transcript_id "NM_004602:uc002xua.3";
+chr20 hg19_knownGene CDS 47752370 47752468 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_004602:uc002xua.3";
+chr20 hg19_knownGene exon 47752370 47752468 0.000000 - . gene_id "STAU1"; transcript_id "NM_004602:uc002xua.3";
+chr20 hg19_knownGene CDS 47768119 47768284 0.000000 - 1 gene_id "STAU1"; transcript_id "NM_004602:uc002xua.3";
+chr20 hg19_knownGene exon 47768119 47768284 0.000000 - . gene_id "STAU1"; transcript_id "NM_004602:uc002xua.3";
+chr20 hg19_knownGene CDS 47770470 47770570 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_004602:uc002xua.3";
+chr20 hg19_knownGene exon 47770470 47770608 0.000000 - . gene_id "STAU1"; transcript_id "NM_004602:uc002xua.3";
+chr20 hg19_knownGene exon 47790732 47790806 0.000000 - . gene_id "STAU1"; transcript_id "NM_004602:uc002xua.3";
+chr20 hg19_knownGene exon 47795659 47795781 0.000000 - . gene_id "STAU1"; transcript_id "NM_004602:uc002xua.3";
+chr20 hg19_knownGene exon 47804653 47804904 0.000000 - . gene_id "STAU1"; transcript_id "NM_004602:uc002xua.3";
+chr20 hg19_knownGene CDS 47731418 47731430 0.000000 - 1 gene_id "STAU1"; transcript_id "NM_001037328:uc002xub.3";
+chr20 hg19_knownGene exon 47729876 47731430 0.000000 - . gene_id "STAU1"; transcript_id "NM_001037328:uc002xub.3";
+chr20 hg19_knownGene CDS 47732319 47732404 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_001037328:uc002xub.3";
+chr20 hg19_knownGene exon 47732319 47732404 0.000000 - . gene_id "STAU1"; transcript_id "NM_001037328:uc002xub.3";
+chr20 hg19_knownGene CDS 47733663 47733785 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_001037328:uc002xub.3";
+chr20 hg19_knownGene exon 47733663 47733785 0.000000 - . gene_id "STAU1"; transcript_id "NM_001037328:uc002xub.3";
+chr20 hg19_knownGene CDS 47734314 47734633 0.000000 - 2 gene_id "STAU1"; transcript_id "NM_001037328:uc002xub.3";
+chr20 hg19_knownGene exon 47734314 47734633 0.000000 - . gene_id "STAU1"; transcript_id "NM_001037328:uc002xub.3";
+chr20 hg19_knownGene CDS 47734870 47734945 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_001037328:uc002xub.3";
+chr20 hg19_knownGene exon 47734870 47734945 0.000000 - . gene_id "STAU1"; transcript_id "NM_001037328:uc002xub.3";
+chr20 hg19_knownGene CDS 47736519 47736665 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_001037328:uc002xub.3";
+chr20 hg19_knownGene exon 47736519 47736665 0.000000 - . gene_id "STAU1"; transcript_id "NM_001037328:uc002xub.3";
+chr20 hg19_knownGene CDS 47739629 47739772 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_001037328:uc002xub.3";
+chr20 hg19_knownGene exon 47739629 47739772 0.000000 - . gene_id "STAU1"; transcript_id "NM_001037328:uc002xub.3";
+chr20 hg19_knownGene CDS 47740912 47741142 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_001037328:uc002xub.3";
+chr20 hg19_knownGene exon 47740912 47741142 0.000000 - . gene_id "STAU1"; transcript_id "NM_001037328:uc002xub.3";
+chr20 hg19_knownGene CDS 47752370 47752468 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_001037328:uc002xub.3";
+chr20 hg19_knownGene exon 47752370 47752468 0.000000 - . gene_id "STAU1"; transcript_id "NM_001037328:uc002xub.3";
+chr20 hg19_knownGene CDS 47768119 47768284 0.000000 - 1 gene_id "STAU1"; transcript_id "NM_001037328:uc002xub.3";
+chr20 hg19_knownGene exon 47768119 47768284 0.000000 - . gene_id "STAU1"; transcript_id "NM_001037328:uc002xub.3";
+chr20 hg19_knownGene CDS 47770470 47770570 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_001037328:uc002xub.3";
+chr20 hg19_knownGene exon 47770470 47770608 0.000000 - . gene_id "STAU1"; transcript_id "NM_001037328:uc002xub.3";
+chr20 hg19_knownGene exon 47790732 47790806 0.000000 - . gene_id "STAU1"; transcript_id "NM_001037328:uc002xub.3";
+chr20 hg19_knownGene exon 47795659 47795781 0.000000 - . gene_id "STAU1"; transcript_id "NM_001037328:uc002xub.3";
+chr20 hg19_knownGene exon 47804653 47804904 0.000000 - . gene_id "STAU1"; transcript_id "NM_001037328:uc002xub.3";
+chr20 hg19_knownGene CDS 47731418 47731430 0.000000 - 1 gene_id "STAU1"; transcript_id "NM_017453:uc002xud.3";
+chr20 hg19_knownGene exon 47729876 47731430 0.000000 - . gene_id "STAU1"; transcript_id "NM_017453:uc002xud.3";
+chr20 hg19_knownGene CDS 47732319 47732404 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_017453:uc002xud.3";
+chr20 hg19_knownGene exon 47732319 47732404 0.000000 - . gene_id "STAU1"; transcript_id "NM_017453:uc002xud.3";
+chr20 hg19_knownGene CDS 47733663 47733785 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_017453:uc002xud.3";
+chr20 hg19_knownGene exon 47733663 47733785 0.000000 - . gene_id "STAU1"; transcript_id "NM_017453:uc002xud.3";
+chr20 hg19_knownGene CDS 47734314 47734633 0.000000 - 2 gene_id "STAU1"; transcript_id "NM_017453:uc002xud.3";
+chr20 hg19_knownGene exon 47734314 47734633 0.000000 - . gene_id "STAU1"; transcript_id "NM_017453:uc002xud.3";
+chr20 hg19_knownGene CDS 47734870 47734945 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_017453:uc002xud.3";
+chr20 hg19_knownGene exon 47734870 47734945 0.000000 - . gene_id "STAU1"; transcript_id "NM_017453:uc002xud.3";
+chr20 hg19_knownGene CDS 47736519 47736665 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_017453:uc002xud.3";
+chr20 hg19_knownGene exon 47736519 47736665 0.000000 - . gene_id "STAU1"; transcript_id "NM_017453:uc002xud.3";
+chr20 hg19_knownGene CDS 47739629 47739772 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_017453:uc002xud.3";
+chr20 hg19_knownGene exon 47739629 47739772 0.000000 - . gene_id "STAU1"; transcript_id "NM_017453:uc002xud.3";
+chr20 hg19_knownGene CDS 47740912 47741124 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_017453:uc002xud.3";
+chr20 hg19_knownGene exon 47740912 47741124 0.000000 - . gene_id "STAU1"; transcript_id "NM_017453:uc002xud.3";
+chr20 hg19_knownGene CDS 47752370 47752468 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_017453:uc002xud.3";
+chr20 hg19_knownGene exon 47752370 47752468 0.000000 - . gene_id "STAU1"; transcript_id "NM_017453:uc002xud.3";
+chr20 hg19_knownGene CDS 47768119 47768284 0.000000 - 1 gene_id "STAU1"; transcript_id "NM_017453:uc002xud.3";
+chr20 hg19_knownGene exon 47768119 47768284 0.000000 - . gene_id "STAU1"; transcript_id "NM_017453:uc002xud.3";
+chr20 hg19_knownGene CDS 47770470 47770608 0.000000 - 2 gene_id "STAU1"; transcript_id "NM_017453:uc002xud.3";
+chr20 hg19_knownGene exon 47770470 47770608 0.000000 - . gene_id "STAU1"; transcript_id "NM_017453:uc002xud.3";
+chr20 hg19_knownGene CDS 47782534 47782738 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_017453:uc002xud.3";
+chr20 hg19_knownGene exon 47782534 47782822 0.000000 - . gene_id "STAU1"; transcript_id "NM_017453:uc002xud.3";
+chr20 hg19_knownGene exon 47790732 47790806 0.000000 - . gene_id "STAU1"; transcript_id "NM_017453:uc002xud.3";
+chr20 hg19_knownGene exon 47804653 47804904 0.000000 - . gene_id "STAU1"; transcript_id "NM_017453:uc002xud.3";
+chr20 hg19_knownGene CDS 47731418 47731430 0.000000 - 1 gene_id "STAU1"; transcript_id "NM_017452:uc002xuc.3";
+chr20 hg19_knownGene exon 47729876 47731430 0.000000 - . gene_id "STAU1"; transcript_id "NM_017452:uc002xuc.3";
+chr20 hg19_knownGene CDS 47732319 47732404 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_017452:uc002xuc.3";
+chr20 hg19_knownGene exon 47732319 47732404 0.000000 - . gene_id "STAU1"; transcript_id "NM_017452:uc002xuc.3";
+chr20 hg19_knownGene CDS 47733663 47733785 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_017452:uc002xuc.3";
+chr20 hg19_knownGene exon 47733663 47733785 0.000000 - . gene_id "STAU1"; transcript_id "NM_017452:uc002xuc.3";
+chr20 hg19_knownGene CDS 47734314 47734633 0.000000 - 2 gene_id "STAU1"; transcript_id "NM_017452:uc002xuc.3";
+chr20 hg19_knownGene exon 47734314 47734633 0.000000 - . gene_id "STAU1"; transcript_id "NM_017452:uc002xuc.3";
+chr20 hg19_knownGene CDS 47734870 47734945 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_017452:uc002xuc.3";
+chr20 hg19_knownGene exon 47734870 47734945 0.000000 - . gene_id "STAU1"; transcript_id "NM_017452:uc002xuc.3";
+chr20 hg19_knownGene CDS 47736519 47736665 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_017452:uc002xuc.3";
+chr20 hg19_knownGene exon 47736519 47736665 0.000000 - . gene_id "STAU1"; transcript_id "NM_017452:uc002xuc.3";
+chr20 hg19_knownGene CDS 47739629 47739772 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_017452:uc002xuc.3";
+chr20 hg19_knownGene exon 47739629 47739772 0.000000 - . gene_id "STAU1"; transcript_id "NM_017452:uc002xuc.3";
+chr20 hg19_knownGene CDS 47740912 47741124 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_017452:uc002xuc.3";
+chr20 hg19_knownGene exon 47740912 47741124 0.000000 - . gene_id "STAU1"; transcript_id "NM_017452:uc002xuc.3";
+chr20 hg19_knownGene CDS 47752370 47752468 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_017452:uc002xuc.3";
+chr20 hg19_knownGene exon 47752370 47752468 0.000000 - . gene_id "STAU1"; transcript_id "NM_017452:uc002xuc.3";
+chr20 hg19_knownGene CDS 47768119 47768284 0.000000 - 1 gene_id "STAU1"; transcript_id "NM_017452:uc002xuc.3";
+chr20 hg19_knownGene exon 47768119 47768284 0.000000 - . gene_id "STAU1"; transcript_id "NM_017452:uc002xuc.3";
+chr20 hg19_knownGene CDS 47770470 47770570 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_017452:uc002xuc.3";
+chr20 hg19_knownGene exon 47770470 47770608 0.000000 - . gene_id "STAU1"; transcript_id "NM_017452:uc002xuc.3";
+chr20 hg19_knownGene exon 47790732 47790806 0.000000 - . gene_id "STAU1"; transcript_id "NM_017452:uc002xuc.3";
+chr20 hg19_knownGene exon 47804653 47804904 0.000000 - . gene_id "STAU1"; transcript_id "NM_017452:uc002xuc.3";
+chr20 hg19_knownGene CDS 47731418 47731430 0.000000 - 1 gene_id "STAU1"; transcript_id "NM_017454:uc002xue.3";
+chr20 hg19_knownGene exon 47729876 47731430 0.000000 - . gene_id "STAU1"; transcript_id "NM_017454:uc002xue.3";
+chr20 hg19_knownGene CDS 47732319 47732404 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_017454:uc002xue.3";
+chr20 hg19_knownGene exon 47732319 47732404 0.000000 - . gene_id "STAU1"; transcript_id "NM_017454:uc002xue.3";
+chr20 hg19_knownGene CDS 47733663 47733785 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_017454:uc002xue.3";
+chr20 hg19_knownGene exon 47733663 47733785 0.000000 - . gene_id "STAU1"; transcript_id "NM_017454:uc002xue.3";
+chr20 hg19_knownGene CDS 47734314 47734633 0.000000 - 2 gene_id "STAU1"; transcript_id "NM_017454:uc002xue.3";
+chr20 hg19_knownGene exon 47734314 47734633 0.000000 - . gene_id "STAU1"; transcript_id "NM_017454:uc002xue.3";
+chr20 hg19_knownGene CDS 47734870 47734945 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_017454:uc002xue.3";
+chr20 hg19_knownGene exon 47734870 47734945 0.000000 - . gene_id "STAU1"; transcript_id "NM_017454:uc002xue.3";
+chr20 hg19_knownGene CDS 47736519 47736665 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_017454:uc002xue.3";
+chr20 hg19_knownGene exon 47736519 47736665 0.000000 - . gene_id "STAU1"; transcript_id "NM_017454:uc002xue.3";
+chr20 hg19_knownGene CDS 47739629 47739772 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_017454:uc002xue.3";
+chr20 hg19_knownGene exon 47739629 47739772 0.000000 - . gene_id "STAU1"; transcript_id "NM_017454:uc002xue.3";
+chr20 hg19_knownGene CDS 47740912 47741124 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_017454:uc002xue.3";
+chr20 hg19_knownGene exon 47740912 47741124 0.000000 - . gene_id "STAU1"; transcript_id "NM_017454:uc002xue.3";
+chr20 hg19_knownGene CDS 47752370 47752468 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_017454:uc002xue.3";
+chr20 hg19_knownGene exon 47752370 47752468 0.000000 - . gene_id "STAU1"; transcript_id "NM_017454:uc002xue.3";
+chr20 hg19_knownGene CDS 47768119 47768284 0.000000 - 1 gene_id "STAU1"; transcript_id "NM_017454:uc002xue.3";
+chr20 hg19_knownGene exon 47768119 47768284 0.000000 - . gene_id "STAU1"; transcript_id "NM_017454:uc002xue.3";
+chr20 hg19_knownGene CDS 47770470 47770570 0.000000 - 0 gene_id "STAU1"; transcript_id "NM_017454:uc002xue.3";
+chr20 hg19_knownGene exon 47770470 47770608 0.000000 - . gene_id "STAU1"; transcript_id "NM_017454:uc002xue.3";
+chr20 hg19_knownGene exon 47804653 47804904 0.000000 - . gene_id "STAU1"; transcript_id "NM_017454:uc002xue.3";
+chr20 hg19_knownGene CDS 47731418 47731430 0.000000 - 1 gene_id "STAU1"; transcript_id "AY546099:uc002xuf.3";
+chr20 hg19_knownGene exon 47729876 47731430 0.000000 - . gene_id "STAU1"; transcript_id "AY546099:uc002xuf.3";
+chr20 hg19_knownGene CDS 47732319 47732404 0.000000 - 0 gene_id "STAU1"; transcript_id "AY546099:uc002xuf.3";
+chr20 hg19_knownGene exon 47732319 47732404 0.000000 - . gene_id "STAU1"; transcript_id "AY546099:uc002xuf.3";
+chr20 hg19_knownGene CDS 47733663 47733785 0.000000 - 0 gene_id "STAU1"; transcript_id "AY546099:uc002xuf.3";
+chr20 hg19_knownGene exon 47733663 47733785 0.000000 - . gene_id "STAU1"; transcript_id "AY546099:uc002xuf.3";
+chr20 hg19_knownGene CDS 47734314 47734633 0.000000 - 2 gene_id "STAU1"; transcript_id "AY546099:uc002xuf.3";
+chr20 hg19_knownGene exon 47734314 47734633 0.000000 - . gene_id "STAU1"; transcript_id "AY546099:uc002xuf.3";
+chr20 hg19_knownGene CDS 47734870 47734945 0.000000 - 0 gene_id "STAU1"; transcript_id "AY546099:uc002xuf.3";
+chr20 hg19_knownGene exon 47734870 47734945 0.000000 - . gene_id "STAU1"; transcript_id "AY546099:uc002xuf.3";
+chr20 hg19_knownGene CDS 47736519 47736665 0.000000 - 0 gene_id "STAU1"; transcript_id "AY546099:uc002xuf.3";
+chr20 hg19_knownGene exon 47736519 47736665 0.000000 - . gene_id "STAU1"; transcript_id "AY546099:uc002xuf.3";
+chr20 hg19_knownGene CDS 47739629 47739772 0.000000 - 0 gene_id "STAU1"; transcript_id "AY546099:uc002xuf.3";
+chr20 hg19_knownGene exon 47739629 47739772 0.000000 - . gene_id "STAU1"; transcript_id "AY546099:uc002xuf.3";
+chr20 hg19_knownGene CDS 47740912 47741142 0.000000 - 0 gene_id "STAU1"; transcript_id "AY546099:uc002xuf.3";
+chr20 hg19_knownGene exon 47740912 47741142 0.000000 - . gene_id "STAU1"; transcript_id "AY546099:uc002xuf.3";
+chr20 hg19_knownGene CDS 47752370 47752468 0.000000 - 0 gene_id "STAU1"; transcript_id "AY546099:uc002xuf.3";
+chr20 hg19_knownGene exon 47752370 47752468 0.000000 - . gene_id "STAU1"; transcript_id "AY546099:uc002xuf.3";
+chr20 hg19_knownGene CDS 47768119 47768284 0.000000 - 1 gene_id "STAU1"; transcript_id "AY546099:uc002xuf.3";
+chr20 hg19_knownGene exon 47768119 47768284 0.000000 - . gene_id "STAU1"; transcript_id "AY546099:uc002xuf.3";
+chr20 hg19_knownGene CDS 47770470 47770570 0.000000 - 0 gene_id "STAU1"; transcript_id "AY546099:uc002xuf.3";
+chr20 hg19_knownGene exon 47770470 47770608 0.000000 - . gene_id "STAU1"; transcript_id "AY546099:uc002xuf.3";
+chr20 hg19_knownGene exon 47790732 47790806 0.000000 - . gene_id "STAU1"; transcript_id "AY546099:uc002xuf.3";
+chr20 hg19_knownGene exon 47804653 47804904 0.000000 - . gene_id "STAU1"; transcript_id "AY546099:uc002xuf.3";
+chr20 hg19_knownGene CDS 47731418 47731430 0.000000 - 1 gene_id "STAU1"; transcript_id "AB209561:uc002xug.3";
+chr20 hg19_knownGene exon 47729876 47731430 0.000000 - . gene_id "STAU1"; transcript_id "AB209561:uc002xug.3";
+chr20 hg19_knownGene CDS 47732319 47732404 0.000000 - 0 gene_id "STAU1"; transcript_id "AB209561:uc002xug.3";
+chr20 hg19_knownGene exon 47732319 47732404 0.000000 - . gene_id "STAU1"; transcript_id "AB209561:uc002xug.3";
+chr20 hg19_knownGene CDS 47733663 47733785 0.000000 - 0 gene_id "STAU1"; transcript_id "AB209561:uc002xug.3";
+chr20 hg19_knownGene exon 47733663 47733785 0.000000 - . gene_id "STAU1"; transcript_id "AB209561:uc002xug.3";
+chr20 hg19_knownGene CDS 47734314 47734633 0.000000 - 2 gene_id "STAU1"; transcript_id "AB209561:uc002xug.3";
+chr20 hg19_knownGene exon 47734314 47734633 0.000000 - . gene_id "STAU1"; transcript_id "AB209561:uc002xug.3";
+chr20 hg19_knownGene CDS 47734870 47734945 0.000000 - 0 gene_id "STAU1"; transcript_id "AB209561:uc002xug.3";
+chr20 hg19_knownGene exon 47734870 47734945 0.000000 - . gene_id "STAU1"; transcript_id "AB209561:uc002xug.3";
+chr20 hg19_knownGene CDS 47736519 47736665 0.000000 - 0 gene_id "STAU1"; transcript_id "AB209561:uc002xug.3";
+chr20 hg19_knownGene exon 47736519 47736665 0.000000 - . gene_id "STAU1"; transcript_id "AB209561:uc002xug.3";
+chr20 hg19_knownGene CDS 47739629 47739772 0.000000 - 0 gene_id "STAU1"; transcript_id "AB209561:uc002xug.3";
+chr20 hg19_knownGene exon 47739629 47739772 0.000000 - . gene_id "STAU1"; transcript_id "AB209561:uc002xug.3";
+chr20 hg19_knownGene CDS 47740912 47741124 0.000000 - 0 gene_id "STAU1"; transcript_id "AB209561:uc002xug.3";
+chr20 hg19_knownGene exon 47740912 47741124 0.000000 - . gene_id "STAU1"; transcript_id "AB209561:uc002xug.3";
+chr20 hg19_knownGene CDS 47752370 47752468 0.000000 - 0 gene_id "STAU1"; transcript_id "AB209561:uc002xug.3";
+chr20 hg19_knownGene exon 47752370 47752468 0.000000 - . gene_id "STAU1"; transcript_id "AB209561:uc002xug.3";
+chr20 hg19_knownGene CDS 47768119 47768284 0.000000 - 1 gene_id "STAU1"; transcript_id "AB209561:uc002xug.3";
+chr20 hg19_knownGene exon 47768119 47768284 0.000000 - . gene_id "STAU1"; transcript_id "AB209561:uc002xug.3";
+chr20 hg19_knownGene CDS 47770470 47770608 0.000000 - 2 gene_id "STAU1"; transcript_id "AB209561:uc002xug.3";
+chr20 hg19_knownGene exon 47770470 47770608 0.000000 - . gene_id "STAU1"; transcript_id "AB209561:uc002xug.3";
+chr20 hg19_knownGene CDS 47782534 47782738 0.000000 - 0 gene_id "STAU1"; transcript_id "AB209561:uc002xug.3";
+chr20 hg19_knownGene exon 47782534 47782822 0.000000 - . gene_id "STAU1"; transcript_id "AB209561:uc002xug.3";
+chr20 hg19_knownGene exon 47790732 47790806 0.000000 - . gene_id "STAU1"; transcript_id "AB209561:uc002xug.3";
+chr20 hg19_knownGene exon 47805183 47805288 0.000000 - . gene_id "STAU1"; transcript_id "AB209561:uc002xug.3";
+chr20 hg19_knownGene CDS 47835893 47836078 0.000000 + 0 gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene exon 47835832 47836078 0.000000 + . gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene CDS 47837989 47838135 0.000000 + 0 gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene exon 47837989 47838135 0.000000 + . gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene CDS 47839494 47839553 0.000000 + 0 gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene exon 47839494 47839553 0.000000 + . gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene CDS 47839805 47839970 0.000000 + 0 gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene exon 47839805 47839970 0.000000 + . gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene CDS 47841482 47841528 0.000000 + 2 gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene exon 47841482 47841528 0.000000 + . gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene CDS 47841650 47841736 0.000000 + 0 gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene exon 47841650 47841736 0.000000 + . gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene CDS 47842967 47843072 0.000000 + 0 gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene exon 47842967 47843072 0.000000 + . gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene CDS 47845252 47845425 0.000000 + 2 gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene exon 47845252 47845425 0.000000 + . gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene CDS 47846736 47846886 0.000000 + 2 gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene exon 47846736 47846886 0.000000 + . gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene CDS 47849843 47849942 0.000000 + 1 gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene exon 47849843 47849942 0.000000 + . gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene CDS 47850105 47850246 0.000000 + 0 gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene exon 47850105 47850246 0.000000 + . gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene CDS 47851472 47851625 0.000000 + 2 gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene exon 47851472 47851625 0.000000 + . gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene CDS 47852687 47852768 0.000000 + 1 gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene exon 47852687 47852768 0.000000 + . gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene CDS 47852870 47853047 0.000000 + 0 gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene exon 47852870 47853047 0.000000 + . gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene CDS 47855486 47855592 0.000000 + 2 gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene exon 47855486 47855592 0.000000 + . gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene CDS 47855773 47855875 0.000000 + 0 gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene exon 47855773 47855875 0.000000 + . gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene CDS 47858430 47858524 0.000000 + 2 gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene exon 47858430 47858524 0.000000 + . gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene CDS 47858620 47858743 0.000000 + 0 gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene exon 47858620 47858743 0.000000 + . gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene CDS 47859131 47859218 0.000000 + 2 gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene exon 47859131 47859218 0.000000 + . gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene CDS 47860166 47860240 0.000000 + 1 gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene exon 47860166 47860240 0.000000 + . gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene CDS 47860353 47860368 0.000000 + 1 gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene exon 47860353 47860614 0.000000 + . gene_id "DDX27"; transcript_id "NM_017895:uc002xuh.3";
+chr20 hg19_knownGene CDS 47863807 47866248 0.000000 - 0 gene_id "ZNFX1"; transcript_id "NM_021035:uc002xui.3";
+chr20 hg19_knownGene exon 47862439 47866248 0.000000 - . gene_id "ZNFX1"; transcript_id "NM_021035:uc002xui.3";
+chr20 hg19_knownGene CDS 47868064 47868159 0.000000 - 0 gene_id "ZNFX1"; transcript_id "NM_021035:uc002xui.3";
+chr20 hg19_knownGene exon 47868064 47868159 0.000000 - . gene_id "ZNFX1"; transcript_id "NM_021035:uc002xui.3";
+chr20 hg19_knownGene CDS 47869257 47869367 0.000000 - 0 gene_id "ZNFX1"; transcript_id "NM_021035:uc002xui.3";
+chr20 hg19_knownGene exon 47869257 47869367 0.000000 - . gene_id "ZNFX1"; transcript_id "NM_021035:uc002xui.3";
+chr20 hg19_knownGene CDS 47870203 47870348 0.000000 - 2 gene_id "ZNFX1"; transcript_id "NM_021035:uc002xui.3";
+chr20 hg19_knownGene exon 47870203 47870348 0.000000 - . gene_id "ZNFX1"; transcript_id "NM_021035:uc002xui.3";
+chr20 hg19_knownGene CDS 47871032 47871186 0.000000 - 1 gene_id "ZNFX1"; transcript_id "NM_021035:uc002xui.3";
+chr20 hg19_knownGene exon 47871032 47871186 0.000000 - . gene_id "ZNFX1"; transcript_id "NM_021035:uc002xui.3";
+chr20 hg19_knownGene CDS 47872345 47872484 0.000000 - 0 gene_id "ZNFX1"; transcript_id "NM_021035:uc002xui.3";
+chr20 hg19_knownGene exon 47872345 47872484 0.000000 - . gene_id "ZNFX1"; transcript_id "NM_021035:uc002xui.3";
+chr20 hg19_knownGene CDS 47873954 47874201 0.000000 - 2 gene_id "ZNFX1"; transcript_id "NM_021035:uc002xui.3";
+chr20 hg19_knownGene exon 47873954 47874201 0.000000 - . gene_id "ZNFX1"; transcript_id "NM_021035:uc002xui.3";
+chr20 hg19_knownGene CDS 47877000 47877114 0.000000 - 0 gene_id "ZNFX1"; transcript_id "NM_021035:uc002xui.3";
+chr20 hg19_knownGene exon 47877000 47877114 0.000000 - . gene_id "ZNFX1"; transcript_id "NM_021035:uc002xui.3";
+chr20 hg19_knownGene CDS 47879871 47880020 0.000000 - 0 gene_id "ZNFX1"; transcript_id "NM_021035:uc002xui.3";
+chr20 hg19_knownGene exon 47879871 47880020 0.000000 - . gene_id "ZNFX1"; transcript_id "NM_021035:uc002xui.3";
+chr20 hg19_knownGene CDS 47881253 47881401 0.000000 - 2 gene_id "ZNFX1"; transcript_id "NM_021035:uc002xui.3";
+chr20 hg19_knownGene exon 47881253 47881401 0.000000 - . gene_id "ZNFX1"; transcript_id "NM_021035:uc002xui.3";
+chr20 hg19_knownGene CDS 47882672 47882803 0.000000 - 2 gene_id "ZNFX1"; transcript_id "NM_021035:uc002xui.3";
+chr20 hg19_knownGene exon 47882672 47882803 0.000000 - . gene_id "ZNFX1"; transcript_id "NM_021035:uc002xui.3";
+chr20 hg19_knownGene CDS 47886479 47888287 0.000000 - 2 gene_id "ZNFX1"; transcript_id "NM_021035:uc002xui.3";
+chr20 hg19_knownGene exon 47886479 47888287 0.000000 - . gene_id "ZNFX1"; transcript_id "NM_021035:uc002xui.3";
+chr20 hg19_knownGene CDS 47892316 47892376 0.000000 - 0 gene_id "ZNFX1"; transcript_id "NM_021035:uc002xui.3";
+chr20 hg19_knownGene exon 47892316 47892424 0.000000 - . gene_id "ZNFX1"; transcript_id "NM_021035:uc002xui.3";
+chr20 hg19_knownGene exon 47894558 47894756 0.000000 - . gene_id "ZNFX1"; transcript_id "NM_021035:uc002xui.3";
+chr20 hg19_knownGene exon 47895482 47895560 0.000000 + . gene_id "SNORD12C"; transcript_id "NR_002433:uc010ghz.3";
+chr20 hg19_knownGene exon 47896850 47896952 0.000000 + . gene_id "SNORD12B"; transcript_id "NR_003695:uc010gia.1";
+chr20 hg19_knownGene exon 47897220 47897309 0.000000 + . gene_id "SNORD12"; transcript_id "NR_003030:uc002xup.1";
+chr20 hg19_knownGene exon 47894715 47895253 0.000000 + . gene_id "ZNFX1-AS1"; transcript_id "NR_003604:uc002xul.4";
+chr20 hg19_knownGene exon 47895641 47895745 0.000000 + . gene_id "ZNFX1-AS1"; transcript_id "NR_003604:uc002xul.4";
+chr20 hg19_knownGene exon 47897022 47897107 0.000000 + . gene_id "ZNFX1-AS1"; transcript_id "NR_003604:uc002xul.4";
+chr20 hg19_knownGene exon 47897440 47897501 0.000000 + . gene_id "ZNFX1-AS1"; transcript_id "NR_003604:uc002xul.4";
+chr20 hg19_knownGene exon 47905582 47905795 0.000000 + . gene_id "ZNFX1-AS1"; transcript_id "NR_003604:uc002xul.4";
+chr20 hg19_knownGene exon 47894715 47894934 0.000000 + . gene_id "ZNFX1-AS1"; transcript_id "NR_003605:uc002xuj.3";
+chr20 hg19_knownGene exon 47895641 47895745 0.000000 + . gene_id "ZNFX1-AS1"; transcript_id "NR_003605:uc002xuj.3";
+chr20 hg19_knownGene exon 47897022 47897107 0.000000 + . gene_id "ZNFX1-AS1"; transcript_id "NR_003605:uc002xuj.3";
+chr20 hg19_knownGene exon 47897440 47897501 0.000000 + . gene_id "ZNFX1-AS1"; transcript_id "NR_003605:uc002xuj.3";
+chr20 hg19_knownGene exon 47905582 47905795 0.000000 + . gene_id "ZNFX1-AS1"; transcript_id "NR_003605:uc002xuj.3";
+chr20 hg19_knownGene exon 47894715 47895253 0.000000 + . gene_id "ZNFX1-AS1"; transcript_id "NR_036658:uc002xum.4";
+chr20 hg19_knownGene exon 47895641 47895745 0.000000 + . gene_id "ZNFX1-AS1"; transcript_id "NR_036658:uc002xum.4";
+chr20 hg19_knownGene exon 47897022 47897107 0.000000 + . gene_id "ZNFX1-AS1"; transcript_id "NR_036658:uc002xum.4";
+chr20 hg19_knownGene exon 47905582 47905795 0.000000 + . gene_id "ZNFX1-AS1"; transcript_id "NR_036658:uc002xum.4";
+chr20 hg19_knownGene exon 47894715 47895253 0.000000 + . gene_id "ZNFX1-AS1"; transcript_id "NR_003606:uc002xun.4";
+chr20 hg19_knownGene exon 47895641 47895745 0.000000 + . gene_id "ZNFX1-AS1"; transcript_id "NR_003606:uc002xun.4";
+chr20 hg19_knownGene exon 47905582 47905795 0.000000 + . gene_id "ZNFX1-AS1"; transcript_id "NR_003606:uc002xun.4";
+chr20 hg19_knownGene exon 47895179 47895275 0.000000 + . gene_id "ZNFX1-AS1"; transcript_id "NR_036659:uc002xuo.3";
+chr20 hg19_knownGene exon 47895641 47895745 0.000000 + . gene_id "ZNFX1-AS1"; transcript_id "NR_036659:uc002xuo.3";
+chr20 hg19_knownGene exon 47897022 47897107 0.000000 + . gene_id "ZNFX1-AS1"; transcript_id "NR_036659:uc002xuo.3";
+chr20 hg19_knownGene exon 47905582 47905795 0.000000 + . gene_id "ZNFX1-AS1"; transcript_id "NR_036659:uc002xuo.3";
+chr20 hg19_knownGene exon 47980423 47983826 0.000000 - . gene_id "AK055386"; transcript_id "AK055386:uc002xuq.1";
+chr20 hg19_knownGene CDS 47989523 47991529 0.000000 - 0 gene_id "KCNB1"; transcript_id "NM_004975:uc002xur.1";
+chr20 hg19_knownGene exon 47988505 47991529 0.000000 - . gene_id "KCNB1"; transcript_id "NM_004975:uc002xur.1";
+chr20 hg19_knownGene CDS 48098451 48099017 0.000000 - 0 gene_id "KCNB1"; transcript_id "NM_004975:uc002xur.1";
+chr20 hg19_knownGene exon 48098451 48099183 0.000000 - . gene_id "KCNB1"; transcript_id "NM_004975:uc002xur.1";
+chr20 hg19_knownGene CDS 47989523 47991529 0.000000 - 0 gene_id "KCNB1"; transcript_id "L02840:uc002xus.1";
+chr20 hg19_knownGene exon 47988505 47991529 0.000000 - . gene_id "KCNB1"; transcript_id "L02840:uc002xus.1";
+chr20 hg19_knownGene CDS 48098451 48099017 0.000000 - 0 gene_id "KCNB1"; transcript_id "L02840:uc002xus.1";
+chr20 hg19_knownGene exon 48098451 48099183 0.000000 - . gene_id "KCNB1"; transcript_id "L02840:uc002xus.1";
+chr20 hg19_knownGene exon 48100479 48100490 0.000000 - . gene_id "KCNB1"; transcript_id "L02840:uc002xus.1";
+chr20 hg19_knownGene CDS 48124460 48124601 0.000000 - 1 gene_id "PTGIS"; transcript_id "NM_000961:uc002xut.3";
+chr20 hg19_knownGene exon 48120411 48124601 0.000000 - . gene_id "PTGIS"; transcript_id "NM_000961:uc002xut.3";
+chr20 hg19_knownGene CDS 48127565 48127716 0.000000 - 0 gene_id "PTGIS"; transcript_id "NM_000961:uc002xut.3";
+chr20 hg19_knownGene exon 48127565 48127716 0.000000 - . gene_id "PTGIS"; transcript_id "NM_000961:uc002xut.3";
+chr20 hg19_knownGene CDS 48129617 48129798 0.000000 - 2 gene_id "PTGIS"; transcript_id "NM_000961:uc002xut.3";
+chr20 hg19_knownGene exon 48129617 48129798 0.000000 - . gene_id "PTGIS"; transcript_id "NM_000961:uc002xut.3";
+chr20 hg19_knownGene CDS 48130764 48130932 0.000000 - 0 gene_id "PTGIS"; transcript_id "NM_000961:uc002xut.3";
+chr20 hg19_knownGene exon 48130764 48130932 0.000000 - . gene_id "PTGIS"; transcript_id "NM_000961:uc002xut.3";
+chr20 hg19_knownGene CDS 48140595 48140776 0.000000 - 2 gene_id "PTGIS"; transcript_id "NM_000961:uc002xut.3";
+chr20 hg19_knownGene exon 48140595 48140776 0.000000 - . gene_id "PTGIS"; transcript_id "NM_000961:uc002xut.3";
+chr20 hg19_knownGene CDS 48156107 48156258 0.000000 - 1 gene_id "PTGIS"; transcript_id "NM_000961:uc002xut.3";
+chr20 hg19_knownGene exon 48156107 48156258 0.000000 - . gene_id "PTGIS"; transcript_id "NM_000961:uc002xut.3";
+chr20 hg19_knownGene CDS 48160842 48160985 0.000000 - 1 gene_id "PTGIS"; transcript_id "NM_000961:uc002xut.3";
+chr20 hg19_knownGene exon 48160842 48160985 0.000000 - . gene_id "PTGIS"; transcript_id "NM_000961:uc002xut.3";
+chr20 hg19_knownGene CDS 48164378 48164556 0.000000 - 0 gene_id "PTGIS"; transcript_id "NM_000961:uc002xut.3";
+chr20 hg19_knownGene exon 48164378 48164556 0.000000 - . gene_id "PTGIS"; transcript_id "NM_000961:uc002xut.3";
+chr20 hg19_knownGene CDS 48166603 48166726 0.000000 - 1 gene_id "PTGIS"; transcript_id "NM_000961:uc002xut.3";
+chr20 hg19_knownGene exon 48166603 48166726 0.000000 - . gene_id "PTGIS"; transcript_id "NM_000961:uc002xut.3";
+chr20 hg19_knownGene CDS 48184580 48184653 0.000000 - 0 gene_id "PTGIS"; transcript_id "NM_000961:uc002xut.3";
+chr20 hg19_knownGene exon 48184580 48184707 0.000000 - . gene_id "PTGIS"; transcript_id "NM_000961:uc002xut.3";
+chr20 hg19_knownGene CDS 48124460 48124601 0.000000 - 1 gene_id "PTGIS"; transcript_id "BC143381:uc010zyi.2";
+chr20 hg19_knownGene exon 48120411 48124601 0.000000 - . gene_id "PTGIS"; transcript_id "BC143381:uc010zyi.2";
+chr20 hg19_knownGene CDS 48127565 48127716 0.000000 - 0 gene_id "PTGIS"; transcript_id "BC143381:uc010zyi.2";
+chr20 hg19_knownGene exon 48127565 48127716 0.000000 - . gene_id "PTGIS"; transcript_id "BC143381:uc010zyi.2";
+chr20 hg19_knownGene CDS 48129617 48129798 0.000000 - 2 gene_id "PTGIS"; transcript_id "BC143381:uc010zyi.2";
+chr20 hg19_knownGene exon 48129617 48129798 0.000000 - . gene_id "PTGIS"; transcript_id "BC143381:uc010zyi.2";
+chr20 hg19_knownGene CDS 48130764 48130932 0.000000 - 0 gene_id "PTGIS"; transcript_id "BC143381:uc010zyi.2";
+chr20 hg19_knownGene exon 48130764 48130932 0.000000 - . gene_id "PTGIS"; transcript_id "BC143381:uc010zyi.2";
+chr20 hg19_knownGene CDS 48140595 48140776 0.000000 - 2 gene_id "PTGIS"; transcript_id "BC143381:uc010zyi.2";
+chr20 hg19_knownGene exon 48140595 48140776 0.000000 - . gene_id "PTGIS"; transcript_id "BC143381:uc010zyi.2";
+chr20 hg19_knownGene CDS 48156107 48156258 0.000000 - 1 gene_id "PTGIS"; transcript_id "BC143381:uc010zyi.2";
+chr20 hg19_knownGene exon 48156107 48156258 0.000000 - . gene_id "PTGIS"; transcript_id "BC143381:uc010zyi.2";
+chr20 hg19_knownGene CDS 48160842 48160945 0.000000 - 0 gene_id "PTGIS"; transcript_id "BC143381:uc010zyi.2";
+chr20 hg19_knownGene exon 48160842 48160985 0.000000 - . gene_id "PTGIS"; transcript_id "BC143381:uc010zyi.2";
+chr20 hg19_knownGene exon 48166603 48166726 0.000000 - . gene_id "PTGIS"; transcript_id "BC143381:uc010zyi.2";
+chr20 hg19_knownGene exon 48184580 48184707 0.000000 - . gene_id "PTGIS"; transcript_id "BC143381:uc010zyi.2";
+chr20 hg19_knownGene CDS 48252852 48252996 0.000000 - 1 gene_id "B4GALT5"; transcript_id "NM_004776:uc002xuu.4";
+chr20 hg19_knownGene exon 48249483 48252996 0.000000 - . gene_id "B4GALT5"; transcript_id "NM_004776:uc002xuu.4";
+chr20 hg19_knownGene CDS 48253878 48253979 0.000000 - 1 gene_id "B4GALT5"; transcript_id "NM_004776:uc002xuu.4";
+chr20 hg19_knownGene exon 48253878 48253979 0.000000 - . gene_id "B4GALT5"; transcript_id "NM_004776:uc002xuu.4";
+chr20 hg19_knownGene CDS 48256215 48256337 0.000000 - 1 gene_id "B4GALT5"; transcript_id "NM_004776:uc002xuu.4";
+chr20 hg19_knownGene exon 48256215 48256337 0.000000 - . gene_id "B4GALT5"; transcript_id "NM_004776:uc002xuu.4";
+chr20 hg19_knownGene CDS 48257015 48257202 0.000000 - 0 gene_id "B4GALT5"; transcript_id "NM_004776:uc002xuu.4";
+chr20 hg19_knownGene exon 48257015 48257202 0.000000 - . gene_id "B4GALT5"; transcript_id "NM_004776:uc002xuu.4";
+chr20 hg19_knownGene CDS 48259005 48259121 0.000000 - 0 gene_id "B4GALT5"; transcript_id "NM_004776:uc002xuu.4";
+chr20 hg19_knownGene exon 48259005 48259121 0.000000 - . gene_id "B4GALT5"; transcript_id "NM_004776:uc002xuu.4";
+chr20 hg19_knownGene CDS 48260063 48260187 0.000000 - 2 gene_id "B4GALT5"; transcript_id "NM_004776:uc002xuu.4";
+chr20 hg19_knownGene exon 48260063 48260187 0.000000 - . gene_id "B4GALT5"; transcript_id "NM_004776:uc002xuu.4";
+chr20 hg19_knownGene CDS 48263502 48263615 0.000000 - 2 gene_id "B4GALT5"; transcript_id "NM_004776:uc002xuu.4";
+chr20 hg19_knownGene exon 48263502 48263615 0.000000 - . gene_id "B4GALT5"; transcript_id "NM_004776:uc002xuu.4";
+chr20 hg19_knownGene CDS 48273105 48273239 0.000000 - 2 gene_id "B4GALT5"; transcript_id "NM_004776:uc002xuu.4";
+chr20 hg19_knownGene exon 48273105 48273239 0.000000 - . gene_id "B4GALT5"; transcript_id "NM_004776:uc002xuu.4";
+chr20 hg19_knownGene CDS 48330113 48330227 0.000000 - 0 gene_id "B4GALT5"; transcript_id "NM_004776:uc002xuu.4";
+chr20 hg19_knownGene exon 48330113 48330421 0.000000 - . gene_id "B4GALT5"; transcript_id "NM_004776:uc002xuu.4";
+chr20 hg19_knownGene CDS 48429460 48429485 0.000000 + 0 gene_id "SLC9A8"; transcript_id "AK300318:uc010zyj.1";
+chr20 hg19_knownGene exon 48429250 48429485 0.000000 + . gene_id "SLC9A8"; transcript_id "AK300318:uc010zyj.1";
+chr20 hg19_knownGene CDS 48431545 48431726 0.000000 + 1 gene_id "SLC9A8"; transcript_id "AK300318:uc010zyj.1";
+chr20 hg19_knownGene exon 48431545 48431726 0.000000 + . gene_id "SLC9A8"; transcript_id "AK300318:uc010zyj.1";
+chr20 hg19_knownGene CDS 48439598 48439678 0.000000 + 2 gene_id "SLC9A8"; transcript_id "AK300318:uc010zyj.1";
+chr20 hg19_knownGene exon 48439598 48439678 0.000000 + . gene_id "SLC9A8"; transcript_id "AK300318:uc010zyj.1";
+chr20 hg19_knownGene CDS 48456078 48456136 0.000000 + 2 gene_id "SLC9A8"; transcript_id "AK300318:uc010zyj.1";
+chr20 hg19_knownGene exon 48456078 48456136 0.000000 + . gene_id "SLC9A8"; transcript_id "AK300318:uc010zyj.1";
+chr20 hg19_knownGene CDS 48461573 48461656 0.000000 + 0 gene_id "SLC9A8"; transcript_id "AK300318:uc010zyj.1";
+chr20 hg19_knownGene exon 48461573 48461656 0.000000 + . gene_id "SLC9A8"; transcript_id "AK300318:uc010zyj.1";
+chr20 hg19_knownGene CDS 48466116 48466217 0.000000 + 0 gene_id "SLC9A8"; transcript_id "AK300318:uc010zyj.1";
+chr20 hg19_knownGene exon 48466116 48466217 0.000000 + . gene_id "SLC9A8"; transcript_id "AK300318:uc010zyj.1";
+chr20 hg19_knownGene CDS 48467299 48467381 0.000000 + 0 gene_id "SLC9A8"; transcript_id "AK300318:uc010zyj.1";
+chr20 hg19_knownGene exon 48467299 48467381 0.000000 + . gene_id "SLC9A8"; transcript_id "AK300318:uc010zyj.1";
+chr20 hg19_knownGene CDS 48471975 48472118 0.000000 + 1 gene_id "SLC9A8"; transcript_id "AK300318:uc010zyj.1";
+chr20 hg19_knownGene exon 48471975 48472118 0.000000 + . gene_id "SLC9A8"; transcript_id "AK300318:uc010zyj.1";
+chr20 hg19_knownGene CDS 48479466 48479601 0.000000 + 1 gene_id "SLC9A8"; transcript_id "AK300318:uc010zyj.1";
+chr20 hg19_knownGene exon 48479466 48479604 0.000000 + . gene_id "SLC9A8"; transcript_id "AK300318:uc010zyj.1";
+chr20 hg19_knownGene CDS 48429460 48429485 0.000000 + 0 gene_id "SLC9A8"; transcript_id "AK295822:uc010zyk.1";
+chr20 hg19_knownGene exon 48429250 48429485 0.000000 + . gene_id "SLC9A8"; transcript_id "AK295822:uc010zyk.1";
+chr20 hg19_knownGene CDS 48431545 48431726 0.000000 + 1 gene_id "SLC9A8"; transcript_id "AK295822:uc010zyk.1";
+chr20 hg19_knownGene exon 48431545 48431726 0.000000 + . gene_id "SLC9A8"; transcript_id "AK295822:uc010zyk.1";
+chr20 hg19_knownGene CDS 48439598 48439678 0.000000 + 2 gene_id "SLC9A8"; transcript_id "AK295822:uc010zyk.1";
+chr20 hg19_knownGene exon 48439598 48439678 0.000000 + . gene_id "SLC9A8"; transcript_id "AK295822:uc010zyk.1";
+chr20 hg19_knownGene CDS 48456078 48456136 0.000000 + 2 gene_id "SLC9A8"; transcript_id "AK295822:uc010zyk.1";
+chr20 hg19_knownGene exon 48456078 48456136 0.000000 + . gene_id "SLC9A8"; transcript_id "AK295822:uc010zyk.1";
+chr20 hg19_knownGene CDS 48461573 48461656 0.000000 + 0 gene_id "SLC9A8"; transcript_id "AK295822:uc010zyk.1";
+chr20 hg19_knownGene exon 48461573 48461656 0.000000 + . gene_id "SLC9A8"; transcript_id "AK295822:uc010zyk.1";
+chr20 hg19_knownGene CDS 48466116 48466217 0.000000 + 0 gene_id "SLC9A8"; transcript_id "AK295822:uc010zyk.1";
+chr20 hg19_knownGene exon 48466116 48466217 0.000000 + . gene_id "SLC9A8"; transcript_id "AK295822:uc010zyk.1";
+chr20 hg19_knownGene CDS 48471975 48472118 0.000000 + 0 gene_id "SLC9A8"; transcript_id "AK295822:uc010zyk.1";
+chr20 hg19_knownGene exon 48471975 48472118 0.000000 + . gene_id "SLC9A8"; transcript_id "AK295822:uc010zyk.1";
+chr20 hg19_knownGene CDS 48479466 48479471 0.000000 + 0 gene_id "SLC9A8"; transcript_id "AK295822:uc010zyk.1";
+chr20 hg19_knownGene exon 48479466 48479604 0.000000 + . gene_id "SLC9A8"; transcript_id "AK295822:uc010zyk.1";
+chr20 hg19_knownGene CDS 48429460 48429485 0.000000 + 0 gene_id "SLC9A8"; transcript_id "AK295665:uc010zyl.1";
+chr20 hg19_knownGene exon 48429250 48429485 0.000000 + . gene_id "SLC9A8"; transcript_id "AK295665:uc010zyl.1";
+chr20 hg19_knownGene CDS 48431545 48431726 0.000000 + 1 gene_id "SLC9A8"; transcript_id "AK295665:uc010zyl.1";
+chr20 hg19_knownGene exon 48431545 48431726 0.000000 + . gene_id "SLC9A8"; transcript_id "AK295665:uc010zyl.1";
+chr20 hg19_knownGene CDS 48439598 48439678 0.000000 + 2 gene_id "SLC9A8"; transcript_id "AK295665:uc010zyl.1";
+chr20 hg19_knownGene exon 48439598 48439678 0.000000 + . gene_id "SLC9A8"; transcript_id "AK295665:uc010zyl.1";
+chr20 hg19_knownGene CDS 48456078 48456136 0.000000 + 2 gene_id "SLC9A8"; transcript_id "AK295665:uc010zyl.1";
+chr20 hg19_knownGene exon 48456078 48456136 0.000000 + . gene_id "SLC9A8"; transcript_id "AK295665:uc010zyl.1";
+chr20 hg19_knownGene CDS 48466116 48466217 0.000000 + 0 gene_id "SLC9A8"; transcript_id "AK295665:uc010zyl.1";
+chr20 hg19_knownGene exon 48466116 48466217 0.000000 + . gene_id "SLC9A8"; transcript_id "AK295665:uc010zyl.1";
+chr20 hg19_knownGene CDS 48471975 48472118 0.000000 + 0 gene_id "SLC9A8"; transcript_id "AK295665:uc010zyl.1";
+chr20 hg19_knownGene exon 48471975 48472118 0.000000 + . gene_id "SLC9A8"; transcript_id "AK295665:uc010zyl.1";
+chr20 hg19_knownGene CDS 48479466 48479471 0.000000 + 0 gene_id "SLC9A8"; transcript_id "AK295665:uc010zyl.1";
+chr20 hg19_knownGene exon 48479466 48479604 0.000000 + . gene_id "SLC9A8"; transcript_id "AK295665:uc010zyl.1";
+chr20 hg19_knownGene CDS 48429460 48429485 0.000000 + 0 gene_id "SLC9A8"; transcript_id "AK308328:uc010gib.1";
+chr20 hg19_knownGene exon 48429250 48429485 0.000000 + . gene_id "SLC9A8"; transcript_id "AK308328:uc010gib.1";
+chr20 hg19_knownGene CDS 48431545 48431726 0.000000 + 1 gene_id "SLC9A8"; transcript_id "AK308328:uc010gib.1";
+chr20 hg19_knownGene exon 48431545 48431726 0.000000 + . gene_id "SLC9A8"; transcript_id "AK308328:uc010gib.1";
+chr20 hg19_knownGene CDS 48439598 48439678 0.000000 + 2 gene_id "SLC9A8"; transcript_id "AK308328:uc010gib.1";
+chr20 hg19_knownGene exon 48439598 48439678 0.000000 + . gene_id "SLC9A8"; transcript_id "AK308328:uc010gib.1";
+chr20 hg19_knownGene CDS 48456078 48456136 0.000000 + 2 gene_id "SLC9A8"; transcript_id "AK308328:uc010gib.1";
+chr20 hg19_knownGene exon 48456078 48456136 0.000000 + . gene_id "SLC9A8"; transcript_id "AK308328:uc010gib.1";
+chr20 hg19_knownGene CDS 48461573 48461656 0.000000 + 0 gene_id "SLC9A8"; transcript_id "AK308328:uc010gib.1";
+chr20 hg19_knownGene exon 48461573 48461656 0.000000 + . gene_id "SLC9A8"; transcript_id "AK308328:uc010gib.1";
+chr20 hg19_knownGene CDS 48471975 48472118 0.000000 + 0 gene_id "SLC9A8"; transcript_id "AK308328:uc010gib.1";
+chr20 hg19_knownGene exon 48471975 48472118 0.000000 + . gene_id "SLC9A8"; transcript_id "AK308328:uc010gib.1";
+chr20 hg19_knownGene CDS 48479466 48479471 0.000000 + 0 gene_id "SLC9A8"; transcript_id "AK308328:uc010gib.1";
+chr20 hg19_knownGene exon 48479466 48479604 0.000000 + . gene_id "SLC9A8"; transcript_id "AK308328:uc010gib.1";
+chr20 hg19_knownGene CDS 48481324 48481381 0.000000 + 0 gene_id "SLC9A8"; transcript_id "AK310530:uc010gic.3";
+chr20 hg19_knownGene exon 48481276 48481381 0.000000 + . gene_id "SLC9A8"; transcript_id "AK310530:uc010gic.3";
+chr20 hg19_knownGene CDS 48491242 48491358 0.000000 + 2 gene_id "SLC9A8"; transcript_id "AK310530:uc010gic.3";
+chr20 hg19_knownGene exon 48491242 48491358 0.000000 + . gene_id "SLC9A8"; transcript_id "AK310530:uc010gic.3";
+chr20 hg19_knownGene CDS 48494518 48494600 0.000000 + 2 gene_id "SLC9A8"; transcript_id "AK310530:uc010gic.3";
+chr20 hg19_knownGene exon 48494518 48494600 0.000000 + . gene_id "SLC9A8"; transcript_id "AK310530:uc010gic.3";
+chr20 hg19_knownGene CDS 48497461 48497572 0.000000 + 0 gene_id "SLC9A8"; transcript_id "AK310530:uc010gic.3";
+chr20 hg19_knownGene exon 48497461 48497572 0.000000 + . gene_id "SLC9A8"; transcript_id "AK310530:uc010gic.3";
+chr20 hg19_knownGene CDS 48500383 48500687 0.000000 + 2 gene_id "SLC9A8"; transcript_id "AK310530:uc010gic.3";
+chr20 hg19_knownGene exon 48500383 48500795 0.000000 + . gene_id "SLC9A8"; transcript_id "AK310530:uc010gic.3";
+chr20 hg19_knownGene CDS 48429460 48429485 0.000000 + 0 gene_id "SLC9A8"; transcript_id "NM_015266:uc002xuv.1";
+chr20 hg19_knownGene exon 48429250 48429485 0.000000 + . gene_id "SLC9A8"; transcript_id "NM_015266:uc002xuv.1";
+chr20 hg19_knownGene CDS 48431545 48431726 0.000000 + 1 gene_id "SLC9A8"; transcript_id "NM_015266:uc002xuv.1";
+chr20 hg19_knownGene exon 48431545 48431726 0.000000 + . gene_id "SLC9A8"; transcript_id "NM_015266:uc002xuv.1";
+chr20 hg19_knownGene CDS 48439598 48439678 0.000000 + 2 gene_id "SLC9A8"; transcript_id "NM_015266:uc002xuv.1";
+chr20 hg19_knownGene exon 48439598 48439678 0.000000 + . gene_id "SLC9A8"; transcript_id "NM_015266:uc002xuv.1";
+chr20 hg19_knownGene CDS 48456078 48456136 0.000000 + 2 gene_id "SLC9A8"; transcript_id "NM_015266:uc002xuv.1";
+chr20 hg19_knownGene exon 48456078 48456136 0.000000 + . gene_id "SLC9A8"; transcript_id "NM_015266:uc002xuv.1";
+chr20 hg19_knownGene CDS 48461573 48461656 0.000000 + 0 gene_id "SLC9A8"; transcript_id "NM_015266:uc002xuv.1";
+chr20 hg19_knownGene exon 48461573 48461656 0.000000 + . gene_id "SLC9A8"; transcript_id "NM_015266:uc002xuv.1";
+chr20 hg19_knownGene CDS 48466116 48466217 0.000000 + 0 gene_id "SLC9A8"; transcript_id "NM_015266:uc002xuv.1";
+chr20 hg19_knownGene exon 48466116 48466217 0.000000 + . gene_id "SLC9A8"; transcript_id "NM_015266:uc002xuv.1";
+chr20 hg19_knownGene CDS 48467347 48467381 0.000000 + 0 gene_id "SLC9A8"; transcript_id "NM_015266:uc002xuv.1";
+chr20 hg19_knownGene exon 48467347 48467381 0.000000 + . gene_id "SLC9A8"; transcript_id "NM_015266:uc002xuv.1";
+chr20 hg19_knownGene CDS 48471975 48472118 0.000000 + 1 gene_id "SLC9A8"; transcript_id "NM_015266:uc002xuv.1";
+chr20 hg19_knownGene exon 48471975 48472118 0.000000 + . gene_id "SLC9A8"; transcript_id "NM_015266:uc002xuv.1";
+chr20 hg19_knownGene CDS 48479466 48479604 0.000000 + 1 gene_id "SLC9A8"; transcript_id "NM_015266:uc002xuv.1";
+chr20 hg19_knownGene exon 48479466 48479604 0.000000 + . gene_id "SLC9A8"; transcript_id "NM_015266:uc002xuv.1";
+chr20 hg19_knownGene CDS 48481276 48481381 0.000000 + 0 gene_id "SLC9A8"; transcript_id "NM_015266:uc002xuv.1";
+chr20 hg19_knownGene exon 48481276 48481381 0.000000 + . gene_id "SLC9A8"; transcript_id "NM_015266:uc002xuv.1";
+chr20 hg19_knownGene CDS 48491242 48491358 0.000000 + 2 gene_id "SLC9A8"; transcript_id "NM_015266:uc002xuv.1";
+chr20 hg19_knownGene exon 48491242 48491358 0.000000 + . gene_id "SLC9A8"; transcript_id "NM_015266:uc002xuv.1";
+chr20 hg19_knownGene CDS 48494518 48494600 0.000000 + 2 gene_id "SLC9A8"; transcript_id "NM_015266:uc002xuv.1";
+chr20 hg19_knownGene exon 48494518 48494600 0.000000 + . gene_id "SLC9A8"; transcript_id "NM_015266:uc002xuv.1";
+chr20 hg19_knownGene CDS 48497461 48497572 0.000000 + 0 gene_id "SLC9A8"; transcript_id "NM_015266:uc002xuv.1";
+chr20 hg19_knownGene exon 48497461 48497572 0.000000 + . gene_id "SLC9A8"; transcript_id "NM_015266:uc002xuv.1";
+chr20 hg19_knownGene CDS 48500383 48500603 0.000000 + 2 gene_id "SLC9A8"; transcript_id "NM_015266:uc002xuv.1";
+chr20 hg19_knownGene exon 48500383 48500603 0.000000 + . gene_id "SLC9A8"; transcript_id "NM_015266:uc002xuv.1";
+chr20 hg19_knownGene CDS 48503289 48503435 0.000000 + 0 gene_id "SLC9A8"; transcript_id "NM_015266:uc002xuv.1";
+chr20 hg19_knownGene exon 48503289 48503435 0.000000 + . gene_id "SLC9A8"; transcript_id "NM_015266:uc002xuv.1";
+chr20 hg19_knownGene CDS 48504366 48504470 0.000000 + 0 gene_id "SLC9A8"; transcript_id "NM_015266:uc002xuv.1";
+chr20 hg19_knownGene exon 48504366 48508772 0.000000 + . gene_id "SLC9A8"; transcript_id "NM_015266:uc002xuv.1";
+chr20 hg19_knownGene exon 48429250 48429485 0.000000 + . gene_id "SLC9A8"; transcript_id "AK295803:uc010zym.1";
+chr20 hg19_knownGene exon 48431545 48431726 0.000000 + . gene_id "SLC9A8"; transcript_id "AK295803:uc010zym.1";
+chr20 hg19_knownGene exon 48439598 48439678 0.000000 + . gene_id "SLC9A8"; transcript_id "AK295803:uc010zym.1";
+chr20 hg19_knownGene exon 48456078 48456136 0.000000 + . gene_id "SLC9A8"; transcript_id "AK295803:uc010zym.1";
+chr20 hg19_knownGene exon 48461573 48461656 0.000000 + . gene_id "SLC9A8"; transcript_id "AK295803:uc010zym.1";
+chr20 hg19_knownGene exon 48466116 48466217 0.000000 + . gene_id "SLC9A8"; transcript_id "AK295803:uc010zym.1";
+chr20 hg19_knownGene exon 48471975 48472118 0.000000 + . gene_id "SLC9A8"; transcript_id "AK295803:uc010zym.1";
+chr20 hg19_knownGene CDS 48481324 48481381 0.000000 + 0 gene_id "SLC9A8"; transcript_id "AK295803:uc010zym.1";
+chr20 hg19_knownGene exon 48481265 48481381 0.000000 + . gene_id "SLC9A8"; transcript_id "AK295803:uc010zym.1";
+chr20 hg19_knownGene CDS 48491242 48491358 0.000000 + 2 gene_id "SLC9A8"; transcript_id "AK295803:uc010zym.1";
+chr20 hg19_knownGene exon 48491242 48491358 0.000000 + . gene_id "SLC9A8"; transcript_id "AK295803:uc010zym.1";
+chr20 hg19_knownGene CDS 48494518 48494600 0.000000 + 2 gene_id "SLC9A8"; transcript_id "AK295803:uc010zym.1";
+chr20 hg19_knownGene exon 48494518 48494600 0.000000 + . gene_id "SLC9A8"; transcript_id "AK295803:uc010zym.1";
+chr20 hg19_knownGene CDS 48497461 48497572 0.000000 + 0 gene_id "SLC9A8"; transcript_id "AK295803:uc010zym.1";
+chr20 hg19_knownGene exon 48497461 48497572 0.000000 + . gene_id "SLC9A8"; transcript_id "AK295803:uc010zym.1";
+chr20 hg19_knownGene CDS 48500383 48500603 0.000000 + 2 gene_id "SLC9A8"; transcript_id "AK295803:uc010zym.1";
+chr20 hg19_knownGene exon 48500383 48500603 0.000000 + . gene_id "SLC9A8"; transcript_id "AK295803:uc010zym.1";
+chr20 hg19_knownGene CDS 48503289 48503435 0.000000 + 0 gene_id "SLC9A8"; transcript_id "AK295803:uc010zym.1";
+chr20 hg19_knownGene exon 48503289 48503435 0.000000 + . gene_id "SLC9A8"; transcript_id "AK295803:uc010zym.1";
+chr20 hg19_knownGene CDS 48504366 48504470 0.000000 + 0 gene_id "SLC9A8"; transcript_id "AK295803:uc010zym.1";
+chr20 hg19_knownGene exon 48504366 48508772 0.000000 + . gene_id "SLC9A8"; transcript_id "AK295803:uc010zym.1";
+chr20 hg19_knownGene CDS 48481352 48481381 0.000000 + 0 gene_id "SLC9A8"; transcript_id "AK308328:uc010gid.3";
+chr20 hg19_knownGene exon 48481276 48481381 0.000000 + . gene_id "SLC9A8"; transcript_id "AK308328:uc010gid.3";
+chr20 hg19_knownGene CDS 48497461 48497572 0.000000 + 0 gene_id "SLC9A8"; transcript_id "AK308328:uc010gid.3";
+chr20 hg19_knownGene exon 48497461 48497572 0.000000 + . gene_id "SLC9A8"; transcript_id "AK308328:uc010gid.3";
+chr20 hg19_knownGene CDS 48500383 48500603 0.000000 + 2 gene_id "SLC9A8"; transcript_id "AK308328:uc010gid.3";
+chr20 hg19_knownGene exon 48500383 48500603 0.000000 + . gene_id "SLC9A8"; transcript_id "AK308328:uc010gid.3";
+chr20 hg19_knownGene CDS 48503289 48503435 0.000000 + 0 gene_id "SLC9A8"; transcript_id "AK308328:uc010gid.3";
+chr20 hg19_knownGene exon 48503289 48503435 0.000000 + . gene_id "SLC9A8"; transcript_id "AK308328:uc010gid.3";
+chr20 hg19_knownGene CDS 48504366 48504470 0.000000 + 0 gene_id "SLC9A8"; transcript_id "AK308328:uc010gid.3";
+chr20 hg19_knownGene exon 48504366 48508772 0.000000 + . gene_id "SLC9A8"; transcript_id "AK308328:uc010gid.3";
+chr20 hg19_knownGene CDS 48522159 48523382 0.000000 - 0 gene_id "SPATA2"; transcript_id "NM_001135773:uc010gie.3";
+chr20 hg19_knownGene exon 48519929 48523382 0.000000 - . gene_id "SPATA2"; transcript_id "NM_001135773:uc010gie.3";
+chr20 hg19_knownGene CDS 48524692 48525027 0.000000 - 0 gene_id "SPATA2"; transcript_id "NM_001135773:uc010gie.3";
+chr20 hg19_knownGene exon 48524692 48525129 0.000000 - . gene_id "SPATA2"; transcript_id "NM_001135773:uc010gie.3";
+chr20 hg19_knownGene exon 48530029 48530276 0.000000 - . gene_id "SPATA2"; transcript_id "NM_001135773:uc010gie.3";
+chr20 hg19_knownGene CDS 48522159 48523382 0.000000 - 0 gene_id "SPATA2"; transcript_id "NM_006038:uc002xuw.3";
+chr20 hg19_knownGene exon 48519929 48523382 0.000000 - . gene_id "SPATA2"; transcript_id "NM_006038:uc002xuw.3";
+chr20 hg19_knownGene CDS 48524692 48525027 0.000000 - 0 gene_id "SPATA2"; transcript_id "NM_006038:uc002xuw.3";
+chr20 hg19_knownGene exon 48524692 48525129 0.000000 - . gene_id "SPATA2"; transcript_id "NM_006038:uc002xuw.3";
+chr20 hg19_knownGene exon 48531917 48532080 0.000000 - . gene_id "SPATA2"; transcript_id "NM_006038:uc002xuw.3";
+chr20 hg19_knownGene CDS 48522159 48523307 0.000000 - 0 gene_id "SPATA2"; transcript_id "AK295536:uc010zyn.2";
+chr20 hg19_knownGene exon 48519929 48523382 0.000000 - . gene_id "SPATA2"; transcript_id "AK295536:uc010zyn.2";
+chr20 hg19_knownGene exon 48531917 48532080 0.000000 - . gene_id "SPATA2"; transcript_id "AK295536:uc010zyn.2";
+chr20 hg19_knownGene CDS 48552950 48553089 0.000000 + 0 gene_id "RNF114"; transcript_id "NM_018683:uc002xux.3";
+chr20 hg19_knownGene exon 48552914 48553089 0.000000 + . gene_id "RNF114"; transcript_id "NM_018683:uc002xux.3";
+chr20 hg19_knownGene CDS 48558098 48558248 0.000000 + 1 gene_id "RNF114"; transcript_id "NM_018683:uc002xux.3";
+chr20 hg19_knownGene exon 48558098 48558248 0.000000 + . gene_id "RNF114"; transcript_id "NM_018683:uc002xux.3";
+chr20 hg19_knownGene CDS 48561919 48562025 0.000000 + 0 gene_id "RNF114"; transcript_id "NM_018683:uc002xux.3";
+chr20 hg19_knownGene exon 48561919 48562025 0.000000 + . gene_id "RNF114"; transcript_id "NM_018683:uc002xux.3";
+chr20 hg19_knownGene CDS 48562673 48562787 0.000000 + 1 gene_id "RNF114"; transcript_id "NM_018683:uc002xux.3";
+chr20 hg19_knownGene exon 48562673 48562787 0.000000 + . gene_id "RNF114"; transcript_id "NM_018683:uc002xux.3";
+chr20 hg19_knownGene CDS 48565785 48565892 0.000000 + 0 gene_id "RNF114"; transcript_id "NM_018683:uc002xux.3";
+chr20 hg19_knownGene exon 48565785 48565892 0.000000 + . gene_id "RNF114"; transcript_id "NM_018683:uc002xux.3";
+chr20 hg19_knownGene CDS 48568613 48568675 0.000000 + 0 gene_id "RNF114"; transcript_id "NM_018683:uc002xux.3";
+chr20 hg19_knownGene exon 48568613 48570422 0.000000 + . gene_id "RNF114"; transcript_id "NM_018683:uc002xux.3";
+chr20 hg19_knownGene exon 48552914 48553089 0.000000 + . gene_id "RNF114"; transcript_id "AK091976:uc002xuy.3";
+chr20 hg19_knownGene exon 48558120 48558248 0.000000 + . gene_id "RNF114"; transcript_id "AK091976:uc002xuy.3";
+chr20 hg19_knownGene exon 48561919 48562025 0.000000 + . gene_id "RNF114"; transcript_id "AK091976:uc002xuy.3";
+chr20 hg19_knownGene exon 48562673 48562787 0.000000 + . gene_id "RNF114"; transcript_id "AK091976:uc002xuy.3";
+chr20 hg19_knownGene exon 48565785 48565892 0.000000 + . gene_id "RNF114"; transcript_id "AK091976:uc002xuy.3";
+chr20 hg19_knownGene exon 48568613 48570422 0.000000 + . gene_id "RNF114"; transcript_id "AK091976:uc002xuy.3";
+chr20 hg19_knownGene CDS 48599597 48599678 0.000000 + 0 gene_id "SNAI1"; transcript_id "NM_005985:uc002xuz.3";
+chr20 hg19_knownGene exon 48599513 48599678 0.000000 + . gene_id "SNAI1"; transcript_id "NM_005985:uc002xuz.3";
+chr20 hg19_knownGene CDS 48600361 48600888 0.000000 + 2 gene_id "SNAI1"; transcript_id "NM_005985:uc002xuz.3";
+chr20 hg19_knownGene exon 48600361 48600888 0.000000 + . gene_id "SNAI1"; transcript_id "NM_005985:uc002xuz.3";
+chr20 hg19_knownGene CDS 48604409 48604590 0.000000 + 2 gene_id "SNAI1"; transcript_id "NM_005985:uc002xuz.3";
+chr20 hg19_knownGene exon 48604409 48605420 0.000000 + . gene_id "SNAI1"; transcript_id "NM_005985:uc002xuz.3";
+chr20 hg19_knownGene exon 48697661 48699451 0.000000 - . gene_id "UBE2V1"; transcript_id "BX648147:uc002xvb.3";
+chr20 hg19_knownGene exon 48700666 48700791 0.000000 - . gene_id "UBE2V1"; transcript_id "BX648147:uc002xvb.3";
+chr20 hg19_knownGene exon 48729644 48729710 0.000000 - . gene_id "UBE2V1"; transcript_id "BX648147:uc002xvb.3";
+chr20 hg19_knownGene CDS 48699308 48699451 0.000000 - 0 gene_id "UBE2V1"; transcript_id "NM_001032288:uc002xva.3";
+chr20 hg19_knownGene exon 48697661 48699451 0.000000 - . gene_id "UBE2V1"; transcript_id "NM_001032288:uc002xva.3";
+chr20 hg19_knownGene CDS 48700666 48700791 0.000000 - 0 gene_id "UBE2V1"; transcript_id "NM_001032288:uc002xva.3";
+chr20 hg19_knownGene exon 48700666 48700791 0.000000 - . gene_id "UBE2V1"; transcript_id "NM_001032288:uc002xva.3";
+chr20 hg19_knownGene CDS 48713209 48713357 0.000000 - 2 gene_id "UBE2V1"; transcript_id "NM_001032288:uc002xva.3";
+chr20 hg19_knownGene exon 48713209 48713357 0.000000 - . gene_id "UBE2V1"; transcript_id "NM_001032288:uc002xva.3";
+chr20 hg19_knownGene CDS 48729644 48729665 0.000000 - 0 gene_id "UBE2V1"; transcript_id "NM_001032288:uc002xva.3";
+chr20 hg19_knownGene exon 48729644 48729710 0.000000 - . gene_id "UBE2V1"; transcript_id "NM_001032288:uc002xva.3";
+chr20 hg19_knownGene CDS 48699308 48699451 0.000000 - 0 gene_id "UBE2V1"; transcript_id "NM_022442:uc002xvc.3";
+chr20 hg19_knownGene exon 48697661 48699451 0.000000 - . gene_id "UBE2V1"; transcript_id "NM_022442:uc002xvc.3";
+chr20 hg19_knownGene CDS 48700666 48700791 0.000000 - 0 gene_id "UBE2V1"; transcript_id "NM_022442:uc002xvc.3";
+chr20 hg19_knownGene exon 48700666 48700791 0.000000 - . gene_id "UBE2V1"; transcript_id "NM_022442:uc002xvc.3";
+chr20 hg19_knownGene CDS 48732022 48732060 0.000000 - 0 gene_id "UBE2V1"; transcript_id "NM_022442:uc002xvc.3";
+chr20 hg19_knownGene exon 48732022 48732158 0.000000 - . gene_id "UBE2V1"; transcript_id "NM_022442:uc002xvc.3";
+chr20 hg19_knownGene exon 48732367 48732491 0.000000 - . gene_id "UBE2V1"; transcript_id "NM_022442:uc002xvc.3";
+chr20 hg19_knownGene CDS 48699308 48699451 0.000000 - 0 gene_id "UBE2V1"; transcript_id "NM_199144:uc002xvd.3";
+chr20 hg19_knownGene exon 48697661 48699451 0.000000 - . gene_id "UBE2V1"; transcript_id "NM_199144:uc002xvd.3";
+chr20 hg19_knownGene CDS 48700666 48700791 0.000000 - 0 gene_id "UBE2V1"; transcript_id "NM_199144:uc002xvd.3";
+chr20 hg19_knownGene exon 48700666 48700791 0.000000 - . gene_id "UBE2V1"; transcript_id "NM_199144:uc002xvd.3";
+chr20 hg19_knownGene CDS 48713209 48713357 0.000000 - 2 gene_id "UBE2V1"; transcript_id "NM_199144:uc002xvd.3";
+chr20 hg19_knownGene exon 48713209 48713357 0.000000 - . gene_id "UBE2V1"; transcript_id "NM_199144:uc002xvd.3";
+chr20 hg19_knownGene CDS 48732022 48732112 0.000000 - 0 gene_id "UBE2V1"; transcript_id "NM_199144:uc002xvd.3";
+chr20 hg19_knownGene exon 48732022 48732158 0.000000 - . gene_id "UBE2V1"; transcript_id "NM_199144:uc002xvd.3";
+chr20 hg19_knownGene exon 48732236 48732494 0.000000 - . gene_id "UBE2V1"; transcript_id "NM_199144:uc002xvd.3";
+chr20 hg19_knownGene CDS 48699308 48699451 0.000000 - 0 gene_id "UBE2V1"; transcript_id "NM_021988:uc002xve.3";
+chr20 hg19_knownGene exon 48697661 48699451 0.000000 - . gene_id "UBE2V1"; transcript_id "NM_021988:uc002xve.3";
+chr20 hg19_knownGene CDS 48700666 48700791 0.000000 - 0 gene_id "UBE2V1"; transcript_id "NM_021988:uc002xve.3";
+chr20 hg19_knownGene exon 48700666 48700791 0.000000 - . gene_id "UBE2V1"; transcript_id "NM_021988:uc002xve.3";
+chr20 hg19_knownGene CDS 48713209 48713357 0.000000 - 2 gene_id "UBE2V1"; transcript_id "NM_021988:uc002xve.3";
+chr20 hg19_knownGene exon 48713209 48713357 0.000000 - . gene_id "UBE2V1"; transcript_id "NM_021988:uc002xve.3";
+chr20 hg19_knownGene CDS 48732022 48732112 0.000000 - 0 gene_id "UBE2V1"; transcript_id "NM_021988:uc002xve.3";
+chr20 hg19_knownGene exon 48732022 48732494 0.000000 - . gene_id "UBE2V1"; transcript_id "NM_021988:uc002xve.3";
+chr20 hg19_knownGene CDS 48741598 48741716 0.000000 - 2 gene_id "TMEM189"; transcript_id "AK304595:uc010zyp.1";
+chr20 hg19_knownGene exon 48740274 48741716 0.000000 - . gene_id "TMEM189"; transcript_id "AK304595:uc010zyp.1";
+chr20 hg19_knownGene CDS 48744512 48744724 0.000000 - 2 gene_id "TMEM189"; transcript_id "AK304595:uc010zyp.1";
+chr20 hg19_knownGene exon 48744512 48744724 0.000000 - . gene_id "TMEM189"; transcript_id "AK304595:uc010zyp.1";
+chr20 hg19_knownGene CDS 48746083 48746227 0.000000 - 0 gene_id "TMEM189"; transcript_id "AK304595:uc010zyp.1";
+chr20 hg19_knownGene exon 48746083 48746227 0.000000 - . gene_id "TMEM189"; transcript_id "AK304595:uc010zyp.1";
+chr20 hg19_knownGene CDS 48747393 48747484 0.000000 - 2 gene_id "TMEM189"; transcript_id "AK304595:uc010zyp.1";
+chr20 hg19_knownGene exon 48747393 48747484 0.000000 - . gene_id "TMEM189"; transcript_id "AK304595:uc010zyp.1";
+chr20 hg19_knownGene CDS 48747557 48747572 0.000000 - 0 gene_id "TMEM189"; transcript_id "AK304595:uc010zyp.1";
+chr20 hg19_knownGene exon 48747557 48747673 0.000000 - . gene_id "TMEM189"; transcript_id "AK304595:uc010zyp.1";
+chr20 hg19_knownGene CDS 48699308 48699451 0.000000 - 0 gene_id "TMEM189-UBE2V1"; transcript_id "NM_199203:uc002xvf.3";
+chr20 hg19_knownGene exon 48697661 48699451 0.000000 - . gene_id "TMEM189-UBE2V1"; transcript_id "NM_199203:uc002xvf.3";
+chr20 hg19_knownGene CDS 48700666 48700791 0.000000 - 0 gene_id "TMEM189-UBE2V1"; transcript_id "NM_199203:uc002xvf.3";
+chr20 hg19_knownGene exon 48700666 48700791 0.000000 - . gene_id "TMEM189-UBE2V1"; transcript_id "NM_199203:uc002xvf.3";
+chr20 hg19_knownGene CDS 48713209 48713357 0.000000 - 2 gene_id "TMEM189-UBE2V1"; transcript_id "NM_199203:uc002xvf.3";
+chr20 hg19_knownGene exon 48713209 48713357 0.000000 - . gene_id "TMEM189-UBE2V1"; transcript_id "NM_199203:uc002xvf.3";
+chr20 hg19_knownGene CDS 48744512 48744724 0.000000 - 2 gene_id "TMEM189-UBE2V1"; transcript_id "NM_199203:uc002xvf.3";
+chr20 hg19_knownGene exon 48744512 48744724 0.000000 - . gene_id "TMEM189-UBE2V1"; transcript_id "NM_199203:uc002xvf.3";
+chr20 hg19_knownGene CDS 48746083 48746227 0.000000 - 0 gene_id "TMEM189-UBE2V1"; transcript_id "NM_199203:uc002xvf.3";
+chr20 hg19_knownGene exon 48746083 48746227 0.000000 - . gene_id "TMEM189-UBE2V1"; transcript_id "NM_199203:uc002xvf.3";
+chr20 hg19_knownGene CDS 48747393 48747484 0.000000 - 2 gene_id "TMEM189-UBE2V1"; transcript_id "NM_199203:uc002xvf.3";
+chr20 hg19_knownGene exon 48747393 48747484 0.000000 - . gene_id "TMEM189-UBE2V1"; transcript_id "NM_199203:uc002xvf.3";
+chr20 hg19_knownGene CDS 48760039 48760158 0.000000 - 2 gene_id "TMEM189-UBE2V1"; transcript_id "NM_199203:uc002xvf.3";
+chr20 hg19_knownGene exon 48760039 48760158 0.000000 - . gene_id "TMEM189-UBE2V1"; transcript_id "NM_199203:uc002xvf.3";
+chr20 hg19_knownGene CDS 48770054 48770174 0.000000 - 0 gene_id "TMEM189-UBE2V1"; transcript_id "NM_199203:uc002xvf.3";
+chr20 hg19_knownGene exon 48770054 48770335 0.000000 - . gene_id "TMEM189-UBE2V1"; transcript_id "NM_199203:uc002xvf.3";
+chr20 hg19_knownGene exon 48740274 48741716 0.000000 - . gene_id "TMEM189"; transcript_id "NR_027889:uc010zyq.1";
+chr20 hg19_knownGene exon 48744512 48744724 0.000000 - . gene_id "TMEM189"; transcript_id "NR_027889:uc010zyq.1";
+chr20 hg19_knownGene exon 48746083 48746227 0.000000 - . gene_id "TMEM189"; transcript_id "NR_027889:uc010zyq.1";
+chr20 hg19_knownGene exon 48747393 48747484 0.000000 - . gene_id "TMEM189"; transcript_id "NR_027889:uc010zyq.1";
+chr20 hg19_knownGene exon 48760039 48760158 0.000000 - . gene_id "TMEM189"; transcript_id "NR_027889:uc010zyq.1";
+chr20 hg19_knownGene exon 48767749 48767852 0.000000 - . gene_id "TMEM189"; transcript_id "NR_027889:uc010zyq.1";
+chr20 hg19_knownGene exon 48770054 48770335 0.000000 - . gene_id "TMEM189"; transcript_id "NR_027889:uc010zyq.1";
+chr20 hg19_knownGene CDS 48741598 48741716 0.000000 - 2 gene_id "TMEM189"; transcript_id "NM_199129:uc002xvg.2";
+chr20 hg19_knownGene exon 48740274 48741716 0.000000 - . gene_id "TMEM189"; transcript_id "NM_199129:uc002xvg.2";
+chr20 hg19_knownGene CDS 48744512 48744724 0.000000 - 2 gene_id "TMEM189"; transcript_id "NM_199129:uc002xvg.2";
+chr20 hg19_knownGene exon 48744512 48744724 0.000000 - . gene_id "TMEM189"; transcript_id "NM_199129:uc002xvg.2";
+chr20 hg19_knownGene CDS 48746083 48746227 0.000000 - 0 gene_id "TMEM189"; transcript_id "NM_199129:uc002xvg.2";
+chr20 hg19_knownGene exon 48746083 48746227 0.000000 - . gene_id "TMEM189"; transcript_id "NM_199129:uc002xvg.2";
+chr20 hg19_knownGene CDS 48747393 48747484 0.000000 - 2 gene_id "TMEM189"; transcript_id "NM_199129:uc002xvg.2";
+chr20 hg19_knownGene exon 48747393 48747484 0.000000 - . gene_id "TMEM189"; transcript_id "NM_199129:uc002xvg.2";
+chr20 hg19_knownGene CDS 48760039 48760158 0.000000 - 2 gene_id "TMEM189"; transcript_id "NM_199129:uc002xvg.2";
+chr20 hg19_knownGene exon 48760039 48760158 0.000000 - . gene_id "TMEM189"; transcript_id "NM_199129:uc002xvg.2";
+chr20 hg19_knownGene CDS 48770054 48770174 0.000000 - 0 gene_id "TMEM189"; transcript_id "NM_199129:uc002xvg.2";
+chr20 hg19_knownGene exon 48770054 48770335 0.000000 - . gene_id "TMEM189"; transcript_id "NM_199129:uc002xvg.2";
+chr20 hg19_knownGene CDS 48741598 48741716 0.000000 - 2 gene_id "TMEM189"; transcript_id "NM_001162505:uc010gif.2";
+chr20 hg19_knownGene exon 48740274 48741716 0.000000 - . gene_id "TMEM189"; transcript_id "NM_001162505:uc010gif.2";
+chr20 hg19_knownGene CDS 48744512 48744724 0.000000 - 2 gene_id "TMEM189"; transcript_id "NM_001162505:uc010gif.2";
+chr20 hg19_knownGene exon 48744512 48744724 0.000000 - . gene_id "TMEM189"; transcript_id "NM_001162505:uc010gif.2";
+chr20 hg19_knownGene CDS 48746083 48746227 0.000000 - 0 gene_id "TMEM189"; transcript_id "NM_001162505:uc010gif.2";
+chr20 hg19_knownGene exon 48746083 48746227 0.000000 - . gene_id "TMEM189"; transcript_id "NM_001162505:uc010gif.2";
+chr20 hg19_knownGene CDS 48747402 48747484 0.000000 - 2 gene_id "TMEM189"; transcript_id "NM_001162505:uc010gif.2";
+chr20 hg19_knownGene exon 48747402 48747484 0.000000 - . gene_id "TMEM189"; transcript_id "NM_001162505:uc010gif.2";
+chr20 hg19_knownGene CDS 48760039 48760158 0.000000 - 2 gene_id "TMEM189"; transcript_id "NM_001162505:uc010gif.2";
+chr20 hg19_knownGene exon 48760039 48760158 0.000000 - . gene_id "TMEM189"; transcript_id "NM_001162505:uc010gif.2";
+chr20 hg19_knownGene CDS 48770054 48770174 0.000000 - 0 gene_id "TMEM189"; transcript_id "NM_001162505:uc010gif.2";
+chr20 hg19_knownGene exon 48770054 48770335 0.000000 - . gene_id "TMEM189"; transcript_id "NM_001162505:uc010gif.2";
+chr20 hg19_knownGene CDS 48807571 48808605 0.000000 + 0 gene_id "CEBPB"; transcript_id "NM_005194:uc002xvi.2";
+chr20 hg19_knownGene exon 48807120 48809227 0.000000 + . gene_id "CEBPB"; transcript_id "NM_005194:uc002xvi.2";
+chr20 hg19_knownGene exon 48884035 48884200 0.000000 + . gene_id "AK307192"; transcript_id "AK307192:uc010zyr.2";
+chr20 hg19_knownGene CDS 48892207 48892272 0.000000 + 0 gene_id "AK307192"; transcript_id "AK307192:uc010zyr.2";
+chr20 hg19_knownGene exon 48892183 48892272 0.000000 + . gene_id "AK307192"; transcript_id "AK307192:uc010zyr.2";
+chr20 hg19_knownGene CDS 48894028 48894150 0.000000 + 0 gene_id "AK307192"; transcript_id "AK307192:uc010zyr.2";
+chr20 hg19_knownGene exon 48894028 48894150 0.000000 + . gene_id "AK307192"; transcript_id "AK307192:uc010zyr.2";
+chr20 hg19_knownGene CDS 48894714 48894863 0.000000 + 0 gene_id "AK307192"; transcript_id "AK307192:uc010zyr.2";
+chr20 hg19_knownGene exon 48894714 48895368 0.000000 + . gene_id "AK307192"; transcript_id "AK307192:uc010zyr.2";
+chr20 hg19_knownGene exon 48909257 48909367 0.000000 + . gene_id "LOC284751"; transcript_id "NR_034124:uc002xvk.2";
+chr20 hg19_knownGene exon 48914693 48914950 0.000000 + . gene_id "LOC284751"; transcript_id "NR_034124:uc002xvk.2";
+chr20 hg19_knownGene exon 48928342 48928551 0.000000 + . gene_id "LOC284751"; transcript_id "NR_034124:uc002xvk.2";
+chr20 hg19_knownGene exon 48928889 48928967 0.000000 + . gene_id "LOC284751"; transcript_id "NR_034124:uc002xvk.2";
+chr20 hg19_knownGene exon 48929837 48931456 0.000000 + . gene_id "LOC284751"; transcript_id "NR_034124:uc002xvk.2";
+chr20 hg19_knownGene exon 48952342 48952423 0.000000 - . gene_id "TRNA_Leu"; transcript_id ":uc021wes.1";
+chr20 hg19_knownGene CDS 49127065 49127127 0.000000 + 0 gene_id "PTPN1"; transcript_id "NM_002827:uc002xvl.3";
+chr20 hg19_knownGene exon 49126891 49127127 0.000000 + . gene_id "PTPN1"; transcript_id "NM_002827:uc002xvl.3";
+chr20 hg19_knownGene CDS 49177900 49177990 0.000000 + 0 gene_id "PTPN1"; transcript_id "NM_002827:uc002xvl.3";
+chr20 hg19_knownGene exon 49177900 49177990 0.000000 + . gene_id "PTPN1"; transcript_id "NM_002827:uc002xvl.3";
+chr20 hg19_knownGene CDS 49181506 49181606 0.000000 + 2 gene_id "PTPN1"; transcript_id "NM_002827:uc002xvl.3";
+chr20 hg19_knownGene exon 49181506 49181606 0.000000 + . gene_id "PTPN1"; transcript_id "NM_002827:uc002xvl.3";
+chr20 hg19_knownGene CDS 49184917 49185015 0.000000 + 0 gene_id "PTPN1"; transcript_id "NM_002827:uc002xvl.3";
+chr20 hg19_knownGene exon 49184917 49185015 0.000000 + . gene_id "PTPN1"; transcript_id "NM_002827:uc002xvl.3";
+chr20 hg19_knownGene CDS 49191054 49191191 0.000000 + 0 gene_id "PTPN1"; transcript_id "NM_002827:uc002xvl.3";
+chr20 hg19_knownGene exon 49191054 49191191 0.000000 + . gene_id "PTPN1"; transcript_id "NM_002827:uc002xvl.3";
+chr20 hg19_knownGene CDS 49194957 49195166 0.000000 + 0 gene_id "PTPN1"; transcript_id "NM_002827:uc002xvl.3";
+chr20 hg19_knownGene exon 49194957 49195166 0.000000 + . gene_id "PTPN1"; transcript_id "NM_002827:uc002xvl.3";
+chr20 hg19_knownGene CDS 49195705 49195866 0.000000 + 0 gene_id "PTPN1"; transcript_id "NM_002827:uc002xvl.3";
+chr20 hg19_knownGene exon 49195705 49195866 0.000000 + . gene_id "PTPN1"; transcript_id "NM_002827:uc002xvl.3";
+chr20 hg19_knownGene CDS 49196240 49196463 0.000000 + 0 gene_id "PTPN1"; transcript_id "NM_002827:uc002xvl.3";
+chr20 hg19_knownGene exon 49196240 49196463 0.000000 + . gene_id "PTPN1"; transcript_id "NM_002827:uc002xvl.3";
+chr20 hg19_knownGene CDS 49197802 49197997 0.000000 + 1 gene_id "PTPN1"; transcript_id "NM_002827:uc002xvl.3";
+chr20 hg19_knownGene exon 49197802 49197997 0.000000 + . gene_id "PTPN1"; transcript_id "NM_002827:uc002xvl.3";
+chr20 hg19_knownGene CDS 49199229 49199249 0.000000 + 0 gene_id "PTPN1"; transcript_id "NM_002827:uc002xvl.3";
+chr20 hg19_knownGene exon 49199229 49201086 0.000000 + . gene_id "PTPN1"; transcript_id "NM_002827:uc002xvl.3";
+chr20 hg19_knownGene exon 49126891 49127127 0.000000 + . gene_id "PTPN1"; transcript_id "AK299830:uc010zys.2";
+chr20 hg19_knownGene CDS 49181571 49181606 0.000000 + 0 gene_id "PTPN1"; transcript_id "AK299830:uc010zys.2";
+chr20 hg19_knownGene exon 49181506 49181606 0.000000 + . gene_id "PTPN1"; transcript_id "AK299830:uc010zys.2";
+chr20 hg19_knownGene CDS 49184917 49185015 0.000000 + 0 gene_id "PTPN1"; transcript_id "AK299830:uc010zys.2";
+chr20 hg19_knownGene exon 49184917 49185015 0.000000 + . gene_id "PTPN1"; transcript_id "AK299830:uc010zys.2";
+chr20 hg19_knownGene CDS 49191054 49191191 0.000000 + 0 gene_id "PTPN1"; transcript_id "AK299830:uc010zys.2";
+chr20 hg19_knownGene exon 49191054 49191191 0.000000 + . gene_id "PTPN1"; transcript_id "AK299830:uc010zys.2";
+chr20 hg19_knownGene CDS 49194957 49195166 0.000000 + 0 gene_id "PTPN1"; transcript_id "AK299830:uc010zys.2";
+chr20 hg19_knownGene exon 49194957 49195166 0.000000 + . gene_id "PTPN1"; transcript_id "AK299830:uc010zys.2";
+chr20 hg19_knownGene CDS 49195705 49195866 0.000000 + 0 gene_id "PTPN1"; transcript_id "AK299830:uc010zys.2";
+chr20 hg19_knownGene exon 49195705 49195866 0.000000 + . gene_id "PTPN1"; transcript_id "AK299830:uc010zys.2";
+chr20 hg19_knownGene CDS 49196240 49196463 0.000000 + 0 gene_id "PTPN1"; transcript_id "AK299830:uc010zys.2";
+chr20 hg19_knownGene exon 49196240 49196463 0.000000 + . gene_id "PTPN1"; transcript_id "AK299830:uc010zys.2";
+chr20 hg19_knownGene CDS 49197802 49197997 0.000000 + 1 gene_id "PTPN1"; transcript_id "AK299830:uc010zys.2";
+chr20 hg19_knownGene exon 49197802 49197997 0.000000 + . gene_id "PTPN1"; transcript_id "AK299830:uc010zys.2";
+chr20 hg19_knownGene CDS 49199229 49199249 0.000000 + 0 gene_id "PTPN1"; transcript_id "AK299830:uc010zys.2";
+chr20 hg19_knownGene exon 49199229 49201086 0.000000 + . gene_id "PTPN1"; transcript_id "AK299830:uc010zys.2";
+chr20 hg19_knownGene exon 49202323 49202416 0.000000 + . gene_id "MIR645"; transcript_id "NR_030375:uc021wet.1";
+chr20 hg19_knownGene CDS 49203772 49203869 0.000000 - 2 gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene exon 49202647 49203869 0.000000 - . gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene CDS 49204339 49204429 0.000000 - 0 gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene exon 49204339 49204429 0.000000 - . gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene CDS 49206223 49206306 0.000000 - 0 gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene exon 49206223 49206306 0.000000 - . gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene CDS 49208881 49209083 0.000000 - 2 gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene exon 49208881 49209083 0.000000 - . gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene CDS 49209572 49209733 0.000000 - 2 gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene exon 49209572 49209733 0.000000 - . gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene CDS 49211090 49211251 0.000000 - 2 gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene exon 49211090 49211251 0.000000 - . gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene CDS 49211906 49212041 0.000000 - 0 gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene exon 49211906 49212041 0.000000 - . gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene CDS 49212677 49212800 0.000000 - 1 gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene exon 49212677 49212800 0.000000 - . gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene CDS 49214117 49214247 0.000000 - 0 gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene exon 49214117 49214247 0.000000 - . gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene CDS 49218609 49219181 0.000000 - 0 gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene exon 49218609 49219181 0.000000 - . gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene CDS 49221182 49221311 0.000000 - 1 gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene exon 49221182 49221311 0.000000 - . gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene CDS 49224926 49225071 0.000000 - 0 gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene exon 49224926 49225071 0.000000 - . gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene CDS 49225150 49225275 0.000000 - 0 gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene exon 49225150 49225275 0.000000 - . gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene CDS 49225449 49225492 0.000000 - 2 gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene exon 49225449 49225492 0.000000 - . gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene CDS 49225830 49225893 0.000000 - 0 gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene exon 49225830 49225893 0.000000 - . gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene CDS 49226110 49226259 0.000000 - 0 gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene exon 49226110 49226259 0.000000 - . gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene CDS 49227390 49227443 0.000000 - 0 gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene exon 49227390 49227443 0.000000 - . gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene CDS 49227718 49227741 0.000000 - 0 gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene exon 49227718 49227741 0.000000 - . gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene CDS 49232539 49232617 0.000000 - 1 gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene exon 49232539 49232617 0.000000 - . gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene CDS 49236523 49236669 0.000000 - 1 gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene exon 49236523 49236669 0.000000 - . gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene CDS 49247275 49247384 0.000000 - 0 gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene exon 49247275 49247393 0.000000 - . gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene exon 49253118 49253426 0.000000 - . gene_id "FAM65C"; transcript_id "NM_080829:uc002xvm.3";
+chr20 hg19_knownGene CDS 49214116 49214247 0.000000 - 0 gene_id "FAM65C"; transcript_id "AK056792:uc002xvn.1";
+chr20 hg19_knownGene exon 49213515 49214247 0.000000 - . gene_id "FAM65C"; transcript_id "AK056792:uc002xvn.1";
+chr20 hg19_knownGene CDS 49218609 49219181 0.000000 - 0 gene_id "FAM65C"; transcript_id "AK056792:uc002xvn.1";
+chr20 hg19_knownGene exon 49218609 49219181 0.000000 - . gene_id "FAM65C"; transcript_id "AK056792:uc002xvn.1";
+chr20 hg19_knownGene CDS 49221182 49221311 0.000000 - 1 gene_id "FAM65C"; transcript_id "AK056792:uc002xvn.1";
+chr20 hg19_knownGene exon 49221182 49221311 0.000000 - . gene_id "FAM65C"; transcript_id "AK056792:uc002xvn.1";
+chr20 hg19_knownGene CDS 49224926 49225071 0.000000 - 0 gene_id "FAM65C"; transcript_id "AK056792:uc002xvn.1";
+chr20 hg19_knownGene exon 49224926 49225071 0.000000 - . gene_id "FAM65C"; transcript_id "AK056792:uc002xvn.1";
+chr20 hg19_knownGene CDS 49225150 49225275 0.000000 - 0 gene_id "FAM65C"; transcript_id "AK056792:uc002xvn.1";
+chr20 hg19_knownGene exon 49225150 49225275 0.000000 - . gene_id "FAM65C"; transcript_id "AK056792:uc002xvn.1";
+chr20 hg19_knownGene CDS 49225449 49225492 0.000000 - 2 gene_id "FAM65C"; transcript_id "AK056792:uc002xvn.1";
+chr20 hg19_knownGene exon 49225449 49225492 0.000000 - . gene_id "FAM65C"; transcript_id "AK056792:uc002xvn.1";
+chr20 hg19_knownGene CDS 49225830 49225893 0.000000 - 0 gene_id "FAM65C"; transcript_id "AK056792:uc002xvn.1";
+chr20 hg19_knownGene exon 49225830 49225893 0.000000 - . gene_id "FAM65C"; transcript_id "AK056792:uc002xvn.1";
+chr20 hg19_knownGene CDS 49226110 49226259 0.000000 - 0 gene_id "FAM65C"; transcript_id "AK056792:uc002xvn.1";
+chr20 hg19_knownGene exon 49226110 49226259 0.000000 - . gene_id "FAM65C"; transcript_id "AK056792:uc002xvn.1";
+chr20 hg19_knownGene CDS 49227390 49227443 0.000000 - 0 gene_id "FAM65C"; transcript_id "AK056792:uc002xvn.1";
+chr20 hg19_knownGene exon 49227390 49227443 0.000000 - . gene_id "FAM65C"; transcript_id "AK056792:uc002xvn.1";
+chr20 hg19_knownGene CDS 49227718 49227741 0.000000 - 0 gene_id "FAM65C"; transcript_id "AK056792:uc002xvn.1";
+chr20 hg19_knownGene exon 49227718 49227741 0.000000 - . gene_id "FAM65C"; transcript_id "AK056792:uc002xvn.1";
+chr20 hg19_knownGene CDS 49232539 49232617 0.000000 - 1 gene_id "FAM65C"; transcript_id "AK056792:uc002xvn.1";
+chr20 hg19_knownGene exon 49232539 49232617 0.000000 - . gene_id "FAM65C"; transcript_id "AK056792:uc002xvn.1";
+chr20 hg19_knownGene CDS 49236523 49236669 0.000000 - 1 gene_id "FAM65C"; transcript_id "AK056792:uc002xvn.1";
+chr20 hg19_knownGene exon 49236523 49236669 0.000000 - . gene_id "FAM65C"; transcript_id "AK056792:uc002xvn.1";
+chr20 hg19_knownGene CDS 49247275 49247384 0.000000 - 0 gene_id "FAM65C"; transcript_id "AK056792:uc002xvn.1";
+chr20 hg19_knownGene exon 49247275 49247393 0.000000 - . gene_id "FAM65C"; transcript_id "AK056792:uc002xvn.1";
+chr20 hg19_knownGene exon 49253118 49253426 0.000000 - . gene_id "FAM65C"; transcript_id "AK056792:uc002xvn.1";
+chr20 hg19_knownGene exon 49209572 49209733 0.000000 - . gene_id "FAM65C"; transcript_id "AK295781:uc010zyu.1";
+chr20 hg19_knownGene exon 49211090 49211251 0.000000 - . gene_id "FAM65C"; transcript_id "AK295781:uc010zyu.1";
+chr20 hg19_knownGene exon 49211906 49212015 0.000000 - . gene_id "FAM65C"; transcript_id "AK295781:uc010zyu.1";
+chr20 hg19_knownGene exon 49212677 49212800 0.000000 - . gene_id "FAM65C"; transcript_id "AK295781:uc010zyu.1";
+chr20 hg19_knownGene exon 49214117 49214247 0.000000 - . gene_id "FAM65C"; transcript_id "AK295781:uc010zyu.1";
+chr20 hg19_knownGene exon 49218609 49219181 0.000000 - . gene_id "FAM65C"; transcript_id "AK295781:uc010zyu.1";
+chr20 hg19_knownGene exon 49221182 49221311 0.000000 - . gene_id "FAM65C"; transcript_id "AK295781:uc010zyu.1";
+chr20 hg19_knownGene exon 49224926 49225071 0.000000 - . gene_id "FAM65C"; transcript_id "AK295781:uc010zyu.1";
+chr20 hg19_knownGene exon 49225150 49225275 0.000000 - . gene_id "FAM65C"; transcript_id "AK295781:uc010zyu.1";
+chr20 hg19_knownGene exon 49225449 49225492 0.000000 - . gene_id "FAM65C"; transcript_id "AK295781:uc010zyu.1";
+chr20 hg19_knownGene exon 49225830 49225893 0.000000 - . gene_id "FAM65C"; transcript_id "AK295781:uc010zyu.1";
+chr20 hg19_knownGene exon 49226110 49226259 0.000000 - . gene_id "FAM65C"; transcript_id "AK295781:uc010zyu.1";
+chr20 hg19_knownGene exon 49227390 49227443 0.000000 - . gene_id "FAM65C"; transcript_id "AK295781:uc010zyu.1";
+chr20 hg19_knownGene exon 49227718 49227741 0.000000 - . gene_id "FAM65C"; transcript_id "AK295781:uc010zyu.1";
+chr20 hg19_knownGene exon 49232539 49232617 0.000000 - . gene_id "FAM65C"; transcript_id "AK295781:uc010zyu.1";
+chr20 hg19_knownGene exon 49236523 49236669 0.000000 - . gene_id "FAM65C"; transcript_id "AK295781:uc010zyu.1";
+chr20 hg19_knownGene exon 49247275 49247393 0.000000 - . gene_id "FAM65C"; transcript_id "AK295781:uc010zyu.1";
+chr20 hg19_knownGene exon 49307478 49307758 0.000000 - . gene_id "FAM65C"; transcript_id "AK295781:uc010zyu.1";
+chr20 hg19_knownGene CDS 49203772 49203869 0.000000 - 2 gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene exon 49202647 49203869 0.000000 - . gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene CDS 49204339 49204429 0.000000 - 0 gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene exon 49204339 49204429 0.000000 - . gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene CDS 49206223 49206306 0.000000 - 0 gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene exon 49206223 49206306 0.000000 - . gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene CDS 49208881 49209083 0.000000 - 2 gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene exon 49208881 49209083 0.000000 - . gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene CDS 49209572 49209733 0.000000 - 2 gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene exon 49209572 49209733 0.000000 - . gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene CDS 49211090 49211251 0.000000 - 2 gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene exon 49211090 49211251 0.000000 - . gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene CDS 49211906 49212041 0.000000 - 0 gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene exon 49211906 49212041 0.000000 - . gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene CDS 49212677 49212800 0.000000 - 1 gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene exon 49212677 49212800 0.000000 - . gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene CDS 49214117 49214247 0.000000 - 0 gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene exon 49214117 49214247 0.000000 - . gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene CDS 49218609 49219181 0.000000 - 0 gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene exon 49218609 49219181 0.000000 - . gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene CDS 49221182 49221311 0.000000 - 1 gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene exon 49221182 49221311 0.000000 - . gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene CDS 49224926 49225071 0.000000 - 0 gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene exon 49224926 49225071 0.000000 - . gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene CDS 49225150 49225275 0.000000 - 0 gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene exon 49225150 49225275 0.000000 - . gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene CDS 49225449 49225492 0.000000 - 2 gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene exon 49225449 49225492 0.000000 - . gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene CDS 49225830 49225893 0.000000 - 0 gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene exon 49225830 49225893 0.000000 - . gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene CDS 49226110 49226259 0.000000 - 0 gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene exon 49226110 49226259 0.000000 - . gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene CDS 49227390 49227443 0.000000 - 0 gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene exon 49227390 49227443 0.000000 - . gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene CDS 49227718 49227741 0.000000 - 0 gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene exon 49227718 49227741 0.000000 - . gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene CDS 49232539 49232617 0.000000 - 1 gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene exon 49232539 49232617 0.000000 - . gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene CDS 49236523 49236669 0.000000 - 1 gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene exon 49236523 49236669 0.000000 - . gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene CDS 49247275 49247393 0.000000 - 0 gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene exon 49247275 49247393 0.000000 - . gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene CDS 49307663 49307665 0.000000 - 0 gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene exon 49307663 49307916 0.000000 - . gene_id "FAM65C"; transcript_id "AK299337:uc010zyt.2";
+chr20 hg19_knownGene CDS 49348324 49348389 0.000000 + 0 gene_id "PARD6B"; transcript_id "NM_032521:uc002xvo.3";
+chr20 hg19_knownGene exon 49348081 49348389 0.000000 + . gene_id "PARD6B"; transcript_id "NM_032521:uc002xvo.3";
+chr20 hg19_knownGene CDS 49354394 49354616 0.000000 + 0 gene_id "PARD6B"; transcript_id "NM_032521:uc002xvo.3";
+chr20 hg19_knownGene exon 49354394 49354616 0.000000 + . gene_id "PARD6B"; transcript_id "NM_032521:uc002xvo.3";
+chr20 hg19_knownGene CDS 49366196 49367022 0.000000 + 2 gene_id "PARD6B"; transcript_id "NM_032521:uc002xvo.3";
+chr20 hg19_knownGene exon 49366196 49370278 0.000000 + . gene_id "PARD6B"; transcript_id "NM_032521:uc002xvo.3";
+chr20 hg19_knownGene CDS 49411531 49411710 0.000000 + 0 gene_id "BCAS4"; transcript_id "BC056883:uc002xvp.1";
+chr20 hg19_knownGene exon 49411467 49411710 0.000000 + . gene_id "BCAS4"; transcript_id "BC056883:uc002xvp.1";
+chr20 hg19_knownGene CDS 49434748 49434819 0.000000 + 0 gene_id "BCAS4"; transcript_id "BC056883:uc002xvp.1";
+chr20 hg19_knownGene exon 49434748 49434819 0.000000 + . gene_id "BCAS4"; transcript_id "BC056883:uc002xvp.1";
+chr20 hg19_knownGene CDS 49446816 49446917 0.000000 + 0 gene_id "BCAS4"; transcript_id "BC056883:uc002xvp.1";
+chr20 hg19_knownGene exon 49446816 49446917 0.000000 + . gene_id "BCAS4"; transcript_id "BC056883:uc002xvp.1";
+chr20 hg19_knownGene CDS 49457074 49457076 0.000000 + 0 gene_id "BCAS4"; transcript_id "BC056883:uc002xvp.1";
+chr20 hg19_knownGene exon 49457074 49457463 0.000000 + . gene_id "BCAS4"; transcript_id "BC056883:uc002xvp.1";
+chr20 hg19_knownGene CDS 49411531 49411710 0.000000 + 0 gene_id "BCAS4"; transcript_id "NM_017843:uc002xvq.3";
+chr20 hg19_knownGene exon 49411467 49411710 0.000000 + . gene_id "BCAS4"; transcript_id "NM_017843:uc002xvq.3";
+chr20 hg19_knownGene CDS 49434748 49434819 0.000000 + 0 gene_id "BCAS4"; transcript_id "NM_017843:uc002xvq.3";
+chr20 hg19_knownGene exon 49434748 49434819 0.000000 + . gene_id "BCAS4"; transcript_id "NM_017843:uc002xvq.3";
+chr20 hg19_knownGene CDS 49446816 49446917 0.000000 + 0 gene_id "BCAS4"; transcript_id "NM_017843:uc002xvq.3";
+chr20 hg19_knownGene exon 49446816 49446917 0.000000 + . gene_id "BCAS4"; transcript_id "NM_017843:uc002xvq.3";
+chr20 hg19_knownGene CDS 49458303 49458437 0.000000 + 0 gene_id "BCAS4"; transcript_id "NM_017843:uc002xvq.3";
+chr20 hg19_knownGene exon 49458303 49458437 0.000000 + . gene_id "BCAS4"; transcript_id "NM_017843:uc002xvq.3";
+chr20 hg19_knownGene CDS 49492534 49492630 0.000000 + 0 gene_id "BCAS4"; transcript_id "NM_017843:uc002xvq.3";
+chr20 hg19_knownGene exon 49492534 49492630 0.000000 + . gene_id "BCAS4"; transcript_id "NM_017843:uc002xvq.3";
+chr20 hg19_knownGene CDS 49493023 49493069 0.000000 + 2 gene_id "BCAS4"; transcript_id "NM_017843:uc002xvq.3";
+chr20 hg19_knownGene exon 49493023 49493714 0.000000 + . gene_id "BCAS4"; transcript_id "NM_017843:uc002xvq.3";
+chr20 hg19_knownGene CDS 49411531 49411710 0.000000 + 0 gene_id "BCAS4"; transcript_id "NM_198799:uc002xvr.3";
+chr20 hg19_knownGene exon 49411467 49411710 0.000000 + . gene_id "BCAS4"; transcript_id "NM_198799:uc002xvr.3";
+chr20 hg19_knownGene CDS 49434748 49434819 0.000000 + 0 gene_id "BCAS4"; transcript_id "NM_198799:uc002xvr.3";
+chr20 hg19_knownGene exon 49434748 49434819 0.000000 + . gene_id "BCAS4"; transcript_id "NM_198799:uc002xvr.3";
+chr20 hg19_knownGene CDS 49446816 49446917 0.000000 + 0 gene_id "BCAS4"; transcript_id "NM_198799:uc002xvr.3";
+chr20 hg19_knownGene exon 49446816 49446917 0.000000 + . gene_id "BCAS4"; transcript_id "NM_198799:uc002xvr.3";
+chr20 hg19_knownGene CDS 49458303 49458437 0.000000 + 0 gene_id "BCAS4"; transcript_id "NM_198799:uc002xvr.3";
+chr20 hg19_knownGene exon 49458303 49458437 0.000000 + . gene_id "BCAS4"; transcript_id "NM_198799:uc002xvr.3";
+chr20 hg19_knownGene CDS 49493023 49493142 0.000000 + 0 gene_id "BCAS4"; transcript_id "NM_198799:uc002xvr.3";
+chr20 hg19_knownGene exon 49493023 49493714 0.000000 + . gene_id "BCAS4"; transcript_id "NM_198799:uc002xvr.3";
+chr20 hg19_knownGene CDS 49411531 49411710 0.000000 + 0 gene_id "BCAS4"; transcript_id "NM_001010974:uc002xvs.3";
+chr20 hg19_knownGene exon 49411467 49411710 0.000000 + . gene_id "BCAS4"; transcript_id "NM_001010974:uc002xvs.3";
+chr20 hg19_knownGene CDS 49434748 49434819 0.000000 + 0 gene_id "BCAS4"; transcript_id "NM_001010974:uc002xvs.3";
+chr20 hg19_knownGene exon 49434748 49434819 0.000000 + . gene_id "BCAS4"; transcript_id "NM_001010974:uc002xvs.3";
+chr20 hg19_knownGene CDS 49446816 49446917 0.000000 + 0 gene_id "BCAS4"; transcript_id "NM_001010974:uc002xvs.3";
+chr20 hg19_knownGene exon 49446816 49446917 0.000000 + . gene_id "BCAS4"; transcript_id "NM_001010974:uc002xvs.3";
+chr20 hg19_knownGene CDS 49493023 49493142 0.000000 + 0 gene_id "BCAS4"; transcript_id "NM_001010974:uc002xvs.3";
+chr20 hg19_knownGene exon 49493023 49493714 0.000000 + . gene_id "BCAS4"; transcript_id "NM_001010974:uc002xvs.3";
+chr20 hg19_knownGene CDS 49507945 49511049 0.000000 - 0 gene_id "ADNP"; transcript_id "NM_015339:uc002xvt.1";
+chr20 hg19_knownGene exon 49506883 49511049 0.000000 - . gene_id "ADNP"; transcript_id "NM_015339:uc002xvt.1";
+chr20 hg19_knownGene CDS 49518554 49518646 0.000000 - 0 gene_id "ADNP"; transcript_id "NM_015339:uc002xvt.1";
+chr20 hg19_knownGene exon 49518554 49518646 0.000000 - . gene_id "ADNP"; transcript_id "NM_015339:uc002xvt.1";
+chr20 hg19_knownGene CDS 49520426 49520533 0.000000 - 0 gene_id "ADNP"; transcript_id "NM_015339:uc002xvt.1";
+chr20 hg19_knownGene exon 49520426 49520538 0.000000 - . gene_id "ADNP"; transcript_id "NM_015339:uc002xvt.1";
+chr20 hg19_knownGene exon 49545188 49545362 0.000000 - . gene_id "ADNP"; transcript_id "NM_015339:uc002xvt.1";
+chr20 hg19_knownGene exon 49547363 49547527 0.000000 - . gene_id "ADNP"; transcript_id "NM_015339:uc002xvt.1";
+chr20 hg19_knownGene CDS 49507945 49511049 0.000000 - 0 gene_id "ADNP"; transcript_id "NM_181442:uc002xvu.1";
+chr20 hg19_knownGene exon 49506883 49511049 0.000000 - . gene_id "ADNP"; transcript_id "NM_181442:uc002xvu.1";
+chr20 hg19_knownGene CDS 49518554 49518646 0.000000 - 0 gene_id "ADNP"; transcript_id "NM_181442:uc002xvu.1";
+chr20 hg19_knownGene exon 49518554 49518646 0.000000 - . gene_id "ADNP"; transcript_id "NM_181442:uc002xvu.1";
+chr20 hg19_knownGene CDS 49520426 49520533 0.000000 - 0 gene_id "ADNP"; transcript_id "NM_181442:uc002xvu.1";
+chr20 hg19_knownGene exon 49520426 49520538 0.000000 - . gene_id "ADNP"; transcript_id "NM_181442:uc002xvu.1";
+chr20 hg19_knownGene exon 49547363 49547527 0.000000 - . gene_id "ADNP"; transcript_id "NM_181442:uc002xvu.1";
+chr20 hg19_knownGene CDS 49551672 49551773 0.000000 - 0 gene_id "DPM1"; transcript_id "NM_003859:uc002xvw.1";
+chr20 hg19_knownGene exon 49551405 49551773 0.000000 - . gene_id "DPM1"; transcript_id "NM_003859:uc002xvw.1";
+chr20 hg19_knownGene CDS 49552685 49552799 0.000000 - 1 gene_id "DPM1"; transcript_id "NM_003859:uc002xvw.1";
+chr20 hg19_knownGene exon 49552685 49552799 0.000000 - . gene_id "DPM1"; transcript_id "NM_003859:uc002xvw.1";
+chr20 hg19_knownGene CDS 49557402 49557470 0.000000 - 1 gene_id "DPM1"; transcript_id "NM_003859:uc002xvw.1";
+chr20 hg19_knownGene exon 49557402 49557470 0.000000 - . gene_id "DPM1"; transcript_id "NM_003859:uc002xvw.1";
+chr20 hg19_knownGene CDS 49558568 49558663 0.000000 - 1 gene_id "DPM1"; transcript_id "NM_003859:uc002xvw.1";
+chr20 hg19_knownGene exon 49558568 49558663 0.000000 - . gene_id "DPM1"; transcript_id "NM_003859:uc002xvw.1";
+chr20 hg19_knownGene CDS 49562274 49562299 0.000000 - 0 gene_id "DPM1"; transcript_id "NM_003859:uc002xvw.1";
+chr20 hg19_knownGene exon 49562274 49562299 0.000000 - . gene_id "DPM1"; transcript_id "NM_003859:uc002xvw.1";
+chr20 hg19_knownGene CDS 49562384 49562460 0.000000 - 2 gene_id "DPM1"; transcript_id "NM_003859:uc002xvw.1";
+chr20 hg19_knownGene exon 49562384 49562460 0.000000 - . gene_id "DPM1"; transcript_id "NM_003859:uc002xvw.1";
+chr20 hg19_knownGene CDS 49565166 49565199 0.000000 - 0 gene_id "DPM1"; transcript_id "NM_003859:uc002xvw.1";
+chr20 hg19_knownGene exon 49565166 49565199 0.000000 - . gene_id "DPM1"; transcript_id "NM_003859:uc002xvw.1";
+chr20 hg19_knownGene CDS 49571723 49571822 0.000000 - 1 gene_id "DPM1"; transcript_id "NM_003859:uc002xvw.1";
+chr20 hg19_knownGene exon 49571723 49571822 0.000000 - . gene_id "DPM1"; transcript_id "NM_003859:uc002xvw.1";
+chr20 hg19_knownGene CDS 49574900 49575060 0.000000 - 0 gene_id "DPM1"; transcript_id "NM_003859:uc002xvw.1";
+chr20 hg19_knownGene exon 49574900 49575060 0.000000 - . gene_id "DPM1"; transcript_id "NM_003859:uc002xvw.1";
+chr20 hg19_knownGene exon 49551405 49551773 0.000000 - . gene_id "DPM1"; transcript_id "BC008427:uc002xvx.1";
+chr20 hg19_knownGene exon 49552685 49552799 0.000000 - . gene_id "DPM1"; transcript_id "BC008427:uc002xvx.1";
+chr20 hg19_knownGene exon 49557402 49557492 0.000000 - . gene_id "DPM1"; transcript_id "BC008427:uc002xvx.1";
+chr20 hg19_knownGene exon 49558568 49558663 0.000000 - . gene_id "DPM1"; transcript_id "BC008427:uc002xvx.1";
+chr20 hg19_knownGene exon 49562274 49562299 0.000000 - . gene_id "DPM1"; transcript_id "BC008427:uc002xvx.1";
+chr20 hg19_knownGene exon 49562384 49562460 0.000000 - . gene_id "DPM1"; transcript_id "BC008427:uc002xvx.1";
+chr20 hg19_knownGene exon 49565166 49565199 0.000000 - . gene_id "DPM1"; transcript_id "BC008427:uc002xvx.1";
+chr20 hg19_knownGene exon 49571723 49571822 0.000000 - . gene_id "DPM1"; transcript_id "BC008427:uc002xvx.1";
+chr20 hg19_knownGene exon 49574900 49575060 0.000000 - . gene_id "DPM1"; transcript_id "BC008427:uc002xvx.1";
+chr20 hg19_knownGene CDS 49575380 49576759 0.000000 + 0 gene_id "MOCS3"; transcript_id "NM_014484:uc002xvy.1";
+chr20 hg19_knownGene exon 49575363 49577820 0.000000 + . gene_id "MOCS3"; transcript_id "NM_014484:uc002xvy.1";
+chr20 hg19_knownGene CDS 49626051 49626875 0.000000 - 0 gene_id "KCNG1"; transcript_id "BC006367:uc002xwb.3";
+chr20 hg19_knownGene exon 49625216 49626901 0.000000 - . gene_id "KCNG1"; transcript_id "BC006367:uc002xwb.3";
+chr20 hg19_knownGene exon 49628896 49628953 0.000000 - . gene_id "KCNG1"; transcript_id "BC006367:uc002xwb.3";
+chr20 hg19_knownGene exon 49639191 49639617 0.000000 - . gene_id "KCNG1"; transcript_id "BC006367:uc002xwb.3";
+chr20 hg19_knownGene CDS 49620579 49621343 0.000000 - 0 gene_id "KCNG1"; transcript_id "NM_002237:uc002xwa.4";
+chr20 hg19_knownGene exon 49620193 49621343 0.000000 - . gene_id "KCNG1"; transcript_id "NM_002237:uc002xwa.4";
+chr20 hg19_knownGene CDS 49626102 49626875 0.000000 - 0 gene_id "KCNG1"; transcript_id "NM_002237:uc002xwa.4";
+chr20 hg19_knownGene exon 49626102 49626901 0.000000 - . gene_id "KCNG1"; transcript_id "NM_002237:uc002xwa.4";
+chr20 hg19_knownGene exon 49639407 49639675 0.000000 - . gene_id "KCNG1"; transcript_id "NM_002237:uc002xwa.4";
+chr20 hg19_knownGene exon 50069442 50069514 0.000000 - . gene_id "MIR3194"; transcript_id "NR_036162:uc021weu.1";
+chr20 hg19_knownGene exon 50007765 50007988 0.000000 - . gene_id "NFATC2"; transcript_id "NM_012340:uc002xwc.3";
+chr20 hg19_knownGene CDS 50015227 50015267 0.000000 - 2 gene_id "NFATC2"; transcript_id "NM_012340:uc002xwc.3";
+chr20 hg19_knownGene exon 50015180 50015267 0.000000 - . gene_id "NFATC2"; transcript_id "NM_012340:uc002xwc.3";
+chr20 hg19_knownGene CDS 50048604 50049293 0.000000 - 2 gene_id "NFATC2"; transcript_id "NM_012340:uc002xwc.3";
+chr20 hg19_knownGene exon 50048604 50049293 0.000000 - . gene_id "NFATC2"; transcript_id "NM_012340:uc002xwc.3";
+chr20 hg19_knownGene CDS 50051725 50051851 0.000000 - 0 gene_id "NFATC2"; transcript_id "NM_012340:uc002xwc.3";
+chr20 hg19_knownGene exon 50051725 50051851 0.000000 - . gene_id "NFATC2"; transcript_id "NM_012340:uc002xwc.3";
+chr20 hg19_knownGene CDS 50052243 50052298 0.000000 - 2 gene_id "NFATC2"; transcript_id "NM_012340:uc002xwc.3";
+chr20 hg19_knownGene exon 50052243 50052298 0.000000 - . gene_id "NFATC2"; transcript_id "NM_012340:uc002xwc.3";
+chr20 hg19_knownGene CDS 50071085 50071225 0.000000 - 2 gene_id "NFATC2"; transcript_id "NM_012340:uc002xwc.3";
+chr20 hg19_knownGene exon 50071085 50071225 0.000000 - . gene_id "NFATC2"; transcript_id "NM_012340:uc002xwc.3";
+chr20 hg19_knownGene CDS 50090517 50090689 0.000000 - 1 gene_id "NFATC2"; transcript_id "NM_012340:uc002xwc.3";
+chr20 hg19_knownGene exon 50090517 50090689 0.000000 - . gene_id "NFATC2"; transcript_id "NM_012340:uc002xwc.3";
+chr20 hg19_knownGene CDS 50091995 50092197 0.000000 - 0 gene_id "NFATC2"; transcript_id "NM_012340:uc002xwc.3";
+chr20 hg19_knownGene exon 50091995 50092197 0.000000 - . gene_id "NFATC2"; transcript_id "NM_012340:uc002xwc.3";
+chr20 hg19_knownGene CDS 50133323 50133494 0.000000 - 1 gene_id "NFATC2"; transcript_id "NM_012340:uc002xwc.3";
+chr20 hg19_knownGene exon 50133323 50133494 0.000000 - . gene_id "NFATC2"; transcript_id "NM_012340:uc002xwc.3";
+chr20 hg19_knownGene CDS 50139620 50140649 0.000000 - 2 gene_id "NFATC2"; transcript_id "NM_012340:uc002xwc.3";
+chr20 hg19_knownGene exon 50139620 50140649 0.000000 - . gene_id "NFATC2"; transcript_id "NM_012340:uc002xwc.3";
+chr20 hg19_knownGene CDS 50158909 50159038 0.000000 - 0 gene_id "NFATC2"; transcript_id "NM_012340:uc002xwc.3";
+chr20 hg19_knownGene exon 50158909 50159258 0.000000 - . gene_id "NFATC2"; transcript_id "NM_012340:uc002xwc.3";
+chr20 hg19_knownGene CDS 50007936 50007988 0.000000 - 2 gene_id "NFATC2"; transcript_id "NM_173091:uc002xwd.3";
+chr20 hg19_knownGene exon 50007765 50007988 0.000000 - . gene_id "NFATC2"; transcript_id "NM_173091:uc002xwd.3";
+chr20 hg19_knownGene CDS 50048604 50049293 0.000000 - 2 gene_id "NFATC2"; transcript_id "NM_173091:uc002xwd.3";
+chr20 hg19_knownGene exon 50048604 50049293 0.000000 - . gene_id "NFATC2"; transcript_id "NM_173091:uc002xwd.3";
+chr20 hg19_knownGene CDS 50051725 50051851 0.000000 - 0 gene_id "NFATC2"; transcript_id "NM_173091:uc002xwd.3";
+chr20 hg19_knownGene exon 50051725 50051851 0.000000 - . gene_id "NFATC2"; transcript_id "NM_173091:uc002xwd.3";
+chr20 hg19_knownGene CDS 50052243 50052298 0.000000 - 2 gene_id "NFATC2"; transcript_id "NM_173091:uc002xwd.3";
+chr20 hg19_knownGene exon 50052243 50052298 0.000000 - . gene_id "NFATC2"; transcript_id "NM_173091:uc002xwd.3";
+chr20 hg19_knownGene CDS 50071085 50071225 0.000000 - 2 gene_id "NFATC2"; transcript_id "NM_173091:uc002xwd.3";
+chr20 hg19_knownGene exon 50071085 50071225 0.000000 - . gene_id "NFATC2"; transcript_id "NM_173091:uc002xwd.3";
+chr20 hg19_knownGene CDS 50090517 50090689 0.000000 - 1 gene_id "NFATC2"; transcript_id "NM_173091:uc002xwd.3";
+chr20 hg19_knownGene exon 50090517 50090689 0.000000 - . gene_id "NFATC2"; transcript_id "NM_173091:uc002xwd.3";
+chr20 hg19_knownGene CDS 50091995 50092197 0.000000 - 0 gene_id "NFATC2"; transcript_id "NM_173091:uc002xwd.3";
+chr20 hg19_knownGene exon 50091995 50092197 0.000000 - . gene_id "NFATC2"; transcript_id "NM_173091:uc002xwd.3";
+chr20 hg19_knownGene CDS 50133323 50133494 0.000000 - 1 gene_id "NFATC2"; transcript_id "NM_173091:uc002xwd.3";
+chr20 hg19_knownGene exon 50133323 50133494 0.000000 - . gene_id "NFATC2"; transcript_id "NM_173091:uc002xwd.3";
+chr20 hg19_knownGene CDS 50139620 50140649 0.000000 - 2 gene_id "NFATC2"; transcript_id "NM_173091:uc002xwd.3";
+chr20 hg19_knownGene exon 50139620 50140649 0.000000 - . gene_id "NFATC2"; transcript_id "NM_173091:uc002xwd.3";
+chr20 hg19_knownGene CDS 50158909 50159038 0.000000 - 0 gene_id "NFATC2"; transcript_id "NM_173091:uc002xwd.3";
+chr20 hg19_knownGene exon 50158909 50159258 0.000000 - . gene_id "NFATC2"; transcript_id "NM_173091:uc002xwd.3";
+chr20 hg19_knownGene exon 50007765 50007988 0.000000 - . gene_id "NFATC2"; transcript_id "EU887576:uc010zyv.2";
+chr20 hg19_knownGene CDS 50015227 50015267 0.000000 - 2 gene_id "NFATC2"; transcript_id "EU887576:uc010zyv.2";
+chr20 hg19_knownGene exon 50015180 50015267 0.000000 - . gene_id "NFATC2"; transcript_id "EU887576:uc010zyv.2";
+chr20 hg19_knownGene CDS 50048604 50049293 0.000000 - 2 gene_id "NFATC2"; transcript_id "EU887576:uc010zyv.2";
+chr20 hg19_knownGene exon 50048604 50049293 0.000000 - . gene_id "NFATC2"; transcript_id "EU887576:uc010zyv.2";
+chr20 hg19_knownGene CDS 50051725 50051851 0.000000 - 0 gene_id "NFATC2"; transcript_id "EU887576:uc010zyv.2";
+chr20 hg19_knownGene exon 50051725 50051851 0.000000 - . gene_id "NFATC2"; transcript_id "EU887576:uc010zyv.2";
+chr20 hg19_knownGene CDS 50052243 50052298 0.000000 - 2 gene_id "NFATC2"; transcript_id "EU887576:uc010zyv.2";
+chr20 hg19_knownGene exon 50052243 50052298 0.000000 - . gene_id "NFATC2"; transcript_id "EU887576:uc010zyv.2";
+chr20 hg19_knownGene CDS 50071085 50071225 0.000000 - 2 gene_id "NFATC2"; transcript_id "EU887576:uc010zyv.2";
+chr20 hg19_knownGene exon 50071085 50071225 0.000000 - . gene_id "NFATC2"; transcript_id "EU887576:uc010zyv.2";
+chr20 hg19_knownGene CDS 50090517 50090689 0.000000 - 1 gene_id "NFATC2"; transcript_id "EU887576:uc010zyv.2";
+chr20 hg19_knownGene exon 50090517 50090689 0.000000 - . gene_id "NFATC2"; transcript_id "EU887576:uc010zyv.2";
+chr20 hg19_knownGene CDS 50091995 50092197 0.000000 - 0 gene_id "NFATC2"; transcript_id "EU887576:uc010zyv.2";
+chr20 hg19_knownGene exon 50091995 50092197 0.000000 - . gene_id "NFATC2"; transcript_id "EU887576:uc010zyv.2";
+chr20 hg19_knownGene CDS 50133323 50133494 0.000000 - 1 gene_id "NFATC2"; transcript_id "EU887576:uc010zyv.2";
+chr20 hg19_knownGene exon 50133323 50133494 0.000000 - . gene_id "NFATC2"; transcript_id "EU887576:uc010zyv.2";
+chr20 hg19_knownGene CDS 50139620 50140122 0.000000 - 0 gene_id "NFATC2"; transcript_id "EU887576:uc010zyv.2";
+chr20 hg19_knownGene exon 50139620 50140135 0.000000 - . gene_id "NFATC2"; transcript_id "EU887576:uc010zyv.2";
+chr20 hg19_knownGene exon 50158909 50159258 0.000000 - . gene_id "NFATC2"; transcript_id "EU887576:uc010zyv.2";
+chr20 hg19_knownGene CDS 50007936 50007988 0.000000 - 2 gene_id "NFATC2"; transcript_id "EU887580:uc010zyw.2";
+chr20 hg19_knownGene exon 50007765 50007988 0.000000 - . gene_id "NFATC2"; transcript_id "EU887580:uc010zyw.2";
+chr20 hg19_knownGene CDS 50048604 50049293 0.000000 - 2 gene_id "NFATC2"; transcript_id "EU887580:uc010zyw.2";
+chr20 hg19_knownGene exon 50048604 50049293 0.000000 - . gene_id "NFATC2"; transcript_id "EU887580:uc010zyw.2";
+chr20 hg19_knownGene CDS 50051725 50051851 0.000000 - 0 gene_id "NFATC2"; transcript_id "EU887580:uc010zyw.2";
+chr20 hg19_knownGene exon 50051725 50051851 0.000000 - . gene_id "NFATC2"; transcript_id "EU887580:uc010zyw.2";
+chr20 hg19_knownGene CDS 50052243 50052298 0.000000 - 2 gene_id "NFATC2"; transcript_id "EU887580:uc010zyw.2";
+chr20 hg19_knownGene exon 50052243 50052298 0.000000 - . gene_id "NFATC2"; transcript_id "EU887580:uc010zyw.2";
+chr20 hg19_knownGene CDS 50071085 50071225 0.000000 - 2 gene_id "NFATC2"; transcript_id "EU887580:uc010zyw.2";
+chr20 hg19_knownGene exon 50071085 50071225 0.000000 - . gene_id "NFATC2"; transcript_id "EU887580:uc010zyw.2";
+chr20 hg19_knownGene CDS 50090517 50090689 0.000000 - 1 gene_id "NFATC2"; transcript_id "EU887580:uc010zyw.2";
+chr20 hg19_knownGene exon 50090517 50090689 0.000000 - . gene_id "NFATC2"; transcript_id "EU887580:uc010zyw.2";
+chr20 hg19_knownGene CDS 50091995 50092197 0.000000 - 0 gene_id "NFATC2"; transcript_id "EU887580:uc010zyw.2";
+chr20 hg19_knownGene exon 50091995 50092197 0.000000 - . gene_id "NFATC2"; transcript_id "EU887580:uc010zyw.2";
+chr20 hg19_knownGene CDS 50133323 50133494 0.000000 - 1 gene_id "NFATC2"; transcript_id "EU887580:uc010zyw.2";
+chr20 hg19_knownGene exon 50133323 50133494 0.000000 - . gene_id "NFATC2"; transcript_id "EU887580:uc010zyw.2";
+chr20 hg19_knownGene CDS 50139620 50140122 0.000000 - 0 gene_id "NFATC2"; transcript_id "EU887580:uc010zyw.2";
+chr20 hg19_knownGene exon 50139620 50140135 0.000000 - . gene_id "NFATC2"; transcript_id "EU887580:uc010zyw.2";
+chr20 hg19_knownGene exon 50158909 50159258 0.000000 - . gene_id "NFATC2"; transcript_id "EU887580:uc010zyw.2";
+chr20 hg19_knownGene exon 50007765 50007988 0.000000 - . gene_id "NFATC2"; transcript_id "NM_001136021:uc010zyx.2";
+chr20 hg19_knownGene CDS 50015227 50015267 0.000000 - 2 gene_id "NFATC2"; transcript_id "NM_001136021:uc010zyx.2";
+chr20 hg19_knownGene exon 50015180 50015267 0.000000 - . gene_id "NFATC2"; transcript_id "NM_001136021:uc010zyx.2";
+chr20 hg19_knownGene CDS 50048604 50049293 0.000000 - 2 gene_id "NFATC2"; transcript_id "NM_001136021:uc010zyx.2";
+chr20 hg19_knownGene exon 50048604 50049293 0.000000 - . gene_id "NFATC2"; transcript_id "NM_001136021:uc010zyx.2";
+chr20 hg19_knownGene CDS 50051725 50051851 0.000000 - 0 gene_id "NFATC2"; transcript_id "NM_001136021:uc010zyx.2";
+chr20 hg19_knownGene exon 50051725 50051851 0.000000 - . gene_id "NFATC2"; transcript_id "NM_001136021:uc010zyx.2";
+chr20 hg19_knownGene CDS 50052243 50052298 0.000000 - 2 gene_id "NFATC2"; transcript_id "NM_001136021:uc010zyx.2";
+chr20 hg19_knownGene exon 50052243 50052298 0.000000 - . gene_id "NFATC2"; transcript_id "NM_001136021:uc010zyx.2";
+chr20 hg19_knownGene CDS 50071085 50071225 0.000000 - 2 gene_id "NFATC2"; transcript_id "NM_001136021:uc010zyx.2";
+chr20 hg19_knownGene exon 50071085 50071225 0.000000 - . gene_id "NFATC2"; transcript_id "NM_001136021:uc010zyx.2";
+chr20 hg19_knownGene CDS 50090517 50090689 0.000000 - 1 gene_id "NFATC2"; transcript_id "NM_001136021:uc010zyx.2";
+chr20 hg19_knownGene exon 50090517 50090689 0.000000 - . gene_id "NFATC2"; transcript_id "NM_001136021:uc010zyx.2";
+chr20 hg19_knownGene CDS 50091995 50092197 0.000000 - 0 gene_id "NFATC2"; transcript_id "NM_001136021:uc010zyx.2";
+chr20 hg19_knownGene exon 50091995 50092197 0.000000 - . gene_id "NFATC2"; transcript_id "NM_001136021:uc010zyx.2";
+chr20 hg19_knownGene CDS 50133323 50133494 0.000000 - 1 gene_id "NFATC2"; transcript_id "NM_001136021:uc010zyx.2";
+chr20 hg19_knownGene exon 50133323 50133494 0.000000 - . gene_id "NFATC2"; transcript_id "NM_001136021:uc010zyx.2";
+chr20 hg19_knownGene CDS 50139620 50140649 0.000000 - 2 gene_id "NFATC2"; transcript_id "NM_001136021:uc010zyx.2";
+chr20 hg19_knownGene exon 50139620 50140649 0.000000 - . gene_id "NFATC2"; transcript_id "NM_001136021:uc010zyx.2";
+chr20 hg19_knownGene CDS 50179099 50179168 0.000000 - 0 gene_id "NFATC2"; transcript_id "NM_001136021:uc010zyx.2";
+chr20 hg19_knownGene exon 50179099 50179168 0.000000 - . gene_id "NFATC2"; transcript_id "NM_001136021:uc010zyx.2";
+chr20 hg19_knownGene exon 50007765 50007988 0.000000 - . gene_id "NFATC2"; transcript_id "EU887575:uc010zyy.2";
+chr20 hg19_knownGene CDS 50015227 50015267 0.000000 - 2 gene_id "NFATC2"; transcript_id "EU887575:uc010zyy.2";
+chr20 hg19_knownGene exon 50015180 50015267 0.000000 - . gene_id "NFATC2"; transcript_id "EU887575:uc010zyy.2";
+chr20 hg19_knownGene CDS 50048604 50049293 0.000000 - 2 gene_id "NFATC2"; transcript_id "EU887575:uc010zyy.2";
+chr20 hg19_knownGene exon 50048604 50049293 0.000000 - . gene_id "NFATC2"; transcript_id "EU887575:uc010zyy.2";
+chr20 hg19_knownGene CDS 50051725 50051851 0.000000 - 0 gene_id "NFATC2"; transcript_id "EU887575:uc010zyy.2";
+chr20 hg19_knownGene exon 50051725 50051851 0.000000 - . gene_id "NFATC2"; transcript_id "EU887575:uc010zyy.2";
+chr20 hg19_knownGene CDS 50052243 50052298 0.000000 - 2 gene_id "NFATC2"; transcript_id "EU887575:uc010zyy.2";
+chr20 hg19_knownGene exon 50052243 50052298 0.000000 - . gene_id "NFATC2"; transcript_id "EU887575:uc010zyy.2";
+chr20 hg19_knownGene CDS 50071085 50071225 0.000000 - 2 gene_id "NFATC2"; transcript_id "EU887575:uc010zyy.2";
+chr20 hg19_knownGene exon 50071085 50071225 0.000000 - . gene_id "NFATC2"; transcript_id "EU887575:uc010zyy.2";
+chr20 hg19_knownGene CDS 50090517 50090689 0.000000 - 1 gene_id "NFATC2"; transcript_id "EU887575:uc010zyy.2";
+chr20 hg19_knownGene exon 50090517 50090689 0.000000 - . gene_id "NFATC2"; transcript_id "EU887575:uc010zyy.2";
+chr20 hg19_knownGene CDS 50091995 50092197 0.000000 - 0 gene_id "NFATC2"; transcript_id "EU887575:uc010zyy.2";
+chr20 hg19_knownGene exon 50091995 50092197 0.000000 - . gene_id "NFATC2"; transcript_id "EU887575:uc010zyy.2";
+chr20 hg19_knownGene CDS 50133323 50133494 0.000000 - 1 gene_id "NFATC2"; transcript_id "EU887575:uc010zyy.2";
+chr20 hg19_knownGene exon 50133323 50133494 0.000000 - . gene_id "NFATC2"; transcript_id "EU887575:uc010zyy.2";
+chr20 hg19_knownGene CDS 50139620 50140122 0.000000 - 0 gene_id "NFATC2"; transcript_id "EU887575:uc010zyy.2";
+chr20 hg19_knownGene exon 50139620 50140135 0.000000 - . gene_id "NFATC2"; transcript_id "EU887575:uc010zyy.2";
+chr20 hg19_knownGene exon 50179099 50179168 0.000000 - . gene_id "NFATC2"; transcript_id "EU887575:uc010zyy.2";
+chr20 hg19_knownGene CDS 50007936 50007988 0.000000 - 2 gene_id "NFATC2"; transcript_id "EU887579:uc010zyz.2";
+chr20 hg19_knownGene exon 50007765 50007988 0.000000 - . gene_id "NFATC2"; transcript_id "EU887579:uc010zyz.2";
+chr20 hg19_knownGene CDS 50048604 50049293 0.000000 - 2 gene_id "NFATC2"; transcript_id "EU887579:uc010zyz.2";
+chr20 hg19_knownGene exon 50048604 50049293 0.000000 - . gene_id "NFATC2"; transcript_id "EU887579:uc010zyz.2";
+chr20 hg19_knownGene CDS 50051725 50051851 0.000000 - 0 gene_id "NFATC2"; transcript_id "EU887579:uc010zyz.2";
+chr20 hg19_knownGene exon 50051725 50051851 0.000000 - . gene_id "NFATC2"; transcript_id "EU887579:uc010zyz.2";
+chr20 hg19_knownGene CDS 50052243 50052298 0.000000 - 2 gene_id "NFATC2"; transcript_id "EU887579:uc010zyz.2";
+chr20 hg19_knownGene exon 50052243 50052298 0.000000 - . gene_id "NFATC2"; transcript_id "EU887579:uc010zyz.2";
+chr20 hg19_knownGene CDS 50071085 50071225 0.000000 - 2 gene_id "NFATC2"; transcript_id "EU887579:uc010zyz.2";
+chr20 hg19_knownGene exon 50071085 50071225 0.000000 - . gene_id "NFATC2"; transcript_id "EU887579:uc010zyz.2";
+chr20 hg19_knownGene CDS 50090517 50090689 0.000000 - 1 gene_id "NFATC2"; transcript_id "EU887579:uc010zyz.2";
+chr20 hg19_knownGene exon 50090517 50090689 0.000000 - . gene_id "NFATC2"; transcript_id "EU887579:uc010zyz.2";
+chr20 hg19_knownGene CDS 50091995 50092197 0.000000 - 0 gene_id "NFATC2"; transcript_id "EU887579:uc010zyz.2";
+chr20 hg19_knownGene exon 50091995 50092197 0.000000 - . gene_id "NFATC2"; transcript_id "EU887579:uc010zyz.2";
+chr20 hg19_knownGene CDS 50133323 50133494 0.000000 - 1 gene_id "NFATC2"; transcript_id "EU887579:uc010zyz.2";
+chr20 hg19_knownGene exon 50133323 50133494 0.000000 - . gene_id "NFATC2"; transcript_id "EU887579:uc010zyz.2";
+chr20 hg19_knownGene CDS 50139620 50140122 0.000000 - 0 gene_id "NFATC2"; transcript_id "EU887579:uc010zyz.2";
+chr20 hg19_knownGene exon 50139620 50140135 0.000000 - . gene_id "NFATC2"; transcript_id "EU887579:uc010zyz.2";
+chr20 hg19_knownGene exon 50179099 50179168 0.000000 - . gene_id "NFATC2"; transcript_id "EU887579:uc010zyz.2";
+chr20 hg19_knownGene CDS 50007936 50007988 0.000000 - 2 gene_id "NFATC2"; transcript_id "EU887577:uc002xwe.3";
+chr20 hg19_knownGene exon 50007765 50007988 0.000000 - . gene_id "NFATC2"; transcript_id "EU887577:uc002xwe.3";
+chr20 hg19_knownGene CDS 50048604 50049293 0.000000 - 2 gene_id "NFATC2"; transcript_id "EU887577:uc002xwe.3";
+chr20 hg19_knownGene exon 50048604 50049293 0.000000 - . gene_id "NFATC2"; transcript_id "EU887577:uc002xwe.3";
+chr20 hg19_knownGene CDS 50051725 50051851 0.000000 - 0 gene_id "NFATC2"; transcript_id "EU887577:uc002xwe.3";
+chr20 hg19_knownGene exon 50051725 50051851 0.000000 - . gene_id "NFATC2"; transcript_id "EU887577:uc002xwe.3";
+chr20 hg19_knownGene CDS 50052243 50052298 0.000000 - 2 gene_id "NFATC2"; transcript_id "EU887577:uc002xwe.3";
+chr20 hg19_knownGene exon 50052243 50052298 0.000000 - . gene_id "NFATC2"; transcript_id "EU887577:uc002xwe.3";
+chr20 hg19_knownGene CDS 50071085 50071225 0.000000 - 2 gene_id "NFATC2"; transcript_id "EU887577:uc002xwe.3";
+chr20 hg19_knownGene exon 50071085 50071225 0.000000 - . gene_id "NFATC2"; transcript_id "EU887577:uc002xwe.3";
+chr20 hg19_knownGene CDS 50090517 50090689 0.000000 - 1 gene_id "NFATC2"; transcript_id "EU887577:uc002xwe.3";
+chr20 hg19_knownGene exon 50090517 50090689 0.000000 - . gene_id "NFATC2"; transcript_id "EU887577:uc002xwe.3";
+chr20 hg19_knownGene CDS 50091995 50092197 0.000000 - 0 gene_id "NFATC2"; transcript_id "EU887577:uc002xwe.3";
+chr20 hg19_knownGene exon 50091995 50092197 0.000000 - . gene_id "NFATC2"; transcript_id "EU887577:uc002xwe.3";
+chr20 hg19_knownGene CDS 50133323 50133494 0.000000 - 1 gene_id "NFATC2"; transcript_id "EU887577:uc002xwe.3";
+chr20 hg19_knownGene exon 50133323 50133494 0.000000 - . gene_id "NFATC2"; transcript_id "EU887577:uc002xwe.3";
+chr20 hg19_knownGene CDS 50139620 50140649 0.000000 - 2 gene_id "NFATC2"; transcript_id "EU887577:uc002xwe.3";
+chr20 hg19_knownGene exon 50139620 50140649 0.000000 - . gene_id "NFATC2"; transcript_id "EU887577:uc002xwe.3";
+chr20 hg19_knownGene CDS 50179099 50179168 0.000000 - 0 gene_id "NFATC2"; transcript_id "EU887577:uc002xwe.3";
+chr20 hg19_knownGene exon 50179099 50179168 0.000000 - . gene_id "NFATC2"; transcript_id "EU887577:uc002xwe.3";
+chr20 hg19_knownGene CDS 50217753 50217886 0.000000 - 2 gene_id "ATP9A"; transcript_id "BC063701:uc002xwf.1";
+chr20 hg19_knownGene exon 50213314 50217886 0.000000 - . gene_id "ATP9A"; transcript_id "BC063701:uc002xwf.1";
+chr20 hg19_knownGene CDS 50221356 50221559 0.000000 - 2 gene_id "ATP9A"; transcript_id "BC063701:uc002xwf.1";
+chr20 hg19_knownGene exon 50221356 50221559 0.000000 - . gene_id "ATP9A"; transcript_id "BC063701:uc002xwf.1";
+chr20 hg19_knownGene CDS 50224066 50224123 0.000000 - 0 gene_id "ATP9A"; transcript_id "BC063701:uc002xwf.1";
+chr20 hg19_knownGene exon 50224066 50224123 0.000000 - . gene_id "ATP9A"; transcript_id "BC063701:uc002xwf.1";
+chr20 hg19_knownGene CDS 50225057 50225165 0.000000 - 1 gene_id "ATP9A"; transcript_id "BC063701:uc002xwf.1";
+chr20 hg19_knownGene exon 50225057 50225165 0.000000 - . gene_id "ATP9A"; transcript_id "BC063701:uc002xwf.1";
+chr20 hg19_knownGene CDS 50226640 50226704 0.000000 - 0 gene_id "ATP9A"; transcript_id "BC063701:uc002xwf.1";
+chr20 hg19_knownGene exon 50226640 50226704 0.000000 - . gene_id "ATP9A"; transcript_id "BC063701:uc002xwf.1";
+chr20 hg19_knownGene CDS 50230216 50230302 0.000000 - 0 gene_id "ATP9A"; transcript_id "BC063701:uc002xwf.1";
+chr20 hg19_knownGene exon 50230216 50230371 0.000000 - . gene_id "ATP9A"; transcript_id "BC063701:uc002xwf.1";
+chr20 hg19_knownGene exon 50234029 50234039 0.000000 - . gene_id "ATP9A"; transcript_id "BC063701:uc002xwf.1";
+chr20 hg19_knownGene exon 50292701 50292747 0.000000 - . gene_id "ATP9A"; transcript_id "BC063701:uc002xwf.1";
+chr20 hg19_knownGene exon 50305603 50305678 0.000000 - . gene_id "ATP9A"; transcript_id "BC063701:uc002xwf.1";
+chr20 hg19_knownGene exon 50307278 50307358 0.000000 - . gene_id "ATP9A"; transcript_id "BC063701:uc002xwf.1";
+chr20 hg19_knownGene exon 50310547 50310641 0.000000 - . gene_id "ATP9A"; transcript_id "BC063701:uc002xwf.1";
+chr20 hg19_knownGene exon 50312632 50312683 0.000000 - . gene_id "ATP9A"; transcript_id "BC063701:uc002xwf.1";
+chr20 hg19_knownGene exon 50313963 50314042 0.000000 - . gene_id "ATP9A"; transcript_id "BC063701:uc002xwf.1";
+chr20 hg19_knownGene CDS 50217753 50217886 0.000000 - 2 gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene exon 50213314 50217886 0.000000 - . gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene CDS 50221356 50221559 0.000000 - 2 gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene exon 50221356 50221559 0.000000 - . gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene CDS 50224066 50224123 0.000000 - 0 gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene exon 50224066 50224123 0.000000 - . gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene CDS 50225057 50225165 0.000000 - 1 gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene exon 50225057 50225165 0.000000 - . gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene CDS 50226640 50226704 0.000000 - 0 gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene exon 50226640 50226704 0.000000 - . gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene CDS 50230216 50230371 0.000000 - 0 gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene exon 50230216 50230371 0.000000 - . gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene CDS 50234029 50234093 0.000000 - 2 gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene exon 50234029 50234093 0.000000 - . gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene CDS 50235201 50235345 0.000000 - 0 gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene exon 50235201 50235345 0.000000 - . gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene CDS 50235493 50235582 0.000000 - 0 gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene exon 50235493 50235582 0.000000 - . gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene CDS 50238613 50238711 0.000000 - 0 gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene exon 50238613 50238711 0.000000 - . gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene CDS 50241731 50241901 0.000000 - 0 gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene exon 50241731 50241901 0.000000 - . gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene CDS 50244139 50244222 0.000000 - 0 gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene exon 50244139 50244222 0.000000 - . gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene CDS 50245519 50245611 0.000000 - 0 gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene exon 50245519 50245611 0.000000 - . gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene CDS 50255882 50256043 0.000000 - 0 gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene exon 50255882 50256043 0.000000 - . gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene CDS 50273477 50273689 0.000000 - 0 gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene exon 50273477 50273689 0.000000 - . gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene CDS 50286536 50286648 0.000000 - 2 gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene exon 50286536 50286648 0.000000 - . gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene CDS 50287654 50287796 0.000000 - 1 gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene exon 50287654 50287796 0.000000 - . gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene CDS 50290692 50290852 0.000000 - 0 gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene exon 50290692 50290852 0.000000 - . gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene CDS 50292671 50292747 0.000000 - 2 gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene exon 50292671 50292747 0.000000 - . gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene CDS 50305603 50305678 0.000000 - 0 gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene exon 50305603 50305678 0.000000 - . gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene CDS 50307278 50307358 0.000000 - 0 gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene exon 50307278 50307358 0.000000 - . gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene CDS 50310547 50310641 0.000000 - 2 gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene exon 50310547 50310641 0.000000 - . gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene CDS 50312632 50312683 0.000000 - 0 gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene exon 50312632 50312683 0.000000 - . gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene CDS 50313963 50314021 0.000000 - 2 gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene exon 50313963 50314021 0.000000 - . gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene CDS 50329505 50329613 0.000000 - 0 gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene exon 50329505 50329613 0.000000 - . gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene CDS 50342358 50342471 0.000000 - 0 gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene exon 50342358 50342471 0.000000 - . gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene CDS 50346373 50346517 0.000000 - 1 gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene exon 50346373 50346517 0.000000 - . gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene CDS 50384841 50384908 0.000000 - 0 gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene exon 50384841 50384908 0.000000 - . gene_id "ATP9A"; transcript_id "NM_006045:uc002xwg.1";
+chr20 hg19_knownGene CDS 50217753 50217886 0.000000 - 2 gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene exon 50213314 50217886 0.000000 - . gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene CDS 50221356 50221559 0.000000 - 2 gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene exon 50221356 50221559 0.000000 - . gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene CDS 50224066 50224123 0.000000 - 0 gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene exon 50224066 50224123 0.000000 - . gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene CDS 50225057 50225165 0.000000 - 1 gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene exon 50225057 50225165 0.000000 - . gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene CDS 50226640 50226704 0.000000 - 0 gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene exon 50226640 50226704 0.000000 - . gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene CDS 50230216 50230371 0.000000 - 0 gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene exon 50230216 50230371 0.000000 - . gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene CDS 50234029 50234093 0.000000 - 2 gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene exon 50234029 50234093 0.000000 - . gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene CDS 50235201 50235345 0.000000 - 0 gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene exon 50235201 50235345 0.000000 - . gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene CDS 50235493 50235582 0.000000 - 0 gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene exon 50235493 50235582 0.000000 - . gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene CDS 50238613 50238711 0.000000 - 0 gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene exon 50238613 50238711 0.000000 - . gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene CDS 50241731 50241901 0.000000 - 0 gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene exon 50241731 50241901 0.000000 - . gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene CDS 50244139 50244222 0.000000 - 0 gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene exon 50244139 50244222 0.000000 - . gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene CDS 50245519 50245611 0.000000 - 0 gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene exon 50245519 50245611 0.000000 - . gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene CDS 50255882 50256043 0.000000 - 0 gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene exon 50255882 50256043 0.000000 - . gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene CDS 50273477 50273689 0.000000 - 0 gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene exon 50273477 50273689 0.000000 - . gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene CDS 50286536 50286648 0.000000 - 2 gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene exon 50286536 50286648 0.000000 - . gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene CDS 50287654 50287796 0.000000 - 1 gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene exon 50287654 50287796 0.000000 - . gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene CDS 50290692 50290852 0.000000 - 0 gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene exon 50290692 50290852 0.000000 - . gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene CDS 50292671 50292747 0.000000 - 2 gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene exon 50292671 50292747 0.000000 - . gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene CDS 50329505 50329613 0.000000 - 0 gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene exon 50329505 50329613 0.000000 - . gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene CDS 50342358 50342471 0.000000 - 0 gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene exon 50342358 50342471 0.000000 - . gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene CDS 50346373 50346517 0.000000 - 1 gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene exon 50346373 50346517 0.000000 - . gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene CDS 50384841 50384863 0.000000 - 0 gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene exon 50384841 50384908 0.000000 - . gene_id "ATP9A"; transcript_id "AB385363:uc010gih.1";
+chr20 hg19_knownGene CDS 50400807 50401223 0.000000 - 0 gene_id "SALL4"; transcript_id "NM_020436:uc002xwh.4";
+chr20 hg19_knownGene exon 50400583 50401223 0.000000 - . gene_id "SALL4"; transcript_id "NM_020436:uc002xwh.4";
+chr20 hg19_knownGene CDS 50405400 50405680 0.000000 - 2 gene_id "SALL4"; transcript_id "NM_020436:uc002xwh.4";
+chr20 hg19_knownGene exon 50405400 50405680 0.000000 - . gene_id "SALL4"; transcript_id "NM_020436:uc002xwh.4";
+chr20 hg19_knownGene CDS 50406561 50408891 0.000000 - 2 gene_id "SALL4"; transcript_id "NM_020436:uc002xwh.4";
+chr20 hg19_knownGene exon 50406561 50408891 0.000000 - . gene_id "SALL4"; transcript_id "NM_020436:uc002xwh.4";
+chr20 hg19_knownGene CDS 50418818 50418947 0.000000 - 0 gene_id "SALL4"; transcript_id "NM_020436:uc002xwh.4";
+chr20 hg19_knownGene exon 50418818 50419048 0.000000 - . gene_id "SALL4"; transcript_id "NM_020436:uc002xwh.4";
+chr20 hg19_knownGene CDS 50400807 50401223 0.000000 - 0 gene_id "SALL4"; transcript_id "AY170621:uc010gii.3";
+chr20 hg19_knownGene exon 50400583 50401223 0.000000 - . gene_id "SALL4"; transcript_id "AY170621:uc010gii.3";
+chr20 hg19_knownGene CDS 50405400 50405680 0.000000 - 2 gene_id "SALL4"; transcript_id "AY170621:uc010gii.3";
+chr20 hg19_knownGene exon 50405400 50405680 0.000000 - . gene_id "SALL4"; transcript_id "AY170621:uc010gii.3";
+chr20 hg19_knownGene CDS 50407872 50408891 0.000000 - 2 gene_id "SALL4"; transcript_id "AY170621:uc010gii.3";
+chr20 hg19_knownGene exon 50407872 50408891 0.000000 - . gene_id "SALL4"; transcript_id "AY170621:uc010gii.3";
+chr20 hg19_knownGene CDS 50418818 50418947 0.000000 - 0 gene_id "SALL4"; transcript_id "AY170621:uc010gii.3";
+chr20 hg19_knownGene exon 50418818 50419048 0.000000 - . gene_id "SALL4"; transcript_id "AY170621:uc010gii.3";
+chr20 hg19_knownGene CDS 50400807 50401223 0.000000 - 0 gene_id "SALL4"; transcript_id "AY170622:uc002xwi.4";
+chr20 hg19_knownGene exon 50400583 50401223 0.000000 - . gene_id "SALL4"; transcript_id "AY170622:uc002xwi.4";
+chr20 hg19_knownGene CDS 50405400 50405680 0.000000 - 2 gene_id "SALL4"; transcript_id "AY170622:uc002xwi.4";
+chr20 hg19_knownGene exon 50405400 50405680 0.000000 - . gene_id "SALL4"; transcript_id "AY170622:uc002xwi.4";
+chr20 hg19_knownGene CDS 50418818 50418947 0.000000 - 0 gene_id "SALL4"; transcript_id "AY170622:uc002xwi.4";
+chr20 hg19_knownGene exon 50418818 50419048 0.000000 - . gene_id "SALL4"; transcript_id "AY170622:uc002xwi.4";
+chr20 hg19_knownGene CDS 50701099 50701805 0.000000 - 2 gene_id "ZFP64"; transcript_id "AK022690:uc002xwj.3";
+chr20 hg19_knownGene exon 50700550 50701805 0.000000 - . gene_id "ZFP64"; transcript_id "AK022690:uc002xwj.3";
+chr20 hg19_knownGene CDS 50704931 50705182 0.000000 - 2 gene_id "ZFP64"; transcript_id "AK022690:uc002xwj.3";
+chr20 hg19_knownGene exon 50704931 50705182 0.000000 - . gene_id "ZFP64"; transcript_id "AK022690:uc002xwj.3";
+chr20 hg19_knownGene CDS 50713912 50713974 0.000000 - 2 gene_id "ZFP64"; transcript_id "AK022690:uc002xwj.3";
+chr20 hg19_knownGene exon 50713912 50713974 0.000000 - . gene_id "ZFP64"; transcript_id "AK022690:uc002xwj.3";
+chr20 hg19_knownGene CDS 50714977 50715126 0.000000 - 2 gene_id "ZFP64"; transcript_id "AK022690:uc002xwj.3";
+chr20 hg19_knownGene exon 50714977 50715126 0.000000 - . gene_id "ZFP64"; transcript_id "AK022690:uc002xwj.3";
+chr20 hg19_knownGene CDS 50721671 50721776 0.000000 - 0 gene_id "ZFP64"; transcript_id "AK022690:uc002xwj.3";
+chr20 hg19_knownGene exon 50721671 50722023 0.000000 - . gene_id "ZFP64"; transcript_id "AK022690:uc002xwj.3";
+chr20 hg19_knownGene CDS 50701099 50701805 0.000000 - 2 gene_id "ZFP64"; transcript_id "NM_199427:uc002xwk.3";
+chr20 hg19_knownGene exon 50700550 50701805 0.000000 - . gene_id "ZFP64"; transcript_id "NM_199427:uc002xwk.3";
+chr20 hg19_knownGene CDS 50704931 50705182 0.000000 - 2 gene_id "ZFP64"; transcript_id "NM_199427:uc002xwk.3";
+chr20 hg19_knownGene exon 50704931 50705182 0.000000 - . gene_id "ZFP64"; transcript_id "NM_199427:uc002xwk.3";
+chr20 hg19_knownGene CDS 50713912 50713974 0.000000 - 2 gene_id "ZFP64"; transcript_id "NM_199427:uc002xwk.3";
+chr20 hg19_knownGene exon 50713912 50713974 0.000000 - . gene_id "ZFP64"; transcript_id "NM_199427:uc002xwk.3";
+chr20 hg19_knownGene CDS 50714977 50715126 0.000000 - 2 gene_id "ZFP64"; transcript_id "NM_199427:uc002xwk.3";
+chr20 hg19_knownGene exon 50714977 50715126 0.000000 - . gene_id "ZFP64"; transcript_id "NM_199427:uc002xwk.3";
+chr20 hg19_knownGene CDS 50776662 50776913 0.000000 - 2 gene_id "ZFP64"; transcript_id "NM_199427:uc002xwk.3";
+chr20 hg19_knownGene exon 50776662 50776913 0.000000 - . gene_id "ZFP64"; transcript_id "NM_199427:uc002xwk.3";
+chr20 hg19_knownGene CDS 50781234 50781296 0.000000 - 2 gene_id "ZFP64"; transcript_id "NM_199427:uc002xwk.3";
+chr20 hg19_knownGene exon 50781234 50781296 0.000000 - . gene_id "ZFP64"; transcript_id "NM_199427:uc002xwk.3";
+chr20 hg19_knownGene CDS 50782403 50782564 0.000000 - 2 gene_id "ZFP64"; transcript_id "NM_199427:uc002xwk.3";
+chr20 hg19_knownGene exon 50782403 50782564 0.000000 - . gene_id "ZFP64"; transcript_id "NM_199427:uc002xwk.3";
+chr20 hg19_knownGene CDS 50803371 50803610 0.000000 - 2 gene_id "ZFP64"; transcript_id "NM_199427:uc002xwk.3";
+chr20 hg19_knownGene exon 50803371 50803610 0.000000 - . gene_id "ZFP64"; transcript_id "NM_199427:uc002xwk.3";
+chr20 hg19_knownGene CDS 50808130 50808175 0.000000 - 0 gene_id "ZFP64"; transcript_id "NM_199427:uc002xwk.3";
+chr20 hg19_knownGene exon 50808130 50808524 0.000000 - . gene_id "ZFP64"; transcript_id "NM_199427:uc002xwk.3";
+chr20 hg19_knownGene CDS 50768688 50769967 0.000000 - 2 gene_id "ZFP64"; transcript_id "NM_018197:uc002xwl.3";
+chr20 hg19_knownGene exon 50767817 50769967 0.000000 - . gene_id "ZFP64"; transcript_id "NM_018197:uc002xwl.3";
+chr20 hg19_knownGene CDS 50776662 50776913 0.000000 - 2 gene_id "ZFP64"; transcript_id "NM_018197:uc002xwl.3";
+chr20 hg19_knownGene exon 50776662 50776913 0.000000 - . gene_id "ZFP64"; transcript_id "NM_018197:uc002xwl.3";
+chr20 hg19_knownGene CDS 50781234 50781296 0.000000 - 2 gene_id "ZFP64"; transcript_id "NM_018197:uc002xwl.3";
+chr20 hg19_knownGene exon 50781234 50781296 0.000000 - . gene_id "ZFP64"; transcript_id "NM_018197:uc002xwl.3";
+chr20 hg19_knownGene CDS 50782403 50782564 0.000000 - 2 gene_id "ZFP64"; transcript_id "NM_018197:uc002xwl.3";
+chr20 hg19_knownGene exon 50782403 50782564 0.000000 - . gene_id "ZFP64"; transcript_id "NM_018197:uc002xwl.3";
+chr20 hg19_knownGene CDS 50803371 50803610 0.000000 - 2 gene_id "ZFP64"; transcript_id "NM_018197:uc002xwl.3";
+chr20 hg19_knownGene exon 50803371 50803610 0.000000 - . gene_id "ZFP64"; transcript_id "NM_018197:uc002xwl.3";
+chr20 hg19_knownGene CDS 50808130 50808175 0.000000 - 0 gene_id "ZFP64"; transcript_id "NM_018197:uc002xwl.3";
+chr20 hg19_knownGene exon 50808130 50808524 0.000000 - . gene_id "ZFP64"; transcript_id "NM_018197:uc002xwl.3";
+chr20 hg19_knownGene CDS 50768688 50769967 0.000000 - 2 gene_id "ZFP64"; transcript_id "NM_199426:uc002xwm.3";
+chr20 hg19_knownGene exon 50767817 50769967 0.000000 - . gene_id "ZFP64"; transcript_id "NM_199426:uc002xwm.3";
+chr20 hg19_knownGene CDS 50776662 50776913 0.000000 - 2 gene_id "ZFP64"; transcript_id "NM_199426:uc002xwm.3";
+chr20 hg19_knownGene exon 50776662 50776913 0.000000 - . gene_id "ZFP64"; transcript_id "NM_199426:uc002xwm.3";
+chr20 hg19_knownGene CDS 50781234 50781296 0.000000 - 2 gene_id "ZFP64"; transcript_id "NM_199426:uc002xwm.3";
+chr20 hg19_knownGene exon 50781234 50781296 0.000000 - . gene_id "ZFP64"; transcript_id "NM_199426:uc002xwm.3";
+chr20 hg19_knownGene CDS 50782403 50782564 0.000000 - 2 gene_id "ZFP64"; transcript_id "NM_199426:uc002xwm.3";
+chr20 hg19_knownGene exon 50782403 50782564 0.000000 - . gene_id "ZFP64"; transcript_id "NM_199426:uc002xwm.3";
+chr20 hg19_knownGene CDS 50803371 50803604 0.000000 - 2 gene_id "ZFP64"; transcript_id "NM_199426:uc002xwm.3";
+chr20 hg19_knownGene exon 50803371 50803604 0.000000 - . gene_id "ZFP64"; transcript_id "NM_199426:uc002xwm.3";
+chr20 hg19_knownGene CDS 50808130 50808175 0.000000 - 0 gene_id "ZFP64"; transcript_id "NM_199426:uc002xwm.3";
+chr20 hg19_knownGene exon 50808130 50808524 0.000000 - . gene_id "ZFP64"; transcript_id "NM_199426:uc002xwm.3";
+chr20 hg19_knownGene CDS 50768688 50769967 0.000000 - 2 gene_id "ZFP64"; transcript_id "NM_022088:uc002xwn.3";
+chr20 hg19_knownGene exon 50767817 50769967 0.000000 - . gene_id "ZFP64"; transcript_id "NM_022088:uc002xwn.3";
+chr20 hg19_knownGene CDS 50776662 50776913 0.000000 - 2 gene_id "ZFP64"; transcript_id "NM_022088:uc002xwn.3";
+chr20 hg19_knownGene exon 50776662 50776913 0.000000 - . gene_id "ZFP64"; transcript_id "NM_022088:uc002xwn.3";
+chr20 hg19_knownGene CDS 50781234 50781296 0.000000 - 2 gene_id "ZFP64"; transcript_id "NM_022088:uc002xwn.3";
+chr20 hg19_knownGene exon 50781234 50781296 0.000000 - . gene_id "ZFP64"; transcript_id "NM_022088:uc002xwn.3";
+chr20 hg19_knownGene CDS 50803371 50803610 0.000000 - 2 gene_id "ZFP64"; transcript_id "NM_022088:uc002xwn.3";
+chr20 hg19_knownGene exon 50803371 50803610 0.000000 - . gene_id "ZFP64"; transcript_id "NM_022088:uc002xwn.3";
+chr20 hg19_knownGene CDS 50808130 50808175 0.000000 - 0 gene_id "ZFP64"; transcript_id "NM_022088:uc002xwn.3";
+chr20 hg19_knownGene exon 50808130 50808524 0.000000 - . gene_id "ZFP64"; transcript_id "NM_022088:uc002xwn.3";
+chr20 hg19_knownGene exon 51218338 51218415 0.000000 - . gene_id "TRNA_Pseudo"; transcript_id ":uc021wev.1";
+chr20 hg19_knownGene exon 51714191 51714523 0.000000 + . gene_id "7SK"; transcript_id ":uc021wew.1";
+chr20 hg19_knownGene CDS 51589833 51589872 0.000000 + 0 gene_id "TSHZ2"; transcript_id "NM_173485:uc002xwo.3";
+chr20 hg19_knownGene exon 51588946 51589872 0.000000 + . gene_id "TSHZ2"; transcript_id "NM_173485:uc002xwo.3";
+chr20 hg19_knownGene CDS 51870038 51873099 0.000000 + 2 gene_id "TSHZ2"; transcript_id "NM_173485:uc002xwo.3";
+chr20 hg19_knownGene exon 51870038 51873110 0.000000 + . gene_id "TSHZ2"; transcript_id "NM_173485:uc002xwo.3";
+chr20 hg19_knownGene exon 52103683 52111869 0.000000 + . gene_id "TSHZ2"; transcript_id "NM_173485:uc002xwo.3";
+chr20 hg19_knownGene CDS 51802185 51802215 0.000000 + 0 gene_id "TSHZ2"; transcript_id "NM_001193421:uc021wex.1";
+chr20 hg19_knownGene exon 51801822 51802215 0.000000 + . gene_id "TSHZ2"; transcript_id "NM_001193421:uc021wex.1";
+chr20 hg19_knownGene CDS 51870038 51873099 0.000000 + 2 gene_id "TSHZ2"; transcript_id "NM_001193421:uc021wex.1";
+chr20 hg19_knownGene exon 51870038 51873110 0.000000 + . gene_id "TSHZ2"; transcript_id "NM_001193421:uc021wex.1";
+chr20 hg19_knownGene exon 52103683 52111869 0.000000 + . gene_id "TSHZ2"; transcript_id "NM_001193421:uc021wex.1";
+chr20 hg19_knownGene exon 52015467 52017025 0.000000 - . gene_id "AK056432"; transcript_id "AK056432:uc002xwp.1";
+chr20 hg19_knownGene exon 52017671 52017772 0.000000 - . gene_id "AK056432"; transcript_id "AK056432:uc002xwp.1";
+chr20 hg19_knownGene exon 52120648 52120860 0.000000 - . gene_id "AK056432"; transcript_id "AK056432:uc002xwp.1";
+chr20 hg19_knownGene exon 52183610 52185803 0.000000 - . gene_id "ZNF217"; transcript_id "NM_006526:uc002xwq.4";
+chr20 hg19_knownGene CDS 52188286 52188392 0.000000 - 2 gene_id "ZNF217"; transcript_id "NM_006526:uc002xwq.4";
+chr20 hg19_knownGene exon 52188260 52188392 0.000000 - . gene_id "ZNF217"; transcript_id "NM_006526:uc002xwq.4";
+chr20 hg19_knownGene CDS 52192266 52193819 0.000000 - 2 gene_id "ZNF217"; transcript_id "NM_006526:uc002xwq.4";
+chr20 hg19_knownGene exon 52192266 52193819 0.000000 - . gene_id "ZNF217"; transcript_id "NM_006526:uc002xwq.4";
+chr20 hg19_knownGene CDS 52194873 52194989 0.000000 - 2 gene_id "ZNF217"; transcript_id "NM_006526:uc002xwq.4";
+chr20 hg19_knownGene exon 52194873 52194989 0.000000 - . gene_id "ZNF217"; transcript_id "NM_006526:uc002xwq.4";
+chr20 hg19_knownGene CDS 52198000 52199365 0.000000 - 0 gene_id "ZNF217"; transcript_id "NM_006526:uc002xwq.4";
+chr20 hg19_knownGene exon 52198000 52199707 0.000000 - . gene_id "ZNF217"; transcript_id "NM_006526:uc002xwq.4";
+chr20 hg19_knownGene CDS 52192270 52193819 0.000000 - 2 gene_id "ZNF217"; transcript_id "AK290350:uc010gij.1";
+chr20 hg19_knownGene exon 52192266 52193819 0.000000 - . gene_id "ZNF217"; transcript_id "AK290350:uc010gij.1";
+chr20 hg19_knownGene CDS 52194873 52194989 0.000000 - 2 gene_id "ZNF217"; transcript_id "AK290350:uc010gij.1";
+chr20 hg19_knownGene exon 52194873 52194989 0.000000 - . gene_id "ZNF217"; transcript_id "AK290350:uc010gij.1";
+chr20 hg19_knownGene CDS 52198000 52199341 0.000000 - 0 gene_id "ZNF217"; transcript_id "AK290350:uc010gij.1";
+chr20 hg19_knownGene exon 52198000 52199707 0.000000 - . gene_id "ZNF217"; transcript_id "AK290350:uc010gij.1";
+chr20 hg19_knownGene exon 52210646 52210801 0.000000 - . gene_id "ZNF217"; transcript_id "AK290350:uc010gij.1";
+chr20 hg19_knownGene exon 52491040 52492248 0.000000 - . gene_id "SUMO1P1"; transcript_id "NR_002189:uc010gik.3";
+chr20 hg19_knownGene CDS 52561464 52561535 0.000000 - 0 gene_id "BCAS1"; transcript_id "AK294150:uc010zza.1";
+chr20 hg19_knownGene exon 52560079 52561535 0.000000 - . gene_id "BCAS1"; transcript_id "AK294150:uc010zza.1";
+chr20 hg19_knownGene CDS 52569971 52570234 0.000000 - 0 gene_id "BCAS1"; transcript_id "AK294150:uc010zza.1";
+chr20 hg19_knownGene exon 52569971 52570234 0.000000 - . gene_id "BCAS1"; transcript_id "AK294150:uc010zza.1";
+chr20 hg19_knownGene CDS 52601826 52602038 0.000000 - 0 gene_id "BCAS1"; transcript_id "AK294150:uc010zza.1";
+chr20 hg19_knownGene exon 52601826 52602038 0.000000 - . gene_id "BCAS1"; transcript_id "AK294150:uc010zza.1";
+chr20 hg19_knownGene CDS 52609051 52609185 0.000000 - 0 gene_id "BCAS1"; transcript_id "AK294150:uc010zza.1";
+chr20 hg19_knownGene exon 52609051 52609185 0.000000 - . gene_id "BCAS1"; transcript_id "AK294150:uc010zza.1";
+chr20 hg19_knownGene CDS 52611551 52611595 0.000000 - 0 gene_id "BCAS1"; transcript_id "AK294150:uc010zza.1";
+chr20 hg19_knownGene exon 52611551 52611595 0.000000 - . gene_id "BCAS1"; transcript_id "AK294150:uc010zza.1";
+chr20 hg19_knownGene CDS 52612431 52612451 0.000000 - 0 gene_id "BCAS1"; transcript_id "AK294150:uc010zza.1";
+chr20 hg19_knownGene exon 52612431 52612736 0.000000 - . gene_id "BCAS1"; transcript_id "AK294150:uc010zza.1";
+chr20 hg19_knownGene CDS 52561464 52561535 0.000000 - 0 gene_id "BCAS1"; transcript_id "AK295318:uc010zzb.1";
+chr20 hg19_knownGene exon 52560079 52561535 0.000000 - . gene_id "BCAS1"; transcript_id "AK295318:uc010zzb.1";
+chr20 hg19_knownGene CDS 52569971 52570234 0.000000 - 0 gene_id "BCAS1"; transcript_id "AK295318:uc010zzb.1";
+chr20 hg19_knownGene exon 52569971 52570234 0.000000 - . gene_id "BCAS1"; transcript_id "AK295318:uc010zzb.1";
+chr20 hg19_knownGene CDS 52583445 52583612 0.000000 - 0 gene_id "BCAS1"; transcript_id "AK295318:uc010zzb.1";
+chr20 hg19_knownGene exon 52583445 52583612 0.000000 - . gene_id "BCAS1"; transcript_id "AK295318:uc010zzb.1";
+chr20 hg19_knownGene CDS 52591928 52591969 0.000000 - 0 gene_id "BCAS1"; transcript_id "AK295318:uc010zzb.1";
+chr20 hg19_knownGene exon 52591928 52591969 0.000000 - . gene_id "BCAS1"; transcript_id "AK295318:uc010zzb.1";
+chr20 hg19_knownGene CDS 52601826 52602038 0.000000 - 0 gene_id "BCAS1"; transcript_id "AK295318:uc010zzb.1";
+chr20 hg19_knownGene exon 52601826 52602038 0.000000 - . gene_id "BCAS1"; transcript_id "AK295318:uc010zzb.1";
+chr20 hg19_knownGene CDS 52609051 52609185 0.000000 - 0 gene_id "BCAS1"; transcript_id "AK295318:uc010zzb.1";
+chr20 hg19_knownGene exon 52609051 52609185 0.000000 - . gene_id "BCAS1"; transcript_id "AK295318:uc010zzb.1";
+chr20 hg19_knownGene CDS 52611551 52611595 0.000000 - 0 gene_id "BCAS1"; transcript_id "AK295318:uc010zzb.1";
+chr20 hg19_knownGene exon 52611551 52611595 0.000000 - . gene_id "BCAS1"; transcript_id "AK295318:uc010zzb.1";
+chr20 hg19_knownGene CDS 52612431 52612589 0.000000 - 0 gene_id "BCAS1"; transcript_id "AK295318:uc010zzb.1";
+chr20 hg19_knownGene exon 52612431 52612589 0.000000 - . gene_id "BCAS1"; transcript_id "AK295318:uc010zzb.1";
+chr20 hg19_knownGene CDS 52644931 52645362 0.000000 - 0 gene_id "BCAS1"; transcript_id "AK295318:uc010zzb.1";
+chr20 hg19_knownGene exon 52644931 52645511 0.000000 - . gene_id "BCAS1"; transcript_id "AK295318:uc010zzb.1";
+chr20 hg19_knownGene CDS 52561464 52561535 0.000000 - 0 gene_id "BCAS1"; transcript_id "AK316038:uc010gim.2";
+chr20 hg19_knownGene exon 52560079 52561535 0.000000 - . gene_id "BCAS1"; transcript_id "AK316038:uc010gim.2";
+chr20 hg19_knownGene CDS 52569971 52570234 0.000000 - 0 gene_id "BCAS1"; transcript_id "AK316038:uc010gim.2";
+chr20 hg19_knownGene exon 52569971 52570234 0.000000 - . gene_id "BCAS1"; transcript_id "AK316038:uc010gim.2";
+chr20 hg19_knownGene CDS 52601826 52602038 0.000000 - 0 gene_id "BCAS1"; transcript_id "AK316038:uc010gim.2";
+chr20 hg19_knownGene exon 52601826 52602038 0.000000 - . gene_id "BCAS1"; transcript_id "AK316038:uc010gim.2";
+chr20 hg19_knownGene CDS 52609051 52609185 0.000000 - 0 gene_id "BCAS1"; transcript_id "AK316038:uc010gim.2";
+chr20 hg19_knownGene exon 52609051 52609185 0.000000 - . gene_id "BCAS1"; transcript_id "AK316038:uc010gim.2";
+chr20 hg19_knownGene CDS 52611551 52611595 0.000000 - 0 gene_id "BCAS1"; transcript_id "AK316038:uc010gim.2";
+chr20 hg19_knownGene exon 52611551 52611595 0.000000 - . gene_id "BCAS1"; transcript_id "AK316038:uc010gim.2";
+chr20 hg19_knownGene CDS 52612431 52612589 0.000000 - 0 gene_id "BCAS1"; transcript_id "AK316038:uc010gim.2";
+chr20 hg19_knownGene exon 52612431 52612589 0.000000 - . gene_id "BCAS1"; transcript_id "AK316038:uc010gim.2";
+chr20 hg19_knownGene CDS 52644931 52645362 0.000000 - 0 gene_id "BCAS1"; transcript_id "AK316038:uc010gim.2";
+chr20 hg19_knownGene exon 52644931 52645511 0.000000 - . gene_id "BCAS1"; transcript_id "AK316038:uc010gim.2";
+chr20 hg19_knownGene exon 52684947 52685024 0.000000 - . gene_id "MIR4756"; transcript_id "NR_039913:uc021wey.1";
+chr20 hg19_knownGene CDS 52561464 52561535 0.000000 - 0 gene_id "BCAS1"; transcript_id "NM_003657:uc002xws.2";
+chr20 hg19_knownGene exon 52560079 52561535 0.000000 - . gene_id "BCAS1"; transcript_id "NM_003657:uc002xws.2";
+chr20 hg19_knownGene CDS 52569971 52570234 0.000000 - 0 gene_id "BCAS1"; transcript_id "NM_003657:uc002xws.2";
+chr20 hg19_knownGene exon 52569971 52570234 0.000000 - . gene_id "BCAS1"; transcript_id "NM_003657:uc002xws.2";
+chr20 hg19_knownGene CDS 52573971 52574036 0.000000 - 0 gene_id "BCAS1"; transcript_id "NM_003657:uc002xws.2";
+chr20 hg19_knownGene exon 52573971 52574036 0.000000 - . gene_id "BCAS1"; transcript_id "NM_003657:uc002xws.2";
+chr20 hg19_knownGene CDS 52583445 52583612 0.000000 - 0 gene_id "BCAS1"; transcript_id "NM_003657:uc002xws.2";
+chr20 hg19_knownGene exon 52583445 52583612 0.000000 - . gene_id "BCAS1"; transcript_id "NM_003657:uc002xws.2";
+chr20 hg19_knownGene CDS 52591928 52591969 0.000000 - 0 gene_id "BCAS1"; transcript_id "NM_003657:uc002xws.2";
+chr20 hg19_knownGene exon 52591928 52591969 0.000000 - . gene_id "BCAS1"; transcript_id "NM_003657:uc002xws.2";
+chr20 hg19_knownGene CDS 52601826 52602038 0.000000 - 0 gene_id "BCAS1"; transcript_id "NM_003657:uc002xws.2";
+chr20 hg19_knownGene exon 52601826 52602038 0.000000 - . gene_id "BCAS1"; transcript_id "NM_003657:uc002xws.2";
+chr20 hg19_knownGene CDS 52611551 52611595 0.000000 - 0 gene_id "BCAS1"; transcript_id "NM_003657:uc002xws.2";
+chr20 hg19_knownGene exon 52611551 52611595 0.000000 - . gene_id "BCAS1"; transcript_id "NM_003657:uc002xws.2";
+chr20 hg19_knownGene CDS 52612431 52612589 0.000000 - 0 gene_id "BCAS1"; transcript_id "NM_003657:uc002xws.2";
+chr20 hg19_knownGene exon 52612431 52612589 0.000000 - . gene_id "BCAS1"; transcript_id "NM_003657:uc002xws.2";
+chr20 hg19_knownGene CDS 52644931 52645511 0.000000 - 2 gene_id "BCAS1"; transcript_id "NM_003657:uc002xws.2";
+chr20 hg19_knownGene exon 52644931 52645511 0.000000 - . gene_id "BCAS1"; transcript_id "NM_003657:uc002xws.2";
+chr20 hg19_knownGene CDS 52674624 52674693 0.000000 - 0 gene_id "BCAS1"; transcript_id "NM_003657:uc002xws.2";
+chr20 hg19_knownGene exon 52674624 52674693 0.000000 - . gene_id "BCAS1"; transcript_id "NM_003657:uc002xws.2";
+chr20 hg19_knownGene CDS 52675186 52675257 0.000000 - 0 gene_id "BCAS1"; transcript_id "NM_003657:uc002xws.2";
+chr20 hg19_knownGene exon 52675186 52675262 0.000000 - . gene_id "BCAS1"; transcript_id "NM_003657:uc002xws.2";
+chr20 hg19_knownGene exon 52686972 52687304 0.000000 - . gene_id "BCAS1"; transcript_id "NM_003657:uc002xws.2";
+chr20 hg19_knownGene CDS 52561464 52561535 0.000000 - 0 gene_id "BCAS1"; transcript_id "AK225656:uc002xwt.2";
+chr20 hg19_knownGene exon 52560079 52561535 0.000000 - . gene_id "BCAS1"; transcript_id "AK225656:uc002xwt.2";
+chr20 hg19_knownGene CDS 52569971 52570234 0.000000 - 0 gene_id "BCAS1"; transcript_id "AK225656:uc002xwt.2";
+chr20 hg19_knownGene exon 52569971 52570234 0.000000 - . gene_id "BCAS1"; transcript_id "AK225656:uc002xwt.2";
+chr20 hg19_knownGene CDS 52573971 52574036 0.000000 - 0 gene_id "BCAS1"; transcript_id "AK225656:uc002xwt.2";
+chr20 hg19_knownGene exon 52573971 52574036 0.000000 - . gene_id "BCAS1"; transcript_id "AK225656:uc002xwt.2";
+chr20 hg19_knownGene CDS 52583445 52583612 0.000000 - 0 gene_id "BCAS1"; transcript_id "AK225656:uc002xwt.2";
+chr20 hg19_knownGene exon 52583445 52583612 0.000000 - . gene_id "BCAS1"; transcript_id "AK225656:uc002xwt.2";
+chr20 hg19_knownGene CDS 52601826 52602038 0.000000 - 0 gene_id "BCAS1"; transcript_id "AK225656:uc002xwt.2";
+chr20 hg19_knownGene exon 52601826 52602038 0.000000 - . gene_id "BCAS1"; transcript_id "AK225656:uc002xwt.2";
+chr20 hg19_knownGene CDS 52611551 52611595 0.000000 - 0 gene_id "BCAS1"; transcript_id "AK225656:uc002xwt.2";
+chr20 hg19_knownGene exon 52611551 52611595 0.000000 - . gene_id "BCAS1"; transcript_id "AK225656:uc002xwt.2";
+chr20 hg19_knownGene CDS 52612431 52612589 0.000000 - 0 gene_id "BCAS1"; transcript_id "AK225656:uc002xwt.2";
+chr20 hg19_knownGene exon 52612431 52612589 0.000000 - . gene_id "BCAS1"; transcript_id "AK225656:uc002xwt.2";
+chr20 hg19_knownGene CDS 52644931 52645511 0.000000 - 2 gene_id "BCAS1"; transcript_id "AK225656:uc002xwt.2";
+chr20 hg19_knownGene exon 52644931 52645511 0.000000 - . gene_id "BCAS1"; transcript_id "AK225656:uc002xwt.2";
+chr20 hg19_knownGene CDS 52674624 52674693 0.000000 - 0 gene_id "BCAS1"; transcript_id "AK225656:uc002xwt.2";
+chr20 hg19_knownGene exon 52674624 52674693 0.000000 - . gene_id "BCAS1"; transcript_id "AK225656:uc002xwt.2";
+chr20 hg19_knownGene CDS 52675186 52675257 0.000000 - 0 gene_id "BCAS1"; transcript_id "AK225656:uc002xwt.2";
+chr20 hg19_knownGene exon 52675186 52675262 0.000000 - . gene_id "BCAS1"; transcript_id "AK225656:uc002xwt.2";
+chr20 hg19_knownGene exon 52686972 52687304 0.000000 - . gene_id "BCAS1"; transcript_id "AK225656:uc002xwt.2";
+chr20 hg19_knownGene CDS 52561464 52561535 0.000000 - 0 gene_id "BCAS1"; transcript_id "BC024044:uc010gil.1";
+chr20 hg19_knownGene exon 52560079 52561535 0.000000 - . gene_id "BCAS1"; transcript_id "BC024044:uc010gil.1";
+chr20 hg19_knownGene CDS 52569971 52570234 0.000000 - 0 gene_id "BCAS1"; transcript_id "BC024044:uc010gil.1";
+chr20 hg19_knownGene exon 52569971 52570234 0.000000 - . gene_id "BCAS1"; transcript_id "BC024044:uc010gil.1";
+chr20 hg19_knownGene CDS 52591928 52591969 0.000000 - 0 gene_id "BCAS1"; transcript_id "BC024044:uc010gil.1";
+chr20 hg19_knownGene exon 52591928 52591969 0.000000 - . gene_id "BCAS1"; transcript_id "BC024044:uc010gil.1";
+chr20 hg19_knownGene CDS 52601826 52602038 0.000000 - 0 gene_id "BCAS1"; transcript_id "BC024044:uc010gil.1";
+chr20 hg19_knownGene exon 52601826 52602038 0.000000 - . gene_id "BCAS1"; transcript_id "BC024044:uc010gil.1";
+chr20 hg19_knownGene CDS 52611551 52611595 0.000000 - 0 gene_id "BCAS1"; transcript_id "BC024044:uc010gil.1";
+chr20 hg19_knownGene exon 52611551 52611595 0.000000 - . gene_id "BCAS1"; transcript_id "BC024044:uc010gil.1";
+chr20 hg19_knownGene CDS 52612431 52612589 0.000000 - 0 gene_id "BCAS1"; transcript_id "BC024044:uc010gil.1";
+chr20 hg19_knownGene exon 52612431 52612589 0.000000 - . gene_id "BCAS1"; transcript_id "BC024044:uc010gil.1";
+chr20 hg19_knownGene CDS 52644931 52645511 0.000000 - 2 gene_id "BCAS1"; transcript_id "BC024044:uc010gil.1";
+chr20 hg19_knownGene exon 52644931 52645511 0.000000 - . gene_id "BCAS1"; transcript_id "BC024044:uc010gil.1";
+chr20 hg19_knownGene CDS 52674624 52674693 0.000000 - 0 gene_id "BCAS1"; transcript_id "BC024044:uc010gil.1";
+chr20 hg19_knownGene exon 52674624 52674693 0.000000 - . gene_id "BCAS1"; transcript_id "BC024044:uc010gil.1";
+chr20 hg19_knownGene CDS 52675186 52675257 0.000000 - 0 gene_id "BCAS1"; transcript_id "BC024044:uc010gil.1";
+chr20 hg19_knownGene exon 52675186 52675262 0.000000 - . gene_id "BCAS1"; transcript_id "BC024044:uc010gil.1";
+chr20 hg19_knownGene exon 52686972 52687304 0.000000 - . gene_id "BCAS1"; transcript_id "BC024044:uc010gil.1";
+chr20 hg19_knownGene CDS 52644871 52645362 0.000000 - 0 gene_id "BCAS1"; transcript_id "AK304213:uc010zzc.2";
+chr20 hg19_knownGene exon 52644411 52645511 0.000000 - . gene_id "BCAS1"; transcript_id "AK304213:uc010zzc.2";
+chr20 hg19_knownGene exon 52686972 52687304 0.000000 - . gene_id "BCAS1"; transcript_id "AK304213:uc010zzc.2";
+chr20 hg19_knownGene exon 52769988 52771300 0.000000 - . gene_id "CYP24A1"; transcript_id "AY858838:uc002xwu.1";
+chr20 hg19_knownGene CDS 52773721 52773828 0.000000 - 0 gene_id "CYP24A1"; transcript_id "AY858838:uc002xwu.1";
+chr20 hg19_knownGene exon 52773708 52773828 0.000000 - . gene_id "CYP24A1"; transcript_id "AY858838:uc002xwu.1";
+chr20 hg19_knownGene CDS 52773927 52774124 0.000000 - 0 gene_id "CYP24A1"; transcript_id "AY858838:uc002xwu.1";
+chr20 hg19_knownGene exon 52773927 52774124 0.000000 - . gene_id "CYP24A1"; transcript_id "AY858838:uc002xwu.1";
+chr20 hg19_knownGene CDS 52774625 52774703 0.000000 - 1 gene_id "CYP24A1"; transcript_id "AY858838:uc002xwu.1";
+chr20 hg19_knownGene exon 52774625 52774703 0.000000 - . gene_id "CYP24A1"; transcript_id "AY858838:uc002xwu.1";
+chr20 hg19_knownGene CDS 52775496 52775662 0.000000 - 0 gene_id "CYP24A1"; transcript_id "AY858838:uc002xwu.1";
+chr20 hg19_knownGene exon 52775496 52775662 0.000000 - . gene_id "CYP24A1"; transcript_id "AY858838:uc002xwu.1";
+chr20 hg19_knownGene CDS 52779256 52779401 0.000000 - 2 gene_id "CYP24A1"; transcript_id "AY858838:uc002xwu.1";
+chr20 hg19_knownGene exon 52779256 52779401 0.000000 - . gene_id "CYP24A1"; transcript_id "AY858838:uc002xwu.1";
+chr20 hg19_knownGene CDS 52780991 52781102 0.000000 - 0 gene_id "CYP24A1"; transcript_id "AY858838:uc002xwu.1";
+chr20 hg19_knownGene exon 52780991 52781102 0.000000 - . gene_id "CYP24A1"; transcript_id "AY858838:uc002xwu.1";
+chr20 hg19_knownGene CDS 52782281 52782372 0.000000 - 2 gene_id "CYP24A1"; transcript_id "AY858838:uc002xwu.1";
+chr20 hg19_knownGene exon 52782281 52782372 0.000000 - . gene_id "CYP24A1"; transcript_id "AY858838:uc002xwu.1";
+chr20 hg19_knownGene CDS 52786131 52786227 0.000000 - 0 gene_id "CYP24A1"; transcript_id "AY858838:uc002xwu.1";
+chr20 hg19_knownGene exon 52786131 52786227 0.000000 - . gene_id "CYP24A1"; transcript_id "AY858838:uc002xwu.1";
+chr20 hg19_knownGene CDS 52788116 52788232 0.000000 - 0 gene_id "CYP24A1"; transcript_id "AY858838:uc002xwu.1";
+chr20 hg19_knownGene exon 52788116 52788492 0.000000 - . gene_id "CYP24A1"; transcript_id "AY858838:uc002xwu.1";
+chr20 hg19_knownGene exon 52769988 52771300 0.000000 - . gene_id "CYP24A1"; transcript_id "NM_000782:uc002xwv.2";
+chr20 hg19_knownGene CDS 52773721 52773828 0.000000 - 0 gene_id "CYP24A1"; transcript_id "NM_000782:uc002xwv.2";
+chr20 hg19_knownGene exon 52773708 52773828 0.000000 - . gene_id "CYP24A1"; transcript_id "NM_000782:uc002xwv.2";
+chr20 hg19_knownGene CDS 52773927 52774124 0.000000 - 0 gene_id "CYP24A1"; transcript_id "NM_000782:uc002xwv.2";
+chr20 hg19_knownGene exon 52773927 52774124 0.000000 - . gene_id "CYP24A1"; transcript_id "NM_000782:uc002xwv.2";
+chr20 hg19_knownGene CDS 52774625 52774703 0.000000 - 1 gene_id "CYP24A1"; transcript_id "NM_000782:uc002xwv.2";
+chr20 hg19_knownGene exon 52774625 52774703 0.000000 - . gene_id "CYP24A1"; transcript_id "NM_000782:uc002xwv.2";
+chr20 hg19_knownGene CDS 52775496 52775662 0.000000 - 0 gene_id "CYP24A1"; transcript_id "NM_000782:uc002xwv.2";
+chr20 hg19_knownGene exon 52775496 52775662 0.000000 - . gene_id "CYP24A1"; transcript_id "NM_000782:uc002xwv.2";
+chr20 hg19_knownGene CDS 52779256 52779401 0.000000 - 2 gene_id "CYP24A1"; transcript_id "NM_000782:uc002xwv.2";
+chr20 hg19_knownGene exon 52779256 52779401 0.000000 - . gene_id "CYP24A1"; transcript_id "NM_000782:uc002xwv.2";
+chr20 hg19_knownGene CDS 52780991 52781102 0.000000 - 0 gene_id "CYP24A1"; transcript_id "NM_000782:uc002xwv.2";
+chr20 hg19_knownGene exon 52780991 52781102 0.000000 - . gene_id "CYP24A1"; transcript_id "NM_000782:uc002xwv.2";
+chr20 hg19_knownGene CDS 52782281 52782372 0.000000 - 2 gene_id "CYP24A1"; transcript_id "NM_000782:uc002xwv.2";
+chr20 hg19_knownGene exon 52782281 52782372 0.000000 - . gene_id "CYP24A1"; transcript_id "NM_000782:uc002xwv.2";
+chr20 hg19_knownGene CDS 52786131 52786227 0.000000 - 0 gene_id "CYP24A1"; transcript_id "NM_000782:uc002xwv.2";
+chr20 hg19_knownGene exon 52786131 52786227 0.000000 - . gene_id "CYP24A1"; transcript_id "NM_000782:uc002xwv.2";
+chr20 hg19_knownGene CDS 52788116 52788209 0.000000 - 1 gene_id "CYP24A1"; transcript_id "NM_000782:uc002xwv.2";
+chr20 hg19_knownGene exon 52788116 52788209 0.000000 - . gene_id "CYP24A1"; transcript_id "NM_000782:uc002xwv.2";
+chr20 hg19_knownGene CDS 52789448 52789638 0.000000 - 0 gene_id "CYP24A1"; transcript_id "NM_000782:uc002xwv.2";
+chr20 hg19_knownGene exon 52789448 52789638 0.000000 - . gene_id "CYP24A1"; transcript_id "NM_000782:uc002xwv.2";
+chr20 hg19_knownGene CDS 52789861 52790118 0.000000 - 0 gene_id "CYP24A1"; transcript_id "NM_000782:uc002xwv.2";
+chr20 hg19_knownGene exon 52789861 52790516 0.000000 - . gene_id "CYP24A1"; transcript_id "NM_000782:uc002xwv.2";
+chr20 hg19_knownGene exon 52769988 52771300 0.000000 - . gene_id "CYP24A1"; transcript_id "NM_001128915:uc002xww.2";
+chr20 hg19_knownGene CDS 52773721 52773828 0.000000 - 0 gene_id "CYP24A1"; transcript_id "NM_001128915:uc002xww.2";
+chr20 hg19_knownGene exon 52773708 52773828 0.000000 - . gene_id "CYP24A1"; transcript_id "NM_001128915:uc002xww.2";
+chr20 hg19_knownGene CDS 52774625 52774703 0.000000 - 1 gene_id "CYP24A1"; transcript_id "NM_001128915:uc002xww.2";
+chr20 hg19_knownGene exon 52774625 52774703 0.000000 - . gene_id "CYP24A1"; transcript_id "NM_001128915:uc002xww.2";
+chr20 hg19_knownGene CDS 52775496 52775662 0.000000 - 0 gene_id "CYP24A1"; transcript_id "NM_001128915:uc002xww.2";
+chr20 hg19_knownGene exon 52775496 52775662 0.000000 - . gene_id "CYP24A1"; transcript_id "NM_001128915:uc002xww.2";
+chr20 hg19_knownGene CDS 52779256 52779401 0.000000 - 2 gene_id "CYP24A1"; transcript_id "NM_001128915:uc002xww.2";
+chr20 hg19_knownGene exon 52779256 52779401 0.000000 - . gene_id "CYP24A1"; transcript_id "NM_001128915:uc002xww.2";
+chr20 hg19_knownGene CDS 52780991 52781102 0.000000 - 0 gene_id "CYP24A1"; transcript_id "NM_001128915:uc002xww.2";
+chr20 hg19_knownGene exon 52780991 52781102 0.000000 - . gene_id "CYP24A1"; transcript_id "NM_001128915:uc002xww.2";
+chr20 hg19_knownGene CDS 52782281 52782372 0.000000 - 2 gene_id "CYP24A1"; transcript_id "NM_001128915:uc002xww.2";
+chr20 hg19_knownGene exon 52782281 52782372 0.000000 - . gene_id "CYP24A1"; transcript_id "NM_001128915:uc002xww.2";
+chr20 hg19_knownGene CDS 52786131 52786227 0.000000 - 0 gene_id "CYP24A1"; transcript_id "NM_001128915:uc002xww.2";
+chr20 hg19_knownGene exon 52786131 52786227 0.000000 - . gene_id "CYP24A1"; transcript_id "NM_001128915:uc002xww.2";
+chr20 hg19_knownGene CDS 52788116 52788209 0.000000 - 1 gene_id "CYP24A1"; transcript_id "NM_001128915:uc002xww.2";
+chr20 hg19_knownGene exon 52788116 52788209 0.000000 - . gene_id "CYP24A1"; transcript_id "NM_001128915:uc002xww.2";
+chr20 hg19_knownGene CDS 52789448 52789638 0.000000 - 0 gene_id "CYP24A1"; transcript_id "NM_001128915:uc002xww.2";
+chr20 hg19_knownGene exon 52789448 52789638 0.000000 - . gene_id "CYP24A1"; transcript_id "NM_001128915:uc002xww.2";
+chr20 hg19_knownGene CDS 52789861 52790118 0.000000 - 0 gene_id "CYP24A1"; transcript_id "NM_001128915:uc002xww.2";
+chr20 hg19_knownGene exon 52789861 52790516 0.000000 - . gene_id "CYP24A1"; transcript_id "NM_001128915:uc002xww.2";
+chr20 hg19_knownGene CDS 52824640 52824663 0.000000 + 0 gene_id "PFDN4"; transcript_id "NM_002623:uc002xwx.3";
+chr20 hg19_knownGene exon 52824502 52824663 0.000000 + . gene_id "PFDN4"; transcript_id "NM_002623:uc002xwx.3";
+chr20 hg19_knownGene CDS 52830890 52830997 0.000000 + 0 gene_id "PFDN4"; transcript_id "NM_002623:uc002xwx.3";
+chr20 hg19_knownGene exon 52830890 52830997 0.000000 + . gene_id "PFDN4"; transcript_id "NM_002623:uc002xwx.3";
+chr20 hg19_knownGene CDS 52831839 52831979 0.000000 + 0 gene_id "PFDN4"; transcript_id "NM_002623:uc002xwx.3";
+chr20 hg19_knownGene exon 52831839 52831979 0.000000 + . gene_id "PFDN4"; transcript_id "NM_002623:uc002xwx.3";
+chr20 hg19_knownGene CDS 52835558 52835686 0.000000 + 0 gene_id "PFDN4"; transcript_id "NM_002623:uc002xwx.3";
+chr20 hg19_knownGene exon 52835558 52836492 0.000000 + . gene_id "PFDN4"; transcript_id "NM_002623:uc002xwx.3";
+chr20 hg19_knownGene CDS 53092486 53092551 0.000000 + 0 gene_id "DOK5"; transcript_id "NM_018431:uc002xwy.3";
+chr20 hg19_knownGene exon 53092266 53092551 0.000000 + . gene_id "DOK5"; transcript_id "NM_018431:uc002xwy.3";
+chr20 hg19_knownGene CDS 53171472 53171579 0.000000 + 0 gene_id "DOK5"; transcript_id "NM_018431:uc002xwy.3";
+chr20 hg19_knownGene exon 53171472 53171579 0.000000 + . gene_id "DOK5"; transcript_id "NM_018431:uc002xwy.3";
+chr20 hg19_knownGene CDS 53205022 53205136 0.000000 + 0 gene_id "DOK5"; transcript_id "NM_018431:uc002xwy.3";
+chr20 hg19_knownGene exon 53205022 53205136 0.000000 + . gene_id "DOK5"; transcript_id "NM_018431:uc002xwy.3";
+chr20 hg19_knownGene CDS 53205226 53205345 0.000000 + 2 gene_id "DOK5"; transcript_id "NM_018431:uc002xwy.3";
+chr20 hg19_knownGene exon 53205226 53205345 0.000000 + . gene_id "DOK5"; transcript_id "NM_018431:uc002xwy.3";
+chr20 hg19_knownGene CDS 53208155 53208344 0.000000 + 2 gene_id "DOK5"; transcript_id "NM_018431:uc002xwy.3";
+chr20 hg19_knownGene exon 53208155 53208344 0.000000 + . gene_id "DOK5"; transcript_id "NM_018431:uc002xwy.3";
+chr20 hg19_knownGene CDS 53226927 53227062 0.000000 + 1 gene_id "DOK5"; transcript_id "NM_018431:uc002xwy.3";
+chr20 hg19_knownGene exon 53226927 53227062 0.000000 + . gene_id "DOK5"; transcript_id "NM_018431:uc002xwy.3";
+chr20 hg19_knownGene CDS 53259997 53260117 0.000000 + 0 gene_id "DOK5"; transcript_id "NM_018431:uc002xwy.3";
+chr20 hg19_knownGene exon 53259997 53260117 0.000000 + . gene_id "DOK5"; transcript_id "NM_018431:uc002xwy.3";
+chr20 hg19_knownGene CDS 53266954 53267015 0.000000 + 2 gene_id "DOK5"; transcript_id "NM_018431:uc002xwy.3";
+chr20 hg19_knownGene exon 53266954 53267710 0.000000 + . gene_id "DOK5"; transcript_id "NM_018431:uc002xwy.3";
+chr20 hg19_knownGene exon 53476227 53476351 0.000000 - . gene_id "U4atac"; transcript_id ":uc021wez.1";
+chr20 hg19_knownGene CDS 54573616 54573810 0.000000 - 0 gene_id "CBLN4"; transcript_id "NM_080617:uc002xxa.3";
+chr20 hg19_knownGene exon 54572496 54573810 0.000000 - . gene_id "CBLN4"; transcript_id "NM_080617:uc002xxa.3";
+chr20 hg19_knownGene CDS 54575787 54575903 0.000000 - 0 gene_id "CBLN4"; transcript_id "NM_080617:uc002xxa.3";
+chr20 hg19_knownGene exon 54575787 54575903 0.000000 - . gene_id "CBLN4"; transcript_id "NM_080617:uc002xxa.3";
+chr20 hg19_knownGene CDS 54578937 54579227 0.000000 - 0 gene_id "CBLN4"; transcript_id "NM_080617:uc002xxa.3";
+chr20 hg19_knownGene exon 54578937 54580012 0.000000 - . gene_id "CBLN4"; transcript_id "NM_080617:uc002xxa.3";
+chr20 hg19_knownGene exon 54780108 54780229 0.000000 - . gene_id "5S_rRNA"; transcript_id ":uc021wfa.1";
+chr20 hg19_knownGene CDS 54823900 54824868 0.000000 + 0 gene_id "MC3R"; transcript_id "NM_019888:uc002xxb.2";
+chr20 hg19_knownGene exon 54823788 54824871 0.000000 + . gene_id "MC3R"; transcript_id "NM_019888:uc002xxb.2";
+chr20 hg19_knownGene CDS 54934062 54934247 0.000000 + 0 gene_id "FAM210B"; transcript_id "NM_080821:uc002xxc.3";
+chr20 hg19_knownGene exon 54933983 54934247 0.000000 + . gene_id "FAM210B"; transcript_id "NM_080821:uc002xxc.3";
+chr20 hg19_knownGene CDS 54940143 54940318 0.000000 + 0 gene_id "FAM210B"; transcript_id "NM_080821:uc002xxc.3";
+chr20 hg19_knownGene exon 54940143 54940318 0.000000 + . gene_id "FAM210B"; transcript_id "NM_080821:uc002xxc.3";
+chr20 hg19_knownGene CDS 54941127 54941340 0.000000 + 1 gene_id "FAM210B"; transcript_id "NM_080821:uc002xxc.3";
+chr20 hg19_knownGene exon 54941127 54943718 0.000000 + . gene_id "FAM210B"; transcript_id "NM_080821:uc002xxc.3";
+chr20 hg19_knownGene CDS 54945217 54945396 0.000000 - 0 gene_id "AURKA"; transcript_id "NM_198433:uc002xxd.1";
+chr20 hg19_knownGene exon 54944445 54945396 0.000000 - . gene_id "AURKA"; transcript_id "NM_198433:uc002xxd.1";
+chr20 hg19_knownGene CDS 54945541 54945715 0.000000 - 1 gene_id "AURKA"; transcript_id "NM_198433:uc002xxd.1";
+chr20 hg19_knownGene exon 54945541 54945715 0.000000 - . gene_id "AURKA"; transcript_id "NM_198433:uc002xxd.1";
+chr20 hg19_knownGene CDS 54948464 54948612 0.000000 - 0 gene_id "AURKA"; transcript_id "NM_198433:uc002xxd.1";
+chr20 hg19_knownGene exon 54948464 54948612 0.000000 - . gene_id "AURKA"; transcript_id "NM_198433:uc002xxd.1";
+chr20 hg19_knownGene CDS 54956489 54956627 0.000000 - 1 gene_id "AURKA"; transcript_id "NM_198433:uc002xxd.1";
+chr20 hg19_knownGene exon 54956489 54956627 0.000000 - . gene_id "AURKA"; transcript_id "NM_198433:uc002xxd.1";
+chr20 hg19_knownGene CDS 54958041 54958232 0.000000 - 1 gene_id "AURKA"; transcript_id "NM_198433:uc002xxd.1";
+chr20 hg19_knownGene exon 54958041 54958232 0.000000 - . gene_id "AURKA"; transcript_id "NM_198433:uc002xxd.1";
+chr20 hg19_knownGene CDS 54959326 54959380 0.000000 - 2 gene_id "AURKA"; transcript_id "NM_198433:uc002xxd.1";
+chr20 hg19_knownGene exon 54959326 54959380 0.000000 - . gene_id "AURKA"; transcript_id "NM_198433:uc002xxd.1";
+chr20 hg19_knownGene CDS 54961313 54961589 0.000000 - 0 gene_id "AURKA"; transcript_id "NM_198433:uc002xxd.1";
+chr20 hg19_knownGene exon 54961313 54961589 0.000000 - . gene_id "AURKA"; transcript_id "NM_198433:uc002xxd.1";
+chr20 hg19_knownGene CDS 54963212 54963253 0.000000 - 0 gene_id "AURKA"; transcript_id "NM_198433:uc002xxd.1";
+chr20 hg19_knownGene exon 54963212 54963258 0.000000 - . gene_id "AURKA"; transcript_id "NM_198433:uc002xxd.1";
+chr20 hg19_knownGene exon 54963743 54963840 0.000000 - . gene_id "AURKA"; transcript_id "NM_198433:uc002xxd.1";
+chr20 hg19_knownGene exon 54965612 54965721 0.000000 - . gene_id "AURKA"; transcript_id "NM_198433:uc002xxd.1";
+chr20 hg19_knownGene exon 54966999 54967351 0.000000 - . gene_id "AURKA"; transcript_id "NM_198433:uc002xxd.1";
+chr20 hg19_knownGene CDS 54945217 54945396 0.000000 - 0 gene_id "AURKA"; transcript_id "NM_198434:uc002xxe.1";
+chr20 hg19_knownGene exon 54944445 54945396 0.000000 - . gene_id "AURKA"; transcript_id "NM_198434:uc002xxe.1";
+chr20 hg19_knownGene CDS 54945541 54945715 0.000000 - 1 gene_id "AURKA"; transcript_id "NM_198434:uc002xxe.1";
+chr20 hg19_knownGene exon 54945541 54945715 0.000000 - . gene_id "AURKA"; transcript_id "NM_198434:uc002xxe.1";
+chr20 hg19_knownGene CDS 54948464 54948612 0.000000 - 0 gene_id "AURKA"; transcript_id "NM_198434:uc002xxe.1";
+chr20 hg19_knownGene exon 54948464 54948612 0.000000 - . gene_id "AURKA"; transcript_id "NM_198434:uc002xxe.1";
+chr20 hg19_knownGene CDS 54956489 54956627 0.000000 - 1 gene_id "AURKA"; transcript_id "NM_198434:uc002xxe.1";
+chr20 hg19_knownGene exon 54956489 54956627 0.000000 - . gene_id "AURKA"; transcript_id "NM_198434:uc002xxe.1";
+chr20 hg19_knownGene CDS 54958041 54958232 0.000000 - 1 gene_id "AURKA"; transcript_id "NM_198434:uc002xxe.1";
+chr20 hg19_knownGene exon 54958041 54958232 0.000000 - . gene_id "AURKA"; transcript_id "NM_198434:uc002xxe.1";
+chr20 hg19_knownGene CDS 54959326 54959380 0.000000 - 2 gene_id "AURKA"; transcript_id "NM_198434:uc002xxe.1";
+chr20 hg19_knownGene exon 54959326 54959380 0.000000 - . gene_id "AURKA"; transcript_id "NM_198434:uc002xxe.1";
+chr20 hg19_knownGene CDS 54961313 54961589 0.000000 - 0 gene_id "AURKA"; transcript_id "NM_198434:uc002xxe.1";
+chr20 hg19_knownGene exon 54961313 54961589 0.000000 - . gene_id "AURKA"; transcript_id "NM_198434:uc002xxe.1";
+chr20 hg19_knownGene CDS 54963212 54963253 0.000000 - 0 gene_id "AURKA"; transcript_id "NM_198434:uc002xxe.1";
+chr20 hg19_knownGene exon 54963212 54963258 0.000000 - . gene_id "AURKA"; transcript_id "NM_198434:uc002xxe.1";
+chr20 hg19_knownGene exon 54965612 54965721 0.000000 - . gene_id "AURKA"; transcript_id "NM_198434:uc002xxe.1";
+chr20 hg19_knownGene exon 54967210 54967351 0.000000 - . gene_id "AURKA"; transcript_id "NM_198434:uc002xxe.1";
+chr20 hg19_knownGene CDS 54945217 54945396 0.000000 - 0 gene_id "AURKA"; transcript_id "NM_198436:uc002xxf.1";
+chr20 hg19_knownGene exon 54944445 54945396 0.000000 - . gene_id "AURKA"; transcript_id "NM_198436:uc002xxf.1";
+chr20 hg19_knownGene CDS 54945541 54945715 0.000000 - 1 gene_id "AURKA"; transcript_id "NM_198436:uc002xxf.1";
+chr20 hg19_knownGene exon 54945541 54945715 0.000000 - . gene_id "AURKA"; transcript_id "NM_198436:uc002xxf.1";
+chr20 hg19_knownGene CDS 54948464 54948612 0.000000 - 0 gene_id "AURKA"; transcript_id "NM_198436:uc002xxf.1";
+chr20 hg19_knownGene exon 54948464 54948612 0.000000 - . gene_id "AURKA"; transcript_id "NM_198436:uc002xxf.1";
+chr20 hg19_knownGene CDS 54956489 54956627 0.000000 - 1 gene_id "AURKA"; transcript_id "NM_198436:uc002xxf.1";
+chr20 hg19_knownGene exon 54956489 54956627 0.000000 - . gene_id "AURKA"; transcript_id "NM_198436:uc002xxf.1";
+chr20 hg19_knownGene CDS 54958041 54958232 0.000000 - 1 gene_id "AURKA"; transcript_id "NM_198436:uc002xxf.1";
+chr20 hg19_knownGene exon 54958041 54958232 0.000000 - . gene_id "AURKA"; transcript_id "NM_198436:uc002xxf.1";
+chr20 hg19_knownGene CDS 54959326 54959380 0.000000 - 2 gene_id "AURKA"; transcript_id "NM_198436:uc002xxf.1";
+chr20 hg19_knownGene exon 54959326 54959380 0.000000 - . gene_id "AURKA"; transcript_id "NM_198436:uc002xxf.1";
+chr20 hg19_knownGene CDS 54961313 54961589 0.000000 - 0 gene_id "AURKA"; transcript_id "NM_198436:uc002xxf.1";
+chr20 hg19_knownGene exon 54961313 54961589 0.000000 - . gene_id "AURKA"; transcript_id "NM_198436:uc002xxf.1";
+chr20 hg19_knownGene CDS 54963212 54963253 0.000000 - 0 gene_id "AURKA"; transcript_id "NM_198436:uc002xxf.1";
+chr20 hg19_knownGene exon 54963212 54963258 0.000000 - . gene_id "AURKA"; transcript_id "NM_198436:uc002xxf.1";
+chr20 hg19_knownGene exon 54965612 54965721 0.000000 - . gene_id "AURKA"; transcript_id "NM_198436:uc002xxf.1";
+chr20 hg19_knownGene exon 54967224 54967351 0.000000 - . gene_id "AURKA"; transcript_id "NM_198436:uc002xxf.1";
+chr20 hg19_knownGene CDS 54945217 54945396 0.000000 - 0 gene_id "AURKA"; transcript_id "NM_198435:uc002xxg.1";
+chr20 hg19_knownGene exon 54944445 54945396 0.000000 - . gene_id "AURKA"; transcript_id "NM_198435:uc002xxg.1";
+chr20 hg19_knownGene CDS 54945541 54945715 0.000000 - 1 gene_id "AURKA"; transcript_id "NM_198435:uc002xxg.1";
+chr20 hg19_knownGene exon 54945541 54945715 0.000000 - . gene_id "AURKA"; transcript_id "NM_198435:uc002xxg.1";
+chr20 hg19_knownGene CDS 54948464 54948612 0.000000 - 0 gene_id "AURKA"; transcript_id "NM_198435:uc002xxg.1";
+chr20 hg19_knownGene exon 54948464 54948612 0.000000 - . gene_id "AURKA"; transcript_id "NM_198435:uc002xxg.1";
+chr20 hg19_knownGene CDS 54956489 54956627 0.000000 - 1 gene_id "AURKA"; transcript_id "NM_198435:uc002xxg.1";
+chr20 hg19_knownGene exon 54956489 54956627 0.000000 - . gene_id "AURKA"; transcript_id "NM_198435:uc002xxg.1";
+chr20 hg19_knownGene CDS 54958041 54958232 0.000000 - 1 gene_id "AURKA"; transcript_id "NM_198435:uc002xxg.1";
+chr20 hg19_knownGene exon 54958041 54958232 0.000000 - . gene_id "AURKA"; transcript_id "NM_198435:uc002xxg.1";
+chr20 hg19_knownGene CDS 54959326 54959380 0.000000 - 2 gene_id "AURKA"; transcript_id "NM_198435:uc002xxg.1";
+chr20 hg19_knownGene exon 54959326 54959380 0.000000 - . gene_id "AURKA"; transcript_id "NM_198435:uc002xxg.1";
+chr20 hg19_knownGene CDS 54961313 54961589 0.000000 - 0 gene_id "AURKA"; transcript_id "NM_198435:uc002xxg.1";
+chr20 hg19_knownGene exon 54961313 54961589 0.000000 - . gene_id "AURKA"; transcript_id "NM_198435:uc002xxg.1";
+chr20 hg19_knownGene CDS 54963212 54963253 0.000000 - 0 gene_id "AURKA"; transcript_id "NM_198435:uc002xxg.1";
+chr20 hg19_knownGene exon 54963212 54963258 0.000000 - . gene_id "AURKA"; transcript_id "NM_198435:uc002xxg.1";
+chr20 hg19_knownGene exon 54967210 54967351 0.000000 - . gene_id "AURKA"; transcript_id "NM_198435:uc002xxg.1";
+chr20 hg19_knownGene CDS 54945217 54945396 0.000000 - 0 gene_id "AURKA"; transcript_id "NM_198437:uc002xxh.1";
+chr20 hg19_knownGene exon 54944445 54945396 0.000000 - . gene_id "AURKA"; transcript_id "NM_198437:uc002xxh.1";
+chr20 hg19_knownGene CDS 54945541 54945715 0.000000 - 1 gene_id "AURKA"; transcript_id "NM_198437:uc002xxh.1";
+chr20 hg19_knownGene exon 54945541 54945715 0.000000 - . gene_id "AURKA"; transcript_id "NM_198437:uc002xxh.1";
+chr20 hg19_knownGene CDS 54948464 54948612 0.000000 - 0 gene_id "AURKA"; transcript_id "NM_198437:uc002xxh.1";
+chr20 hg19_knownGene exon 54948464 54948612 0.000000 - . gene_id "AURKA"; transcript_id "NM_198437:uc002xxh.1";
+chr20 hg19_knownGene CDS 54956489 54956627 0.000000 - 1 gene_id "AURKA"; transcript_id "NM_198437:uc002xxh.1";
+chr20 hg19_knownGene exon 54956489 54956627 0.000000 - . gene_id "AURKA"; transcript_id "NM_198437:uc002xxh.1";
+chr20 hg19_knownGene CDS 54958041 54958232 0.000000 - 1 gene_id "AURKA"; transcript_id "NM_198437:uc002xxh.1";
+chr20 hg19_knownGene exon 54958041 54958232 0.000000 - . gene_id "AURKA"; transcript_id "NM_198437:uc002xxh.1";
+chr20 hg19_knownGene CDS 54959326 54959380 0.000000 - 2 gene_id "AURKA"; transcript_id "NM_198437:uc002xxh.1";
+chr20 hg19_knownGene exon 54959326 54959380 0.000000 - . gene_id "AURKA"; transcript_id "NM_198437:uc002xxh.1";
+chr20 hg19_knownGene CDS 54961313 54961589 0.000000 - 0 gene_id "AURKA"; transcript_id "NM_198437:uc002xxh.1";
+chr20 hg19_knownGene exon 54961313 54961589 0.000000 - . gene_id "AURKA"; transcript_id "NM_198437:uc002xxh.1";
+chr20 hg19_knownGene CDS 54963212 54963253 0.000000 - 0 gene_id "AURKA"; transcript_id "NM_198437:uc002xxh.1";
+chr20 hg19_knownGene exon 54963212 54963258 0.000000 - . gene_id "AURKA"; transcript_id "NM_198437:uc002xxh.1";
+chr20 hg19_knownGene exon 54967224 54967351 0.000000 - . gene_id "AURKA"; transcript_id "NM_198437:uc002xxh.1";
+chr20 hg19_knownGene CDS 54945217 54945396 0.000000 - 0 gene_id "AURKA"; transcript_id "NM_003600:uc002xxi.1";
+chr20 hg19_knownGene exon 54944445 54945396 0.000000 - . gene_id "AURKA"; transcript_id "NM_003600:uc002xxi.1";
+chr20 hg19_knownGene CDS 54945541 54945715 0.000000 - 1 gene_id "AURKA"; transcript_id "NM_003600:uc002xxi.1";
+chr20 hg19_knownGene exon 54945541 54945715 0.000000 - . gene_id "AURKA"; transcript_id "NM_003600:uc002xxi.1";
+chr20 hg19_knownGene CDS 54948464 54948612 0.000000 - 0 gene_id "AURKA"; transcript_id "NM_003600:uc002xxi.1";
+chr20 hg19_knownGene exon 54948464 54948612 0.000000 - . gene_id "AURKA"; transcript_id "NM_003600:uc002xxi.1";
+chr20 hg19_knownGene CDS 54956489 54956627 0.000000 - 1 gene_id "AURKA"; transcript_id "NM_003600:uc002xxi.1";
+chr20 hg19_knownGene exon 54956489 54956627 0.000000 - . gene_id "AURKA"; transcript_id "NM_003600:uc002xxi.1";
+chr20 hg19_knownGene CDS 54958041 54958232 0.000000 - 1 gene_id "AURKA"; transcript_id "NM_003600:uc002xxi.1";
+chr20 hg19_knownGene exon 54958041 54958232 0.000000 - . gene_id "AURKA"; transcript_id "NM_003600:uc002xxi.1";
+chr20 hg19_knownGene CDS 54959326 54959380 0.000000 - 2 gene_id "AURKA"; transcript_id "NM_003600:uc002xxi.1";
+chr20 hg19_knownGene exon 54959326 54959380 0.000000 - . gene_id "AURKA"; transcript_id "NM_003600:uc002xxi.1";
+chr20 hg19_knownGene CDS 54961313 54961589 0.000000 - 0 gene_id "AURKA"; transcript_id "NM_003600:uc002xxi.1";
+chr20 hg19_knownGene exon 54961313 54961589 0.000000 - . gene_id "AURKA"; transcript_id "NM_003600:uc002xxi.1";
+chr20 hg19_knownGene CDS 54963212 54963253 0.000000 - 0 gene_id "AURKA"; transcript_id "NM_003600:uc002xxi.1";
+chr20 hg19_knownGene exon 54963212 54963258 0.000000 - . gene_id "AURKA"; transcript_id "NM_003600:uc002xxi.1";
+chr20 hg19_knownGene exon 54966999 54967351 0.000000 - . gene_id "AURKA"; transcript_id "NM_003600:uc002xxi.1";
+chr20 hg19_knownGene CDS 54945217 54945396 0.000000 - 0 gene_id "AURKA"; transcript_id "BC001280:uc002xxj.1";
+chr20 hg19_knownGene exon 54944445 54945396 0.000000 - . gene_id "AURKA"; transcript_id "BC001280:uc002xxj.1";
+chr20 hg19_knownGene CDS 54945541 54945715 0.000000 - 1 gene_id "AURKA"; transcript_id "BC001280:uc002xxj.1";
+chr20 hg19_knownGene exon 54945541 54945715 0.000000 - . gene_id "AURKA"; transcript_id "BC001280:uc002xxj.1";
+chr20 hg19_knownGene CDS 54948464 54948612 0.000000 - 0 gene_id "AURKA"; transcript_id "BC001280:uc002xxj.1";
+chr20 hg19_knownGene exon 54948464 54948612 0.000000 - . gene_id "AURKA"; transcript_id "BC001280:uc002xxj.1";
+chr20 hg19_knownGene CDS 54956489 54956627 0.000000 - 1 gene_id "AURKA"; transcript_id "BC001280:uc002xxj.1";
+chr20 hg19_knownGene exon 54956489 54956627 0.000000 - . gene_id "AURKA"; transcript_id "BC001280:uc002xxj.1";
+chr20 hg19_knownGene CDS 54958041 54958232 0.000000 - 1 gene_id "AURKA"; transcript_id "BC001280:uc002xxj.1";
+chr20 hg19_knownGene exon 54958041 54958232 0.000000 - . gene_id "AURKA"; transcript_id "BC001280:uc002xxj.1";
+chr20 hg19_knownGene CDS 54959326 54959380 0.000000 - 2 gene_id "AURKA"; transcript_id "BC001280:uc002xxj.1";
+chr20 hg19_knownGene exon 54959326 54959380 0.000000 - . gene_id "AURKA"; transcript_id "BC001280:uc002xxj.1";
+chr20 hg19_knownGene CDS 54961313 54961589 0.000000 - 0 gene_id "AURKA"; transcript_id "BC001280:uc002xxj.1";
+chr20 hg19_knownGene exon 54961313 54961589 0.000000 - . gene_id "AURKA"; transcript_id "BC001280:uc002xxj.1";
+chr20 hg19_knownGene CDS 54963212 54963253 0.000000 - 0 gene_id "AURKA"; transcript_id "BC001280:uc002xxj.1";
+chr20 hg19_knownGene exon 54963212 54963258 0.000000 - . gene_id "AURKA"; transcript_id "BC001280:uc002xxj.1";
+chr20 hg19_knownGene exon 54963743 54963840 0.000000 - . gene_id "AURKA"; transcript_id "BC001280:uc002xxj.1";
+chr20 hg19_knownGene exon 54967224 54967351 0.000000 - . gene_id "AURKA"; transcript_id "BC001280:uc002xxj.1";
+chr20 hg19_knownGene exon 54944445 54945396 0.000000 - . gene_id "AURKA"; transcript_id "AK301769:uc010zzd.1";
+chr20 hg19_knownGene exon 54945541 54945715 0.000000 - . gene_id "AURKA"; transcript_id "AK301769:uc010zzd.1";
+chr20 hg19_knownGene exon 54948464 54948612 0.000000 - . gene_id "AURKA"; transcript_id "AK301769:uc010zzd.1";
+chr20 hg19_knownGene exon 54956489 54956627 0.000000 - . gene_id "AURKA"; transcript_id "AK301769:uc010zzd.1";
+chr20 hg19_knownGene exon 54958041 54958232 0.000000 - . gene_id "AURKA"; transcript_id "AK301769:uc010zzd.1";
+chr20 hg19_knownGene exon 54959326 54959380 0.000000 - . gene_id "AURKA"; transcript_id "AK301769:uc010zzd.1";
+chr20 hg19_knownGene exon 54961518 54961589 0.000000 - . gene_id "AURKA"; transcript_id "AK301769:uc010zzd.1";
+chr20 hg19_knownGene exon 54963212 54963258 0.000000 - . gene_id "AURKA"; transcript_id "AK301769:uc010zzd.1";
+chr20 hg19_knownGene exon 54967224 54967351 0.000000 - . gene_id "AURKA"; transcript_id "AK301769:uc010zzd.1";
+chr20 hg19_knownGene exon 54967427 54967594 0.000000 + . gene_id "CSTF1"; transcript_id "NM_001033521:uc002xxl.1";
+chr20 hg19_knownGene CDS 54970609 54970777 0.000000 + 0 gene_id "CSTF1"; transcript_id "NM_001033521:uc002xxl.1";
+chr20 hg19_knownGene exon 54970577 54970777 0.000000 + . gene_id "CSTF1"; transcript_id "NM_001033521:uc002xxl.1";
+chr20 hg19_knownGene CDS 54972263 54972540 0.000000 + 2 gene_id "CSTF1"; transcript_id "NM_001033521:uc002xxl.1";
+chr20 hg19_knownGene exon 54972263 54972540 0.000000 + . gene_id "CSTF1"; transcript_id "NM_001033521:uc002xxl.1";
+chr20 hg19_knownGene CDS 54972700 54972897 0.000000 + 0 gene_id "CSTF1"; transcript_id "NM_001033521:uc002xxl.1";
+chr20 hg19_knownGene exon 54972700 54972897 0.000000 + . gene_id "CSTF1"; transcript_id "NM_001033521:uc002xxl.1";
+chr20 hg19_knownGene CDS 54974023 54974413 0.000000 + 0 gene_id "CSTF1"; transcript_id "NM_001033521:uc002xxl.1";
+chr20 hg19_knownGene exon 54974023 54974413 0.000000 + . gene_id "CSTF1"; transcript_id "NM_001033521:uc002xxl.1";
+chr20 hg19_knownGene CDS 54978524 54978780 0.000000 + 2 gene_id "CSTF1"; transcript_id "NM_001033521:uc002xxl.1";
+chr20 hg19_knownGene exon 54978524 54979582 0.000000 + . gene_id "CSTF1"; transcript_id "NM_001033521:uc002xxl.1";
+chr20 hg19_knownGene exon 54967574 54967769 0.000000 + . gene_id "CSTF1"; transcript_id "NM_001324:uc002xxm.1";
+chr20 hg19_knownGene CDS 54970609 54970777 0.000000 + 0 gene_id "CSTF1"; transcript_id "NM_001324:uc002xxm.1";
+chr20 hg19_knownGene exon 54970577 54970777 0.000000 + . gene_id "CSTF1"; transcript_id "NM_001324:uc002xxm.1";
+chr20 hg19_knownGene CDS 54972263 54972540 0.000000 + 2 gene_id "CSTF1"; transcript_id "NM_001324:uc002xxm.1";
+chr20 hg19_knownGene exon 54972263 54972540 0.000000 + . gene_id "CSTF1"; transcript_id "NM_001324:uc002xxm.1";
+chr20 hg19_knownGene CDS 54972700 54972897 0.000000 + 0 gene_id "CSTF1"; transcript_id "NM_001324:uc002xxm.1";
+chr20 hg19_knownGene exon 54972700 54972897 0.000000 + . gene_id "CSTF1"; transcript_id "NM_001324:uc002xxm.1";
+chr20 hg19_knownGene CDS 54974023 54974413 0.000000 + 0 gene_id "CSTF1"; transcript_id "NM_001324:uc002xxm.1";
+chr20 hg19_knownGene exon 54974023 54974413 0.000000 + . gene_id "CSTF1"; transcript_id "NM_001324:uc002xxm.1";
+chr20 hg19_knownGene CDS 54978524 54978780 0.000000 + 2 gene_id "CSTF1"; transcript_id "NM_001324:uc002xxm.1";
+chr20 hg19_knownGene exon 54978524 54979582 0.000000 + . gene_id "CSTF1"; transcript_id "NM_001324:uc002xxm.1";
+chr20 hg19_knownGene exon 54967707 54967871 0.000000 + . gene_id "CSTF1"; transcript_id "NM_001033522:uc002xxn.1";
+chr20 hg19_knownGene CDS 54970609 54970777 0.000000 + 0 gene_id "CSTF1"; transcript_id "NM_001033522:uc002xxn.1";
+chr20 hg19_knownGene exon 54970577 54970777 0.000000 + . gene_id "CSTF1"; transcript_id "NM_001033522:uc002xxn.1";
+chr20 hg19_knownGene CDS 54972263 54972540 0.000000 + 2 gene_id "CSTF1"; transcript_id "NM_001033522:uc002xxn.1";
+chr20 hg19_knownGene exon 54972263 54972540 0.000000 + . gene_id "CSTF1"; transcript_id "NM_001033522:uc002xxn.1";
+chr20 hg19_knownGene CDS 54972700 54972897 0.000000 + 0 gene_id "CSTF1"; transcript_id "NM_001033522:uc002xxn.1";
+chr20 hg19_knownGene exon 54972700 54972897 0.000000 + . gene_id "CSTF1"; transcript_id "NM_001033522:uc002xxn.1";
+chr20 hg19_knownGene CDS 54974023 54974413 0.000000 + 0 gene_id "CSTF1"; transcript_id "NM_001033522:uc002xxn.1";
+chr20 hg19_knownGene exon 54974023 54974413 0.000000 + . gene_id "CSTF1"; transcript_id "NM_001033522:uc002xxn.1";
+chr20 hg19_knownGene CDS 54978524 54978780 0.000000 + 2 gene_id "CSTF1"; transcript_id "NM_001033522:uc002xxn.1";
+chr20 hg19_knownGene exon 54978524 54979582 0.000000 + . gene_id "CSTF1"; transcript_id "NM_001033522:uc002xxn.1";
+chr20 hg19_knownGene CDS 54987515 54987550 0.000000 + 0 gene_id "CASS4"; transcript_id "BC027951:uc002xxq.4";
+chr20 hg19_knownGene exon 54987314 54987550 0.000000 + . gene_id "CASS4"; transcript_id "BC027951:uc002xxq.4";
+chr20 hg19_knownGene CDS 55012220 55012642 0.000000 + 0 gene_id "CASS4"; transcript_id "BC027951:uc002xxq.4";
+chr20 hg19_knownGene exon 55012220 55012642 0.000000 + . gene_id "CASS4"; transcript_id "BC027951:uc002xxq.4";
+chr20 hg19_knownGene CDS 55020956 55021057 0.000000 + 0 gene_id "CASS4"; transcript_id "BC027951:uc002xxq.4";
+chr20 hg19_knownGene exon 55020956 55021057 0.000000 + . gene_id "CASS4"; transcript_id "BC027951:uc002xxq.4";
+chr20 hg19_knownGene CDS 55025655 55025735 0.000000 + 0 gene_id "CASS4"; transcript_id "BC027951:uc002xxq.4";
+chr20 hg19_knownGene exon 55025655 55025735 0.000000 + . gene_id "CASS4"; transcript_id "BC027951:uc002xxq.4";
+chr20 hg19_knownGene CDS 55026875 55028248 0.000000 + 0 gene_id "CASS4"; transcript_id "BC027951:uc002xxq.4";
+chr20 hg19_knownGene exon 55026875 55028932 0.000000 + . gene_id "CASS4"; transcript_id "BC027951:uc002xxq.4";
+chr20 hg19_knownGene exon 54987168 54987270 0.000000 + . gene_id "CASS4"; transcript_id "NM_001164116:uc002xxp.2";
+chr20 hg19_knownGene CDS 54987515 54987550 0.000000 + 0 gene_id "CASS4"; transcript_id "NM_001164116:uc002xxp.2";
+chr20 hg19_knownGene exon 54987393 54987550 0.000000 + . gene_id "CASS4"; transcript_id "NM_001164116:uc002xxp.2";
+chr20 hg19_knownGene CDS 55012220 55012642 0.000000 + 0 gene_id "CASS4"; transcript_id "NM_001164116:uc002xxp.2";
+chr20 hg19_knownGene exon 55012220 55012642 0.000000 + . gene_id "CASS4"; transcript_id "NM_001164116:uc002xxp.2";
+chr20 hg19_knownGene CDS 55020956 55021057 0.000000 + 0 gene_id "CASS4"; transcript_id "NM_001164116:uc002xxp.2";
+chr20 hg19_knownGene exon 55020956 55021057 0.000000 + . gene_id "CASS4"; transcript_id "NM_001164116:uc002xxp.2";
+chr20 hg19_knownGene CDS 55025655 55025735 0.000000 + 0 gene_id "CASS4"; transcript_id "NM_001164116:uc002xxp.2";
+chr20 hg19_knownGene exon 55025655 55025735 0.000000 + . gene_id "CASS4"; transcript_id "NM_001164116:uc002xxp.2";
+chr20 hg19_knownGene CDS 55026875 55028185 0.000000 + 0 gene_id "CASS4"; transcript_id "NM_001164116:uc002xxp.2";
+chr20 hg19_knownGene exon 55026875 55028185 0.000000 + . gene_id "CASS4"; transcript_id "NM_001164116:uc002xxp.2";
+chr20 hg19_knownGene CDS 55033396 55033800 0.000000 + 0 gene_id "CASS4"; transcript_id "NM_001164116:uc002xxp.2";
+chr20 hg19_knownGene exon 55033396 55034396 0.000000 + . gene_id "CASS4"; transcript_id "NM_001164116:uc002xxp.2";
+chr20 hg19_knownGene CDS 54987515 54987550 0.000000 + 0 gene_id "CASS4"; transcript_id "NM_001164114:uc010zze.1";
+chr20 hg19_knownGene exon 54987314 54987550 0.000000 + . gene_id "CASS4"; transcript_id "NM_001164114:uc010zze.1";
+chr20 hg19_knownGene CDS 55012220 55012480 0.000000 + 0 gene_id "CASS4"; transcript_id "NM_001164114:uc010zze.1";
+chr20 hg19_knownGene exon 55012220 55012480 0.000000 + . gene_id "CASS4"; transcript_id "NM_001164114:uc010zze.1";
+chr20 hg19_knownGene CDS 55020956 55021057 0.000000 + 0 gene_id "CASS4"; transcript_id "NM_001164114:uc010zze.1";
+chr20 hg19_knownGene exon 55020956 55021057 0.000000 + . gene_id "CASS4"; transcript_id "NM_001164114:uc010zze.1";
+chr20 hg19_knownGene CDS 55025655 55025735 0.000000 + 0 gene_id "CASS4"; transcript_id "NM_001164114:uc010zze.1";
+chr20 hg19_knownGene exon 55025655 55025735 0.000000 + . gene_id "CASS4"; transcript_id "NM_001164114:uc010zze.1";
+chr20 hg19_knownGene CDS 55026875 55028185 0.000000 + 0 gene_id "CASS4"; transcript_id "NM_001164114:uc010zze.1";
+chr20 hg19_knownGene exon 55026875 55028185 0.000000 + . gene_id "CASS4"; transcript_id "NM_001164114:uc010zze.1";
+chr20 hg19_knownGene CDS 55033396 55033800 0.000000 + 0 gene_id "CASS4"; transcript_id "NM_001164114:uc010zze.1";
+chr20 hg19_knownGene exon 55033396 55034396 0.000000 + . gene_id "CASS4"; transcript_id "NM_001164114:uc010zze.1";
+chr20 hg19_knownGene CDS 54987515 54987550 0.000000 + 0 gene_id "CASS4"; transcript_id "NM_020356:uc002xxr.2";
+chr20 hg19_knownGene exon 54987314 54987550 0.000000 + . gene_id "CASS4"; transcript_id "NM_020356:uc002xxr.2";
+chr20 hg19_knownGene CDS 55012220 55012642 0.000000 + 0 gene_id "CASS4"; transcript_id "NM_020356:uc002xxr.2";
+chr20 hg19_knownGene exon 55012220 55012642 0.000000 + . gene_id "CASS4"; transcript_id "NM_020356:uc002xxr.2";
+chr20 hg19_knownGene CDS 55020956 55021057 0.000000 + 0 gene_id "CASS4"; transcript_id "NM_020356:uc002xxr.2";
+chr20 hg19_knownGene exon 55020956 55021057 0.000000 + . gene_id "CASS4"; transcript_id "NM_020356:uc002xxr.2";
+chr20 hg19_knownGene CDS 55025655 55025735 0.000000 + 0 gene_id "CASS4"; transcript_id "NM_020356:uc002xxr.2";
+chr20 hg19_knownGene exon 55025655 55025735 0.000000 + . gene_id "CASS4"; transcript_id "NM_020356:uc002xxr.2";
+chr20 hg19_knownGene CDS 55026875 55028185 0.000000 + 0 gene_id "CASS4"; transcript_id "NM_020356:uc002xxr.2";
+chr20 hg19_knownGene exon 55026875 55028185 0.000000 + . gene_id "CASS4"; transcript_id "NM_020356:uc002xxr.2";
+chr20 hg19_knownGene CDS 55033396 55033800 0.000000 + 0 gene_id "CASS4"; transcript_id "NM_020356:uc002xxr.2";
+chr20 hg19_knownGene exon 55033396 55034396 0.000000 + . gene_id "CASS4"; transcript_id "NM_020356:uc002xxr.2";
+chr20 hg19_knownGene CDS 54987515 54987550 0.000000 + 0 gene_id "CASS4"; transcript_id "NM_001164115:uc010gio.2";
+chr20 hg19_knownGene exon 54987314 54987550 0.000000 + . gene_id "CASS4"; transcript_id "NM_001164115:uc010gio.2";
+chr20 hg19_knownGene CDS 55012220 55012642 0.000000 + 0 gene_id "CASS4"; transcript_id "NM_001164115:uc010gio.2";
+chr20 hg19_knownGene exon 55012220 55012642 0.000000 + . gene_id "CASS4"; transcript_id "NM_001164115:uc010gio.2";
+chr20 hg19_knownGene CDS 55020956 55021057 0.000000 + 0 gene_id "CASS4"; transcript_id "NM_001164115:uc010gio.2";
+chr20 hg19_knownGene exon 55020956 55021057 0.000000 + . gene_id "CASS4"; transcript_id "NM_001164115:uc010gio.2";
+chr20 hg19_knownGene CDS 55025655 55025735 0.000000 + 0 gene_id "CASS4"; transcript_id "NM_001164115:uc010gio.2";
+chr20 hg19_knownGene exon 55025655 55025735 0.000000 + . gene_id "CASS4"; transcript_id "NM_001164115:uc010gio.2";
+chr20 hg19_knownGene CDS 55033396 55033800 0.000000 + 0 gene_id "CASS4"; transcript_id "NM_001164115:uc010gio.2";
+chr20 hg19_knownGene exon 55033396 55034396 0.000000 + . gene_id "CASS4"; transcript_id "NM_001164115:uc010gio.2";
+chr20 hg19_knownGene exon 55043647 55043822 0.000000 + . gene_id "C20orf43"; transcript_id "BC002769:uc002xxs.3";
+chr20 hg19_knownGene exon 55045656 55046005 0.000000 + . gene_id "C20orf43"; transcript_id "BC002769:uc002xxs.3";
+chr20 hg19_knownGene CDS 55043754 55043822 0.000000 + 0 gene_id "C20orf43"; transcript_id "NM_016407:uc002xxt.2";
+chr20 hg19_knownGene exon 55043647 55043822 0.000000 + . gene_id "C20orf43"; transcript_id "NM_016407:uc002xxt.2";
+chr20 hg19_knownGene CDS 55048357 55048451 0.000000 + 0 gene_id "C20orf43"; transcript_id "NM_016407:uc002xxt.2";
+chr20 hg19_knownGene exon 55048357 55048451 0.000000 + . gene_id "C20orf43"; transcript_id "NM_016407:uc002xxt.2";
+chr20 hg19_knownGene CDS 55049734 55049827 0.000000 + 1 gene_id "C20orf43"; transcript_id "NM_016407:uc002xxt.2";
+chr20 hg19_knownGene exon 55049734 55049827 0.000000 + . gene_id "C20orf43"; transcript_id "NM_016407:uc002xxt.2";
+chr20 hg19_knownGene CDS 55052041 55052180 0.000000 + 0 gene_id "C20orf43"; transcript_id "NM_016407:uc002xxt.2";
+chr20 hg19_knownGene exon 55052041 55052180 0.000000 + . gene_id "C20orf43"; transcript_id "NM_016407:uc002xxt.2";
+chr20 hg19_knownGene CDS 55059167 55059245 0.000000 + 1 gene_id "C20orf43"; transcript_id "NM_016407:uc002xxt.2";
+chr20 hg19_knownGene exon 55059167 55059245 0.000000 + . gene_id "C20orf43"; transcript_id "NM_016407:uc002xxt.2";
+chr20 hg19_knownGene CDS 55088371 55088484 0.000000 + 0 gene_id "C20orf43"; transcript_id "NM_016407:uc002xxt.2";
+chr20 hg19_knownGene exon 55088371 55088484 0.000000 + . gene_id "C20orf43"; transcript_id "NM_016407:uc002xxt.2";
+chr20 hg19_knownGene CDS 55091991 55092045 0.000000 + 0 gene_id "C20orf43"; transcript_id "NM_016407:uc002xxt.2";
+chr20 hg19_knownGene exon 55091991 55092045 0.000000 + . gene_id "C20orf43"; transcript_id "NM_016407:uc002xxt.2";
+chr20 hg19_knownGene CDS 55092162 55092257 0.000000 + 2 gene_id "C20orf43"; transcript_id "NM_016407:uc002xxt.2";
+chr20 hg19_knownGene exon 55092162 55092257 0.000000 + . gene_id "C20orf43"; transcript_id "NM_016407:uc002xxt.2";
+chr20 hg19_knownGene CDS 55093143 55093318 0.000000 + 2 gene_id "C20orf43"; transcript_id "NM_016407:uc002xxt.2";
+chr20 hg19_knownGene exon 55093143 55093942 0.000000 + . gene_id "C20orf43"; transcript_id "NM_016407:uc002xxt.2";
+chr20 hg19_knownGene CDS 55043754 55043822 0.000000 + 0 gene_id "C20orf43"; transcript_id "AK302029:uc010zzf.1";
+chr20 hg19_knownGene exon 55043647 55043822 0.000000 + . gene_id "C20orf43"; transcript_id "AK302029:uc010zzf.1";
+chr20 hg19_knownGene CDS 55047382 55047471 0.000000 + 0 gene_id "C20orf43"; transcript_id "AK302029:uc010zzf.1";
+chr20 hg19_knownGene exon 55047382 55047471 0.000000 + . gene_id "C20orf43"; transcript_id "AK302029:uc010zzf.1";
+chr20 hg19_knownGene CDS 55048357 55048451 0.000000 + 0 gene_id "C20orf43"; transcript_id "AK302029:uc010zzf.1";
+chr20 hg19_knownGene exon 55048357 55048451 0.000000 + . gene_id "C20orf43"; transcript_id "AK302029:uc010zzf.1";
+chr20 hg19_knownGene CDS 55049734 55049827 0.000000 + 1 gene_id "C20orf43"; transcript_id "AK302029:uc010zzf.1";
+chr20 hg19_knownGene exon 55049734 55049827 0.000000 + . gene_id "C20orf43"; transcript_id "AK302029:uc010zzf.1";
+chr20 hg19_knownGene CDS 55052041 55052180 0.000000 + 0 gene_id "C20orf43"; transcript_id "AK302029:uc010zzf.1";
+chr20 hg19_knownGene exon 55052041 55052180 0.000000 + . gene_id "C20orf43"; transcript_id "AK302029:uc010zzf.1";
+chr20 hg19_knownGene CDS 55059167 55059245 0.000000 + 1 gene_id "C20orf43"; transcript_id "AK302029:uc010zzf.1";
+chr20 hg19_knownGene exon 55059167 55059245 0.000000 + . gene_id "C20orf43"; transcript_id "AK302029:uc010zzf.1";
+chr20 hg19_knownGene CDS 55088371 55088484 0.000000 + 0 gene_id "C20orf43"; transcript_id "AK302029:uc010zzf.1";
+chr20 hg19_knownGene exon 55088371 55088484 0.000000 + . gene_id "C20orf43"; transcript_id "AK302029:uc010zzf.1";
+chr20 hg19_knownGene CDS 55091991 55092045 0.000000 + 0 gene_id "C20orf43"; transcript_id "AK302029:uc010zzf.1";
+chr20 hg19_knownGene exon 55091991 55092045 0.000000 + . gene_id "C20orf43"; transcript_id "AK302029:uc010zzf.1";
+chr20 hg19_knownGene CDS 55092162 55092257 0.000000 + 2 gene_id "C20orf43"; transcript_id "AK302029:uc010zzf.1";
+chr20 hg19_knownGene exon 55092162 55092257 0.000000 + . gene_id "C20orf43"; transcript_id "AK302029:uc010zzf.1";
+chr20 hg19_knownGene CDS 55093143 55093318 0.000000 + 2 gene_id "C20orf43"; transcript_id "AK302029:uc010zzf.1";
+chr20 hg19_knownGene exon 55093143 55093942 0.000000 + . gene_id "C20orf43"; transcript_id "AK302029:uc010zzf.1";
+chr20 hg19_knownGene CDS 55043754 55043822 0.000000 + 0 gene_id "C20orf43"; transcript_id "AK225135:uc002xxu.2";
+chr20 hg19_knownGene exon 55043647 55043822 0.000000 + . gene_id "C20orf43"; transcript_id "AK225135:uc002xxu.2";
+chr20 hg19_knownGene CDS 55048357 55048451 0.000000 + 0 gene_id "C20orf43"; transcript_id "AK225135:uc002xxu.2";
+chr20 hg19_knownGene exon 55048357 55048451 0.000000 + . gene_id "C20orf43"; transcript_id "AK225135:uc002xxu.2";
+chr20 hg19_knownGene CDS 55049734 55049827 0.000000 + 1 gene_id "C20orf43"; transcript_id "AK225135:uc002xxu.2";
+chr20 hg19_knownGene exon 55049734 55049827 0.000000 + . gene_id "C20orf43"; transcript_id "AK225135:uc002xxu.2";
+chr20 hg19_knownGene CDS 55052041 55052180 0.000000 + 0 gene_id "C20orf43"; transcript_id "AK225135:uc002xxu.2";
+chr20 hg19_knownGene exon 55052041 55052180 0.000000 + . gene_id "C20orf43"; transcript_id "AK225135:uc002xxu.2";
+chr20 hg19_knownGene CDS 55059167 55059245 0.000000 + 1 gene_id "C20orf43"; transcript_id "AK225135:uc002xxu.2";
+chr20 hg19_knownGene exon 55059167 55059245 0.000000 + . gene_id "C20orf43"; transcript_id "AK225135:uc002xxu.2";
+chr20 hg19_knownGene CDS 55088371 55088484 0.000000 + 0 gene_id "C20orf43"; transcript_id "AK225135:uc002xxu.2";
+chr20 hg19_knownGene exon 55088371 55088484 0.000000 + . gene_id "C20orf43"; transcript_id "AK225135:uc002xxu.2";
+chr20 hg19_knownGene CDS 55091991 55092045 0.000000 + 0 gene_id "C20orf43"; transcript_id "AK225135:uc002xxu.2";
+chr20 hg19_knownGene exon 55091991 55092045 0.000000 + . gene_id "C20orf43"; transcript_id "AK225135:uc002xxu.2";
+chr20 hg19_knownGene CDS 55092165 55092257 0.000000 + 2 gene_id "C20orf43"; transcript_id "AK225135:uc002xxu.2";
+chr20 hg19_knownGene exon 55092165 55092257 0.000000 + . gene_id "C20orf43"; transcript_id "AK225135:uc002xxu.2";
+chr20 hg19_knownGene CDS 55093143 55093318 0.000000 + 2 gene_id "C20orf43"; transcript_id "AK225135:uc002xxu.2";
+chr20 hg19_knownGene exon 55093143 55093942 0.000000 + . gene_id "C20orf43"; transcript_id "AK225135:uc002xxu.2";
+chr20 hg19_knownGene CDS 55066616 55066839 0.000000 - 2 gene_id "GCNT7"; transcript_id "NM_080615:uc010zzg.1";
+chr20 hg19_knownGene exon 55066548 55066839 0.000000 - . gene_id "GCNT7"; transcript_id "NM_080615:uc010zzg.1";
+chr20 hg19_knownGene CDS 55070258 55070353 0.000000 - 2 gene_id "GCNT7"; transcript_id "NM_080615:uc010zzg.1";
+chr20 hg19_knownGene exon 55070258 55070353 0.000000 - . gene_id "GCNT7"; transcript_id "NM_080615:uc010zzg.1";
+chr20 hg19_knownGene CDS 55071695 55072469 0.000000 - 0 gene_id "GCNT7"; transcript_id "NM_080615:uc010zzg.1";
+chr20 hg19_knownGene exon 55071695 55072469 0.000000 - . gene_id "GCNT7"; transcript_id "NM_080615:uc010zzg.1";
+chr20 hg19_knownGene CDS 55072473 55072664 0.000000 - 0 gene_id "GCNT7"; transcript_id "NM_080615:uc010zzg.1";
+chr20 hg19_knownGene exon 55072473 55072724 0.000000 - . gene_id "GCNT7"; transcript_id "NM_080615:uc010zzg.1";
+chr20 hg19_knownGene exon 55079111 55079350 0.000000 - . gene_id "GCNT7"; transcript_id "NM_080615:uc010zzg.1";
+chr20 hg19_knownGene exon 55088852 55088893 0.000000 - . gene_id "GCNT7"; transcript_id "NM_080615:uc010zzg.1";
+chr20 hg19_knownGene exon 55089141 55089361 0.000000 - . gene_id "GCNT7"; transcript_id "NM_080615:uc010zzg.1";
+chr20 hg19_knownGene exon 55100839 55100981 0.000000 - . gene_id "GCNT7"; transcript_id "NM_080615:uc010zzg.1";
+chr20 hg19_knownGene CDS 55099865 55100113 0.000000 + 0 gene_id "FAM209A"; transcript_id "NM_001012971:uc002xxx.3";
+chr20 hg19_knownGene exon 55099785 55100113 0.000000 + . gene_id "FAM209A"; transcript_id "NM_001012971:uc002xxx.3";
+chr20 hg19_knownGene CDS 55100860 55101123 0.000000 + 0 gene_id "FAM209A"; transcript_id "NM_001012971:uc002xxx.3";
+chr20 hg19_knownGene exon 55100860 55101208 0.000000 + . gene_id "FAM209A"; transcript_id "NM_001012971:uc002xxx.3";
+chr20 hg19_knownGene CDS 55099865 55100113 0.000000 + 0 gene_id "FAM209B"; transcript_id "BC105792:uc010zzh.2";
+chr20 hg19_knownGene exon 55099785 55100113 0.000000 + . gene_id "FAM209B"; transcript_id "BC105792:uc010zzh.2";
+chr20 hg19_knownGene CDS 55111228 55111491 0.000000 + 0 gene_id "FAM209B"; transcript_id "BC105792:uc010zzh.2";
+chr20 hg19_knownGene exon 55111228 55111576 0.000000 + . gene_id "FAM209B"; transcript_id "BC105792:uc010zzh.2";
+chr20 hg19_knownGene CDS 55108398 55108646 0.000000 + 0 gene_id "FAM209B"; transcript_id "NM_001013646:uc002xxz.3";
+chr20 hg19_knownGene exon 55108302 55108646 0.000000 + . gene_id "FAM209B"; transcript_id "NM_001013646:uc002xxz.3";
+chr20 hg19_knownGene CDS 55111228 55111491 0.000000 + 0 gene_id "FAM209B"; transcript_id "NM_001013646:uc002xxz.3";
+chr20 hg19_knownGene exon 55111228 55111576 0.000000 + . gene_id "FAM209B"; transcript_id "NM_001013646:uc002xxz.3";
+chr20 hg19_knownGene CDS 55204601 55204648 0.000000 + 0 gene_id "TFAP2C"; transcript_id "NM_003222:uc002xya.3";
+chr20 hg19_knownGene exon 55204358 55204648 0.000000 + . gene_id "TFAP2C"; transcript_id "NM_003222:uc002xya.3";
+chr20 hg19_knownGene CDS 55206261 55206746 0.000000 + 0 gene_id "TFAP2C"; transcript_id "NM_003222:uc002xya.3";
+chr20 hg19_knownGene exon 55206261 55206746 0.000000 + . gene_id "TFAP2C"; transcript_id "NM_003222:uc002xya.3";
+chr20 hg19_knownGene CDS 55206861 55206912 0.000000 + 0 gene_id "TFAP2C"; transcript_id "NM_003222:uc002xya.3";
+chr20 hg19_knownGene exon 55206861 55206912 0.000000 + . gene_id "TFAP2C"; transcript_id "NM_003222:uc002xya.3";
+chr20 hg19_knownGene CDS 55208409 55208625 0.000000 + 2 gene_id "TFAP2C"; transcript_id "NM_003222:uc002xya.3";
+chr20 hg19_knownGene exon 55208409 55208625 0.000000 + . gene_id "TFAP2C"; transcript_id "NM_003222:uc002xya.3";
+chr20 hg19_knownGene CDS 55209206 55209324 0.000000 + 1 gene_id "TFAP2C"; transcript_id "NM_003222:uc002xya.3";
+chr20 hg19_knownGene exon 55209206 55209324 0.000000 + . gene_id "TFAP2C"; transcript_id "NM_003222:uc002xya.3";
+chr20 hg19_knownGene CDS 55211666 55211810 0.000000 + 2 gene_id "TFAP2C"; transcript_id "NM_003222:uc002xya.3";
+chr20 hg19_knownGene exon 55211666 55211810 0.000000 + . gene_id "TFAP2C"; transcript_id "NM_003222:uc002xya.3";
+chr20 hg19_knownGene CDS 55212784 55213066 0.000000 + 1 gene_id "TFAP2C"; transcript_id "NM_003222:uc002xya.3";
+chr20 hg19_knownGene exon 55212784 55214338 0.000000 + . gene_id "TFAP2C"; transcript_id "NM_003222:uc002xya.3";
+chr20 hg19_knownGene exon 55205938 55206044 0.000000 + . gene_id "TFAP2C"; transcript_id "AK301572:uc010zzi.2";
+chr20 hg19_knownGene CDS 55206720 55206746 0.000000 + 0 gene_id "TFAP2C"; transcript_id "AK301572:uc010zzi.2";
+chr20 hg19_knownGene exon 55206261 55206746 0.000000 + . gene_id "TFAP2C"; transcript_id "AK301572:uc010zzi.2";
+chr20 hg19_knownGene CDS 55206861 55206912 0.000000 + 0 gene_id "TFAP2C"; transcript_id "AK301572:uc010zzi.2";
+chr20 hg19_knownGene exon 55206861 55206912 0.000000 + . gene_id "TFAP2C"; transcript_id "AK301572:uc010zzi.2";
+chr20 hg19_knownGene CDS 55208409 55208625 0.000000 + 2 gene_id "TFAP2C"; transcript_id "AK301572:uc010zzi.2";
+chr20 hg19_knownGene exon 55208409 55208625 0.000000 + . gene_id "TFAP2C"; transcript_id "AK301572:uc010zzi.2";
+chr20 hg19_knownGene CDS 55209206 55209324 0.000000 + 1 gene_id "TFAP2C"; transcript_id "AK301572:uc010zzi.2";
+chr20 hg19_knownGene exon 55209206 55209324 0.000000 + . gene_id "TFAP2C"; transcript_id "AK301572:uc010zzi.2";
+chr20 hg19_knownGene CDS 55211666 55211810 0.000000 + 2 gene_id "TFAP2C"; transcript_id "AK301572:uc010zzi.2";
+chr20 hg19_knownGene exon 55211666 55211810 0.000000 + . gene_id "TFAP2C"; transcript_id "AK301572:uc010zzi.2";
+chr20 hg19_knownGene CDS 55212784 55213066 0.000000 + 1 gene_id "TFAP2C"; transcript_id "AK301572:uc010zzi.2";
+chr20 hg19_knownGene exon 55212784 55214338 0.000000 + . gene_id "TFAP2C"; transcript_id "AK301572:uc010zzi.2";
+chr20 hg19_knownGene CDS 55746018 55746164 0.000000 - 0 gene_id "BMP7"; transcript_id "NM_001719:uc010gip.1";
+chr20 hg19_knownGene exon 55743809 55746164 0.000000 - . gene_id "BMP7"; transcript_id "NM_001719:uc010gip.1";
+chr20 hg19_knownGene CDS 55748256 55748366 0.000000 - 0 gene_id "BMP7"; transcript_id "NM_001719:uc010gip.1";
+chr20 hg19_knownGene exon 55748256 55748366 0.000000 - . gene_id "BMP7"; transcript_id "NM_001719:uc010gip.1";
+chr20 hg19_knownGene CDS 55749987 55750063 0.000000 - 2 gene_id "BMP7"; transcript_id "NM_001719:uc010gip.1";
+chr20 hg19_knownGene exon 55749987 55750063 0.000000 - . gene_id "BMP7"; transcript_id "NM_001719:uc010gip.1";
+chr20 hg19_knownGene CDS 55758778 55758975 0.000000 - 2 gene_id "BMP7"; transcript_id "NM_001719:uc010gip.1";
+chr20 hg19_knownGene exon 55758778 55758975 0.000000 - . gene_id "BMP7"; transcript_id "NM_001719:uc010gip.1";
+chr20 hg19_knownGene CDS 55777531 55777679 0.000000 - 1 gene_id "BMP7"; transcript_id "NM_001719:uc010gip.1";
+chr20 hg19_knownGene exon 55777531 55777679 0.000000 - . gene_id "BMP7"; transcript_id "NM_001719:uc010gip.1";
+chr20 hg19_knownGene CDS 55803285 55803477 0.000000 - 2 gene_id "BMP7"; transcript_id "NM_001719:uc010gip.1";
+chr20 hg19_knownGene exon 55803285 55803477 0.000000 - . gene_id "BMP7"; transcript_id "NM_001719:uc010gip.1";
+chr20 hg19_knownGene CDS 55840761 55841178 0.000000 - 0 gene_id "BMP7"; transcript_id "NM_001719:uc010gip.1";
+chr20 hg19_knownGene exon 55840761 55841707 0.000000 - . gene_id "BMP7"; transcript_id "NM_001719:uc010gip.1";
+chr20 hg19_knownGene CDS 55748166 55748366 0.000000 - 0 gene_id "BMP7"; transcript_id "BC004248:uc002xyc.3";
+chr20 hg19_knownGene exon 55748052 55748366 0.000000 - . gene_id "BMP7"; transcript_id "BC004248:uc002xyc.3";
+chr20 hg19_knownGene CDS 55749987 55750063 0.000000 - 2 gene_id "BMP7"; transcript_id "BC004248:uc002xyc.3";
+chr20 hg19_knownGene exon 55749987 55750063 0.000000 - . gene_id "BMP7"; transcript_id "BC004248:uc002xyc.3";
+chr20 hg19_knownGene CDS 55758778 55758975 0.000000 - 2 gene_id "BMP7"; transcript_id "BC004248:uc002xyc.3";
+chr20 hg19_knownGene exon 55758778 55758975 0.000000 - . gene_id "BMP7"; transcript_id "BC004248:uc002xyc.3";
+chr20 hg19_knownGene CDS 55777531 55777679 0.000000 - 1 gene_id "BMP7"; transcript_id "BC004248:uc002xyc.3";
+chr20 hg19_knownGene exon 55777531 55777679 0.000000 - . gene_id "BMP7"; transcript_id "BC004248:uc002xyc.3";
+chr20 hg19_knownGene CDS 55803285 55803477 0.000000 - 2 gene_id "BMP7"; transcript_id "BC004248:uc002xyc.3";
+chr20 hg19_knownGene exon 55803285 55803477 0.000000 - . gene_id "BMP7"; transcript_id "BC004248:uc002xyc.3";
+chr20 hg19_knownGene CDS 55840761 55841178 0.000000 - 0 gene_id "BMP7"; transcript_id "BC004248:uc002xyc.3";
+chr20 hg19_knownGene exon 55840761 55841707 0.000000 - . gene_id "BMP7"; transcript_id "BC004248:uc002xyc.3";
+chr20 hg19_knownGene exon 55841853 55842262 0.000000 + . gene_id "BC037891"; transcript_id "BC037891:uc010gir.2";
+chr20 hg19_knownGene exon 55857299 55858053 0.000000 + . gene_id "BC037891"; transcript_id "BC037891:uc010gir.2";
+chr20 hg19_knownGene exon 55896558 55896647 0.000000 - . gene_id "MIR4325"; transcript_id "NR_036219:uc021wfb.1";
+chr20 hg19_knownGene CDS 55904924 55905054 0.000000 + 0 gene_id "SPO11"; transcript_id "NM_012444:uc002xye.3";
+chr20 hg19_knownGene exon 55904831 55905054 0.000000 + . gene_id "SPO11"; transcript_id "NM_012444:uc002xye.3";
+chr20 hg19_knownGene CDS 55906889 55907002 0.000000 + 1 gene_id "SPO11"; transcript_id "NM_012444:uc002xye.3";
+chr20 hg19_knownGene exon 55906889 55907002 0.000000 + . gene_id "SPO11"; transcript_id "NM_012444:uc002xye.3";
+chr20 hg19_knownGene CDS 55908244 55908332 0.000000 + 1 gene_id "SPO11"; transcript_id "NM_012444:uc002xye.3";
+chr20 hg19_knownGene exon 55908244 55908332 0.000000 + . gene_id "SPO11"; transcript_id "NM_012444:uc002xye.3";
+chr20 hg19_knownGene CDS 55908743 55908809 0.000000 + 2 gene_id "SPO11"; transcript_id "NM_012444:uc002xye.3";
+chr20 hg19_knownGene exon 55908743 55908809 0.000000 + . gene_id "SPO11"; transcript_id "NM_012444:uc002xye.3";
+chr20 hg19_knownGene CDS 55909043 55909151 0.000000 + 1 gene_id "SPO11"; transcript_id "NM_012444:uc002xye.3";
+chr20 hg19_knownGene exon 55909043 55909151 0.000000 + . gene_id "SPO11"; transcript_id "NM_012444:uc002xye.3";
+chr20 hg19_knownGene CDS 55909806 55909892 0.000000 + 0 gene_id "SPO11"; transcript_id "NM_012444:uc002xye.3";
+chr20 hg19_knownGene exon 55909806 55909892 0.000000 + . gene_id "SPO11"; transcript_id "NM_012444:uc002xye.3";
+chr20 hg19_knownGene CDS 55910475 55910511 0.000000 + 0 gene_id "SPO11"; transcript_id "NM_012444:uc002xye.3";
+chr20 hg19_knownGene exon 55910475 55910511 0.000000 + . gene_id "SPO11"; transcript_id "NM_012444:uc002xye.3";
+chr20 hg19_knownGene CDS 55910854 55910963 0.000000 + 2 gene_id "SPO11"; transcript_id "NM_012444:uc002xye.3";
+chr20 hg19_knownGene exon 55910854 55910963 0.000000 + . gene_id "SPO11"; transcript_id "NM_012444:uc002xye.3";
+chr20 hg19_knownGene CDS 55913332 55913431 0.000000 + 0 gene_id "SPO11"; transcript_id "NM_012444:uc002xye.3";
+chr20 hg19_knownGene exon 55913332 55913431 0.000000 + . gene_id "SPO11"; transcript_id "NM_012444:uc002xye.3";
+chr20 hg19_knownGene CDS 55914045 55914082 0.000000 + 2 gene_id "SPO11"; transcript_id "NM_012444:uc002xye.3";
+chr20 hg19_knownGene exon 55914045 55914082 0.000000 + . gene_id "SPO11"; transcript_id "NM_012444:uc002xye.3";
+chr20 hg19_knownGene CDS 55915158 55915234 0.000000 + 0 gene_id "SPO11"; transcript_id "NM_012444:uc002xye.3";
+chr20 hg19_knownGene exon 55915158 55915234 0.000000 + . gene_id "SPO11"; transcript_id "NM_012444:uc002xye.3";
+chr20 hg19_knownGene CDS 55917785 55917896 0.000000 + 1 gene_id "SPO11"; transcript_id "NM_012444:uc002xye.3";
+chr20 hg19_knownGene exon 55917785 55917896 0.000000 + . gene_id "SPO11"; transcript_id "NM_012444:uc002xye.3";
+chr20 hg19_knownGene CDS 55918397 55918513 0.000000 + 0 gene_id "SPO11"; transcript_id "NM_012444:uc002xye.3";
+chr20 hg19_knownGene exon 55918397 55919049 0.000000 + . gene_id "SPO11"; transcript_id "NM_012444:uc002xye.3";
+chr20 hg19_knownGene CDS 55904924 55905054 0.000000 + 0 gene_id "SPO11"; transcript_id "NM_198265:uc002xyf.3";
+chr20 hg19_knownGene exon 55904831 55905054 0.000000 + . gene_id "SPO11"; transcript_id "NM_198265:uc002xyf.3";
+chr20 hg19_knownGene CDS 55908244 55908332 0.000000 + 1 gene_id "SPO11"; transcript_id "NM_198265:uc002xyf.3";
+chr20 hg19_knownGene exon 55908244 55908332 0.000000 + . gene_id "SPO11"; transcript_id "NM_198265:uc002xyf.3";
+chr20 hg19_knownGene CDS 55908743 55908809 0.000000 + 2 gene_id "SPO11"; transcript_id "NM_198265:uc002xyf.3";
+chr20 hg19_knownGene exon 55908743 55908809 0.000000 + . gene_id "SPO11"; transcript_id "NM_198265:uc002xyf.3";
+chr20 hg19_knownGene CDS 55909043 55909151 0.000000 + 1 gene_id "SPO11"; transcript_id "NM_198265:uc002xyf.3";
+chr20 hg19_knownGene exon 55909043 55909151 0.000000 + . gene_id "SPO11"; transcript_id "NM_198265:uc002xyf.3";
+chr20 hg19_knownGene CDS 55909806 55909892 0.000000 + 0 gene_id "SPO11"; transcript_id "NM_198265:uc002xyf.3";
+chr20 hg19_knownGene exon 55909806 55909892 0.000000 + . gene_id "SPO11"; transcript_id "NM_198265:uc002xyf.3";
+chr20 hg19_knownGene CDS 55910475 55910511 0.000000 + 0 gene_id "SPO11"; transcript_id "NM_198265:uc002xyf.3";
+chr20 hg19_knownGene exon 55910475 55910511 0.000000 + . gene_id "SPO11"; transcript_id "NM_198265:uc002xyf.3";
+chr20 hg19_knownGene CDS 55910854 55910963 0.000000 + 2 gene_id "SPO11"; transcript_id "NM_198265:uc002xyf.3";
+chr20 hg19_knownGene exon 55910854 55910963 0.000000 + . gene_id "SPO11"; transcript_id "NM_198265:uc002xyf.3";
+chr20 hg19_knownGene CDS 55913332 55913431 0.000000 + 0 gene_id "SPO11"; transcript_id "NM_198265:uc002xyf.3";
+chr20 hg19_knownGene exon 55913332 55913431 0.000000 + . gene_id "SPO11"; transcript_id "NM_198265:uc002xyf.3";
+chr20 hg19_knownGene CDS 55914045 55914082 0.000000 + 2 gene_id "SPO11"; transcript_id "NM_198265:uc002xyf.3";
+chr20 hg19_knownGene exon 55914045 55914082 0.000000 + . gene_id "SPO11"; transcript_id "NM_198265:uc002xyf.3";
+chr20 hg19_knownGene CDS 55915158 55915234 0.000000 + 0 gene_id "SPO11"; transcript_id "NM_198265:uc002xyf.3";
+chr20 hg19_knownGene exon 55915158 55915234 0.000000 + . gene_id "SPO11"; transcript_id "NM_198265:uc002xyf.3";
+chr20 hg19_knownGene CDS 55917785 55917896 0.000000 + 1 gene_id "SPO11"; transcript_id "NM_198265:uc002xyf.3";
+chr20 hg19_knownGene exon 55917785 55917896 0.000000 + . gene_id "SPO11"; transcript_id "NM_198265:uc002xyf.3";
+chr20 hg19_knownGene CDS 55918397 55918513 0.000000 + 0 gene_id "SPO11"; transcript_id "NM_198265:uc002xyf.3";
+chr20 hg19_knownGene exon 55918397 55919049 0.000000 + . gene_id "SPO11"; transcript_id "NM_198265:uc002xyf.3";
+chr20 hg19_knownGene CDS 55934024 55934095 0.000000 - 0 gene_id "MTRNR2L3"; transcript_id "NM_001190472:uc021wfd.1";
+chr20 hg19_knownGene exon 55933496 55934878 0.000000 - . gene_id "MTRNR2L3"; transcript_id "NM_001190472:uc021wfd.1";
+chr20 hg19_knownGene exon 55926145 55926478 0.000000 + . gene_id "RAE1"; transcript_id "AK309069:uc010gis.1";
+chr20 hg19_knownGene exon 55929088 55929184 0.000000 + . gene_id "RAE1"; transcript_id "AK309069:uc010gis.1";
+chr20 hg19_knownGene CDS 55929793 55929872 0.000000 + 0 gene_id "RAE1"; transcript_id "AK309069:uc010gis.1";
+chr20 hg19_knownGene exon 55929768 55929872 0.000000 + . gene_id "RAE1"; transcript_id "AK309069:uc010gis.1";
+chr20 hg19_knownGene CDS 55931502 55931526 0.000000 + 1 gene_id "RAE1"; transcript_id "AK309069:uc010gis.1";
+chr20 hg19_knownGene exon 55931502 55931526 0.000000 + . gene_id "RAE1"; transcript_id "AK309069:uc010gis.1";
+chr20 hg19_knownGene CDS 55931553 55931594 0.000000 + 0 gene_id "RAE1"; transcript_id "AK309069:uc010gis.1";
+chr20 hg19_knownGene exon 55931553 55931594 0.000000 + . gene_id "RAE1"; transcript_id "AK309069:uc010gis.1";
+chr20 hg19_knownGene CDS 55940412 55940498 0.000000 + 0 gene_id "RAE1"; transcript_id "AK309069:uc010gis.1";
+chr20 hg19_knownGene exon 55940412 55940498 0.000000 + . gene_id "RAE1"; transcript_id "AK309069:uc010gis.1";
+chr20 hg19_knownGene CDS 55941863 55941949 0.000000 + 0 gene_id "RAE1"; transcript_id "AK309069:uc010gis.1";
+chr20 hg19_knownGene exon 55941863 55941949 0.000000 + . gene_id "RAE1"; transcript_id "AK309069:uc010gis.1";
+chr20 hg19_knownGene CDS 55942064 55942135 0.000000 + 0 gene_id "RAE1"; transcript_id "AK309069:uc010gis.1";
+chr20 hg19_knownGene exon 55942064 55942135 0.000000 + . gene_id "RAE1"; transcript_id "AK309069:uc010gis.1";
+chr20 hg19_knownGene CDS 55943761 55943868 0.000000 + 0 gene_id "RAE1"; transcript_id "AK309069:uc010gis.1";
+chr20 hg19_knownGene exon 55943761 55943868 0.000000 + . gene_id "RAE1"; transcript_id "AK309069:uc010gis.1";
+chr20 hg19_knownGene CDS 55948531 55948637 0.000000 + 0 gene_id "RAE1"; transcript_id "AK309069:uc010gis.1";
+chr20 hg19_knownGene exon 55948531 55948637 0.000000 + . gene_id "RAE1"; transcript_id "AK309069:uc010gis.1";
+chr20 hg19_knownGene CDS 55948719 55948794 0.000000 + 1 gene_id "RAE1"; transcript_id "AK309069:uc010gis.1";
+chr20 hg19_knownGene exon 55948719 55948794 0.000000 + . gene_id "RAE1"; transcript_id "AK309069:uc010gis.1";
+chr20 hg19_knownGene CDS 55949663 55950148 0.000000 + 0 gene_id "RAE1"; transcript_id "AK309069:uc010gis.1";
+chr20 hg19_knownGene exon 55949663 55950408 0.000000 + . gene_id "RAE1"; transcript_id "AK309069:uc010gis.1";
+chr20 hg19_knownGene exon 55926145 55926478 0.000000 + . gene_id "RAE1"; transcript_id "AK309743:uc010git.1";
+chr20 hg19_knownGene CDS 55929095 55929184 0.000000 + 0 gene_id "RAE1"; transcript_id "AK309743:uc010git.1";
+chr20 hg19_knownGene exon 55929088 55929184 0.000000 + . gene_id "RAE1"; transcript_id "AK309743:uc010git.1";
+chr20 hg19_knownGene CDS 55929768 55929872 0.000000 + 0 gene_id "RAE1"; transcript_id "AK309743:uc010git.1";
+chr20 hg19_knownGene exon 55929768 55929872 0.000000 + . gene_id "RAE1"; transcript_id "AK309743:uc010git.1";
+chr20 hg19_knownGene CDS 55931502 55931594 0.000000 + 0 gene_id "RAE1"; transcript_id "AK309743:uc010git.1";
+chr20 hg19_knownGene exon 55931502 55931594 0.000000 + . gene_id "RAE1"; transcript_id "AK309743:uc010git.1";
+chr20 hg19_knownGene CDS 55940412 55940498 0.000000 + 0 gene_id "RAE1"; transcript_id "AK309743:uc010git.1";
+chr20 hg19_knownGene exon 55940412 55940498 0.000000 + . gene_id "RAE1"; transcript_id "AK309743:uc010git.1";
+chr20 hg19_knownGene CDS 55941863 55941949 0.000000 + 0 gene_id "RAE1"; transcript_id "AK309743:uc010git.1";
+chr20 hg19_knownGene exon 55941863 55941949 0.000000 + . gene_id "RAE1"; transcript_id "AK309743:uc010git.1";
+chr20 hg19_knownGene CDS 55942064 55942135 0.000000 + 0 gene_id "RAE1"; transcript_id "AK309743:uc010git.1";
+chr20 hg19_knownGene exon 55942064 55942135 0.000000 + . gene_id "RAE1"; transcript_id "AK309743:uc010git.1";
+chr20 hg19_knownGene CDS 55943761 55943868 0.000000 + 0 gene_id "RAE1"; transcript_id "AK309743:uc010git.1";
+chr20 hg19_knownGene exon 55943761 55943868 0.000000 + . gene_id "RAE1"; transcript_id "AK309743:uc010git.1";
+chr20 hg19_knownGene CDS 55948531 55948637 0.000000 + 0 gene_id "RAE1"; transcript_id "AK309743:uc010git.1";
+chr20 hg19_knownGene exon 55948531 55948637 0.000000 + . gene_id "RAE1"; transcript_id "AK309743:uc010git.1";
+chr20 hg19_knownGene CDS 55948719 55948794 0.000000 + 1 gene_id "RAE1"; transcript_id "AK309743:uc010git.1";
+chr20 hg19_knownGene exon 55948719 55948794 0.000000 + . gene_id "RAE1"; transcript_id "AK309743:uc010git.1";
+chr20 hg19_knownGene CDS 55949663 55950148 0.000000 + 0 gene_id "RAE1"; transcript_id "AK309743:uc010git.1";
+chr20 hg19_knownGene exon 55949663 55950408 0.000000 + . gene_id "RAE1"; transcript_id "AK309743:uc010git.1";
+chr20 hg19_knownGene exon 55926145 55926478 0.000000 + . gene_id "RAE1"; transcript_id "NM_003610:uc002xyg.3";
+chr20 hg19_knownGene CDS 55929095 55929184 0.000000 + 0 gene_id "RAE1"; transcript_id "NM_003610:uc002xyg.3";
+chr20 hg19_knownGene exon 55929088 55929184 0.000000 + . gene_id "RAE1"; transcript_id "NM_003610:uc002xyg.3";
+chr20 hg19_knownGene CDS 55929768 55929872 0.000000 + 0 gene_id "RAE1"; transcript_id "NM_003610:uc002xyg.3";
+chr20 hg19_knownGene exon 55929768 55929872 0.000000 + . gene_id "RAE1"; transcript_id "NM_003610:uc002xyg.3";
+chr20 hg19_knownGene CDS 55931502 55931594 0.000000 + 0 gene_id "RAE1"; transcript_id "NM_003610:uc002xyg.3";
+chr20 hg19_knownGene exon 55931502 55931594 0.000000 + . gene_id "RAE1"; transcript_id "NM_003610:uc002xyg.3";
+chr20 hg19_knownGene CDS 55940412 55940498 0.000000 + 0 gene_id "RAE1"; transcript_id "NM_003610:uc002xyg.3";
+chr20 hg19_knownGene exon 55940412 55940498 0.000000 + . gene_id "RAE1"; transcript_id "NM_003610:uc002xyg.3";
+chr20 hg19_knownGene CDS 55941863 55941949 0.000000 + 0 gene_id "RAE1"; transcript_id "NM_003610:uc002xyg.3";
+chr20 hg19_knownGene exon 55941863 55941949 0.000000 + . gene_id "RAE1"; transcript_id "NM_003610:uc002xyg.3";
+chr20 hg19_knownGene CDS 55942064 55942135 0.000000 + 0 gene_id "RAE1"; transcript_id "NM_003610:uc002xyg.3";
+chr20 hg19_knownGene exon 55942064 55942135 0.000000 + . gene_id "RAE1"; transcript_id "NM_003610:uc002xyg.3";
+chr20 hg19_knownGene CDS 55943761 55943868 0.000000 + 0 gene_id "RAE1"; transcript_id "NM_003610:uc002xyg.3";
+chr20 hg19_knownGene exon 55943761 55943868 0.000000 + . gene_id "RAE1"; transcript_id "NM_003610:uc002xyg.3";
+chr20 hg19_knownGene CDS 55948531 55948637 0.000000 + 0 gene_id "RAE1"; transcript_id "NM_003610:uc002xyg.3";
+chr20 hg19_knownGene exon 55948531 55948637 0.000000 + . gene_id "RAE1"; transcript_id "NM_003610:uc002xyg.3";
+chr20 hg19_knownGene CDS 55948719 55948794 0.000000 + 1 gene_id "RAE1"; transcript_id "NM_003610:uc002xyg.3";
+chr20 hg19_knownGene exon 55948719 55948794 0.000000 + . gene_id "RAE1"; transcript_id "NM_003610:uc002xyg.3";
+chr20 hg19_knownGene CDS 55949663 55949857 0.000000 + 0 gene_id "RAE1"; transcript_id "NM_003610:uc002xyg.3";
+chr20 hg19_knownGene exon 55949663 55949857 0.000000 + . gene_id "RAE1"; transcript_id "NM_003610:uc002xyg.3";
+chr20 hg19_knownGene CDS 55953069 55953152 0.000000 + 0 gene_id "RAE1"; transcript_id "NM_003610:uc002xyg.3";
+chr20 hg19_knownGene exon 55953069 55953519 0.000000 + . gene_id "RAE1"; transcript_id "NM_003610:uc002xyg.3";
+chr20 hg19_knownGene exon 55926618 55926975 0.000000 + . gene_id "RAE1"; transcript_id "NM_001015885:uc002xyi.3";
+chr20 hg19_knownGene CDS 55929095 55929184 0.000000 + 0 gene_id "RAE1"; transcript_id "NM_001015885:uc002xyi.3";
+chr20 hg19_knownGene exon 55929088 55929184 0.000000 + . gene_id "RAE1"; transcript_id "NM_001015885:uc002xyi.3";
+chr20 hg19_knownGene CDS 55929768 55929872 0.000000 + 0 gene_id "RAE1"; transcript_id "NM_001015885:uc002xyi.3";
+chr20 hg19_knownGene exon 55929768 55929872 0.000000 + . gene_id "RAE1"; transcript_id "NM_001015885:uc002xyi.3";
+chr20 hg19_knownGene CDS 55931502 55931594 0.000000 + 0 gene_id "RAE1"; transcript_id "NM_001015885:uc002xyi.3";
+chr20 hg19_knownGene exon 55931502 55931594 0.000000 + . gene_id "RAE1"; transcript_id "NM_001015885:uc002xyi.3";
+chr20 hg19_knownGene CDS 55940412 55940498 0.000000 + 0 gene_id "RAE1"; transcript_id "NM_001015885:uc002xyi.3";
+chr20 hg19_knownGene exon 55940412 55940498 0.000000 + . gene_id "RAE1"; transcript_id "NM_001015885:uc002xyi.3";
+chr20 hg19_knownGene CDS 55941863 55941949 0.000000 + 0 gene_id "RAE1"; transcript_id "NM_001015885:uc002xyi.3";
+chr20 hg19_knownGene exon 55941863 55941949 0.000000 + . gene_id "RAE1"; transcript_id "NM_001015885:uc002xyi.3";
+chr20 hg19_knownGene CDS 55942064 55942135 0.000000 + 0 gene_id "RAE1"; transcript_id "NM_001015885:uc002xyi.3";
+chr20 hg19_knownGene exon 55942064 55942135 0.000000 + . gene_id "RAE1"; transcript_id "NM_001015885:uc002xyi.3";
+chr20 hg19_knownGene CDS 55943761 55943868 0.000000 + 0 gene_id "RAE1"; transcript_id "NM_001015885:uc002xyi.3";
+chr20 hg19_knownGene exon 55943761 55943868 0.000000 + . gene_id "RAE1"; transcript_id "NM_001015885:uc002xyi.3";
+chr20 hg19_knownGene CDS 55948531 55948637 0.000000 + 0 gene_id "RAE1"; transcript_id "NM_001015885:uc002xyi.3";
+chr20 hg19_knownGene exon 55948531 55948637 0.000000 + . gene_id "RAE1"; transcript_id "NM_001015885:uc002xyi.3";
+chr20 hg19_knownGene CDS 55948719 55948794 0.000000 + 1 gene_id "RAE1"; transcript_id "NM_001015885:uc002xyi.3";
+chr20 hg19_knownGene exon 55948719 55948794 0.000000 + . gene_id "RAE1"; transcript_id "NM_001015885:uc002xyi.3";
+chr20 hg19_knownGene CDS 55949663 55949857 0.000000 + 0 gene_id "RAE1"; transcript_id "NM_001015885:uc002xyi.3";
+chr20 hg19_knownGene exon 55949663 55949857 0.000000 + . gene_id "RAE1"; transcript_id "NM_001015885:uc002xyi.3";
+chr20 hg19_knownGene CDS 55953069 55953152 0.000000 + 0 gene_id "RAE1"; transcript_id "NM_001015885:uc002xyi.3";
+chr20 hg19_knownGene exon 55953069 55953519 0.000000 + . gene_id "RAE1"; transcript_id "NM_001015885:uc002xyi.3";
+chr20 hg19_knownGene CDS 55966638 55966874 0.000000 + 0 gene_id "RBM38"; transcript_id "NM_017495:uc010zzj.2";
+chr20 hg19_knownGene exon 55966454 55966874 0.000000 + . gene_id "RBM38"; transcript_id "NM_017495:uc010zzj.2";
+chr20 hg19_knownGene CDS 55967710 55967833 0.000000 + 0 gene_id "RBM38"; transcript_id "NM_017495:uc010zzj.2";
+chr20 hg19_knownGene exon 55967710 55967833 0.000000 + . gene_id "RBM38"; transcript_id "NM_017495:uc010zzj.2";
+chr20 hg19_knownGene CDS 55968335 55968389 0.000000 + 2 gene_id "RBM38"; transcript_id "NM_017495:uc010zzj.2";
+chr20 hg19_knownGene exon 55968335 55968389 0.000000 + . gene_id "RBM38"; transcript_id "NM_017495:uc010zzj.2";
+chr20 hg19_knownGene CDS 55982599 55982899 0.000000 + 1 gene_id "RBM38"; transcript_id "NM_017495:uc010zzj.2";
+chr20 hg19_knownGene exon 55982599 55984386 0.000000 + . gene_id "RBM38"; transcript_id "NM_017495:uc010zzj.2";
+chr20 hg19_knownGene CDS 55966638 55966874 0.000000 + 0 gene_id "RBM38"; transcript_id "NM_183425:uc010zzk.2";
+chr20 hg19_knownGene exon 55966454 55966874 0.000000 + . gene_id "RBM38"; transcript_id "NM_183425:uc010zzk.2";
+chr20 hg19_knownGene CDS 55967710 55967833 0.000000 + 0 gene_id "RBM38"; transcript_id "NM_183425:uc010zzk.2";
+chr20 hg19_knownGene exon 55967710 55967833 0.000000 + . gene_id "RBM38"; transcript_id "NM_183425:uc010zzk.2";
+chr20 hg19_knownGene CDS 55982599 55982600 0.000000 + 2 gene_id "RBM38"; transcript_id "NM_183425:uc010zzk.2";
+chr20 hg19_knownGene exon 55982599 55984386 0.000000 + . gene_id "RBM38"; transcript_id "NM_183425:uc010zzk.2";
+chr20 hg19_knownGene exon 55913213 55913256 0.000000 + . gene_id "MIR5095"; transcript_id "NR_039970:uc021wfc.1";
+chr20 hg19_knownGene exon 55998254 55998278 0.000000 + . gene_id "MIR5095"; transcript_id "NR_039970:uc021wfc.1";
+chr20 hg19_knownGene exon 56063879 56064269 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778130:uc010giu.3";
+chr20 hg19_knownGene exon 56073610 56073757 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778130:uc010giu.3";
+chr20 hg19_knownGene exon 56078492 56078657 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778130:uc010giu.3";
+chr20 hg19_knownGene exon 56083662 56083760 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778130:uc010giu.3";
+chr20 hg19_knownGene exon 56063879 56064269 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778131:uc010giv.3";
+chr20 hg19_knownGene exon 56078492 56078657 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778131:uc010giv.3";
+chr20 hg19_knownGene exon 56083662 56083760 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778131:uc010giv.3";
+chr20 hg19_knownGene CDS 56073609 56073757 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778110:uc010gix.1";
+chr20 hg19_knownGene exon 56072224 56073757 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778110:uc010gix.1";
+chr20 hg19_knownGene CDS 56078492 56078657 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778110:uc010gix.1";
+chr20 hg19_knownGene exon 56078492 56078657 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778110:uc010gix.1";
+chr20 hg19_knownGene CDS 56083662 56083844 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778110:uc010gix.1";
+chr20 hg19_knownGene exon 56083662 56083844 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778110:uc010gix.1";
+chr20 hg19_knownGene CDS 56087648 56087808 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778110:uc010gix.1";
+chr20 hg19_knownGene exon 56087648 56087808 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778110:uc010gix.1";
+chr20 hg19_knownGene CDS 56089648 56089797 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778110:uc010gix.1";
+chr20 hg19_knownGene exon 56089648 56089797 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778110:uc010gix.1";
+chr20 hg19_knownGene CDS 56090770 56090890 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778110:uc010gix.1";
+chr20 hg19_knownGene exon 56090770 56090890 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778110:uc010gix.1";
+chr20 hg19_knownGene CDS 56093814 56093947 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778110:uc010gix.1";
+chr20 hg19_knownGene exon 56093814 56093947 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778110:uc010gix.1";
+chr20 hg19_knownGene CDS 56094263 56094433 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778110:uc010gix.1";
+chr20 hg19_knownGene exon 56094263 56094433 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778110:uc010gix.1";
+chr20 hg19_knownGene CDS 56098124 56098334 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778110:uc010gix.1";
+chr20 hg19_knownGene exon 56098124 56098334 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778110:uc010gix.1";
+chr20 hg19_knownGene CDS 56098719 56099261 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778110:uc010gix.1";
+chr20 hg19_knownGene exon 56098719 56099923 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778110:uc010gix.1";
+chr20 hg19_knownGene CDS 56075312 56075466 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778115:uc010gje.3";
+chr20 hg19_knownGene exon 56074610 56075466 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778115:uc010gje.3";
+chr20 hg19_knownGene CDS 56078492 56078657 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778115:uc010gje.3";
+chr20 hg19_knownGene exon 56078492 56078657 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778115:uc010gje.3";
+chr20 hg19_knownGene CDS 56083662 56083844 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778115:uc010gje.3";
+chr20 hg19_knownGene exon 56083662 56083844 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778115:uc010gje.3";
+chr20 hg19_knownGene CDS 56087648 56087808 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778115:uc010gje.3";
+chr20 hg19_knownGene exon 56087648 56087808 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778115:uc010gje.3";
+chr20 hg19_knownGene CDS 56089648 56089797 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778115:uc010gje.3";
+chr20 hg19_knownGene exon 56089648 56089797 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778115:uc010gje.3";
+chr20 hg19_knownGene CDS 56090770 56090890 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778115:uc010gje.3";
+chr20 hg19_knownGene exon 56090770 56090890 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778115:uc010gje.3";
+chr20 hg19_knownGene CDS 56093814 56093947 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778115:uc010gje.3";
+chr20 hg19_knownGene exon 56093814 56093947 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778115:uc010gje.3";
+chr20 hg19_knownGene CDS 56094263 56094433 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778115:uc010gje.3";
+chr20 hg19_knownGene exon 56094263 56094433 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778115:uc010gje.3";
+chr20 hg19_knownGene CDS 56098124 56098334 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778115:uc010gje.3";
+chr20 hg19_knownGene exon 56098124 56098334 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778115:uc010gje.3";
+chr20 hg19_knownGene CDS 56098719 56099261 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778115:uc010gje.3";
+chr20 hg19_knownGene exon 56098719 56099923 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778115:uc010gje.3";
+chr20 hg19_knownGene CDS 56082642 56082848 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778121:uc010gjh.2";
+chr20 hg19_knownGene exon 56081798 56082848 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778121:uc010gjh.2";
+chr20 hg19_knownGene CDS 56083662 56083844 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778121:uc010gjh.2";
+chr20 hg19_knownGene exon 56083662 56083844 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778121:uc010gjh.2";
+chr20 hg19_knownGene CDS 56093814 56093947 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778121:uc010gjh.2";
+chr20 hg19_knownGene exon 56093814 56093947 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778121:uc010gjh.2";
+chr20 hg19_knownGene CDS 56094263 56094433 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778121:uc010gjh.2";
+chr20 hg19_knownGene exon 56094263 56094433 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778121:uc010gjh.2";
+chr20 hg19_knownGene CDS 56098124 56098334 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778121:uc010gjh.2";
+chr20 hg19_knownGene exon 56098124 56098334 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778121:uc010gjh.2";
+chr20 hg19_knownGene CDS 56098719 56099261 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778121:uc010gjh.2";
+chr20 hg19_knownGene exon 56098719 56099923 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778121:uc010gjh.2";
+chr20 hg19_knownGene CDS 56090672 56090890 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778119:uc021wfe.1";
+chr20 hg19_knownGene exon 56089648 56090890 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778119:uc021wfe.1";
+chr20 hg19_knownGene CDS 56093814 56093947 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778119:uc021wfe.1";
+chr20 hg19_knownGene exon 56093814 56093947 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778119:uc021wfe.1";
+chr20 hg19_knownGene CDS 56094263 56094433 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778119:uc021wfe.1";
+chr20 hg19_knownGene exon 56094263 56094433 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778119:uc021wfe.1";
+chr20 hg19_knownGene CDS 56098124 56098334 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778119:uc021wfe.1";
+chr20 hg19_knownGene exon 56098124 56098334 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778119:uc021wfe.1";
+chr20 hg19_knownGene CDS 56098719 56099261 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778119:uc021wfe.1";
+chr20 hg19_knownGene exon 56098719 56099923 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778119:uc021wfe.1";
+chr20 hg19_knownGene CDS 56093661 56093947 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778114:uc010gjk.1";
+chr20 hg19_knownGene exon 56093561 56093947 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778114:uc010gjk.1";
+chr20 hg19_knownGene CDS 56094263 56094433 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778114:uc010gjk.1";
+chr20 hg19_knownGene exon 56094263 56094433 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778114:uc010gjk.1";
+chr20 hg19_knownGene CDS 56098124 56098334 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778114:uc010gjk.1";
+chr20 hg19_knownGene exon 56098124 56098334 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778114:uc010gjk.1";
+chr20 hg19_knownGene CDS 56098719 56099261 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778114:uc010gjk.1";
+chr20 hg19_knownGene exon 56098719 56099923 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778114:uc010gjk.1";
+chr20 hg19_knownGene CDS 56071309 56071420 0.000000 - 1 gene_id "CTCFL"; transcript_id "DQ778111:uc010giw.1";
+chr20 hg19_knownGene exon 56071021 56071420 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778111:uc010giw.1";
+chr20 hg19_knownGene CDS 56073610 56073757 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778111:uc010giw.1";
+chr20 hg19_knownGene exon 56073610 56073757 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778111:uc010giw.1";
+chr20 hg19_knownGene CDS 56078492 56078657 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778111:uc010giw.1";
+chr20 hg19_knownGene exon 56078492 56078657 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778111:uc010giw.1";
+chr20 hg19_knownGene CDS 56083662 56083844 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778111:uc010giw.1";
+chr20 hg19_knownGene exon 56083662 56083844 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778111:uc010giw.1";
+chr20 hg19_knownGene CDS 56087648 56087808 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778111:uc010giw.1";
+chr20 hg19_knownGene exon 56087648 56087808 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778111:uc010giw.1";
+chr20 hg19_knownGene CDS 56089648 56089797 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778111:uc010giw.1";
+chr20 hg19_knownGene exon 56089648 56089797 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778111:uc010giw.1";
+chr20 hg19_knownGene CDS 56090770 56090890 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778111:uc010giw.1";
+chr20 hg19_knownGene exon 56090770 56090890 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778111:uc010giw.1";
+chr20 hg19_knownGene CDS 56093814 56093947 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778111:uc010giw.1";
+chr20 hg19_knownGene exon 56093814 56093947 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778111:uc010giw.1";
+chr20 hg19_knownGene CDS 56094263 56094433 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778111:uc010giw.1";
+chr20 hg19_knownGene exon 56094263 56094433 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778111:uc010giw.1";
+chr20 hg19_knownGene CDS 56098124 56098334 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778111:uc010giw.1";
+chr20 hg19_knownGene exon 56098124 56098334 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778111:uc010giw.1";
+chr20 hg19_knownGene CDS 56098719 56099261 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778111:uc010giw.1";
+chr20 hg19_knownGene exon 56098719 56099272 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778111:uc010giw.1";
+chr20 hg19_knownGene exon 56100084 56100183 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778111:uc010giw.1";
+chr20 hg19_knownGene CDS 56073609 56073757 0.000000 - 2 gene_id "CTCFL"; transcript_id "NM_080618:uc002xym.2";
+chr20 hg19_knownGene exon 56072224 56073757 0.000000 - . gene_id "CTCFL"; transcript_id "NM_080618:uc002xym.2";
+chr20 hg19_knownGene CDS 56078492 56078657 0.000000 - 0 gene_id "CTCFL"; transcript_id "NM_080618:uc002xym.2";
+chr20 hg19_knownGene exon 56078492 56078657 0.000000 - . gene_id "CTCFL"; transcript_id "NM_080618:uc002xym.2";
+chr20 hg19_knownGene CDS 56083662 56083844 0.000000 - 0 gene_id "CTCFL"; transcript_id "NM_080618:uc002xym.2";
+chr20 hg19_knownGene exon 56083662 56083844 0.000000 - . gene_id "CTCFL"; transcript_id "NM_080618:uc002xym.2";
+chr20 hg19_knownGene CDS 56087648 56087808 0.000000 - 2 gene_id "CTCFL"; transcript_id "NM_080618:uc002xym.2";
+chr20 hg19_knownGene exon 56087648 56087808 0.000000 - . gene_id "CTCFL"; transcript_id "NM_080618:uc002xym.2";
+chr20 hg19_knownGene CDS 56089648 56089797 0.000000 - 2 gene_id "CTCFL"; transcript_id "NM_080618:uc002xym.2";
+chr20 hg19_knownGene exon 56089648 56089797 0.000000 - . gene_id "CTCFL"; transcript_id "NM_080618:uc002xym.2";
+chr20 hg19_knownGene CDS 56090770 56090890 0.000000 - 0 gene_id "CTCFL"; transcript_id "NM_080618:uc002xym.2";
+chr20 hg19_knownGene exon 56090770 56090890 0.000000 - . gene_id "CTCFL"; transcript_id "NM_080618:uc002xym.2";
+chr20 hg19_knownGene CDS 56093814 56093947 0.000000 - 2 gene_id "CTCFL"; transcript_id "NM_080618:uc002xym.2";
+chr20 hg19_knownGene exon 56093814 56093947 0.000000 - . gene_id "CTCFL"; transcript_id "NM_080618:uc002xym.2";
+chr20 hg19_knownGene CDS 56094263 56094433 0.000000 - 2 gene_id "CTCFL"; transcript_id "NM_080618:uc002xym.2";
+chr20 hg19_knownGene exon 56094263 56094433 0.000000 - . gene_id "CTCFL"; transcript_id "NM_080618:uc002xym.2";
+chr20 hg19_knownGene CDS 56098124 56098334 0.000000 - 0 gene_id "CTCFL"; transcript_id "NM_080618:uc002xym.2";
+chr20 hg19_knownGene exon 56098124 56098334 0.000000 - . gene_id "CTCFL"; transcript_id "NM_080618:uc002xym.2";
+chr20 hg19_knownGene CDS 56098719 56099261 0.000000 - 0 gene_id "CTCFL"; transcript_id "NM_080618:uc002xym.2";
+chr20 hg19_knownGene exon 56098719 56099272 0.000000 - . gene_id "CTCFL"; transcript_id "NM_080618:uc002xym.2";
+chr20 hg19_knownGene exon 56100084 56100183 0.000000 - . gene_id "CTCFL"; transcript_id "NM_080618:uc002xym.2";
+chr20 hg19_knownGene CDS 56075312 56075466 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778124:uc010gjg.3";
+chr20 hg19_knownGene exon 56074610 56075466 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778124:uc010gjg.3";
+chr20 hg19_knownGene CDS 56078492 56078657 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778124:uc010gjg.3";
+chr20 hg19_knownGene exon 56078492 56078657 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778124:uc010gjg.3";
+chr20 hg19_knownGene CDS 56083662 56083844 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778124:uc010gjg.3";
+chr20 hg19_knownGene exon 56083662 56083844 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778124:uc010gjg.3";
+chr20 hg19_knownGene CDS 56087648 56087808 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778124:uc010gjg.3";
+chr20 hg19_knownGene exon 56087648 56087808 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778124:uc010gjg.3";
+chr20 hg19_knownGene CDS 56089648 56089797 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778124:uc010gjg.3";
+chr20 hg19_knownGene exon 56089648 56089797 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778124:uc010gjg.3";
+chr20 hg19_knownGene CDS 56090770 56090890 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778124:uc010gjg.3";
+chr20 hg19_knownGene exon 56090770 56090890 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778124:uc010gjg.3";
+chr20 hg19_knownGene CDS 56093814 56093947 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778124:uc010gjg.3";
+chr20 hg19_knownGene exon 56093814 56093947 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778124:uc010gjg.3";
+chr20 hg19_knownGene CDS 56094263 56094383 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778124:uc010gjg.3";
+chr20 hg19_knownGene exon 56094263 56094433 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778124:uc010gjg.3";
+chr20 hg19_knownGene exon 56100084 56100183 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778124:uc010gjg.3";
+chr20 hg19_knownGene CDS 56075312 56075466 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778125:uc010gjf.3";
+chr20 hg19_knownGene exon 56074610 56075466 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778125:uc010gjf.3";
+chr20 hg19_knownGene CDS 56078492 56078657 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778125:uc010gjf.3";
+chr20 hg19_knownGene exon 56078492 56078657 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778125:uc010gjf.3";
+chr20 hg19_knownGene CDS 56083662 56083844 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778125:uc010gjf.3";
+chr20 hg19_knownGene exon 56083662 56083844 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778125:uc010gjf.3";
+chr20 hg19_knownGene CDS 56087648 56087808 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778125:uc010gjf.3";
+chr20 hg19_knownGene exon 56087648 56087808 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778125:uc010gjf.3";
+chr20 hg19_knownGene CDS 56089648 56089797 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778125:uc010gjf.3";
+chr20 hg19_knownGene exon 56089648 56089797 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778125:uc010gjf.3";
+chr20 hg19_knownGene CDS 56090770 56090890 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778125:uc010gjf.3";
+chr20 hg19_knownGene exon 56090770 56090890 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778125:uc010gjf.3";
+chr20 hg19_knownGene CDS 56093814 56093947 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778125:uc010gjf.3";
+chr20 hg19_knownGene exon 56093814 56093947 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778125:uc010gjf.3";
+chr20 hg19_knownGene CDS 56094263 56094433 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778125:uc010gjf.3";
+chr20 hg19_knownGene exon 56094263 56094433 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778125:uc010gjf.3";
+chr20 hg19_knownGene CDS 56098124 56098262 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778125:uc010gjf.3";
+chr20 hg19_knownGene exon 56098124 56098334 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778125:uc010gjf.3";
+chr20 hg19_knownGene exon 56100084 56100183 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778125:uc010gjf.3";
+chr20 hg19_knownGene CDS 56082642 56082848 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778126:uc010gji.2";
+chr20 hg19_knownGene exon 56081798 56082848 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778126:uc010gji.2";
+chr20 hg19_knownGene CDS 56083662 56083844 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778126:uc010gji.2";
+chr20 hg19_knownGene exon 56083662 56083844 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778126:uc010gji.2";
+chr20 hg19_knownGene CDS 56087648 56087808 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778126:uc010gji.2";
+chr20 hg19_knownGene exon 56087648 56087808 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778126:uc010gji.2";
+chr20 hg19_knownGene CDS 56089648 56089797 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778126:uc010gji.2";
+chr20 hg19_knownGene exon 56089648 56089797 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778126:uc010gji.2";
+chr20 hg19_knownGene CDS 56090770 56090890 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778126:uc010gji.2";
+chr20 hg19_knownGene exon 56090770 56090890 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778126:uc010gji.2";
+chr20 hg19_knownGene CDS 56093814 56093947 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778126:uc010gji.2";
+chr20 hg19_knownGene exon 56093814 56093947 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778126:uc010gji.2";
+chr20 hg19_knownGene CDS 56094263 56094433 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778126:uc010gji.2";
+chr20 hg19_knownGene exon 56094263 56094433 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778126:uc010gji.2";
+chr20 hg19_knownGene CDS 56098124 56098262 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778126:uc010gji.2";
+chr20 hg19_knownGene exon 56098124 56098334 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778126:uc010gji.2";
+chr20 hg19_knownGene exon 56100084 56100183 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778126:uc010gji.2";
+chr20 hg19_knownGene exon 56089648 56089797 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778129:uc021wff.1";
+chr20 hg19_knownGene exon 56090521 56090890 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778129:uc021wff.1";
+chr20 hg19_knownGene exon 56093814 56093947 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778129:uc021wff.1";
+chr20 hg19_knownGene exon 56094263 56094433 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778129:uc021wff.1";
+chr20 hg19_knownGene exon 56100084 56100183 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778129:uc021wff.1";
+chr20 hg19_knownGene CDS 56090672 56090890 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778128:uc021wfg.1";
+chr20 hg19_knownGene exon 56089648 56090890 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778128:uc021wfg.1";
+chr20 hg19_knownGene CDS 56093814 56093947 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778128:uc021wfg.1";
+chr20 hg19_knownGene exon 56093814 56093947 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778128:uc021wfg.1";
+chr20 hg19_knownGene CDS 56094263 56094383 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778128:uc021wfg.1";
+chr20 hg19_knownGene exon 56094263 56094433 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778128:uc021wfg.1";
+chr20 hg19_knownGene exon 56100084 56100183 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778128:uc021wfg.1";
+chr20 hg19_knownGene CDS 56073609 56073757 0.000000 - 2 gene_id "CTCFL"; transcript_id "AK313990:uc010gjb.1";
+chr20 hg19_knownGene exon 56072224 56073757 0.000000 - . gene_id "CTCFL"; transcript_id "AK313990:uc010gjb.1";
+chr20 hg19_knownGene CDS 56078492 56078657 0.000000 - 0 gene_id "CTCFL"; transcript_id "AK313990:uc010gjb.1";
+chr20 hg19_knownGene exon 56078492 56078657 0.000000 - . gene_id "CTCFL"; transcript_id "AK313990:uc010gjb.1";
+chr20 hg19_knownGene CDS 56083662 56083844 0.000000 - 0 gene_id "CTCFL"; transcript_id "AK313990:uc010gjb.1";
+chr20 hg19_knownGene exon 56083662 56083844 0.000000 - . gene_id "CTCFL"; transcript_id "AK313990:uc010gjb.1";
+chr20 hg19_knownGene CDS 56087648 56087808 0.000000 - 2 gene_id "CTCFL"; transcript_id "AK313990:uc010gjb.1";
+chr20 hg19_knownGene exon 56087648 56087808 0.000000 - . gene_id "CTCFL"; transcript_id "AK313990:uc010gjb.1";
+chr20 hg19_knownGene CDS 56089648 56089797 0.000000 - 2 gene_id "CTCFL"; transcript_id "AK313990:uc010gjb.1";
+chr20 hg19_knownGene exon 56089648 56089797 0.000000 - . gene_id "CTCFL"; transcript_id "AK313990:uc010gjb.1";
+chr20 hg19_knownGene CDS 56090770 56090890 0.000000 - 0 gene_id "CTCFL"; transcript_id "AK313990:uc010gjb.1";
+chr20 hg19_knownGene exon 56090770 56090890 0.000000 - . gene_id "CTCFL"; transcript_id "AK313990:uc010gjb.1";
+chr20 hg19_knownGene CDS 56093814 56093947 0.000000 - 2 gene_id "CTCFL"; transcript_id "AK313990:uc010gjb.1";
+chr20 hg19_knownGene exon 56093814 56093947 0.000000 - . gene_id "CTCFL"; transcript_id "AK313990:uc010gjb.1";
+chr20 hg19_knownGene CDS 56094263 56094433 0.000000 - 2 gene_id "CTCFL"; transcript_id "AK313990:uc010gjb.1";
+chr20 hg19_knownGene exon 56094263 56094433 0.000000 - . gene_id "CTCFL"; transcript_id "AK313990:uc010gjb.1";
+chr20 hg19_knownGene CDS 56098124 56098334 0.000000 - 0 gene_id "CTCFL"; transcript_id "AK313990:uc010gjb.1";
+chr20 hg19_knownGene exon 56098124 56098334 0.000000 - . gene_id "CTCFL"; transcript_id "AK313990:uc010gjb.1";
+chr20 hg19_knownGene CDS 56098719 56099261 0.000000 - 0 gene_id "CTCFL"; transcript_id "AK313990:uc010gjb.1";
+chr20 hg19_knownGene exon 56098719 56099272 0.000000 - . gene_id "CTCFL"; transcript_id "AK313990:uc010gjb.1";
+chr20 hg19_knownGene exon 56100084 56100633 0.000000 - . gene_id "CTCFL"; transcript_id "AK313990:uc010gjb.1";
+chr20 hg19_knownGene CDS 56073609 56073757 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778112:uc010gja.1";
+chr20 hg19_knownGene exon 56072224 56073757 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778112:uc010gja.1";
+chr20 hg19_knownGene CDS 56078492 56078657 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778112:uc010gja.1";
+chr20 hg19_knownGene exon 56078492 56078657 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778112:uc010gja.1";
+chr20 hg19_knownGene CDS 56083662 56083844 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778112:uc010gja.1";
+chr20 hg19_knownGene exon 56083662 56083844 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778112:uc010gja.1";
+chr20 hg19_knownGene CDS 56087648 56087808 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778112:uc010gja.1";
+chr20 hg19_knownGene exon 56087648 56087808 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778112:uc010gja.1";
+chr20 hg19_knownGene CDS 56090770 56090890 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778112:uc010gja.1";
+chr20 hg19_knownGene exon 56090770 56090890 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778112:uc010gja.1";
+chr20 hg19_knownGene CDS 56093814 56093947 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778112:uc010gja.1";
+chr20 hg19_knownGene exon 56093814 56093947 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778112:uc010gja.1";
+chr20 hg19_knownGene CDS 56094263 56094433 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778112:uc010gja.1";
+chr20 hg19_knownGene exon 56094263 56094433 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778112:uc010gja.1";
+chr20 hg19_knownGene CDS 56098124 56098334 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778112:uc010gja.1";
+chr20 hg19_knownGene exon 56098124 56098334 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778112:uc010gja.1";
+chr20 hg19_knownGene CDS 56098719 56099261 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778112:uc010gja.1";
+chr20 hg19_knownGene exon 56098719 56099272 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778112:uc010gja.1";
+chr20 hg19_knownGene exon 56100084 56100633 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778112:uc010gja.1";
+chr20 hg19_knownGene CDS 56073609 56073757 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778108:uc010gjc.1";
+chr20 hg19_knownGene exon 56072224 56073757 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778108:uc010gjc.1";
+chr20 hg19_knownGene CDS 56078492 56078657 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778108:uc010gjc.1";
+chr20 hg19_knownGene exon 56078492 56078657 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778108:uc010gjc.1";
+chr20 hg19_knownGene CDS 56083662 56083844 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778108:uc010gjc.1";
+chr20 hg19_knownGene exon 56083662 56083844 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778108:uc010gjc.1";
+chr20 hg19_knownGene CDS 56087648 56087808 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778108:uc010gjc.1";
+chr20 hg19_knownGene exon 56087648 56087808 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778108:uc010gjc.1";
+chr20 hg19_knownGene CDS 56089648 56089797 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778108:uc010gjc.1";
+chr20 hg19_knownGene exon 56089648 56089797 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778108:uc010gjc.1";
+chr20 hg19_knownGene CDS 56090770 56090890 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778108:uc010gjc.1";
+chr20 hg19_knownGene exon 56090770 56090890 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778108:uc010gjc.1";
+chr20 hg19_knownGene CDS 56093814 56093947 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778108:uc010gjc.1";
+chr20 hg19_knownGene exon 56093814 56093947 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778108:uc010gjc.1";
+chr20 hg19_knownGene CDS 56094263 56094433 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778108:uc010gjc.1";
+chr20 hg19_knownGene exon 56094263 56094433 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778108:uc010gjc.1";
+chr20 hg19_knownGene CDS 56098124 56098334 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778108:uc010gjc.1";
+chr20 hg19_knownGene exon 56098124 56098334 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778108:uc010gjc.1";
+chr20 hg19_knownGene CDS 56098719 56099261 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778108:uc010gjc.1";
+chr20 hg19_knownGene exon 56098719 56099272 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778108:uc010gjc.1";
+chr20 hg19_knownGene exon 56100530 56100708 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778108:uc010gjc.1";
+chr20 hg19_knownGene CDS 56073609 56073757 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778109:uc010gjd.1";
+chr20 hg19_knownGene exon 56072224 56073757 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778109:uc010gjd.1";
+chr20 hg19_knownGene CDS 56078492 56078657 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778109:uc010gjd.1";
+chr20 hg19_knownGene exon 56078492 56078657 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778109:uc010gjd.1";
+chr20 hg19_knownGene CDS 56083662 56083844 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778109:uc010gjd.1";
+chr20 hg19_knownGene exon 56083662 56083844 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778109:uc010gjd.1";
+chr20 hg19_knownGene CDS 56087648 56087808 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778109:uc010gjd.1";
+chr20 hg19_knownGene exon 56087648 56087808 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778109:uc010gjd.1";
+chr20 hg19_knownGene CDS 56089648 56089797 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778109:uc010gjd.1";
+chr20 hg19_knownGene exon 56089648 56089797 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778109:uc010gjd.1";
+chr20 hg19_knownGene CDS 56090770 56090890 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778109:uc010gjd.1";
+chr20 hg19_knownGene exon 56090770 56090890 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778109:uc010gjd.1";
+chr20 hg19_knownGene CDS 56093814 56093947 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778109:uc010gjd.1";
+chr20 hg19_knownGene exon 56093814 56093947 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778109:uc010gjd.1";
+chr20 hg19_knownGene CDS 56094263 56094433 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778109:uc010gjd.1";
+chr20 hg19_knownGene exon 56094263 56094433 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778109:uc010gjd.1";
+chr20 hg19_knownGene CDS 56098124 56098334 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778109:uc010gjd.1";
+chr20 hg19_knownGene exon 56098124 56098334 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778109:uc010gjd.1";
+chr20 hg19_knownGene CDS 56098719 56099261 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778109:uc010gjd.1";
+chr20 hg19_knownGene exon 56098719 56099272 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778109:uc010gjd.1";
+chr20 hg19_knownGene exon 56100084 56100183 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778109:uc010gjd.1";
+chr20 hg19_knownGene exon 56100530 56100708 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778109:uc010gjd.1";
+chr20 hg19_knownGene CDS 56082642 56082848 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778122:uc010gjj.2";
+chr20 hg19_knownGene exon 56081798 56082848 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778122:uc010gjj.2";
+chr20 hg19_knownGene CDS 56083662 56083844 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778122:uc010gjj.2";
+chr20 hg19_knownGene exon 56083662 56083844 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778122:uc010gjj.2";
+chr20 hg19_knownGene CDS 56087648 56087808 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778122:uc010gjj.2";
+chr20 hg19_knownGene exon 56087648 56087808 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778122:uc010gjj.2";
+chr20 hg19_knownGene CDS 56089648 56089797 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778122:uc010gjj.2";
+chr20 hg19_knownGene exon 56089648 56089797 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778122:uc010gjj.2";
+chr20 hg19_knownGene CDS 56090770 56090890 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778122:uc010gjj.2";
+chr20 hg19_knownGene exon 56090770 56090890 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778122:uc010gjj.2";
+chr20 hg19_knownGene CDS 56093814 56093947 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778122:uc010gjj.2";
+chr20 hg19_knownGene exon 56093814 56093947 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778122:uc010gjj.2";
+chr20 hg19_knownGene CDS 56094263 56094433 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778122:uc010gjj.2";
+chr20 hg19_knownGene exon 56094263 56094433 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778122:uc010gjj.2";
+chr20 hg19_knownGene CDS 56098124 56098334 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778122:uc010gjj.2";
+chr20 hg19_knownGene exon 56098124 56098334 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778122:uc010gjj.2";
+chr20 hg19_knownGene CDS 56098719 56099261 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778122:uc010gjj.2";
+chr20 hg19_knownGene exon 56098719 56099272 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778122:uc010gjj.2";
+chr20 hg19_knownGene exon 56100530 56100708 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778122:uc010gjj.2";
+chr20 hg19_knownGene CDS 56093661 56093947 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778113:uc010gjl.1";
+chr20 hg19_knownGene exon 56093561 56093947 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778113:uc010gjl.1";
+chr20 hg19_knownGene CDS 56094263 56094433 0.000000 - 2 gene_id "CTCFL"; transcript_id "DQ778113:uc010gjl.1";
+chr20 hg19_knownGene exon 56094263 56094433 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778113:uc010gjl.1";
+chr20 hg19_knownGene CDS 56098124 56098334 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778113:uc010gjl.1";
+chr20 hg19_knownGene exon 56098124 56098334 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778113:uc010gjl.1";
+chr20 hg19_knownGene CDS 56098719 56099261 0.000000 - 0 gene_id "CTCFL"; transcript_id "DQ778113:uc010gjl.1";
+chr20 hg19_knownGene exon 56098719 56099272 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778113:uc010gjl.1";
+chr20 hg19_knownGene exon 56100530 56100708 0.000000 - . gene_id "CTCFL"; transcript_id "DQ778113:uc010gjl.1";
+chr20 hg19_knownGene exon 56136137 56136259 0.000000 + . gene_id "PCK1"; transcript_id "NM_002591:uc002xyn.4";
+chr20 hg19_knownGene CDS 56136468 56136691 0.000000 + 0 gene_id "PCK1"; transcript_id "NM_002591:uc002xyn.4";
+chr20 hg19_knownGene exon 56136428 56136691 0.000000 + . gene_id "PCK1"; transcript_id "NM_002591:uc002xyn.4";
+chr20 hg19_knownGene CDS 56137127 56137308 0.000000 + 1 gene_id "PCK1"; transcript_id "NM_002591:uc002xyn.4";
+chr20 hg19_knownGene exon 56137127 56137308 0.000000 + . gene_id "PCK1"; transcript_id "NM_002591:uc002xyn.4";
+chr20 hg19_knownGene CDS 56137752 56137955 0.000000 + 2 gene_id "PCK1"; transcript_id "NM_002591:uc002xyn.4";
+chr20 hg19_knownGene exon 56137752 56137955 0.000000 + . gene_id "PCK1"; transcript_id "NM_002591:uc002xyn.4";
+chr20 hg19_knownGene CDS 56138084 56138271 0.000000 + 2 gene_id "PCK1"; transcript_id "NM_002591:uc002xyn.4";
+chr20 hg19_knownGene exon 56138084 56138271 0.000000 + . gene_id "PCK1"; transcript_id "NM_002591:uc002xyn.4";
+chr20 hg19_knownGene CDS 56138621 56138783 0.000000 + 0 gene_id "PCK1"; transcript_id "NM_002591:uc002xyn.4";
+chr20 hg19_knownGene exon 56138621 56138783 0.000000 + . gene_id "PCK1"; transcript_id "NM_002591:uc002xyn.4";
+chr20 hg19_knownGene CDS 56139225 56139449 0.000000 + 2 gene_id "PCK1"; transcript_id "NM_002591:uc002xyn.4";
+chr20 hg19_knownGene exon 56139225 56139449 0.000000 + . gene_id "PCK1"; transcript_id "NM_002591:uc002xyn.4";
+chr20 hg19_knownGene CDS 56139538 56139669 0.000000 + 2 gene_id "PCK1"; transcript_id "NM_002591:uc002xyn.4";
+chr20 hg19_knownGene exon 56139538 56139669 0.000000 + . gene_id "PCK1"; transcript_id "NM_002591:uc002xyn.4";
+chr20 hg19_knownGene CDS 56140096 56140191 0.000000 + 2 gene_id "PCK1"; transcript_id "NM_002591:uc002xyn.4";
+chr20 hg19_knownGene exon 56140096 56140191 0.000000 + . gene_id "PCK1"; transcript_id "NM_002591:uc002xyn.4";
+chr20 hg19_knownGene CDS 56140406 56140857 0.000000 + 2 gene_id "PCK1"; transcript_id "NM_002591:uc002xyn.4";
+chr20 hg19_knownGene exon 56140406 56141513 0.000000 + . gene_id "PCK1"; transcript_id "NM_002591:uc002xyn.4";
+chr20 hg19_knownGene exon 56136137 56136259 0.000000 + . gene_id "PCK1"; transcript_id "AK300072:uc010zzm.2";
+chr20 hg19_knownGene CDS 56136682 56136691 0.000000 + 0 gene_id "PCK1"; transcript_id "AK300072:uc010zzm.2";
+chr20 hg19_knownGene exon 56136428 56136691 0.000000 + . gene_id "PCK1"; transcript_id "AK300072:uc010zzm.2";
+chr20 hg19_knownGene CDS 56139225 56139449 0.000000 + 2 gene_id "PCK1"; transcript_id "AK300072:uc010zzm.2";
+chr20 hg19_knownGene exon 56139225 56139449 0.000000 + . gene_id "PCK1"; transcript_id "AK300072:uc010zzm.2";
+chr20 hg19_knownGene CDS 56139538 56139669 0.000000 + 2 gene_id "PCK1"; transcript_id "AK300072:uc010zzm.2";
+chr20 hg19_knownGene exon 56139538 56139669 0.000000 + . gene_id "PCK1"; transcript_id "AK300072:uc010zzm.2";
+chr20 hg19_knownGene CDS 56140096 56140191 0.000000 + 2 gene_id "PCK1"; transcript_id "AK300072:uc010zzm.2";
+chr20 hg19_knownGene exon 56140096 56140191 0.000000 + . gene_id "PCK1"; transcript_id "AK300072:uc010zzm.2";
+chr20 hg19_knownGene CDS 56140406 56140857 0.000000 + 2 gene_id "PCK1"; transcript_id "AK300072:uc010zzm.2";
+chr20 hg19_knownGene exon 56140406 56141513 0.000000 + . gene_id "PCK1"; transcript_id "AK300072:uc010zzm.2";
+chr20 hg19_knownGene CDS 56179632 56179825 0.000000 - 2 gene_id "ZBP1"; transcript_id "NM_030776:uc002xyo.3";
+chr20 hg19_knownGene exon 56178902 56179825 0.000000 - . gene_id "ZBP1"; transcript_id "NM_030776:uc002xyo.3";
+chr20 hg19_knownGene CDS 56185205 56185423 0.000000 - 2 gene_id "ZBP1"; transcript_id "NM_030776:uc002xyo.3";
+chr20 hg19_knownGene exon 56185205 56185423 0.000000 - . gene_id "ZBP1"; transcript_id "NM_030776:uc002xyo.3";
+chr20 hg19_knownGene CDS 56186783 56186986 0.000000 - 2 gene_id "ZBP1"; transcript_id "NM_030776:uc002xyo.3";
+chr20 hg19_knownGene exon 56186783 56186986 0.000000 - . gene_id "ZBP1"; transcript_id "NM_030776:uc002xyo.3";
+chr20 hg19_knownGene CDS 56188219 56188386 0.000000 - 2 gene_id "ZBP1"; transcript_id "NM_030776:uc002xyo.3";
+chr20 hg19_knownGene exon 56188219 56188386 0.000000 - . gene_id "ZBP1"; transcript_id "NM_030776:uc002xyo.3";
+chr20 hg19_knownGene CDS 56189943 56190116 0.000000 - 2 gene_id "ZBP1"; transcript_id "NM_030776:uc002xyo.3";
+chr20 hg19_knownGene exon 56189943 56190116 0.000000 - . gene_id "ZBP1"; transcript_id "NM_030776:uc002xyo.3";
+chr20 hg19_knownGene CDS 56190568 56190636 0.000000 - 2 gene_id "ZBP1"; transcript_id "NM_030776:uc002xyo.3";
+chr20 hg19_knownGene exon 56190568 56190636 0.000000 - . gene_id "ZBP1"; transcript_id "NM_030776:uc002xyo.3";
+chr20 hg19_knownGene CDS 56191300 56191524 0.000000 - 2 gene_id "ZBP1"; transcript_id "NM_030776:uc002xyo.3";
+chr20 hg19_knownGene exon 56191300 56191524 0.000000 - . gene_id "ZBP1"; transcript_id "NM_030776:uc002xyo.3";
+chr20 hg19_knownGene CDS 56195318 56195351 0.000000 - 0 gene_id "ZBP1"; transcript_id "NM_030776:uc002xyo.3";
+chr20 hg19_knownGene exon 56195318 56195632 0.000000 - . gene_id "ZBP1"; transcript_id "NM_030776:uc002xyo.3";
+chr20 hg19_knownGene CDS 56179632 56179825 0.000000 - 2 gene_id "ZBP1"; transcript_id "NM_001160417:uc010gjm.3";
+chr20 hg19_knownGene exon 56178902 56179825 0.000000 - . gene_id "ZBP1"; transcript_id "NM_001160417:uc010gjm.3";
+chr20 hg19_knownGene CDS 56185205 56185423 0.000000 - 2 gene_id "ZBP1"; transcript_id "NM_001160417:uc010gjm.3";
+chr20 hg19_knownGene exon 56185205 56185423 0.000000 - . gene_id "ZBP1"; transcript_id "NM_001160417:uc010gjm.3";
+chr20 hg19_knownGene CDS 56186783 56186986 0.000000 - 2 gene_id "ZBP1"; transcript_id "NM_001160417:uc010gjm.3";
+chr20 hg19_knownGene exon 56186783 56186986 0.000000 - . gene_id "ZBP1"; transcript_id "NM_001160417:uc010gjm.3";
+chr20 hg19_knownGene CDS 56188219 56188383 0.000000 - 2 gene_id "ZBP1"; transcript_id "NM_001160417:uc010gjm.3";
+chr20 hg19_knownGene exon 56188219 56188383 0.000000 - . gene_id "ZBP1"; transcript_id "NM_001160417:uc010gjm.3";
+chr20 hg19_knownGene CDS 56189943 56190116 0.000000 - 2 gene_id "ZBP1"; transcript_id "NM_001160417:uc010gjm.3";
+chr20 hg19_knownGene exon 56189943 56190116 0.000000 - . gene_id "ZBP1"; transcript_id "NM_001160417:uc010gjm.3";
+chr20 hg19_knownGene CDS 56190568 56190636 0.000000 - 2 gene_id "ZBP1"; transcript_id "NM_001160417:uc010gjm.3";
+chr20 hg19_knownGene exon 56190568 56190636 0.000000 - . gene_id "ZBP1"; transcript_id "NM_001160417:uc010gjm.3";
+chr20 hg19_knownGene CDS 56191300 56191524 0.000000 - 2 gene_id "ZBP1"; transcript_id "NM_001160417:uc010gjm.3";
+chr20 hg19_knownGene exon 56191300 56191524 0.000000 - . gene_id "ZBP1"; transcript_id "NM_001160417:uc010gjm.3";
+chr20 hg19_knownGene CDS 56195318 56195351 0.000000 - 0 gene_id "ZBP1"; transcript_id "NM_001160417:uc010gjm.3";
+chr20 hg19_knownGene exon 56195318 56195632 0.000000 - . gene_id "ZBP1"; transcript_id "NM_001160417:uc010gjm.3";
+chr20 hg19_knownGene CDS 56179632 56179825 0.000000 - 2 gene_id "ZBP1"; transcript_id "NM_001160418:uc002xyp.3";
+chr20 hg19_knownGene exon 56178902 56179825 0.000000 - . gene_id "ZBP1"; transcript_id "NM_001160418:uc002xyp.3";
+chr20 hg19_knownGene CDS 56185205 56185423 0.000000 - 2 gene_id "ZBP1"; transcript_id "NM_001160418:uc002xyp.3";
+chr20 hg19_knownGene exon 56185205 56185423 0.000000 - . gene_id "ZBP1"; transcript_id "NM_001160418:uc002xyp.3";
+chr20 hg19_knownGene CDS 56186783 56186986 0.000000 - 2 gene_id "ZBP1"; transcript_id "NM_001160418:uc002xyp.3";
+chr20 hg19_knownGene exon 56186783 56186986 0.000000 - . gene_id "ZBP1"; transcript_id "NM_001160418:uc002xyp.3";
+chr20 hg19_knownGene CDS 56188219 56188386 0.000000 - 2 gene_id "ZBP1"; transcript_id "NM_001160418:uc002xyp.3";
+chr20 hg19_knownGene exon 56188219 56188386 0.000000 - . gene_id "ZBP1"; transcript_id "NM_001160418:uc002xyp.3";
+chr20 hg19_knownGene CDS 56189943 56190116 0.000000 - 2 gene_id "ZBP1"; transcript_id "NM_001160418:uc002xyp.3";
+chr20 hg19_knownGene exon 56189943 56190116 0.000000 - . gene_id "ZBP1"; transcript_id "NM_001160418:uc002xyp.3";
+chr20 hg19_knownGene CDS 56190568 56190636 0.000000 - 2 gene_id "ZBP1"; transcript_id "NM_001160418:uc002xyp.3";
+chr20 hg19_knownGene exon 56190568 56190636 0.000000 - . gene_id "ZBP1"; transcript_id "NM_001160418:uc002xyp.3";
+chr20 hg19_knownGene CDS 56195318 56195351 0.000000 - 0 gene_id "ZBP1"; transcript_id "NM_001160418:uc002xyp.3";
+chr20 hg19_knownGene exon 56195318 56195632 0.000000 - . gene_id "ZBP1"; transcript_id "NM_001160418:uc002xyp.3";
+chr20 hg19_knownGene CDS 56188145 56188386 0.000000 - 2 gene_id "ZBP1"; transcript_id "NM_001160419:uc010zzn.2";
+chr20 hg19_knownGene exon 56187941 56188386 0.000000 - . gene_id "ZBP1"; transcript_id "NM_001160419:uc010zzn.2";
+chr20 hg19_knownGene CDS 56189943 56190116 0.000000 - 2 gene_id "ZBP1"; transcript_id "NM_001160419:uc010zzn.2";
+chr20 hg19_knownGene exon 56189943 56190116 0.000000 - . gene_id "ZBP1"; transcript_id "NM_001160419:uc010zzn.2";
+chr20 hg19_knownGene CDS 56190568 56190636 0.000000 - 2 gene_id "ZBP1"; transcript_id "NM_001160419:uc010zzn.2";
+chr20 hg19_knownGene exon 56190568 56190636 0.000000 - . gene_id "ZBP1"; transcript_id "NM_001160419:uc010zzn.2";
+chr20 hg19_knownGene CDS 56191300 56191524 0.000000 - 2 gene_id "ZBP1"; transcript_id "NM_001160419:uc010zzn.2";
+chr20 hg19_knownGene exon 56191300 56191524 0.000000 - . gene_id "ZBP1"; transcript_id "NM_001160419:uc010zzn.2";
+chr20 hg19_knownGene CDS 56195318 56195351 0.000000 - 0 gene_id "ZBP1"; transcript_id "NM_001160419:uc010zzn.2";
+chr20 hg19_knownGene exon 56195318 56195632 0.000000 - . gene_id "ZBP1"; transcript_id "NM_001160419:uc010zzn.2";
+chr20 hg19_knownGene CDS 56227112 56227654 0.000000 - 0 gene_id "PMEPA1"; transcript_id "NM_020182:uc002xyq.3";
+chr20 hg19_knownGene exon 56223452 56227654 0.000000 - . gene_id "PMEPA1"; transcript_id "NM_020182:uc002xyq.3";
+chr20 hg19_knownGene CDS 56228089 56228142 0.000000 - 0 gene_id "PMEPA1"; transcript_id "NM_020182:uc002xyq.3";
+chr20 hg19_knownGene exon 56228089 56228142 0.000000 - . gene_id "PMEPA1"; transcript_id "NM_020182:uc002xyq.3";
+chr20 hg19_knownGene CDS 56234599 56234753 0.000000 - 2 gene_id "PMEPA1"; transcript_id "NM_020182:uc002xyq.3";
+chr20 hg19_knownGene exon 56234599 56234753 0.000000 - . gene_id "PMEPA1"; transcript_id "NM_020182:uc002xyq.3";
+chr20 hg19_knownGene CDS 56284530 56284638 0.000000 - 0 gene_id "PMEPA1"; transcript_id "NM_020182:uc002xyq.3";
+chr20 hg19_knownGene exon 56284530 56285031 0.000000 - . gene_id "PMEPA1"; transcript_id "NM_020182:uc002xyq.3";
+chr20 hg19_knownGene CDS 56227112 56227654 0.000000 - 0 gene_id "PMEPA1"; transcript_id "NM_199170:uc002xyr.3";
+chr20 hg19_knownGene exon 56223452 56227654 0.000000 - . gene_id "PMEPA1"; transcript_id "NM_199170:uc002xyr.3";
+chr20 hg19_knownGene CDS 56228089 56228142 0.000000 - 0 gene_id "PMEPA1"; transcript_id "NM_199170:uc002xyr.3";
+chr20 hg19_knownGene exon 56228089 56228142 0.000000 - . gene_id "PMEPA1"; transcript_id "NM_199170:uc002xyr.3";
+chr20 hg19_knownGene CDS 56234599 56234712 0.000000 - 0 gene_id "PMEPA1"; transcript_id "NM_199170:uc002xyr.3";
+chr20 hg19_knownGene exon 56234599 56234753 0.000000 - . gene_id "PMEPA1"; transcript_id "NM_199170:uc002xyr.3";
+chr20 hg19_knownGene exon 56285523 56285625 0.000000 - . gene_id "PMEPA1"; transcript_id "NM_199170:uc002xyr.3";
+chr20 hg19_knownGene CDS 56227112 56227654 0.000000 - 0 gene_id "PMEPA1"; transcript_id "NM_199169:uc002xys.3";
+chr20 hg19_knownGene exon 56223452 56227654 0.000000 - . gene_id "PMEPA1"; transcript_id "NM_199169:uc002xys.3";
+chr20 hg19_knownGene CDS 56228089 56228142 0.000000 - 0 gene_id "PMEPA1"; transcript_id "NM_199169:uc002xys.3";
+chr20 hg19_knownGene exon 56228089 56228142 0.000000 - . gene_id "PMEPA1"; transcript_id "NM_199169:uc002xys.3";
+chr20 hg19_knownGene CDS 56234599 56234753 0.000000 - 2 gene_id "PMEPA1"; transcript_id "NM_199169:uc002xys.3";
+chr20 hg19_knownGene exon 56234599 56234753 0.000000 - . gene_id "PMEPA1"; transcript_id "NM_199169:uc002xys.3";
+chr20 hg19_knownGene CDS 56285516 56285519 0.000000 - 0 gene_id "PMEPA1"; transcript_id "NM_199169:uc002xys.3";
+chr20 hg19_knownGene exon 56285516 56285625 0.000000 - . gene_id "PMEPA1"; transcript_id "NM_199169:uc002xys.3";
+chr20 hg19_knownGene CDS 56227112 56227654 0.000000 - 0 gene_id "PMEPA1"; transcript_id "NM_199171:uc002xyt.3";
+chr20 hg19_knownGene exon 56223452 56227654 0.000000 - . gene_id "PMEPA1"; transcript_id "NM_199171:uc002xyt.3";
+chr20 hg19_knownGene CDS 56228089 56228142 0.000000 - 0 gene_id "PMEPA1"; transcript_id "NM_199171:uc002xyt.3";
+chr20 hg19_knownGene exon 56228089 56228142 0.000000 - . gene_id "PMEPA1"; transcript_id "NM_199171:uc002xyt.3";
+chr20 hg19_knownGene CDS 56234599 56234712 0.000000 - 0 gene_id "PMEPA1"; transcript_id "NM_199171:uc002xyt.3";
+chr20 hg19_knownGene exon 56234599 56234753 0.000000 - . gene_id "PMEPA1"; transcript_id "NM_199171:uc002xyt.3";
+chr20 hg19_knownGene exon 56286380 56286541 0.000000 - . gene_id "PMEPA1"; transcript_id "NM_199171:uc002xyt.3";
+chr20 hg19_knownGene exon 56285239 56287808 0.000000 + . gene_id "AK056098"; transcript_id "AK056098:uc002xyu.1";
+chr20 hg19_knownGene exon 56470450 56470500 0.000000 + . gene_id "MIR4532"; transcript_id "NR_039757:uc021wfh.1";
+chr20 hg19_knownGene CDS 56726021 56726088 0.000000 + 0 gene_id "C20orf85"; transcript_id "NM_178456:uc002xyv.3";
+chr20 hg19_knownGene exon 56725983 56726088 0.000000 + . gene_id "C20orf85"; transcript_id "NM_178456:uc002xyv.3";
+chr20 hg19_knownGene CDS 56728600 56728681 0.000000 + 1 gene_id "C20orf85"; transcript_id "NM_178456:uc002xyv.3";
+chr20 hg19_knownGene exon 56728600 56728681 0.000000 + . gene_id "C20orf85"; transcript_id "NM_178456:uc002xyv.3";
+chr20 hg19_knownGene CDS 56730524 56730625 0.000000 + 0 gene_id "C20orf85"; transcript_id "NM_178456:uc002xyv.3";
+chr20 hg19_knownGene exon 56730524 56730625 0.000000 + . gene_id "C20orf85"; transcript_id "NM_178456:uc002xyv.3";
+chr20 hg19_knownGene CDS 56735717 56735875 0.000000 + 0 gene_id "C20orf85"; transcript_id "NM_178456:uc002xyv.3";
+chr20 hg19_knownGene exon 56735717 56736183 0.000000 + . gene_id "C20orf85"; transcript_id "NM_178456:uc002xyv.3";
+chr20 hg19_knownGene exon 56806188 56806983 0.000000 - . gene_id "PPP4R1L"; transcript_id "AF119843:uc002xyw.3";
+chr20 hg19_knownGene exon 56807744 56807978 0.000000 - . gene_id "PPP4R1L"; transcript_id "AF119843:uc002xyw.3";
+chr20 hg19_knownGene exon 56810296 56810430 0.000000 - . gene_id "PPP4R1L"; transcript_id "AF119843:uc002xyw.3";
+chr20 hg19_knownGene exon 56811210 56811330 0.000000 - . gene_id "PPP4R1L"; transcript_id "AF119843:uc002xyw.3";
+chr20 hg19_knownGene exon 56813267 56813367 0.000000 - . gene_id "PPP4R1L"; transcript_id "AF119843:uc002xyw.3";
+chr20 hg19_knownGene exon 56814297 56814458 0.000000 - . gene_id "PPP4R1L"; transcript_id "AF119843:uc002xyw.3";
+chr20 hg19_knownGene exon 56814716 56814901 0.000000 - . gene_id "PPP4R1L"; transcript_id "AF119843:uc002xyw.3";
+chr20 hg19_knownGene exon 56815571 56815666 0.000000 - . gene_id "PPP4R1L"; transcript_id "AF119843:uc002xyw.3";
+chr20 hg19_knownGene exon 56818568 56818761 0.000000 - . gene_id "PPP4R1L"; transcript_id "AF119843:uc002xyw.3";
+chr20 hg19_knownGene exon 56820839 56821308 0.000000 - . gene_id "PPP4R1L"; transcript_id "AF119843:uc002xyw.3";
+chr20 hg19_knownGene exon 56807744 56807978 0.000000 - . gene_id "PPP4R1L"; transcript_id "NR_003505:uc010gjn.1";
+chr20 hg19_knownGene exon 56810333 56810430 0.000000 - . gene_id "PPP4R1L"; transcript_id "NR_003505:uc010gjn.1";
+chr20 hg19_knownGene exon 56811210 56811330 0.000000 - . gene_id "PPP4R1L"; transcript_id "NR_003505:uc010gjn.1";
+chr20 hg19_knownGene exon 56813267 56813367 0.000000 - . gene_id "PPP4R1L"; transcript_id "NR_003505:uc010gjn.1";
+chr20 hg19_knownGene exon 56814297 56814458 0.000000 - . gene_id "PPP4R1L"; transcript_id "NR_003505:uc010gjn.1";
+chr20 hg19_knownGene exon 56814716 56814901 0.000000 - . gene_id "PPP4R1L"; transcript_id "NR_003505:uc010gjn.1";
+chr20 hg19_knownGene exon 56815571 56815666 0.000000 - . gene_id "PPP4R1L"; transcript_id "NR_003505:uc010gjn.1";
+chr20 hg19_knownGene exon 56818568 56818761 0.000000 - . gene_id "PPP4R1L"; transcript_id "NR_003505:uc010gjn.1";
+chr20 hg19_knownGene exon 56820839 56821308 0.000000 - . gene_id "PPP4R1L"; transcript_id "NR_003505:uc010gjn.1";
+chr20 hg19_knownGene exon 56822378 56822562 0.000000 - . gene_id "PPP4R1L"; transcript_id "NR_003505:uc010gjn.1";
+chr20 hg19_knownGene exon 56823171 56823329 0.000000 - . gene_id "PPP4R1L"; transcript_id "NR_003505:uc010gjn.1";
+chr20 hg19_knownGene exon 56825943 56826008 0.000000 - . gene_id "PPP4R1L"; transcript_id "NR_003505:uc010gjn.1";
+chr20 hg19_knownGene exon 56826813 56826920 0.000000 - . gene_id "PPP4R1L"; transcript_id "NR_003505:uc010gjn.1";
+chr20 hg19_knownGene exon 56847825 56847931 0.000000 - . gene_id "PPP4R1L"; transcript_id "NR_003505:uc010gjn.1";
+chr20 hg19_knownGene exon 56861370 56861502 0.000000 - . gene_id "PPP4R1L"; transcript_id "NR_003505:uc010gjn.1";
+chr20 hg19_knownGene exon 56884282 56884326 0.000000 - . gene_id "PPP4R1L"; transcript_id "NR_003505:uc010gjn.1";
+chr20 hg19_knownGene exon 56884475 56884495 0.000000 - . gene_id "PPP4R1L"; transcript_id "NR_003505:uc010gjn.1";
+chr20 hg19_knownGene CDS 56821017 56821308 0.000000 - 1 gene_id "PPP4R1L"; transcript_id "AK299330:uc002xyy.1";
+chr20 hg19_knownGene exon 56820839 56821308 0.000000 - . gene_id "PPP4R1L"; transcript_id "AK299330:uc002xyy.1";
+chr20 hg19_knownGene CDS 56822378 56822562 0.000000 - 0 gene_id "PPP4R1L"; transcript_id "AK299330:uc002xyy.1";
+chr20 hg19_knownGene exon 56822378 56822562 0.000000 - . gene_id "PPP4R1L"; transcript_id "AK299330:uc002xyy.1";
+chr20 hg19_knownGene CDS 56823171 56823329 0.000000 - 0 gene_id "PPP4R1L"; transcript_id "AK299330:uc002xyy.1";
+chr20 hg19_knownGene exon 56823171 56823329 0.000000 - . gene_id "PPP4R1L"; transcript_id "AK299330:uc002xyy.1";
+chr20 hg19_knownGene CDS 56825943 56826008 0.000000 - 0 gene_id "PPP4R1L"; transcript_id "AK299330:uc002xyy.1";
+chr20 hg19_knownGene exon 56825943 56826008 0.000000 - . gene_id "PPP4R1L"; transcript_id "AK299330:uc002xyy.1";
+chr20 hg19_knownGene CDS 56826813 56826920 0.000000 - 0 gene_id "PPP4R1L"; transcript_id "AK299330:uc002xyy.1";
+chr20 hg19_knownGene exon 56826813 56826920 0.000000 - . gene_id "PPP4R1L"; transcript_id "AK299330:uc002xyy.1";
+chr20 hg19_knownGene CDS 56846419 56846561 0.000000 - 2 gene_id "PPP4R1L"; transcript_id "AK299330:uc002xyy.1";
+chr20 hg19_knownGene exon 56846419 56846561 0.000000 - . gene_id "PPP4R1L"; transcript_id "AK299330:uc002xyy.1";
+chr20 hg19_knownGene CDS 56847825 56847931 0.000000 - 1 gene_id "PPP4R1L"; transcript_id "AK299330:uc002xyy.1";
+chr20 hg19_knownGene exon 56847825 56847931 0.000000 - . gene_id "PPP4R1L"; transcript_id "AK299330:uc002xyy.1";
+chr20 hg19_knownGene CDS 56861370 56861502 0.000000 - 2 gene_id "PPP4R1L"; transcript_id "AK299330:uc002xyy.1";
+chr20 hg19_knownGene exon 56861370 56861502 0.000000 - . gene_id "PPP4R1L"; transcript_id "AK299330:uc002xyy.1";
+chr20 hg19_knownGene CDS 56884282 56884326 0.000000 - 2 gene_id "PPP4R1L"; transcript_id "AK299330:uc002xyy.1";
+chr20 hg19_knownGene exon 56884282 56884326 0.000000 - . gene_id "PPP4R1L"; transcript_id "AK299330:uc002xyy.1";
+chr20 hg19_knownGene CDS 56884475 56884481 0.000000 - 0 gene_id "PPP4R1L"; transcript_id "AK299330:uc002xyy.1";
+chr20 hg19_knownGene exon 56884475 56884495 0.000000 - . gene_id "PPP4R1L"; transcript_id "AK299330:uc002xyy.1";
+chr20 hg19_knownGene CDS 56885033 56885068 0.000000 + 0 gene_id "RAB22A"; transcript_id "NM_020673:uc002xyz.3";
+chr20 hg19_knownGene exon 56884771 56885068 0.000000 + . gene_id "RAB22A"; transcript_id "NM_020673:uc002xyz.3";
+chr20 hg19_knownGene CDS 56886099 56886178 0.000000 + 0 gene_id "RAB22A"; transcript_id "NM_020673:uc002xyz.3";
+chr20 hg19_knownGene exon 56886099 56886178 0.000000 + . gene_id "RAB22A"; transcript_id "NM_020673:uc002xyz.3";
+chr20 hg19_knownGene CDS 56918774 56918855 0.000000 + 1 gene_id "RAB22A"; transcript_id "NM_020673:uc002xyz.3";
+chr20 hg19_knownGene exon 56918774 56918855 0.000000 + . gene_id "RAB22A"; transcript_id "NM_020673:uc002xyz.3";
+chr20 hg19_knownGene CDS 56928329 56928400 0.000000 + 0 gene_id "RAB22A"; transcript_id "NM_020673:uc002xyz.3";
+chr20 hg19_knownGene exon 56928329 56928400 0.000000 + . gene_id "RAB22A"; transcript_id "NM_020673:uc002xyz.3";
+chr20 hg19_knownGene CDS 56928488 56928594 0.000000 + 0 gene_id "RAB22A"; transcript_id "NM_020673:uc002xyz.3";
+chr20 hg19_knownGene exon 56928488 56928594 0.000000 + . gene_id "RAB22A"; transcript_id "NM_020673:uc002xyz.3";
+chr20 hg19_knownGene CDS 56929212 56929321 0.000000 + 1 gene_id "RAB22A"; transcript_id "NM_020673:uc002xyz.3";
+chr20 hg19_knownGene exon 56929212 56929321 0.000000 + . gene_id "RAB22A"; transcript_id "NM_020673:uc002xyz.3";
+chr20 hg19_knownGene CDS 56934662 56934756 0.000000 + 2 gene_id "RAB22A"; transcript_id "NM_020673:uc002xyz.3";
+chr20 hg19_knownGene exon 56934662 56942563 0.000000 + . gene_id "RAB22A"; transcript_id "NM_020673:uc002xyz.3";
+chr20 hg19_knownGene CDS 56964516 56964573 0.000000 + 0 gene_id "VAPB"; transcript_id "NM_004738:uc002xza.3";
+chr20 hg19_knownGene exon 56964175 56964573 0.000000 + . gene_id "VAPB"; transcript_id "NM_004738:uc002xza.3";
+chr20 hg19_knownGene CDS 56993267 56993419 0.000000 + 2 gene_id "VAPB"; transcript_id "NM_004738:uc002xza.3";
+chr20 hg19_knownGene exon 56993267 56993419 0.000000 + . gene_id "VAPB"; transcript_id "NM_004738:uc002xza.3";
+chr20 hg19_knownGene CDS 57009658 57009761 0.000000 + 2 gene_id "VAPB"; transcript_id "NM_004738:uc002xza.3";
+chr20 hg19_knownGene exon 57009658 57009761 0.000000 + . gene_id "VAPB"; transcript_id "NM_004738:uc002xza.3";
+chr20 hg19_knownGene CDS 57014001 57014081 0.000000 + 0 gene_id "VAPB"; transcript_id "NM_004738:uc002xza.3";
+chr20 hg19_knownGene exon 57014001 57014081 0.000000 + . gene_id "VAPB"; transcript_id "NM_004738:uc002xza.3";
+chr20 hg19_knownGene CDS 57015963 57016139 0.000000 + 0 gene_id "VAPB"; transcript_id "NM_004738:uc002xza.3";
+chr20 hg19_knownGene exon 57015963 57016139 0.000000 + . gene_id "VAPB"; transcript_id "NM_004738:uc002xza.3";
+chr20 hg19_knownGene CDS 57019133 57019288 0.000000 + 0 gene_id "VAPB"; transcript_id "NM_004738:uc002xza.3";
+chr20 hg19_knownGene exon 57019133 57026156 0.000000 + . gene_id "VAPB"; transcript_id "NM_004738:uc002xza.3";
+chr20 hg19_knownGene exon 56964175 56964573 0.000000 + . gene_id "VAPB"; transcript_id "NR_036633:uc010zzo.2";
+chr20 hg19_knownGene CDS 56993393 56993419 0.000000 + 0 gene_id "VAPB"; transcript_id "NR_036633:uc010zzo.2";
+chr20 hg19_knownGene exon 56993267 56993419 0.000000 + . gene_id "VAPB"; transcript_id "NR_036633:uc010zzo.2";
+chr20 hg19_knownGene CDS 57015963 57016139 0.000000 + 0 gene_id "VAPB"; transcript_id "NR_036633:uc010zzo.2";
+chr20 hg19_knownGene exon 57015963 57016139 0.000000 + . gene_id "VAPB"; transcript_id "NR_036633:uc010zzo.2";
+chr20 hg19_knownGene CDS 57019133 57019288 0.000000 + 0 gene_id "VAPB"; transcript_id "NR_036633:uc010zzo.2";
+chr20 hg19_knownGene exon 57019133 57026156 0.000000 + . gene_id "VAPB"; transcript_id "NR_036633:uc010zzo.2";
+chr20 hg19_knownGene CDS 56964516 56964573 0.000000 + 0 gene_id "VAPB"; transcript_id "NM_001195677:uc002xzd.2";
+chr20 hg19_knownGene exon 56964175 56964573 0.000000 + . gene_id "VAPB"; transcript_id "NM_001195677:uc002xzd.2";
+chr20 hg19_knownGene CDS 56993267 56993419 0.000000 + 2 gene_id "VAPB"; transcript_id "NM_001195677:uc002xzd.2";
+chr20 hg19_knownGene exon 56993267 56993419 0.000000 + . gene_id "VAPB"; transcript_id "NM_001195677:uc002xzd.2";
+chr20 hg19_knownGene CDS 57019133 57019218 0.000000 + 2 gene_id "VAPB"; transcript_id "NM_001195677:uc002xzd.2";
+chr20 hg19_knownGene exon 57019133 57026156 0.000000 + . gene_id "VAPB"; transcript_id "NM_001195677:uc002xzd.2";
+chr20 hg19_knownGene exon 56964175 56964573 0.000000 + . gene_id "VAPB"; transcript_id "AK127252:uc002xzb.3";
+chr20 hg19_knownGene exon 56965184 56965396 0.000000 + . gene_id "VAPB"; transcript_id "AK127252:uc002xzb.3";
+chr20 hg19_knownGene exon 56993267 56993419 0.000000 + . gene_id "VAPB"; transcript_id "AK127252:uc002xzb.3";
+chr20 hg19_knownGene exon 57014001 57014081 0.000000 + . gene_id "VAPB"; transcript_id "AK127252:uc002xzb.3";
+chr20 hg19_knownGene exon 57015963 57016139 0.000000 + . gene_id "VAPB"; transcript_id "AK127252:uc002xzb.3";
+chr20 hg19_knownGene exon 57019133 57026156 0.000000 + . gene_id "VAPB"; transcript_id "AK127252:uc002xzb.3";
+chr20 hg19_knownGene CDS 57035849 57036610 0.000000 - 0 gene_id "APCDD1L"; transcript_id "NM_153360:uc002xze.1";
+chr20 hg19_knownGene exon 57034426 57036610 0.000000 - . gene_id "APCDD1L"; transcript_id "NM_153360:uc002xze.1";
+chr20 hg19_knownGene CDS 57042162 57042714 0.000000 - 1 gene_id "APCDD1L"; transcript_id "NM_153360:uc002xze.1";
+chr20 hg19_knownGene exon 57042162 57042714 0.000000 - . gene_id "APCDD1L"; transcript_id "NM_153360:uc002xze.1";
+chr20 hg19_knownGene CDS 57045665 57045803 0.000000 - 2 gene_id "APCDD1L"; transcript_id "NM_153360:uc002xze.1";
+chr20 hg19_knownGene exon 57045665 57045803 0.000000 - . gene_id "APCDD1L"; transcript_id "NM_153360:uc002xze.1";
+chr20 hg19_knownGene CDS 57089715 57089763 0.000000 - 0 gene_id "APCDD1L"; transcript_id "NM_153360:uc002xze.1";
+chr20 hg19_knownGene exon 57089715 57089949 0.000000 - . gene_id "APCDD1L"; transcript_id "NM_153360:uc002xze.1";
+chr20 hg19_knownGene CDS 57035849 57036610 0.000000 - 0 gene_id "APCDD1L"; transcript_id "AK293299:uc010zzp.1";
+chr20 hg19_knownGene exon 57034426 57036610 0.000000 - . gene_id "APCDD1L"; transcript_id "AK293299:uc010zzp.1";
+chr20 hg19_knownGene CDS 57042162 57042714 0.000000 - 1 gene_id "APCDD1L"; transcript_id "AK293299:uc010zzp.1";
+chr20 hg19_knownGene exon 57042162 57042714 0.000000 - . gene_id "APCDD1L"; transcript_id "AK293299:uc010zzp.1";
+chr20 hg19_knownGene CDS 57045665 57045803 0.000000 - 2 gene_id "APCDD1L"; transcript_id "AK293299:uc010zzp.1";
+chr20 hg19_knownGene exon 57045665 57045803 0.000000 - . gene_id "APCDD1L"; transcript_id "AK293299:uc010zzp.1";
+chr20 hg19_knownGene CDS 57088873 57088954 0.000000 - 0 gene_id "APCDD1L"; transcript_id "AK293299:uc010zzp.1";
+chr20 hg19_knownGene exon 57088873 57089043 0.000000 - . gene_id "APCDD1L"; transcript_id "AK293299:uc010zzp.1";
+chr20 hg19_knownGene exon 57089715 57089949 0.000000 - . gene_id "APCDD1L"; transcript_id "AK293299:uc010zzp.1";
+chr20 hg19_knownGene exon 57090435 57090796 0.000000 + . gene_id "LOC149773"; transcript_id "AK091704:uc002xzf.1";
+chr20 hg19_knownGene exon 57098225 57098337 0.000000 + . gene_id "LOC149773"; transcript_id "AK091704:uc002xzf.1";
+chr20 hg19_knownGene exon 57098770 57101088 0.000000 + . gene_id "LOC149773"; transcript_id "AK091704:uc002xzf.1";
+chr20 hg19_knownGene exon 57090435 57090796 0.000000 + . gene_id "LOC149773"; transcript_id "NR_034147:uc002xzg.2";
+chr20 hg19_knownGene exon 57094560 57094655 0.000000 + . gene_id "LOC149773"; transcript_id "NR_034147:uc002xzg.2";
+chr20 hg19_knownGene exon 57096446 57096607 0.000000 + . gene_id "LOC149773"; transcript_id "NR_034147:uc002xzg.2";
+chr20 hg19_knownGene exon 57098225 57098337 0.000000 + . gene_id "LOC149773"; transcript_id "NR_034147:uc002xzg.2";
+chr20 hg19_knownGene exon 57098770 57098862 0.000000 + . gene_id "LOC149773"; transcript_id "NR_034147:uc002xzg.2";
+chr20 hg19_knownGene exon 57122868 57122984 0.000000 + . gene_id "LOC149773"; transcript_id "NR_034147:uc002xzg.2";
+chr20 hg19_knownGene exon 57193796 57194948 0.000000 + . gene_id "LOC149773"; transcript_id "NR_034147:uc002xzg.2";
+chr20 hg19_knownGene exon 57226309 57226490 0.000000 + . gene_id "STX16"; transcript_id "NM_001204868:uc021wfi.1";
+chr20 hg19_knownGene exon 57227129 57227194 0.000000 + . gene_id "STX16"; transcript_id "NM_001204868:uc021wfi.1";
+chr20 hg19_knownGene exon 57234679 57234690 0.000000 + . gene_id "STX16"; transcript_id "NM_001204868:uc021wfi.1";
+chr20 hg19_knownGene CDS 57242561 57242653 0.000000 + 0 gene_id "STX16"; transcript_id "NM_001204868:uc021wfi.1";
+chr20 hg19_knownGene exon 57242546 57242653 0.000000 + . gene_id "STX16"; transcript_id "NM_001204868:uc021wfi.1";
+chr20 hg19_knownGene CDS 57243043 57243183 0.000000 + 0 gene_id "STX16"; transcript_id "NM_001204868:uc021wfi.1";
+chr20 hg19_knownGene exon 57243043 57243183 0.000000 + . gene_id "STX16"; transcript_id "NM_001204868:uc021wfi.1";
+chr20 hg19_knownGene CDS 57244347 57244509 0.000000 + 0 gene_id "STX16"; transcript_id "NM_001204868:uc021wfi.1";
+chr20 hg19_knownGene exon 57244347 57244509 0.000000 + . gene_id "STX16"; transcript_id "NM_001204868:uc021wfi.1";
+chr20 hg19_knownGene CDS 57245568 57245659 0.000000 + 2 gene_id "STX16"; transcript_id "NM_001204868:uc021wfi.1";
+chr20 hg19_knownGene exon 57245568 57245659 0.000000 + . gene_id "STX16"; transcript_id "NM_001204868:uc021wfi.1";
+chr20 hg19_knownGene CDS 57246210 57246353 0.000000 + 0 gene_id "STX16"; transcript_id "NM_001204868:uc021wfi.1";
+chr20 hg19_knownGene exon 57246210 57246353 0.000000 + . gene_id "STX16"; transcript_id "NM_001204868:uc021wfi.1";
+chr20 hg19_knownGene CDS 57248687 57248767 0.000000 + 0 gene_id "STX16"; transcript_id "NM_001204868:uc021wfi.1";
+chr20 hg19_knownGene exon 57248687 57248767 0.000000 + . gene_id "STX16"; transcript_id "NM_001204868:uc021wfi.1";
+chr20 hg19_knownGene CDS 57251243 57251344 0.000000 + 0 gene_id "STX16"; transcript_id "NM_001204868:uc021wfi.1";
+chr20 hg19_knownGene exon 57251243 57254582 0.000000 + . gene_id "STX16"; transcript_id "NM_001204868:uc021wfi.1";
+chr20 hg19_knownGene CDS 57227063 57227143 0.000000 + 0 gene_id "STX16"; transcript_id "NM_001134773:uc002xzk.3";
+chr20 hg19_knownGene exon 57226309 57227143 0.000000 + . gene_id "STX16"; transcript_id "NM_001134773:uc002xzk.3";
+chr20 hg19_knownGene CDS 57234679 57234690 0.000000 + 0 gene_id "STX16"; transcript_id "NM_001134773:uc002xzk.3";
+chr20 hg19_knownGene exon 57234679 57234690 0.000000 + . gene_id "STX16"; transcript_id "NM_001134773:uc002xzk.3";
+chr20 hg19_knownGene CDS 57242546 57242653 0.000000 + 0 gene_id "STX16"; transcript_id "NM_001134773:uc002xzk.3";
+chr20 hg19_knownGene exon 57242546 57242653 0.000000 + . gene_id "STX16"; transcript_id "NM_001134773:uc002xzk.3";
+chr20 hg19_knownGene CDS 57243043 57243183 0.000000 + 0 gene_id "STX16"; transcript_id "NM_001134773:uc002xzk.3";
+chr20 hg19_knownGene exon 57243043 57243183 0.000000 + . gene_id "STX16"; transcript_id "NM_001134773:uc002xzk.3";
+chr20 hg19_knownGene CDS 57244347 57244509 0.000000 + 0 gene_id "STX16"; transcript_id "NM_001134773:uc002xzk.3";
+chr20 hg19_knownGene exon 57244347 57244509 0.000000 + . gene_id "STX16"; transcript_id "NM_001134773:uc002xzk.3";
+chr20 hg19_knownGene CDS 57245568 57245659 0.000000 + 2 gene_id "STX16"; transcript_id "NM_001134773:uc002xzk.3";
+chr20 hg19_knownGene exon 57245568 57245659 0.000000 + . gene_id "STX16"; transcript_id "NM_001134773:uc002xzk.3";
+chr20 hg19_knownGene CDS 57246210 57246353 0.000000 + 0 gene_id "STX16"; transcript_id "NM_001134773:uc002xzk.3";
+chr20 hg19_knownGene exon 57246210 57246353 0.000000 + . gene_id "STX16"; transcript_id "NM_001134773:uc002xzk.3";
+chr20 hg19_knownGene CDS 57248687 57248767 0.000000 + 0 gene_id "STX16"; transcript_id "NM_001134773:uc002xzk.3";
+chr20 hg19_knownGene exon 57248687 57248767 0.000000 + . gene_id "STX16"; transcript_id "NM_001134773:uc002xzk.3";
+chr20 hg19_knownGene CDS 57251243 57251344 0.000000 + 0 gene_id "STX16"; transcript_id "NM_001134773:uc002xzk.3";
+chr20 hg19_knownGene exon 57251243 57254582 0.000000 + . gene_id "STX16"; transcript_id "NM_001134773:uc002xzk.3";
+chr20 hg19_knownGene CDS 57227063 57227194 0.000000 + 0 gene_id "STX16"; transcript_id "NM_001001433:uc002xzi.3";
+chr20 hg19_knownGene exon 57226309 57227194 0.000000 + . gene_id "STX16"; transcript_id "NM_001001433:uc002xzi.3";
+chr20 hg19_knownGene CDS 57234679 57234690 0.000000 + 0 gene_id "STX16"; transcript_id "NM_001001433:uc002xzi.3";
+chr20 hg19_knownGene exon 57234679 57234690 0.000000 + . gene_id "STX16"; transcript_id "NM_001001433:uc002xzi.3";
+chr20 hg19_knownGene CDS 57242546 57242653 0.000000 + 0 gene_id "STX16"; transcript_id "NM_001001433:uc002xzi.3";
+chr20 hg19_knownGene exon 57242546 57242653 0.000000 + . gene_id "STX16"; transcript_id "NM_001001433:uc002xzi.3";
+chr20 hg19_knownGene CDS 57243043 57243183 0.000000 + 0 gene_id "STX16"; transcript_id "NM_001001433:uc002xzi.3";
+chr20 hg19_knownGene exon 57243043 57243183 0.000000 + . gene_id "STX16"; transcript_id "NM_001001433:uc002xzi.3";
+chr20 hg19_knownGene CDS 57244347 57244509 0.000000 + 0 gene_id "STX16"; transcript_id "NM_001001433:uc002xzi.3";
+chr20 hg19_knownGene exon 57244347 57244509 0.000000 + . gene_id "STX16"; transcript_id "NM_001001433:uc002xzi.3";
+chr20 hg19_knownGene CDS 57245568 57245659 0.000000 + 2 gene_id "STX16"; transcript_id "NM_001001433:uc002xzi.3";
+chr20 hg19_knownGene exon 57245568 57245659 0.000000 + . gene_id "STX16"; transcript_id "NM_001001433:uc002xzi.3";
+chr20 hg19_knownGene CDS 57246210 57246353 0.000000 + 0 gene_id "STX16"; transcript_id "NM_001001433:uc002xzi.3";
+chr20 hg19_knownGene exon 57246210 57246353 0.000000 + . gene_id "STX16"; transcript_id "NM_001001433:uc002xzi.3";
+chr20 hg19_knownGene CDS 57248687 57248767 0.000000 + 0 gene_id "STX16"; transcript_id "NM_001001433:uc002xzi.3";
+chr20 hg19_knownGene exon 57248687 57248767 0.000000 + . gene_id "STX16"; transcript_id "NM_001001433:uc002xzi.3";
+chr20 hg19_knownGene CDS 57251243 57251344 0.000000 + 0 gene_id "STX16"; transcript_id "NM_001001433:uc002xzi.3";
+chr20 hg19_knownGene exon 57251243 57254582 0.000000 + . gene_id "STX16"; transcript_id "NM_001001433:uc002xzi.3";
+chr20 hg19_knownGene exon 57226309 57226470 0.000000 + . gene_id "STX16"; transcript_id "NR_037942:uc010zzq.2";
+chr20 hg19_knownGene exon 57227129 57227194 0.000000 + . gene_id "STX16"; transcript_id "NR_037942:uc010zzq.2";
+chr20 hg19_knownGene exon 57234679 57234690 0.000000 + . gene_id "STX16"; transcript_id "NR_037942:uc010zzq.2";
+chr20 hg19_knownGene exon 57242546 57242653 0.000000 + . gene_id "STX16"; transcript_id "NR_037942:uc010zzq.2";
+chr20 hg19_knownGene exon 57243043 57243183 0.000000 + . gene_id "STX16"; transcript_id "NR_037942:uc010zzq.2";
+chr20 hg19_knownGene CDS 57245570 57245659 0.000000 + 0 gene_id "STX16"; transcript_id "NR_037942:uc010zzq.2";
+chr20 hg19_knownGene exon 57245568 57245659 0.000000 + . gene_id "STX16"; transcript_id "NR_037942:uc010zzq.2";
+chr20 hg19_knownGene CDS 57246210 57246353 0.000000 + 0 gene_id "STX16"; transcript_id "NR_037942:uc010zzq.2";
+chr20 hg19_knownGene exon 57246210 57246353 0.000000 + . gene_id "STX16"; transcript_id "NR_037942:uc010zzq.2";
+chr20 hg19_knownGene CDS 57248687 57248767 0.000000 + 0 gene_id "STX16"; transcript_id "NR_037942:uc010zzq.2";
+chr20 hg19_knownGene exon 57248687 57248767 0.000000 + . gene_id "STX16"; transcript_id "NR_037942:uc010zzq.2";
+chr20 hg19_knownGene CDS 57251243 57251344 0.000000 + 0 gene_id "STX16"; transcript_id "NR_037942:uc010zzq.2";
+chr20 hg19_knownGene exon 57251243 57254582 0.000000 + . gene_id "STX16"; transcript_id "NR_037942:uc010zzq.2";
+chr20 hg19_knownGene exon 57226309 57227143 0.000000 + . gene_id "STX16"; transcript_id "NR_037941:uc002xzl.3";
+chr20 hg19_knownGene exon 57234679 57234690 0.000000 + . gene_id "STX16"; transcript_id "NR_037941:uc002xzl.3";
+chr20 hg19_knownGene exon 57242546 57242653 0.000000 + . gene_id "STX16"; transcript_id "NR_037941:uc002xzl.3";
+chr20 hg19_knownGene exon 57243043 57243183 0.000000 + . gene_id "STX16"; transcript_id "NR_037941:uc002xzl.3";
+chr20 hg19_knownGene CDS 57245570 57245659 0.000000 + 0 gene_id "STX16"; transcript_id "NR_037941:uc002xzl.3";
+chr20 hg19_knownGene exon 57245568 57245659 0.000000 + . gene_id "STX16"; transcript_id "NR_037941:uc002xzl.3";
+chr20 hg19_knownGene CDS 57246210 57246353 0.000000 + 0 gene_id "STX16"; transcript_id "NR_037941:uc002xzl.3";
+chr20 hg19_knownGene exon 57246210 57246353 0.000000 + . gene_id "STX16"; transcript_id "NR_037941:uc002xzl.3";
+chr20 hg19_knownGene CDS 57248687 57248767 0.000000 + 0 gene_id "STX16"; transcript_id "NR_037941:uc002xzl.3";
+chr20 hg19_knownGene exon 57248687 57248767 0.000000 + . gene_id "STX16"; transcript_id "NR_037941:uc002xzl.3";
+chr20 hg19_knownGene CDS 57251243 57251344 0.000000 + 0 gene_id "STX16"; transcript_id "NR_037941:uc002xzl.3";
+chr20 hg19_knownGene exon 57251243 57254582 0.000000 + . gene_id "STX16"; transcript_id "NR_037941:uc002xzl.3";
+chr20 hg19_knownGene CDS 57227063 57227194 0.000000 + 0 gene_id "STX16"; transcript_id "NM_001134772:uc002xzm.3";
+chr20 hg19_knownGene exon 57226309 57227194 0.000000 + . gene_id "STX16"; transcript_id "NM_001134772:uc002xzm.3";
+chr20 hg19_knownGene CDS 57242546 57242653 0.000000 + 0 gene_id "STX16"; transcript_id "NM_001134772:uc002xzm.3";
+chr20 hg19_knownGene exon 57242546 57242653 0.000000 + . gene_id "STX16"; transcript_id "NM_001134772:uc002xzm.3";
+chr20 hg19_knownGene CDS 57243043 57243183 0.000000 + 0 gene_id "STX16"; transcript_id "NM_001134772:uc002xzm.3";
+chr20 hg19_knownGene exon 57243043 57243183 0.000000 + . gene_id "STX16"; transcript_id "NM_001134772:uc002xzm.3";
+chr20 hg19_knownGene CDS 57244347 57244509 0.000000 + 0 gene_id "STX16"; transcript_id "NM_001134772:uc002xzm.3";
+chr20 hg19_knownGene exon 57244347 57244509 0.000000 + . gene_id "STX16"; transcript_id "NM_001134772:uc002xzm.3";
+chr20 hg19_knownGene CDS 57245568 57245659 0.000000 + 2 gene_id "STX16"; transcript_id "NM_001134772:uc002xzm.3";
+chr20 hg19_knownGene exon 57245568 57245659 0.000000 + . gene_id "STX16"; transcript_id "NM_001134772:uc002xzm.3";
+chr20 hg19_knownGene CDS 57246210 57246353 0.000000 + 0 gene_id "STX16"; transcript_id "NM_001134772:uc002xzm.3";
+chr20 hg19_knownGene exon 57246210 57246353 0.000000 + . gene_id "STX16"; transcript_id "NM_001134772:uc002xzm.3";
+chr20 hg19_knownGene CDS 57248687 57248767 0.000000 + 0 gene_id "STX16"; transcript_id "NM_001134772:uc002xzm.3";
+chr20 hg19_knownGene exon 57248687 57248767 0.000000 + . gene_id "STX16"; transcript_id "NM_001134772:uc002xzm.3";
+chr20 hg19_knownGene CDS 57251243 57251344 0.000000 + 0 gene_id "STX16"; transcript_id "NM_001134772:uc002xzm.3";
+chr20 hg19_knownGene exon 57251243 57254582 0.000000 + . gene_id "STX16"; transcript_id "NM_001134772:uc002xzm.3";
+chr20 hg19_knownGene CDS 57227063 57227143 0.000000 + 0 gene_id "STX16"; transcript_id "NM_003763:uc002xzj.3";
+chr20 hg19_knownGene exon 57226309 57227143 0.000000 + . gene_id "STX16"; transcript_id "NM_003763:uc002xzj.3";
+chr20 hg19_knownGene CDS 57242546 57242653 0.000000 + 0 gene_id "STX16"; transcript_id "NM_003763:uc002xzj.3";
+chr20 hg19_knownGene exon 57242546 57242653 0.000000 + . gene_id "STX16"; transcript_id "NM_003763:uc002xzj.3";
+chr20 hg19_knownGene CDS 57243043 57243183 0.000000 + 0 gene_id "STX16"; transcript_id "NM_003763:uc002xzj.3";
+chr20 hg19_knownGene exon 57243043 57243183 0.000000 + . gene_id "STX16"; transcript_id "NM_003763:uc002xzj.3";
+chr20 hg19_knownGene CDS 57244347 57244509 0.000000 + 0 gene_id "STX16"; transcript_id "NM_003763:uc002xzj.3";
+chr20 hg19_knownGene exon 57244347 57244509 0.000000 + . gene_id "STX16"; transcript_id "NM_003763:uc002xzj.3";
+chr20 hg19_knownGene CDS 57245568 57245659 0.000000 + 2 gene_id "STX16"; transcript_id "NM_003763:uc002xzj.3";
+chr20 hg19_knownGene exon 57245568 57245659 0.000000 + . gene_id "STX16"; transcript_id "NM_003763:uc002xzj.3";
+chr20 hg19_knownGene CDS 57246210 57246353 0.000000 + 0 gene_id "STX16"; transcript_id "NM_003763:uc002xzj.3";
+chr20 hg19_knownGene exon 57246210 57246353 0.000000 + . gene_id "STX16"; transcript_id "NM_003763:uc002xzj.3";
+chr20 hg19_knownGene CDS 57248687 57248767 0.000000 + 0 gene_id "STX16"; transcript_id "NM_003763:uc002xzj.3";
+chr20 hg19_knownGene exon 57248687 57248767 0.000000 + . gene_id "STX16"; transcript_id "NM_003763:uc002xzj.3";
+chr20 hg19_knownGene CDS 57251243 57251344 0.000000 + 0 gene_id "STX16"; transcript_id "NM_003763:uc002xzj.3";
+chr20 hg19_knownGene exon 57251243 57254582 0.000000 + . gene_id "STX16"; transcript_id "NM_003763:uc002xzj.3";
+chr20 hg19_knownGene exon 57226309 57226490 0.000000 + . gene_id "STX16"; transcript_id "NR_037943:uc021wfj.1";
+chr20 hg19_knownGene exon 57227129 57227143 0.000000 + . gene_id "STX16"; transcript_id "NR_037943:uc021wfj.1";
+chr20 hg19_knownGene exon 57242546 57242653 0.000000 + . gene_id "STX16"; transcript_id "NR_037943:uc021wfj.1";
+chr20 hg19_knownGene exon 57243043 57243183 0.000000 + . gene_id "STX16"; transcript_id "NR_037943:uc021wfj.1";
+chr20 hg19_knownGene CDS 57245570 57245659 0.000000 + 0 gene_id "STX16"; transcript_id "NR_037943:uc021wfj.1";
+chr20 hg19_knownGene exon 57245568 57245659 0.000000 + . gene_id "STX16"; transcript_id "NR_037943:uc021wfj.1";
+chr20 hg19_knownGene CDS 57246210 57246353 0.000000 + 0 gene_id "STX16"; transcript_id "NR_037943:uc021wfj.1";
+chr20 hg19_knownGene exon 57246210 57246353 0.000000 + . gene_id "STX16"; transcript_id "NR_037943:uc021wfj.1";
+chr20 hg19_knownGene CDS 57248687 57248767 0.000000 + 0 gene_id "STX16"; transcript_id "NR_037943:uc021wfj.1";
+chr20 hg19_knownGene exon 57248687 57248767 0.000000 + . gene_id "STX16"; transcript_id "NR_037943:uc021wfj.1";
+chr20 hg19_knownGene CDS 57251243 57251344 0.000000 + 0 gene_id "STX16"; transcript_id "NR_037943:uc021wfj.1";
+chr20 hg19_knownGene exon 57251243 57254582 0.000000 + . gene_id "STX16"; transcript_id "NR_037943:uc021wfj.1";
+chr20 hg19_knownGene exon 57268228 57268978 0.000000 + . gene_id "NPEPL1"; transcript_id "AL833971:uc002xzp.3";
+chr20 hg19_knownGene CDS 57269478 57269648 0.000000 + 0 gene_id "NPEPL1"; transcript_id "AL833971:uc002xzp.3";
+chr20 hg19_knownGene exon 57269478 57269648 0.000000 + . gene_id "NPEPL1"; transcript_id "AL833971:uc002xzp.3";
+chr20 hg19_knownGene CDS 57273740 57273829 0.000000 + 0 gene_id "NPEPL1"; transcript_id "AL833971:uc002xzp.3";
+chr20 hg19_knownGene exon 57273740 57273829 0.000000 + . gene_id "NPEPL1"; transcript_id "AL833971:uc002xzp.3";
+chr20 hg19_knownGene CDS 57274253 57274334 0.000000 + 0 gene_id "NPEPL1"; transcript_id "AL833971:uc002xzp.3";
+chr20 hg19_knownGene exon 57274253 57274334 0.000000 + . gene_id "NPEPL1"; transcript_id "AL833971:uc002xzp.3";
+chr20 hg19_knownGene CDS 57276072 57276214 0.000000 + 2 gene_id "NPEPL1"; transcript_id "AL833971:uc002xzp.3";
+chr20 hg19_knownGene exon 57276072 57276214 0.000000 + . gene_id "NPEPL1"; transcript_id "AL833971:uc002xzp.3";
+chr20 hg19_knownGene CDS 57282179 57282256 0.000000 + 0 gene_id "NPEPL1"; transcript_id "AL833971:uc002xzp.3";
+chr20 hg19_knownGene exon 57282179 57282256 0.000000 + . gene_id "NPEPL1"; transcript_id "AL833971:uc002xzp.3";
+chr20 hg19_knownGene CDS 57287535 57287813 0.000000 + 0 gene_id "NPEPL1"; transcript_id "AL833971:uc002xzp.3";
+chr20 hg19_knownGene exon 57287535 57290900 0.000000 + . gene_id "NPEPL1"; transcript_id "AL833971:uc002xzp.3";
+chr20 hg19_knownGene exon 57264187 57264267 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_001204873:uc010zzr.2";
+chr20 hg19_knownGene CDS 57266831 57266836 0.000000 + 0 gene_id "NPEPL1"; transcript_id "NM_001204873:uc010zzr.2";
+chr20 hg19_knownGene exon 57266780 57266836 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_001204873:uc010zzr.2";
+chr20 hg19_knownGene CDS 57268793 57268978 0.000000 + 0 gene_id "NPEPL1"; transcript_id "NM_001204873:uc010zzr.2";
+chr20 hg19_knownGene exon 57268793 57268978 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_001204873:uc010zzr.2";
+chr20 hg19_knownGene CDS 57269478 57269648 0.000000 + 0 gene_id "NPEPL1"; transcript_id "NM_001204873:uc010zzr.2";
+chr20 hg19_knownGene exon 57269478 57269648 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_001204873:uc010zzr.2";
+chr20 hg19_knownGene CDS 57273740 57273829 0.000000 + 0 gene_id "NPEPL1"; transcript_id "NM_001204873:uc010zzr.2";
+chr20 hg19_knownGene exon 57273740 57273829 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_001204873:uc010zzr.2";
+chr20 hg19_knownGene CDS 57274253 57274334 0.000000 + 0 gene_id "NPEPL1"; transcript_id "NM_001204873:uc010zzr.2";
+chr20 hg19_knownGene exon 57274253 57274334 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_001204873:uc010zzr.2";
+chr20 hg19_knownGene CDS 57276072 57276214 0.000000 + 2 gene_id "NPEPL1"; transcript_id "NM_001204873:uc010zzr.2";
+chr20 hg19_knownGene exon 57276072 57276214 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_001204873:uc010zzr.2";
+chr20 hg19_knownGene CDS 57282179 57282256 0.000000 + 0 gene_id "NPEPL1"; transcript_id "NM_001204873:uc010zzr.2";
+chr20 hg19_knownGene exon 57282179 57282256 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_001204873:uc010zzr.2";
+chr20 hg19_knownGene CDS 57287535 57287635 0.000000 + 0 gene_id "NPEPL1"; transcript_id "NM_001204873:uc010zzr.2";
+chr20 hg19_knownGene exon 57287535 57287635 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_001204873:uc010zzr.2";
+chr20 hg19_knownGene CDS 57288476 57288599 0.000000 + 1 gene_id "NPEPL1"; transcript_id "NM_001204873:uc010zzr.2";
+chr20 hg19_knownGene exon 57288476 57288599 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_001204873:uc010zzr.2";
+chr20 hg19_knownGene CDS 57288973 57289149 0.000000 + 0 gene_id "NPEPL1"; transcript_id "NM_001204873:uc010zzr.2";
+chr20 hg19_knownGene exon 57288973 57289149 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_001204873:uc010zzr.2";
+chr20 hg19_knownGene CDS 57289616 57289726 0.000000 + 0 gene_id "NPEPL1"; transcript_id "NM_001204873:uc010zzr.2";
+chr20 hg19_knownGene exon 57289616 57289726 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_001204873:uc010zzr.2";
+chr20 hg19_knownGene CDS 57290224 57290379 0.000000 + 0 gene_id "NPEPL1"; transcript_id "NM_001204873:uc010zzr.2";
+chr20 hg19_knownGene exon 57290224 57291367 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_001204873:uc010zzr.2";
+chr20 hg19_knownGene exon 57264187 57264267 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_001204872:uc010gjo.2";
+chr20 hg19_knownGene CDS 57266821 57266886 0.000000 + 0 gene_id "NPEPL1"; transcript_id "NM_001204872:uc010gjo.2";
+chr20 hg19_knownGene exon 57266780 57266886 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_001204872:uc010gjo.2";
+chr20 hg19_knownGene CDS 57268793 57268978 0.000000 + 0 gene_id "NPEPL1"; transcript_id "NM_001204872:uc010gjo.2";
+chr20 hg19_knownGene exon 57268793 57268978 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_001204872:uc010gjo.2";
+chr20 hg19_knownGene CDS 57269478 57269648 0.000000 + 0 gene_id "NPEPL1"; transcript_id "NM_001204872:uc010gjo.2";
+chr20 hg19_knownGene exon 57269478 57269648 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_001204872:uc010gjo.2";
+chr20 hg19_knownGene CDS 57273740 57273829 0.000000 + 0 gene_id "NPEPL1"; transcript_id "NM_001204872:uc010gjo.2";
+chr20 hg19_knownGene exon 57273740 57273829 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_001204872:uc010gjo.2";
+chr20 hg19_knownGene CDS 57274253 57274334 0.000000 + 0 gene_id "NPEPL1"; transcript_id "NM_001204872:uc010gjo.2";
+chr20 hg19_knownGene exon 57274253 57274334 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_001204872:uc010gjo.2";
+chr20 hg19_knownGene CDS 57276072 57276214 0.000000 + 2 gene_id "NPEPL1"; transcript_id "NM_001204872:uc010gjo.2";
+chr20 hg19_knownGene exon 57276072 57276214 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_001204872:uc010gjo.2";
+chr20 hg19_knownGene CDS 57282179 57282256 0.000000 + 0 gene_id "NPEPL1"; transcript_id "NM_001204872:uc010gjo.2";
+chr20 hg19_knownGene exon 57282179 57282256 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_001204872:uc010gjo.2";
+chr20 hg19_knownGene CDS 57287535 57287635 0.000000 + 0 gene_id "NPEPL1"; transcript_id "NM_001204872:uc010gjo.2";
+chr20 hg19_knownGene exon 57287535 57287635 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_001204872:uc010gjo.2";
+chr20 hg19_knownGene CDS 57288476 57288599 0.000000 + 1 gene_id "NPEPL1"; transcript_id "NM_001204872:uc010gjo.2";
+chr20 hg19_knownGene exon 57288476 57288599 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_001204872:uc010gjo.2";
+chr20 hg19_knownGene CDS 57288973 57289149 0.000000 + 0 gene_id "NPEPL1"; transcript_id "NM_001204872:uc010gjo.2";
+chr20 hg19_knownGene exon 57288973 57289149 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_001204872:uc010gjo.2";
+chr20 hg19_knownGene CDS 57289616 57289726 0.000000 + 0 gene_id "NPEPL1"; transcript_id "NM_001204872:uc010gjo.2";
+chr20 hg19_knownGene exon 57289616 57289726 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_001204872:uc010gjo.2";
+chr20 hg19_knownGene CDS 57290224 57290379 0.000000 + 0 gene_id "NPEPL1"; transcript_id "NM_001204872:uc010gjo.2";
+chr20 hg19_knownGene exon 57290224 57291367 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_001204872:uc010gjo.2";
+chr20 hg19_knownGene CDS 57267957 57268106 0.000000 + 0 gene_id "NPEPL1"; transcript_id "NM_024663:uc010zzs.1";
+chr20 hg19_knownGene exon 57267862 57268106 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_024663:uc010zzs.1";
+chr20 hg19_knownGene CDS 57268793 57268978 0.000000 + 0 gene_id "NPEPL1"; transcript_id "NM_024663:uc010zzs.1";
+chr20 hg19_knownGene exon 57268793 57268978 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_024663:uc010zzs.1";
+chr20 hg19_knownGene CDS 57269478 57269648 0.000000 + 0 gene_id "NPEPL1"; transcript_id "NM_024663:uc010zzs.1";
+chr20 hg19_knownGene exon 57269478 57269648 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_024663:uc010zzs.1";
+chr20 hg19_knownGene CDS 57273740 57273829 0.000000 + 0 gene_id "NPEPL1"; transcript_id "NM_024663:uc010zzs.1";
+chr20 hg19_knownGene exon 57273740 57273829 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_024663:uc010zzs.1";
+chr20 hg19_knownGene CDS 57274253 57274334 0.000000 + 0 gene_id "NPEPL1"; transcript_id "NM_024663:uc010zzs.1";
+chr20 hg19_knownGene exon 57274253 57274334 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_024663:uc010zzs.1";
+chr20 hg19_knownGene CDS 57276072 57276214 0.000000 + 2 gene_id "NPEPL1"; transcript_id "NM_024663:uc010zzs.1";
+chr20 hg19_knownGene exon 57276072 57276214 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_024663:uc010zzs.1";
+chr20 hg19_knownGene CDS 57282179 57282256 0.000000 + 0 gene_id "NPEPL1"; transcript_id "NM_024663:uc010zzs.1";
+chr20 hg19_knownGene exon 57282179 57282256 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_024663:uc010zzs.1";
+chr20 hg19_knownGene CDS 57287535 57287635 0.000000 + 0 gene_id "NPEPL1"; transcript_id "NM_024663:uc010zzs.1";
+chr20 hg19_knownGene exon 57287535 57287635 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_024663:uc010zzs.1";
+chr20 hg19_knownGene CDS 57288476 57288599 0.000000 + 1 gene_id "NPEPL1"; transcript_id "NM_024663:uc010zzs.1";
+chr20 hg19_knownGene exon 57288476 57288599 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_024663:uc010zzs.1";
+chr20 hg19_knownGene CDS 57288973 57289149 0.000000 + 0 gene_id "NPEPL1"; transcript_id "NM_024663:uc010zzs.1";
+chr20 hg19_knownGene exon 57288973 57289149 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_024663:uc010zzs.1";
+chr20 hg19_knownGene CDS 57289616 57289726 0.000000 + 0 gene_id "NPEPL1"; transcript_id "NM_024663:uc010zzs.1";
+chr20 hg19_knownGene exon 57289616 57289726 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_024663:uc010zzs.1";
+chr20 hg19_knownGene CDS 57290224 57290379 0.000000 + 0 gene_id "NPEPL1"; transcript_id "NM_024663:uc010zzs.1";
+chr20 hg19_knownGene exon 57290224 57291367 0.000000 + . gene_id "NPEPL1"; transcript_id "NM_024663:uc010zzs.1";
+chr20 hg19_knownGene exon 57329406 57329478 0.000000 + . gene_id "BC007940"; transcript_id "BC007940:uc002xzq.1";
+chr20 hg19_knownGene exon 57329691 57329820 0.000000 + . gene_id "BC007940"; transcript_id "BC007940:uc002xzq.1";
+chr20 hg19_knownGene exon 57330478 57331891 0.000000 + . gene_id "BC007940"; transcript_id "BC007940:uc002xzq.1";
+chr20 hg19_knownGene exon 57392670 57392749 0.000000 - . gene_id "MIR296"; transcript_id "NR_029844:uc002xzr.1";
+chr20 hg19_knownGene exon 57393281 57393368 0.000000 - . gene_id "MIR298"; transcript_id "NR_030580:uc021wfk.1";
+chr20 hg19_knownGene CDS 57415162 57415896 0.000000 + 0 gene_id "GNAS"; transcript_id "CCDS13471:uc021wfm.1";
+chr20 hg19_knownGene exon 57415162 57415899 0.000000 + . gene_id "GNAS"; transcript_id "CCDS13471:uc021wfm.1";
+chr20 hg19_knownGene exon 57393973 57394310 0.000000 - . gene_id "GNAS-AS1"; transcript_id "NR_002785:uc002xzs.2";
+chr20 hg19_knownGene exon 57416992 57417284 0.000000 - . gene_id "GNAS-AS1"; transcript_id "NR_002785:uc002xzs.2";
+chr20 hg19_knownGene exon 57417488 57417600 0.000000 - . gene_id "GNAS-AS1"; transcript_id "NR_002785:uc002xzs.2";
+chr20 hg19_knownGene exon 57423934 57423972 0.000000 - . gene_id "GNAS-AS1"; transcript_id "NR_002785:uc002xzs.2";
+chr20 hg19_knownGene exon 57425585 57425958 0.000000 - . gene_id "GNAS-AS1"; transcript_id "NR_002785:uc002xzs.2";
+chr20 hg19_knownGene exon 57470252 57470739 0.000000 + . gene_id "AK093534"; transcript_id "AK093534:uc002yac.1";
+chr20 hg19_knownGene exon 57428036 57430388 0.000000 + . gene_id "GNAS"; transcript_id "AJ224867:uc002xzv.3";
+chr20 hg19_knownGene exon 57430609 57430699 0.000000 + . gene_id "GNAS"; transcript_id "AJ224867:uc002xzv.3";
+chr20 hg19_knownGene exon 57431202 57431268 0.000000 + . gene_id "GNAS"; transcript_id "AJ224867:uc002xzv.3";
+chr20 hg19_knownGene exon 57470667 57470739 0.000000 + . gene_id "GNAS"; transcript_id "AJ224867:uc002xzv.3";
+chr20 hg19_knownGene exon 57473996 57474040 0.000000 + . gene_id "GNAS"; transcript_id "AJ224867:uc002xzv.3";
+chr20 hg19_knownGene exon 57475004 57475177 0.000000 + . gene_id "GNAS"; transcript_id "AJ224867:uc002xzv.3";
+chr20 hg19_knownGene CDS 57415162 57415896 0.000000 + 0 gene_id "GNAS"; transcript_id "NM_016592:uc021wfl.1";
+chr20 hg19_knownGene exon 57414795 57415941 0.000000 + . gene_id "GNAS"; transcript_id "NM_016592:uc021wfl.1";
+chr20 hg19_knownGene exon 57470667 57470739 0.000000 + . gene_id "GNAS"; transcript_id "NM_016592:uc021wfl.1";
+chr20 hg19_knownGene exon 57473996 57474040 0.000000 + . gene_id "GNAS"; transcript_id "NM_016592:uc021wfl.1";
+chr20 hg19_knownGene exon 57478583 57478640 0.000000 + . gene_id "GNAS"; transcript_id "NM_016592:uc021wfl.1";
+chr20 hg19_knownGene exon 57478727 57478846 0.000000 + . gene_id "GNAS"; transcript_id "NM_016592:uc021wfl.1";
+chr20 hg19_knownGene exon 57480438 57480535 0.000000 + . gene_id "GNAS"; transcript_id "NM_016592:uc021wfl.1";
+chr20 hg19_knownGene exon 57484217 57484271 0.000000 + . gene_id "GNAS"; transcript_id "NM_016592:uc021wfl.1";
+chr20 hg19_knownGene exon 57484405 57484478 0.000000 + . gene_id "GNAS"; transcript_id "NM_016592:uc021wfl.1";
+chr20 hg19_knownGene exon 57484576 57484634 0.000000 + . gene_id "GNAS"; transcript_id "NM_016592:uc021wfl.1";
+chr20 hg19_knownGene exon 57484739 57484859 0.000000 + . gene_id "GNAS"; transcript_id "NM_016592:uc021wfl.1";
+chr20 hg19_knownGene exon 57485006 57485136 0.000000 + . gene_id "GNAS"; transcript_id "NM_016592:uc021wfl.1";
+chr20 hg19_knownGene exon 57485389 57485456 0.000000 + . gene_id "GNAS"; transcript_id "NM_016592:uc021wfl.1";
+chr20 hg19_knownGene exon 57485738 57486250 0.000000 + . gene_id "GNAS"; transcript_id "NM_016592:uc021wfl.1";
+chr20 hg19_knownGene CDS 57415899 57415941 0.000000 + 0 gene_id "GNAS"; transcript_id "BC036081:uc002xzt.3";
+chr20 hg19_knownGene exon 57414795 57415941 0.000000 + . gene_id "GNAS"; transcript_id "BC036081:uc002xzt.3";
+chr20 hg19_knownGene CDS 57470667 57470739 0.000000 + 2 gene_id "GNAS"; transcript_id "BC036081:uc002xzt.3";
+chr20 hg19_knownGene exon 57470667 57470739 0.000000 + . gene_id "GNAS"; transcript_id "BC036081:uc002xzt.3";
+chr20 hg19_knownGene CDS 57473996 57474040 0.000000 + 1 gene_id "GNAS"; transcript_id "BC036081:uc002xzt.3";
+chr20 hg19_knownGene exon 57473996 57474040 0.000000 + . gene_id "GNAS"; transcript_id "BC036081:uc002xzt.3";
+chr20 hg19_knownGene CDS 57478586 57478640 0.000000 + 1 gene_id "GNAS"; transcript_id "BC036081:uc002xzt.3";
+chr20 hg19_knownGene exon 57478586 57478640 0.000000 + . gene_id "GNAS"; transcript_id "BC036081:uc002xzt.3";
+chr20 hg19_knownGene CDS 57478727 57478846 0.000000 + 0 gene_id "GNAS"; transcript_id "BC036081:uc002xzt.3";
+chr20 hg19_knownGene exon 57478727 57478846 0.000000 + . gene_id "GNAS"; transcript_id "BC036081:uc002xzt.3";
+chr20 hg19_knownGene CDS 57480438 57480535 0.000000 + 0 gene_id "GNAS"; transcript_id "BC036081:uc002xzt.3";
+chr20 hg19_knownGene exon 57480438 57480535 0.000000 + . gene_id "GNAS"; transcript_id "BC036081:uc002xzt.3";
+chr20 hg19_knownGene CDS 57484217 57484271 0.000000 + 1 gene_id "GNAS"; transcript_id "BC036081:uc002xzt.3";
+chr20 hg19_knownGene exon 57484217 57484271 0.000000 + . gene_id "GNAS"; transcript_id "BC036081:uc002xzt.3";
+chr20 hg19_knownGene CDS 57484405 57484478 0.000000 + 0 gene_id "GNAS"; transcript_id "BC036081:uc002xzt.3";
+chr20 hg19_knownGene exon 57484405 57484478 0.000000 + . gene_id "GNAS"; transcript_id "BC036081:uc002xzt.3";
+chr20 hg19_knownGene CDS 57484576 57484634 0.000000 + 1 gene_id "GNAS"; transcript_id "BC036081:uc002xzt.3";
+chr20 hg19_knownGene exon 57484576 57484634 0.000000 + . gene_id "GNAS"; transcript_id "BC036081:uc002xzt.3";
+chr20 hg19_knownGene CDS 57484739 57484859 0.000000 + 2 gene_id "GNAS"; transcript_id "BC036081:uc002xzt.3";
+chr20 hg19_knownGene exon 57484739 57484859 0.000000 + . gene_id "GNAS"; transcript_id "BC036081:uc002xzt.3";
+chr20 hg19_knownGene CDS 57485006 57485136 0.000000 + 1 gene_id "GNAS"; transcript_id "BC036081:uc002xzt.3";
+chr20 hg19_knownGene exon 57485006 57485136 0.000000 + . gene_id "GNAS"; transcript_id "BC036081:uc002xzt.3";
+chr20 hg19_knownGene CDS 57485389 57485456 0.000000 + 2 gene_id "GNAS"; transcript_id "BC036081:uc002xzt.3";
+chr20 hg19_knownGene exon 57485389 57485456 0.000000 + . gene_id "GNAS"; transcript_id "BC036081:uc002xzt.3";
+chr20 hg19_knownGene CDS 57485738 57485881 0.000000 + 0 gene_id "GNAS"; transcript_id "BC036081:uc002xzt.3";
+chr20 hg19_knownGene exon 57485738 57486250 0.000000 + . gene_id "GNAS"; transcript_id "BC036081:uc002xzt.3";
+chr20 hg19_knownGene exon 57416689 57416930 0.000000 + . gene_id "GNAS"; transcript_id "AK315874:uc010gjq.3";
+chr20 hg19_knownGene CDS 57470705 57470739 0.000000 + 0 gene_id "GNAS"; transcript_id "AK315874:uc010gjq.3";
+chr20 hg19_knownGene exon 57470667 57470739 0.000000 + . gene_id "GNAS"; transcript_id "AK315874:uc010gjq.3";
+chr20 hg19_knownGene CDS 57473996 57474040 0.000000 + 1 gene_id "GNAS"; transcript_id "AK315874:uc010gjq.3";
+chr20 hg19_knownGene exon 57473996 57474040 0.000000 + . gene_id "GNAS"; transcript_id "AK315874:uc010gjq.3";
+chr20 hg19_knownGene CDS 57478586 57478640 0.000000 + 1 gene_id "GNAS"; transcript_id "AK315874:uc010gjq.3";
+chr20 hg19_knownGene exon 57478586 57478640 0.000000 + . gene_id "GNAS"; transcript_id "AK315874:uc010gjq.3";
+chr20 hg19_knownGene CDS 57478727 57478846 0.000000 + 0 gene_id "GNAS"; transcript_id "AK315874:uc010gjq.3";
+chr20 hg19_knownGene exon 57478727 57478846 0.000000 + . gene_id "GNAS"; transcript_id "AK315874:uc010gjq.3";
+chr20 hg19_knownGene CDS 57480438 57480535 0.000000 + 0 gene_id "GNAS"; transcript_id "AK315874:uc010gjq.3";
+chr20 hg19_knownGene exon 57480438 57480535 0.000000 + . gene_id "GNAS"; transcript_id "AK315874:uc010gjq.3";
+chr20 hg19_knownGene CDS 57484217 57484271 0.000000 + 1 gene_id "GNAS"; transcript_id "AK315874:uc010gjq.3";
+chr20 hg19_knownGene exon 57484217 57484271 0.000000 + . gene_id "GNAS"; transcript_id "AK315874:uc010gjq.3";
+chr20 hg19_knownGene CDS 57484405 57484478 0.000000 + 0 gene_id "GNAS"; transcript_id "AK315874:uc010gjq.3";
+chr20 hg19_knownGene exon 57484405 57484478 0.000000 + . gene_id "GNAS"; transcript_id "AK315874:uc010gjq.3";
+chr20 hg19_knownGene CDS 57484576 57484634 0.000000 + 1 gene_id "GNAS"; transcript_id "AK315874:uc010gjq.3";
+chr20 hg19_knownGene exon 57484576 57484634 0.000000 + . gene_id "GNAS"; transcript_id "AK315874:uc010gjq.3";
+chr20 hg19_knownGene CDS 57484739 57484859 0.000000 + 2 gene_id "GNAS"; transcript_id "AK315874:uc010gjq.3";
+chr20 hg19_knownGene exon 57484739 57484859 0.000000 + . gene_id "GNAS"; transcript_id "AK315874:uc010gjq.3";
+chr20 hg19_knownGene CDS 57485006 57485136 0.000000 + 1 gene_id "GNAS"; transcript_id "AK315874:uc010gjq.3";
+chr20 hg19_knownGene exon 57485006 57485136 0.000000 + . gene_id "GNAS"; transcript_id "AK315874:uc010gjq.3";
+chr20 hg19_knownGene CDS 57485389 57485456 0.000000 + 2 gene_id "GNAS"; transcript_id "AK315874:uc010gjq.3";
+chr20 hg19_knownGene exon 57485389 57485456 0.000000 + . gene_id "GNAS"; transcript_id "AK315874:uc010gjq.3";
+chr20 hg19_knownGene CDS 57485738 57485881 0.000000 + 0 gene_id "GNAS"; transcript_id "AK315874:uc010gjq.3";
+chr20 hg19_knownGene exon 57485738 57486250 0.000000 + . gene_id "GNAS"; transcript_id "AK315874:uc010gjq.3";
+chr20 hg19_knownGene CDS 57428321 57430388 0.000000 + 0 gene_id "GNAS"; transcript_id "NM_080425:uc002xzw.3";
+chr20 hg19_knownGene exon 57428036 57430388 0.000000 + . gene_id "GNAS"; transcript_id "NM_080425:uc002xzw.3";
+chr20 hg19_knownGene CDS 57470667 57470739 0.000000 + 2 gene_id "GNAS"; transcript_id "NM_080425:uc002xzw.3";
+chr20 hg19_knownGene exon 57470667 57470739 0.000000 + . gene_id "GNAS"; transcript_id "NM_080425:uc002xzw.3";
+chr20 hg19_knownGene CDS 57473996 57474040 0.000000 + 1 gene_id "GNAS"; transcript_id "NM_080425:uc002xzw.3";
+chr20 hg19_knownGene exon 57473996 57474040 0.000000 + . gene_id "GNAS"; transcript_id "NM_080425:uc002xzw.3";
+chr20 hg19_knownGene CDS 57478586 57478640 0.000000 + 1 gene_id "GNAS"; transcript_id "NM_080425:uc002xzw.3";
+chr20 hg19_knownGene exon 57478586 57478640 0.000000 + . gene_id "GNAS"; transcript_id "NM_080425:uc002xzw.3";
+chr20 hg19_knownGene CDS 57478727 57478846 0.000000 + 0 gene_id "GNAS"; transcript_id "NM_080425:uc002xzw.3";
+chr20 hg19_knownGene exon 57478727 57478846 0.000000 + . gene_id "GNAS"; transcript_id "NM_080425:uc002xzw.3";
+chr20 hg19_knownGene CDS 57480438 57480535 0.000000 + 0 gene_id "GNAS"; transcript_id "NM_080425:uc002xzw.3";
+chr20 hg19_knownGene exon 57480438 57480535 0.000000 + . gene_id "GNAS"; transcript_id "NM_080425:uc002xzw.3";
+chr20 hg19_knownGene CDS 57484217 57484271 0.000000 + 1 gene_id "GNAS"; transcript_id "NM_080425:uc002xzw.3";
+chr20 hg19_knownGene exon 57484217 57484271 0.000000 + . gene_id "GNAS"; transcript_id "NM_080425:uc002xzw.3";
+chr20 hg19_knownGene CDS 57484405 57484478 0.000000 + 0 gene_id "GNAS"; transcript_id "NM_080425:uc002xzw.3";
+chr20 hg19_knownGene exon 57484405 57484478 0.000000 + . gene_id "GNAS"; transcript_id "NM_080425:uc002xzw.3";
+chr20 hg19_knownGene CDS 57484576 57484634 0.000000 + 1 gene_id "GNAS"; transcript_id "NM_080425:uc002xzw.3";
+chr20 hg19_knownGene exon 57484576 57484634 0.000000 + . gene_id "GNAS"; transcript_id "NM_080425:uc002xzw.3";
+chr20 hg19_knownGene CDS 57484739 57484859 0.000000 + 2 gene_id "GNAS"; transcript_id "NM_080425:uc002xzw.3";
+chr20 hg19_knownGene exon 57484739 57484859 0.000000 + . gene_id "GNAS"; transcript_id "NM_080425:uc002xzw.3";
+chr20 hg19_knownGene CDS 57485006 57485136 0.000000 + 1 gene_id "GNAS"; transcript_id "NM_080425:uc002xzw.3";
+chr20 hg19_knownGene exon 57485006 57485136 0.000000 + . gene_id "GNAS"; transcript_id "NM_080425:uc002xzw.3";
+chr20 hg19_knownGene CDS 57485389 57485456 0.000000 + 2 gene_id "GNAS"; transcript_id "NM_080425:uc002xzw.3";
+chr20 hg19_knownGene exon 57485389 57485456 0.000000 + . gene_id "GNAS"; transcript_id "NM_080425:uc002xzw.3";
+chr20 hg19_knownGene CDS 57485738 57485881 0.000000 + 0 gene_id "GNAS"; transcript_id "NM_080425:uc002xzw.3";
+chr20 hg19_knownGene exon 57485738 57486250 0.000000 + . gene_id "GNAS"; transcript_id "NM_080425:uc002xzw.3";
+chr20 hg19_knownGene exon 57464180 57464408 0.000000 + . gene_id "GNAS"; transcript_id "NR_003259:uc002xzx.3";
+chr20 hg19_knownGene CDS 57470705 57470739 0.000000 + 0 gene_id "GNAS"; transcript_id "NR_003259:uc002xzx.3";
+chr20 hg19_knownGene exon 57470667 57470739 0.000000 + . gene_id "GNAS"; transcript_id "NR_003259:uc002xzx.3";
+chr20 hg19_knownGene CDS 57473996 57474040 0.000000 + 1 gene_id "GNAS"; transcript_id "NR_003259:uc002xzx.3";
+chr20 hg19_knownGene exon 57473996 57474040 0.000000 + . gene_id "GNAS"; transcript_id "NR_003259:uc002xzx.3";
+chr20 hg19_knownGene CDS 57478586 57478640 0.000000 + 1 gene_id "GNAS"; transcript_id "NR_003259:uc002xzx.3";
+chr20 hg19_knownGene exon 57478586 57478640 0.000000 + . gene_id "GNAS"; transcript_id "NR_003259:uc002xzx.3";
+chr20 hg19_knownGene CDS 57478727 57478846 0.000000 + 0 gene_id "GNAS"; transcript_id "NR_003259:uc002xzx.3";
+chr20 hg19_knownGene exon 57478727 57478846 0.000000 + . gene_id "GNAS"; transcript_id "NR_003259:uc002xzx.3";
+chr20 hg19_knownGene CDS 57480438 57480535 0.000000 + 0 gene_id "GNAS"; transcript_id "NR_003259:uc002xzx.3";
+chr20 hg19_knownGene exon 57480438 57480535 0.000000 + . gene_id "GNAS"; transcript_id "NR_003259:uc002xzx.3";
+chr20 hg19_knownGene CDS 57484217 57484271 0.000000 + 1 gene_id "GNAS"; transcript_id "NR_003259:uc002xzx.3";
+chr20 hg19_knownGene exon 57484217 57484271 0.000000 + . gene_id "GNAS"; transcript_id "NR_003259:uc002xzx.3";
+chr20 hg19_knownGene CDS 57484405 57484478 0.000000 + 0 gene_id "GNAS"; transcript_id "NR_003259:uc002xzx.3";
+chr20 hg19_knownGene exon 57484405 57484478 0.000000 + . gene_id "GNAS"; transcript_id "NR_003259:uc002xzx.3";
+chr20 hg19_knownGene CDS 57484576 57484634 0.000000 + 1 gene_id "GNAS"; transcript_id "NR_003259:uc002xzx.3";
+chr20 hg19_knownGene exon 57484576 57484634 0.000000 + . gene_id "GNAS"; transcript_id "NR_003259:uc002xzx.3";
+chr20 hg19_knownGene CDS 57484739 57484859 0.000000 + 2 gene_id "GNAS"; transcript_id "NR_003259:uc002xzx.3";
+chr20 hg19_knownGene exon 57484739 57484859 0.000000 + . gene_id "GNAS"; transcript_id "NR_003259:uc002xzx.3";
+chr20 hg19_knownGene CDS 57485006 57485136 0.000000 + 1 gene_id "GNAS"; transcript_id "NR_003259:uc002xzx.3";
+chr20 hg19_knownGene exon 57485006 57485136 0.000000 + . gene_id "GNAS"; transcript_id "NR_003259:uc002xzx.3";
+chr20 hg19_knownGene CDS 57485389 57485456 0.000000 + 2 gene_id "GNAS"; transcript_id "NR_003259:uc002xzx.3";
+chr20 hg19_knownGene exon 57485389 57485456 0.000000 + . gene_id "GNAS"; transcript_id "NR_003259:uc002xzx.3";
+chr20 hg19_knownGene CDS 57485738 57485881 0.000000 + 0 gene_id "GNAS"; transcript_id "NR_003259:uc002xzx.3";
+chr20 hg19_knownGene exon 57485738 57486250 0.000000 + . gene_id "GNAS"; transcript_id "NR_003259:uc002xzx.3";
+chr20 hg19_knownGene CDS 57466782 57466920 0.000000 + 0 gene_id "GNAS"; transcript_id "NM_000516:uc021wfn.1";
+chr20 hg19_knownGene exon 57466426 57466920 0.000000 + . gene_id "GNAS"; transcript_id "NM_000516:uc021wfn.1";
+chr20 hg19_knownGene CDS 57470667 57470739 0.000000 + 2 gene_id "GNAS"; transcript_id "NM_000516:uc021wfn.1";
+chr20 hg19_knownGene exon 57470667 57470739 0.000000 + . gene_id "GNAS"; transcript_id "NM_000516:uc021wfn.1";
+chr20 hg19_knownGene CDS 57473996 57474040 0.000000 + 1 gene_id "GNAS"; transcript_id "NM_000516:uc021wfn.1";
+chr20 hg19_knownGene exon 57473996 57474040 0.000000 + . gene_id "GNAS"; transcript_id "NM_000516:uc021wfn.1";
+chr20 hg19_knownGene CDS 57478586 57478640 0.000000 + 1 gene_id "GNAS"; transcript_id "NM_000516:uc021wfn.1";
+chr20 hg19_knownGene exon 57478586 57478640 0.000000 + . gene_id "GNAS"; transcript_id "NM_000516:uc021wfn.1";
+chr20 hg19_knownGene CDS 57478727 57478846 0.000000 + 0 gene_id "GNAS"; transcript_id "NM_000516:uc021wfn.1";
+chr20 hg19_knownGene exon 57478727 57478846 0.000000 + . gene_id "GNAS"; transcript_id "NM_000516:uc021wfn.1";
+chr20 hg19_knownGene CDS 57480438 57480535 0.000000 + 0 gene_id "GNAS"; transcript_id "NM_000516:uc021wfn.1";
+chr20 hg19_knownGene exon 57480438 57480535 0.000000 + . gene_id "GNAS"; transcript_id "NM_000516:uc021wfn.1";
+chr20 hg19_knownGene CDS 57484217 57484271 0.000000 + 1 gene_id "GNAS"; transcript_id "NM_000516:uc021wfn.1";
+chr20 hg19_knownGene exon 57484217 57484271 0.000000 + . gene_id "GNAS"; transcript_id "NM_000516:uc021wfn.1";
+chr20 hg19_knownGene CDS 57484405 57484478 0.000000 + 0 gene_id "GNAS"; transcript_id "NM_000516:uc021wfn.1";
+chr20 hg19_knownGene exon 57484405 57484478 0.000000 + . gene_id "GNAS"; transcript_id "NM_000516:uc021wfn.1";
+chr20 hg19_knownGene CDS 57484576 57484634 0.000000 + 1 gene_id "GNAS"; transcript_id "NM_000516:uc021wfn.1";
+chr20 hg19_knownGene exon 57484576 57484634 0.000000 + . gene_id "GNAS"; transcript_id "NM_000516:uc021wfn.1";
+chr20 hg19_knownGene CDS 57484739 57484859 0.000000 + 2 gene_id "GNAS"; transcript_id "NM_000516:uc021wfn.1";
+chr20 hg19_knownGene exon 57484739 57484859 0.000000 + . gene_id "GNAS"; transcript_id "NM_000516:uc021wfn.1";
+chr20 hg19_knownGene CDS 57485006 57485136 0.000000 + 1 gene_id "GNAS"; transcript_id "NM_000516:uc021wfn.1";
+chr20 hg19_knownGene exon 57485006 57485136 0.000000 + . gene_id "GNAS"; transcript_id "NM_000516:uc021wfn.1";
+chr20 hg19_knownGene CDS 57485389 57485456 0.000000 + 2 gene_id "GNAS"; transcript_id "NM_000516:uc021wfn.1";
+chr20 hg19_knownGene exon 57485389 57485456 0.000000 + . gene_id "GNAS"; transcript_id "NM_000516:uc021wfn.1";
+chr20 hg19_knownGene CDS 57485738 57485881 0.000000 + 0 gene_id "GNAS"; transcript_id "NM_000516:uc021wfn.1";
+chr20 hg19_knownGene exon 57485738 57486250 0.000000 + . gene_id "GNAS"; transcript_id "NM_000516:uc021wfn.1";
+chr20 hg19_knownGene CDS 57466782 57466920 0.000000 + 0 gene_id "GNAS"; transcript_id "NM_001077488:uc021wfo.1";
+chr20 hg19_knownGene exon 57466426 57466920 0.000000 + . gene_id "GNAS"; transcript_id "NM_001077488:uc021wfo.1";
+chr20 hg19_knownGene CDS 57470667 57470739 0.000000 + 2 gene_id "GNAS"; transcript_id "NM_001077488:uc021wfo.1";
+chr20 hg19_knownGene exon 57470667 57470739 0.000000 + . gene_id "GNAS"; transcript_id "NM_001077488:uc021wfo.1";
+chr20 hg19_knownGene CDS 57473996 57474040 0.000000 + 1 gene_id "GNAS"; transcript_id "NM_001077488:uc021wfo.1";
+chr20 hg19_knownGene exon 57473996 57474040 0.000000 + . gene_id "GNAS"; transcript_id "NM_001077488:uc021wfo.1";
+chr20 hg19_knownGene CDS 57478583 57478640 0.000000 + 1 gene_id "GNAS"; transcript_id "NM_001077488:uc021wfo.1";
+chr20 hg19_knownGene exon 57478583 57478640 0.000000 + . gene_id "GNAS"; transcript_id "NM_001077488:uc021wfo.1";
+chr20 hg19_knownGene CDS 57478727 57478846 0.000000 + 0 gene_id "GNAS"; transcript_id "NM_001077488:uc021wfo.1";
+chr20 hg19_knownGene exon 57478727 57478846 0.000000 + . gene_id "GNAS"; transcript_id "NM_001077488:uc021wfo.1";
+chr20 hg19_knownGene CDS 57480438 57480535 0.000000 + 0 gene_id "GNAS"; transcript_id "NM_001077488:uc021wfo.1";
+chr20 hg19_knownGene exon 57480438 57480535 0.000000 + . gene_id "GNAS"; transcript_id "NM_001077488:uc021wfo.1";
+chr20 hg19_knownGene CDS 57484217 57484271 0.000000 + 1 gene_id "GNAS"; transcript_id "NM_001077488:uc021wfo.1";
+chr20 hg19_knownGene exon 57484217 57484271 0.000000 + . gene_id "GNAS"; transcript_id "NM_001077488:uc021wfo.1";
+chr20 hg19_knownGene CDS 57484405 57484478 0.000000 + 0 gene_id "GNAS"; transcript_id "NM_001077488:uc021wfo.1";
+chr20 hg19_knownGene exon 57484405 57484478 0.000000 + . gene_id "GNAS"; transcript_id "NM_001077488:uc021wfo.1";
+chr20 hg19_knownGene CDS 57484576 57484634 0.000000 + 1 gene_id "GNAS"; transcript_id "NM_001077488:uc021wfo.1";
+chr20 hg19_knownGene exon 57484576 57484634 0.000000 + . gene_id "GNAS"; transcript_id "NM_001077488:uc021wfo.1";
+chr20 hg19_knownGene CDS 57484739 57484859 0.000000 + 2 gene_id "GNAS"; transcript_id "NM_001077488:uc021wfo.1";
+chr20 hg19_knownGene exon 57484739 57484859 0.000000 + . gene_id "GNAS"; transcript_id "NM_001077488:uc021wfo.1";
+chr20 hg19_knownGene CDS 57485006 57485136 0.000000 + 1 gene_id "GNAS"; transcript_id "NM_001077488:uc021wfo.1";
+chr20 hg19_knownGene exon 57485006 57485136 0.000000 + . gene_id "GNAS"; transcript_id "NM_001077488:uc021wfo.1";
+chr20 hg19_knownGene CDS 57485389 57485456 0.000000 + 2 gene_id "GNAS"; transcript_id "NM_001077488:uc021wfo.1";
+chr20 hg19_knownGene exon 57485389 57485456 0.000000 + . gene_id "GNAS"; transcript_id "NM_001077488:uc021wfo.1";
+chr20 hg19_knownGene CDS 57485738 57485881 0.000000 + 0 gene_id "GNAS"; transcript_id "NM_001077488:uc021wfo.1";
+chr20 hg19_knownGene exon 57485738 57486250 0.000000 + . gene_id "GNAS"; transcript_id "NM_001077488:uc021wfo.1";
+chr20 hg19_knownGene CDS 57466782 57466920 0.000000 + 0 gene_id "GNAS"; transcript_id "NM_001077489:uc002yaa.3";
+chr20 hg19_knownGene exon 57466426 57466920 0.000000 + . gene_id "GNAS"; transcript_id "NM_001077489:uc002yaa.3";
+chr20 hg19_knownGene CDS 57470667 57470739 0.000000 + 2 gene_id "GNAS"; transcript_id "NM_001077489:uc002yaa.3";
+chr20 hg19_knownGene exon 57470667 57470739 0.000000 + . gene_id "GNAS"; transcript_id "NM_001077489:uc002yaa.3";
+chr20 hg19_knownGene CDS 57478586 57478640 0.000000 + 1 gene_id "GNAS"; transcript_id "NM_001077489:uc002yaa.3";
+chr20 hg19_knownGene exon 57478586 57478640 0.000000 + . gene_id "GNAS"; transcript_id "NM_001077489:uc002yaa.3";
+chr20 hg19_knownGene CDS 57478727 57478846 0.000000 + 0 gene_id "GNAS"; transcript_id "NM_001077489:uc002yaa.3";
+chr20 hg19_knownGene exon 57478727 57478846 0.000000 + . gene_id "GNAS"; transcript_id "NM_001077489:uc002yaa.3";
+chr20 hg19_knownGene CDS 57480438 57480535 0.000000 + 0 gene_id "GNAS"; transcript_id "NM_001077489:uc002yaa.3";
+chr20 hg19_knownGene exon 57480438 57480535 0.000000 + . gene_id "GNAS"; transcript_id "NM_001077489:uc002yaa.3";
+chr20 hg19_knownGene CDS 57484217 57484271 0.000000 + 1 gene_id "GNAS"; transcript_id "NM_001077489:uc002yaa.3";
+chr20 hg19_knownGene exon 57484217 57484271 0.000000 + . gene_id "GNAS"; transcript_id "NM_001077489:uc002yaa.3";
+chr20 hg19_knownGene CDS 57484405 57484478 0.000000 + 0 gene_id "GNAS"; transcript_id "NM_001077489:uc002yaa.3";
+chr20 hg19_knownGene exon 57484405 57484478 0.000000 + . gene_id "GNAS"; transcript_id "NM_001077489:uc002yaa.3";
+chr20 hg19_knownGene CDS 57484576 57484634 0.000000 + 1 gene_id "GNAS"; transcript_id "NM_001077489:uc002yaa.3";
+chr20 hg19_knownGene exon 57484576 57484634 0.000000 + . gene_id "GNAS"; transcript_id "NM_001077489:uc002yaa.3";
+chr20 hg19_knownGene CDS 57484739 57484859 0.000000 + 2 gene_id "GNAS"; transcript_id "NM_001077489:uc002yaa.3";
+chr20 hg19_knownGene exon 57484739 57484859 0.000000 + . gene_id "GNAS"; transcript_id "NM_001077489:uc002yaa.3";
+chr20 hg19_knownGene CDS 57485006 57485136 0.000000 + 1 gene_id "GNAS"; transcript_id "NM_001077489:uc002yaa.3";
+chr20 hg19_knownGene exon 57485006 57485136 0.000000 + . gene_id "GNAS"; transcript_id "NM_001077489:uc002yaa.3";
+chr20 hg19_knownGene CDS 57485389 57485456 0.000000 + 2 gene_id "GNAS"; transcript_id "NM_001077489:uc002yaa.3";
+chr20 hg19_knownGene exon 57485389 57485456 0.000000 + . gene_id "GNAS"; transcript_id "NM_001077489:uc002yaa.3";
+chr20 hg19_knownGene CDS 57485738 57485881 0.000000 + 0 gene_id "GNAS"; transcript_id "NM_001077489:uc002yaa.3";
+chr20 hg19_knownGene exon 57485738 57486250 0.000000 + . gene_id "GNAS"; transcript_id "NM_001077489:uc002yaa.3";
+chr20 hg19_knownGene CDS 57466782 57466920 0.000000 + 0 gene_id "GNAS"; transcript_id "NM_080426:uc021wfp.1";
+chr20 hg19_knownGene exon 57466426 57466920 0.000000 + . gene_id "GNAS"; transcript_id "NM_080426:uc021wfp.1";
+chr20 hg19_knownGene CDS 57470667 57470739 0.000000 + 2 gene_id "GNAS"; transcript_id "NM_080426:uc021wfp.1";
+chr20 hg19_knownGene exon 57470667 57470739 0.000000 + . gene_id "GNAS"; transcript_id "NM_080426:uc021wfp.1";
+chr20 hg19_knownGene CDS 57478583 57478640 0.000000 + 1 gene_id "GNAS"; transcript_id "NM_080426:uc021wfp.1";
+chr20 hg19_knownGene exon 57478583 57478640 0.000000 + . gene_id "GNAS"; transcript_id "NM_080426:uc021wfp.1";
+chr20 hg19_knownGene CDS 57478727 57478846 0.000000 + 0 gene_id "GNAS"; transcript_id "NM_080426:uc021wfp.1";
+chr20 hg19_knownGene exon 57478727 57478846 0.000000 + . gene_id "GNAS"; transcript_id "NM_080426:uc021wfp.1";
+chr20 hg19_knownGene CDS 57480438 57480535 0.000000 + 0 gene_id "GNAS"; transcript_id "NM_080426:uc021wfp.1";
+chr20 hg19_knownGene exon 57480438 57480535 0.000000 + . gene_id "GNAS"; transcript_id "NM_080426:uc021wfp.1";
+chr20 hg19_knownGene CDS 57484217 57484271 0.000000 + 1 gene_id "GNAS"; transcript_id "NM_080426:uc021wfp.1";
+chr20 hg19_knownGene exon 57484217 57484271 0.000000 + . gene_id "GNAS"; transcript_id "NM_080426:uc021wfp.1";
+chr20 hg19_knownGene CDS 57484405 57484478 0.000000 + 0 gene_id "GNAS"; transcript_id "NM_080426:uc021wfp.1";
+chr20 hg19_knownGene exon 57484405 57484478 0.000000 + . gene_id "GNAS"; transcript_id "NM_080426:uc021wfp.1";
+chr20 hg19_knownGene CDS 57484576 57484634 0.000000 + 1 gene_id "GNAS"; transcript_id "NM_080426:uc021wfp.1";
+chr20 hg19_knownGene exon 57484576 57484634 0.000000 + . gene_id "GNAS"; transcript_id "NM_080426:uc021wfp.1";
+chr20 hg19_knownGene CDS 57484739 57484859 0.000000 + 2 gene_id "GNAS"; transcript_id "NM_080426:uc021wfp.1";
+chr20 hg19_knownGene exon 57484739 57484859 0.000000 + . gene_id "GNAS"; transcript_id "NM_080426:uc021wfp.1";
+chr20 hg19_knownGene CDS 57485006 57485136 0.000000 + 1 gene_id "GNAS"; transcript_id "NM_080426:uc021wfp.1";
+chr20 hg19_knownGene exon 57485006 57485136 0.000000 + . gene_id "GNAS"; transcript_id "NM_080426:uc021wfp.1";
+chr20 hg19_knownGene CDS 57485389 57485456 0.000000 + 2 gene_id "GNAS"; transcript_id "NM_080426:uc021wfp.1";
+chr20 hg19_knownGene exon 57485389 57485456 0.000000 + . gene_id "GNAS"; transcript_id "NM_080426:uc021wfp.1";
+chr20 hg19_knownGene CDS 57485738 57485881 0.000000 + 0 gene_id "GNAS"; transcript_id "NM_080426:uc021wfp.1";
+chr20 hg19_knownGene exon 57485738 57486250 0.000000 + . gene_id "GNAS"; transcript_id "NM_080426:uc021wfp.1";
+chr20 hg19_knownGene exon 57472495 57474040 0.000000 + . gene_id "GNAS"; transcript_id "AK054862:uc002yad.3";
+chr20 hg19_knownGene exon 57478586 57478640 0.000000 + . gene_id "GNAS"; transcript_id "AK054862:uc002yad.3";
+chr20 hg19_knownGene CDS 57478742 57478846 0.000000 + 0 gene_id "GNAS"; transcript_id "AK054862:uc002yad.3";
+chr20 hg19_knownGene exon 57478727 57478846 0.000000 + . gene_id "GNAS"; transcript_id "AK054862:uc002yad.3";
+chr20 hg19_knownGene CDS 57480438 57480535 0.000000 + 0 gene_id "GNAS"; transcript_id "AK054862:uc002yad.3";
+chr20 hg19_knownGene exon 57480438 57480535 0.000000 + . gene_id "GNAS"; transcript_id "AK054862:uc002yad.3";
+chr20 hg19_knownGene CDS 57484217 57484271 0.000000 + 1 gene_id "GNAS"; transcript_id "AK054862:uc002yad.3";
+chr20 hg19_knownGene exon 57484217 57484271 0.000000 + . gene_id "GNAS"; transcript_id "AK054862:uc002yad.3";
+chr20 hg19_knownGene CDS 57484405 57484478 0.000000 + 0 gene_id "GNAS"; transcript_id "AK054862:uc002yad.3";
+chr20 hg19_knownGene exon 57484405 57484478 0.000000 + . gene_id "GNAS"; transcript_id "AK054862:uc002yad.3";
+chr20 hg19_knownGene CDS 57484576 57484634 0.000000 + 1 gene_id "GNAS"; transcript_id "AK054862:uc002yad.3";
+chr20 hg19_knownGene exon 57484576 57484634 0.000000 + . gene_id "GNAS"; transcript_id "AK054862:uc002yad.3";
+chr20 hg19_knownGene CDS 57484739 57484859 0.000000 + 2 gene_id "GNAS"; transcript_id "AK054862:uc002yad.3";
+chr20 hg19_knownGene exon 57484739 57484859 0.000000 + . gene_id "GNAS"; transcript_id "AK054862:uc002yad.3";
+chr20 hg19_knownGene CDS 57485006 57485136 0.000000 + 1 gene_id "GNAS"; transcript_id "AK054862:uc002yad.3";
+chr20 hg19_knownGene exon 57485006 57485136 0.000000 + . gene_id "GNAS"; transcript_id "AK054862:uc002yad.3";
+chr20 hg19_knownGene CDS 57485389 57485456 0.000000 + 2 gene_id "GNAS"; transcript_id "AK054862:uc002yad.3";
+chr20 hg19_knownGene exon 57485389 57485456 0.000000 + . gene_id "GNAS"; transcript_id "AK054862:uc002yad.3";
+chr20 hg19_knownGene CDS 57485738 57485881 0.000000 + 0 gene_id "GNAS"; transcript_id "AK054862:uc002yad.3";
+chr20 hg19_knownGene exon 57485738 57486250 0.000000 + . gene_id "GNAS"; transcript_id "AK054862:uc002yad.3";
+chr20 hg19_knownGene CDS 57478554 57478640 0.000000 + 0 gene_id "GNAS"; transcript_id "AK122771:uc002yae.3";
+chr20 hg19_knownGene exon 57478036 57478640 0.000000 + . gene_id "GNAS"; transcript_id "AK122771:uc002yae.3";
+chr20 hg19_knownGene CDS 57478727 57478846 0.000000 + 0 gene_id "GNAS"; transcript_id "AK122771:uc002yae.3";
+chr20 hg19_knownGene exon 57478727 57478846 0.000000 + . gene_id "GNAS"; transcript_id "AK122771:uc002yae.3";
+chr20 hg19_knownGene CDS 57480438 57480535 0.000000 + 0 gene_id "GNAS"; transcript_id "AK122771:uc002yae.3";
+chr20 hg19_knownGene exon 57480438 57480535 0.000000 + . gene_id "GNAS"; transcript_id "AK122771:uc002yae.3";
+chr20 hg19_knownGene CDS 57484217 57484271 0.000000 + 1 gene_id "GNAS"; transcript_id "AK122771:uc002yae.3";
+chr20 hg19_knownGene exon 57484217 57484271 0.000000 + . gene_id "GNAS"; transcript_id "AK122771:uc002yae.3";
+chr20 hg19_knownGene CDS 57484405 57484478 0.000000 + 0 gene_id "GNAS"; transcript_id "AK122771:uc002yae.3";
+chr20 hg19_knownGene exon 57484405 57484478 0.000000 + . gene_id "GNAS"; transcript_id "AK122771:uc002yae.3";
+chr20 hg19_knownGene CDS 57484576 57484634 0.000000 + 1 gene_id "GNAS"; transcript_id "AK122771:uc002yae.3";
+chr20 hg19_knownGene exon 57484576 57484634 0.000000 + . gene_id "GNAS"; transcript_id "AK122771:uc002yae.3";
+chr20 hg19_knownGene CDS 57484739 57484859 0.000000 + 2 gene_id "GNAS"; transcript_id "AK122771:uc002yae.3";
+chr20 hg19_knownGene exon 57484739 57484859 0.000000 + . gene_id "GNAS"; transcript_id "AK122771:uc002yae.3";
+chr20 hg19_knownGene CDS 57485006 57485136 0.000000 + 1 gene_id "GNAS"; transcript_id "AK122771:uc002yae.3";
+chr20 hg19_knownGene exon 57485006 57485136 0.000000 + . gene_id "GNAS"; transcript_id "AK122771:uc002yae.3";
+chr20 hg19_knownGene CDS 57485389 57485456 0.000000 + 2 gene_id "GNAS"; transcript_id "AK122771:uc002yae.3";
+chr20 hg19_knownGene exon 57485389 57485456 0.000000 + . gene_id "GNAS"; transcript_id "AK122771:uc002yae.3";
+chr20 hg19_knownGene CDS 57485738 57485881 0.000000 + 0 gene_id "GNAS"; transcript_id "AK122771:uc002yae.3";
+chr20 hg19_knownGene exon 57485738 57486250 0.000000 + . gene_id "GNAS"; transcript_id "AK122771:uc002yae.3";
+chr20 hg19_knownGene CDS 57556338 57556424 0.000000 + 0 gene_id "TH1L"; transcript_id "AK304310:uc010zzu.1";
+chr20 hg19_knownGene exon 57556311 57556424 0.000000 + . gene_id "TH1L"; transcript_id "AK304310:uc010zzu.1";
+chr20 hg19_knownGene CDS 57561148 57561263 0.000000 + 0 gene_id "TH1L"; transcript_id "AK304310:uc010zzu.1";
+chr20 hg19_knownGene exon 57561148 57561263 0.000000 + . gene_id "TH1L"; transcript_id "AK304310:uc010zzu.1";
+chr20 hg19_knownGene CDS 57561809 57561918 0.000000 + 1 gene_id "TH1L"; transcript_id "AK304310:uc010zzu.1";
+chr20 hg19_knownGene exon 57561809 57561918 0.000000 + . gene_id "TH1L"; transcript_id "AK304310:uc010zzu.1";
+chr20 hg19_knownGene CDS 57562763 57562872 0.000000 + 2 gene_id "TH1L"; transcript_id "AK304310:uc010zzu.1";
+chr20 hg19_knownGene exon 57562763 57562872 0.000000 + . gene_id "TH1L"; transcript_id "AK304310:uc010zzu.1";
+chr20 hg19_knownGene CDS 57563969 57564076 0.000000 + 0 gene_id "TH1L"; transcript_id "AK304310:uc010zzu.1";
+chr20 hg19_knownGene exon 57563969 57564076 0.000000 + . gene_id "TH1L"; transcript_id "AK304310:uc010zzu.1";
+chr20 hg19_knownGene CDS 57564543 57564794 0.000000 + 0 gene_id "TH1L"; transcript_id "AK304310:uc010zzu.1";
+chr20 hg19_knownGene exon 57564543 57564945 0.000000 + . gene_id "TH1L"; transcript_id "AK304310:uc010zzu.1";
+chr20 hg19_knownGene exon 57556311 57556424 0.000000 + . gene_id "TH1L"; transcript_id "AF161479:uc002yaf.1";
+chr20 hg19_knownGene exon 57561148 57561263 0.000000 + . gene_id "TH1L"; transcript_id "AF161479:uc002yaf.1";
+chr20 hg19_knownGene exon 57561809 57561918 0.000000 + . gene_id "TH1L"; transcript_id "AF161479:uc002yaf.1";
+chr20 hg19_knownGene exon 57562763 57562872 0.000000 + . gene_id "TH1L"; transcript_id "AF161479:uc002yaf.1";
+chr20 hg19_knownGene exon 57563969 57564076 0.000000 + . gene_id "TH1L"; transcript_id "AF161479:uc002yaf.1";
+chr20 hg19_knownGene exon 57564543 57564695 0.000000 + . gene_id "TH1L"; transcript_id "AF161479:uc002yaf.1";
+chr20 hg19_knownGene exon 57564913 57565043 0.000000 + . gene_id "TH1L"; transcript_id "AF161479:uc002yaf.1";
+chr20 hg19_knownGene exon 57565965 57566130 0.000000 + . gene_id "TH1L"; transcript_id "AF161479:uc002yaf.1";
+chr20 hg19_knownGene exon 57566367 57566501 0.000000 + . gene_id "TH1L"; transcript_id "AF161479:uc002yaf.1";
+chr20 hg19_knownGene exon 57566936 57567075 0.000000 + . gene_id "TH1L"; transcript_id "AF161479:uc002yaf.1";
+chr20 hg19_knownGene exon 57568053 57568167 0.000000 + . gene_id "TH1L"; transcript_id "AF161479:uc002yaf.1";
+chr20 hg19_knownGene exon 57568504 57568599 0.000000 + . gene_id "TH1L"; transcript_id "AF161479:uc002yaf.1";
+chr20 hg19_knownGene exon 57568679 57568819 0.000000 + . gene_id "TH1L"; transcript_id "AF161479:uc002yaf.1";
+chr20 hg19_knownGene exon 57569165 57569294 0.000000 + . gene_id "TH1L"; transcript_id "AF161479:uc002yaf.1";
+chr20 hg19_knownGene exon 57569697 57569879 0.000000 + . gene_id "TH1L"; transcript_id "AF161479:uc002yaf.1";
+chr20 hg19_knownGene exon 57569981 57570151 0.000000 + . gene_id "TH1L"; transcript_id "AF161479:uc002yaf.1";
+chr20 hg19_knownGene CDS 57556338 57556424 0.000000 + 0 gene_id "TH1L"; transcript_id "NM_198976:uc002yag.3";
+chr20 hg19_knownGene exon 57556311 57556424 0.000000 + . gene_id "TH1L"; transcript_id "NM_198976:uc002yag.3";
+chr20 hg19_knownGene CDS 57561148 57561263 0.000000 + 0 gene_id "TH1L"; transcript_id "NM_198976:uc002yag.3";
+chr20 hg19_knownGene exon 57561148 57561263 0.000000 + . gene_id "TH1L"; transcript_id "NM_198976:uc002yag.3";
+chr20 hg19_knownGene CDS 57561809 57561918 0.000000 + 1 gene_id "TH1L"; transcript_id "NM_198976:uc002yag.3";
+chr20 hg19_knownGene exon 57561809 57561918 0.000000 + . gene_id "TH1L"; transcript_id "NM_198976:uc002yag.3";
+chr20 hg19_knownGene CDS 57562763 57562872 0.000000 + 2 gene_id "TH1L"; transcript_id "NM_198976:uc002yag.3";
+chr20 hg19_knownGene exon 57562763 57562872 0.000000 + . gene_id "TH1L"; transcript_id "NM_198976:uc002yag.3";
+chr20 hg19_knownGene CDS 57563969 57564076 0.000000 + 0 gene_id "TH1L"; transcript_id "NM_198976:uc002yag.3";
+chr20 hg19_knownGene exon 57563969 57564076 0.000000 + . gene_id "TH1L"; transcript_id "NM_198976:uc002yag.3";
+chr20 hg19_knownGene CDS 57564543 57564695 0.000000 + 0 gene_id "TH1L"; transcript_id "NM_198976:uc002yag.3";
+chr20 hg19_knownGene exon 57564543 57564695 0.000000 + . gene_id "TH1L"; transcript_id "NM_198976:uc002yag.3";
+chr20 hg19_knownGene CDS 57564913 57565043 0.000000 + 0 gene_id "TH1L"; transcript_id "NM_198976:uc002yag.3";
+chr20 hg19_knownGene exon 57564913 57565043 0.000000 + . gene_id "TH1L"; transcript_id "NM_198976:uc002yag.3";
+chr20 hg19_knownGene CDS 57565965 57566130 0.000000 + 1 gene_id "TH1L"; transcript_id "NM_198976:uc002yag.3";
+chr20 hg19_knownGene exon 57565965 57566130 0.000000 + . gene_id "TH1L"; transcript_id "NM_198976:uc002yag.3";
+chr20 hg19_knownGene CDS 57566367 57566501 0.000000 + 0 gene_id "TH1L"; transcript_id "NM_198976:uc002yag.3";
+chr20 hg19_knownGene exon 57566367 57566501 0.000000 + . gene_id "TH1L"; transcript_id "NM_198976:uc002yag.3";
+chr20 hg19_knownGene CDS 57566936 57567075 0.000000 + 0 gene_id "TH1L"; transcript_id "NM_198976:uc002yag.3";
+chr20 hg19_knownGene exon 57566936 57567075 0.000000 + . gene_id "TH1L"; transcript_id "NM_198976:uc002yag.3";
+chr20 hg19_knownGene CDS 57568053 57568167 0.000000 + 1 gene_id "TH1L"; transcript_id "NM_198976:uc002yag.3";
+chr20 hg19_knownGene exon 57568053 57568167 0.000000 + . gene_id "TH1L"; transcript_id "NM_198976:uc002yag.3";
+chr20 hg19_knownGene CDS 57568504 57568599 0.000000 + 0 gene_id "TH1L"; transcript_id "NM_198976:uc002yag.3";
+chr20 hg19_knownGene exon 57568504 57568599 0.000000 + . gene_id "TH1L"; transcript_id "NM_198976:uc002yag.3";
+chr20 hg19_knownGene CDS 57568679 57568819 0.000000 + 0 gene_id "TH1L"; transcript_id "NM_198976:uc002yag.3";
+chr20 hg19_knownGene exon 57568679 57568819 0.000000 + . gene_id "TH1L"; transcript_id "NM_198976:uc002yag.3";
+chr20 hg19_knownGene CDS 57569165 57569294 0.000000 + 0 gene_id "TH1L"; transcript_id "NM_198976:uc002yag.3";
+chr20 hg19_knownGene exon 57569165 57569294 0.000000 + . gene_id "TH1L"; transcript_id "NM_198976:uc002yag.3";
+chr20 hg19_knownGene CDS 57569697 57569728 0.000000 + 2 gene_id "TH1L"; transcript_id "NM_198976:uc002yag.3";
+chr20 hg19_knownGene exon 57569697 57570188 0.000000 + . gene_id "TH1L"; transcript_id "NM_198976:uc002yag.3";
+chr20 hg19_knownGene exon 57572658 57573051 0.000000 - . gene_id "AK310046"; transcript_id "AK310046:uc010gjt.1";
+chr20 hg19_knownGene CDS 57570707 57570814 0.000000 - 0 gene_id "CTSZ"; transcript_id "NM_001336:uc002yai.2";
+chr20 hg19_knownGene exon 57570242 57570814 0.000000 - . gene_id "CTSZ"; transcript_id "NM_001336:uc002yai.2";
+chr20 hg19_knownGene CDS 57571694 57571856 0.000000 - 1 gene_id "CTSZ"; transcript_id "NM_001336:uc002yai.2";
+chr20 hg19_knownGene exon 57571694 57571856 0.000000 - . gene_id "CTSZ"; transcript_id "NM_001336:uc002yai.2";
+chr20 hg19_knownGene CDS 57572658 57572808 0.000000 - 2 gene_id "CTSZ"; transcript_id "NM_001336:uc002yai.2";
+chr20 hg19_knownGene exon 57572658 57572808 0.000000 - . gene_id "CTSZ"; transcript_id "NM_001336:uc002yai.2";
+chr20 hg19_knownGene CDS 57576520 57576699 0.000000 - 2 gene_id "CTSZ"; transcript_id "NM_001336:uc002yai.2";
+chr20 hg19_knownGene exon 57576520 57576699 0.000000 - . gene_id "CTSZ"; transcript_id "NM_001336:uc002yai.2";
+chr20 hg19_knownGene CDS 57581377 57581540 0.000000 - 1 gene_id "CTSZ"; transcript_id "NM_001336:uc002yai.2";
+chr20 hg19_knownGene exon 57581377 57581540 0.000000 - . gene_id "CTSZ"; transcript_id "NM_001336:uc002yai.2";
+chr20 hg19_knownGene CDS 57582041 57582183 0.000000 - 0 gene_id "CTSZ"; transcript_id "NM_001336:uc002yai.2";
+chr20 hg19_knownGene exon 57582041 57582309 0.000000 - . gene_id "CTSZ"; transcript_id "NM_001336:uc002yai.2";
+chr20 hg19_knownGene CDS 57571646 57571856 0.000000 - 1 gene_id "CTSZ"; transcript_id "BC025419:uc002yaj.4";
+chr20 hg19_knownGene exon 57571642 57571856 0.000000 - . gene_id "CTSZ"; transcript_id "BC025419:uc002yaj.4";
+chr20 hg19_knownGene CDS 57572658 57572808 0.000000 - 2 gene_id "CTSZ"; transcript_id "BC025419:uc002yaj.4";
+chr20 hg19_knownGene exon 57572658 57572808 0.000000 - . gene_id "CTSZ"; transcript_id "BC025419:uc002yaj.4";
+chr20 hg19_knownGene CDS 57576520 57576699 0.000000 - 2 gene_id "CTSZ"; transcript_id "BC025419:uc002yaj.4";
+chr20 hg19_knownGene exon 57576520 57576699 0.000000 - . gene_id "CTSZ"; transcript_id "BC025419:uc002yaj.4";
+chr20 hg19_knownGene CDS 57581377 57581540 0.000000 - 1 gene_id "CTSZ"; transcript_id "BC025419:uc002yaj.4";
+chr20 hg19_knownGene exon 57581377 57581540 0.000000 - . gene_id "CTSZ"; transcript_id "BC025419:uc002yaj.4";
+chr20 hg19_knownGene CDS 57582041 57582183 0.000000 - 0 gene_id "CTSZ"; transcript_id "BC025419:uc002yaj.4";
+chr20 hg19_knownGene exon 57582041 57582309 0.000000 - . gene_id "CTSZ"; transcript_id "BC025419:uc002yaj.4";
+chr20 hg19_knownGene CDS 57594578 57594634 0.000000 + 0 gene_id "TUBB1"; transcript_id "NM_030773:uc002yak.3";
+chr20 hg19_knownGene exon 57594309 57594634 0.000000 + . gene_id "TUBB1"; transcript_id "NM_030773:uc002yak.3";
+chr20 hg19_knownGene CDS 57597900 57598008 0.000000 + 0 gene_id "TUBB1"; transcript_id "NM_030773:uc002yak.3";
+chr20 hg19_knownGene exon 57597900 57598008 0.000000 + . gene_id "TUBB1"; transcript_id "NM_030773:uc002yak.3";
+chr20 hg19_knownGene CDS 57598545 57598655 0.000000 + 2 gene_id "TUBB1"; transcript_id "NM_030773:uc002yak.3";
+chr20 hg19_knownGene exon 57598545 57598655 0.000000 + . gene_id "TUBB1"; transcript_id "NM_030773:uc002yak.3";
+chr20 hg19_knownGene CDS 57598760 57599835 0.000000 + 2 gene_id "TUBB1"; transcript_id "NM_030773:uc002yak.3";
+chr20 hg19_knownGene exon 57598760 57601709 0.000000 + . gene_id "TUBB1"; transcript_id "NM_030773:uc002yak.3";
+chr20 hg19_knownGene exon 57603733 57603896 0.000000 - . gene_id "ATP5E"; transcript_id "NM_006886:uc002yal.3";
+chr20 hg19_knownGene CDS 57605364 57605484 0.000000 - 1 gene_id "ATP5E"; transcript_id "NM_006886:uc002yal.3";
+chr20 hg19_knownGene exon 57605358 57605484 0.000000 - . gene_id "ATP5E"; transcript_id "NM_006886:uc002yal.3";
+chr20 hg19_knownGene CDS 57607275 57607306 0.000000 - 0 gene_id "ATP5E"; transcript_id "NM_006886:uc002yal.3";
+chr20 hg19_knownGene exon 57607275 57607422 0.000000 - . gene_id "ATP5E"; transcript_id "NM_006886:uc002yal.3";
+chr20 hg19_knownGene exon 57603733 57603896 0.000000 - . gene_id "SLMO2"; transcript_id "NR_037929:uc021wfq.1";
+chr20 hg19_knownGene exon 57605358 57605484 0.000000 - . gene_id "SLMO2"; transcript_id "NR_037929:uc021wfq.1";
+chr20 hg19_knownGene exon 57610027 57610181 0.000000 - . gene_id "SLMO2"; transcript_id "NR_037929:uc021wfq.1";
+chr20 hg19_knownGene exon 57611526 57611628 0.000000 - . gene_id "SLMO2"; transcript_id "NR_037929:uc021wfq.1";
+chr20 hg19_knownGene exon 57611745 57611815 0.000000 - . gene_id "SLMO2"; transcript_id "NR_037929:uc021wfq.1";
+chr20 hg19_knownGene exon 57612246 57612335 0.000000 - . gene_id "SLMO2"; transcript_id "NR_037929:uc021wfq.1";
+chr20 hg19_knownGene exon 57613521 57613689 0.000000 - . gene_id "SLMO2"; transcript_id "NR_037929:uc021wfq.1";
+chr20 hg19_knownGene exon 57617754 57617901 0.000000 - . gene_id "SLMO2"; transcript_id "NR_037929:uc021wfq.1";
+chr20 hg19_knownGene exon 57603733 57603896 0.000000 - . gene_id "SLMO2-ATP5E"; transcript_id "NR_037930:uc021wfr.1";
+chr20 hg19_knownGene exon 57605358 57605484 0.000000 - . gene_id "SLMO2-ATP5E"; transcript_id "NR_037930:uc021wfr.1";
+chr20 hg19_knownGene exon 57610027 57610181 0.000000 - . gene_id "SLMO2-ATP5E"; transcript_id "NR_037930:uc021wfr.1";
+chr20 hg19_knownGene exon 57611526 57611628 0.000000 - . gene_id "SLMO2-ATP5E"; transcript_id "NR_037930:uc021wfr.1";
+chr20 hg19_knownGene exon 57611745 57611815 0.000000 - . gene_id "SLMO2-ATP5E"; transcript_id "NR_037930:uc021wfr.1";
+chr20 hg19_knownGene exon 57617754 57617901 0.000000 - . gene_id "SLMO2-ATP5E"; transcript_id "NR_037930:uc021wfr.1";
+chr20 hg19_knownGene CDS 57610065 57610181 0.000000 - 0 gene_id "SLMO2"; transcript_id "NM_016045:uc002yam.3";
+chr20 hg19_knownGene exon 57608200 57610181 0.000000 - . gene_id "SLMO2"; transcript_id "NM_016045:uc002yam.3";
+chr20 hg19_knownGene CDS 57611526 57611628 0.000000 - 1 gene_id "SLMO2"; transcript_id "NM_016045:uc002yam.3";
+chr20 hg19_knownGene exon 57611526 57611628 0.000000 - . gene_id "SLMO2"; transcript_id "NM_016045:uc002yam.3";
+chr20 hg19_knownGene CDS 57611745 57611815 0.000000 - 0 gene_id "SLMO2"; transcript_id "NM_016045:uc002yam.3";
+chr20 hg19_knownGene exon 57611745 57611815 0.000000 - . gene_id "SLMO2"; transcript_id "NM_016045:uc002yam.3";
+chr20 hg19_knownGene CDS 57612246 57612335 0.000000 - 0 gene_id "SLMO2"; transcript_id "NM_016045:uc002yam.3";
+chr20 hg19_knownGene exon 57612246 57612335 0.000000 - . gene_id "SLMO2"; transcript_id "NM_016045:uc002yam.3";
+chr20 hg19_knownGene CDS 57613521 57613689 0.000000 - 1 gene_id "SLMO2"; transcript_id "NM_016045:uc002yam.3";
+chr20 hg19_knownGene exon 57613521 57613689 0.000000 - . gene_id "SLMO2"; transcript_id "NM_016045:uc002yam.3";
+chr20 hg19_knownGene CDS 57617754 57617785 0.000000 - 0 gene_id "SLMO2"; transcript_id "NM_016045:uc002yam.3";
+chr20 hg19_knownGene exon 57617754 57617901 0.000000 - . gene_id "SLMO2"; transcript_id "NM_016045:uc002yam.3";
+chr20 hg19_knownGene CDS 57610065 57610181 0.000000 - 0 gene_id "SLMO2"; transcript_id "AK298135:uc010zzv.2";
+chr20 hg19_knownGene exon 57608200 57610181 0.000000 - . gene_id "SLMO2"; transcript_id "AK298135:uc010zzv.2";
+chr20 hg19_knownGene CDS 57611526 57611628 0.000000 - 1 gene_id "SLMO2"; transcript_id "AK298135:uc010zzv.2";
+chr20 hg19_knownGene exon 57611526 57611628 0.000000 - . gene_id "SLMO2"; transcript_id "AK298135:uc010zzv.2";
+chr20 hg19_knownGene CDS 57611745 57611815 0.000000 - 0 gene_id "SLMO2"; transcript_id "AK298135:uc010zzv.2";
+chr20 hg19_knownGene exon 57611745 57611815 0.000000 - . gene_id "SLMO2"; transcript_id "AK298135:uc010zzv.2";
+chr20 hg19_knownGene CDS 57613521 57613689 0.000000 - 1 gene_id "SLMO2"; transcript_id "AK298135:uc010zzv.2";
+chr20 hg19_knownGene exon 57613521 57613689 0.000000 - . gene_id "SLMO2"; transcript_id "AK298135:uc010zzv.2";
+chr20 hg19_knownGene CDS 57617754 57617785 0.000000 - 0 gene_id "SLMO2"; transcript_id "AK298135:uc010zzv.2";
+chr20 hg19_knownGene exon 57617754 57617901 0.000000 - . gene_id "SLMO2"; transcript_id "AK298135:uc010zzv.2";
+chr20 hg19_knownGene CDS 57766075 57769812 0.000000 + 0 gene_id "ZNF831"; transcript_id "NM_178457:uc002yan.3";
+chr20 hg19_knownGene exon 57766075 57769812 0.000000 + . gene_id "ZNF831"; transcript_id "NM_178457:uc002yan.3";
+chr20 hg19_knownGene CDS 57770924 57771060 0.000000 + 0 gene_id "ZNF831"; transcript_id "NM_178457:uc002yan.3";
+chr20 hg19_knownGene exon 57770924 57771060 0.000000 + . gene_id "ZNF831"; transcript_id "NM_178457:uc002yan.3";
+chr20 hg19_knownGene CDS 57781960 57782111 0.000000 + 1 gene_id "ZNF831"; transcript_id "NM_178457:uc002yan.3";
+chr20 hg19_knownGene exon 57781960 57782111 0.000000 + . gene_id "ZNF831"; transcript_id "NM_178457:uc002yan.3";
+chr20 hg19_knownGene CDS 57828033 57828193 0.000000 + 2 gene_id "ZNF831"; transcript_id "NM_178457:uc002yan.3";
+chr20 hg19_knownGene exon 57828033 57828193 0.000000 + . gene_id "ZNF831"; transcript_id "NM_178457:uc002yan.3";
+chr20 hg19_knownGene CDS 57828953 57829795 0.000000 + 0 gene_id "ZNF831"; transcript_id "NM_178457:uc002yan.3";
+chr20 hg19_knownGene exon 57828953 57834167 0.000000 + . gene_id "ZNF831"; transcript_id "NM_178457:uc002yan.3";
+chr20 hg19_knownGene CDS 57875868 57875919 0.000000 + 0 gene_id "EDN3"; transcript_id "DQ096281:uc002yao.1";
+chr20 hg19_knownGene exon 57875499 57875919 0.000000 + . gene_id "EDN3"; transcript_id "DQ096281:uc002yao.1";
+chr20 hg19_knownGene CDS 57876465 57876777 0.000000 + 2 gene_id "EDN3"; transcript_id "DQ096281:uc002yao.1";
+chr20 hg19_knownGene exon 57876465 57876777 0.000000 + . gene_id "EDN3"; transcript_id "DQ096281:uc002yao.1";
+chr20 hg19_knownGene CDS 57896072 57896248 0.000000 + 1 gene_id "EDN3"; transcript_id "DQ096281:uc002yao.1";
+chr20 hg19_knownGene exon 57896072 57896248 0.000000 + . gene_id "EDN3"; transcript_id "DQ096281:uc002yao.1";
+chr20 hg19_knownGene CDS 57899386 57899419 0.000000 + 1 gene_id "EDN3"; transcript_id "DQ096281:uc002yao.1";
+chr20 hg19_knownGene exon 57899386 57899529 0.000000 + . gene_id "EDN3"; transcript_id "DQ096281:uc002yao.1";
+chr20 hg19_knownGene CDS 57875868 57875919 0.000000 + 0 gene_id "EDN3"; transcript_id "NM_000114:uc002yap.3";
+chr20 hg19_knownGene exon 57875499 57875919 0.000000 + . gene_id "EDN3"; transcript_id "NM_000114:uc002yap.3";
+chr20 hg19_knownGene CDS 57876465 57876777 0.000000 + 2 gene_id "EDN3"; transcript_id "NM_000114:uc002yap.3";
+chr20 hg19_knownGene exon 57876465 57876777 0.000000 + . gene_id "EDN3"; transcript_id "NM_000114:uc002yap.3";
+chr20 hg19_knownGene CDS 57896072 57896248 0.000000 + 1 gene_id "EDN3"; transcript_id "NM_000114:uc002yap.3";
+chr20 hg19_knownGene exon 57896072 57896248 0.000000 + . gene_id "EDN3"; transcript_id "NM_000114:uc002yap.3";
+chr20 hg19_knownGene CDS 57897427 57897472 0.000000 + 1 gene_id "EDN3"; transcript_id "NM_000114:uc002yap.3";
+chr20 hg19_knownGene exon 57897427 57897472 0.000000 + . gene_id "EDN3"; transcript_id "NM_000114:uc002yap.3";
+chr20 hg19_knownGene CDS 57899386 57899511 0.000000 + 0 gene_id "EDN3"; transcript_id "NM_000114:uc002yap.3";
+chr20 hg19_knownGene exon 57899386 57899529 0.000000 + . gene_id "EDN3"; transcript_id "NM_000114:uc002yap.3";
+chr20 hg19_knownGene exon 57899751 57901047 0.000000 + . gene_id "EDN3"; transcript_id "NM_000114:uc002yap.3";
+chr20 hg19_knownGene CDS 57875868 57875919 0.000000 + 0 gene_id "EDN3"; transcript_id "NM_207034:uc002yaq.3";
+chr20 hg19_knownGene exon 57875499 57875919 0.000000 + . gene_id "EDN3"; transcript_id "NM_207034:uc002yaq.3";
+chr20 hg19_knownGene CDS 57876465 57876777 0.000000 + 2 gene_id "EDN3"; transcript_id "NM_207034:uc002yaq.3";
+chr20 hg19_knownGene exon 57876465 57876777 0.000000 + . gene_id "EDN3"; transcript_id "NM_207034:uc002yaq.3";
+chr20 hg19_knownGene CDS 57896072 57896248 0.000000 + 1 gene_id "EDN3"; transcript_id "NM_207034:uc002yaq.3";
+chr20 hg19_knownGene exon 57896072 57896248 0.000000 + . gene_id "EDN3"; transcript_id "NM_207034:uc002yaq.3";
+chr20 hg19_knownGene CDS 57897427 57897472 0.000000 + 1 gene_id "EDN3"; transcript_id "NM_207034:uc002yaq.3";
+chr20 hg19_knownGene exon 57897427 57897472 0.000000 + . gene_id "EDN3"; transcript_id "NM_207034:uc002yaq.3";
+chr20 hg19_knownGene CDS 57899386 57899511 0.000000 + 0 gene_id "EDN3"; transcript_id "NM_207034:uc002yaq.3";
+chr20 hg19_knownGene exon 57899386 57901047 0.000000 + . gene_id "EDN3"; transcript_id "NM_207034:uc002yaq.3";
+chr20 hg19_knownGene CDS 57875868 57875919 0.000000 + 0 gene_id "EDN3"; transcript_id "NM_207032:uc002yar.3";
+chr20 hg19_knownGene exon 57875499 57875919 0.000000 + . gene_id "EDN3"; transcript_id "NM_207032:uc002yar.3";
+chr20 hg19_knownGene CDS 57876465 57876777 0.000000 + 2 gene_id "EDN3"; transcript_id "NM_207032:uc002yar.3";
+chr20 hg19_knownGene exon 57876465 57876777 0.000000 + . gene_id "EDN3"; transcript_id "NM_207032:uc002yar.3";
+chr20 hg19_knownGene CDS 57896072 57896248 0.000000 + 1 gene_id "EDN3"; transcript_id "NM_207032:uc002yar.3";
+chr20 hg19_knownGene exon 57896072 57896248 0.000000 + . gene_id "EDN3"; transcript_id "NM_207032:uc002yar.3";
+chr20 hg19_knownGene CDS 57897427 57897507 0.000000 + 1 gene_id "EDN3"; transcript_id "NM_207032:uc002yar.3";
+chr20 hg19_knownGene exon 57897427 57897507 0.000000 + . gene_id "EDN3"; transcript_id "NM_207032:uc002yar.3";
+chr20 hg19_knownGene CDS 57899386 57899419 0.000000 + 1 gene_id "EDN3"; transcript_id "NM_207032:uc002yar.3";
+chr20 hg19_knownGene exon 57899386 57901047 0.000000 + . gene_id "EDN3"; transcript_id "NM_207032:uc002yar.3";
+chr20 hg19_knownGene CDS 57875868 57875919 0.000000 + 0 gene_id "EDN3"; transcript_id "NM_207033:uc002yas.3";
+chr20 hg19_knownGene exon 57875499 57875919 0.000000 + . gene_id "EDN3"; transcript_id "NM_207033:uc002yas.3";
+chr20 hg19_knownGene CDS 57876465 57876777 0.000000 + 2 gene_id "EDN3"; transcript_id "NM_207033:uc002yas.3";
+chr20 hg19_knownGene exon 57876465 57876777 0.000000 + . gene_id "EDN3"; transcript_id "NM_207033:uc002yas.3";
+chr20 hg19_knownGene CDS 57896072 57896248 0.000000 + 1 gene_id "EDN3"; transcript_id "NM_207033:uc002yas.3";
+chr20 hg19_knownGene exon 57896072 57896248 0.000000 + . gene_id "EDN3"; transcript_id "NM_207033:uc002yas.3";
+chr20 hg19_knownGene CDS 57899382 57899511 0.000000 + 1 gene_id "EDN3"; transcript_id "NM_207033:uc002yas.3";
+chr20 hg19_knownGene exon 57899382 57901047 0.000000 + . gene_id "EDN3"; transcript_id "NM_207033:uc002yas.3";
+chr20 hg19_knownGene exon 58201519 58202004 0.000000 - . gene_id "LOC100506384"; transcript_id "NR_040513:uc021wfs.1";
+chr20 hg19_knownGene exon 58203153 58203344 0.000000 - . gene_id "LOC100506384"; transcript_id "NR_040513:uc021wfs.1";
+chr20 hg19_knownGene CDS 58152564 58152672 0.000000 + 0 gene_id "PHACTR3"; transcript_id "NM_001199505:uc002yat.3";
+chr20 hg19_knownGene exon 58152564 58152672 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_001199505:uc002yat.3";
+chr20 hg19_knownGene CDS 58318162 58318323 0.000000 + 2 gene_id "PHACTR3"; transcript_id "NM_001199505:uc002yat.3";
+chr20 hg19_knownGene exon 58318162 58318323 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_001199505:uc002yat.3";
+chr20 hg19_knownGene CDS 58322813 58322890 0.000000 + 2 gene_id "PHACTR3"; transcript_id "NM_001199505:uc002yat.3";
+chr20 hg19_knownGene exon 58322813 58322890 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_001199505:uc002yat.3";
+chr20 hg19_knownGene CDS 58330237 58330419 0.000000 + 2 gene_id "PHACTR3"; transcript_id "NM_001199505:uc002yat.3";
+chr20 hg19_knownGene exon 58330237 58330419 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_001199505:uc002yat.3";
+chr20 hg19_knownGene CDS 58342241 58342450 0.000000 + 2 gene_id "PHACTR3"; transcript_id "NM_001199505:uc002yat.3";
+chr20 hg19_knownGene exon 58342241 58342450 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_001199505:uc002yat.3";
+chr20 hg19_knownGene CDS 58348334 58348508 0.000000 + 2 gene_id "PHACTR3"; transcript_id "NM_001199505:uc002yat.3";
+chr20 hg19_knownGene exon 58348334 58348508 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_001199505:uc002yat.3";
+chr20 hg19_knownGene CDS 58349298 58349545 0.000000 + 1 gene_id "PHACTR3"; transcript_id "NM_001199505:uc002yat.3";
+chr20 hg19_knownGene exon 58349298 58349545 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_001199505:uc002yat.3";
+chr20 hg19_knownGene CDS 58381096 58381249 0.000000 + 2 gene_id "PHACTR3"; transcript_id "NM_001199505:uc002yat.3";
+chr20 hg19_knownGene exon 58381096 58381249 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_001199505:uc002yat.3";
+chr20 hg19_knownGene CDS 58411560 58411615 0.000000 + 1 gene_id "PHACTR3"; transcript_id "NM_001199505:uc002yat.3";
+chr20 hg19_knownGene exon 58411560 58411615 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_001199505:uc002yat.3";
+chr20 hg19_knownGene CDS 58415424 58415485 0.000000 + 2 gene_id "PHACTR3"; transcript_id "NM_001199505:uc002yat.3";
+chr20 hg19_knownGene exon 58415424 58415485 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_001199505:uc002yat.3";
+chr20 hg19_knownGene CDS 58416450 58416590 0.000000 + 0 gene_id "PHACTR3"; transcript_id "NM_001199505:uc002yat.3";
+chr20 hg19_knownGene exon 58416450 58416590 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_001199505:uc002yat.3";
+chr20 hg19_knownGene CDS 58420244 58420320 0.000000 + 0 gene_id "PHACTR3"; transcript_id "NM_001199505:uc002yat.3";
+chr20 hg19_knownGene exon 58420244 58420320 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_001199505:uc002yat.3";
+chr20 hg19_knownGene CDS 58422170 58422182 0.000000 + 1 gene_id "PHACTR3"; transcript_id "NM_001199505:uc002yat.3";
+chr20 hg19_knownGene exon 58422170 58422766 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_001199505:uc002yat.3";
+chr20 hg19_knownGene CDS 58180070 58180187 0.000000 + 0 gene_id "PHACTR3"; transcript_id "NM_080672:uc002yau.3";
+chr20 hg19_knownGene exon 58179603 58180187 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_080672:uc002yau.3";
+chr20 hg19_knownGene CDS 58318162 58318323 0.000000 + 2 gene_id "PHACTR3"; transcript_id "NM_080672:uc002yau.3";
+chr20 hg19_knownGene exon 58318162 58318323 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_080672:uc002yau.3";
+chr20 hg19_knownGene CDS 58322813 58322890 0.000000 + 2 gene_id "PHACTR3"; transcript_id "NM_080672:uc002yau.3";
+chr20 hg19_knownGene exon 58322813 58322890 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_080672:uc002yau.3";
+chr20 hg19_knownGene CDS 58330237 58330419 0.000000 + 2 gene_id "PHACTR3"; transcript_id "NM_080672:uc002yau.3";
+chr20 hg19_knownGene exon 58330237 58330419 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_080672:uc002yau.3";
+chr20 hg19_knownGene CDS 58342241 58342450 0.000000 + 2 gene_id "PHACTR3"; transcript_id "NM_080672:uc002yau.3";
+chr20 hg19_knownGene exon 58342241 58342450 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_080672:uc002yau.3";
+chr20 hg19_knownGene CDS 58348334 58348508 0.000000 + 2 gene_id "PHACTR3"; transcript_id "NM_080672:uc002yau.3";
+chr20 hg19_knownGene exon 58348334 58348508 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_080672:uc002yau.3";
+chr20 hg19_knownGene CDS 58349298 58349545 0.000000 + 1 gene_id "PHACTR3"; transcript_id "NM_080672:uc002yau.3";
+chr20 hg19_knownGene exon 58349298 58349545 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_080672:uc002yau.3";
+chr20 hg19_knownGene CDS 58381096 58381249 0.000000 + 2 gene_id "PHACTR3"; transcript_id "NM_080672:uc002yau.3";
+chr20 hg19_knownGene exon 58381096 58381249 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_080672:uc002yau.3";
+chr20 hg19_knownGene CDS 58411560 58411615 0.000000 + 1 gene_id "PHACTR3"; transcript_id "NM_080672:uc002yau.3";
+chr20 hg19_knownGene exon 58411560 58411615 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_080672:uc002yau.3";
+chr20 hg19_knownGene CDS 58415424 58415485 0.000000 + 2 gene_id "PHACTR3"; transcript_id "NM_080672:uc002yau.3";
+chr20 hg19_knownGene exon 58415424 58415485 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_080672:uc002yau.3";
+chr20 hg19_knownGene CDS 58416450 58416590 0.000000 + 0 gene_id "PHACTR3"; transcript_id "NM_080672:uc002yau.3";
+chr20 hg19_knownGene exon 58416450 58416590 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_080672:uc002yau.3";
+chr20 hg19_knownGene CDS 58420244 58420320 0.000000 + 0 gene_id "PHACTR3"; transcript_id "NM_080672:uc002yau.3";
+chr20 hg19_knownGene exon 58420244 58420320 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_080672:uc002yau.3";
+chr20 hg19_knownGene CDS 58422170 58422182 0.000000 + 1 gene_id "PHACTR3"; transcript_id "NM_080672:uc002yau.3";
+chr20 hg19_knownGene exon 58422170 58422766 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_080672:uc002yau.3";
+chr20 hg19_knownGene exon 58203664 58203871 0.000000 + . gene_id "PHACTR3"; transcript_id "AK295459:uc010zzw.2";
+chr20 hg19_knownGene CDS 58318167 58318323 0.000000 + 0 gene_id "PHACTR3"; transcript_id "AK295459:uc010zzw.2";
+chr20 hg19_knownGene exon 58318162 58318323 0.000000 + . gene_id "PHACTR3"; transcript_id "AK295459:uc010zzw.2";
+chr20 hg19_knownGene CDS 58322813 58322890 0.000000 + 2 gene_id "PHACTR3"; transcript_id "AK295459:uc010zzw.2";
+chr20 hg19_knownGene exon 58322813 58322890 0.000000 + . gene_id "PHACTR3"; transcript_id "AK295459:uc010zzw.2";
+chr20 hg19_knownGene CDS 58330237 58330419 0.000000 + 2 gene_id "PHACTR3"; transcript_id "AK295459:uc010zzw.2";
+chr20 hg19_knownGene exon 58330237 58330419 0.000000 + . gene_id "PHACTR3"; transcript_id "AK295459:uc010zzw.2";
+chr20 hg19_knownGene CDS 58342241 58342450 0.000000 + 2 gene_id "PHACTR3"; transcript_id "AK295459:uc010zzw.2";
+chr20 hg19_knownGene exon 58342241 58342450 0.000000 + . gene_id "PHACTR3"; transcript_id "AK295459:uc010zzw.2";
+chr20 hg19_knownGene CDS 58348334 58348508 0.000000 + 2 gene_id "PHACTR3"; transcript_id "AK295459:uc010zzw.2";
+chr20 hg19_knownGene exon 58348334 58348508 0.000000 + . gene_id "PHACTR3"; transcript_id "AK295459:uc010zzw.2";
+chr20 hg19_knownGene CDS 58349298 58349545 0.000000 + 1 gene_id "PHACTR3"; transcript_id "AK295459:uc010zzw.2";
+chr20 hg19_knownGene exon 58349298 58349545 0.000000 + . gene_id "PHACTR3"; transcript_id "AK295459:uc010zzw.2";
+chr20 hg19_knownGene CDS 58381096 58381249 0.000000 + 2 gene_id "PHACTR3"; transcript_id "AK295459:uc010zzw.2";
+chr20 hg19_knownGene exon 58381096 58381249 0.000000 + . gene_id "PHACTR3"; transcript_id "AK295459:uc010zzw.2";
+chr20 hg19_knownGene CDS 58411560 58411615 0.000000 + 1 gene_id "PHACTR3"; transcript_id "AK295459:uc010zzw.2";
+chr20 hg19_knownGene exon 58411560 58411615 0.000000 + . gene_id "PHACTR3"; transcript_id "AK295459:uc010zzw.2";
+chr20 hg19_knownGene CDS 58415424 58415485 0.000000 + 2 gene_id "PHACTR3"; transcript_id "AK295459:uc010zzw.2";
+chr20 hg19_knownGene exon 58415424 58415485 0.000000 + . gene_id "PHACTR3"; transcript_id "AK295459:uc010zzw.2";
+chr20 hg19_knownGene CDS 58416450 58416590 0.000000 + 0 gene_id "PHACTR3"; transcript_id "AK295459:uc010zzw.2";
+chr20 hg19_knownGene exon 58416450 58416590 0.000000 + . gene_id "PHACTR3"; transcript_id "AK295459:uc010zzw.2";
+chr20 hg19_knownGene CDS 58420244 58420320 0.000000 + 0 gene_id "PHACTR3"; transcript_id "AK295459:uc010zzw.2";
+chr20 hg19_knownGene exon 58420244 58420320 0.000000 + . gene_id "PHACTR3"; transcript_id "AK295459:uc010zzw.2";
+chr20 hg19_knownGene CDS 58422170 58422182 0.000000 + 1 gene_id "PHACTR3"; transcript_id "AK295459:uc010zzw.2";
+chr20 hg19_knownGene exon 58422170 58422766 0.000000 + . gene_id "PHACTR3"; transcript_id "AK295459:uc010zzw.2";
+chr20 hg19_knownGene exon 58251716 58251819 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_001199506:uc002yav.3";
+chr20 hg19_knownGene CDS 58318167 58318323 0.000000 + 0 gene_id "PHACTR3"; transcript_id "NM_001199506:uc002yav.3";
+chr20 hg19_knownGene exon 58318162 58318323 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_001199506:uc002yav.3";
+chr20 hg19_knownGene CDS 58322813 58322890 0.000000 + 2 gene_id "PHACTR3"; transcript_id "NM_001199506:uc002yav.3";
+chr20 hg19_knownGene exon 58322813 58322890 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_001199506:uc002yav.3";
+chr20 hg19_knownGene CDS 58330237 58330419 0.000000 + 2 gene_id "PHACTR3"; transcript_id "NM_001199506:uc002yav.3";
+chr20 hg19_knownGene exon 58330237 58330419 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_001199506:uc002yav.3";
+chr20 hg19_knownGene CDS 58342241 58342450 0.000000 + 2 gene_id "PHACTR3"; transcript_id "NM_001199506:uc002yav.3";
+chr20 hg19_knownGene exon 58342241 58342450 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_001199506:uc002yav.3";
+chr20 hg19_knownGene CDS 58348334 58348508 0.000000 + 2 gene_id "PHACTR3"; transcript_id "NM_001199506:uc002yav.3";
+chr20 hg19_knownGene exon 58348334 58348508 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_001199506:uc002yav.3";
+chr20 hg19_knownGene CDS 58349298 58349545 0.000000 + 1 gene_id "PHACTR3"; transcript_id "NM_001199506:uc002yav.3";
+chr20 hg19_knownGene exon 58349298 58349545 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_001199506:uc002yav.3";
+chr20 hg19_knownGene CDS 58381096 58381249 0.000000 + 2 gene_id "PHACTR3"; transcript_id "NM_001199506:uc002yav.3";
+chr20 hg19_knownGene exon 58381096 58381249 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_001199506:uc002yav.3";
+chr20 hg19_knownGene CDS 58411560 58411615 0.000000 + 1 gene_id "PHACTR3"; transcript_id "NM_001199506:uc002yav.3";
+chr20 hg19_knownGene exon 58411560 58411615 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_001199506:uc002yav.3";
+chr20 hg19_knownGene CDS 58415424 58415485 0.000000 + 2 gene_id "PHACTR3"; transcript_id "NM_001199506:uc002yav.3";
+chr20 hg19_knownGene exon 58415424 58415485 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_001199506:uc002yav.3";
+chr20 hg19_knownGene CDS 58416450 58416590 0.000000 + 0 gene_id "PHACTR3"; transcript_id "NM_001199506:uc002yav.3";
+chr20 hg19_knownGene exon 58416450 58416590 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_001199506:uc002yav.3";
+chr20 hg19_knownGene CDS 58420244 58420320 0.000000 + 0 gene_id "PHACTR3"; transcript_id "NM_001199506:uc002yav.3";
+chr20 hg19_knownGene exon 58420244 58420320 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_001199506:uc002yav.3";
+chr20 hg19_knownGene CDS 58422170 58422182 0.000000 + 1 gene_id "PHACTR3"; transcript_id "NM_001199506:uc002yav.3";
+chr20 hg19_knownGene exon 58422170 58422766 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_001199506:uc002yav.3";
+chr20 hg19_knownGene exon 58296265 58296493 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_183244:uc002yaw.3";
+chr20 hg19_knownGene CDS 58318167 58318323 0.000000 + 0 gene_id "PHACTR3"; transcript_id "NM_183244:uc002yaw.3";
+chr20 hg19_knownGene exon 58318162 58318323 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_183244:uc002yaw.3";
+chr20 hg19_knownGene CDS 58322813 58322890 0.000000 + 2 gene_id "PHACTR3"; transcript_id "NM_183244:uc002yaw.3";
+chr20 hg19_knownGene exon 58322813 58322890 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_183244:uc002yaw.3";
+chr20 hg19_knownGene CDS 58330237 58330419 0.000000 + 2 gene_id "PHACTR3"; transcript_id "NM_183244:uc002yaw.3";
+chr20 hg19_knownGene exon 58330237 58330419 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_183244:uc002yaw.3";
+chr20 hg19_knownGene CDS 58342241 58342450 0.000000 + 2 gene_id "PHACTR3"; transcript_id "NM_183244:uc002yaw.3";
+chr20 hg19_knownGene exon 58342241 58342450 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_183244:uc002yaw.3";
+chr20 hg19_knownGene CDS 58348334 58348508 0.000000 + 2 gene_id "PHACTR3"; transcript_id "NM_183244:uc002yaw.3";
+chr20 hg19_knownGene exon 58348334 58348508 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_183244:uc002yaw.3";
+chr20 hg19_knownGene CDS 58349298 58349545 0.000000 + 1 gene_id "PHACTR3"; transcript_id "NM_183244:uc002yaw.3";
+chr20 hg19_knownGene exon 58349298 58349545 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_183244:uc002yaw.3";
+chr20 hg19_knownGene CDS 58381096 58381249 0.000000 + 2 gene_id "PHACTR3"; transcript_id "NM_183244:uc002yaw.3";
+chr20 hg19_knownGene exon 58381096 58381249 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_183244:uc002yaw.3";
+chr20 hg19_knownGene CDS 58411560 58411615 0.000000 + 1 gene_id "PHACTR3"; transcript_id "NM_183244:uc002yaw.3";
+chr20 hg19_knownGene exon 58411560 58411615 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_183244:uc002yaw.3";
+chr20 hg19_knownGene CDS 58415424 58415485 0.000000 + 2 gene_id "PHACTR3"; transcript_id "NM_183244:uc002yaw.3";
+chr20 hg19_knownGene exon 58415424 58415485 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_183244:uc002yaw.3";
+chr20 hg19_knownGene CDS 58416450 58416590 0.000000 + 0 gene_id "PHACTR3"; transcript_id "NM_183244:uc002yaw.3";
+chr20 hg19_knownGene exon 58416450 58416590 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_183244:uc002yaw.3";
+chr20 hg19_knownGene CDS 58420244 58420320 0.000000 + 0 gene_id "PHACTR3"; transcript_id "NM_183244:uc002yaw.3";
+chr20 hg19_knownGene exon 58420244 58420320 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_183244:uc002yaw.3";
+chr20 hg19_knownGene CDS 58422170 58422182 0.000000 + 1 gene_id "PHACTR3"; transcript_id "NM_183244:uc002yaw.3";
+chr20 hg19_knownGene exon 58422170 58422766 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_183244:uc002yaw.3";
+chr20 hg19_knownGene exon 58296265 58296493 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_183246:uc002yax.3";
+chr20 hg19_knownGene CDS 58318167 58318323 0.000000 + 0 gene_id "PHACTR3"; transcript_id "NM_183246:uc002yax.3";
+chr20 hg19_knownGene exon 58318162 58318323 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_183246:uc002yax.3";
+chr20 hg19_knownGene CDS 58322813 58322890 0.000000 + 2 gene_id "PHACTR3"; transcript_id "NM_183246:uc002yax.3";
+chr20 hg19_knownGene exon 58322813 58322890 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_183246:uc002yax.3";
+chr20 hg19_knownGene CDS 58330237 58330419 0.000000 + 2 gene_id "PHACTR3"; transcript_id "NM_183246:uc002yax.3";
+chr20 hg19_knownGene exon 58330237 58330419 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_183246:uc002yax.3";
+chr20 hg19_knownGene CDS 58348334 58348508 0.000000 + 2 gene_id "PHACTR3"; transcript_id "NM_183246:uc002yax.3";
+chr20 hg19_knownGene exon 58348334 58348508 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_183246:uc002yax.3";
+chr20 hg19_knownGene CDS 58349298 58349545 0.000000 + 1 gene_id "PHACTR3"; transcript_id "NM_183246:uc002yax.3";
+chr20 hg19_knownGene exon 58349298 58349545 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_183246:uc002yax.3";
+chr20 hg19_knownGene CDS 58381096 58381249 0.000000 + 2 gene_id "PHACTR3"; transcript_id "NM_183246:uc002yax.3";
+chr20 hg19_knownGene exon 58381096 58381249 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_183246:uc002yax.3";
+chr20 hg19_knownGene CDS 58411560 58411615 0.000000 + 1 gene_id "PHACTR3"; transcript_id "NM_183246:uc002yax.3";
+chr20 hg19_knownGene exon 58411560 58411615 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_183246:uc002yax.3";
+chr20 hg19_knownGene CDS 58415424 58415485 0.000000 + 2 gene_id "PHACTR3"; transcript_id "NM_183246:uc002yax.3";
+chr20 hg19_knownGene exon 58415424 58415485 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_183246:uc002yax.3";
+chr20 hg19_knownGene CDS 58416450 58416590 0.000000 + 0 gene_id "PHACTR3"; transcript_id "NM_183246:uc002yax.3";
+chr20 hg19_knownGene exon 58416450 58416590 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_183246:uc002yax.3";
+chr20 hg19_knownGene CDS 58420244 58420320 0.000000 + 0 gene_id "PHACTR3"; transcript_id "NM_183246:uc002yax.3";
+chr20 hg19_knownGene exon 58420244 58420320 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_183246:uc002yax.3";
+chr20 hg19_knownGene CDS 58422170 58422182 0.000000 + 1 gene_id "PHACTR3"; transcript_id "NM_183246:uc002yax.3";
+chr20 hg19_knownGene exon 58422170 58422766 0.000000 + . gene_id "PHACTR3"; transcript_id "NM_183246:uc002yax.3";
+chr20 hg19_knownGene CDS 58411525 58411615 0.000000 + 0 gene_id "PHACTR3"; transcript_id "BC036834:uc002yay.3";
+chr20 hg19_knownGene exon 58411067 58411615 0.000000 + . gene_id "PHACTR3"; transcript_id "BC036834:uc002yay.3";
+chr20 hg19_knownGene CDS 58415424 58415485 0.000000 + 2 gene_id "PHACTR3"; transcript_id "BC036834:uc002yay.3";
+chr20 hg19_knownGene exon 58415424 58415485 0.000000 + . gene_id "PHACTR3"; transcript_id "BC036834:uc002yay.3";
+chr20 hg19_knownGene CDS 58416450 58416590 0.000000 + 0 gene_id "PHACTR3"; transcript_id "BC036834:uc002yay.3";
+chr20 hg19_knownGene exon 58416450 58416590 0.000000 + . gene_id "PHACTR3"; transcript_id "BC036834:uc002yay.3";
+chr20 hg19_knownGene CDS 58420244 58420320 0.000000 + 0 gene_id "PHACTR3"; transcript_id "BC036834:uc002yay.3";
+chr20 hg19_knownGene exon 58420244 58420320 0.000000 + . gene_id "PHACTR3"; transcript_id "BC036834:uc002yay.3";
+chr20 hg19_knownGene CDS 58422170 58422182 0.000000 + 1 gene_id "PHACTR3"; transcript_id "BC036834:uc002yay.3";
+chr20 hg19_knownGene exon 58422170 58422766 0.000000 + . gene_id "PHACTR3"; transcript_id "BC036834:uc002yay.3";
+chr20 hg19_knownGene CDS 58475112 58475339 0.000000 - 0 gene_id "SYCP2"; transcript_id "AK308889:uc010gju.1";
+chr20 hg19_knownGene exon 58474860 58475339 0.000000 - . gene_id "SYCP2"; transcript_id "AK308889:uc010gju.1";
+chr20 hg19_knownGene CDS 58475799 58475873 0.000000 - 0 gene_id "SYCP2"; transcript_id "AK308889:uc010gju.1";
+chr20 hg19_knownGene exon 58475799 58475873 0.000000 - . gene_id "SYCP2"; transcript_id "AK308889:uc010gju.1";
+chr20 hg19_knownGene CDS 58476717 58476865 0.000000 - 2 gene_id "SYCP2"; transcript_id "AK308889:uc010gju.1";
+chr20 hg19_knownGene exon 58476717 58476865 0.000000 - . gene_id "SYCP2"; transcript_id "AK308889:uc010gju.1";
+chr20 hg19_knownGene CDS 58482419 58482479 0.000000 - 0 gene_id "SYCP2"; transcript_id "AK308889:uc010gju.1";
+chr20 hg19_knownGene exon 58482419 58482479 0.000000 - . gene_id "SYCP2"; transcript_id "AK308889:uc010gju.1";
+chr20 hg19_knownGene CDS 58486805 58486900 0.000000 - 0 gene_id "SYCP2"; transcript_id "AK308889:uc010gju.1";
+chr20 hg19_knownGene exon 58486805 58486900 0.000000 - . gene_id "SYCP2"; transcript_id "AK308889:uc010gju.1";
+chr20 hg19_knownGene CDS 58487428 58487473 0.000000 - 1 gene_id "SYCP2"; transcript_id "AK308889:uc010gju.1";
+chr20 hg19_knownGene exon 58487428 58487473 0.000000 - . gene_id "SYCP2"; transcript_id "AK308889:uc010gju.1";
+chr20 hg19_knownGene CDS 58489030 58489082 0.000000 - 0 gene_id "SYCP2"; transcript_id "AK308889:uc010gju.1";
+chr20 hg19_knownGene exon 58489030 58489082 0.000000 - . gene_id "SYCP2"; transcript_id "AK308889:uc010gju.1";
+chr20 hg19_knownGene CDS 58489164 58489306 0.000000 - 2 gene_id "SYCP2"; transcript_id "AK308889:uc010gju.1";
+chr20 hg19_knownGene exon 58489164 58489306 0.000000 - . gene_id "SYCP2"; transcript_id "AK308889:uc010gju.1";
+chr20 hg19_knownGene CDS 58490220 58490254 0.000000 - 1 gene_id "SYCP2"; transcript_id "AK308889:uc010gju.1";
+chr20 hg19_knownGene exon 58490220 58490254 0.000000 - . gene_id "SYCP2"; transcript_id "AK308889:uc010gju.1";
+chr20 hg19_knownGene CDS 58490520 58490605 0.000000 - 0 gene_id "SYCP2"; transcript_id "AK308889:uc010gju.1";
+chr20 hg19_knownGene exon 58490520 58490605 0.000000 - . gene_id "SYCP2"; transcript_id "AK308889:uc010gju.1";
+chr20 hg19_knownGene CDS 58491541 58491626 0.000000 - 2 gene_id "SYCP2"; transcript_id "AK308889:uc010gju.1";
+chr20 hg19_knownGene exon 58491541 58491626 0.000000 - . gene_id "SYCP2"; transcript_id "AK308889:uc010gju.1";
+chr20 hg19_knownGene CDS 58494213 58494237 0.000000 - 0 gene_id "SYCP2"; transcript_id "AK308889:uc010gju.1";
+chr20 hg19_knownGene exon 58494213 58494237 0.000000 - . gene_id "SYCP2"; transcript_id "AK308889:uc010gju.1";
+chr20 hg19_knownGene CDS 58494548 58494652 0.000000 - 0 gene_id "SYCP2"; transcript_id "AK308889:uc010gju.1";
+chr20 hg19_knownGene exon 58494548 58494652 0.000000 - . gene_id "SYCP2"; transcript_id "AK308889:uc010gju.1";
+chr20 hg19_knownGene CDS 58439369 58439443 0.000000 - 0 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58438618 58439443 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58440443 58440499 0.000000 - 0 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58440443 58440499 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58440628 58440706 0.000000 - 1 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58440628 58440706 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58440862 58440920 0.000000 - 0 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58440862 58440920 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58441348 58441447 0.000000 - 1 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58441348 58441447 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58441550 58441644 0.000000 - 0 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58441550 58441644 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58442766 58442902 0.000000 - 2 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58442766 58442902 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58443468 58443623 0.000000 - 2 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58443468 58443623 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58443890 58443980 0.000000 - 0 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58443890 58443980 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58444853 58445038 0.000000 - 0 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58444853 58445038 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58448911 58449116 0.000000 - 2 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58448911 58449116 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58450326 58450524 0.000000 - 0 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58450326 58450524 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58452440 58452610 0.000000 - 0 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58452440 58452610 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58453063 58453100 0.000000 - 2 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58453063 58453100 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58455358 58455526 0.000000 - 0 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58455358 58455526 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58456021 58456078 0.000000 - 1 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58456021 58456078 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58456492 58456547 0.000000 - 0 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58456492 58456547 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58457000 58457057 0.000000 - 1 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58457000 58457057 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58457150 58457220 0.000000 - 0 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58457150 58457220 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58460983 58461019 0.000000 - 1 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58460983 58461019 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58461762 58461889 0.000000 - 0 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58461762 58461889 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58467045 58467481 0.000000 - 2 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58467045 58467481 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58467623 58467756 0.000000 - 1 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58467623 58467756 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58468197 58468254 0.000000 - 2 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58468197 58468254 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58468579 58468648 0.000000 - 0 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58468579 58468648 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58470492 58470652 0.000000 - 2 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58470492 58470652 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58471484 58471583 0.000000 - 0 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58471484 58471583 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58475193 58475339 0.000000 - 0 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58475193 58475339 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58475799 58475873 0.000000 - 0 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58475799 58475873 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58476717 58476865 0.000000 - 2 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58476717 58476865 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58482419 58482479 0.000000 - 0 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58482419 58482479 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58486805 58486900 0.000000 - 0 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58486805 58486900 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58487428 58487473 0.000000 - 1 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58487428 58487473 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58489030 58489082 0.000000 - 0 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58489030 58489082 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58489164 58489306 0.000000 - 2 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58489164 58489306 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58490220 58490254 0.000000 - 1 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58490220 58490254 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58490520 58490605 0.000000 - 0 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58490520 58490605 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58491541 58491626 0.000000 - 2 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58491541 58491626 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58494213 58494237 0.000000 - 0 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58494213 58494237 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58494548 58494652 0.000000 - 0 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58494548 58494652 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58495414 58495542 0.000000 - 0 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58495414 58495542 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58496365 58496508 0.000000 - 0 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58496365 58496508 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58497445 58497468 0.000000 - 0 gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58497445 58497514 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene exon 58507117 58507209 0.000000 - . gene_id "SYCP2"; transcript_id "NM_014258:uc002yaz.3";
+chr20 hg19_knownGene CDS 58514090 58514986 0.000000 - 0 gene_id "PPP1R3D"; transcript_id "NM_006242:uc002ybb.3";
+chr20 hg19_knownGene exon 58511887 58515352 0.000000 - . gene_id "PPP1R3D"; transcript_id "NM_006242:uc002ybb.3";
+chr20 hg19_knownGene CDS 58518999 58520147 0.000000 + 0 gene_id "C20orf177"; transcript_id "CCDS13484:uc021wft.1";
+chr20 hg19_knownGene exon 58518999 58520150 0.000000 + . gene_id "C20orf177"; transcript_id "CCDS13484:uc021wft.1";
+chr20 hg19_knownGene exon 58508819 58508908 0.000000 + . gene_id "C20orf177"; transcript_id "NM_001190826:uc002yba.3";
+chr20 hg19_knownGene exon 58513045 58513167 0.000000 + . gene_id "C20orf177"; transcript_id "NM_001190826:uc002yba.3";
+chr20 hg19_knownGene exon 58517253 58517364 0.000000 + . gene_id "C20orf177"; transcript_id "NM_001190826:uc002yba.3";
+chr20 hg19_knownGene exon 58517482 58517567 0.000000 + . gene_id "C20orf177"; transcript_id "NM_001190826:uc002yba.3";
+chr20 hg19_knownGene CDS 58518999 58520147 0.000000 + 0 gene_id "C20orf177"; transcript_id "NM_001190826:uc002yba.3";
+chr20 hg19_knownGene exon 58518995 58523702 0.000000 + . gene_id "C20orf177"; transcript_id "NM_001190826:uc002yba.3";
+chr20 hg19_knownGene exon 58515444 58515590 0.000000 + . gene_id "C20orf177"; transcript_id "NM_022106:uc002ybc.3";
+chr20 hg19_knownGene exon 58517253 58517364 0.000000 + . gene_id "C20orf177"; transcript_id "NM_022106:uc002ybc.3";
+chr20 hg19_knownGene exon 58517482 58517567 0.000000 + . gene_id "C20orf177"; transcript_id "NM_022106:uc002ybc.3";
+chr20 hg19_knownGene CDS 58518999 58520147 0.000000 + 0 gene_id "C20orf177"; transcript_id "NM_022106:uc002ybc.3";
+chr20 hg19_knownGene exon 58518995 58523702 0.000000 + . gene_id "C20orf177"; transcript_id "NM_022106:uc002ybc.3";
+chr20 hg19_knownGene exon 58515444 58515590 0.000000 + . gene_id "C20orf177"; transcript_id "NM_001190827:uc010zzx.2";
+chr20 hg19_knownGene exon 58517253 58517364 0.000000 + . gene_id "C20orf177"; transcript_id "NM_001190827:uc010zzx.2";
+chr20 hg19_knownGene exon 58517482 58517567 0.000000 + . gene_id "C20orf177"; transcript_id "NM_001190827:uc010zzx.2";
+chr20 hg19_knownGene CDS 58519470 58520147 0.000000 + 0 gene_id "C20orf177"; transcript_id "NM_001190827:uc010zzx.2";
+chr20 hg19_knownGene exon 58519451 58523702 0.000000 + . gene_id "C20orf177"; transcript_id "NM_001190827:uc010zzx.2";
+chr20 hg19_knownGene CDS 58533782 58533850 0.000000 + 0 gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene exon 58533471 58533850 0.000000 + . gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene CDS 58544022 58544078 0.000000 + 0 gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene exon 58544022 58544078 0.000000 + . gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene CDS 58545137 58545241 0.000000 + 0 gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene exon 58545137 58545241 0.000000 + . gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene CDS 58547017 58547178 0.000000 + 0 gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene exon 58547017 58547178 0.000000 + . gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene CDS 58557978 58558125 0.000000 + 0 gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene exon 58557978 58558125 0.000000 + . gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene CDS 58559694 58559860 0.000000 + 2 gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene exon 58559694 58559860 0.000000 + . gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene CDS 58560056 58560184 0.000000 + 0 gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene exon 58560056 58560184 0.000000 + . gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene CDS 58562508 58562693 0.000000 + 0 gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene exon 58562508 58562693 0.000000 + . gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene CDS 58563959 58564218 0.000000 + 0 gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene exon 58563959 58564218 0.000000 + . gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene CDS 58567433 58567575 0.000000 + 1 gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene exon 58567433 58567575 0.000000 + . gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene CDS 58569305 58569544 0.000000 + 2 gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene exon 58569305 58569544 0.000000 + . gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene CDS 58570888 58571109 0.000000 + 2 gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene exon 58570888 58571109 0.000000 + . gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene CDS 58571686 58571816 0.000000 + 2 gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene exon 58571686 58571816 0.000000 + . gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene CDS 58574641 58574718 0.000000 + 0 gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene exon 58574641 58574718 0.000000 + . gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene CDS 58576398 58576466 0.000000 + 0 gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene exon 58576398 58576466 0.000000 + . gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene CDS 58577868 58577921 0.000000 + 0 gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene exon 58577868 58577921 0.000000 + . gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene CDS 58581768 58581842 0.000000 + 0 gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene exon 58581768 58581842 0.000000 + . gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene CDS 58587582 58587782 0.000000 + 0 gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene exon 58587582 58588168 0.000000 + . gene_id "CDH26"; transcript_id "NM_177980:uc002ybe.3";
+chr20 hg19_knownGene exon 58533471 58533850 0.000000 + . gene_id "CDH26"; transcript_id "BC143931:uc010zzy.2";
+chr20 hg19_knownGene exon 58544022 58544078 0.000000 + . gene_id "CDH26"; transcript_id "BC143931:uc010zzy.2";
+chr20 hg19_knownGene exon 58545119 58545241 0.000000 + . gene_id "CDH26"; transcript_id "BC143931:uc010zzy.2";
+chr20 hg19_knownGene exon 58547017 58547178 0.000000 + . gene_id "CDH26"; transcript_id "BC143931:uc010zzy.2";
+chr20 hg19_knownGene exon 58557978 58558125 0.000000 + . gene_id "CDH26"; transcript_id "BC143931:uc010zzy.2";
+chr20 hg19_knownGene exon 58559694 58559860 0.000000 + . gene_id "CDH26"; transcript_id "BC143931:uc010zzy.2";
+chr20 hg19_knownGene exon 58560056 58560184 0.000000 + . gene_id "CDH26"; transcript_id "BC143931:uc010zzy.2";
+chr20 hg19_knownGene exon 58562508 58562693 0.000000 + . gene_id "CDH26"; transcript_id "BC143931:uc010zzy.2";
+chr20 hg19_knownGene exon 58563959 58564218 0.000000 + . gene_id "CDH26"; transcript_id "BC143931:uc010zzy.2";
+chr20 hg19_knownGene exon 58567433 58567575 0.000000 + . gene_id "CDH26"; transcript_id "BC143931:uc010zzy.2";
+chr20 hg19_knownGene exon 58569305 58569544 0.000000 + . gene_id "CDH26"; transcript_id "BC143931:uc010zzy.2";
+chr20 hg19_knownGene exon 58570888 58571109 0.000000 + . gene_id "CDH26"; transcript_id "BC143931:uc010zzy.2";
+chr20 hg19_knownGene exon 58571686 58571816 0.000000 + . gene_id "CDH26"; transcript_id "BC143931:uc010zzy.2";
+chr20 hg19_knownGene exon 58574641 58574718 0.000000 + . gene_id "CDH26"; transcript_id "BC143931:uc010zzy.2";
+chr20 hg19_knownGene exon 58576398 58576645 0.000000 + . gene_id "CDH26"; transcript_id "BC143931:uc010zzy.2";
+chr20 hg19_knownGene exon 58577868 58577921 0.000000 + . gene_id "CDH26"; transcript_id "BC143931:uc010zzy.2";
+chr20 hg19_knownGene exon 58581768 58581842 0.000000 + . gene_id "CDH26"; transcript_id "BC143931:uc010zzy.2";
+chr20 hg19_knownGene exon 58587582 58588168 0.000000 + . gene_id "CDH26"; transcript_id "BC143931:uc010zzy.2";
+chr20 hg19_knownGene CDS 58571626 58571643 0.000000 + 0 gene_id "CDH26"; transcript_id "NM_021810:uc002ybh.3";
+chr20 hg19_knownGene exon 58571417 58571643 0.000000 + . gene_id "CDH26"; transcript_id "NM_021810:uc002ybh.3";
+chr20 hg19_knownGene CDS 58574641 58574718 0.000000 + 0 gene_id "CDH26"; transcript_id "NM_021810:uc002ybh.3";
+chr20 hg19_knownGene exon 58574641 58574718 0.000000 + . gene_id "CDH26"; transcript_id "NM_021810:uc002ybh.3";
+chr20 hg19_knownGene CDS 58576398 58576466 0.000000 + 0 gene_id "CDH26"; transcript_id "NM_021810:uc002ybh.3";
+chr20 hg19_knownGene exon 58576398 58576466 0.000000 + . gene_id "CDH26"; transcript_id "NM_021810:uc002ybh.3";
+chr20 hg19_knownGene CDS 58577868 58577921 0.000000 + 0 gene_id "CDH26"; transcript_id "NM_021810:uc002ybh.3";
+chr20 hg19_knownGene exon 58577868 58577921 0.000000 + . gene_id "CDH26"; transcript_id "NM_021810:uc002ybh.3";
+chr20 hg19_knownGene CDS 58581768 58581842 0.000000 + 0 gene_id "CDH26"; transcript_id "NM_021810:uc002ybh.3";
+chr20 hg19_knownGene exon 58581768 58581842 0.000000 + . gene_id "CDH26"; transcript_id "NM_021810:uc002ybh.3";
+chr20 hg19_knownGene CDS 58587582 58587782 0.000000 + 0 gene_id "CDH26"; transcript_id "NM_021810:uc002ybh.3";
+chr20 hg19_knownGene exon 58587582 58588168 0.000000 + . gene_id "CDH26"; transcript_id "NM_021810:uc002ybh.3";
+chr20 hg19_knownGene CDS 58571626 58571643 0.000000 + 0 gene_id "CDH26"; transcript_id "BC062570:uc002ybi.3";
+chr20 hg19_knownGene exon 58571417 58571643 0.000000 + . gene_id "CDH26"; transcript_id "BC062570:uc002ybi.3";
+chr20 hg19_knownGene CDS 58574641 58574718 0.000000 + 0 gene_id "CDH26"; transcript_id "BC062570:uc002ybi.3";
+chr20 hg19_knownGene exon 58574641 58574718 0.000000 + . gene_id "CDH26"; transcript_id "BC062570:uc002ybi.3";
+chr20 hg19_knownGene CDS 58581768 58581842 0.000000 + 0 gene_id "CDH26"; transcript_id "BC062570:uc002ybi.3";
+chr20 hg19_knownGene exon 58581768 58581842 0.000000 + . gene_id "CDH26"; transcript_id "BC062570:uc002ybi.3";
+chr20 hg19_knownGene CDS 58587582 58587782 0.000000 + 0 gene_id "CDH26"; transcript_id "BC062570:uc002ybi.3";
+chr20 hg19_knownGene exon 58587582 58588168 0.000000 + . gene_id "CDH26"; transcript_id "BC062570:uc002ybi.3";
+chr20 hg19_knownGene CDS 58564196 58564218 0.000000 + 0 gene_id "CDH26"; transcript_id "AF169690:uc002ybf.1";
+chr20 hg19_knownGene exon 58563959 58564218 0.000000 + . gene_id "CDH26"; transcript_id "AF169690:uc002ybf.1";
+chr20 hg19_knownGene CDS 58567433 58567575 0.000000 + 1 gene_id "CDH26"; transcript_id "AF169690:uc002ybf.1";
+chr20 hg19_knownGene exon 58567433 58567575 0.000000 + . gene_id "CDH26"; transcript_id "AF169690:uc002ybf.1";
+chr20 hg19_knownGene CDS 58569305 58569544 0.000000 + 2 gene_id "CDH26"; transcript_id "AF169690:uc002ybf.1";
+chr20 hg19_knownGene exon 58569305 58569544 0.000000 + . gene_id "CDH26"; transcript_id "AF169690:uc002ybf.1";
+chr20 hg19_knownGene CDS 58570888 58571109 0.000000 + 2 gene_id "CDH26"; transcript_id "AF169690:uc002ybf.1";
+chr20 hg19_knownGene exon 58570888 58571109 0.000000 + . gene_id "CDH26"; transcript_id "AF169690:uc002ybf.1";
+chr20 hg19_knownGene CDS 58571686 58571816 0.000000 + 2 gene_id "CDH26"; transcript_id "AF169690:uc002ybf.1";
+chr20 hg19_knownGene exon 58571686 58571816 0.000000 + . gene_id "CDH26"; transcript_id "AF169690:uc002ybf.1";
+chr20 hg19_knownGene CDS 58574641 58574718 0.000000 + 0 gene_id "CDH26"; transcript_id "AF169690:uc002ybf.1";
+chr20 hg19_knownGene exon 58574641 58574718 0.000000 + . gene_id "CDH26"; transcript_id "AF169690:uc002ybf.1";
+chr20 hg19_knownGene CDS 58581768 58581842 0.000000 + 0 gene_id "CDH26"; transcript_id "AF169690:uc002ybf.1";
+chr20 hg19_knownGene exon 58581768 58581842 0.000000 + . gene_id "CDH26"; transcript_id "AF169690:uc002ybf.1";
+chr20 hg19_knownGene CDS 58606286 58606481 0.000000 + 0 gene_id "CDH26"; transcript_id "AF169690:uc002ybf.1";
+chr20 hg19_knownGene exon 58606286 58606481 0.000000 + . gene_id "CDH26"; transcript_id "AF169690:uc002ybf.1";
+chr20 hg19_knownGene CDS 58608541 58608728 0.000000 + 2 gene_id "CDH26"; transcript_id "AF169690:uc002ybf.1";
+chr20 hg19_knownGene exon 58608541 58608829 0.000000 + . gene_id "CDH26"; transcript_id "AF169690:uc002ybf.1";
+chr20 hg19_knownGene exon 58630980 58631063 0.000000 + . gene_id "C20orf197"; transcript_id "NM_173644:uc002ybj.1";
+chr20 hg19_knownGene exon 58633962 58634041 0.000000 + . gene_id "C20orf197"; transcript_id "NM_173644:uc002ybj.1";
+chr20 hg19_knownGene CDS 58645030 58645098 0.000000 + 0 gene_id "C20orf197"; transcript_id "NM_173644:uc002ybj.1";
+chr20 hg19_knownGene exon 58644888 58645098 0.000000 + . gene_id "C20orf197"; transcript_id "NM_173644:uc002ybj.1";
+chr20 hg19_knownGene CDS 58645652 58645960 0.000000 + 0 gene_id "C20orf197"; transcript_id "NM_173644:uc002ybj.1";
+chr20 hg19_knownGene exon 58645652 58648008 0.000000 + . gene_id "C20orf197"; transcript_id "NM_173644:uc002ybj.1";
+chr20 hg19_knownGene exon 58713537 58713700 0.000000 + . gene_id "AX747739"; transcript_id "AX747739:uc002ybl.2";
+chr20 hg19_knownGene exon 58729463 58729562 0.000000 + . gene_id "AX747739"; transcript_id "AX747739:uc002ybl.2";
+chr20 hg19_knownGene exon 58755893 58755971 0.000000 + . gene_id "AX747739"; transcript_id "AX747739:uc002ybl.2";
+chr20 hg19_knownGene exon 58893979 58894065 0.000000 + . gene_id "AX747739"; transcript_id "AX747739:uc002ybl.2";
+chr20 hg19_knownGene exon 58895691 58897314 0.000000 + . gene_id "AX747739"; transcript_id "AX747739:uc002ybl.2";
+chr20 hg19_knownGene exon 59053169 59053239 0.000000 + . gene_id "MIR4533"; transcript_id "NR_039758:uc021wfu.1";
+chr20 hg19_knownGene exon 58713537 58713700 0.000000 + . gene_id "AK309218"; transcript_id "AK309218:uc010gjw.2";
+chr20 hg19_knownGene exon 58729463 58729557 0.000000 + . gene_id "AK309218"; transcript_id "AK309218:uc010gjw.2";
+chr20 hg19_knownGene exon 58755893 58755971 0.000000 + . gene_id "AK309218"; transcript_id "AK309218:uc010gjw.2";
+chr20 hg19_knownGene exon 58994078 58994213 0.000000 + . gene_id "AK309218"; transcript_id "AK309218:uc010gjw.2";
+chr20 hg19_knownGene exon 59225767 59228978 0.000000 + . gene_id "AK309218"; transcript_id "AK309218:uc010gjw.2";
+chr20 hg19_knownGene exon 60292562 60294442 0.000000 - . gene_id "AK097866"; transcript_id "AK097866:uc002ybq.1";
+chr20 hg19_knownGene exon 60294686 60294804 0.000000 - . gene_id "AK097866"; transcript_id "AK097866:uc002ybq.1";
+chr20 hg19_knownGene exon 60145191 60145799 0.000000 + . gene_id "CDH4"; transcript_id "AX747020:uc002ybo.1";
+chr20 hg19_knownGene exon 60318619 60318845 0.000000 + . gene_id "CDH4"; transcript_id "AX747020:uc002ybo.1";
+chr20 hg19_knownGene CDS 59827570 59827626 0.000000 + 0 gene_id "CDH4"; transcript_id "NM_001794:uc002ybn.2";
+chr20 hg19_knownGene exon 59827482 59827626 0.000000 + . gene_id "CDH4"; transcript_id "NM_001794:uc002ybn.2";
+chr20 hg19_knownGene CDS 59829882 59829993 0.000000 + 0 gene_id "CDH4"; transcript_id "NM_001794:uc002ybn.2";
+chr20 hg19_knownGene exon 59829882 59829993 0.000000 + . gene_id "CDH4"; transcript_id "NM_001794:uc002ybn.2";
+chr20 hg19_knownGene CDS 60318619 60318845 0.000000 + 2 gene_id "CDH4"; transcript_id "NM_001794:uc002ybn.2";
+chr20 hg19_knownGene exon 60318619 60318845 0.000000 + . gene_id "CDH4"; transcript_id "NM_001794:uc002ybn.2";
+chr20 hg19_knownGene CDS 60348059 60348238 0.000000 + 0 gene_id "CDH4"; transcript_id "NM_001794:uc002ybn.2";
+chr20 hg19_knownGene exon 60348059 60348238 0.000000 + . gene_id "CDH4"; transcript_id "NM_001794:uc002ybn.2";
+chr20 hg19_knownGene CDS 60419724 60419879 0.000000 + 0 gene_id "CDH4"; transcript_id "NM_001794:uc002ybn.2";
+chr20 hg19_knownGene exon 60419724 60419879 0.000000 + . gene_id "CDH4"; transcript_id "NM_001794:uc002ybn.2";
+chr20 hg19_knownGene CDS 60427810 60427954 0.000000 + 0 gene_id "CDH4"; transcript_id "NM_001794:uc002ybn.2";
+chr20 hg19_knownGene exon 60427810 60427954 0.000000 + . gene_id "CDH4"; transcript_id "NM_001794:uc002ybn.2";
+chr20 hg19_knownGene CDS 60448784 60448956 0.000000 + 2 gene_id "CDH4"; transcript_id "NM_001794:uc002ybn.2";
+chr20 hg19_knownGene exon 60448784 60448956 0.000000 + . gene_id "CDH4"; transcript_id "NM_001794:uc002ybn.2";
+chr20 hg19_knownGene CDS 60469966 60470103 0.000000 + 0 gene_id "CDH4"; transcript_id "NM_001794:uc002ybn.2";
+chr20 hg19_knownGene exon 60469966 60470103 0.000000 + . gene_id "CDH4"; transcript_id "NM_001794:uc002ybn.2";
+chr20 hg19_knownGene CDS 60485478 60485663 0.000000 + 0 gene_id "CDH4"; transcript_id "NM_001794:uc002ybn.2";
+chr20 hg19_knownGene exon 60485478 60485663 0.000000 + . gene_id "CDH4"; transcript_id "NM_001794:uc002ybn.2";
+chr20 hg19_knownGene CDS 60498509 60498762 0.000000 + 0 gene_id "CDH4"; transcript_id "NM_001794:uc002ybn.2";
+chr20 hg19_knownGene exon 60498509 60498762 0.000000 + . gene_id "CDH4"; transcript_id "NM_001794:uc002ybn.2";
+chr20 hg19_knownGene CDS 60499392 60499534 0.000000 + 1 gene_id "CDH4"; transcript_id "NM_001794:uc002ybn.2";
+chr20 hg19_knownGene exon 60499392 60499534 0.000000 + . gene_id "CDH4"; transcript_id "NM_001794:uc002ybn.2";
+chr20 hg19_knownGene CDS 60503248 60503481 0.000000 + 2 gene_id "CDH4"; transcript_id "NM_001794:uc002ybn.2";
+chr20 hg19_knownGene exon 60503248 60503481 0.000000 + . gene_id "CDH4"; transcript_id "NM_001794:uc002ybn.2";
+chr20 hg19_knownGene CDS 60504667 60504900 0.000000 + 2 gene_id "CDH4"; transcript_id "NM_001794:uc002ybn.2";
+chr20 hg19_knownGene exon 60504667 60504900 0.000000 + . gene_id "CDH4"; transcript_id "NM_001794:uc002ybn.2";
+chr20 hg19_knownGene CDS 60508043 60508182 0.000000 + 2 gene_id "CDH4"; transcript_id "NM_001794:uc002ybn.2";
+chr20 hg19_knownGene exon 60508043 60508182 0.000000 + . gene_id "CDH4"; transcript_id "NM_001794:uc002ybn.2";
+chr20 hg19_knownGene CDS 60509114 60509278 0.000000 + 0 gene_id "CDH4"; transcript_id "NM_001794:uc002ybn.2";
+chr20 hg19_knownGene exon 60509114 60509278 0.000000 + . gene_id "CDH4"; transcript_id "NM_001794:uc002ybn.2";
+chr20 hg19_knownGene CDS 60511795 60511998 0.000000 + 0 gene_id "CDH4"; transcript_id "NM_001794:uc002ybn.2";
+chr20 hg19_knownGene exon 60511795 60515673 0.000000 + . gene_id "CDH4"; transcript_id "NM_001794:uc002ybn.2";
+chr20 hg19_knownGene CDS 60074491 60074548 0.000000 + 0 gene_id "CDH4"; transcript_id "NM_001252338:uc002ybr.2";
+chr20 hg19_knownGene exon 60074477 60074548 0.000000 + . gene_id "CDH4"; transcript_id "NM_001252338:uc002ybr.2";
+chr20 hg19_knownGene CDS 60318619 60318845 0.000000 + 2 gene_id "CDH4"; transcript_id "NM_001252338:uc002ybr.2";
+chr20 hg19_knownGene exon 60318619 60318845 0.000000 + . gene_id "CDH4"; transcript_id "NM_001252338:uc002ybr.2";
+chr20 hg19_knownGene CDS 60348059 60348238 0.000000 + 0 gene_id "CDH4"; transcript_id "NM_001252338:uc002ybr.2";
+chr20 hg19_knownGene exon 60348059 60348238 0.000000 + . gene_id "CDH4"; transcript_id "NM_001252338:uc002ybr.2";
+chr20 hg19_knownGene CDS 60419724 60419879 0.000000 + 0 gene_id "CDH4"; transcript_id "NM_001252338:uc002ybr.2";
+chr20 hg19_knownGene exon 60419724 60419879 0.000000 + . gene_id "CDH4"; transcript_id "NM_001252338:uc002ybr.2";
+chr20 hg19_knownGene CDS 60427810 60427954 0.000000 + 0 gene_id "CDH4"; transcript_id "NM_001252338:uc002ybr.2";
+chr20 hg19_knownGene exon 60427810 60427954 0.000000 + . gene_id "CDH4"; transcript_id "NM_001252338:uc002ybr.2";
+chr20 hg19_knownGene CDS 60448784 60448956 0.000000 + 2 gene_id "CDH4"; transcript_id "NM_001252338:uc002ybr.2";
+chr20 hg19_knownGene exon 60448784 60448956 0.000000 + . gene_id "CDH4"; transcript_id "NM_001252338:uc002ybr.2";
+chr20 hg19_knownGene CDS 60469966 60470103 0.000000 + 0 gene_id "CDH4"; transcript_id "NM_001252338:uc002ybr.2";
+chr20 hg19_knownGene exon 60469966 60470103 0.000000 + . gene_id "CDH4"; transcript_id "NM_001252338:uc002ybr.2";
+chr20 hg19_knownGene CDS 60485478 60485663 0.000000 + 0 gene_id "CDH4"; transcript_id "NM_001252338:uc002ybr.2";
+chr20 hg19_knownGene exon 60485478 60485663 0.000000 + . gene_id "CDH4"; transcript_id "NM_001252338:uc002ybr.2";
+chr20 hg19_knownGene CDS 60498509 60498762 0.000000 + 0 gene_id "CDH4"; transcript_id "NM_001252338:uc002ybr.2";
+chr20 hg19_knownGene exon 60498509 60498762 0.000000 + . gene_id "CDH4"; transcript_id "NM_001252338:uc002ybr.2";
+chr20 hg19_knownGene CDS 60499392 60499534 0.000000 + 1 gene_id "CDH4"; transcript_id "NM_001252338:uc002ybr.2";
+chr20 hg19_knownGene exon 60499392 60499534 0.000000 + . gene_id "CDH4"; transcript_id "NM_001252338:uc002ybr.2";
+chr20 hg19_knownGene CDS 60503248 60503481 0.000000 + 2 gene_id "CDH4"; transcript_id "NM_001252338:uc002ybr.2";
+chr20 hg19_knownGene exon 60503248 60503481 0.000000 + . gene_id "CDH4"; transcript_id "NM_001252338:uc002ybr.2";
+chr20 hg19_knownGene CDS 60504667 60504900 0.000000 + 2 gene_id "CDH4"; transcript_id "NM_001252338:uc002ybr.2";
+chr20 hg19_knownGene exon 60504667 60504900 0.000000 + . gene_id "CDH4"; transcript_id "NM_001252338:uc002ybr.2";
+chr20 hg19_knownGene CDS 60508043 60508182 0.000000 + 2 gene_id "CDH4"; transcript_id "NM_001252338:uc002ybr.2";
+chr20 hg19_knownGene exon 60508043 60508182 0.000000 + . gene_id "CDH4"; transcript_id "NM_001252338:uc002ybr.2";
+chr20 hg19_knownGene CDS 60509114 60509278 0.000000 + 0 gene_id "CDH4"; transcript_id "NM_001252338:uc002ybr.2";
+chr20 hg19_knownGene exon 60509114 60509278 0.000000 + . gene_id "CDH4"; transcript_id "NM_001252338:uc002ybr.2";
+chr20 hg19_knownGene CDS 60511795 60511998 0.000000 + 0 gene_id "CDH4"; transcript_id "NM_001252338:uc002ybr.2";
+chr20 hg19_knownGene exon 60511795 60515673 0.000000 + . gene_id "CDH4"; transcript_id "NM_001252338:uc002ybr.2";
+chr20 hg19_knownGene exon 60174817 60175045 0.000000 + . gene_id "CDH4"; transcript_id "NM_001252339:uc002ybp.2";
+chr20 hg19_knownGene CDS 60318672 60318845 0.000000 + 0 gene_id "CDH4"; transcript_id "NM_001252339:uc002ybp.2";
+chr20 hg19_knownGene exon 60318619 60318845 0.000000 + . gene_id "CDH4"; transcript_id "NM_001252339:uc002ybp.2";
+chr20 hg19_knownGene CDS 60348059 60348238 0.000000 + 0 gene_id "CDH4"; transcript_id "NM_001252339:uc002ybp.2";
+chr20 hg19_knownGene exon 60348059 60348238 0.000000 + . gene_id "CDH4"; transcript_id "NM_001252339:uc002ybp.2";
+chr20 hg19_knownGene CDS 60419724 60419879 0.000000 + 0 gene_id "CDH4"; transcript_id "NM_001252339:uc002ybp.2";
+chr20 hg19_knownGene exon 60419724 60419879 0.000000 + . gene_id "CDH4"; transcript_id "NM_001252339:uc002ybp.2";
+chr20 hg19_knownGene CDS 60427810 60427954 0.000000 + 0 gene_id "CDH4"; transcript_id "NM_001252339:uc002ybp.2";
+chr20 hg19_knownGene exon 60427810 60427954 0.000000 + . gene_id "CDH4"; transcript_id "NM_001252339:uc002ybp.2";
+chr20 hg19_knownGene CDS 60448784 60448956 0.000000 + 2 gene_id "CDH4"; transcript_id "NM_001252339:uc002ybp.2";
+chr20 hg19_knownGene exon 60448784 60448956 0.000000 + . gene_id "CDH4"; transcript_id "NM_001252339:uc002ybp.2";
+chr20 hg19_knownGene CDS 60469966 60470103 0.000000 + 0 gene_id "CDH4"; transcript_id "NM_001252339:uc002ybp.2";
+chr20 hg19_knownGene exon 60469966 60470103 0.000000 + . gene_id "CDH4"; transcript_id "NM_001252339:uc002ybp.2";
+chr20 hg19_knownGene CDS 60485478 60485663 0.000000 + 0 gene_id "CDH4"; transcript_id "NM_001252339:uc002ybp.2";
+chr20 hg19_knownGene exon 60485478 60485663 0.000000 + . gene_id "CDH4"; transcript_id "NM_001252339:uc002ybp.2";
+chr20 hg19_knownGene CDS 60498509 60498762 0.000000 + 0 gene_id "CDH4"; transcript_id "NM_001252339:uc002ybp.2";
+chr20 hg19_knownGene exon 60498509 60498762 0.000000 + . gene_id "CDH4"; transcript_id "NM_001252339:uc002ybp.2";
+chr20 hg19_knownGene CDS 60499392 60499534 0.000000 + 1 gene_id "CDH4"; transcript_id "NM_001252339:uc002ybp.2";
+chr20 hg19_knownGene exon 60499392 60499534 0.000000 + . gene_id "CDH4"; transcript_id "NM_001252339:uc002ybp.2";
+chr20 hg19_knownGene CDS 60503248 60503481 0.000000 + 2 gene_id "CDH4"; transcript_id "NM_001252339:uc002ybp.2";
+chr20 hg19_knownGene exon 60503248 60503481 0.000000 + . gene_id "CDH4"; transcript_id "NM_001252339:uc002ybp.2";
+chr20 hg19_knownGene CDS 60504667 60504900 0.000000 + 2 gene_id "CDH4"; transcript_id "NM_001252339:uc002ybp.2";
+chr20 hg19_knownGene exon 60504667 60504900 0.000000 + . gene_id "CDH4"; transcript_id "NM_001252339:uc002ybp.2";
+chr20 hg19_knownGene CDS 60508043 60508182 0.000000 + 2 gene_id "CDH4"; transcript_id "NM_001252339:uc002ybp.2";
+chr20 hg19_knownGene exon 60508043 60508182 0.000000 + . gene_id "CDH4"; transcript_id "NM_001252339:uc002ybp.2";
+chr20 hg19_knownGene CDS 60509114 60509278 0.000000 + 0 gene_id "CDH4"; transcript_id "NM_001252339:uc002ybp.2";
+chr20 hg19_knownGene exon 60509114 60509278 0.000000 + . gene_id "CDH4"; transcript_id "NM_001252339:uc002ybp.2";
+chr20 hg19_knownGene CDS 60511795 60511998 0.000000 + 0 gene_id "CDH4"; transcript_id "NM_001252339:uc002ybp.2";
+chr20 hg19_knownGene exon 60511795 60515673 0.000000 + . gene_id "CDH4"; transcript_id "NM_001252339:uc002ybp.2";
+chr20 hg19_knownGene exon 60528602 60528718 0.000000 - . gene_id "MIR1257"; transcript_id "NR_031658:uc021wfv.1";
+chr20 hg19_knownGene CDS 60551227 60551391 0.000000 - 0 gene_id "TAF4"; transcript_id "NM_003185:uc002ybs.3";
+chr20 hg19_knownGene exon 60549854 60551391 0.000000 - . gene_id "TAF4"; transcript_id "NM_003185:uc002ybs.3";
+chr20 hg19_knownGene CDS 60572606 60572725 0.000000 - 0 gene_id "TAF4"; transcript_id "NM_003185:uc002ybs.3";
+chr20 hg19_knownGene exon 60572606 60572725 0.000000 - . gene_id "TAF4"; transcript_id "NM_003185:uc002ybs.3";
+chr20 hg19_knownGene CDS 60573192 60573248 0.000000 - 0 gene_id "TAF4"; transcript_id "NM_003185:uc002ybs.3";
+chr20 hg19_knownGene exon 60573192 60573248 0.000000 - . gene_id "TAF4"; transcript_id "NM_003185:uc002ybs.3";
+chr20 hg19_knownGene CDS 60574039 60574164 0.000000 - 0 gene_id "TAF4"; transcript_id "NM_003185:uc002ybs.3";
+chr20 hg19_knownGene exon 60574039 60574164 0.000000 - . gene_id "TAF4"; transcript_id "NM_003185:uc002ybs.3";
+chr20 hg19_knownGene CDS 60575180 60575310 0.000000 - 2 gene_id "TAF4"; transcript_id "NM_003185:uc002ybs.3";
+chr20 hg19_knownGene exon 60575180 60575310 0.000000 - . gene_id "TAF4"; transcript_id "NM_003185:uc002ybs.3";
+chr20 hg19_knownGene CDS 60575608 60575777 0.000000 - 1 gene_id "TAF4"; transcript_id "NM_003185:uc002ybs.3";
+chr20 hg19_knownGene exon 60575608 60575777 0.000000 - . gene_id "TAF4"; transcript_id "NM_003185:uc002ybs.3";
+chr20 hg19_knownGene CDS 60578216 60578330 0.000000 - 2 gene_id "TAF4"; transcript_id "NM_003185:uc002ybs.3";
+chr20 hg19_knownGene exon 60578216 60578330 0.000000 - . gene_id "TAF4"; transcript_id "NM_003185:uc002ybs.3";
+chr20 hg19_knownGene CDS 60578787 60578934 0.000000 - 0 gene_id "TAF4"; transcript_id "NM_003185:uc002ybs.3";
+chr20 hg19_knownGene exon 60578787 60578934 0.000000 - . gene_id "TAF4"; transcript_id "NM_003185:uc002ybs.3";
+chr20 hg19_knownGene CDS 60581566 60581814 0.000000 - 0 gene_id "TAF4"; transcript_id "NM_003185:uc002ybs.3";
+chr20 hg19_knownGene exon 60581566 60581814 0.000000 - . gene_id "TAF4"; transcript_id "NM_003185:uc002ybs.3";
+chr20 hg19_knownGene CDS 60582603 60582692 0.000000 - 0 gene_id "TAF4"; transcript_id "NM_003185:uc002ybs.3";
+chr20 hg19_knownGene exon 60582603 60582692 0.000000 - . gene_id "TAF4"; transcript_id "NM_003185:uc002ybs.3";
+chr20 hg19_knownGene CDS 60584108 60584230 0.000000 - 0 gene_id "TAF4"; transcript_id "NM_003185:uc002ybs.3";
+chr20 hg19_knownGene exon 60584108 60584230 0.000000 - . gene_id "TAF4"; transcript_id "NM_003185:uc002ybs.3";
+chr20 hg19_knownGene CDS 60585102 60585221 0.000000 - 0 gene_id "TAF4"; transcript_id "NM_003185:uc002ybs.3";
+chr20 hg19_knownGene exon 60585102 60585221 0.000000 - . gene_id "TAF4"; transcript_id "NM_003185:uc002ybs.3";
+chr20 hg19_knownGene CDS 60587871 60587990 0.000000 - 0 gene_id "TAF4"; transcript_id "NM_003185:uc002ybs.3";
+chr20 hg19_knownGene exon 60587871 60587990 0.000000 - . gene_id "TAF4"; transcript_id "NM_003185:uc002ybs.3";
+chr20 hg19_knownGene CDS 60589603 60589763 0.000000 - 2 gene_id "TAF4"; transcript_id "NM_003185:uc002ybs.3";
+chr20 hg19_knownGene exon 60589603 60589763 0.000000 - . gene_id "TAF4"; transcript_id "NM_003185:uc002ybs.3";
+chr20 hg19_knownGene CDS 60639507 60640866 0.000000 - 0 gene_id "TAF4"; transcript_id "NM_003185:uc002ybs.3";
+chr20 hg19_knownGene exon 60639507 60640866 0.000000 - . gene_id "TAF4"; transcript_id "NM_003185:uc002ybs.3";
+chr20 hg19_knownGene CDS 60697723 60697849 0.000000 + 0 gene_id "LSM14B"; transcript_id "CU691202:uc002ybt.2";
+chr20 hg19_knownGene exon 60697517 60697849 0.000000 + . gene_id "LSM14B"; transcript_id "CU691202:uc002ybt.2";
+chr20 hg19_knownGene CDS 60699673 60699836 0.000000 + 2 gene_id "LSM14B"; transcript_id "CU691202:uc002ybt.2";
+chr20 hg19_knownGene exon 60699673 60699836 0.000000 + . gene_id "LSM14B"; transcript_id "CU691202:uc002ybt.2";
+chr20 hg19_knownGene CDS 60701360 60701495 0.000000 + 0 gene_id "LSM14B"; transcript_id "CU691202:uc002ybt.2";
+chr20 hg19_knownGene exon 60701360 60701495 0.000000 + . gene_id "LSM14B"; transcript_id "CU691202:uc002ybt.2";
+chr20 hg19_knownGene CDS 60702641 60702876 0.000000 + 2 gene_id "LSM14B"; transcript_id "CU691202:uc002ybt.2";
+chr20 hg19_knownGene exon 60702641 60704636 0.000000 + . gene_id "LSM14B"; transcript_id "CU691202:uc002ybt.2";
+chr20 hg19_knownGene CDS 60697723 60697849 0.000000 + 0 gene_id "LSM14B"; transcript_id "BC035702:uc010gjx.1";
+chr20 hg19_knownGene exon 60697517 60697849 0.000000 + . gene_id "LSM14B"; transcript_id "BC035702:uc010gjx.1";
+chr20 hg19_knownGene CDS 60699673 60699836 0.000000 + 2 gene_id "LSM14B"; transcript_id "BC035702:uc010gjx.1";
+chr20 hg19_knownGene exon 60699673 60699836 0.000000 + . gene_id "LSM14B"; transcript_id "BC035702:uc010gjx.1";
+chr20 hg19_knownGene CDS 60701282 60701495 0.000000 + 0 gene_id "LSM14B"; transcript_id "BC035702:uc010gjx.1";
+chr20 hg19_knownGene exon 60701282 60701495 0.000000 + . gene_id "LSM14B"; transcript_id "BC035702:uc010gjx.1";
+chr20 hg19_knownGene CDS 60704841 60705008 0.000000 + 2 gene_id "LSM14B"; transcript_id "BC035702:uc010gjx.1";
+chr20 hg19_knownGene exon 60704841 60705008 0.000000 + . gene_id "LSM14B"; transcript_id "BC035702:uc010gjx.1";
+chr20 hg19_knownGene CDS 60705275 60705352 0.000000 + 2 gene_id "LSM14B"; transcript_id "BC035702:uc010gjx.1";
+chr20 hg19_knownGene exon 60705275 60705352 0.000000 + . gene_id "LSM14B"; transcript_id "BC035702:uc010gjx.1";
+chr20 hg19_knownGene CDS 60705586 60705743 0.000000 + 2 gene_id "LSM14B"; transcript_id "BC035702:uc010gjx.1";
+chr20 hg19_knownGene exon 60705586 60705747 0.000000 + . gene_id "LSM14B"; transcript_id "BC035702:uc010gjx.1";
+chr20 hg19_knownGene exon 60698193 60698279 0.000000 + . gene_id "LSM14B"; transcript_id "AK058202:uc010gjz.1";
+chr20 hg19_knownGene exon 60699673 60699836 0.000000 + . gene_id "LSM14B"; transcript_id "AK058202:uc010gjz.1";
+chr20 hg19_knownGene CDS 60701426 60701495 0.000000 + 0 gene_id "LSM14B"; transcript_id "AK058202:uc010gjz.1";
+chr20 hg19_knownGene exon 60701360 60701495 0.000000 + . gene_id "LSM14B"; transcript_id "AK058202:uc010gjz.1";
+chr20 hg19_knownGene CDS 60702641 60702757 0.000000 + 2 gene_id "LSM14B"; transcript_id "AK058202:uc010gjz.1";
+chr20 hg19_knownGene exon 60702641 60702757 0.000000 + . gene_id "LSM14B"; transcript_id "AK058202:uc010gjz.1";
+chr20 hg19_knownGene CDS 60703981 60704088 0.000000 + 2 gene_id "LSM14B"; transcript_id "AK058202:uc010gjz.1";
+chr20 hg19_knownGene exon 60703981 60704088 0.000000 + . gene_id "LSM14B"; transcript_id "AK058202:uc010gjz.1";
+chr20 hg19_knownGene CDS 60704841 60705008 0.000000 + 2 gene_id "LSM14B"; transcript_id "AK058202:uc010gjz.1";
+chr20 hg19_knownGene exon 60704841 60705008 0.000000 + . gene_id "LSM14B"; transcript_id "AK058202:uc010gjz.1";
+chr20 hg19_knownGene CDS 60705275 60705352 0.000000 + 2 gene_id "LSM14B"; transcript_id "AK058202:uc010gjz.1";
+chr20 hg19_knownGene exon 60705275 60705352 0.000000 + . gene_id "LSM14B"; transcript_id "AK058202:uc010gjz.1";
+chr20 hg19_knownGene CDS 60705586 60705743 0.000000 + 2 gene_id "LSM14B"; transcript_id "AK058202:uc010gjz.1";
+chr20 hg19_knownGene exon 60705586 60705747 0.000000 + . gene_id "LSM14B"; transcript_id "AK058202:uc010gjz.1";
+chr20 hg19_knownGene CDS 60697723 60697849 0.000000 + 0 gene_id "LSM14B"; transcript_id "NM_144703:uc010gjy.1";
+chr20 hg19_knownGene exon 60697517 60697849 0.000000 + . gene_id "LSM14B"; transcript_id "NM_144703:uc010gjy.1";
+chr20 hg19_knownGene CDS 60699673 60699836 0.000000 + 2 gene_id "LSM14B"; transcript_id "NM_144703:uc010gjy.1";
+chr20 hg19_knownGene exon 60699673 60699836 0.000000 + . gene_id "LSM14B"; transcript_id "NM_144703:uc010gjy.1";
+chr20 hg19_knownGene CDS 60701360 60701495 0.000000 + 0 gene_id "LSM14B"; transcript_id "NM_144703:uc010gjy.1";
+chr20 hg19_knownGene exon 60701360 60701495 0.000000 + . gene_id "LSM14B"; transcript_id "NM_144703:uc010gjy.1";
+chr20 hg19_knownGene CDS 60704841 60705008 0.000000 + 2 gene_id "LSM14B"; transcript_id "NM_144703:uc010gjy.1";
+chr20 hg19_knownGene exon 60704841 60705008 0.000000 + . gene_id "LSM14B"; transcript_id "NM_144703:uc010gjy.1";
+chr20 hg19_knownGene CDS 60705275 60705352 0.000000 + 2 gene_id "LSM14B"; transcript_id "NM_144703:uc010gjy.1";
+chr20 hg19_knownGene exon 60705275 60705352 0.000000 + . gene_id "LSM14B"; transcript_id "NM_144703:uc010gjy.1";
+chr20 hg19_knownGene CDS 60705586 60705747 0.000000 + 2 gene_id "LSM14B"; transcript_id "NM_144703:uc010gjy.1";
+chr20 hg19_knownGene exon 60705586 60705747 0.000000 + . gene_id "LSM14B"; transcript_id "NM_144703:uc010gjy.1";
+chr20 hg19_knownGene CDS 60706412 60706562 0.000000 + 2 gene_id "LSM14B"; transcript_id "NM_144703:uc010gjy.1";
+chr20 hg19_knownGene exon 60706412 60706562 0.000000 + . gene_id "LSM14B"; transcript_id "NM_144703:uc010gjy.1";
+chr20 hg19_knownGene CDS 60708346 60708514 0.000000 + 1 gene_id "LSM14B"; transcript_id "NM_144703:uc010gjy.1";
+chr20 hg19_knownGene exon 60708346 60708531 0.000000 + . gene_id "LSM14B"; transcript_id "NM_144703:uc010gjy.1";
+chr20 hg19_knownGene exon 60709219 60710434 0.000000 + . gene_id "LSM14B"; transcript_id "NM_144703:uc010gjy.1";
+chr20 hg19_knownGene exon 60699673 60699836 0.000000 + . gene_id "LSM14B"; transcript_id "AK298748:uc010zzz.1";
+chr20 hg19_knownGene CDS 60701426 60701495 0.000000 + 0 gene_id "LSM14B"; transcript_id "AK298748:uc010zzz.1";
+chr20 hg19_knownGene exon 60701360 60701495 0.000000 + . gene_id "LSM14B"; transcript_id "AK298748:uc010zzz.1";
+chr20 hg19_knownGene CDS 60702641 60702757 0.000000 + 2 gene_id "LSM14B"; transcript_id "AK298748:uc010zzz.1";
+chr20 hg19_knownGene exon 60702641 60702757 0.000000 + . gene_id "LSM14B"; transcript_id "AK298748:uc010zzz.1";
+chr20 hg19_knownGene CDS 60704841 60705008 0.000000 + 2 gene_id "LSM14B"; transcript_id "AK298748:uc010zzz.1";
+chr20 hg19_knownGene exon 60704841 60705008 0.000000 + . gene_id "LSM14B"; transcript_id "AK298748:uc010zzz.1";
+chr20 hg19_knownGene CDS 60705275 60705352 0.000000 + 2 gene_id "LSM14B"; transcript_id "AK298748:uc010zzz.1";
+chr20 hg19_knownGene exon 60705275 60705352 0.000000 + . gene_id "LSM14B"; transcript_id "AK298748:uc010zzz.1";
+chr20 hg19_knownGene CDS 60705586 60705747 0.000000 + 2 gene_id "LSM14B"; transcript_id "AK298748:uc010zzz.1";
+chr20 hg19_knownGene exon 60705586 60705747 0.000000 + . gene_id "LSM14B"; transcript_id "AK298748:uc010zzz.1";
+chr20 hg19_knownGene CDS 60706412 60706562 0.000000 + 2 gene_id "LSM14B"; transcript_id "AK298748:uc010zzz.1";
+chr20 hg19_knownGene exon 60706412 60706562 0.000000 + . gene_id "LSM14B"; transcript_id "AK298748:uc010zzz.1";
+chr20 hg19_knownGene CDS 60708346 60708514 0.000000 + 1 gene_id "LSM14B"; transcript_id "AK298748:uc010zzz.1";
+chr20 hg19_knownGene exon 60708346 60708531 0.000000 + . gene_id "LSM14B"; transcript_id "AK298748:uc010zzz.1";
+chr20 hg19_knownGene exon 60709219 60710434 0.000000 + . gene_id "LSM14B"; transcript_id "AK298748:uc010zzz.1";
+chr20 hg19_knownGene CDS 60711916 60712005 0.000000 - 0 gene_id "PSMA7"; transcript_id "NM_002792:uc002ybx.1";
+chr20 hg19_knownGene exon 60711791 60712005 0.000000 - . gene_id "PSMA7"; transcript_id "NM_002792:uc002ybx.1";
+chr20 hg19_knownGene CDS 60712420 60712482 0.000000 - 0 gene_id "PSMA7"; transcript_id "NM_002792:uc002ybx.1";
+chr20 hg19_knownGene exon 60712420 60712482 0.000000 - . gene_id "PSMA7"; transcript_id "NM_002792:uc002ybx.1";
+chr20 hg19_knownGene CDS 60713227 60713346 0.000000 - 0 gene_id "PSMA7"; transcript_id "NM_002792:uc002ybx.1";
+chr20 hg19_knownGene exon 60713227 60713346 0.000000 - . gene_id "PSMA7"; transcript_id "NM_002792:uc002ybx.1";
+chr20 hg19_knownGene CDS 60714131 60714253 0.000000 - 0 gene_id "PSMA7"; transcript_id "NM_002792:uc002ybx.1";
+chr20 hg19_knownGene exon 60714131 60714253 0.000000 - . gene_id "PSMA7"; transcript_id "NM_002792:uc002ybx.1";
+chr20 hg19_knownGene CDS 60714837 60714961 0.000000 - 2 gene_id "PSMA7"; transcript_id "NM_002792:uc002ybx.1";
+chr20 hg19_knownGene exon 60714837 60714961 0.000000 - . gene_id "PSMA7"; transcript_id "NM_002792:uc002ybx.1";
+chr20 hg19_knownGene CDS 60715874 60716000 0.000000 - 0 gene_id "PSMA7"; transcript_id "NM_002792:uc002ybx.1";
+chr20 hg19_knownGene exon 60715874 60716000 0.000000 - . gene_id "PSMA7"; transcript_id "NM_002792:uc002ybx.1";
+chr20 hg19_knownGene CDS 60718264 60718359 0.000000 - 0 gene_id "PSMA7"; transcript_id "NM_002792:uc002ybx.1";
+chr20 hg19_knownGene exon 60718264 60718474 0.000000 - . gene_id "PSMA7"; transcript_id "NM_002792:uc002ybx.1";
+chr20 hg19_knownGene CDS 60718877 60718945 0.000000 + 0 gene_id "SS18L1"; transcript_id "AK299881:uc011aaa.1";
+chr20 hg19_knownGene exon 60718822 60718945 0.000000 + . gene_id "SS18L1"; transcript_id "AK299881:uc011aaa.1";
+chr20 hg19_knownGene CDS 60733728 60733804 0.000000 + 0 gene_id "SS18L1"; transcript_id "AK299881:uc011aaa.1";
+chr20 hg19_knownGene exon 60733728 60733804 0.000000 + . gene_id "SS18L1"; transcript_id "AK299881:uc011aaa.1";
+chr20 hg19_knownGene CDS 60734933 60735017 0.000000 + 1 gene_id "SS18L1"; transcript_id "AK299881:uc011aaa.1";
+chr20 hg19_knownGene exon 60734933 60735017 0.000000 + . gene_id "SS18L1"; transcript_id "AK299881:uc011aaa.1";
+chr20 hg19_knownGene CDS 60736492 60736636 0.000000 + 0 gene_id "SS18L1"; transcript_id "AK299881:uc011aaa.1";
+chr20 hg19_knownGene exon 60736492 60736636 0.000000 + . gene_id "SS18L1"; transcript_id "AK299881:uc011aaa.1";
+chr20 hg19_knownGene CDS 60737808 60737987 0.000000 + 2 gene_id "SS18L1"; transcript_id "AK299881:uc011aaa.1";
+chr20 hg19_knownGene exon 60737808 60737987 0.000000 + . gene_id "SS18L1"; transcript_id "AK299881:uc011aaa.1";
+chr20 hg19_knownGene CDS 60738514 60738678 0.000000 + 2 gene_id "SS18L1"; transcript_id "AK299881:uc011aaa.1";
+chr20 hg19_knownGene exon 60738514 60738678 0.000000 + . gene_id "SS18L1"; transcript_id "AK299881:uc011aaa.1";
+chr20 hg19_knownGene CDS 60739201 60739302 0.000000 + 2 gene_id "SS18L1"; transcript_id "AK299881:uc011aaa.1";
+chr20 hg19_knownGene exon 60739201 60739302 0.000000 + . gene_id "SS18L1"; transcript_id "AK299881:uc011aaa.1";
+chr20 hg19_knownGene CDS 60740478 60740570 0.000000 + 2 gene_id "SS18L1"; transcript_id "AK299881:uc011aaa.1";
+chr20 hg19_knownGene exon 60740478 60740570 0.000000 + . gene_id "SS18L1"; transcript_id "AK299881:uc011aaa.1";
+chr20 hg19_knownGene CDS 60747738 60747857 0.000000 + 2 gene_id "SS18L1"; transcript_id "AK299881:uc011aaa.1";
+chr20 hg19_knownGene exon 60747738 60747857 0.000000 + . gene_id "SS18L1"; transcript_id "AK299881:uc011aaa.1";
+chr20 hg19_knownGene CDS 60749573 60749784 0.000000 + 2 gene_id "SS18L1"; transcript_id "AK299881:uc011aaa.1";
+chr20 hg19_knownGene exon 60749573 60749841 0.000000 + . gene_id "SS18L1"; transcript_id "AK299881:uc011aaa.1";
+chr20 hg19_knownGene exon 60718822 60718945 0.000000 + . gene_id "SS18L1"; transcript_id "BC068993:uc002ybz.1";
+chr20 hg19_knownGene exon 60729337 60729521 0.000000 + . gene_id "SS18L1"; transcript_id "BC068993:uc002ybz.1";
+chr20 hg19_knownGene exon 60733728 60733998 0.000000 + . gene_id "SS18L1"; transcript_id "BC068993:uc002ybz.1";
+chr20 hg19_knownGene exon 60734933 60735017 0.000000 + . gene_id "SS18L1"; transcript_id "BC068993:uc002ybz.1";
+chr20 hg19_knownGene exon 60736492 60736636 0.000000 + . gene_id "SS18L1"; transcript_id "BC068993:uc002ybz.1";
+chr20 hg19_knownGene exon 60737808 60737987 0.000000 + . gene_id "SS18L1"; transcript_id "BC068993:uc002ybz.1";
+chr20 hg19_knownGene exon 60738514 60738678 0.000000 + . gene_id "SS18L1"; transcript_id "BC068993:uc002ybz.1";
+chr20 hg19_knownGene exon 60739201 60739302 0.000000 + . gene_id "SS18L1"; transcript_id "BC068993:uc002ybz.1";
+chr20 hg19_knownGene exon 60740478 60740570 0.000000 + . gene_id "SS18L1"; transcript_id "BC068993:uc002ybz.1";
+chr20 hg19_knownGene exon 60747738 60747857 0.000000 + . gene_id "SS18L1"; transcript_id "BC068993:uc002ybz.1";
+chr20 hg19_knownGene exon 60749573 60749700 0.000000 + . gene_id "SS18L1"; transcript_id "BC068993:uc002ybz.1";
+chr20 hg19_knownGene exon 60754238 60754412 0.000000 + . gene_id "SS18L1"; transcript_id "BC068993:uc002ybz.1";
+chr20 hg19_knownGene exon 60755225 60755957 0.000000 + . gene_id "SS18L1"; transcript_id "BC068993:uc002ybz.1";
+chr20 hg19_knownGene exon 60718822 60718945 0.000000 + . gene_id "SS18L1"; transcript_id "BC034494:uc002yca.1";
+chr20 hg19_knownGene exon 60733728 60733804 0.000000 + . gene_id "SS18L1"; transcript_id "BC034494:uc002yca.1";
+chr20 hg19_knownGene exon 60734933 60735017 0.000000 + . gene_id "SS18L1"; transcript_id "BC034494:uc002yca.1";
+chr20 hg19_knownGene exon 60736492 60736636 0.000000 + . gene_id "SS18L1"; transcript_id "BC034494:uc002yca.1";
+chr20 hg19_knownGene exon 60737808 60737987 0.000000 + . gene_id "SS18L1"; transcript_id "BC034494:uc002yca.1";
+chr20 hg19_knownGene exon 60738514 60738678 0.000000 + . gene_id "SS18L1"; transcript_id "BC034494:uc002yca.1";
+chr20 hg19_knownGene exon 60739201 60739302 0.000000 + . gene_id "SS18L1"; transcript_id "BC034494:uc002yca.1";
+chr20 hg19_knownGene exon 60740478 60740570 0.000000 + . gene_id "SS18L1"; transcript_id "BC034494:uc002yca.1";
+chr20 hg19_knownGene exon 60747738 60747857 0.000000 + . gene_id "SS18L1"; transcript_id "BC034494:uc002yca.1";
+chr20 hg19_knownGene exon 60749573 60749700 0.000000 + . gene_id "SS18L1"; transcript_id "BC034494:uc002yca.1";
+chr20 hg19_knownGene exon 60754238 60754412 0.000000 + . gene_id "SS18L1"; transcript_id "BC034494:uc002yca.1";
+chr20 hg19_knownGene exon 60755225 60755957 0.000000 + . gene_id "SS18L1"; transcript_id "BC034494:uc002yca.1";
+chr20 hg19_knownGene exon 60736474 60736636 0.000000 + . gene_id "SS18L1"; transcript_id "AY203931:uc002ycc.1";
+chr20 hg19_knownGene exon 60737808 60737987 0.000000 + . gene_id "SS18L1"; transcript_id "AY203931:uc002ycc.1";
+chr20 hg19_knownGene exon 60738514 60738678 0.000000 + . gene_id "SS18L1"; transcript_id "AY203931:uc002ycc.1";
+chr20 hg19_knownGene exon 60739201 60739302 0.000000 + . gene_id "SS18L1"; transcript_id "AY203931:uc002ycc.1";
+chr20 hg19_knownGene exon 60740478 60740570 0.000000 + . gene_id "SS18L1"; transcript_id "AY203931:uc002ycc.1";
+chr20 hg19_knownGene exon 60747738 60747857 0.000000 + . gene_id "SS18L1"; transcript_id "AY203931:uc002ycc.1";
+chr20 hg19_knownGene exon 60749573 60749700 0.000000 + . gene_id "SS18L1"; transcript_id "AY203931:uc002ycc.1";
+chr20 hg19_knownGene exon 60754238 60754412 0.000000 + . gene_id "SS18L1"; transcript_id "AY203931:uc002ycc.1";
+chr20 hg19_knownGene exon 60755225 60755957 0.000000 + . gene_id "SS18L1"; transcript_id "AY203931:uc002ycc.1";
+chr20 hg19_knownGene CDS 60718877 60718945 0.000000 + 0 gene_id "SS18L1"; transcript_id "NM_198935:uc002ycb.3";
+chr20 hg19_knownGene exon 60718822 60718945 0.000000 + . gene_id "SS18L1"; transcript_id "NM_198935:uc002ycb.3";
+chr20 hg19_knownGene CDS 60733728 60733804 0.000000 + 0 gene_id "SS18L1"; transcript_id "NM_198935:uc002ycb.3";
+chr20 hg19_knownGene exon 60733728 60733804 0.000000 + . gene_id "SS18L1"; transcript_id "NM_198935:uc002ycb.3";
+chr20 hg19_knownGene CDS 60734933 60735017 0.000000 + 1 gene_id "SS18L1"; transcript_id "NM_198935:uc002ycb.3";
+chr20 hg19_knownGene exon 60734933 60735017 0.000000 + . gene_id "SS18L1"; transcript_id "NM_198935:uc002ycb.3";
+chr20 hg19_knownGene CDS 60736492 60736636 0.000000 + 0 gene_id "SS18L1"; transcript_id "NM_198935:uc002ycb.3";
+chr20 hg19_knownGene exon 60736492 60736636 0.000000 + . gene_id "SS18L1"; transcript_id "NM_198935:uc002ycb.3";
+chr20 hg19_knownGene CDS 60737808 60737987 0.000000 + 2 gene_id "SS18L1"; transcript_id "NM_198935:uc002ycb.3";
+chr20 hg19_knownGene exon 60737808 60737987 0.000000 + . gene_id "SS18L1"; transcript_id "NM_198935:uc002ycb.3";
+chr20 hg19_knownGene CDS 60738514 60738678 0.000000 + 2 gene_id "SS18L1"; transcript_id "NM_198935:uc002ycb.3";
+chr20 hg19_knownGene exon 60738514 60738678 0.000000 + . gene_id "SS18L1"; transcript_id "NM_198935:uc002ycb.3";
+chr20 hg19_knownGene CDS 60739201 60739302 0.000000 + 2 gene_id "SS18L1"; transcript_id "NM_198935:uc002ycb.3";
+chr20 hg19_knownGene exon 60739201 60739302 0.000000 + . gene_id "SS18L1"; transcript_id "NM_198935:uc002ycb.3";
+chr20 hg19_knownGene CDS 60740478 60740570 0.000000 + 2 gene_id "SS18L1"; transcript_id "NM_198935:uc002ycb.3";
+chr20 hg19_knownGene exon 60740478 60740570 0.000000 + . gene_id "SS18L1"; transcript_id "NM_198935:uc002ycb.3";
+chr20 hg19_knownGene CDS 60747738 60747857 0.000000 + 2 gene_id "SS18L1"; transcript_id "NM_198935:uc002ycb.3";
+chr20 hg19_knownGene exon 60747738 60747857 0.000000 + . gene_id "SS18L1"; transcript_id "NM_198935:uc002ycb.3";
+chr20 hg19_knownGene CDS 60749573 60749700 0.000000 + 2 gene_id "SS18L1"; transcript_id "NM_198935:uc002ycb.3";
+chr20 hg19_knownGene exon 60749573 60749700 0.000000 + . gene_id "SS18L1"; transcript_id "NM_198935:uc002ycb.3";
+chr20 hg19_knownGene CDS 60754238 60754261 0.000000 + 0 gene_id "SS18L1"; transcript_id "NM_198935:uc002ycb.3";
+chr20 hg19_knownGene exon 60754238 60757566 0.000000 + . gene_id "SS18L1"; transcript_id "NM_198935:uc002ycb.3";
+chr20 hg19_knownGene exon 60758081 60758113 0.000000 + . gene_id "GTPBP5"; transcript_id "NM_015666:uc002yce.4";
+chr20 hg19_knownGene CDS 60768477 60768680 0.000000 + 0 gene_id "GTPBP5"; transcript_id "NM_015666:uc002yce.4";
+chr20 hg19_knownGene exon 60768472 60768680 0.000000 + . gene_id "GTPBP5"; transcript_id "NM_015666:uc002yce.4";
+chr20 hg19_knownGene CDS 60770858 60771005 0.000000 + 0 gene_id "GTPBP5"; transcript_id "NM_015666:uc002yce.4";
+chr20 hg19_knownGene exon 60770858 60771005 0.000000 + . gene_id "GTPBP5"; transcript_id "NM_015666:uc002yce.4";
+chr20 hg19_knownGene CDS 60772908 60773023 0.000000 + 2 gene_id "GTPBP5"; transcript_id "NM_015666:uc002yce.4";
+chr20 hg19_knownGene exon 60772908 60773023 0.000000 + . gene_id "GTPBP5"; transcript_id "NM_015666:uc002yce.4";
+chr20 hg19_knownGene CDS 60773690 60773908 0.000000 + 0 gene_id "GTPBP5"; transcript_id "NM_015666:uc002yce.4";
+chr20 hg19_knownGene exon 60773690 60773908 0.000000 + . gene_id "GTPBP5"; transcript_id "NM_015666:uc002yce.4";
+chr20 hg19_knownGene CDS 60774175 60774313 0.000000 + 0 gene_id "GTPBP5"; transcript_id "NM_015666:uc002yce.4";
+chr20 hg19_knownGene exon 60774175 60774313 0.000000 + . gene_id "GTPBP5"; transcript_id "NM_015666:uc002yce.4";
+chr20 hg19_knownGene CDS 60775739 60776130 0.000000 + 2 gene_id "GTPBP5"; transcript_id "NM_015666:uc002yce.4";
+chr20 hg19_knownGene exon 60775739 60777810 0.000000 + . gene_id "GTPBP5"; transcript_id "NM_015666:uc002yce.4";
+chr20 hg19_knownGene exon 60758081 60758113 0.000000 + . gene_id "GTPBP5"; transcript_id "AK316325:uc011aab.2";
+chr20 hg19_knownGene exon 60770858 60771005 0.000000 + . gene_id "GTPBP5"; transcript_id "AK316325:uc011aab.2";
+chr20 hg19_knownGene exon 60772509 60772583 0.000000 + . gene_id "GTPBP5"; transcript_id "AK316325:uc011aab.2";
+chr20 hg19_knownGene exon 60772908 60773023 0.000000 + . gene_id "GTPBP5"; transcript_id "AK316325:uc011aab.2";
+chr20 hg19_knownGene CDS 60773906 60773908 0.000000 + 0 gene_id "GTPBP5"; transcript_id "AK316325:uc011aab.2";
+chr20 hg19_knownGene exon 60773690 60773908 0.000000 + . gene_id "GTPBP5"; transcript_id "AK316325:uc011aab.2";
+chr20 hg19_knownGene CDS 60774175 60774313 0.000000 + 0 gene_id "GTPBP5"; transcript_id "AK316325:uc011aab.2";
+chr20 hg19_knownGene exon 60774175 60774313 0.000000 + . gene_id "GTPBP5"; transcript_id "AK316325:uc011aab.2";
+chr20 hg19_knownGene CDS 60775739 60776130 0.000000 + 2 gene_id "GTPBP5"; transcript_id "AK316325:uc011aab.2";
+chr20 hg19_knownGene exon 60775739 60777810 0.000000 + . gene_id "GTPBP5"; transcript_id "AK316325:uc011aab.2";
+chr20 hg19_knownGene exon 60758081 60758113 0.000000 + . gene_id "GTPBP5"; transcript_id "AK316027:uc011aac.2";
+chr20 hg19_knownGene exon 60770858 60771005 0.000000 + . gene_id "GTPBP5"; transcript_id "AK316027:uc011aac.2";
+chr20 hg19_knownGene exon 60772908 60773023 0.000000 + . gene_id "GTPBP5"; transcript_id "AK316027:uc011aac.2";
+chr20 hg19_knownGene CDS 60773906 60773908 0.000000 + 0 gene_id "GTPBP5"; transcript_id "AK316027:uc011aac.2";
+chr20 hg19_knownGene exon 60773690 60773908 0.000000 + . gene_id "GTPBP5"; transcript_id "AK316027:uc011aac.2";
+chr20 hg19_knownGene CDS 60774175 60774313 0.000000 + 0 gene_id "GTPBP5"; transcript_id "AK316027:uc011aac.2";
+chr20 hg19_knownGene exon 60774175 60774313 0.000000 + . gene_id "GTPBP5"; transcript_id "AK316027:uc011aac.2";
+chr20 hg19_knownGene CDS 60775739 60776130 0.000000 + 2 gene_id "GTPBP5"; transcript_id "AK316027:uc011aac.2";
+chr20 hg19_knownGene exon 60775739 60777810 0.000000 + . gene_id "GTPBP5"; transcript_id "AK316027:uc011aac.2";
+chr20 hg19_knownGene exon 60758081 60758113 0.000000 + . gene_id "GTPBP5"; transcript_id "AK299189:uc011aad.2";
+chr20 hg19_knownGene exon 60768472 60768680 0.000000 + . gene_id "GTPBP5"; transcript_id "AK299189:uc011aad.2";
+chr20 hg19_knownGene exon 60770858 60771005 0.000000 + . gene_id "GTPBP5"; transcript_id "AK299189:uc011aad.2";
+chr20 hg19_knownGene CDS 60773906 60773908 0.000000 + 0 gene_id "GTPBP5"; transcript_id "AK299189:uc011aad.2";
+chr20 hg19_knownGene exon 60773690 60773908 0.000000 + . gene_id "GTPBP5"; transcript_id "AK299189:uc011aad.2";
+chr20 hg19_knownGene CDS 60774175 60774313 0.000000 + 0 gene_id "GTPBP5"; transcript_id "AK299189:uc011aad.2";
+chr20 hg19_knownGene exon 60774175 60774313 0.000000 + . gene_id "GTPBP5"; transcript_id "AK299189:uc011aad.2";
+chr20 hg19_knownGene CDS 60775739 60776130 0.000000 + 2 gene_id "GTPBP5"; transcript_id "AK299189:uc011aad.2";
+chr20 hg19_knownGene exon 60775739 60777810 0.000000 + . gene_id "GTPBP5"; transcript_id "AK299189:uc011aad.2";
+chr20 hg19_knownGene exon 60758081 60758113 0.000000 + . gene_id "GTPBP5"; transcript_id "AK299147:uc011aae.2";
+chr20 hg19_knownGene exon 60770858 60771005 0.000000 + . gene_id "GTPBP5"; transcript_id "AK299147:uc011aae.2";
+chr20 hg19_knownGene CDS 60773906 60773908 0.000000 + 0 gene_id "GTPBP5"; transcript_id "AK299147:uc011aae.2";
+chr20 hg19_knownGene exon 60773690 60773908 0.000000 + . gene_id "GTPBP5"; transcript_id "AK299147:uc011aae.2";
+chr20 hg19_knownGene CDS 60774175 60774313 0.000000 + 0 gene_id "GTPBP5"; transcript_id "AK299147:uc011aae.2";
+chr20 hg19_knownGene exon 60774175 60774313 0.000000 + . gene_id "GTPBP5"; transcript_id "AK299147:uc011aae.2";
+chr20 hg19_knownGene CDS 60775739 60776130 0.000000 + 2 gene_id "GTPBP5"; transcript_id "AK299147:uc011aae.2";
+chr20 hg19_knownGene exon 60775739 60777810 0.000000 + . gene_id "GTPBP5"; transcript_id "AK299147:uc011aae.2";
+chr20 hg19_knownGene exon 60758081 60758113 0.000000 + . gene_id "GTPBP5"; transcript_id "AK299726:uc011aaf.2";
+chr20 hg19_knownGene CDS 60768477 60768680 0.000000 + 0 gene_id "GTPBP5"; transcript_id "AK299726:uc011aaf.2";
+chr20 hg19_knownGene exon 60768472 60768680 0.000000 + . gene_id "GTPBP5"; transcript_id "AK299726:uc011aaf.2";
+chr20 hg19_knownGene CDS 60770858 60771005 0.000000 + 0 gene_id "GTPBP5"; transcript_id "AK299726:uc011aaf.2";
+chr20 hg19_knownGene exon 60770858 60771005 0.000000 + . gene_id "GTPBP5"; transcript_id "AK299726:uc011aaf.2";
+chr20 hg19_knownGene CDS 60775739 60776130 0.000000 + 2 gene_id "GTPBP5"; transcript_id "AK299726:uc011aaf.2";
+chr20 hg19_knownGene exon 60775739 60777810 0.000000 + . gene_id "GTPBP5"; transcript_id "AK299726:uc011aaf.2";
+chr20 hg19_knownGene CDS 60791065 60791982 0.000000 - 0 gene_id "HRH3"; transcript_id "NM_007232:uc002ycf.2";
+chr20 hg19_knownGene exon 60790017 60791982 0.000000 - . gene_id "HRH3"; transcript_id "NM_007232:uc002ycf.2";
+chr20 hg19_knownGene CDS 60793547 60793713 0.000000 - 2 gene_id "HRH3"; transcript_id "NM_007232:uc002ycf.2";
+chr20 hg19_knownGene exon 60793547 60793713 0.000000 - . gene_id "HRH3"; transcript_id "NM_007232:uc002ycf.2";
+chr20 hg19_knownGene CDS 60794777 60795026 0.000000 - 0 gene_id "HRH3"; transcript_id "NM_007232:uc002ycf.2";
+chr20 hg19_knownGene exon 60794777 60795323 0.000000 - . gene_id "HRH3"; transcript_id "NM_007232:uc002ycf.2";
+chr20 hg19_knownGene CDS 60790438 60790462 0.000000 - 1 gene_id "HRH3"; transcript_id "AF346904:uc002ych.3";
+chr20 hg19_knownGene exon 60790435 60790462 0.000000 - . gene_id "HRH3"; transcript_id "AF346904:uc002ych.3";
+chr20 hg19_knownGene CDS 60791066 60791146 0.000000 - 1 gene_id "HRH3"; transcript_id "AF346904:uc002ych.3";
+chr20 hg19_knownGene exon 60791066 60791146 0.000000 - . gene_id "HRH3"; transcript_id "AF346904:uc002ych.3";
+chr20 hg19_knownGene CDS 60791579 60791982 0.000000 - 0 gene_id "HRH3"; transcript_id "AF346904:uc002ych.3";
+chr20 hg19_knownGene exon 60791579 60791982 0.000000 - . gene_id "HRH3"; transcript_id "AF346904:uc002ych.3";
+chr20 hg19_knownGene CDS 60793547 60793713 0.000000 - 2 gene_id "HRH3"; transcript_id "AF346904:uc002ych.3";
+chr20 hg19_knownGene exon 60793547 60793713 0.000000 - . gene_id "HRH3"; transcript_id "AF346904:uc002ych.3";
+chr20 hg19_knownGene CDS 60794777 60795026 0.000000 - 0 gene_id "HRH3"; transcript_id "AF346904:uc002ych.3";
+chr20 hg19_knownGene exon 60794777 60795323 0.000000 - . gene_id "HRH3"; transcript_id "AF346904:uc002ych.3";
+chr20 hg19_knownGene CDS 60790438 60790462 0.000000 - 1 gene_id "HRH3"; transcript_id "AF321913:uc002ycg.3";
+chr20 hg19_knownGene exon 60790435 60790462 0.000000 - . gene_id "HRH3"; transcript_id "AF321913:uc002ycg.3";
+chr20 hg19_knownGene CDS 60791066 60791338 0.000000 - 1 gene_id "HRH3"; transcript_id "AF321913:uc002ycg.3";
+chr20 hg19_knownGene exon 60791066 60791338 0.000000 - . gene_id "HRH3"; transcript_id "AF321913:uc002ycg.3";
+chr20 hg19_knownGene CDS 60791579 60791982 0.000000 - 0 gene_id "HRH3"; transcript_id "AF321913:uc002ycg.3";
+chr20 hg19_knownGene exon 60791579 60791982 0.000000 - . gene_id "HRH3"; transcript_id "AF321913:uc002ycg.3";
+chr20 hg19_knownGene CDS 60793547 60793713 0.000000 - 2 gene_id "HRH3"; transcript_id "AF321913:uc002ycg.3";
+chr20 hg19_knownGene exon 60793547 60793713 0.000000 - . gene_id "HRH3"; transcript_id "AF321913:uc002ycg.3";
+chr20 hg19_knownGene CDS 60794777 60795026 0.000000 - 0 gene_id "HRH3"; transcript_id "AF321913:uc002ycg.3";
+chr20 hg19_knownGene exon 60794777 60795323 0.000000 - . gene_id "HRH3"; transcript_id "AF321913:uc002ycg.3";
+chr20 hg19_knownGene CDS 60790438 60790462 0.000000 - 1 gene_id "HRH3"; transcript_id "AB019000:uc002yci.3";
+chr20 hg19_knownGene exon 60790435 60790462 0.000000 - . gene_id "HRH3"; transcript_id "AB019000:uc002yci.3";
+chr20 hg19_knownGene CDS 60791066 60791982 0.000000 - 0 gene_id "HRH3"; transcript_id "AB019000:uc002yci.3";
+chr20 hg19_knownGene exon 60791066 60791982 0.000000 - . gene_id "HRH3"; transcript_id "AB019000:uc002yci.3";
+chr20 hg19_knownGene CDS 60793547 60793713 0.000000 - 2 gene_id "HRH3"; transcript_id "AB019000:uc002yci.3";
+chr20 hg19_knownGene exon 60793547 60793713 0.000000 - . gene_id "HRH3"; transcript_id "AB019000:uc002yci.3";
+chr20 hg19_knownGene CDS 60794777 60795026 0.000000 - 0 gene_id "HRH3"; transcript_id "AB019000:uc002yci.3";
+chr20 hg19_knownGene exon 60794777 60795323 0.000000 - . gene_id "HRH3"; transcript_id "AB019000:uc002yci.3";
+chr20 hg19_knownGene exon 60807016 60809039 0.000000 + . gene_id "AK126744"; transcript_id "AK126744:uc002ycj.1";
+chr20 hg19_knownGene exon 60810062 60810419 0.000000 + . gene_id "AK126744"; transcript_id "AK126744:uc002ycj.1";
+chr20 hg19_knownGene exon 60810528 60811355 0.000000 + . gene_id "AK126744"; transcript_id "AK126744:uc002ycj.1";
+chr20 hg19_knownGene CDS 60854296 60854405 0.000000 + 0 gene_id "OSBPL2"; transcript_id "AK124174:uc002ycm.1";
+chr20 hg19_knownGene exon 60854170 60854405 0.000000 + . gene_id "OSBPL2"; transcript_id "AK124174:uc002ycm.1";
+chr20 hg19_knownGene CDS 60856114 60856221 0.000000 + 1 gene_id "OSBPL2"; transcript_id "AK124174:uc002ycm.1";
+chr20 hg19_knownGene exon 60856114 60856221 0.000000 + . gene_id "OSBPL2"; transcript_id "AK124174:uc002ycm.1";
+chr20 hg19_knownGene CDS 60856846 60856935 0.000000 + 1 gene_id "OSBPL2"; transcript_id "AK124174:uc002ycm.1";
+chr20 hg19_knownGene exon 60856846 60856935 0.000000 + . gene_id "OSBPL2"; transcript_id "AK124174:uc002ycm.1";
+chr20 hg19_knownGene CDS 60859102 60859345 0.000000 + 1 gene_id "OSBPL2"; transcript_id "AK124174:uc002ycm.1";
+chr20 hg19_knownGene exon 60859102 60861505 0.000000 + . gene_id "OSBPL2"; transcript_id "AK124174:uc002ycm.1";
+chr20 hg19_knownGene exon 60813580 60813653 0.000000 + . gene_id "OSBPL2"; transcript_id "NM_014835:uc002ycl.1";
+chr20 hg19_knownGene CDS 60831241 60831277 0.000000 + 0 gene_id "OSBPL2"; transcript_id "NM_014835:uc002ycl.1";
+chr20 hg19_knownGene exon 60831113 60831277 0.000000 + . gene_id "OSBPL2"; transcript_id "NM_014835:uc002ycl.1";
+chr20 hg19_knownGene CDS 60835073 60835181 0.000000 + 2 gene_id "OSBPL2"; transcript_id "NM_014835:uc002ycl.1";
+chr20 hg19_knownGene exon 60835073 60835181 0.000000 + . gene_id "OSBPL2"; transcript_id "NM_014835:uc002ycl.1";
+chr20 hg19_knownGene CDS 60838672 60838747 0.000000 + 1 gene_id "OSBPL2"; transcript_id "NM_014835:uc002ycl.1";
+chr20 hg19_knownGene exon 60838672 60838747 0.000000 + . gene_id "OSBPL2"; transcript_id "NM_014835:uc002ycl.1";
+chr20 hg19_knownGene CDS 60847181 60847315 0.000000 + 0 gene_id "OSBPL2"; transcript_id "NM_014835:uc002ycl.1";
+chr20 hg19_knownGene exon 60847181 60847315 0.000000 + . gene_id "OSBPL2"; transcript_id "NM_014835:uc002ycl.1";
+chr20 hg19_knownGene CDS 60848365 60848462 0.000000 + 0 gene_id "OSBPL2"; transcript_id "NM_014835:uc002ycl.1";
+chr20 hg19_knownGene exon 60848365 60848462 0.000000 + . gene_id "OSBPL2"; transcript_id "NM_014835:uc002ycl.1";
+chr20 hg19_knownGene CDS 60854213 60854395 0.000000 + 1 gene_id "OSBPL2"; transcript_id "NM_014835:uc002ycl.1";
+chr20 hg19_knownGene exon 60854213 60854395 0.000000 + . gene_id "OSBPL2"; transcript_id "NM_014835:uc002ycl.1";
+chr20 hg19_knownGene CDS 60856114 60856221 0.000000 + 1 gene_id "OSBPL2"; transcript_id "NM_014835:uc002ycl.1";
+chr20 hg19_knownGene exon 60856114 60856221 0.000000 + . gene_id "OSBPL2"; transcript_id "NM_014835:uc002ycl.1";
+chr20 hg19_knownGene CDS 60856846 60856935 0.000000 + 1 gene_id "OSBPL2"; transcript_id "NM_014835:uc002ycl.1";
+chr20 hg19_knownGene exon 60856846 60856935 0.000000 + . gene_id "OSBPL2"; transcript_id "NM_014835:uc002ycl.1";
+chr20 hg19_knownGene CDS 60859102 60859225 0.000000 + 1 gene_id "OSBPL2"; transcript_id "NM_014835:uc002ycl.1";
+chr20 hg19_knownGene exon 60859102 60859225 0.000000 + . gene_id "OSBPL2"; transcript_id "NM_014835:uc002ycl.1";
+chr20 hg19_knownGene CDS 60861639 60861767 0.000000 + 0 gene_id "OSBPL2"; transcript_id "NM_014835:uc002ycl.1";
+chr20 hg19_knownGene exon 60861639 60861767 0.000000 + . gene_id "OSBPL2"; transcript_id "NM_014835:uc002ycl.1";
+chr20 hg19_knownGene CDS 60864263 60864386 0.000000 + 0 gene_id "OSBPL2"; transcript_id "NM_014835:uc002ycl.1";
+chr20 hg19_knownGene exon 60864263 60864386 0.000000 + . gene_id "OSBPL2"; transcript_id "NM_014835:uc002ycl.1";
+chr20 hg19_knownGene CDS 60866759 60866849 0.000000 + 2 gene_id "OSBPL2"; transcript_id "NM_014835:uc002ycl.1";
+chr20 hg19_knownGene exon 60866759 60866849 0.000000 + . gene_id "OSBPL2"; transcript_id "NM_014835:uc002ycl.1";
+chr20 hg19_knownGene CDS 60868841 60868940 0.000000 + 1 gene_id "OSBPL2"; transcript_id "NM_014835:uc002ycl.1";
+chr20 hg19_knownGene exon 60868841 60871269 0.000000 + . gene_id "OSBPL2"; transcript_id "NM_014835:uc002ycl.1";
+chr20 hg19_knownGene exon 60813580 60813653 0.000000 + . gene_id "OSBPL2"; transcript_id "NM_144498:uc002yck.1";
+chr20 hg19_knownGene CDS 60831241 60831277 0.000000 + 0 gene_id "OSBPL2"; transcript_id "NM_144498:uc002yck.1";
+chr20 hg19_knownGene exon 60831113 60831277 0.000000 + . gene_id "OSBPL2"; transcript_id "NM_144498:uc002yck.1";
+chr20 hg19_knownGene CDS 60835037 60835181 0.000000 + 2 gene_id "OSBPL2"; transcript_id "NM_144498:uc002yck.1";
+chr20 hg19_knownGene exon 60835037 60835181 0.000000 + . gene_id "OSBPL2"; transcript_id "NM_144498:uc002yck.1";
+chr20 hg19_knownGene CDS 60838672 60838747 0.000000 + 1 gene_id "OSBPL2"; transcript_id "NM_144498:uc002yck.1";
+chr20 hg19_knownGene exon 60838672 60838747 0.000000 + . gene_id "OSBPL2"; transcript_id "NM_144498:uc002yck.1";
+chr20 hg19_knownGene CDS 60847181 60847315 0.000000 + 0 gene_id "OSBPL2"; transcript_id "NM_144498:uc002yck.1";
+chr20 hg19_knownGene exon 60847181 60847315 0.000000 + . gene_id "OSBPL2"; transcript_id "NM_144498:uc002yck.1";
+chr20 hg19_knownGene CDS 60848365 60848462 0.000000 + 0 gene_id "OSBPL2"; transcript_id "NM_144498:uc002yck.1";
+chr20 hg19_knownGene exon 60848365 60848462 0.000000 + . gene_id "OSBPL2"; transcript_id "NM_144498:uc002yck.1";
+chr20 hg19_knownGene CDS 60854213 60854395 0.000000 + 1 gene_id "OSBPL2"; transcript_id "NM_144498:uc002yck.1";
+chr20 hg19_knownGene exon 60854213 60854395 0.000000 + . gene_id "OSBPL2"; transcript_id "NM_144498:uc002yck.1";
+chr20 hg19_knownGene CDS 60856114 60856221 0.000000 + 1 gene_id "OSBPL2"; transcript_id "NM_144498:uc002yck.1";
+chr20 hg19_knownGene exon 60856114 60856221 0.000000 + . gene_id "OSBPL2"; transcript_id "NM_144498:uc002yck.1";
+chr20 hg19_knownGene CDS 60856846 60856935 0.000000 + 1 gene_id "OSBPL2"; transcript_id "NM_144498:uc002yck.1";
+chr20 hg19_knownGene exon 60856846 60856935 0.000000 + . gene_id "OSBPL2"; transcript_id "NM_144498:uc002yck.1";
+chr20 hg19_knownGene CDS 60859102 60859225 0.000000 + 1 gene_id "OSBPL2"; transcript_id "NM_144498:uc002yck.1";
+chr20 hg19_knownGene exon 60859102 60859225 0.000000 + . gene_id "OSBPL2"; transcript_id "NM_144498:uc002yck.1";
+chr20 hg19_knownGene CDS 60861639 60861767 0.000000 + 0 gene_id "OSBPL2"; transcript_id "NM_144498:uc002yck.1";
+chr20 hg19_knownGene exon 60861639 60861767 0.000000 + . gene_id "OSBPL2"; transcript_id "NM_144498:uc002yck.1";
+chr20 hg19_knownGene CDS 60864263 60864386 0.000000 + 0 gene_id "OSBPL2"; transcript_id "NM_144498:uc002yck.1";
+chr20 hg19_knownGene exon 60864263 60864386 0.000000 + . gene_id "OSBPL2"; transcript_id "NM_144498:uc002yck.1";
+chr20 hg19_knownGene CDS 60866759 60866849 0.000000 + 2 gene_id "OSBPL2"; transcript_id "NM_144498:uc002yck.1";
+chr20 hg19_knownGene exon 60866759 60866849 0.000000 + . gene_id "OSBPL2"; transcript_id "NM_144498:uc002yck.1";
+chr20 hg19_knownGene CDS 60868841 60868940 0.000000 + 1 gene_id "OSBPL2"; transcript_id "NM_144498:uc002yck.1";
+chr20 hg19_knownGene exon 60868841 60871269 0.000000 + . gene_id "OSBPL2"; transcript_id "NM_144498:uc002yck.1";
+chr20 hg19_knownGene exon 60813580 60813653 0.000000 + . gene_id "OSBPL2"; transcript_id "AK296595:uc011aah.1";
+chr20 hg19_knownGene exon 60831113 60831277 0.000000 + . gene_id "OSBPL2"; transcript_id "AK296595:uc011aah.1";
+chr20 hg19_knownGene exon 60838672 60838747 0.000000 + . gene_id "OSBPL2"; transcript_id "AK296595:uc011aah.1";
+chr20 hg19_knownGene exon 60839685 60839774 0.000000 + . gene_id "OSBPL2"; transcript_id "AK296595:uc011aah.1";
+chr20 hg19_knownGene CDS 60847199 60847315 0.000000 + 0 gene_id "OSBPL2"; transcript_id "AK296595:uc011aah.1";
+chr20 hg19_knownGene exon 60847181 60847315 0.000000 + . gene_id "OSBPL2"; transcript_id "AK296595:uc011aah.1";
+chr20 hg19_knownGene CDS 60848365 60848462 0.000000 + 0 gene_id "OSBPL2"; transcript_id "AK296595:uc011aah.1";
+chr20 hg19_knownGene exon 60848365 60848462 0.000000 + . gene_id "OSBPL2"; transcript_id "AK296595:uc011aah.1";
+chr20 hg19_knownGene CDS 60854213 60854395 0.000000 + 1 gene_id "OSBPL2"; transcript_id "AK296595:uc011aah.1";
+chr20 hg19_knownGene exon 60854213 60854395 0.000000 + . gene_id "OSBPL2"; transcript_id "AK296595:uc011aah.1";
+chr20 hg19_knownGene CDS 60856114 60856221 0.000000 + 1 gene_id "OSBPL2"; transcript_id "AK296595:uc011aah.1";
+chr20 hg19_knownGene exon 60856114 60856221 0.000000 + . gene_id "OSBPL2"; transcript_id "AK296595:uc011aah.1";
+chr20 hg19_knownGene CDS 60856846 60856935 0.000000 + 1 gene_id "OSBPL2"; transcript_id "AK296595:uc011aah.1";
+chr20 hg19_knownGene exon 60856846 60856935 0.000000 + . gene_id "OSBPL2"; transcript_id "AK296595:uc011aah.1";
+chr20 hg19_knownGene CDS 60859102 60859225 0.000000 + 1 gene_id "OSBPL2"; transcript_id "AK296595:uc011aah.1";
+chr20 hg19_knownGene exon 60859102 60859225 0.000000 + . gene_id "OSBPL2"; transcript_id "AK296595:uc011aah.1";
+chr20 hg19_knownGene CDS 60861639 60861767 0.000000 + 0 gene_id "OSBPL2"; transcript_id "AK296595:uc011aah.1";
+chr20 hg19_knownGene exon 60861639 60861767 0.000000 + . gene_id "OSBPL2"; transcript_id "AK296595:uc011aah.1";
+chr20 hg19_knownGene CDS 60866759 60866849 0.000000 + 0 gene_id "OSBPL2"; transcript_id "AK296595:uc011aah.1";
+chr20 hg19_knownGene exon 60866759 60866849 0.000000 + . gene_id "OSBPL2"; transcript_id "AK296595:uc011aah.1";
+chr20 hg19_knownGene CDS 60868841 60869010 0.000000 + 2 gene_id "OSBPL2"; transcript_id "AK296595:uc011aah.1";
+chr20 hg19_knownGene exon 60868841 60871269 0.000000 + . gene_id "OSBPL2"; transcript_id "AK296595:uc011aah.1";
+chr20 hg19_knownGene exon 60878027 60878105 0.000000 + . gene_id "ADRM1"; transcript_id "AK297567:uc011aai.1";
+chr20 hg19_knownGene CDS 60878625 60878837 0.000000 + 0 gene_id "ADRM1"; transcript_id "AK297567:uc011aai.1";
+chr20 hg19_knownGene exon 60878624 60878837 0.000000 + . gene_id "ADRM1"; transcript_id "AK297567:uc011aai.1";
+chr20 hg19_knownGene CDS 60879517 60879633 0.000000 + 0 gene_id "ADRM1"; transcript_id "AK297567:uc011aai.1";
+chr20 hg19_knownGene exon 60879517 60879633 0.000000 + . gene_id "ADRM1"; transcript_id "AK297567:uc011aai.1";
+chr20 hg19_knownGene CDS 60881253 60881486 0.000000 + 0 gene_id "ADRM1"; transcript_id "AK297567:uc011aai.1";
+chr20 hg19_knownGene exon 60881253 60881632 0.000000 + . gene_id "ADRM1"; transcript_id "AK297567:uc011aai.1";
+chr20 hg19_knownGene exon 60880362 60881376 0.000000 + . gene_id "ADRM1"; transcript_id "AK054985:uc002ycp.1";
+chr20 hg19_knownGene exon 60881704 60881790 0.000000 + . gene_id "ADRM1"; transcript_id "AK054985:uc002ycp.1";
+chr20 hg19_knownGene exon 60878027 60878105 0.000000 + . gene_id "ADRM1"; transcript_id "NM_007002:uc002ycn.3";
+chr20 hg19_knownGene CDS 60878625 60878837 0.000000 + 0 gene_id "ADRM1"; transcript_id "NM_007002:uc002ycn.3";
+chr20 hg19_knownGene exon 60878624 60878837 0.000000 + . gene_id "ADRM1"; transcript_id "NM_007002:uc002ycn.3";
+chr20 hg19_knownGene CDS 60879517 60879633 0.000000 + 0 gene_id "ADRM1"; transcript_id "NM_007002:uc002ycn.3";
+chr20 hg19_knownGene exon 60879517 60879633 0.000000 + . gene_id "ADRM1"; transcript_id "NM_007002:uc002ycn.3";
+chr20 hg19_knownGene CDS 60881253 60881376 0.000000 + 0 gene_id "ADRM1"; transcript_id "NM_007002:uc002ycn.3";
+chr20 hg19_knownGene exon 60881253 60881376 0.000000 + . gene_id "ADRM1"; transcript_id "NM_007002:uc002ycn.3";
+chr20 hg19_knownGene CDS 60881704 60881790 0.000000 + 2 gene_id "ADRM1"; transcript_id "NM_007002:uc002ycn.3";
+chr20 hg19_knownGene exon 60881704 60881790 0.000000 + . gene_id "ADRM1"; transcript_id "NM_007002:uc002ycn.3";
+chr20 hg19_knownGene CDS 60882427 60882508 0.000000 + 2 gene_id "ADRM1"; transcript_id "NM_007002:uc002ycn.3";
+chr20 hg19_knownGene exon 60882427 60882508 0.000000 + . gene_id "ADRM1"; transcript_id "NM_007002:uc002ycn.3";
+chr20 hg19_knownGene CDS 60882652 60882884 0.000000 + 1 gene_id "ADRM1"; transcript_id "NM_007002:uc002ycn.3";
+chr20 hg19_knownGene exon 60882652 60882884 0.000000 + . gene_id "ADRM1"; transcript_id "NM_007002:uc002ycn.3";
+chr20 hg19_knownGene CDS 60883077 60883234 0.000000 + 2 gene_id "ADRM1"; transcript_id "NM_007002:uc002ycn.3";
+chr20 hg19_knownGene exon 60883077 60883234 0.000000 + . gene_id "ADRM1"; transcript_id "NM_007002:uc002ycn.3";
+chr20 hg19_knownGene CDS 60883424 60883526 0.000000 + 0 gene_id "ADRM1"; transcript_id "NM_007002:uc002ycn.3";
+chr20 hg19_knownGene exon 60883424 60883526 0.000000 + . gene_id "ADRM1"; transcript_id "NM_007002:uc002ycn.3";
+chr20 hg19_knownGene CDS 60883711 60883814 0.000000 + 2 gene_id "ADRM1"; transcript_id "NM_007002:uc002ycn.3";
+chr20 hg19_knownGene exon 60883711 60883918 0.000000 + . gene_id "ADRM1"; transcript_id "NM_007002:uc002ycn.3";
+chr20 hg19_knownGene exon 60878027 60878101 0.000000 + . gene_id "ADRM1"; transcript_id "NM_175573:uc002yco.3";
+chr20 hg19_knownGene CDS 60878625 60878837 0.000000 + 0 gene_id "ADRM1"; transcript_id "NM_175573:uc002yco.3";
+chr20 hg19_knownGene exon 60878624 60878837 0.000000 + . gene_id "ADRM1"; transcript_id "NM_175573:uc002yco.3";
+chr20 hg19_knownGene CDS 60879517 60879633 0.000000 + 0 gene_id "ADRM1"; transcript_id "NM_175573:uc002yco.3";
+chr20 hg19_knownGene exon 60879517 60879633 0.000000 + . gene_id "ADRM1"; transcript_id "NM_175573:uc002yco.3";
+chr20 hg19_knownGene CDS 60881253 60881376 0.000000 + 0 gene_id "ADRM1"; transcript_id "NM_175573:uc002yco.3";
+chr20 hg19_knownGene exon 60881253 60881376 0.000000 + . gene_id "ADRM1"; transcript_id "NM_175573:uc002yco.3";
+chr20 hg19_knownGene CDS 60881704 60881790 0.000000 + 2 gene_id "ADRM1"; transcript_id "NM_175573:uc002yco.3";
+chr20 hg19_knownGene exon 60881704 60881790 0.000000 + . gene_id "ADRM1"; transcript_id "NM_175573:uc002yco.3";
+chr20 hg19_knownGene CDS 60882427 60882508 0.000000 + 2 gene_id "ADRM1"; transcript_id "NM_175573:uc002yco.3";
+chr20 hg19_knownGene exon 60882427 60882508 0.000000 + . gene_id "ADRM1"; transcript_id "NM_175573:uc002yco.3";
+chr20 hg19_knownGene CDS 60882652 60882884 0.000000 + 1 gene_id "ADRM1"; transcript_id "NM_175573:uc002yco.3";
+chr20 hg19_knownGene exon 60882652 60882884 0.000000 + . gene_id "ADRM1"; transcript_id "NM_175573:uc002yco.3";
+chr20 hg19_knownGene CDS 60883077 60883234 0.000000 + 2 gene_id "ADRM1"; transcript_id "NM_175573:uc002yco.3";
+chr20 hg19_knownGene exon 60883077 60883234 0.000000 + . gene_id "ADRM1"; transcript_id "NM_175573:uc002yco.3";
+chr20 hg19_knownGene CDS 60883424 60883526 0.000000 + 0 gene_id "ADRM1"; transcript_id "NM_175573:uc002yco.3";
+chr20 hg19_knownGene exon 60883424 60883526 0.000000 + . gene_id "ADRM1"; transcript_id "NM_175573:uc002yco.3";
+chr20 hg19_knownGene CDS 60883711 60883814 0.000000 + 2 gene_id "ADRM1"; transcript_id "NM_175573:uc002yco.3";
+chr20 hg19_knownGene exon 60883711 60883918 0.000000 + . gene_id "ADRM1"; transcript_id "NM_175573:uc002yco.3";
+chr20 hg19_knownGene exon 60907529 60907616 0.000000 - . gene_id "MIR4758"; transcript_id "NR_039915:uc021wfx.1";
+chr20 hg19_knownGene CDS 60884395 60884531 0.000000 - 2 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60884121 60884531 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60884772 60884891 0.000000 - 2 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60884772 60884891 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60885044 60885137 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60885044 60885137 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60885234 60885367 0.000000 - 2 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60885234 60885367 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60885475 60885628 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60885475 60885628 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60885721 60885885 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60885721 60885885 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60885958 60886150 0.000000 - 1 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60885958 60886150 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60886218 60886363 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60886218 60886363 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60886457 60886592 0.000000 - 1 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60886457 60886592 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60886670 60886840 0.000000 - 1 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60886670 60886840 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60886976 60887106 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60886976 60887106 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60887229 60887372 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60887229 60887372 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60887456 60887588 0.000000 - 1 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60887456 60887588 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60887688 60887836 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60887688 60887836 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60887944 60888066 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60887944 60888066 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60888144 60888306 0.000000 - 1 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60888144 60888306 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60888383 60888516 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60888383 60888516 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60888705 60888858 0.000000 - 1 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60888705 60888858 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60889360 60889496 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60889360 60889496 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60889611 60889781 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60889611 60889781 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60889855 60890003 0.000000 - 2 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60889855 60890003 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60890084 60890263 0.000000 - 2 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60890084 60890263 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60891004 60891114 0.000000 - 2 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60891004 60891114 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60891727 60891829 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60891727 60891829 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60891938 60892079 0.000000 - 1 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60891938 60892079 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60892401 60892555 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60892401 60892555 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60892718 60892834 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60892718 60892834 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60893510 60893706 0.000000 - 2 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60893510 60893706 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60893899 60894069 0.000000 - 2 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60893899 60894069 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60894740 60894851 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60894740 60894851 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60895615 60895725 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60895615 60895725 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60895795 60895946 0.000000 - 2 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60895795 60895946 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60897075 60897224 0.000000 - 2 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60897075 60897224 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60897325 60897505 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60897325 60897505 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60897714 60897814 0.000000 - 2 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60897714 60897814 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60898512 60898726 0.000000 - 1 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60898512 60898726 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60898832 60898912 0.000000 - 1 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60898832 60898912 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60899136 60899260 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60899136 60899260 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60899497 60899610 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60899497 60899610 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60900372 60900602 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60900372 60900602 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60901733 60901816 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60901733 60901816 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60901921 60902022 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60901921 60902022 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60902289 60902462 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60902289 60902462 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60902585 60902725 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60902585 60902725 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60902922 60903066 0.000000 - 1 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60902922 60903066 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60903297 60903501 0.000000 - 2 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60903297 60903501 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60903900 60904111 0.000000 - 1 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60903900 60904111 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60904194 60904309 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60904194 60904309 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60904833 60904972 0.000000 - 2 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60904833 60904972 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60905544 60905670 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60905544 60905670 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60905799 60906000 0.000000 - 1 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60905799 60906000 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60906088 60906185 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60906088 60906185 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60907428 60907536 0.000000 - 1 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60907428 60907536 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60907613 60907773 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60907613 60907773 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60908146 60908299 0.000000 - 1 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60908146 60908299 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60908431 60908537 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60908431 60908537 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60908620 60908762 0.000000 - 2 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60908620 60908762 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60908957 60909095 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60908957 60909095 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60909242 60909398 0.000000 - 1 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60909242 60909398 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60909578 60909677 0.000000 - 2 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60909578 60909677 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60910077 60910182 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60910077 60910182 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60910273 60910325 0.000000 - 2 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60910273 60910325 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60911396 60911501 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60911396 60911501 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60911790 60911842 0.000000 - 2 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60911790 60911842 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60912646 60912783 0.000000 - 2 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60912646 60912783 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60912860 60912994 0.000000 - 2 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60912860 60912994 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60913072 60913206 0.000000 - 2 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60913072 60913206 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60913288 60913425 0.000000 - 2 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60913288 60913425 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60913524 60913664 0.000000 - 2 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60913524 60913664 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60920874 60920933 0.000000 - 2 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60920874 60920933 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60921137 60921271 0.000000 - 2 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60921137 60921271 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60921562 60921652 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60921562 60921652 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60921738 60921856 0.000000 - 2 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60921738 60921856 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60921969 60922084 0.000000 - 1 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60921969 60922084 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60926760 60926857 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60926760 60926857 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60926965 60927135 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60926965 60927135 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60927298 60927416 0.000000 - 2 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60927298 60927416 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60928190 60928307 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60928190 60928307 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60937456 60937608 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60937456 60937608 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60942005 60942301 0.000000 - 0 gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene exon 60942005 60942368 0.000000 - . gene_id "LAMA5"; transcript_id "NM_005560:uc002ycq.3";
+chr20 hg19_knownGene CDS 60884395 60884531 0.000000 - 2 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60884121 60884531 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60884772 60884891 0.000000 - 2 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60884772 60884891 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60885044 60885137 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60885044 60885137 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60885249 60885367 0.000000 - 2 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60885249 60885367 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60885475 60885628 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60885475 60885628 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60885721 60885885 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60885721 60885885 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60885958 60886150 0.000000 - 1 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60885958 60886150 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60886218 60886363 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60886218 60886363 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60886457 60886592 0.000000 - 1 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60886457 60886592 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60886670 60886840 0.000000 - 1 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60886670 60886840 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60886976 60887106 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60886976 60887106 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60887229 60887372 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60887229 60887372 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60887456 60887588 0.000000 - 1 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60887456 60887588 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60887688 60887836 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60887688 60887836 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60887944 60888066 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60887944 60888066 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60888144 60888306 0.000000 - 1 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60888144 60888306 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60888383 60888516 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60888383 60888516 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60888705 60888858 0.000000 - 1 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60888705 60888858 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60889360 60889496 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60889360 60889496 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60889611 60889781 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60889611 60889781 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60889855 60890003 0.000000 - 2 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60889855 60890003 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60890084 60890263 0.000000 - 2 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60890084 60890263 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60891004 60891114 0.000000 - 2 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60891004 60891114 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60891727 60891829 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60891727 60891829 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60891938 60892079 0.000000 - 1 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60891938 60892079 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60892401 60892555 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60892401 60892555 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60892718 60892834 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60892718 60892834 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60893510 60893706 0.000000 - 2 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60893510 60893706 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60893899 60894069 0.000000 - 2 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60893899 60894069 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60894740 60894851 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60894740 60894851 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60895615 60895725 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60895615 60895725 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60895795 60895946 0.000000 - 2 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60895795 60895946 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60897075 60897224 0.000000 - 2 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60897075 60897224 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60897325 60897505 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60897325 60897505 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60897714 60897814 0.000000 - 2 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60897714 60897814 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60898512 60898726 0.000000 - 1 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60898512 60898726 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60898832 60898912 0.000000 - 1 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60898832 60898912 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60899136 60899260 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60899136 60899260 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60899497 60899610 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60899497 60899610 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60900372 60900602 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60900372 60900602 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60901733 60901816 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60901733 60901816 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60901921 60902022 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60901921 60902022 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60902289 60902462 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60902289 60902462 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60902585 60902725 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60902585 60902725 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60902922 60903066 0.000000 - 1 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60902922 60903066 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60903297 60903501 0.000000 - 2 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60903297 60903501 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60903900 60904111 0.000000 - 1 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60903900 60904111 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60904194 60904309 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60904194 60904309 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60904833 60904972 0.000000 - 2 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60904833 60904972 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60905544 60905670 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60905544 60905670 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60905799 60906000 0.000000 - 1 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60905799 60906000 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60906088 60906185 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60906088 60906185 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60907428 60907536 0.000000 - 1 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60907428 60907536 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60907613 60907773 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60907613 60907773 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60908146 60908299 0.000000 - 1 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60908146 60908299 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60908431 60908537 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60908431 60908537 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60908620 60908762 0.000000 - 2 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60908620 60908762 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60908957 60909095 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60908957 60909095 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60909242 60909398 0.000000 - 1 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60909242 60909398 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60909578 60909677 0.000000 - 2 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60909578 60909677 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60910077 60910182 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60910077 60910182 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60910273 60910325 0.000000 - 2 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60910273 60910325 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60911396 60911501 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60911396 60911501 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60911790 60911842 0.000000 - 2 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60911790 60911842 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60912646 60912783 0.000000 - 2 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60912646 60912783 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60912860 60912994 0.000000 - 2 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60912860 60912994 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60913072 60913206 0.000000 - 2 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60913072 60913206 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60913288 60913425 0.000000 - 2 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60913288 60913425 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60913524 60913664 0.000000 - 2 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60913524 60913664 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60920874 60920933 0.000000 - 2 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60920874 60920933 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60921137 60921271 0.000000 - 2 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60921137 60921271 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60921562 60921652 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60921562 60921652 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60921738 60921856 0.000000 - 2 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60921738 60921856 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60921969 60922084 0.000000 - 1 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60921969 60922084 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60926760 60926857 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60926760 60926857 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60926965 60927135 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60926965 60927135 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60927298 60927416 0.000000 - 2 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60927298 60927416 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60928190 60928307 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60928190 60928307 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60937456 60937608 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60937456 60937608 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene CDS 60942005 60942301 0.000000 - 0 gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60942005 60942368 0.000000 - . gene_id "LAMA5"; transcript_id "AB587309:uc021wfw.1";
+chr20 hg19_knownGene exon 60962121 60962192 0.000000 + . gene_id "RPS21"; transcript_id "NM_001024:uc002ycr.3";
+chr20 hg19_knownGene CDS 60962395 60962444 0.000000 + 0 gene_id "RPS21"; transcript_id "NM_001024:uc002ycr.3";
+chr20 hg19_knownGene exon 60962377 60962444 0.000000 + . gene_id "RPS21"; transcript_id "NM_001024:uc002ycr.3";
+chr20 hg19_knownGene CDS 60962667 60962730 0.000000 + 1 gene_id "RPS21"; transcript_id "NM_001024:uc002ycr.3";
+chr20 hg19_knownGene exon 60962667 60962730 0.000000 + . gene_id "RPS21"; transcript_id "NM_001024:uc002ycr.3";
+chr20 hg19_knownGene CDS 60962899 60962970 0.000000 + 0 gene_id "RPS21"; transcript_id "NM_001024:uc002ycr.3";
+chr20 hg19_knownGene exon 60962899 60962970 0.000000 + . gene_id "RPS21"; transcript_id "NM_001024:uc002ycr.3";
+chr20 hg19_knownGene CDS 60963365 60963420 0.000000 + 0 gene_id "RPS21"; transcript_id "NM_001024:uc002ycr.3";
+chr20 hg19_knownGene exon 60963365 60963420 0.000000 + . gene_id "RPS21"; transcript_id "NM_001024:uc002ycr.3";
+chr20 hg19_knownGene CDS 60963513 60963519 0.000000 + 1 gene_id "RPS21"; transcript_id "NM_001024:uc002ycr.3";
+chr20 hg19_knownGene exon 60963513 60963576 0.000000 + . gene_id "RPS21"; transcript_id "NM_001024:uc002ycr.3";
+chr20 hg19_knownGene exon 60962121 60962192 0.000000 + . gene_id "RPS21"; transcript_id "BC018140:uc002ycs.3";
+chr20 hg19_knownGene CDS 60962395 60962444 0.000000 + 0 gene_id "RPS21"; transcript_id "BC018140:uc002ycs.3";
+chr20 hg19_knownGene exon 60962377 60962444 0.000000 + . gene_id "RPS21"; transcript_id "BC018140:uc002ycs.3";
+chr20 hg19_knownGene CDS 60962667 60962730 0.000000 + 1 gene_id "RPS21"; transcript_id "BC018140:uc002ycs.3";
+chr20 hg19_knownGene exon 60962667 60962730 0.000000 + . gene_id "RPS21"; transcript_id "BC018140:uc002ycs.3";
+chr20 hg19_knownGene CDS 60962899 60962970 0.000000 + 0 gene_id "RPS21"; transcript_id "BC018140:uc002ycs.3";
+chr20 hg19_knownGene exon 60962899 60962970 0.000000 + . gene_id "RPS21"; transcript_id "BC018140:uc002ycs.3";
+chr20 hg19_knownGene CDS 60963365 60963421 0.000000 + 0 gene_id "RPS21"; transcript_id "BC018140:uc002ycs.3";
+chr20 hg19_knownGene exon 60963365 60963576 0.000000 + . gene_id "RPS21"; transcript_id "BC018140:uc002ycs.3";
+chr20 hg19_knownGene exon 60962121 60962192 0.000000 + . gene_id "RPS21"; transcript_id "BC071927:uc002yct.3";
+chr20 hg19_knownGene CDS 60962395 60962444 0.000000 + 0 gene_id "RPS21"; transcript_id "BC071927:uc002yct.3";
+chr20 hg19_knownGene exon 60962377 60962444 0.000000 + . gene_id "RPS21"; transcript_id "BC071927:uc002yct.3";
+chr20 hg19_knownGene CDS 60962667 60962730 0.000000 + 1 gene_id "RPS21"; transcript_id "BC071927:uc002yct.3";
+chr20 hg19_knownGene exon 60962667 60962730 0.000000 + . gene_id "RPS21"; transcript_id "BC071927:uc002yct.3";
+chr20 hg19_knownGene CDS 60962899 60963054 0.000000 + 0 gene_id "RPS21"; transcript_id "BC071927:uc002yct.3";
+chr20 hg19_knownGene exon 60962899 60963576 0.000000 + . gene_id "RPS21"; transcript_id "BC071927:uc002yct.3";
+chr20 hg19_knownGene CDS 60966030 60966167 0.000000 - 0 gene_id "CABLES2"; transcript_id "NM_031215:uc002ycv.2";
+chr20 hg19_knownGene exon 60963686 60966167 0.000000 - . gene_id "CABLES2"; transcript_id "NM_031215:uc002ycv.2";
+chr20 hg19_knownGene CDS 60966305 60966509 0.000000 - 1 gene_id "CABLES2"; transcript_id "NM_031215:uc002ycv.2";
+chr20 hg19_knownGene exon 60966305 60966509 0.000000 - . gene_id "CABLES2"; transcript_id "NM_031215:uc002ycv.2";
+chr20 hg19_knownGene CDS 60967445 60967551 0.000000 - 0 gene_id "CABLES2"; transcript_id "NM_031215:uc002ycv.2";
+chr20 hg19_knownGene exon 60967445 60967551 0.000000 - . gene_id "CABLES2"; transcript_id "NM_031215:uc002ycv.2";
+chr20 hg19_knownGene CDS 60967976 60968079 0.000000 - 2 gene_id "CABLES2"; transcript_id "NM_031215:uc002ycv.2";
+chr20 hg19_knownGene exon 60967976 60968079 0.000000 - . gene_id "CABLES2"; transcript_id "NM_031215:uc002ycv.2";
+chr20 hg19_knownGene CDS 60968496 60968661 0.000000 - 0 gene_id "CABLES2"; transcript_id "NM_031215:uc002ycv.2";
+chr20 hg19_knownGene exon 60968496 60968661 0.000000 - . gene_id "CABLES2"; transcript_id "NM_031215:uc002ycv.2";
+chr20 hg19_knownGene CDS 60969213 60969321 0.000000 - 1 gene_id "CABLES2"; transcript_id "NM_031215:uc002ycv.2";
+chr20 hg19_knownGene exon 60969213 60969321 0.000000 - . gene_id "CABLES2"; transcript_id "NM_031215:uc002ycv.2";
+chr20 hg19_knownGene CDS 60969993 60970070 0.000000 - 1 gene_id "CABLES2"; transcript_id "NM_031215:uc002ycv.2";
+chr20 hg19_knownGene exon 60969993 60970070 0.000000 - . gene_id "CABLES2"; transcript_id "NM_031215:uc002ycv.2";
+chr20 hg19_knownGene CDS 60971371 60971463 0.000000 - 1 gene_id "CABLES2"; transcript_id "NM_031215:uc002ycv.2";
+chr20 hg19_knownGene exon 60971371 60971463 0.000000 - . gene_id "CABLES2"; transcript_id "NM_031215:uc002ycv.2";
+chr20 hg19_knownGene CDS 60971577 60971648 0.000000 - 1 gene_id "CABLES2"; transcript_id "NM_031215:uc002ycv.2";
+chr20 hg19_knownGene exon 60971577 60971648 0.000000 - . gene_id "CABLES2"; transcript_id "NM_031215:uc002ycv.2";
+chr20 hg19_knownGene CDS 60981971 60982332 0.000000 - 0 gene_id "CABLES2"; transcript_id "NM_031215:uc002ycv.2";
+chr20 hg19_knownGene exon 60981971 60982339 0.000000 - . gene_id "CABLES2"; transcript_id "NM_031215:uc002ycv.2";
+chr20 hg19_knownGene CDS 60985937 60986052 0.000000 - 2 gene_id "C20orf151"; transcript_id "NM_080833:uc002ycw.2";
+chr20 hg19_knownGene exon 60985293 60986052 0.000000 - . gene_id "C20orf151"; transcript_id "NM_080833:uc002ycw.2";
+chr20 hg19_knownGene CDS 60987680 60987809 0.000000 - 0 gene_id "C20orf151"; transcript_id "NM_080833:uc002ycw.2";
+chr20 hg19_knownGene exon 60987680 60987809 0.000000 - . gene_id "C20orf151"; transcript_id "NM_080833:uc002ycw.2";
+chr20 hg19_knownGene CDS 60987886 60987956 0.000000 - 2 gene_id "C20orf151"; transcript_id "NM_080833:uc002ycw.2";
+chr20 hg19_knownGene exon 60987886 60987956 0.000000 - . gene_id "C20orf151"; transcript_id "NM_080833:uc002ycw.2";
+chr20 hg19_knownGene CDS 60988457 60988601 0.000000 - 0 gene_id "C20orf151"; transcript_id "NM_080833:uc002ycw.2";
+chr20 hg19_knownGene exon 60988457 60988601 0.000000 - . gene_id "C20orf151"; transcript_id "NM_080833:uc002ycw.2";
+chr20 hg19_knownGene CDS 60988877 60989612 0.000000 - 1 gene_id "C20orf151"; transcript_id "NM_080833:uc002ycw.2";
+chr20 hg19_knownGene exon 60988877 60989612 0.000000 - . gene_id "C20orf151"; transcript_id "NM_080833:uc002ycw.2";
+chr20 hg19_knownGene CDS 60990177 60990343 0.000000 - 0 gene_id "C20orf151"; transcript_id "NM_080833:uc002ycw.2";
+chr20 hg19_knownGene exon 60990177 60990343 0.000000 - . gene_id "C20orf151"; transcript_id "NM_080833:uc002ycw.2";
+chr20 hg19_knownGene CDS 60990634 60990716 0.000000 - 2 gene_id "C20orf151"; transcript_id "NM_080833:uc002ycw.2";
+chr20 hg19_knownGene exon 60990634 60990716 0.000000 - . gene_id "C20orf151"; transcript_id "NM_080833:uc002ycw.2";
+chr20 hg19_knownGene CDS 60990844 60991001 0.000000 - 1 gene_id "C20orf151"; transcript_id "NM_080833:uc002ycw.2";
+chr20 hg19_knownGene exon 60990844 60991001 0.000000 - . gene_id "C20orf151"; transcript_id "NM_080833:uc002ycw.2";
+chr20 hg19_knownGene CDS 60991220 60991292 0.000000 - 2 gene_id "C20orf151"; transcript_id "NM_080833:uc002ycw.2";
+chr20 hg19_knownGene exon 60991220 60991292 0.000000 - . gene_id "C20orf151"; transcript_id "NM_080833:uc002ycw.2";
+chr20 hg19_knownGene CDS 60991816 60991928 0.000000 - 1 gene_id "C20orf151"; transcript_id "NM_080833:uc002ycw.2";
+chr20 hg19_knownGene exon 60991816 60991928 0.000000 - . gene_id "C20orf151"; transcript_id "NM_080833:uc002ycw.2";
+chr20 hg19_knownGene CDS 60992280 60992375 0.000000 - 1 gene_id "C20orf151"; transcript_id "NM_080833:uc002ycw.2";
+chr20 hg19_knownGene exon 60992280 60992375 0.000000 - . gene_id "C20orf151"; transcript_id "NM_080833:uc002ycw.2";
+chr20 hg19_knownGene CDS 60993479 60993521 0.000000 - 2 gene_id "C20orf151"; transcript_id "NM_080833:uc002ycw.2";
+chr20 hg19_knownGene exon 60993479 60993521 0.000000 - . gene_id "C20orf151"; transcript_id "NM_080833:uc002ycw.2";
+chr20 hg19_knownGene CDS 60994643 60994703 0.000000 - 0 gene_id "C20orf151"; transcript_id "NM_080833:uc002ycw.2";
+chr20 hg19_knownGene exon 60994643 60994786 0.000000 - . gene_id "C20orf151"; transcript_id "NM_080833:uc002ycw.2";
+chr20 hg19_knownGene exon 61002516 61002629 0.000000 - . gene_id "C20orf151"; transcript_id "NM_080833:uc002ycw.2";
+chr20 hg19_knownGene CDS 61039895 61040047 0.000000 - 0 gene_id "GATA5"; transcript_id "NM_080473:uc002ycx.1";
+chr20 hg19_knownGene exon 61038553 61040047 0.000000 - . gene_id "GATA5"; transcript_id "NM_080473:uc002ycx.1";
+chr20 hg19_knownGene CDS 61040396 61040520 0.000000 - 2 gene_id "GATA5"; transcript_id "NM_080473:uc002ycx.1";
+chr20 hg19_knownGene exon 61040396 61040520 0.000000 - . gene_id "GATA5"; transcript_id "NM_080473:uc002ycx.1";
+chr20 hg19_knownGene CDS 61040890 61040977 0.000000 - 0 gene_id "GATA5"; transcript_id "NM_080473:uc002ycx.1";
+chr20 hg19_knownGene exon 61040890 61040977 0.000000 - . gene_id "GATA5"; transcript_id "NM_080473:uc002ycx.1";
+chr20 hg19_knownGene CDS 61041482 61041607 0.000000 - 0 gene_id "GATA5"; transcript_id "NM_080473:uc002ycx.1";
+chr20 hg19_knownGene exon 61041482 61041607 0.000000 - . gene_id "GATA5"; transcript_id "NM_080473:uc002ycx.1";
+chr20 hg19_knownGene CDS 61048459 61048634 0.000000 - 2 gene_id "GATA5"; transcript_id "NM_080473:uc002ycx.1";
+chr20 hg19_knownGene exon 61048459 61048634 0.000000 - . gene_id "GATA5"; transcript_id "NM_080473:uc002ycx.1";
+chr20 hg19_knownGene CDS 61050055 61050577 0.000000 - 0 gene_id "GATA5"; transcript_id "NM_080473:uc002ycx.1";
+chr20 hg19_knownGene exon 61050055 61050598 0.000000 - . gene_id "GATA5"; transcript_id "NM_080473:uc002ycx.1";
+chr20 hg19_knownGene exon 61050986 61051026 0.000000 - . gene_id "GATA5"; transcript_id "NM_080473:uc002ycx.1";
+chr20 hg19_knownGene exon 61143423 61143882 0.000000 - . gene_id "C20orf200"; transcript_id "BC111938:uc021wfy.1";
+chr20 hg19_knownGene exon 61141438 61141970 0.000000 - . gene_id "C20orf166-AS1"; transcript_id "NR_033263:uc002ycy.3";
+chr20 hg19_knownGene exon 61142427 61142574 0.000000 - . gene_id "C20orf166-AS1"; transcript_id "NR_033263:uc002ycy.3";
+chr20 hg19_knownGene exon 61142913 61144065 0.000000 - . gene_id "C20orf166-AS1"; transcript_id "NR_033263:uc002ycy.3";
+chr20 hg19_knownGene exon 61144755 61144909 0.000000 - . gene_id "C20orf166-AS1"; transcript_id "NR_033263:uc002ycy.3";
+chr20 hg19_knownGene exon 61145034 61145207 0.000000 - . gene_id "C20orf166-AS1"; transcript_id "NR_033263:uc002ycy.3";
+chr20 hg19_knownGene exon 61145519 61145668 0.000000 - . gene_id "C20orf166-AS1"; transcript_id "NR_033263:uc002ycy.3";
+chr20 hg19_knownGene exon 61148633 61148768 0.000000 - . gene_id "C20orf166-AS1"; transcript_id "NR_033263:uc002ycy.3";
+chr20 hg19_knownGene exon 61141754 61144065 0.000000 - . gene_id "C20orf166-AS1"; transcript_id "AK054875:uc002ycz.2";
+chr20 hg19_knownGene exon 61145034 61145207 0.000000 - . gene_id "C20orf166-AS1"; transcript_id "AK054875:uc002ycz.2";
+chr20 hg19_knownGene exon 61148633 61148768 0.000000 - . gene_id "C20orf166-AS1"; transcript_id "AK054875:uc002ycz.2";
+chr20 hg19_knownGene exon 61151513 61151583 0.000000 + . gene_id "MIR1-1"; transcript_id "NR_029780:uc011aak.2";
+chr20 hg19_knownGene exon 61162119 61162220 0.000000 + . gene_id "MIR133A2"; transcript_id "NR_029676:uc011aal.1";
+chr20 hg19_knownGene exon 61147660 61148245 0.000000 + . gene_id "C20orf166"; transcript_id "NM_178463:uc011aaj.2";
+chr20 hg19_knownGene CDS 61150865 61150872 0.000000 + 0 gene_id "C20orf166"; transcript_id "NM_178463:uc011aaj.2";
+chr20 hg19_knownGene exon 61150672 61150872 0.000000 + . gene_id "C20orf166"; transcript_id "NM_178463:uc011aaj.2";
+chr20 hg19_knownGene CDS 61162196 61162307 0.000000 + 1 gene_id "C20orf166"; transcript_id "NM_178463:uc011aaj.2";
+chr20 hg19_knownGene exon 61162196 61162307 0.000000 + . gene_id "C20orf166"; transcript_id "NM_178463:uc011aaj.2";
+chr20 hg19_knownGene CDS 61167651 61167881 0.000000 + 0 gene_id "C20orf166"; transcript_id "NM_178463:uc011aaj.2";
+chr20 hg19_knownGene exon 61167651 61167971 0.000000 + . gene_id "C20orf166"; transcript_id "NM_178463:uc011aaj.2";
+chr20 hg19_knownGene exon 61294379 61294839 0.000000 - . gene_id "LOC100127888"; transcript_id "NR_024470:uc002ydd.3";
+chr20 hg19_knownGene exon 61296276 61296849 0.000000 - . gene_id "LOC100127888"; transcript_id "NR_024470:uc002ydd.3";
+chr20 hg19_knownGene exon 61297212 61297362 0.000000 - . gene_id "LOC100127888"; transcript_id "NR_024470:uc002ydd.3";
+chr20 hg19_knownGene exon 61297737 61297973 0.000000 - . gene_id "LOC100127888"; transcript_id "NR_024470:uc002ydd.3";
+chr20 hg19_knownGene exon 61273797 61273905 0.000000 + . gene_id "SLCO4A1"; transcript_id "NM_016354:uc002ydb.1";
+chr20 hg19_knownGene CDS 61287807 61288602 0.000000 + 0 gene_id "SLCO4A1"; transcript_id "NM_016354:uc002ydb.1";
+chr20 hg19_knownGene exon 61287711 61288602 0.000000 + . gene_id "SLCO4A1"; transcript_id "NM_016354:uc002ydb.1";
+chr20 hg19_knownGene CDS 61290029 61290119 0.000000 + 2 gene_id "SLCO4A1"; transcript_id "NM_016354:uc002ydb.1";
+chr20 hg19_knownGene exon 61290029 61290119 0.000000 + . gene_id "SLCO4A1"; transcript_id "NM_016354:uc002ydb.1";
+chr20 hg19_knownGene CDS 61291764 61291885 0.000000 + 1 gene_id "SLCO4A1"; transcript_id "NM_016354:uc002ydb.1";
+chr20 hg19_knownGene exon 61291764 61291885 0.000000 + . gene_id "SLCO4A1"; transcript_id "NM_016354:uc002ydb.1";
+chr20 hg19_knownGene CDS 61292416 61292527 0.000000 + 2 gene_id "SLCO4A1"; transcript_id "NM_016354:uc002ydb.1";
+chr20 hg19_knownGene exon 61292416 61292527 0.000000 + . gene_id "SLCO4A1"; transcript_id "NM_016354:uc002ydb.1";
+chr20 hg19_knownGene CDS 61296286 61296440 0.000000 + 1 gene_id "SLCO4A1"; transcript_id "NM_016354:uc002ydb.1";
+chr20 hg19_knownGene exon 61296286 61296440 0.000000 + . gene_id "SLCO4A1"; transcript_id "NM_016354:uc002ydb.1";
+chr20 hg19_knownGene CDS 61297732 61297927 0.000000 + 2 gene_id "SLCO4A1"; transcript_id "NM_016354:uc002ydb.1";
+chr20 hg19_knownGene exon 61297732 61297927 0.000000 + . gene_id "SLCO4A1"; transcript_id "NM_016354:uc002ydb.1";
+chr20 hg19_knownGene CDS 61299097 61299262 0.000000 + 1 gene_id "SLCO4A1"; transcript_id "NM_016354:uc002ydb.1";
+chr20 hg19_knownGene exon 61299097 61299262 0.000000 + . gene_id "SLCO4A1"; transcript_id "NM_016354:uc002ydb.1";
+chr20 hg19_knownGene CDS 61299364 61299536 0.000000 + 0 gene_id "SLCO4A1"; transcript_id "NM_016354:uc002ydb.1";
+chr20 hg19_knownGene exon 61299364 61299536 0.000000 + . gene_id "SLCO4A1"; transcript_id "NM_016354:uc002ydb.1";
+chr20 hg19_knownGene CDS 61299829 61299893 0.000000 + 1 gene_id "SLCO4A1"; transcript_id "NM_016354:uc002ydb.1";
+chr20 hg19_knownGene exon 61299829 61299893 0.000000 + . gene_id "SLCO4A1"; transcript_id "NM_016354:uc002ydb.1";
+chr20 hg19_knownGene CDS 61300282 61300430 0.000000 + 2 gene_id "SLCO4A1"; transcript_id "NM_016354:uc002ydb.1";
+chr20 hg19_knownGene exon 61300282 61300430 0.000000 + . gene_id "SLCO4A1"; transcript_id "NM_016354:uc002ydb.1";
+chr20 hg19_knownGene CDS 61303102 61303242 0.000000 + 0 gene_id "SLCO4A1"; transcript_id "NM_016354:uc002ydb.1";
+chr20 hg19_knownGene exon 61303102 61303647 0.000000 + . gene_id "SLCO4A1"; transcript_id "NM_016354:uc002ydb.1";
+chr20 hg19_knownGene CDS 61299246 61299262 0.000000 + 0 gene_id "SLCO4A1"; transcript_id "AK000551:uc002yde.1";
+chr20 hg19_knownGene exon 61299097 61299262 0.000000 + . gene_id "SLCO4A1"; transcript_id "AK000551:uc002yde.1";
+chr20 hg19_knownGene CDS 61299829 61299893 0.000000 + 1 gene_id "SLCO4A1"; transcript_id "AK000551:uc002yde.1";
+chr20 hg19_knownGene exon 61299829 61299893 0.000000 + . gene_id "SLCO4A1"; transcript_id "AK000551:uc002yde.1";
+chr20 hg19_knownGene CDS 61300282 61300430 0.000000 + 2 gene_id "SLCO4A1"; transcript_id "AK000551:uc002yde.1";
+chr20 hg19_knownGene exon 61300282 61300430 0.000000 + . gene_id "SLCO4A1"; transcript_id "AK000551:uc002yde.1";
+chr20 hg19_knownGene CDS 61303102 61303242 0.000000 + 0 gene_id "SLCO4A1"; transcript_id "AK000551:uc002yde.1";
+chr20 hg19_knownGene exon 61303102 61303647 0.000000 + . gene_id "SLCO4A1"; transcript_id "AK000551:uc002yde.1";
+chr20 hg19_knownGene CDS 61340560 61341273 0.000000 + 0 gene_id "NTSR1"; transcript_id "NM_002531:uc002ydf.3";
+chr20 hg19_knownGene exon 61340189 61341273 0.000000 + . gene_id "NTSR1"; transcript_id "NM_002531:uc002ydf.3";
+chr20 hg19_knownGene CDS 61386037 61386238 0.000000 + 0 gene_id "NTSR1"; transcript_id "NM_002531:uc002ydf.3";
+chr20 hg19_knownGene exon 61386037 61386238 0.000000 + . gene_id "NTSR1"; transcript_id "NM_002531:uc002ydf.3";
+chr20 hg19_knownGene CDS 61389618 61389708 0.000000 + 2 gene_id "NTSR1"; transcript_id "NM_002531:uc002ydf.3";
+chr20 hg19_knownGene exon 61389618 61389708 0.000000 + . gene_id "NTSR1"; transcript_id "NM_002531:uc002ydf.3";
+chr20 hg19_knownGene CDS 61391370 61391616 0.000000 + 1 gene_id "NTSR1"; transcript_id "NM_002531:uc002ydf.3";
+chr20 hg19_knownGene exon 61391370 61394123 0.000000 + . gene_id "NTSR1"; transcript_id "NM_002531:uc002ydf.3";
+chr20 hg19_knownGene exon 61405787 61405921 0.000000 - . gene_id "BC141903"; transcript_id "BC141903:uc002ydh.3";
+chr20 hg19_knownGene exon 61406667 61406753 0.000000 - . gene_id "BC141903"; transcript_id "BC141903:uc002ydh.3";
+chr20 hg19_knownGene exon 61404869 61407369 0.000000 + . gene_id "AX747649"; transcript_id "AX747649:uc002ydg.1";
+chr20 hg19_knownGene CDS 61427876 61428023 0.000000 + 0 gene_id "C20orf20"; transcript_id "NM_018270:uc002ydi.3";
+chr20 hg19_knownGene exon 61427805 61428023 0.000000 + . gene_id "C20orf20"; transcript_id "NM_018270:uc002ydi.3";
+chr20 hg19_knownGene CDS 61428462 61428583 0.000000 + 2 gene_id "C20orf20"; transcript_id "NM_018270:uc002ydi.3";
+chr20 hg19_knownGene exon 61428462 61428583 0.000000 + . gene_id "C20orf20"; transcript_id "NM_018270:uc002ydi.3";
+chr20 hg19_knownGene CDS 61429939 61430020 0.000000 + 0 gene_id "C20orf20"; transcript_id "NM_018270:uc002ydi.3";
+chr20 hg19_knownGene exon 61429939 61430020 0.000000 + . gene_id "C20orf20"; transcript_id "NM_018270:uc002ydi.3";
+chr20 hg19_knownGene CDS 61430327 61430401 0.000000 + 2 gene_id "C20orf20"; transcript_id "NM_018270:uc002ydi.3";
+chr20 hg19_knownGene exon 61430327 61430401 0.000000 + . gene_id "C20orf20"; transcript_id "NM_018270:uc002ydi.3";
+chr20 hg19_knownGene CDS 61430808 61430992 0.000000 + 2 gene_id "C20orf20"; transcript_id "NM_018270:uc002ydi.3";
+chr20 hg19_knownGene exon 61430808 61431945 0.000000 + . gene_id "C20orf20"; transcript_id "NM_018270:uc002ydi.3";
+chr20 hg19_knownGene CDS 61436212 61436382 0.000000 + 0 gene_id "OGFR"; transcript_id "NM_007346:uc002ydj.3";
+chr20 hg19_knownGene exon 61436177 61436382 0.000000 + . gene_id "OGFR"; transcript_id "NM_007346:uc002ydj.3";
+chr20 hg19_knownGene CDS 61438889 61438957 0.000000 + 0 gene_id "OGFR"; transcript_id "NM_007346:uc002ydj.3";
+chr20 hg19_knownGene exon 61438889 61438957 0.000000 + . gene_id "OGFR"; transcript_id "NM_007346:uc002ydj.3";
+chr20 hg19_knownGene CDS 61439599 61439677 0.000000 + 0 gene_id "OGFR"; transcript_id "NM_007346:uc002ydj.3";
+chr20 hg19_knownGene exon 61439599 61439677 0.000000 + . gene_id "OGFR"; transcript_id "NM_007346:uc002ydj.3";
+chr20 hg19_knownGene CDS 61440937 61441015 0.000000 + 2 gene_id "OGFR"; transcript_id "NM_007346:uc002ydj.3";
+chr20 hg19_knownGene exon 61440937 61441015 0.000000 + . gene_id "OGFR"; transcript_id "NM_007346:uc002ydj.3";
+chr20 hg19_knownGene CDS 61441851 61441917 0.000000 + 1 gene_id "OGFR"; transcript_id "NM_007346:uc002ydj.3";
+chr20 hg19_knownGene exon 61441851 61441917 0.000000 + . gene_id "OGFR"; transcript_id "NM_007346:uc002ydj.3";
+chr20 hg19_knownGene CDS 61442814 61442962 0.000000 + 0 gene_id "OGFR"; transcript_id "NM_007346:uc002ydj.3";
+chr20 hg19_knownGene exon 61442814 61442962 0.000000 + . gene_id "OGFR"; transcript_id "NM_007346:uc002ydj.3";
+chr20 hg19_knownGene CDS 61443582 61444998 0.000000 + 1 gene_id "OGFR"; transcript_id "NM_007346:uc002ydj.3";
+chr20 hg19_knownGene exon 61443582 61445352 0.000000 + . gene_id "OGFR"; transcript_id "NM_007346:uc002ydj.3";
+chr20 hg19_knownGene CDS 61436258 61436382 0.000000 + 0 gene_id "OGFR"; transcript_id "BC032666:uc002ydk.3";
+chr20 hg19_knownGene exon 61436177 61436382 0.000000 + . gene_id "OGFR"; transcript_id "BC032666:uc002ydk.3";
+chr20 hg19_knownGene CDS 61438894 61438957 0.000000 + 1 gene_id "OGFR"; transcript_id "BC032666:uc002ydk.3";
+chr20 hg19_knownGene exon 61438894 61438957 0.000000 + . gene_id "OGFR"; transcript_id "BC032666:uc002ydk.3";
+chr20 hg19_knownGene CDS 61439599 61439677 0.000000 + 0 gene_id "OGFR"; transcript_id "BC032666:uc002ydk.3";
+chr20 hg19_knownGene exon 61439599 61439677 0.000000 + . gene_id "OGFR"; transcript_id "BC032666:uc002ydk.3";
+chr20 hg19_knownGene CDS 61440937 61441015 0.000000 + 2 gene_id "OGFR"; transcript_id "BC032666:uc002ydk.3";
+chr20 hg19_knownGene exon 61440937 61441015 0.000000 + . gene_id "OGFR"; transcript_id "BC032666:uc002ydk.3";
+chr20 hg19_knownGene CDS 61441851 61441917 0.000000 + 1 gene_id "OGFR"; transcript_id "BC032666:uc002ydk.3";
+chr20 hg19_knownGene exon 61441851 61441917 0.000000 + . gene_id "OGFR"; transcript_id "BC032666:uc002ydk.3";
+chr20 hg19_knownGene CDS 61442814 61442962 0.000000 + 0 gene_id "OGFR"; transcript_id "BC032666:uc002ydk.3";
+chr20 hg19_knownGene exon 61442814 61442962 0.000000 + . gene_id "OGFR"; transcript_id "BC032666:uc002ydk.3";
+chr20 hg19_knownGene CDS 61443582 61444998 0.000000 + 1 gene_id "OGFR"; transcript_id "BC032666:uc002ydk.3";
+chr20 hg19_knownGene exon 61443582 61445352 0.000000 + . gene_id "OGFR"; transcript_id "BC032666:uc002ydk.3";
+chr20 hg19_knownGene CDS 61439515 61439677 0.000000 + 0 gene_id "OGFR"; transcript_id "AK024485:uc002ydl.3";
+chr20 hg19_knownGene exon 61437238 61439677 0.000000 + . gene_id "OGFR"; transcript_id "AK024485:uc002ydl.3";
+chr20 hg19_knownGene CDS 61440937 61441015 0.000000 + 2 gene_id "OGFR"; transcript_id "AK024485:uc002ydl.3";
+chr20 hg19_knownGene exon 61440937 61441015 0.000000 + . gene_id "OGFR"; transcript_id "AK024485:uc002ydl.3";
+chr20 hg19_knownGene CDS 61441851 61441917 0.000000 + 1 gene_id "OGFR"; transcript_id "AK024485:uc002ydl.3";
+chr20 hg19_knownGene exon 61441851 61441917 0.000000 + . gene_id "OGFR"; transcript_id "AK024485:uc002ydl.3";
+chr20 hg19_knownGene CDS 61442814 61442962 0.000000 + 0 gene_id "OGFR"; transcript_id "AK024485:uc002ydl.3";
+chr20 hg19_knownGene exon 61442814 61442962 0.000000 + . gene_id "OGFR"; transcript_id "AK024485:uc002ydl.3";
+chr20 hg19_knownGene CDS 61443582 61444998 0.000000 + 1 gene_id "OGFR"; transcript_id "AK024485:uc002ydl.3";
+chr20 hg19_knownGene exon 61443582 61445352 0.000000 + . gene_id "OGFR"; transcript_id "AK024485:uc002ydl.3";
+chr20 hg19_knownGene CDS 61448417 61448494 0.000000 + 0 gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene exon 61448414 61448494 0.000000 + . gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene CDS 61448919 61448987 0.000000 + 0 gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene exon 61448919 61448987 0.000000 + . gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene CDS 61449870 61449905 0.000000 + 0 gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene exon 61449870 61449905 0.000000 + . gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene CDS 61450574 61450645 0.000000 + 0 gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene exon 61450574 61450645 0.000000 + . gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene CDS 61451281 61451334 0.000000 + 0 gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene exon 61451281 61451334 0.000000 + . gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene CDS 61452533 61452568 0.000000 + 0 gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene exon 61452533 61452568 0.000000 + . gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene CDS 61452859 61452882 0.000000 + 0 gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene exon 61452859 61452882 0.000000 + . gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene CDS 61453109 61453162 0.000000 + 0 gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene exon 61453109 61453162 0.000000 + . gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene CDS 61453463 61453516 0.000000 + 0 gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene exon 61453463 61453516 0.000000 + . gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene CDS 61453943 61453984 0.000000 + 0 gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene exon 61453943 61453984 0.000000 + . gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene CDS 61455797 61455853 0.000000 + 0 gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene exon 61455797 61455853 0.000000 + . gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene CDS 61456320 61456373 0.000000 + 0 gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene exon 61456320 61456373 0.000000 + . gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene CDS 61457169 61457222 0.000000 + 0 gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene exon 61457169 61457222 0.000000 + . gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene CDS 61457556 61457609 0.000000 + 0 gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene exon 61457556 61457609 0.000000 + . gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene CDS 61458119 61458172 0.000000 + 0 gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene exon 61458119 61458172 0.000000 + . gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene CDS 61458593 61458646 0.000000 + 0 gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene exon 61458593 61458646 0.000000 + . gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene CDS 61459275 61459328 0.000000 + 0 gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene exon 61459275 61459328 0.000000 + . gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene CDS 61460116 61460169 0.000000 + 0 gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene exon 61460116 61460169 0.000000 + . gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene CDS 61460275 61460328 0.000000 + 0 gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene exon 61460275 61460328 0.000000 + . gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene CDS 61460807 61460851 0.000000 + 0 gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene exon 61460807 61460851 0.000000 + . gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene CDS 61460980 61461033 0.000000 + 0 gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene exon 61460980 61461033 0.000000 + . gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene CDS 61461118 61461171 0.000000 + 0 gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene exon 61461118 61461171 0.000000 + . gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene CDS 61461712 61461765 0.000000 + 0 gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene exon 61461712 61461765 0.000000 + . gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene CDS 61461869 61461940 0.000000 + 0 gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene exon 61461869 61461940 0.000000 + . gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene CDS 61463506 61463541 0.000000 + 0 gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene exon 61463506 61463541 0.000000 + . gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene CDS 61464372 61464416 0.000000 + 0 gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene exon 61464372 61464416 0.000000 + . gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene CDS 61467273 61467305 0.000000 + 0 gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene exon 61467273 61467305 0.000000 + . gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene CDS 61467539 61467685 0.000000 + 0 gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene exon 61467539 61467685 0.000000 + . gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene CDS 61467830 61467884 0.000000 + 0 gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene exon 61467830 61467884 0.000000 + . gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene CDS 61468435 61468617 0.000000 + 2 gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene exon 61468435 61468617 0.000000 + . gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene CDS 61470036 61470113 0.000000 + 2 gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene exon 61470036 61470113 0.000000 + . gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene CDS 61471894 61472081 0.000000 + 2 gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene exon 61471894 61472511 0.000000 + . gene_id "COL9A3"; transcript_id "NM_001853:uc002ydm.3";
+chr20 hg19_knownGene CDS 61467800 61467884 0.000000 + 0 gene_id "COL9A3"; transcript_id "BC004412:uc002ydn.3";
+chr20 hg19_knownGene exon 61467771 61467884 0.000000 + . gene_id "COL9A3"; transcript_id "BC004412:uc002ydn.3";
+chr20 hg19_knownGene CDS 61468435 61468617 0.000000 + 2 gene_id "COL9A3"; transcript_id "BC004412:uc002ydn.3";
+chr20 hg19_knownGene exon 61468435 61468617 0.000000 + . gene_id "COL9A3"; transcript_id "BC004412:uc002ydn.3";
+chr20 hg19_knownGene CDS 61470036 61470113 0.000000 + 2 gene_id "COL9A3"; transcript_id "BC004412:uc002ydn.3";
+chr20 hg19_knownGene exon 61470036 61470113 0.000000 + . gene_id "COL9A3"; transcript_id "BC004412:uc002ydn.3";
+chr20 hg19_knownGene CDS 61471894 61472081 0.000000 + 2 gene_id "COL9A3"; transcript_id "BC004412:uc002ydn.3";
+chr20 hg19_knownGene exon 61471894 61472511 0.000000 + . gene_id "COL9A3"; transcript_id "BC004412:uc002ydn.3";
+chr20 hg19_knownGene CDS 61477016 61477249 0.000000 + 0 gene_id "DPH3P1"; transcript_id "NM_080750:uc011aan.1";
+chr20 hg19_knownGene exon 61476476 61477543 0.000000 + . gene_id "DPH3P1"; transcript_id "NM_080750:uc011aan.1";
+chr20 hg19_knownGene CDS 61473330 61473449 0.000000 - 0 gene_id "TCFL5"; transcript_id "AJ271337:uc002ydo.3";
+chr20 hg19_knownGene exon 61472467 61473449 0.000000 - . gene_id "TCFL5"; transcript_id "AJ271337:uc002ydo.3";
+chr20 hg19_knownGene CDS 61485368 61485509 0.000000 - 1 gene_id "TCFL5"; transcript_id "AJ271337:uc002ydo.3";
+chr20 hg19_knownGene exon 61485368 61485509 0.000000 - . gene_id "TCFL5"; transcript_id "AJ271337:uc002ydo.3";
+chr20 hg19_knownGene CDS 61488747 61488990 0.000000 - 2 gene_id "TCFL5"; transcript_id "AJ271337:uc002ydo.3";
+chr20 hg19_knownGene exon 61488747 61488990 0.000000 - . gene_id "TCFL5"; transcript_id "AJ271337:uc002ydo.3";
+chr20 hg19_knownGene CDS 61490716 61490878 0.000000 - 0 gene_id "TCFL5"; transcript_id "AJ271337:uc002ydo.3";
+chr20 hg19_knownGene exon 61490716 61490878 0.000000 - . gene_id "TCFL5"; transcript_id "AJ271337:uc002ydo.3";
+chr20 hg19_knownGene CDS 61491477 61491626 0.000000 - 0 gene_id "TCFL5"; transcript_id "AJ271337:uc002ydo.3";
+chr20 hg19_knownGene exon 61491477 61492109 0.000000 - . gene_id "TCFL5"; transcript_id "AJ271337:uc002ydo.3";
+chr20 hg19_knownGene CDS 61473330 61473449 0.000000 - 0 gene_id "TCFL5"; transcript_id "NM_006602:uc002ydp.3";
+chr20 hg19_knownGene exon 61472467 61473449 0.000000 - . gene_id "TCFL5"; transcript_id "NM_006602:uc002ydp.3";
+chr20 hg19_knownGene CDS 61485368 61485509 0.000000 - 1 gene_id "TCFL5"; transcript_id "NM_006602:uc002ydp.3";
+chr20 hg19_knownGene exon 61485368 61485509 0.000000 - . gene_id "TCFL5"; transcript_id "NM_006602:uc002ydp.3";
+chr20 hg19_knownGene CDS 61488747 61488990 0.000000 - 2 gene_id "TCFL5"; transcript_id "NM_006602:uc002ydp.3";
+chr20 hg19_knownGene exon 61488747 61488990 0.000000 - . gene_id "TCFL5"; transcript_id "NM_006602:uc002ydp.3";
+chr20 hg19_knownGene CDS 61490716 61490878 0.000000 - 0 gene_id "TCFL5"; transcript_id "NM_006602:uc002ydp.3";
+chr20 hg19_knownGene exon 61490716 61490878 0.000000 - . gene_id "TCFL5"; transcript_id "NM_006602:uc002ydp.3";
+chr20 hg19_knownGene CDS 61491477 61491660 0.000000 - 1 gene_id "TCFL5"; transcript_id "NM_006602:uc002ydp.3";
+chr20 hg19_knownGene exon 61491477 61491660 0.000000 - . gene_id "TCFL5"; transcript_id "NM_006602:uc002ydp.3";
+chr20 hg19_knownGene CDS 61492376 61493022 0.000000 - 0 gene_id "TCFL5"; transcript_id "NM_006602:uc002ydp.3";
+chr20 hg19_knownGene exon 61492376 61493115 0.000000 - . gene_id "TCFL5"; transcript_id "NM_006602:uc002ydp.3";
+chr20 hg19_knownGene CDS 61484235 61484240 0.000000 - 0 gene_id "TCFL5"; transcript_id "BC065520:uc002ydq.3";
+chr20 hg19_knownGene exon 61482846 61484240 0.000000 - . gene_id "TCFL5"; transcript_id "BC065520:uc002ydq.3";
+chr20 hg19_knownGene CDS 61485368 61485509 0.000000 - 1 gene_id "TCFL5"; transcript_id "BC065520:uc002ydq.3";
+chr20 hg19_knownGene exon 61485368 61485509 0.000000 - . gene_id "TCFL5"; transcript_id "BC065520:uc002ydq.3";
+chr20 hg19_knownGene CDS 61488747 61488987 0.000000 - 2 gene_id "TCFL5"; transcript_id "BC065520:uc002ydq.3";
+chr20 hg19_knownGene exon 61488747 61488987 0.000000 - . gene_id "TCFL5"; transcript_id "BC065520:uc002ydq.3";
+chr20 hg19_knownGene CDS 61490716 61490878 0.000000 - 0 gene_id "TCFL5"; transcript_id "BC065520:uc002ydq.3";
+chr20 hg19_knownGene exon 61490716 61490878 0.000000 - . gene_id "TCFL5"; transcript_id "BC065520:uc002ydq.3";
+chr20 hg19_knownGene CDS 61491477 61491660 0.000000 - 1 gene_id "TCFL5"; transcript_id "BC065520:uc002ydq.3";
+chr20 hg19_knownGene exon 61491477 61491660 0.000000 - . gene_id "TCFL5"; transcript_id "BC065520:uc002ydq.3";
+chr20 hg19_knownGene CDS 61492376 61493022 0.000000 - 0 gene_id "TCFL5"; transcript_id "BC065520:uc002ydq.3";
+chr20 hg19_knownGene exon 61492376 61493115 0.000000 - . gene_id "TCFL5"; transcript_id "BC065520:uc002ydq.3";
+chr20 hg19_knownGene CDS 61536910 61536953 0.000000 - 2 gene_id "DIDO1"; transcript_id "BC000770:uc011aao.1";
+chr20 hg19_knownGene exon 61536358 61536953 0.000000 - . gene_id "DIDO1"; transcript_id "BC000770:uc011aao.1";
+chr20 hg19_knownGene CDS 61537239 61537452 0.000000 - 0 gene_id "DIDO1"; transcript_id "BC000770:uc011aao.1";
+chr20 hg19_knownGene exon 61537239 61537452 0.000000 - . gene_id "DIDO1"; transcript_id "BC000770:uc011aao.1";
+chr20 hg19_knownGene CDS 61538499 61538711 0.000000 - 0 gene_id "DIDO1"; transcript_id "BC000770:uc011aao.1";
+chr20 hg19_knownGene exon 61538499 61538711 0.000000 - . gene_id "DIDO1"; transcript_id "BC000770:uc011aao.1";
+chr20 hg19_knownGene CDS 61541051 61541372 0.000000 - 1 gene_id "DIDO1"; transcript_id "BC000770:uc011aao.1";
+chr20 hg19_knownGene exon 61541051 61541372 0.000000 - . gene_id "DIDO1"; transcript_id "BC000770:uc011aao.1";
+chr20 hg19_knownGene CDS 61542126 61542964 0.000000 - 0 gene_id "DIDO1"; transcript_id "BC000770:uc011aao.1";
+chr20 hg19_knownGene exon 61542126 61542966 0.000000 - . gene_id "DIDO1"; transcript_id "BC000770:uc011aao.1";
+chr20 hg19_knownGene exon 61545562 61545758 0.000000 - . gene_id "DIDO1"; transcript_id "BC000770:uc011aao.1";
+chr20 hg19_knownGene CDS 61510588 61513766 0.000000 - 2 gene_id "DIDO1"; transcript_id "NM_001193369:uc002ydr.2";
+chr20 hg19_knownGene exon 61509090 61513766 0.000000 - . gene_id "DIDO1"; transcript_id "NM_001193369:uc002ydr.2";
+chr20 hg19_knownGene CDS 61522312 61522507 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_001193369:uc002ydr.2";
+chr20 hg19_knownGene exon 61522312 61522507 0.000000 - . gene_id "DIDO1"; transcript_id "NM_001193369:uc002ydr.2";
+chr20 hg19_knownGene CDS 61523339 61523428 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_001193369:uc002ydr.2";
+chr20 hg19_knownGene exon 61523339 61523428 0.000000 - . gene_id "DIDO1"; transcript_id "NM_001193369:uc002ydr.2";
+chr20 hg19_knownGene CDS 61524161 61524314 0.000000 - 1 gene_id "DIDO1"; transcript_id "NM_001193369:uc002ydr.2";
+chr20 hg19_knownGene exon 61524161 61524314 0.000000 - . gene_id "DIDO1"; transcript_id "NM_001193369:uc002ydr.2";
+chr20 hg19_knownGene CDS 61525018 61525546 0.000000 - 2 gene_id "DIDO1"; transcript_id "NM_001193369:uc002ydr.2";
+chr20 hg19_knownGene exon 61525018 61525546 0.000000 - . gene_id "DIDO1"; transcript_id "NM_001193369:uc002ydr.2";
+chr20 hg19_knownGene CDS 61525765 61525900 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_001193369:uc002ydr.2";
+chr20 hg19_knownGene exon 61525765 61525900 0.000000 - . gene_id "DIDO1"; transcript_id "NM_001193369:uc002ydr.2";
+chr20 hg19_knownGene CDS 61526162 61526266 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_001193369:uc002ydr.2";
+chr20 hg19_knownGene exon 61526162 61526266 0.000000 - . gene_id "DIDO1"; transcript_id "NM_001193369:uc002ydr.2";
+chr20 hg19_knownGene CDS 61526401 61526517 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_001193369:uc002ydr.2";
+chr20 hg19_knownGene exon 61526401 61526517 0.000000 - . gene_id "DIDO1"; transcript_id "NM_001193369:uc002ydr.2";
+chr20 hg19_knownGene CDS 61527585 61527744 0.000000 - 1 gene_id "DIDO1"; transcript_id "NM_001193369:uc002ydr.2";
+chr20 hg19_knownGene exon 61527585 61527744 0.000000 - . gene_id "DIDO1"; transcript_id "NM_001193369:uc002ydr.2";
+chr20 hg19_knownGene CDS 61527883 61528348 0.000000 - 2 gene_id "DIDO1"; transcript_id "NM_001193369:uc002ydr.2";
+chr20 hg19_knownGene exon 61527883 61528348 0.000000 - . gene_id "DIDO1"; transcript_id "NM_001193369:uc002ydr.2";
+chr20 hg19_knownGene CDS 61537239 61537452 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_001193369:uc002ydr.2";
+chr20 hg19_knownGene exon 61537239 61537452 0.000000 - . gene_id "DIDO1"; transcript_id "NM_001193369:uc002ydr.2";
+chr20 hg19_knownGene CDS 61538499 61538711 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_001193369:uc002ydr.2";
+chr20 hg19_knownGene exon 61538499 61538711 0.000000 - . gene_id "DIDO1"; transcript_id "NM_001193369:uc002ydr.2";
+chr20 hg19_knownGene CDS 61541051 61541372 0.000000 - 1 gene_id "DIDO1"; transcript_id "NM_001193369:uc002ydr.2";
+chr20 hg19_knownGene exon 61541051 61541372 0.000000 - . gene_id "DIDO1"; transcript_id "NM_001193369:uc002ydr.2";
+chr20 hg19_knownGene CDS 61542126 61542964 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_001193369:uc002ydr.2";
+chr20 hg19_knownGene exon 61542126 61542966 0.000000 - . gene_id "DIDO1"; transcript_id "NM_001193369:uc002ydr.2";
+chr20 hg19_knownGene exon 61545562 61545758 0.000000 - . gene_id "DIDO1"; transcript_id "NM_001193369:uc002ydr.2";
+chr20 hg19_knownGene exon 61557791 61557903 0.000000 - . gene_id "DIDO1"; transcript_id "NM_001193369:uc002ydr.2";
+chr20 hg19_knownGene CDS 61522286 61522507 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_001193370:uc002ydt.2";
+chr20 hg19_knownGene exon 61518567 61522507 0.000000 - . gene_id "DIDO1"; transcript_id "NM_001193370:uc002ydt.2";
+chr20 hg19_knownGene CDS 61523339 61523428 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_001193370:uc002ydt.2";
+chr20 hg19_knownGene exon 61523339 61523428 0.000000 - . gene_id "DIDO1"; transcript_id "NM_001193370:uc002ydt.2";
+chr20 hg19_knownGene CDS 61524161 61524314 0.000000 - 1 gene_id "DIDO1"; transcript_id "NM_001193370:uc002ydt.2";
+chr20 hg19_knownGene exon 61524161 61524314 0.000000 - . gene_id "DIDO1"; transcript_id "NM_001193370:uc002ydt.2";
+chr20 hg19_knownGene CDS 61525018 61525546 0.000000 - 2 gene_id "DIDO1"; transcript_id "NM_001193370:uc002ydt.2";
+chr20 hg19_knownGene exon 61525018 61525546 0.000000 - . gene_id "DIDO1"; transcript_id "NM_001193370:uc002ydt.2";
+chr20 hg19_knownGene CDS 61525765 61525900 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_001193370:uc002ydt.2";
+chr20 hg19_knownGene exon 61525765 61525900 0.000000 - . gene_id "DIDO1"; transcript_id "NM_001193370:uc002ydt.2";
+chr20 hg19_knownGene CDS 61526162 61526266 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_001193370:uc002ydt.2";
+chr20 hg19_knownGene exon 61526162 61526266 0.000000 - . gene_id "DIDO1"; transcript_id "NM_001193370:uc002ydt.2";
+chr20 hg19_knownGene CDS 61526401 61526517 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_001193370:uc002ydt.2";
+chr20 hg19_knownGene exon 61526401 61526517 0.000000 - . gene_id "DIDO1"; transcript_id "NM_001193370:uc002ydt.2";
+chr20 hg19_knownGene CDS 61527585 61527744 0.000000 - 1 gene_id "DIDO1"; transcript_id "NM_001193370:uc002ydt.2";
+chr20 hg19_knownGene exon 61527585 61527744 0.000000 - . gene_id "DIDO1"; transcript_id "NM_001193370:uc002ydt.2";
+chr20 hg19_knownGene CDS 61527883 61528348 0.000000 - 2 gene_id "DIDO1"; transcript_id "NM_001193370:uc002ydt.2";
+chr20 hg19_knownGene exon 61527883 61528348 0.000000 - . gene_id "DIDO1"; transcript_id "NM_001193370:uc002ydt.2";
+chr20 hg19_knownGene CDS 61537239 61537452 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_001193370:uc002ydt.2";
+chr20 hg19_knownGene exon 61537239 61537452 0.000000 - . gene_id "DIDO1"; transcript_id "NM_001193370:uc002ydt.2";
+chr20 hg19_knownGene CDS 61538499 61538711 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_001193370:uc002ydt.2";
+chr20 hg19_knownGene exon 61538499 61538711 0.000000 - . gene_id "DIDO1"; transcript_id "NM_001193370:uc002ydt.2";
+chr20 hg19_knownGene CDS 61541051 61541372 0.000000 - 1 gene_id "DIDO1"; transcript_id "NM_001193370:uc002ydt.2";
+chr20 hg19_knownGene exon 61541051 61541372 0.000000 - . gene_id "DIDO1"; transcript_id "NM_001193370:uc002ydt.2";
+chr20 hg19_knownGene CDS 61542126 61542964 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_001193370:uc002ydt.2";
+chr20 hg19_knownGene exon 61542126 61542966 0.000000 - . gene_id "DIDO1"; transcript_id "NM_001193370:uc002ydt.2";
+chr20 hg19_knownGene exon 61545562 61545758 0.000000 - . gene_id "DIDO1"; transcript_id "NM_001193370:uc002ydt.2";
+chr20 hg19_knownGene exon 61557791 61557903 0.000000 - . gene_id "DIDO1"; transcript_id "NM_001193370:uc002ydt.2";
+chr20 hg19_knownGene CDS 61537141 61537452 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_080796:uc002ydv.2";
+chr20 hg19_knownGene exon 61536350 61537452 0.000000 - . gene_id "DIDO1"; transcript_id "NM_080796:uc002ydv.2";
+chr20 hg19_knownGene CDS 61538499 61538711 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_080796:uc002ydv.2";
+chr20 hg19_knownGene exon 61538499 61538711 0.000000 - . gene_id "DIDO1"; transcript_id "NM_080796:uc002ydv.2";
+chr20 hg19_knownGene CDS 61541051 61541372 0.000000 - 1 gene_id "DIDO1"; transcript_id "NM_080796:uc002ydv.2";
+chr20 hg19_knownGene exon 61541051 61541372 0.000000 - . gene_id "DIDO1"; transcript_id "NM_080796:uc002ydv.2";
+chr20 hg19_knownGene CDS 61542126 61542964 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_080796:uc002ydv.2";
+chr20 hg19_knownGene exon 61542126 61542966 0.000000 - . gene_id "DIDO1"; transcript_id "NM_080796:uc002ydv.2";
+chr20 hg19_knownGene exon 61545562 61545758 0.000000 - . gene_id "DIDO1"; transcript_id "NM_080796:uc002ydv.2";
+chr20 hg19_knownGene exon 61557784 61557903 0.000000 - . gene_id "DIDO1"; transcript_id "NM_080796:uc002ydv.2";
+chr20 hg19_knownGene CDS 61537141 61537452 0.000000 - 0 gene_id "DIDO1"; transcript_id "BC014615:uc002ydw.2";
+chr20 hg19_knownGene exon 61536350 61537452 0.000000 - . gene_id "DIDO1"; transcript_id "BC014615:uc002ydw.2";
+chr20 hg19_knownGene CDS 61538499 61538711 0.000000 - 0 gene_id "DIDO1"; transcript_id "BC014615:uc002ydw.2";
+chr20 hg19_knownGene exon 61538499 61538711 0.000000 - . gene_id "DIDO1"; transcript_id "BC014615:uc002ydw.2";
+chr20 hg19_knownGene CDS 61541051 61541372 0.000000 - 1 gene_id "DIDO1"; transcript_id "BC014615:uc002ydw.2";
+chr20 hg19_knownGene exon 61541051 61541372 0.000000 - . gene_id "DIDO1"; transcript_id "BC014615:uc002ydw.2";
+chr20 hg19_knownGene CDS 61542126 61542964 0.000000 - 0 gene_id "DIDO1"; transcript_id "BC014615:uc002ydw.2";
+chr20 hg19_knownGene exon 61542126 61542966 0.000000 - . gene_id "DIDO1"; transcript_id "BC014615:uc002ydw.2";
+chr20 hg19_knownGene exon 61545562 61545758 0.000000 - . gene_id "DIDO1"; transcript_id "BC014615:uc002ydw.2";
+chr20 hg19_knownGene exon 61557791 61557903 0.000000 - . gene_id "DIDO1"; transcript_id "BC014615:uc002ydw.2";
+chr20 hg19_knownGene CDS 61510588 61513766 0.000000 - 2 gene_id "DIDO1"; transcript_id "NM_033081:uc002yds.2";
+chr20 hg19_knownGene exon 61509090 61513766 0.000000 - . gene_id "DIDO1"; transcript_id "NM_033081:uc002yds.2";
+chr20 hg19_knownGene CDS 61522312 61522507 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_033081:uc002yds.2";
+chr20 hg19_knownGene exon 61522312 61522507 0.000000 - . gene_id "DIDO1"; transcript_id "NM_033081:uc002yds.2";
+chr20 hg19_knownGene CDS 61523339 61523428 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_033081:uc002yds.2";
+chr20 hg19_knownGene exon 61523339 61523428 0.000000 - . gene_id "DIDO1"; transcript_id "NM_033081:uc002yds.2";
+chr20 hg19_knownGene CDS 61524161 61524314 0.000000 - 1 gene_id "DIDO1"; transcript_id "NM_033081:uc002yds.2";
+chr20 hg19_knownGene exon 61524161 61524314 0.000000 - . gene_id "DIDO1"; transcript_id "NM_033081:uc002yds.2";
+chr20 hg19_knownGene CDS 61525018 61525546 0.000000 - 2 gene_id "DIDO1"; transcript_id "NM_033081:uc002yds.2";
+chr20 hg19_knownGene exon 61525018 61525546 0.000000 - . gene_id "DIDO1"; transcript_id "NM_033081:uc002yds.2";
+chr20 hg19_knownGene CDS 61525765 61525900 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_033081:uc002yds.2";
+chr20 hg19_knownGene exon 61525765 61525900 0.000000 - . gene_id "DIDO1"; transcript_id "NM_033081:uc002yds.2";
+chr20 hg19_knownGene CDS 61526162 61526266 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_033081:uc002yds.2";
+chr20 hg19_knownGene exon 61526162 61526266 0.000000 - . gene_id "DIDO1"; transcript_id "NM_033081:uc002yds.2";
+chr20 hg19_knownGene CDS 61526401 61526517 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_033081:uc002yds.2";
+chr20 hg19_knownGene exon 61526401 61526517 0.000000 - . gene_id "DIDO1"; transcript_id "NM_033081:uc002yds.2";
+chr20 hg19_knownGene CDS 61527585 61527744 0.000000 - 1 gene_id "DIDO1"; transcript_id "NM_033081:uc002yds.2";
+chr20 hg19_knownGene exon 61527585 61527744 0.000000 - . gene_id "DIDO1"; transcript_id "NM_033081:uc002yds.2";
+chr20 hg19_knownGene CDS 61527883 61528348 0.000000 - 2 gene_id "DIDO1"; transcript_id "NM_033081:uc002yds.2";
+chr20 hg19_knownGene exon 61527883 61528348 0.000000 - . gene_id "DIDO1"; transcript_id "NM_033081:uc002yds.2";
+chr20 hg19_knownGene CDS 61537239 61537452 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_033081:uc002yds.2";
+chr20 hg19_knownGene exon 61537239 61537452 0.000000 - . gene_id "DIDO1"; transcript_id "NM_033081:uc002yds.2";
+chr20 hg19_knownGene CDS 61538499 61538711 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_033081:uc002yds.2";
+chr20 hg19_knownGene exon 61538499 61538711 0.000000 - . gene_id "DIDO1"; transcript_id "NM_033081:uc002yds.2";
+chr20 hg19_knownGene CDS 61541051 61541372 0.000000 - 1 gene_id "DIDO1"; transcript_id "NM_033081:uc002yds.2";
+chr20 hg19_knownGene exon 61541051 61541372 0.000000 - . gene_id "DIDO1"; transcript_id "NM_033081:uc002yds.2";
+chr20 hg19_knownGene CDS 61542126 61542964 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_033081:uc002yds.2";
+chr20 hg19_knownGene exon 61542126 61542966 0.000000 - . gene_id "DIDO1"; transcript_id "NM_033081:uc002yds.2";
+chr20 hg19_knownGene exon 61545562 61545758 0.000000 - . gene_id "DIDO1"; transcript_id "NM_033081:uc002yds.2";
+chr20 hg19_knownGene exon 61569148 61569304 0.000000 - . gene_id "DIDO1"; transcript_id "NM_033081:uc002yds.2";
+chr20 hg19_knownGene CDS 61522286 61522507 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_080797:uc002ydu.2";
+chr20 hg19_knownGene exon 61518567 61522507 0.000000 - . gene_id "DIDO1"; transcript_id "NM_080797:uc002ydu.2";
+chr20 hg19_knownGene CDS 61523339 61523428 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_080797:uc002ydu.2";
+chr20 hg19_knownGene exon 61523339 61523428 0.000000 - . gene_id "DIDO1"; transcript_id "NM_080797:uc002ydu.2";
+chr20 hg19_knownGene CDS 61524161 61524314 0.000000 - 1 gene_id "DIDO1"; transcript_id "NM_080797:uc002ydu.2";
+chr20 hg19_knownGene exon 61524161 61524314 0.000000 - . gene_id "DIDO1"; transcript_id "NM_080797:uc002ydu.2";
+chr20 hg19_knownGene CDS 61525018 61525546 0.000000 - 2 gene_id "DIDO1"; transcript_id "NM_080797:uc002ydu.2";
+chr20 hg19_knownGene exon 61525018 61525546 0.000000 - . gene_id "DIDO1"; transcript_id "NM_080797:uc002ydu.2";
+chr20 hg19_knownGene CDS 61525765 61525900 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_080797:uc002ydu.2";
+chr20 hg19_knownGene exon 61525765 61525900 0.000000 - . gene_id "DIDO1"; transcript_id "NM_080797:uc002ydu.2";
+chr20 hg19_knownGene CDS 61526162 61526266 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_080797:uc002ydu.2";
+chr20 hg19_knownGene exon 61526162 61526266 0.000000 - . gene_id "DIDO1"; transcript_id "NM_080797:uc002ydu.2";
+chr20 hg19_knownGene CDS 61526401 61526517 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_080797:uc002ydu.2";
+chr20 hg19_knownGene exon 61526401 61526517 0.000000 - . gene_id "DIDO1"; transcript_id "NM_080797:uc002ydu.2";
+chr20 hg19_knownGene CDS 61527585 61527744 0.000000 - 1 gene_id "DIDO1"; transcript_id "NM_080797:uc002ydu.2";
+chr20 hg19_knownGene exon 61527585 61527744 0.000000 - . gene_id "DIDO1"; transcript_id "NM_080797:uc002ydu.2";
+chr20 hg19_knownGene CDS 61527883 61528348 0.000000 - 2 gene_id "DIDO1"; transcript_id "NM_080797:uc002ydu.2";
+chr20 hg19_knownGene exon 61527883 61528348 0.000000 - . gene_id "DIDO1"; transcript_id "NM_080797:uc002ydu.2";
+chr20 hg19_knownGene CDS 61537239 61537452 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_080797:uc002ydu.2";
+chr20 hg19_knownGene exon 61537239 61537452 0.000000 - . gene_id "DIDO1"; transcript_id "NM_080797:uc002ydu.2";
+chr20 hg19_knownGene CDS 61538499 61538711 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_080797:uc002ydu.2";
+chr20 hg19_knownGene exon 61538499 61538711 0.000000 - . gene_id "DIDO1"; transcript_id "NM_080797:uc002ydu.2";
+chr20 hg19_knownGene CDS 61541051 61541372 0.000000 - 1 gene_id "DIDO1"; transcript_id "NM_080797:uc002ydu.2";
+chr20 hg19_knownGene exon 61541051 61541372 0.000000 - . gene_id "DIDO1"; transcript_id "NM_080797:uc002ydu.2";
+chr20 hg19_knownGene CDS 61542126 61542964 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_080797:uc002ydu.2";
+chr20 hg19_knownGene exon 61542126 61542966 0.000000 - . gene_id "DIDO1"; transcript_id "NM_080797:uc002ydu.2";
+chr20 hg19_knownGene exon 61545562 61545758 0.000000 - . gene_id "DIDO1"; transcript_id "NM_080797:uc002ydu.2";
+chr20 hg19_knownGene exon 61569148 61569304 0.000000 - . gene_id "DIDO1"; transcript_id "NM_080797:uc002ydu.2";
+chr20 hg19_knownGene CDS 61537141 61537452 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_022105:uc002ydx.2";
+chr20 hg19_knownGene exon 61536350 61537452 0.000000 - . gene_id "DIDO1"; transcript_id "NM_022105:uc002ydx.2";
+chr20 hg19_knownGene CDS 61538499 61538711 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_022105:uc002ydx.2";
+chr20 hg19_knownGene exon 61538499 61538711 0.000000 - . gene_id "DIDO1"; transcript_id "NM_022105:uc002ydx.2";
+chr20 hg19_knownGene CDS 61541051 61541372 0.000000 - 1 gene_id "DIDO1"; transcript_id "NM_022105:uc002ydx.2";
+chr20 hg19_knownGene exon 61541051 61541372 0.000000 - . gene_id "DIDO1"; transcript_id "NM_022105:uc002ydx.2";
+chr20 hg19_knownGene CDS 61542126 61542964 0.000000 - 0 gene_id "DIDO1"; transcript_id "NM_022105:uc002ydx.2";
+chr20 hg19_knownGene exon 61542126 61542966 0.000000 - . gene_id "DIDO1"; transcript_id "NM_022105:uc002ydx.2";
+chr20 hg19_knownGene exon 61545562 61545758 0.000000 - . gene_id "DIDO1"; transcript_id "NM_022105:uc002ydx.2";
+chr20 hg19_knownGene exon 61569148 61569304 0.000000 - . gene_id "DIDO1"; transcript_id "NM_022105:uc002ydx.2";
+chr20 hg19_knownGene exon 61569441 61569605 0.000000 + . gene_id "C20orf11"; transcript_id "NM_017896:uc002ydy.3";
+chr20 hg19_knownGene CDS 61572855 61572972 0.000000 + 0 gene_id "C20orf11"; transcript_id "NM_017896:uc002ydy.3";
+chr20 hg19_knownGene exon 61572843 61572972 0.000000 + . gene_id "C20orf11"; transcript_id "NM_017896:uc002ydy.3";
+chr20 hg19_knownGene CDS 61574339 61574535 0.000000 + 2 gene_id "C20orf11"; transcript_id "NM_017896:uc002ydy.3";
+chr20 hg19_knownGene exon 61574339 61574535 0.000000 + . gene_id "C20orf11"; transcript_id "NM_017896:uc002ydy.3";
+chr20 hg19_knownGene CDS 61574847 61575044 0.000000 + 0 gene_id "C20orf11"; transcript_id "NM_017896:uc002ydy.3";
+chr20 hg19_knownGene exon 61574847 61575044 0.000000 + . gene_id "C20orf11"; transcript_id "NM_017896:uc002ydy.3";
+chr20 hg19_knownGene CDS 61576091 61576261 0.000000 + 0 gene_id "C20orf11"; transcript_id "NM_017896:uc002ydy.3";
+chr20 hg19_knownGene exon 61576091 61579827 0.000000 + . gene_id "C20orf11"; transcript_id "NM_017896:uc002ydy.3";
+chr20 hg19_knownGene CDS 61584506 61584624 0.000000 + 0 gene_id "SLC17A9"; transcript_id "AK298503:uc011aap.1";
+chr20 hg19_knownGene exon 61584476 61584624 0.000000 + . gene_id "SLC17A9"; transcript_id "AK298503:uc011aap.1";
+chr20 hg19_knownGene CDS 61588117 61588314 0.000000 + 1 gene_id "SLC17A9"; transcript_id "AK298503:uc011aap.1";
+chr20 hg19_knownGene exon 61588117 61588314 0.000000 + . gene_id "SLC17A9"; transcript_id "AK298503:uc011aap.1";
+chr20 hg19_knownGene CDS 61588793 61588932 0.000000 + 1 gene_id "SLC17A9"; transcript_id "AK298503:uc011aap.1";
+chr20 hg19_knownGene exon 61588793 61588932 0.000000 + . gene_id "SLC17A9"; transcript_id "AK298503:uc011aap.1";
+chr20 hg19_knownGene CDS 61591856 61591955 0.000000 + 2 gene_id "SLC17A9"; transcript_id "AK298503:uc011aap.1";
+chr20 hg19_knownGene exon 61591856 61591955 0.000000 + . gene_id "SLC17A9"; transcript_id "AK298503:uc011aap.1";
+chr20 hg19_knownGene CDS 61593976 61594106 0.000000 + 1 gene_id "SLC17A9"; transcript_id "AK298503:uc011aap.1";
+chr20 hg19_knownGene exon 61593976 61594106 0.000000 + . gene_id "SLC17A9"; transcript_id "AK298503:uc011aap.1";
+chr20 hg19_knownGene CDS 61594625 61594721 0.000000 + 2 gene_id "SLC17A9"; transcript_id "AK298503:uc011aap.1";
+chr20 hg19_knownGene exon 61594625 61594721 0.000000 + . gene_id "SLC17A9"; transcript_id "AK298503:uc011aap.1";
+chr20 hg19_knownGene CDS 61594936 61595032 0.000000 + 1 gene_id "SLC17A9"; transcript_id "AK298503:uc011aap.1";
+chr20 hg19_knownGene exon 61594936 61595032 0.000000 + . gene_id "SLC17A9"; transcript_id "AK298503:uc011aap.1";
+chr20 hg19_knownGene CDS 61595580 61595667 0.000000 + 0 gene_id "SLC17A9"; transcript_id "AK298503:uc011aap.1";
+chr20 hg19_knownGene exon 61595580 61595667 0.000000 + . gene_id "SLC17A9"; transcript_id "AK298503:uc011aap.1";
+chr20 hg19_knownGene CDS 61596484 61596518 0.000000 + 2 gene_id "SLC17A9"; transcript_id "AK298503:uc011aap.1";
+chr20 hg19_knownGene exon 61596484 61596518 0.000000 + . gene_id "SLC17A9"; transcript_id "AK298503:uc011aap.1";
+chr20 hg19_knownGene CDS 61596962 61597077 0.000000 + 0 gene_id "SLC17A9"; transcript_id "AK298503:uc011aap.1";
+chr20 hg19_knownGene exon 61596962 61597077 0.000000 + . gene_id "SLC17A9"; transcript_id "AK298503:uc011aap.1";
+chr20 hg19_knownGene CDS 61597877 61597932 0.000000 + 1 gene_id "SLC17A9"; transcript_id "AK298503:uc011aap.1";
+chr20 hg19_knownGene exon 61597877 61597932 0.000000 + . gene_id "SLC17A9"; transcript_id "AK298503:uc011aap.1";
+chr20 hg19_knownGene CDS 61598055 61598131 0.000000 + 2 gene_id "SLC17A9"; transcript_id "AK298503:uc011aap.1";
+chr20 hg19_knownGene exon 61598055 61599947 0.000000 + . gene_id "SLC17A9"; transcript_id "AK298503:uc011aap.1";
+chr20 hg19_knownGene CDS 61584183 61584241 0.000000 + 0 gene_id "SLC17A9"; transcript_id "NM_022082:uc002yea.4";
+chr20 hg19_knownGene exon 61583999 61584241 0.000000 + . gene_id "SLC17A9"; transcript_id "NM_022082:uc002yea.4";
+chr20 hg19_knownGene CDS 61588117 61588314 0.000000 + 1 gene_id "SLC17A9"; transcript_id "NM_022082:uc002yea.4";
+chr20 hg19_knownGene exon 61588117 61588314 0.000000 + . gene_id "SLC17A9"; transcript_id "NM_022082:uc002yea.4";
+chr20 hg19_knownGene CDS 61588793 61588932 0.000000 + 1 gene_id "SLC17A9"; transcript_id "NM_022082:uc002yea.4";
+chr20 hg19_knownGene exon 61588793 61588932 0.000000 + . gene_id "SLC17A9"; transcript_id "NM_022082:uc002yea.4";
+chr20 hg19_knownGene CDS 61591856 61591955 0.000000 + 2 gene_id "SLC17A9"; transcript_id "NM_022082:uc002yea.4";
+chr20 hg19_knownGene exon 61591856 61591955 0.000000 + . gene_id "SLC17A9"; transcript_id "NM_022082:uc002yea.4";
+chr20 hg19_knownGene CDS 61593976 61594106 0.000000 + 1 gene_id "SLC17A9"; transcript_id "NM_022082:uc002yea.4";
+chr20 hg19_knownGene exon 61593976 61594106 0.000000 + . gene_id "SLC17A9"; transcript_id "NM_022082:uc002yea.4";
+chr20 hg19_knownGene CDS 61594625 61594721 0.000000 + 2 gene_id "SLC17A9"; transcript_id "NM_022082:uc002yea.4";
+chr20 hg19_knownGene exon 61594625 61594721 0.000000 + . gene_id "SLC17A9"; transcript_id "NM_022082:uc002yea.4";
+chr20 hg19_knownGene CDS 61594936 61595032 0.000000 + 1 gene_id "SLC17A9"; transcript_id "NM_022082:uc002yea.4";
+chr20 hg19_knownGene exon 61594936 61595032 0.000000 + . gene_id "SLC17A9"; transcript_id "NM_022082:uc002yea.4";
+chr20 hg19_knownGene CDS 61595580 61595667 0.000000 + 0 gene_id "SLC17A9"; transcript_id "NM_022082:uc002yea.4";
+chr20 hg19_knownGene exon 61595580 61595667 0.000000 + . gene_id "SLC17A9"; transcript_id "NM_022082:uc002yea.4";
+chr20 hg19_knownGene CDS 61596484 61596518 0.000000 + 2 gene_id "SLC17A9"; transcript_id "NM_022082:uc002yea.4";
+chr20 hg19_knownGene exon 61596484 61596518 0.000000 + . gene_id "SLC17A9"; transcript_id "NM_022082:uc002yea.4";
+chr20 hg19_knownGene CDS 61596962 61597077 0.000000 + 0 gene_id "SLC17A9"; transcript_id "NM_022082:uc002yea.4";
+chr20 hg19_knownGene exon 61596962 61597077 0.000000 + . gene_id "SLC17A9"; transcript_id "NM_022082:uc002yea.4";
+chr20 hg19_knownGene CDS 61597877 61597932 0.000000 + 1 gene_id "SLC17A9"; transcript_id "NM_022082:uc002yea.4";
+chr20 hg19_knownGene exon 61597877 61597932 0.000000 + . gene_id "SLC17A9"; transcript_id "NM_022082:uc002yea.4";
+chr20 hg19_knownGene CDS 61598055 61598084 0.000000 + 2 gene_id "SLC17A9"; transcript_id "NM_022082:uc002yea.4";
+chr20 hg19_knownGene exon 61598055 61598084 0.000000 + . gene_id "SLC17A9"; transcript_id "NM_022082:uc002yea.4";
+chr20 hg19_knownGene CDS 61598689 61598849 0.000000 + 2 gene_id "SLC17A9"; transcript_id "NM_022082:uc002yea.4";
+chr20 hg19_knownGene exon 61598689 61599949 0.000000 + . gene_id "SLC17A9"; transcript_id "NM_022082:uc002yea.4";
+chr20 hg19_knownGene exon 61583999 61584241 0.000000 + . gene_id "SLC17A9"; transcript_id "BC025312:uc002ydz.4";
+chr20 hg19_knownGene CDS 61584584 61584624 0.000000 + 0 gene_id "SLC17A9"; transcript_id "BC025312:uc002ydz.4";
+chr20 hg19_knownGene exon 61584563 61584624 0.000000 + . gene_id "SLC17A9"; transcript_id "BC025312:uc002ydz.4";
+chr20 hg19_knownGene CDS 61588117 61588314 0.000000 + 1 gene_id "SLC17A9"; transcript_id "BC025312:uc002ydz.4";
+chr20 hg19_knownGene exon 61588117 61588314 0.000000 + . gene_id "SLC17A9"; transcript_id "BC025312:uc002ydz.4";
+chr20 hg19_knownGene CDS 61588793 61588932 0.000000 + 1 gene_id "SLC17A9"; transcript_id "BC025312:uc002ydz.4";
+chr20 hg19_knownGene exon 61588793 61588932 0.000000 + . gene_id "SLC17A9"; transcript_id "BC025312:uc002ydz.4";
+chr20 hg19_knownGene CDS 61591856 61591955 0.000000 + 2 gene_id "SLC17A9"; transcript_id "BC025312:uc002ydz.4";
+chr20 hg19_knownGene exon 61591856 61591955 0.000000 + . gene_id "SLC17A9"; transcript_id "BC025312:uc002ydz.4";
+chr20 hg19_knownGene CDS 61593976 61594106 0.000000 + 1 gene_id "SLC17A9"; transcript_id "BC025312:uc002ydz.4";
+chr20 hg19_knownGene exon 61593976 61594106 0.000000 + . gene_id "SLC17A9"; transcript_id "BC025312:uc002ydz.4";
+chr20 hg19_knownGene CDS 61594625 61594721 0.000000 + 2 gene_id "SLC17A9"; transcript_id "BC025312:uc002ydz.4";
+chr20 hg19_knownGene exon 61594625 61594721 0.000000 + . gene_id "SLC17A9"; transcript_id "BC025312:uc002ydz.4";
+chr20 hg19_knownGene CDS 61594936 61595032 0.000000 + 1 gene_id "SLC17A9"; transcript_id "BC025312:uc002ydz.4";
+chr20 hg19_knownGene exon 61594936 61595032 0.000000 + . gene_id "SLC17A9"; transcript_id "BC025312:uc002ydz.4";
+chr20 hg19_knownGene CDS 61595580 61595667 0.000000 + 0 gene_id "SLC17A9"; transcript_id "BC025312:uc002ydz.4";
+chr20 hg19_knownGene exon 61595580 61595667 0.000000 + . gene_id "SLC17A9"; transcript_id "BC025312:uc002ydz.4";
+chr20 hg19_knownGene CDS 61596484 61596518 0.000000 + 2 gene_id "SLC17A9"; transcript_id "BC025312:uc002ydz.4";
+chr20 hg19_knownGene exon 61596484 61596518 0.000000 + . gene_id "SLC17A9"; transcript_id "BC025312:uc002ydz.4";
+chr20 hg19_knownGene CDS 61596962 61597077 0.000000 + 0 gene_id "SLC17A9"; transcript_id "BC025312:uc002ydz.4";
+chr20 hg19_knownGene exon 61596962 61597077 0.000000 + . gene_id "SLC17A9"; transcript_id "BC025312:uc002ydz.4";
+chr20 hg19_knownGene CDS 61597877 61597932 0.000000 + 1 gene_id "SLC17A9"; transcript_id "BC025312:uc002ydz.4";
+chr20 hg19_knownGene exon 61597877 61597932 0.000000 + . gene_id "SLC17A9"; transcript_id "BC025312:uc002ydz.4";
+chr20 hg19_knownGene CDS 61598055 61598084 0.000000 + 2 gene_id "SLC17A9"; transcript_id "BC025312:uc002ydz.4";
+chr20 hg19_knownGene exon 61598055 61598084 0.000000 + . gene_id "SLC17A9"; transcript_id "BC025312:uc002ydz.4";
+chr20 hg19_knownGene CDS 61598689 61598849 0.000000 + 2 gene_id "SLC17A9"; transcript_id "BC025312:uc002ydz.4";
+chr20 hg19_knownGene exon 61598689 61599949 0.000000 + . gene_id "SLC17A9"; transcript_id "BC025312:uc002ydz.4";
+chr20 hg19_knownGene CDS 61637404 61638078 0.000000 - 0 gene_id "BHLHE23"; transcript_id "NM_080606:uc002yeb.2";
+chr20 hg19_knownGene exon 61637331 61638387 0.000000 - . gene_id "BHLHE23"; transcript_id "NM_080606:uc002yeb.2";
+chr20 hg19_knownGene exon 61665569 61666020 0.000000 - . gene_id "LINC00029"; transcript_id "NR_028295:uc002yed.3";
+chr20 hg19_knownGene exon 61666635 61666793 0.000000 - . gene_id "LINC00029"; transcript_id "NR_028295:uc002yed.3";
+chr20 hg19_knownGene exon 61666917 61667073 0.000000 - . gene_id "LINC00029"; transcript_id "NR_028295:uc002yed.3";
+chr20 hg19_knownGene exon 61667400 61668380 0.000000 - . gene_id "LINC00029"; transcript_id "NR_028295:uc002yed.3";
+chr20 hg19_knownGene exon 61669363 61669537 0.000000 + . gene_id "LOC100144597"; transcript_id "NR_033369:uc021wfz.1";
+chr20 hg19_knownGene exon 61680208 61680277 0.000000 + . gene_id "LOC100144597"; transcript_id "NR_033369:uc021wfz.1";
+chr20 hg19_knownGene exon 61680864 61681008 0.000000 + . gene_id "LOC100144597"; transcript_id "NR_033369:uc021wfz.1";
+chr20 hg19_knownGene exon 61682974 61683103 0.000000 + . gene_id "LOC100144597"; transcript_id "NR_033369:uc021wfz.1";
+chr20 hg19_knownGene exon 61684257 61684618 0.000000 + . gene_id "LOC100144597"; transcript_id "NR_033369:uc021wfz.1";
+chr20 hg19_knownGene exon 61684864 61685215 0.000000 + . gene_id "LOC100144597"; transcript_id "NR_033369:uc021wfz.1";
+chr20 hg19_knownGene exon 61640735 61640825 0.000000 + . gene_id "LOC63930"; transcript_id "NR_033370:uc002yec.1";
+chr20 hg19_knownGene exon 61711344 61712298 0.000000 + . gene_id "LOC63930"; transcript_id "NR_033370:uc002yec.1";
+chr20 hg19_knownGene exon 61713534 61714694 0.000000 + . gene_id "LOC63930"; transcript_id "NR_033370:uc002yec.1";
+chr20 hg19_knownGene exon 61715223 61716243 0.000000 + . gene_id "LOC63930"; transcript_id "NR_033370:uc002yec.1";
+chr20 hg19_knownGene exon 61716286 61716423 0.000000 + . gene_id "LOC63930"; transcript_id "NR_033370:uc002yec.1";
+chr20 hg19_knownGene exon 61726845 61727535 0.000000 - . gene_id "HAR1B"; transcript_id "NR_003245:uc002yee.1";
+chr20 hg19_knownGene exon 61733467 61733671 0.000000 - . gene_id "HAR1B"; transcript_id "NR_003245:uc002yee.1";
+chr20 hg19_knownGene exon 61732644 61734606 0.000000 + . gene_id "HAR1A"; transcript_id "NR_003244:uc002yef.1";
+chr20 hg19_knownGene exon 61734907 61735737 0.000000 + . gene_id "HAR1A"; transcript_id "NR_003244:uc002yef.1";
+chr20 hg19_knownGene exon 61809852 61809938 0.000000 + . gene_id "MIR124-3"; transcript_id "NR_029670:uc002yeg.1";
+chr20 hg19_knownGene CDS 61828063 61828086 0.000000 - 0 gene_id "YTHDF1"; transcript_id "AK300073:uc011aaq.2";
+chr20 hg19_knownGene exon 61826782 61828086 0.000000 - . gene_id "YTHDF1"; transcript_id "AK300073:uc011aaq.2";
+chr20 hg19_knownGene CDS 61833639 61835141 0.000000 - 0 gene_id "YTHDF1"; transcript_id "AK300073:uc011aaq.2";
+chr20 hg19_knownGene exon 61833639 61835159 0.000000 - . gene_id "YTHDF1"; transcript_id "AK300073:uc011aaq.2";
+chr20 hg19_knownGene exon 61839815 61839970 0.000000 - . gene_id "YTHDF1"; transcript_id "AK300073:uc011aaq.2";
+chr20 hg19_knownGene CDS 61828063 61828086 0.000000 - 0 gene_id "YTHDF1"; transcript_id "NM_017798:uc002yeh.3";
+chr20 hg19_knownGene exon 61826782 61828086 0.000000 - . gene_id "YTHDF1"; transcript_id "NM_017798:uc002yeh.3";
+chr20 hg19_knownGene CDS 61833639 61835159 0.000000 - 0 gene_id "YTHDF1"; transcript_id "NM_017798:uc002yeh.3";
+chr20 hg19_knownGene exon 61833639 61835159 0.000000 - . gene_id "YTHDF1"; transcript_id "NM_017798:uc002yeh.3";
+chr20 hg19_knownGene CDS 61845216 61845295 0.000000 - 2 gene_id "YTHDF1"; transcript_id "NM_017798:uc002yeh.3";
+chr20 hg19_knownGene exon 61845216 61845295 0.000000 - . gene_id "YTHDF1"; transcript_id "NM_017798:uc002yeh.3";
+chr20 hg19_knownGene CDS 61846929 61846953 0.000000 - 0 gene_id "YTHDF1"; transcript_id "NM_017798:uc002yeh.3";
+chr20 hg19_knownGene exon 61846929 61846953 0.000000 - . gene_id "YTHDF1"; transcript_id "NM_017798:uc002yeh.3";
+chr20 hg19_knownGene CDS 61847218 61847244 0.000000 - 0 gene_id "YTHDF1"; transcript_id "NM_017798:uc002yeh.3";
+chr20 hg19_knownGene exon 61847218 61847538 0.000000 - . gene_id "YTHDF1"; transcript_id "NM_017798:uc002yeh.3";
+chr20 hg19_knownGene exon 61870131 61870194 0.000000 + . gene_id "MIR3196"; transcript_id "NR_036163:uc021wga.1";
+chr20 hg19_knownGene CDS 61867449 61867797 0.000000 + 0 gene_id "BIRC7"; transcript_id "AY517497:uc010gkc.1";
+chr20 hg19_knownGene exon 61867276 61867797 0.000000 + . gene_id "BIRC7"; transcript_id "AY517497:uc010gkc.1";
+chr20 hg19_knownGene CDS 61869255 61869354 0.000000 + 2 gene_id "BIRC7"; transcript_id "AY517497:uc010gkc.1";
+chr20 hg19_knownGene exon 61869255 61869354 0.000000 + . gene_id "BIRC7"; transcript_id "AY517497:uc010gkc.1";
+chr20 hg19_knownGene CDS 61869748 61869829 0.000000 + 1 gene_id "BIRC7"; transcript_id "AY517497:uc010gkc.1";
+chr20 hg19_knownGene exon 61869748 61869829 0.000000 + . gene_id "BIRC7"; transcript_id "AY517497:uc010gkc.1";
+chr20 hg19_knownGene CDS 61869921 61869966 0.000000 + 0 gene_id "BIRC7"; transcript_id "AY517497:uc010gkc.1";
+chr20 hg19_knownGene exon 61869921 61869966 0.000000 + . gene_id "BIRC7"; transcript_id "AY517497:uc010gkc.1";
+chr20 hg19_knownGene CDS 61870514 61870608 0.000000 + 2 gene_id "BIRC7"; transcript_id "AY517497:uc010gkc.1";
+chr20 hg19_knownGene exon 61870514 61870957 0.000000 + . gene_id "BIRC7"; transcript_id "AY517497:uc010gkc.1";
+chr20 hg19_knownGene CDS 61867449 61867797 0.000000 + 0 gene_id "BIRC7"; transcript_id "NM_139317:uc002yej.3";
+chr20 hg19_knownGene exon 61867276 61867797 0.000000 + . gene_id "BIRC7"; transcript_id "NM_139317:uc002yej.3";
+chr20 hg19_knownGene CDS 61869255 61869354 0.000000 + 2 gene_id "BIRC7"; transcript_id "NM_139317:uc002yej.3";
+chr20 hg19_knownGene exon 61869255 61869354 0.000000 + . gene_id "BIRC7"; transcript_id "NM_139317:uc002yej.3";
+chr20 hg19_knownGene CDS 61869748 61869829 0.000000 + 1 gene_id "BIRC7"; transcript_id "NM_139317:uc002yej.3";
+chr20 hg19_knownGene exon 61869748 61869829 0.000000 + . gene_id "BIRC7"; transcript_id "NM_139317:uc002yej.3";
+chr20 hg19_knownGene CDS 61869921 61869966 0.000000 + 0 gene_id "BIRC7"; transcript_id "NM_139317:uc002yej.3";
+chr20 hg19_knownGene exon 61869921 61869966 0.000000 + . gene_id "BIRC7"; transcript_id "NM_139317:uc002yej.3";
+chr20 hg19_knownGene CDS 61870514 61870585 0.000000 + 2 gene_id "BIRC7"; transcript_id "NM_139317:uc002yej.3";
+chr20 hg19_knownGene exon 61870514 61870585 0.000000 + . gene_id "BIRC7"; transcript_id "NM_139317:uc002yej.3";
+chr20 hg19_knownGene CDS 61870710 61870954 0.000000 + 2 gene_id "BIRC7"; transcript_id "NM_139317:uc002yej.3";
+chr20 hg19_knownGene exon 61870710 61870962 0.000000 + . gene_id "BIRC7"; transcript_id "NM_139317:uc002yej.3";
+chr20 hg19_knownGene exon 61871608 61871854 0.000000 + . gene_id "BIRC7"; transcript_id "NM_139317:uc002yej.3";
+chr20 hg19_knownGene CDS 61867449 61867797 0.000000 + 0 gene_id "BIRC7"; transcript_id "NM_022161:uc002yei.3";
+chr20 hg19_knownGene exon 61867276 61867797 0.000000 + . gene_id "BIRC7"; transcript_id "NM_022161:uc002yei.3";
+chr20 hg19_knownGene CDS 61869255 61869354 0.000000 + 2 gene_id "BIRC7"; transcript_id "NM_022161:uc002yei.3";
+chr20 hg19_knownGene exon 61869255 61869354 0.000000 + . gene_id "BIRC7"; transcript_id "NM_022161:uc002yei.3";
+chr20 hg19_knownGene CDS 61869748 61869829 0.000000 + 1 gene_id "BIRC7"; transcript_id "NM_022161:uc002yei.3";
+chr20 hg19_knownGene exon 61869748 61869829 0.000000 + . gene_id "BIRC7"; transcript_id "NM_022161:uc002yei.3";
+chr20 hg19_knownGene CDS 61869921 61869966 0.000000 + 0 gene_id "BIRC7"; transcript_id "NM_022161:uc002yei.3";
+chr20 hg19_knownGene exon 61869921 61869966 0.000000 + . gene_id "BIRC7"; transcript_id "NM_022161:uc002yei.3";
+chr20 hg19_knownGene CDS 61870514 61870585 0.000000 + 2 gene_id "BIRC7"; transcript_id "NM_022161:uc002yei.3";
+chr20 hg19_knownGene exon 61870514 61870585 0.000000 + . gene_id "BIRC7"; transcript_id "NM_022161:uc002yei.3";
+chr20 hg19_knownGene CDS 61870764 61870954 0.000000 + 2 gene_id "BIRC7"; transcript_id "NM_022161:uc002yei.3";
+chr20 hg19_knownGene exon 61870764 61870962 0.000000 + . gene_id "BIRC7"; transcript_id "NM_022161:uc002yei.3";
+chr20 hg19_knownGene exon 61871608 61871854 0.000000 + . gene_id "BIRC7"; transcript_id "NM_022161:uc002yei.3";
+chr20 hg19_knownGene CDS 61878684 61879127 0.000000 - 0 gene_id "NKAIN4"; transcript_id "AK308958:uc010gkd.1";
+chr20 hg19_knownGene exon 61877990 61879127 0.000000 - . gene_id "NKAIN4"; transcript_id "AK308958:uc010gkd.1";
+chr20 hg19_knownGene CDS 61880167 61880247 0.000000 - 0 gene_id "NKAIN4"; transcript_id "AK308958:uc010gkd.1";
+chr20 hg19_knownGene exon 61880167 61880247 0.000000 - . gene_id "NKAIN4"; transcript_id "AK308958:uc010gkd.1";
+chr20 hg19_knownGene CDS 61881287 61881292 0.000000 - 0 gene_id "NKAIN4"; transcript_id "AK308958:uc010gkd.1";
+chr20 hg19_knownGene exon 61881287 61881424 0.000000 - . gene_id "NKAIN4"; transcript_id "AK308958:uc010gkd.1";
+chr20 hg19_knownGene exon 61884570 61884805 0.000000 - . gene_id "NKAIN4"; transcript_id "AK308958:uc010gkd.1";
+chr20 hg19_knownGene CDS 61872852 61872858 0.000000 - 1 gene_id "NKAIN4"; transcript_id "NM_152864:uc002yek.3";
+chr20 hg19_knownGene exon 61872136 61872858 0.000000 - . gene_id "NKAIN4"; transcript_id "NM_152864:uc002yek.3";
+chr20 hg19_knownGene CDS 61873891 61873975 0.000000 - 2 gene_id "NKAIN4"; transcript_id "NM_152864:uc002yek.3";
+chr20 hg19_knownGene exon 61873891 61873975 0.000000 - . gene_id "NKAIN4"; transcript_id "NM_152864:uc002yek.3";
+chr20 hg19_knownGene CDS 61875376 61875436 0.000000 - 0 gene_id "NKAIN4"; transcript_id "NM_152864:uc002yek.3";
+chr20 hg19_knownGene exon 61875376 61875436 0.000000 - . gene_id "NKAIN4"; transcript_id "NM_152864:uc002yek.3";
+chr20 hg19_knownGene CDS 61878930 61879127 0.000000 - 0 gene_id "NKAIN4"; transcript_id "NM_152864:uc002yek.3";
+chr20 hg19_knownGene exon 61878930 61879127 0.000000 - . gene_id "NKAIN4"; transcript_id "NM_152864:uc002yek.3";
+chr20 hg19_knownGene CDS 61880167 61880247 0.000000 - 0 gene_id "NKAIN4"; transcript_id "NM_152864:uc002yek.3";
+chr20 hg19_knownGene exon 61880167 61880247 0.000000 - . gene_id "NKAIN4"; transcript_id "NM_152864:uc002yek.3";
+chr20 hg19_knownGene CDS 61881287 61881424 0.000000 - 0 gene_id "NKAIN4"; transcript_id "NM_152864:uc002yek.3";
+chr20 hg19_knownGene exon 61881287 61881424 0.000000 - . gene_id "NKAIN4"; transcript_id "NM_152864:uc002yek.3";
+chr20 hg19_knownGene CDS 61885749 61885802 0.000000 - 0 gene_id "NKAIN4"; transcript_id "NM_152864:uc002yek.3";
+chr20 hg19_knownGene exon 61885749 61885892 0.000000 - . gene_id "NKAIN4"; transcript_id "NM_152864:uc002yek.3";
+chr20 hg19_knownGene CDS 61885426 61885752 0.000000 + 0 gene_id "FLJ16779"; transcript_id "NR_024389:uc011aar.2";
+chr20 hg19_knownGene exon 61885330 61892967 0.000000 + . gene_id "FLJ16779"; transcript_id "NR_024389:uc011aar.2";
+chr20 hg19_knownGene exon 61918160 61918218 0.000000 + . gene_id "MIR4326"; transcript_id "NR_036220:uc021wgb.1";
+chr20 hg19_knownGene exon 61904165 61904272 0.000000 + . gene_id "ARFGAP1"; transcript_id "AK296351:uc011aas.1";
+chr20 hg19_knownGene CDS 61906982 61906992 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "AK296351:uc011aas.1";
+chr20 hg19_knownGene exon 61906929 61906992 0.000000 + . gene_id "ARFGAP1"; transcript_id "AK296351:uc011aas.1";
+chr20 hg19_knownGene CDS 61907832 61908003 0.000000 + 1 gene_id "ARFGAP1"; transcript_id "AK296351:uc011aas.1";
+chr20 hg19_knownGene exon 61907832 61908003 0.000000 + . gene_id "ARFGAP1"; transcript_id "AK296351:uc011aas.1";
+chr20 hg19_knownGene CDS 61908557 61908657 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "AK296351:uc011aas.1";
+chr20 hg19_knownGene exon 61908557 61908657 0.000000 + . gene_id "ARFGAP1"; transcript_id "AK296351:uc011aas.1";
+chr20 hg19_knownGene CDS 61909469 61909555 0.000000 + 1 gene_id "ARFGAP1"; transcript_id "AK296351:uc011aas.1";
+chr20 hg19_knownGene exon 61909469 61909555 0.000000 + . gene_id "ARFGAP1"; transcript_id "AK296351:uc011aas.1";
+chr20 hg19_knownGene CDS 61910251 61910347 0.000000 + 1 gene_id "ARFGAP1"; transcript_id "AK296351:uc011aas.1";
+chr20 hg19_knownGene exon 61910251 61910347 0.000000 + . gene_id "ARFGAP1"; transcript_id "AK296351:uc011aas.1";
+chr20 hg19_knownGene CDS 61912643 61912699 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "AK296351:uc011aas.1";
+chr20 hg19_knownGene exon 61912643 61912699 0.000000 + . gene_id "ARFGAP1"; transcript_id "AK296351:uc011aas.1";
+chr20 hg19_knownGene CDS 61914171 61914203 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "AK296351:uc011aas.1";
+chr20 hg19_knownGene exon 61914171 61914203 0.000000 + . gene_id "ARFGAP1"; transcript_id "AK296351:uc011aas.1";
+chr20 hg19_knownGene CDS 61915203 61915232 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "AK296351:uc011aas.1";
+chr20 hg19_knownGene exon 61915203 61915232 0.000000 + . gene_id "ARFGAP1"; transcript_id "AK296351:uc011aas.1";
+chr20 hg19_knownGene CDS 61916218 61916274 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "AK296351:uc011aas.1";
+chr20 hg19_knownGene exon 61916218 61916274 0.000000 + . gene_id "ARFGAP1"; transcript_id "AK296351:uc011aas.1";
+chr20 hg19_knownGene CDS 61917006 61917065 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "AK296351:uc011aas.1";
+chr20 hg19_knownGene exon 61917006 61917065 0.000000 + . gene_id "ARFGAP1"; transcript_id "AK296351:uc011aas.1";
+chr20 hg19_knownGene CDS 61917724 61917794 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "AK296351:uc011aas.1";
+chr20 hg19_knownGene exon 61917724 61917794 0.000000 + . gene_id "ARFGAP1"; transcript_id "AK296351:uc011aas.1";
+chr20 hg19_knownGene CDS 61918916 61919222 0.000000 + 1 gene_id "ARFGAP1"; transcript_id "AK296351:uc011aas.1";
+chr20 hg19_knownGene exon 61918916 61920848 0.000000 + . gene_id "ARFGAP1"; transcript_id "AK296351:uc011aas.1";
+chr20 hg19_knownGene exon 61904165 61904272 0.000000 + . gene_id "ARFGAP1"; transcript_id "AK303454:uc011aat.1";
+chr20 hg19_knownGene exon 61906929 61906992 0.000000 + . gene_id "ARFGAP1"; transcript_id "AK303454:uc011aat.1";
+chr20 hg19_knownGene exon 61907443 61907552 0.000000 + . gene_id "ARFGAP1"; transcript_id "AK303454:uc011aat.1";
+chr20 hg19_knownGene CDS 61907900 61908003 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "AK303454:uc011aat.1";
+chr20 hg19_knownGene exon 61907832 61908003 0.000000 + . gene_id "ARFGAP1"; transcript_id "AK303454:uc011aat.1";
+chr20 hg19_knownGene CDS 61909469 61909555 0.000000 + 1 gene_id "ARFGAP1"; transcript_id "AK303454:uc011aat.1";
+chr20 hg19_knownGene exon 61909469 61909555 0.000000 + . gene_id "ARFGAP1"; transcript_id "AK303454:uc011aat.1";
+chr20 hg19_knownGene CDS 61910251 61910347 0.000000 + 1 gene_id "ARFGAP1"; transcript_id "AK303454:uc011aat.1";
+chr20 hg19_knownGene exon 61910251 61910347 0.000000 + . gene_id "ARFGAP1"; transcript_id "AK303454:uc011aat.1";
+chr20 hg19_knownGene CDS 61912643 61912699 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "AK303454:uc011aat.1";
+chr20 hg19_knownGene exon 61912643 61912699 0.000000 + . gene_id "ARFGAP1"; transcript_id "AK303454:uc011aat.1";
+chr20 hg19_knownGene CDS 61914171 61914203 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "AK303454:uc011aat.1";
+chr20 hg19_knownGene exon 61914171 61914203 0.000000 + . gene_id "ARFGAP1"; transcript_id "AK303454:uc011aat.1";
+chr20 hg19_knownGene CDS 61916218 61916274 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "AK303454:uc011aat.1";
+chr20 hg19_knownGene exon 61916218 61916274 0.000000 + . gene_id "ARFGAP1"; transcript_id "AK303454:uc011aat.1";
+chr20 hg19_knownGene CDS 61917006 61917065 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "AK303454:uc011aat.1";
+chr20 hg19_knownGene exon 61917006 61917065 0.000000 + . gene_id "ARFGAP1"; transcript_id "AK303454:uc011aat.1";
+chr20 hg19_knownGene CDS 61917718 61917794 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "AK303454:uc011aat.1";
+chr20 hg19_knownGene exon 61917718 61917794 0.000000 + . gene_id "ARFGAP1"; transcript_id "AK303454:uc011aat.1";
+chr20 hg19_knownGene CDS 61918916 61919222 0.000000 + 1 gene_id "ARFGAP1"; transcript_id "AK303454:uc011aat.1";
+chr20 hg19_knownGene exon 61918916 61920848 0.000000 + . gene_id "ARFGAP1"; transcript_id "AK303454:uc011aat.1";
+chr20 hg19_knownGene exon 61915966 61916274 0.000000 + . gene_id "ARFGAP1"; transcript_id "AL137744:uc002yeo.1";
+chr20 hg19_knownGene exon 61917006 61917065 0.000000 + . gene_id "ARFGAP1"; transcript_id "AL137744:uc002yeo.1";
+chr20 hg19_knownGene exon 61917718 61917794 0.000000 + . gene_id "ARFGAP1"; transcript_id "AL137744:uc002yeo.1";
+chr20 hg19_knownGene exon 61918916 61920848 0.000000 + . gene_id "ARFGAP1"; transcript_id "AL137744:uc002yeo.1";
+chr20 hg19_knownGene exon 61904165 61904272 0.000000 + . gene_id "ARFGAP1"; transcript_id "NM_175609:uc002yel.3";
+chr20 hg19_knownGene CDS 61906933 61906992 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "NM_175609:uc002yel.3";
+chr20 hg19_knownGene exon 61906929 61906992 0.000000 + . gene_id "ARFGAP1"; transcript_id "NM_175609:uc002yel.3";
+chr20 hg19_knownGene CDS 61907443 61907552 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "NM_175609:uc002yel.3";
+chr20 hg19_knownGene exon 61907443 61907552 0.000000 + . gene_id "ARFGAP1"; transcript_id "NM_175609:uc002yel.3";
+chr20 hg19_knownGene CDS 61907832 61908003 0.000000 + 1 gene_id "ARFGAP1"; transcript_id "NM_175609:uc002yel.3";
+chr20 hg19_knownGene exon 61907832 61908003 0.000000 + . gene_id "ARFGAP1"; transcript_id "NM_175609:uc002yel.3";
+chr20 hg19_knownGene CDS 61908557 61908657 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "NM_175609:uc002yel.3";
+chr20 hg19_knownGene exon 61908557 61908657 0.000000 + . gene_id "ARFGAP1"; transcript_id "NM_175609:uc002yel.3";
+chr20 hg19_knownGene CDS 61909469 61909555 0.000000 + 1 gene_id "ARFGAP1"; transcript_id "NM_175609:uc002yel.3";
+chr20 hg19_knownGene exon 61909469 61909555 0.000000 + . gene_id "ARFGAP1"; transcript_id "NM_175609:uc002yel.3";
+chr20 hg19_knownGene CDS 61910251 61910347 0.000000 + 1 gene_id "ARFGAP1"; transcript_id "NM_175609:uc002yel.3";
+chr20 hg19_knownGene exon 61910251 61910347 0.000000 + . gene_id "ARFGAP1"; transcript_id "NM_175609:uc002yel.3";
+chr20 hg19_knownGene CDS 61912643 61912699 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "NM_175609:uc002yel.3";
+chr20 hg19_knownGene exon 61912643 61912699 0.000000 + . gene_id "ARFGAP1"; transcript_id "NM_175609:uc002yel.3";
+chr20 hg19_knownGene CDS 61914171 61914203 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "NM_175609:uc002yel.3";
+chr20 hg19_knownGene exon 61914171 61914203 0.000000 + . gene_id "ARFGAP1"; transcript_id "NM_175609:uc002yel.3";
+chr20 hg19_knownGene CDS 61915203 61915232 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "NM_175609:uc002yel.3";
+chr20 hg19_knownGene exon 61915203 61915232 0.000000 + . gene_id "ARFGAP1"; transcript_id "NM_175609:uc002yel.3";
+chr20 hg19_knownGene CDS 61916218 61916274 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "NM_175609:uc002yel.3";
+chr20 hg19_knownGene exon 61916218 61916274 0.000000 + . gene_id "ARFGAP1"; transcript_id "NM_175609:uc002yel.3";
+chr20 hg19_knownGene CDS 61917006 61917065 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "NM_175609:uc002yel.3";
+chr20 hg19_knownGene exon 61917006 61917065 0.000000 + . gene_id "ARFGAP1"; transcript_id "NM_175609:uc002yel.3";
+chr20 hg19_knownGene CDS 61917724 61917794 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "NM_175609:uc002yel.3";
+chr20 hg19_knownGene exon 61917724 61917794 0.000000 + . gene_id "ARFGAP1"; transcript_id "NM_175609:uc002yel.3";
+chr20 hg19_knownGene CDS 61918916 61919222 0.000000 + 1 gene_id "ARFGAP1"; transcript_id "NM_175609:uc002yel.3";
+chr20 hg19_knownGene exon 61918916 61921142 0.000000 + . gene_id "ARFGAP1"; transcript_id "NM_175609:uc002yel.3";
+chr20 hg19_knownGene exon 61904165 61904272 0.000000 + . gene_id "ARFGAP1"; transcript_id "NM_018209:uc002yem.3";
+chr20 hg19_knownGene CDS 61906933 61906992 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "NM_018209:uc002yem.3";
+chr20 hg19_knownGene exon 61906929 61906992 0.000000 + . gene_id "ARFGAP1"; transcript_id "NM_018209:uc002yem.3";
+chr20 hg19_knownGene CDS 61907443 61907552 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "NM_018209:uc002yem.3";
+chr20 hg19_knownGene exon 61907443 61907552 0.000000 + . gene_id "ARFGAP1"; transcript_id "NM_018209:uc002yem.3";
+chr20 hg19_knownGene CDS 61907832 61908003 0.000000 + 1 gene_id "ARFGAP1"; transcript_id "NM_018209:uc002yem.3";
+chr20 hg19_knownGene exon 61907832 61908003 0.000000 + . gene_id "ARFGAP1"; transcript_id "NM_018209:uc002yem.3";
+chr20 hg19_knownGene CDS 61908557 61908657 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "NM_018209:uc002yem.3";
+chr20 hg19_knownGene exon 61908557 61908657 0.000000 + . gene_id "ARFGAP1"; transcript_id "NM_018209:uc002yem.3";
+chr20 hg19_knownGene CDS 61909469 61909555 0.000000 + 1 gene_id "ARFGAP1"; transcript_id "NM_018209:uc002yem.3";
+chr20 hg19_knownGene exon 61909469 61909555 0.000000 + . gene_id "ARFGAP1"; transcript_id "NM_018209:uc002yem.3";
+chr20 hg19_knownGene CDS 61910251 61910347 0.000000 + 1 gene_id "ARFGAP1"; transcript_id "NM_018209:uc002yem.3";
+chr20 hg19_knownGene exon 61910251 61910347 0.000000 + . gene_id "ARFGAP1"; transcript_id "NM_018209:uc002yem.3";
+chr20 hg19_knownGene CDS 61912643 61912699 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "NM_018209:uc002yem.3";
+chr20 hg19_knownGene exon 61912643 61912699 0.000000 + . gene_id "ARFGAP1"; transcript_id "NM_018209:uc002yem.3";
+chr20 hg19_knownGene CDS 61914171 61914203 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "NM_018209:uc002yem.3";
+chr20 hg19_knownGene exon 61914171 61914203 0.000000 + . gene_id "ARFGAP1"; transcript_id "NM_018209:uc002yem.3";
+chr20 hg19_knownGene CDS 61916218 61916274 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "NM_018209:uc002yem.3";
+chr20 hg19_knownGene exon 61916218 61916274 0.000000 + . gene_id "ARFGAP1"; transcript_id "NM_018209:uc002yem.3";
+chr20 hg19_knownGene CDS 61917006 61917065 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "NM_018209:uc002yem.3";
+chr20 hg19_knownGene exon 61917006 61917065 0.000000 + . gene_id "ARFGAP1"; transcript_id "NM_018209:uc002yem.3";
+chr20 hg19_knownGene CDS 61917718 61917794 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "NM_018209:uc002yem.3";
+chr20 hg19_knownGene exon 61917718 61917794 0.000000 + . gene_id "ARFGAP1"; transcript_id "NM_018209:uc002yem.3";
+chr20 hg19_knownGene CDS 61918916 61919222 0.000000 + 1 gene_id "ARFGAP1"; transcript_id "NM_018209:uc002yem.3";
+chr20 hg19_knownGene exon 61918916 61921142 0.000000 + . gene_id "ARFGAP1"; transcript_id "NM_018209:uc002yem.3";
+chr20 hg19_knownGene exon 61904165 61904272 0.000000 + . gene_id "ARFGAP1"; transcript_id "BC006085:uc002yen.3";
+chr20 hg19_knownGene CDS 61906933 61906992 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "BC006085:uc002yen.3";
+chr20 hg19_knownGene exon 61906929 61906992 0.000000 + . gene_id "ARFGAP1"; transcript_id "BC006085:uc002yen.3";
+chr20 hg19_knownGene CDS 61907443 61907552 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "BC006085:uc002yen.3";
+chr20 hg19_knownGene exon 61907443 61907552 0.000000 + . gene_id "ARFGAP1"; transcript_id "BC006085:uc002yen.3";
+chr20 hg19_knownGene CDS 61907832 61908003 0.000000 + 1 gene_id "ARFGAP1"; transcript_id "BC006085:uc002yen.3";
+chr20 hg19_knownGene exon 61907832 61908003 0.000000 + . gene_id "ARFGAP1"; transcript_id "BC006085:uc002yen.3";
+chr20 hg19_knownGene CDS 61908557 61908657 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "BC006085:uc002yen.3";
+chr20 hg19_knownGene exon 61908557 61908657 0.000000 + . gene_id "ARFGAP1"; transcript_id "BC006085:uc002yen.3";
+chr20 hg19_knownGene CDS 61909469 61909555 0.000000 + 1 gene_id "ARFGAP1"; transcript_id "BC006085:uc002yen.3";
+chr20 hg19_knownGene exon 61909469 61909555 0.000000 + . gene_id "ARFGAP1"; transcript_id "BC006085:uc002yen.3";
+chr20 hg19_knownGene CDS 61910251 61910347 0.000000 + 1 gene_id "ARFGAP1"; transcript_id "BC006085:uc002yen.3";
+chr20 hg19_knownGene exon 61910251 61910347 0.000000 + . gene_id "ARFGAP1"; transcript_id "BC006085:uc002yen.3";
+chr20 hg19_knownGene CDS 61912643 61912699 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "BC006085:uc002yen.3";
+chr20 hg19_knownGene exon 61912643 61912699 0.000000 + . gene_id "ARFGAP1"; transcript_id "BC006085:uc002yen.3";
+chr20 hg19_knownGene CDS 61914171 61914203 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "BC006085:uc002yen.3";
+chr20 hg19_knownGene exon 61914171 61914203 0.000000 + . gene_id "ARFGAP1"; transcript_id "BC006085:uc002yen.3";
+chr20 hg19_knownGene CDS 61916218 61916274 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "BC006085:uc002yen.3";
+chr20 hg19_knownGene exon 61916218 61916274 0.000000 + . gene_id "ARFGAP1"; transcript_id "BC006085:uc002yen.3";
+chr20 hg19_knownGene CDS 61917006 61917065 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "BC006085:uc002yen.3";
+chr20 hg19_knownGene exon 61917006 61917065 0.000000 + . gene_id "ARFGAP1"; transcript_id "BC006085:uc002yen.3";
+chr20 hg19_knownGene CDS 61917332 61917570 0.000000 + 0 gene_id "ARFGAP1"; transcript_id "BC006085:uc002yen.3";
+chr20 hg19_knownGene exon 61917332 61917570 0.000000 + . gene_id "ARFGAP1"; transcript_id "BC006085:uc002yen.3";
+chr20 hg19_knownGene CDS 61917718 61917794 0.000000 + 1 gene_id "ARFGAP1"; transcript_id "BC006085:uc002yen.3";
+chr20 hg19_knownGene exon 61917718 61917794 0.000000 + . gene_id "ARFGAP1"; transcript_id "BC006085:uc002yen.3";
+chr20 hg19_knownGene CDS 61918916 61918974 0.000000 + 2 gene_id "ARFGAP1"; transcript_id "BC006085:uc002yen.3";
+chr20 hg19_knownGene exon 61918916 61921142 0.000000 + . gene_id "ARFGAP1"; transcript_id "BC006085:uc002yen.3";
+chr20 hg19_knownGene exon 61924538 61924627 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61926460 61926541 0.000000 + 0 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61926450 61926541 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61929262 61929372 0.000000 + 2 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61929262 61929372 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61936769 61936912 0.000000 + 2 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61936769 61936912 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61937233 61937391 0.000000 + 2 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61937233 61937391 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61938842 61939000 0.000000 + 2 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61938842 61939000 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61939323 61939442 0.000000 + 2 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61939323 61939442 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61939894 61940058 0.000000 + 2 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61939894 61940058 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61940685 61940849 0.000000 + 2 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61940685 61940849 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61941110 61941267 0.000000 + 2 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61941110 61941267 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61941733 61941862 0.000000 + 0 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61941733 61941862 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61942746 61942891 0.000000 + 2 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61942746 61942891 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61942977 61943100 0.000000 + 0 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61942977 61943100 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61943268 61943407 0.000000 + 2 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61943268 61943407 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61943772 61943901 0.000000 + 0 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61943772 61943901 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61944144 61944286 0.000000 + 2 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61944144 61944286 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61944469 61944601 0.000000 + 0 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61944469 61944601 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61945095 61945243 0.000000 + 2 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61945095 61945243 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61945424 61945553 0.000000 + 0 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61945424 61945553 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61946756 61946791 0.000000 + 2 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61946756 61946791 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61947905 61948043 0.000000 + 2 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61947905 61948043 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61950410 61950552 0.000000 + 1 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61950410 61950552 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61950839 61950948 0.000000 + 2 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61950839 61950948 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61951391 61951549 0.000000 + 0 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61951391 61951549 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61951643 61951720 0.000000 + 0 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61951643 61951720 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61952365 61952451 0.000000 + 0 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61952365 61952451 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61953410 61953463 0.000000 + 0 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61953410 61953463 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61956793 61956846 0.000000 + 0 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61956793 61956846 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61957020 61957073 0.000000 + 0 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61957020 61957073 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61957448 61957501 0.000000 + 0 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61957448 61957501 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61958104 61958175 0.000000 + 0 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61958104 61958175 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61959304 61959339 0.000000 + 0 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61959304 61959339 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61959431 61959479 0.000000 + 0 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61959431 61959479 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61959683 61959850 0.000000 + 2 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61959683 61959850 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene CDS 61960937 61961007 0.000000 + 2 gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61960937 61961013 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61962072 61962285 0.000000 + . gene_id "COL20A1"; transcript_id "NM_020882:uc011aau.2";
+chr20 hg19_knownGene exon 61937365 61937412 0.000000 + . gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene CDS 61938883 61939000 0.000000 + 0 gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene exon 61938842 61939000 0.000000 + . gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene CDS 61939323 61939442 0.000000 + 2 gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene exon 61939323 61939442 0.000000 + . gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene CDS 61939894 61940058 0.000000 + 2 gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene exon 61939894 61940058 0.000000 + . gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene CDS 61940685 61940849 0.000000 + 2 gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene exon 61940685 61940849 0.000000 + . gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene CDS 61941110 61941267 0.000000 + 2 gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene exon 61941110 61941267 0.000000 + . gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene CDS 61941733 61941862 0.000000 + 0 gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene exon 61941733 61941862 0.000000 + . gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene CDS 61942746 61942891 0.000000 + 2 gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene exon 61942746 61942891 0.000000 + . gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene CDS 61942977 61943100 0.000000 + 0 gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene exon 61942977 61943100 0.000000 + . gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene CDS 61943268 61943407 0.000000 + 2 gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene exon 61943268 61943407 0.000000 + . gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene CDS 61943772 61943901 0.000000 + 0 gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene exon 61943772 61943901 0.000000 + . gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene CDS 61944144 61944286 0.000000 + 2 gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene exon 61944144 61944286 0.000000 + . gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene CDS 61944469 61944601 0.000000 + 0 gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene exon 61944469 61944601 0.000000 + . gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene CDS 61945095 61945243 0.000000 + 2 gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene exon 61945095 61945243 0.000000 + . gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene CDS 61945424 61945553 0.000000 + 0 gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene exon 61945424 61945553 0.000000 + . gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene CDS 61946756 61946791 0.000000 + 2 gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene exon 61946756 61946791 0.000000 + . gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene CDS 61947905 61948043 0.000000 + 2 gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene exon 61947905 61948043 0.000000 + . gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene CDS 61950410 61950552 0.000000 + 1 gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene exon 61950410 61950552 0.000000 + . gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene CDS 61950839 61950948 0.000000 + 2 gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene exon 61950839 61950948 0.000000 + . gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene CDS 61951391 61951549 0.000000 + 0 gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene exon 61951391 61951549 0.000000 + . gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene CDS 61951643 61951720 0.000000 + 0 gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene exon 61951643 61951720 0.000000 + . gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene CDS 61952365 61952451 0.000000 + 0 gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene exon 61952365 61952451 0.000000 + . gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene CDS 61953410 61953463 0.000000 + 0 gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene exon 61953410 61953463 0.000000 + . gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene CDS 61956793 61956846 0.000000 + 0 gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene exon 61956793 61956846 0.000000 + . gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene CDS 61957020 61957073 0.000000 + 0 gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene exon 61957020 61957073 0.000000 + . gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene CDS 61957448 61957501 0.000000 + 0 gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene exon 61957448 61957501 0.000000 + . gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene CDS 61958104 61958175 0.000000 + 0 gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene exon 61958104 61958175 0.000000 + . gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene CDS 61959304 61959339 0.000000 + 0 gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene exon 61959304 61959339 0.000000 + . gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene CDS 61959431 61959497 0.000000 + 0 gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene exon 61959431 61959497 0.000000 + . gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene CDS 61959683 61959850 0.000000 + 2 gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene exon 61959683 61959850 0.000000 + . gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene CDS 61960937 61961007 0.000000 + 2 gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene exon 61960937 61961013 0.000000 + . gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene exon 61962072 61962285 0.000000 + . gene_id "COL20A1"; transcript_id "AB040943:uc011aav.2";
+chr20 hg19_knownGene CDS 61978093 61978215 0.000000 - 0 gene_id "CHRNA4"; transcript_id "BC096291:uc010gke.1";
+chr20 hg19_knownGene exon 61977803 61978215 0.000000 - . gene_id "CHRNA4"; transcript_id "BC096291:uc010gke.1";
+chr20 hg19_knownGene CDS 61981005 61982379 0.000000 - 1 gene_id "CHRNA4"; transcript_id "BC096291:uc010gke.1";
+chr20 hg19_knownGene exon 61981005 61982379 0.000000 - . gene_id "CHRNA4"; transcript_id "BC096291:uc010gke.1";
+chr20 hg19_knownGene CDS 61986848 61986947 0.000000 - 2 gene_id "CHRNA4"; transcript_id "BC096291:uc010gke.1";
+chr20 hg19_knownGene exon 61986848 61986947 0.000000 - . gene_id "CHRNA4"; transcript_id "BC096291:uc010gke.1";
+chr20 hg19_knownGene CDS 61987327 61987396 0.000000 - 0 gene_id "CHRNA4"; transcript_id "BC096291:uc010gke.1";
+chr20 hg19_knownGene exon 61987327 61987436 0.000000 - . gene_id "CHRNA4"; transcript_id "BC096291:uc010gke.1";
+chr20 hg19_knownGene exon 61987723 61987767 0.000000 - . gene_id "CHRNA4"; transcript_id "BC096291:uc010gke.1";
+chr20 hg19_knownGene exon 61990900 61991051 0.000000 - . gene_id "CHRNA4"; transcript_id "BC096291:uc010gke.1";
+chr20 hg19_knownGene CDS 61978093 61978215 0.000000 - 0 gene_id "CHRNA4"; transcript_id "BC096292:uc002yev.1";
+chr20 hg19_knownGene exon 61977803 61978215 0.000000 - . gene_id "CHRNA4"; transcript_id "BC096292:uc002yev.1";
+chr20 hg19_knownGene CDS 61981005 61982234 0.000000 - 0 gene_id "CHRNA4"; transcript_id "BC096292:uc002yev.1";
+chr20 hg19_knownGene exon 61981005 61982379 0.000000 - . gene_id "CHRNA4"; transcript_id "BC096292:uc002yev.1";
+chr20 hg19_knownGene exon 61987309 61987436 0.000000 - . gene_id "CHRNA4"; transcript_id "BC096292:uc002yev.1";
+chr20 hg19_knownGene exon 61987723 61987767 0.000000 - . gene_id "CHRNA4"; transcript_id "BC096292:uc002yev.1";
+chr20 hg19_knownGene exon 61990900 61991051 0.000000 - . gene_id "CHRNA4"; transcript_id "BC096292:uc002yev.1";
+chr20 hg19_knownGene exon 61992529 61992656 0.000000 - . gene_id "CHRNA4"; transcript_id "BC096292:uc002yev.1";
+chr20 hg19_knownGene CDS 61978093 61978215 0.000000 - 0 gene_id "CHRNA4"; transcript_id "NM_000744:uc002yes.2";
+chr20 hg19_knownGene exon 61974665 61978215 0.000000 - . gene_id "CHRNA4"; transcript_id "NM_000744:uc002yes.2";
+chr20 hg19_knownGene CDS 61981005 61982379 0.000000 - 1 gene_id "CHRNA4"; transcript_id "NM_000744:uc002yes.2";
+chr20 hg19_knownGene exon 61981005 61982379 0.000000 - . gene_id "CHRNA4"; transcript_id "NM_000744:uc002yes.2";
+chr20 hg19_knownGene CDS 61987327 61987436 0.000000 - 0 gene_id "CHRNA4"; transcript_id "NM_000744:uc002yes.2";
+chr20 hg19_knownGene exon 61987327 61987436 0.000000 - . gene_id "CHRNA4"; transcript_id "NM_000744:uc002yes.2";
+chr20 hg19_knownGene CDS 61987723 61987767 0.000000 - 0 gene_id "CHRNA4"; transcript_id "NM_000744:uc002yes.2";
+chr20 hg19_knownGene exon 61987723 61987767 0.000000 - . gene_id "CHRNA4"; transcript_id "NM_000744:uc002yes.2";
+chr20 hg19_knownGene CDS 61990900 61991051 0.000000 - 2 gene_id "CHRNA4"; transcript_id "NM_000744:uc002yes.2";
+chr20 hg19_knownGene exon 61990900 61991051 0.000000 - . gene_id "CHRNA4"; transcript_id "NM_000744:uc002yes.2";
+chr20 hg19_knownGene CDS 61992442 61992517 0.000000 - 0 gene_id "CHRNA4"; transcript_id "NM_000744:uc002yes.2";
+chr20 hg19_knownGene exon 61992442 61992695 0.000000 - . gene_id "CHRNA4"; transcript_id "NM_000744:uc002yes.2";
+chr20 hg19_knownGene CDS 61978093 61978215 0.000000 - 0 gene_id "CHRNA4"; transcript_id "BC096293:uc010gkf.1";
+chr20 hg19_knownGene exon 61977803 61978215 0.000000 - . gene_id "CHRNA4"; transcript_id "BC096293:uc010gkf.1";
+chr20 hg19_knownGene CDS 61981005 61982234 0.000000 - 0 gene_id "CHRNA4"; transcript_id "BC096293:uc010gkf.1";
+chr20 hg19_knownGene exon 61981005 61982379 0.000000 - . gene_id "CHRNA4"; transcript_id "BC096293:uc010gkf.1";
+chr20 hg19_knownGene exon 61987327 61987461 0.000000 - . gene_id "CHRNA4"; transcript_id "BC096293:uc010gkf.1";
+chr20 hg19_knownGene exon 61987723 61987767 0.000000 - . gene_id "CHRNA4"; transcript_id "BC096293:uc010gkf.1";
+chr20 hg19_knownGene exon 61990900 61991051 0.000000 - . gene_id "CHRNA4"; transcript_id "BC096293:uc010gkf.1";
+chr20 hg19_knownGene exon 61992442 61992695 0.000000 - . gene_id "CHRNA4"; transcript_id "BC096293:uc010gkf.1";
+chr20 hg19_knownGene CDS 61978093 61978215 0.000000 - 0 gene_id "CHRNA4"; transcript_id "AB209359:uc002yet.1";
+chr20 hg19_knownGene exon 61974665 61978215 0.000000 - . gene_id "CHRNA4"; transcript_id "AB209359:uc002yet.1";
+chr20 hg19_knownGene CDS 61981005 61982234 0.000000 - 0 gene_id "CHRNA4"; transcript_id "AB209359:uc002yet.1";
+chr20 hg19_knownGene exon 61981005 61982379 0.000000 - . gene_id "CHRNA4"; transcript_id "AB209359:uc002yet.1";
+chr20 hg19_knownGene exon 62005233 62005884 0.000000 - . gene_id "CHRNA4"; transcript_id "AB209359:uc002yet.1";
+chr20 hg19_knownGene exon 62006605 62006744 0.000000 - . gene_id "CHRNA4"; transcript_id "AB209359:uc002yet.1";
+chr20 hg19_knownGene exon 62009107 62009489 0.000000 - . gene_id "CHRNA4"; transcript_id "AB209359:uc002yet.1";
+chr20 hg19_knownGene exon 62023923 62026961 0.000000 - . gene_id "AK056267"; transcript_id "AK056267:uc002yew.1";
+chr20 hg19_knownGene exon 62031567 62033370 0.000000 - . gene_id "KCNQ2"; transcript_id "BC127262:uc002yex.3";
+chr20 hg19_knownGene CDS 62038000 62038728 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene exon 62037542 62038728 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene CDS 62039766 62039889 0.000000 - 1 gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene exon 62039766 62039889 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene CDS 62044803 62044934 0.000000 - 1 gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene exon 62044803 62044934 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene CDS 62045441 62045546 0.000000 - 2 gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene exon 62045441 62045546 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene CDS 62046256 62046479 0.000000 - 1 gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene exon 62046256 62046479 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene CDS 62050972 62051025 0.000000 - 1 gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene exon 62050972 62051025 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene CDS 62055530 62055559 0.000000 - 1 gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene exon 62055530 62055559 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene CDS 62059720 62059788 0.000000 - 1 gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene exon 62059720 62059788 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene CDS 62062693 62062722 0.000000 - 1 gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene exon 62062693 62062722 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene CDS 62065162 62065256 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene exon 62065162 62065256 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene CDS 62069978 62070073 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene exon 62069978 62070073 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene CDS 62070951 62071061 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene exon 62070951 62071061 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene CDS 62073759 62073884 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene exon 62073759 62073884 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene CDS 62076012 62076187 0.000000 - 2 gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene exon 62076012 62076187 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene CDS 62076591 62076717 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene exon 62076591 62076717 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene CDS 62078100 62078190 0.000000 - 1 gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene exon 62078100 62078190 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene CDS 62103521 62103816 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene exon 62103521 62103993 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172107:uc002yey.1";
+chr20 hg19_knownGene CDS 62038000 62038728 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_172108:uc002yez.1";
+chr20 hg19_knownGene exon 62037542 62038728 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172108:uc002yez.1";
+chr20 hg19_knownGene CDS 62039766 62039889 0.000000 - 1 gene_id "KCNQ2"; transcript_id "NM_172108:uc002yez.1";
+chr20 hg19_knownGene exon 62039766 62039889 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172108:uc002yez.1";
+chr20 hg19_knownGene CDS 62044803 62044934 0.000000 - 1 gene_id "KCNQ2"; transcript_id "NM_172108:uc002yez.1";
+chr20 hg19_knownGene exon 62044803 62044934 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172108:uc002yez.1";
+chr20 hg19_knownGene CDS 62045441 62045543 0.000000 - 2 gene_id "KCNQ2"; transcript_id "NM_172108:uc002yez.1";
+chr20 hg19_knownGene exon 62045441 62045543 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172108:uc002yez.1";
+chr20 hg19_knownGene CDS 62046256 62046443 0.000000 - 1 gene_id "KCNQ2"; transcript_id "NM_172108:uc002yez.1";
+chr20 hg19_knownGene exon 62046256 62046443 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172108:uc002yez.1";
+chr20 hg19_knownGene CDS 62055530 62055559 0.000000 - 1 gene_id "KCNQ2"; transcript_id "NM_172108:uc002yez.1";
+chr20 hg19_knownGene exon 62055530 62055559 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172108:uc002yez.1";
+chr20 hg19_knownGene CDS 62059720 62059788 0.000000 - 1 gene_id "KCNQ2"; transcript_id "NM_172108:uc002yez.1";
+chr20 hg19_knownGene exon 62059720 62059788 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172108:uc002yez.1";
+chr20 hg19_knownGene CDS 62062693 62062722 0.000000 - 1 gene_id "KCNQ2"; transcript_id "NM_172108:uc002yez.1";
+chr20 hg19_knownGene exon 62062693 62062722 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172108:uc002yez.1";
+chr20 hg19_knownGene CDS 62065162 62065256 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_172108:uc002yez.1";
+chr20 hg19_knownGene exon 62065162 62065256 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172108:uc002yez.1";
+chr20 hg19_knownGene CDS 62069978 62070073 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_172108:uc002yez.1";
+chr20 hg19_knownGene exon 62069978 62070073 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172108:uc002yez.1";
+chr20 hg19_knownGene CDS 62070951 62071061 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_172108:uc002yez.1";
+chr20 hg19_knownGene exon 62070951 62071061 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172108:uc002yez.1";
+chr20 hg19_knownGene CDS 62073759 62073884 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_172108:uc002yez.1";
+chr20 hg19_knownGene exon 62073759 62073884 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172108:uc002yez.1";
+chr20 hg19_knownGene CDS 62076012 62076187 0.000000 - 2 gene_id "KCNQ2"; transcript_id "NM_172108:uc002yez.1";
+chr20 hg19_knownGene exon 62076012 62076187 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172108:uc002yez.1";
+chr20 hg19_knownGene CDS 62076591 62076717 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_172108:uc002yez.1";
+chr20 hg19_knownGene exon 62076591 62076717 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172108:uc002yez.1";
+chr20 hg19_knownGene CDS 62078100 62078190 0.000000 - 1 gene_id "KCNQ2"; transcript_id "NM_172108:uc002yez.1";
+chr20 hg19_knownGene exon 62078100 62078190 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172108:uc002yez.1";
+chr20 hg19_knownGene CDS 62103521 62103816 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_172108:uc002yez.1";
+chr20 hg19_knownGene exon 62103521 62103993 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172108:uc002yez.1";
+chr20 hg19_knownGene CDS 62038000 62038728 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_172106:uc002yfa.1";
+chr20 hg19_knownGene exon 62037542 62038728 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172106:uc002yfa.1";
+chr20 hg19_knownGene CDS 62039766 62039889 0.000000 - 1 gene_id "KCNQ2"; transcript_id "NM_172106:uc002yfa.1";
+chr20 hg19_knownGene exon 62039766 62039889 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172106:uc002yfa.1";
+chr20 hg19_knownGene CDS 62044803 62044934 0.000000 - 1 gene_id "KCNQ2"; transcript_id "NM_172106:uc002yfa.1";
+chr20 hg19_knownGene exon 62044803 62044934 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172106:uc002yfa.1";
+chr20 hg19_knownGene CDS 62045441 62045546 0.000000 - 2 gene_id "KCNQ2"; transcript_id "NM_172106:uc002yfa.1";
+chr20 hg19_knownGene exon 62045441 62045546 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172106:uc002yfa.1";
+chr20 hg19_knownGene CDS 62046256 62046479 0.000000 - 1 gene_id "KCNQ2"; transcript_id "NM_172106:uc002yfa.1";
+chr20 hg19_knownGene exon 62046256 62046479 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172106:uc002yfa.1";
+chr20 hg19_knownGene CDS 62055530 62055559 0.000000 - 1 gene_id "KCNQ2"; transcript_id "NM_172106:uc002yfa.1";
+chr20 hg19_knownGene exon 62055530 62055559 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172106:uc002yfa.1";
+chr20 hg19_knownGene CDS 62059720 62059788 0.000000 - 1 gene_id "KCNQ2"; transcript_id "NM_172106:uc002yfa.1";
+chr20 hg19_knownGene exon 62059720 62059788 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172106:uc002yfa.1";
+chr20 hg19_knownGene CDS 62062693 62062722 0.000000 - 1 gene_id "KCNQ2"; transcript_id "NM_172106:uc002yfa.1";
+chr20 hg19_knownGene exon 62062693 62062722 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172106:uc002yfa.1";
+chr20 hg19_knownGene CDS 62065162 62065256 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_172106:uc002yfa.1";
+chr20 hg19_knownGene exon 62065162 62065256 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172106:uc002yfa.1";
+chr20 hg19_knownGene CDS 62069978 62070073 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_172106:uc002yfa.1";
+chr20 hg19_knownGene exon 62069978 62070073 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172106:uc002yfa.1";
+chr20 hg19_knownGene CDS 62070951 62071061 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_172106:uc002yfa.1";
+chr20 hg19_knownGene exon 62070951 62071061 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172106:uc002yfa.1";
+chr20 hg19_knownGene CDS 62073759 62073884 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_172106:uc002yfa.1";
+chr20 hg19_knownGene exon 62073759 62073884 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172106:uc002yfa.1";
+chr20 hg19_knownGene CDS 62076012 62076187 0.000000 - 2 gene_id "KCNQ2"; transcript_id "NM_172106:uc002yfa.1";
+chr20 hg19_knownGene exon 62076012 62076187 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172106:uc002yfa.1";
+chr20 hg19_knownGene CDS 62076591 62076717 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_172106:uc002yfa.1";
+chr20 hg19_knownGene exon 62076591 62076717 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172106:uc002yfa.1";
+chr20 hg19_knownGene CDS 62078100 62078190 0.000000 - 1 gene_id "KCNQ2"; transcript_id "NM_172106:uc002yfa.1";
+chr20 hg19_knownGene exon 62078100 62078190 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172106:uc002yfa.1";
+chr20 hg19_knownGene CDS 62103521 62103816 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_172106:uc002yfa.1";
+chr20 hg19_knownGene exon 62103521 62103993 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172106:uc002yfa.1";
+chr20 hg19_knownGene CDS 62038000 62038728 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_004518:uc002yfb.1";
+chr20 hg19_knownGene exon 62037542 62038728 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_004518:uc002yfb.1";
+chr20 hg19_knownGene CDS 62039766 62039889 0.000000 - 1 gene_id "KCNQ2"; transcript_id "NM_004518:uc002yfb.1";
+chr20 hg19_knownGene exon 62039766 62039889 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_004518:uc002yfb.1";
+chr20 hg19_knownGene CDS 62044803 62044934 0.000000 - 1 gene_id "KCNQ2"; transcript_id "NM_004518:uc002yfb.1";
+chr20 hg19_knownGene exon 62044803 62044934 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_004518:uc002yfb.1";
+chr20 hg19_knownGene CDS 62045441 62045546 0.000000 - 2 gene_id "KCNQ2"; transcript_id "NM_004518:uc002yfb.1";
+chr20 hg19_knownGene exon 62045441 62045546 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_004518:uc002yfb.1";
+chr20 hg19_knownGene CDS 62046256 62046479 0.000000 - 1 gene_id "KCNQ2"; transcript_id "NM_004518:uc002yfb.1";
+chr20 hg19_knownGene exon 62046256 62046479 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_004518:uc002yfb.1";
+chr20 hg19_knownGene CDS 62055530 62055559 0.000000 - 1 gene_id "KCNQ2"; transcript_id "NM_004518:uc002yfb.1";
+chr20 hg19_knownGene exon 62055530 62055559 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_004518:uc002yfb.1";
+chr20 hg19_knownGene CDS 62059720 62059788 0.000000 - 1 gene_id "KCNQ2"; transcript_id "NM_004518:uc002yfb.1";
+chr20 hg19_knownGene exon 62059720 62059788 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_004518:uc002yfb.1";
+chr20 hg19_knownGene CDS 62065162 62065256 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_004518:uc002yfb.1";
+chr20 hg19_knownGene exon 62065162 62065256 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_004518:uc002yfb.1";
+chr20 hg19_knownGene CDS 62069978 62070073 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_004518:uc002yfb.1";
+chr20 hg19_knownGene exon 62069978 62070073 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_004518:uc002yfb.1";
+chr20 hg19_knownGene CDS 62070951 62071061 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_004518:uc002yfb.1";
+chr20 hg19_knownGene exon 62070951 62071061 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_004518:uc002yfb.1";
+chr20 hg19_knownGene CDS 62073759 62073884 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_004518:uc002yfb.1";
+chr20 hg19_knownGene exon 62073759 62073884 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_004518:uc002yfb.1";
+chr20 hg19_knownGene CDS 62076012 62076187 0.000000 - 2 gene_id "KCNQ2"; transcript_id "NM_004518:uc002yfb.1";
+chr20 hg19_knownGene exon 62076012 62076187 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_004518:uc002yfb.1";
+chr20 hg19_knownGene CDS 62076591 62076717 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_004518:uc002yfb.1";
+chr20 hg19_knownGene exon 62076591 62076717 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_004518:uc002yfb.1";
+chr20 hg19_knownGene CDS 62078100 62078190 0.000000 - 1 gene_id "KCNQ2"; transcript_id "NM_004518:uc002yfb.1";
+chr20 hg19_knownGene exon 62078100 62078190 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_004518:uc002yfb.1";
+chr20 hg19_knownGene CDS 62103521 62103816 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_004518:uc002yfb.1";
+chr20 hg19_knownGene exon 62103521 62103993 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_004518:uc002yfb.1";
+chr20 hg19_knownGene CDS 62055439 62055559 0.000000 - 1 gene_id "KCNQ2"; transcript_id "AK293727:uc011aax.1";
+chr20 hg19_knownGene exon 62055287 62055559 0.000000 - . gene_id "KCNQ2"; transcript_id "AK293727:uc011aax.1";
+chr20 hg19_knownGene CDS 62059720 62059788 0.000000 - 1 gene_id "KCNQ2"; transcript_id "AK293727:uc011aax.1";
+chr20 hg19_knownGene exon 62059720 62059788 0.000000 - . gene_id "KCNQ2"; transcript_id "AK293727:uc011aax.1";
+chr20 hg19_knownGene CDS 62062693 62062722 0.000000 - 1 gene_id "KCNQ2"; transcript_id "AK293727:uc011aax.1";
+chr20 hg19_knownGene exon 62062693 62062722 0.000000 - . gene_id "KCNQ2"; transcript_id "AK293727:uc011aax.1";
+chr20 hg19_knownGene CDS 62065162 62065256 0.000000 - 0 gene_id "KCNQ2"; transcript_id "AK293727:uc011aax.1";
+chr20 hg19_knownGene exon 62065162 62065256 0.000000 - . gene_id "KCNQ2"; transcript_id "AK293727:uc011aax.1";
+chr20 hg19_knownGene CDS 62069978 62070073 0.000000 - 0 gene_id "KCNQ2"; transcript_id "AK293727:uc011aax.1";
+chr20 hg19_knownGene exon 62069978 62070073 0.000000 - . gene_id "KCNQ2"; transcript_id "AK293727:uc011aax.1";
+chr20 hg19_knownGene CDS 62070951 62071061 0.000000 - 0 gene_id "KCNQ2"; transcript_id "AK293727:uc011aax.1";
+chr20 hg19_knownGene exon 62070951 62071061 0.000000 - . gene_id "KCNQ2"; transcript_id "AK293727:uc011aax.1";
+chr20 hg19_knownGene CDS 62073759 62073884 0.000000 - 0 gene_id "KCNQ2"; transcript_id "AK293727:uc011aax.1";
+chr20 hg19_knownGene exon 62073759 62073884 0.000000 - . gene_id "KCNQ2"; transcript_id "AK293727:uc011aax.1";
+chr20 hg19_knownGene CDS 62076012 62076187 0.000000 - 2 gene_id "KCNQ2"; transcript_id "AK293727:uc011aax.1";
+chr20 hg19_knownGene exon 62076012 62076187 0.000000 - . gene_id "KCNQ2"; transcript_id "AK293727:uc011aax.1";
+chr20 hg19_knownGene CDS 62076591 62076717 0.000000 - 0 gene_id "KCNQ2"; transcript_id "AK293727:uc011aax.1";
+chr20 hg19_knownGene exon 62076591 62076717 0.000000 - . gene_id "KCNQ2"; transcript_id "AK293727:uc011aax.1";
+chr20 hg19_knownGene CDS 62078100 62078190 0.000000 - 1 gene_id "KCNQ2"; transcript_id "AK293727:uc011aax.1";
+chr20 hg19_knownGene exon 62078100 62078190 0.000000 - . gene_id "KCNQ2"; transcript_id "AK293727:uc011aax.1";
+chr20 hg19_knownGene CDS 62103521 62103816 0.000000 - 0 gene_id "KCNQ2"; transcript_id "AK293727:uc011aax.1";
+chr20 hg19_knownGene exon 62103521 62103993 0.000000 - . gene_id "KCNQ2"; transcript_id "AK293727:uc011aax.1";
+chr20 hg19_knownGene CDS 62065101 62065256 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_172109:uc002yfc.1";
+chr20 hg19_knownGene exon 62065032 62065256 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172109:uc002yfc.1";
+chr20 hg19_knownGene CDS 62069978 62070073 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_172109:uc002yfc.1";
+chr20 hg19_knownGene exon 62069978 62070073 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172109:uc002yfc.1";
+chr20 hg19_knownGene CDS 62070951 62071061 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_172109:uc002yfc.1";
+chr20 hg19_knownGene exon 62070951 62071061 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172109:uc002yfc.1";
+chr20 hg19_knownGene CDS 62073759 62073884 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_172109:uc002yfc.1";
+chr20 hg19_knownGene exon 62073759 62073884 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172109:uc002yfc.1";
+chr20 hg19_knownGene CDS 62076012 62076187 0.000000 - 2 gene_id "KCNQ2"; transcript_id "NM_172109:uc002yfc.1";
+chr20 hg19_knownGene exon 62076012 62076187 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172109:uc002yfc.1";
+chr20 hg19_knownGene CDS 62076591 62076717 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_172109:uc002yfc.1";
+chr20 hg19_knownGene exon 62076591 62076717 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172109:uc002yfc.1";
+chr20 hg19_knownGene CDS 62078100 62078190 0.000000 - 1 gene_id "KCNQ2"; transcript_id "NM_172109:uc002yfc.1";
+chr20 hg19_knownGene exon 62078100 62078190 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172109:uc002yfc.1";
+chr20 hg19_knownGene CDS 62103521 62103816 0.000000 - 0 gene_id "KCNQ2"; transcript_id "NM_172109:uc002yfc.1";
+chr20 hg19_knownGene exon 62103521 62103993 0.000000 - . gene_id "KCNQ2"; transcript_id "NM_172109:uc002yfc.1";
+chr20 hg19_knownGene CDS 62119654 62119778 0.000000 - 2 gene_id "EEF1A2"; transcript_id "NM_001958:uc002yfe.1";
+chr20 hg19_knownGene exon 62119366 62119778 0.000000 - . gene_id "EEF1A2"; transcript_id "NM_001958:uc002yfe.1";
+chr20 hg19_knownGene CDS 62120271 62120505 0.000000 - 0 gene_id "EEF1A2"; transcript_id "NM_001958:uc002yfe.1";
+chr20 hg19_knownGene exon 62120271 62120505 0.000000 - . gene_id "EEF1A2"; transcript_id "NM_001958:uc002yfe.1";
+chr20 hg19_knownGene CDS 62121832 62122088 0.000000 - 2 gene_id "EEF1A2"; transcript_id "NM_001958:uc002yfe.1";
+chr20 hg19_knownGene exon 62121832 62122088 0.000000 - . gene_id "EEF1A2"; transcript_id "NM_001958:uc002yfe.1";
+chr20 hg19_knownGene CDS 62124490 62124640 0.000000 - 0 gene_id "EEF1A2"; transcript_id "NM_001958:uc002yfe.1";
+chr20 hg19_knownGene exon 62124490 62124640 0.000000 - . gene_id "EEF1A2"; transcript_id "NM_001958:uc002yfe.1";
+chr20 hg19_knownGene CDS 62126158 62126454 0.000000 - 0 gene_id "EEF1A2"; transcript_id "NM_001958:uc002yfe.1";
+chr20 hg19_knownGene exon 62126158 62126454 0.000000 - . gene_id "EEF1A2"; transcript_id "NM_001958:uc002yfe.1";
+chr20 hg19_knownGene CDS 62127209 62127388 0.000000 - 0 gene_id "EEF1A2"; transcript_id "NM_001958:uc002yfe.1";
+chr20 hg19_knownGene exon 62127209 62127388 0.000000 - . gene_id "EEF1A2"; transcript_id "NM_001958:uc002yfe.1";
+chr20 hg19_knownGene CDS 62128973 62129116 0.000000 - 0 gene_id "EEF1A2"; transcript_id "NM_001958:uc002yfe.1";
+chr20 hg19_knownGene exon 62128973 62129187 0.000000 - . gene_id "EEF1A2"; transcript_id "NM_001958:uc002yfe.1";
+chr20 hg19_knownGene exon 62130411 62130505 0.000000 - . gene_id "EEF1A2"; transcript_id "NM_001958:uc002yfe.1";
+chr20 hg19_knownGene exon 62152133 62152247 0.000000 + . gene_id "PPDPF"; transcript_id "NM_024299:uc002yff.3";
+chr20 hg19_knownGene CDS 62152662 62152716 0.000000 + 0 gene_id "PPDPF"; transcript_id "NM_024299:uc002yff.3";
+chr20 hg19_knownGene exon 62152637 62152716 0.000000 + . gene_id "PPDPF"; transcript_id "NM_024299:uc002yff.3";
+chr20 hg19_knownGene CDS 62152865 62152942 0.000000 + 2 gene_id "PPDPF"; transcript_id "NM_024299:uc002yff.3";
+chr20 hg19_knownGene exon 62152865 62152942 0.000000 + . gene_id "PPDPF"; transcript_id "NM_024299:uc002yff.3";
+chr20 hg19_knownGene CDS 62153021 62153229 0.000000 + 2 gene_id "PPDPF"; transcript_id "NM_024299:uc002yff.3";
+chr20 hg19_knownGene exon 62153021 62153524 0.000000 + . gene_id "PPDPF"; transcript_id "NM_024299:uc002yff.3";
+chr20 hg19_knownGene CDS 62161402 62161584 0.000000 - 0 gene_id "PTK6"; transcript_id "AK124082:uc011aaz.1";
+chr20 hg19_knownGene exon 62160109 62161584 0.000000 - . gene_id "PTK6"; transcript_id "AK124082:uc011aaz.1";
+chr20 hg19_knownGene CDS 62162099 62162280 0.000000 - 2 gene_id "PTK6"; transcript_id "AK124082:uc011aaz.1";
+chr20 hg19_knownGene exon 62162099 62162280 0.000000 - . gene_id "PTK6"; transcript_id "AK124082:uc011aaz.1";
+chr20 hg19_knownGene CDS 62163879 62163996 0.000000 - 0 gene_id "PTK6"; transcript_id "AK124082:uc011aaz.1";
+chr20 hg19_knownGene exon 62163879 62164726 0.000000 - . gene_id "PTK6"; transcript_id "AK124082:uc011aaz.1";
+chr20 hg19_knownGene CDS 62160892 62161076 0.000000 - 2 gene_id "PTK6"; transcript_id "NM_005975:uc002yfg.3";
+chr20 hg19_knownGene exon 62159776 62161076 0.000000 - . gene_id "PTK6"; transcript_id "NM_005975:uc002yfg.3";
+chr20 hg19_knownGene CDS 62161431 62161584 0.000000 - 0 gene_id "PTK6"; transcript_id "NM_005975:uc002yfg.3";
+chr20 hg19_knownGene exon 62161431 62161584 0.000000 - . gene_id "PTK6"; transcript_id "NM_005975:uc002yfg.3";
+chr20 hg19_knownGene CDS 62162099 62162280 0.000000 - 2 gene_id "PTK6"; transcript_id "NM_005975:uc002yfg.3";
+chr20 hg19_knownGene exon 62162099 62162280 0.000000 - . gene_id "PTK6"; transcript_id "NM_005975:uc002yfg.3";
+chr20 hg19_knownGene CDS 62163879 62164040 0.000000 - 2 gene_id "PTK6"; transcript_id "NM_005975:uc002yfg.3";
+chr20 hg19_knownGene exon 62163879 62164040 0.000000 - . gene_id "PTK6"; transcript_id "NM_005975:uc002yfg.3";
+chr20 hg19_knownGene CDS 62164904 62165057 0.000000 - 0 gene_id "PTK6"; transcript_id "NM_005975:uc002yfg.3";
+chr20 hg19_knownGene exon 62164904 62165057 0.000000 - . gene_id "PTK6"; transcript_id "NM_005975:uc002yfg.3";
+chr20 hg19_knownGene CDS 62165505 62165668 0.000000 - 2 gene_id "PTK6"; transcript_id "NM_005975:uc002yfg.3";
+chr20 hg19_knownGene exon 62165505 62165668 0.000000 - . gene_id "PTK6"; transcript_id "NM_005975:uc002yfg.3";
+chr20 hg19_knownGene CDS 62166291 62166412 0.000000 - 1 gene_id "PTK6"; transcript_id "NM_005975:uc002yfg.3";
+chr20 hg19_knownGene exon 62166291 62166412 0.000000 - . gene_id "PTK6"; transcript_id "NM_005975:uc002yfg.3";
+chr20 hg19_knownGene CDS 62168438 62168667 0.000000 - 0 gene_id "PTK6"; transcript_id "NM_005975:uc002yfg.3";
+chr20 hg19_knownGene exon 62168438 62168707 0.000000 - . gene_id "PTK6"; transcript_id "NM_005975:uc002yfg.3";
+chr20 hg19_knownGene CDS 62160892 62161076 0.000000 - 2 gene_id "PTK6"; transcript_id "AK301364:uc011aay.2";
+chr20 hg19_knownGene exon 62159776 62161076 0.000000 - . gene_id "PTK6"; transcript_id "AK301364:uc011aay.2";
+chr20 hg19_knownGene CDS 62161431 62161584 0.000000 - 0 gene_id "PTK6"; transcript_id "AK301364:uc011aay.2";
+chr20 hg19_knownGene exon 62161431 62161584 0.000000 - . gene_id "PTK6"; transcript_id "AK301364:uc011aay.2";
+chr20 hg19_knownGene CDS 62162099 62162280 0.000000 - 2 gene_id "PTK6"; transcript_id "AK301364:uc011aay.2";
+chr20 hg19_knownGene exon 62162099 62162280 0.000000 - . gene_id "PTK6"; transcript_id "AK301364:uc011aay.2";
+chr20 hg19_knownGene CDS 62163879 62164040 0.000000 - 2 gene_id "PTK6"; transcript_id "AK301364:uc011aay.2";
+chr20 hg19_knownGene exon 62163879 62164040 0.000000 - . gene_id "PTK6"; transcript_id "AK301364:uc011aay.2";
+chr20 hg19_knownGene CDS 62164904 62165057 0.000000 - 0 gene_id "PTK6"; transcript_id "AK301364:uc011aay.2";
+chr20 hg19_knownGene exon 62164904 62165057 0.000000 - . gene_id "PTK6"; transcript_id "AK301364:uc011aay.2";
+chr20 hg19_knownGene CDS 62165505 62165668 0.000000 - 2 gene_id "PTK6"; transcript_id "AK301364:uc011aay.2";
+chr20 hg19_knownGene exon 62165505 62165668 0.000000 - . gene_id "PTK6"; transcript_id "AK301364:uc011aay.2";
+chr20 hg19_knownGene CDS 62168438 62168486 0.000000 - 0 gene_id "PTK6"; transcript_id "AK301364:uc011aay.2";
+chr20 hg19_knownGene exon 62168438 62168707 0.000000 - . gene_id "PTK6"; transcript_id "AK301364:uc011aay.2";
+chr20 hg19_knownGene CDS 62166241 62166412 0.000000 - 1 gene_id "PTK6"; transcript_id "AK301691:uc011aba.2";
+chr20 hg19_knownGene exon 62165599 62166412 0.000000 - . gene_id "PTK6"; transcript_id "AK301691:uc011aba.2";
+chr20 hg19_knownGene CDS 62168438 62168667 0.000000 - 0 gene_id "PTK6"; transcript_id "AK301691:uc011aba.2";
+chr20 hg19_knownGene exon 62168438 62168707 0.000000 - . gene_id "PTK6"; transcript_id "AK301691:uc011aba.2";
+chr20 hg19_knownGene CDS 62172174 62172352 0.000000 - 2 gene_id "SRMS"; transcript_id "NM_080823:uc002yfi.1";
+chr20 hg19_knownGene exon 62172163 62172352 0.000000 - . gene_id "SRMS"; transcript_id "NM_080823:uc002yfi.1";
+chr20 hg19_knownGene CDS 62172544 62172700 0.000000 - 0 gene_id "SRMS"; transcript_id "NM_080823:uc002yfi.1";
+chr20 hg19_knownGene exon 62172544 62172700 0.000000 - . gene_id "SRMS"; transcript_id "NM_080823:uc002yfi.1";
+chr20 hg19_knownGene CDS 62172792 62172973 0.000000 - 2 gene_id "SRMS"; transcript_id "NM_080823:uc002yfi.1";
+chr20 hg19_knownGene exon 62172792 62172973 0.000000 - . gene_id "SRMS"; transcript_id "NM_080823:uc002yfi.1";
+chr20 hg19_knownGene CDS 62173516 62173674 0.000000 - 2 gene_id "SRMS"; transcript_id "NM_080823:uc002yfi.1";
+chr20 hg19_knownGene exon 62173516 62173674 0.000000 - . gene_id "SRMS"; transcript_id "NM_080823:uc002yfi.1";
+chr20 hg19_knownGene CDS 62173793 62173934 0.000000 - 0 gene_id "SRMS"; transcript_id "NM_080823:uc002yfi.1";
+chr20 hg19_knownGene exon 62173793 62173934 0.000000 - . gene_id "SRMS"; transcript_id "NM_080823:uc002yfi.1";
+chr20 hg19_knownGene CDS 62174667 62174833 0.000000 - 2 gene_id "SRMS"; transcript_id "NM_080823:uc002yfi.1";
+chr20 hg19_knownGene exon 62174667 62174833 0.000000 - . gene_id "SRMS"; transcript_id "NM_080823:uc002yfi.1";
+chr20 hg19_knownGene CDS 62175580 62175701 0.000000 - 1 gene_id "SRMS"; transcript_id "NM_080823:uc002yfi.1";
+chr20 hg19_knownGene exon 62175580 62175701 0.000000 - . gene_id "SRMS"; transcript_id "NM_080823:uc002yfi.1";
+chr20 hg19_knownGene CDS 62178461 62178816 0.000000 - 0 gene_id "SRMS"; transcript_id "NM_080823:uc002yfi.1";
+chr20 hg19_knownGene exon 62178461 62178857 0.000000 - . gene_id "SRMS"; transcript_id "NM_080823:uc002yfi.1";
+chr20 hg19_knownGene CDS 62187017 62187970 0.000000 + 0 gene_id "C20orf195"; transcript_id "CCDS13526:uc021wgc.1";
+chr20 hg19_knownGene exon 62187017 62187973 0.000000 + . gene_id "C20orf195"; transcript_id "CCDS13526:uc021wgc.1";
+chr20 hg19_knownGene exon 62184373 62184454 0.000000 + . gene_id "C20orf195"; transcript_id "NM_024059:uc002yfj.3";
+chr20 hg19_knownGene CDS 62187017 62187970 0.000000 + 0 gene_id "C20orf195"; transcript_id "NM_024059:uc002yfj.3";
+chr20 hg19_knownGene exon 62187007 62188035 0.000000 + . gene_id "C20orf195"; transcript_id "NM_024059:uc002yfj.3";
+chr20 hg19_knownGene CDS 62190602 62190723 0.000000 - 2 gene_id "PRIC285"; transcript_id "NM_033405:uc002yfl.1";
+chr20 hg19_knownGene exon 62189439 62190723 0.000000 - . gene_id "PRIC285"; transcript_id "NM_033405:uc002yfl.1";
+chr20 hg19_knownGene CDS 62191281 62191448 0.000000 - 2 gene_id "PRIC285"; transcript_id "NM_033405:uc002yfl.1";
+chr20 hg19_knownGene exon 62191281 62191448 0.000000 - . gene_id "PRIC285"; transcript_id "NM_033405:uc002yfl.1";
+chr20 hg19_knownGene CDS 62191524 62191680 0.000000 - 0 gene_id "PRIC285"; transcript_id "NM_033405:uc002yfl.1";
+chr20 hg19_knownGene exon 62191524 62191680 0.000000 - . gene_id "PRIC285"; transcript_id "NM_033405:uc002yfl.1";
+chr20 hg19_knownGene CDS 62191832 62192050 0.000000 - 0 gene_id "PRIC285"; transcript_id "NM_033405:uc002yfl.1";
+chr20 hg19_knownGene exon 62191832 62192050 0.000000 - . gene_id "PRIC285"; transcript_id "NM_033405:uc002yfl.1";
+chr20 hg19_knownGene CDS 62192148 62192282 0.000000 - 0 gene_id "PRIC285"; transcript_id "NM_033405:uc002yfl.1";
+chr20 hg19_knownGene exon 62192148 62192282 0.000000 - . gene_id "PRIC285"; transcript_id "NM_033405:uc002yfl.1";
+chr20 hg19_knownGene CDS 62192435 62192627 0.000000 - 1 gene_id "PRIC285"; transcript_id "NM_033405:uc002yfl.1";
+chr20 hg19_knownGene exon 62192435 62192627 0.000000 - . gene_id "PRIC285"; transcript_id "NM_033405:uc002yfl.1";
+chr20 hg19_knownGene CDS 62192703 62192819 0.000000 - 1 gene_id "PRIC285"; transcript_id "NM_033405:uc002yfl.1";
+chr20 hg19_knownGene exon 62192703 62192819 0.000000 - . gene_id "PRIC285"; transcript_id "NM_033405:uc002yfl.1";
+chr20 hg19_knownGene CDS 62192954 62193098 0.000000 - 2 gene_id "PRIC285"; transcript_id "NM_033405:uc002yfl.1";
+chr20 hg19_knownGene exon 62192954 62193098 0.000000 - . gene_id "PRIC285"; transcript_id "NM_033405:uc002yfl.1";
+chr20 hg19_knownGene CDS 62193176 62193337 0.000000 - 2 gene_id "PRIC285"; transcript_id "NM_033405:uc002yfl.1";
+chr20 hg19_knownGene exon 62193176 62193337 0.000000 - . gene_id "PRIC285"; transcript_id "NM_033405:uc002yfl.1";
+chr20 hg19_knownGene CDS 62193425 62193556 0.000000 - 2 gene_id "PRIC285"; transcript_id "NM_033405:uc002yfl.1";
+chr20 hg19_knownGene exon 62193425 62193556 0.000000 - . gene_id "PRIC285"; transcript_id "NM_033405:uc002yfl.1";
+chr20 hg19_knownGene CDS 62193641 62193735 0.000000 - 1 gene_id "PRIC285"; transcript_id "NM_033405:uc002yfl.1";
+chr20 hg19_knownGene exon 62193641 62193735 0.000000 - . gene_id "PRIC285"; transcript_id "NM_033405:uc002yfl.1";
+chr20 hg19_knownGene CDS 62193873 62197584 0.000000 - 2 gene_id "PRIC285"; transcript_id "NM_033405:uc002yfl.1";
+chr20 hg19_knownGene exon 62193873 62197584 0.000000 - . gene_id "PRIC285"; transcript_id "NM_033405:uc002yfl.1";
+chr20 hg19_knownGene CDS 62197731 62197806 0.000000 - 0 gene_id "PRIC285"; transcript_id "NM_033405:uc002yfl.1";
+chr20 hg19_knownGene exon 62197731 62197806 0.000000 - . gene_id "PRIC285"; transcript_id "NM_033405:uc002yfl.1";
+chr20 hg19_knownGene CDS 62198197 62199003 0.000000 - 0 gene_id "PRIC285"; transcript_id "NM_033405:uc002yfl.1";
+chr20 hg19_knownGene exon 62198197 62199107 0.000000 - . gene_id "PRIC285"; transcript_id "NM_033405:uc002yfl.1";
+chr20 hg19_knownGene CDS 62190602 62190723 0.000000 - 2 gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene exon 62189439 62190723 0.000000 - . gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene CDS 62191281 62191448 0.000000 - 2 gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene exon 62191281 62191448 0.000000 - . gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene CDS 62191524 62191680 0.000000 - 0 gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene exon 62191524 62191680 0.000000 - . gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene CDS 62191832 62192050 0.000000 - 0 gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene exon 62191832 62192050 0.000000 - . gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene CDS 62192148 62192282 0.000000 - 0 gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene exon 62192148 62192282 0.000000 - . gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene CDS 62192435 62192627 0.000000 - 1 gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene exon 62192435 62192627 0.000000 - . gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene CDS 62192703 62192819 0.000000 - 1 gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene exon 62192703 62192819 0.000000 - . gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene CDS 62192954 62193098 0.000000 - 2 gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene exon 62192954 62193098 0.000000 - . gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene CDS 62193176 62193337 0.000000 - 2 gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene exon 62193176 62193337 0.000000 - . gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene CDS 62193425 62193556 0.000000 - 2 gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene exon 62193425 62193556 0.000000 - . gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene CDS 62193641 62193735 0.000000 - 1 gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene exon 62193641 62193735 0.000000 - . gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene CDS 62193873 62197584 0.000000 - 2 gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene exon 62193873 62197584 0.000000 - . gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene CDS 62197731 62197806 0.000000 - 0 gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene exon 62197731 62197806 0.000000 - . gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene CDS 62198197 62198980 0.000000 - 1 gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene exon 62198197 62198980 0.000000 - . gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene CDS 62199711 62200352 0.000000 - 1 gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene exon 62199711 62200352 0.000000 - . gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene CDS 62200501 62201018 0.000000 - 0 gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene exon 62200501 62201018 0.000000 - . gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene CDS 62201857 62201964 0.000000 - 0 gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene exon 62201857 62201964 0.000000 - . gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene CDS 62202038 62202221 0.000000 - 1 gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene exon 62202038 62202221 0.000000 - . gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene CDS 62203461 62203738 0.000000 - 0 gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene exon 62203461 62204574 0.000000 - . gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene exon 62205537 62205592 0.000000 - . gene_id "PRIC285"; transcript_id "NM_001037335:uc002yfm.2";
+chr20 hg19_knownGene CDS 62201548 62201964 0.000000 - 0 gene_id "PRIC285"; transcript_id "AK023724:uc002yfn.2";
+chr20 hg19_knownGene exon 62201494 62201964 0.000000 - . gene_id "PRIC285"; transcript_id "AK023724:uc002yfn.2";
+chr20 hg19_knownGene CDS 62202038 62202221 0.000000 - 1 gene_id "PRIC285"; transcript_id "AK023724:uc002yfn.2";
+chr20 hg19_knownGene exon 62202038 62202221 0.000000 - . gene_id "PRIC285"; transcript_id "AK023724:uc002yfn.2";
+chr20 hg19_knownGene CDS 62203461 62203738 0.000000 - 0 gene_id "PRIC285"; transcript_id "AK023724:uc002yfn.2";
+chr20 hg19_knownGene exon 62203461 62204574 0.000000 - . gene_id "PRIC285"; transcript_id "AK023724:uc002yfn.2";
+chr20 hg19_knownGene exon 62205537 62205592 0.000000 - . gene_id "PRIC285"; transcript_id "AK023724:uc002yfn.2";
+chr20 hg19_knownGene CDS 62221445 62222082 0.000000 - 2 gene_id "GMEB2"; transcript_id "AL133646:uc002yfo.1";
+chr20 hg19_knownGene exon 62218955 62222082 0.000000 - . gene_id "GMEB2"; transcript_id "AL133646:uc002yfo.1";
+chr20 hg19_knownGene CDS 62223375 62223497 0.000000 - 2 gene_id "GMEB2"; transcript_id "AL133646:uc002yfo.1";
+chr20 hg19_knownGene exon 62223375 62223497 0.000000 - . gene_id "GMEB2"; transcript_id "AL133646:uc002yfo.1";
+chr20 hg19_knownGene CDS 62223886 62224023 0.000000 - 2 gene_id "GMEB2"; transcript_id "AL133646:uc002yfo.1";
+chr20 hg19_knownGene exon 62223886 62224023 0.000000 - . gene_id "GMEB2"; transcript_id "AL133646:uc002yfo.1";
+chr20 hg19_knownGene CDS 62224364 62224435 0.000000 - 2 gene_id "GMEB2"; transcript_id "AL133646:uc002yfo.1";
+chr20 hg19_knownGene exon 62224364 62224435 0.000000 - . gene_id "GMEB2"; transcript_id "AL133646:uc002yfo.1";
+chr20 hg19_knownGene CDS 62226963 62227120 0.000000 - 1 gene_id "GMEB2"; transcript_id "AL133646:uc002yfo.1";
+chr20 hg19_knownGene exon 62226963 62227120 0.000000 - . gene_id "GMEB2"; transcript_id "AL133646:uc002yfo.1";
+chr20 hg19_knownGene CDS 62229110 62229213 0.000000 - 0 gene_id "GMEB2"; transcript_id "AL133646:uc002yfo.1";
+chr20 hg19_knownGene exon 62229110 62229213 0.000000 - . gene_id "GMEB2"; transcript_id "AL133646:uc002yfo.1";
+chr20 hg19_knownGene CDS 62234318 62234440 0.000000 - 0 gene_id "GMEB2"; transcript_id "AL133646:uc002yfo.1";
+chr20 hg19_knownGene exon 62234318 62234440 0.000000 - . gene_id "GMEB2"; transcript_id "AL133646:uc002yfo.1";
+chr20 hg19_knownGene exon 62236096 62236256 0.000000 - . gene_id "GMEB2"; transcript_id "AL133646:uc002yfo.1";
+chr20 hg19_knownGene CDS 62221445 62222082 0.000000 - 2 gene_id "GMEB2"; transcript_id "AF173867:uc002yfp.1";
+chr20 hg19_knownGene exon 62218955 62222082 0.000000 - . gene_id "GMEB2"; transcript_id "AF173867:uc002yfp.1";
+chr20 hg19_knownGene CDS 62223375 62223497 0.000000 - 2 gene_id "GMEB2"; transcript_id "AF173867:uc002yfp.1";
+chr20 hg19_knownGene exon 62223375 62223497 0.000000 - . gene_id "GMEB2"; transcript_id "AF173867:uc002yfp.1";
+chr20 hg19_knownGene CDS 62223886 62224023 0.000000 - 2 gene_id "GMEB2"; transcript_id "AF173867:uc002yfp.1";
+chr20 hg19_knownGene exon 62223886 62224023 0.000000 - . gene_id "GMEB2"; transcript_id "AF173867:uc002yfp.1";
+chr20 hg19_knownGene CDS 62224364 62224435 0.000000 - 2 gene_id "GMEB2"; transcript_id "AF173867:uc002yfp.1";
+chr20 hg19_knownGene exon 62224364 62224435 0.000000 - . gene_id "GMEB2"; transcript_id "AF173867:uc002yfp.1";
+chr20 hg19_knownGene CDS 62226963 62227120 0.000000 - 1 gene_id "GMEB2"; transcript_id "AF173867:uc002yfp.1";
+chr20 hg19_knownGene exon 62226963 62227120 0.000000 - . gene_id "GMEB2"; transcript_id "AF173867:uc002yfp.1";
+chr20 hg19_knownGene CDS 62229110 62229213 0.000000 - 0 gene_id "GMEB2"; transcript_id "AF173867:uc002yfp.1";
+chr20 hg19_knownGene exon 62229110 62229213 0.000000 - . gene_id "GMEB2"; transcript_id "AF173867:uc002yfp.1";
+chr20 hg19_knownGene CDS 62234318 62234445 0.000000 - 2 gene_id "GMEB2"; transcript_id "AF173867:uc002yfp.1";
+chr20 hg19_knownGene exon 62234318 62234445 0.000000 - . gene_id "GMEB2"; transcript_id "AF173867:uc002yfp.1";
+chr20 hg19_knownGene CDS 62236096 62236193 0.000000 - 1 gene_id "GMEB2"; transcript_id "AF173867:uc002yfp.1";
+chr20 hg19_knownGene exon 62236096 62236193 0.000000 - . gene_id "GMEB2"; transcript_id "AF173867:uc002yfp.1";
+chr20 hg19_knownGene CDS 62250620 62250750 0.000000 - 0 gene_id "GMEB2"; transcript_id "AF173867:uc002yfp.1";
+chr20 hg19_knownGene exon 62250620 62251229 0.000000 - . gene_id "GMEB2"; transcript_id "AF173867:uc002yfp.1";
+chr20 hg19_knownGene CDS 62221445 62222082 0.000000 - 2 gene_id "GMEB2"; transcript_id "NM_012384:uc002yfq.1";
+chr20 hg19_knownGene exon 62218955 62222082 0.000000 - . gene_id "GMEB2"; transcript_id "NM_012384:uc002yfq.1";
+chr20 hg19_knownGene CDS 62223375 62223497 0.000000 - 2 gene_id "GMEB2"; transcript_id "NM_012384:uc002yfq.1";
+chr20 hg19_knownGene exon 62223375 62223497 0.000000 - . gene_id "GMEB2"; transcript_id "NM_012384:uc002yfq.1";
+chr20 hg19_knownGene CDS 62223886 62224023 0.000000 - 2 gene_id "GMEB2"; transcript_id "NM_012384:uc002yfq.1";
+chr20 hg19_knownGene exon 62223886 62224023 0.000000 - . gene_id "GMEB2"; transcript_id "NM_012384:uc002yfq.1";
+chr20 hg19_knownGene CDS 62224364 62224435 0.000000 - 2 gene_id "GMEB2"; transcript_id "NM_012384:uc002yfq.1";
+chr20 hg19_knownGene exon 62224364 62224435 0.000000 - . gene_id "GMEB2"; transcript_id "NM_012384:uc002yfq.1";
+chr20 hg19_knownGene CDS 62226963 62227120 0.000000 - 1 gene_id "GMEB2"; transcript_id "NM_012384:uc002yfq.1";
+chr20 hg19_knownGene exon 62226963 62227120 0.000000 - . gene_id "GMEB2"; transcript_id "NM_012384:uc002yfq.1";
+chr20 hg19_knownGene CDS 62229110 62229213 0.000000 - 0 gene_id "GMEB2"; transcript_id "NM_012384:uc002yfq.1";
+chr20 hg19_knownGene exon 62229110 62229213 0.000000 - . gene_id "GMEB2"; transcript_id "NM_012384:uc002yfq.1";
+chr20 hg19_knownGene CDS 62234318 62234445 0.000000 - 2 gene_id "GMEB2"; transcript_id "NM_012384:uc002yfq.1";
+chr20 hg19_knownGene exon 62234318 62234445 0.000000 - . gene_id "GMEB2"; transcript_id "NM_012384:uc002yfq.1";
+chr20 hg19_knownGene CDS 62236096 62236193 0.000000 - 1 gene_id "GMEB2"; transcript_id "NM_012384:uc002yfq.1";
+chr20 hg19_knownGene exon 62236096 62236193 0.000000 - . gene_id "GMEB2"; transcript_id "NM_012384:uc002yfq.1";
+chr20 hg19_knownGene CDS 62250620 62250750 0.000000 - 0 gene_id "GMEB2"; transcript_id "NM_012384:uc002yfq.1";
+chr20 hg19_knownGene exon 62250620 62250807 0.000000 - . gene_id "GMEB2"; transcript_id "NM_012384:uc002yfq.1";
+chr20 hg19_knownGene exon 62258309 62258381 0.000000 - . gene_id "GMEB2"; transcript_id "NM_012384:uc002yfq.1";
+chr20 hg19_knownGene CDS 62272694 62272750 0.000000 - 0 gene_id "STMN3"; transcript_id "NM_015894:uc002yfr.1";
+chr20 hg19_knownGene exon 62271061 62272750 0.000000 - . gene_id "STMN3"; transcript_id "NM_015894:uc002yfr.1";
+chr20 hg19_knownGene CDS 62273461 62273652 0.000000 - 0 gene_id "STMN3"; transcript_id "NM_015894:uc002yfr.1";
+chr20 hg19_knownGene exon 62273461 62273652 0.000000 - . gene_id "STMN3"; transcript_id "NM_015894:uc002yfr.1";
+chr20 hg19_knownGene CDS 62275109 62275284 0.000000 - 2 gene_id "STMN3"; transcript_id "NM_015894:uc002yfr.1";
+chr20 hg19_knownGene exon 62275109 62275284 0.000000 - . gene_id "STMN3"; transcript_id "NM_015894:uc002yfr.1";
+chr20 hg19_knownGene CDS 62275567 62275662 0.000000 - 2 gene_id "STMN3"; transcript_id "NM_015894:uc002yfr.1";
+chr20 hg19_knownGene exon 62275567 62275662 0.000000 - . gene_id "STMN3"; transcript_id "NM_015894:uc002yfr.1";
+chr20 hg19_knownGene CDS 62284680 62284698 0.000000 - 0 gene_id "STMN3"; transcript_id "NM_015894:uc002yfr.1";
+chr20 hg19_knownGene exon 62284680 62284780 0.000000 - . gene_id "STMN3"; transcript_id "NM_015894:uc002yfr.1";
+chr20 hg19_knownGene exon 62271061 62272750 0.000000 - . gene_id "STMN3"; transcript_id "AK310010:uc021wgd.1";
+chr20 hg19_knownGene exon 62273461 62273652 0.000000 - . gene_id "STMN3"; transcript_id "AK310010:uc021wgd.1";
+chr20 hg19_knownGene exon 62275012 62275284 0.000000 - . gene_id "STMN3"; transcript_id "AK310010:uc021wgd.1";
+chr20 hg19_knownGene exon 62275567 62275662 0.000000 - . gene_id "STMN3"; transcript_id "AK310010:uc021wgd.1";
+chr20 hg19_knownGene exon 62284680 62284780 0.000000 - . gene_id "STMN3"; transcript_id "AK310010:uc021wgd.1";
+chr20 hg19_knownGene exon 62289667 62289812 0.000000 + . gene_id "RTEL1"; transcript_id "BC000673:uc002yfv.2";
+chr20 hg19_knownGene CDS 62290756 62290857 0.000000 + 0 gene_id "RTEL1"; transcript_id "BC000673:uc002yfv.2";
+chr20 hg19_knownGene exon 62290586 62290857 0.000000 + . gene_id "RTEL1"; transcript_id "BC000673:uc002yfv.2";
+chr20 hg19_knownGene CDS 62292651 62292849 0.000000 + 0 gene_id "RTEL1"; transcript_id "BC000673:uc002yfv.2";
+chr20 hg19_knownGene exon 62292651 62292849 0.000000 + . gene_id "RTEL1"; transcript_id "BC000673:uc002yfv.2";
+chr20 hg19_knownGene CDS 62293203 62293296 0.000000 + 2 gene_id "RTEL1"; transcript_id "BC000673:uc002yfv.2";
+chr20 hg19_knownGene exon 62293203 62293296 0.000000 + . gene_id "RTEL1"; transcript_id "BC000673:uc002yfv.2";
+chr20 hg19_knownGene CDS 62293749 62293980 0.000000 + 1 gene_id "RTEL1"; transcript_id "BC000673:uc002yfv.2";
+chr20 hg19_knownGene exon 62293749 62293980 0.000000 + . gene_id "RTEL1"; transcript_id "BC000673:uc002yfv.2";
+chr20 hg19_knownGene CDS 62294182 62294242 0.000000 + 0 gene_id "RTEL1"; transcript_id "BC000673:uc002yfv.2";
+chr20 hg19_knownGene exon 62294182 62294242 0.000000 + . gene_id "RTEL1"; transcript_id "BC000673:uc002yfv.2";
+chr20 hg19_knownGene CDS 62297357 62297432 0.000000 + 2 gene_id "RTEL1"; transcript_id "BC000673:uc002yfv.2";
+chr20 hg19_knownGene exon 62297357 62297432 0.000000 + . gene_id "RTEL1"; transcript_id "BC000673:uc002yfv.2";
+chr20 hg19_knownGene CDS 62298822 62298906 0.000000 + 1 gene_id "RTEL1"; transcript_id "BC000673:uc002yfv.2";
+chr20 hg19_knownGene exon 62298822 62298906 0.000000 + . gene_id "RTEL1"; transcript_id "BC000673:uc002yfv.2";
+chr20 hg19_knownGene CDS 62303909 62303974 0.000000 + 0 gene_id "RTEL1"; transcript_id "BC000673:uc002yfv.2";
+chr20 hg19_knownGene exon 62303909 62303974 0.000000 + . gene_id "RTEL1"; transcript_id "BC000673:uc002yfv.2";
+chr20 hg19_knownGene CDS 62305293 62305442 0.000000 + 0 gene_id "RTEL1"; transcript_id "BC000673:uc002yfv.2";
+chr20 hg19_knownGene exon 62305293 62305446 0.000000 + . gene_id "RTEL1"; transcript_id "BC000673:uc002yfv.2";
+chr20 hg19_knownGene exon 62289163 62289819 0.000000 + . gene_id "RTEL1"; transcript_id "AK299332:uc011abc.2";
+chr20 hg19_knownGene exon 62290586 62290857 0.000000 + . gene_id "RTEL1"; transcript_id "AK299332:uc011abc.2";
+chr20 hg19_knownGene exon 62292651 62292849 0.000000 + . gene_id "RTEL1"; transcript_id "AK299332:uc011abc.2";
+chr20 hg19_knownGene exon 62293203 62293296 0.000000 + . gene_id "RTEL1"; transcript_id "AK299332:uc011abc.2";
+chr20 hg19_knownGene exon 62293899 62293980 0.000000 + . gene_id "RTEL1"; transcript_id "AK299332:uc011abc.2";
+chr20 hg19_knownGene exon 62294182 62294242 0.000000 + . gene_id "RTEL1"; transcript_id "AK299332:uc011abc.2";
+chr20 hg19_knownGene exon 62297357 62297432 0.000000 + . gene_id "RTEL1"; transcript_id "AK299332:uc011abc.2";
+chr20 hg19_knownGene exon 62298822 62298906 0.000000 + . gene_id "RTEL1"; transcript_id "AK299332:uc011abc.2";
+chr20 hg19_knownGene exon 62303909 62303974 0.000000 + . gene_id "RTEL1"; transcript_id "AK299332:uc011abc.2";
+chr20 hg19_knownGene exon 62305293 62305446 0.000000 + . gene_id "RTEL1"; transcript_id "AK299332:uc011abc.2";
+chr20 hg19_knownGene exon 62309498 62309536 0.000000 + . gene_id "RTEL1"; transcript_id "AK299332:uc011abc.2";
+chr20 hg19_knownGene exon 62309621 62309699 0.000000 + . gene_id "RTEL1"; transcript_id "AK299332:uc011abc.2";
+chr20 hg19_knownGene exon 62311202 62311299 0.000000 + . gene_id "RTEL1"; transcript_id "AK299332:uc011abc.2";
+chr20 hg19_knownGene exon 62312017 62312072 0.000000 + . gene_id "RTEL1"; transcript_id "AK299332:uc011abc.2";
+chr20 hg19_knownGene exon 62316876 62316950 0.000000 + . gene_id "RTEL1"; transcript_id "AK299332:uc011abc.2";
+chr20 hg19_knownGene exon 62317144 62317225 0.000000 + . gene_id "RTEL1"; transcript_id "AK299332:uc011abc.2";
+chr20 hg19_knownGene exon 62318991 62319123 0.000000 + . gene_id "RTEL1"; transcript_id "AK299332:uc011abc.2";
+chr20 hg19_knownGene exon 62319290 62319403 0.000000 + . gene_id "RTEL1"; transcript_id "AK299332:uc011abc.2";
+chr20 hg19_knownGene exon 62319492 62319532 0.000000 + . gene_id "RTEL1"; transcript_id "AK299332:uc011abc.2";
+chr20 hg19_knownGene exon 62319654 62319739 0.000000 + . gene_id "RTEL1"; transcript_id "AK299332:uc011abc.2";
+chr20 hg19_knownGene exon 62319881 62319958 0.000000 + . gene_id "RTEL1"; transcript_id "AK299332:uc011abc.2";
+chr20 hg19_knownGene exon 62320408 62320485 0.000000 + . gene_id "RTEL1"; transcript_id "AK299332:uc011abc.2";
+chr20 hg19_knownGene exon 62320855 62321001 0.000000 + . gene_id "RTEL1"; transcript_id "AK299332:uc011abc.2";
+chr20 hg19_knownGene exon 62321103 62321218 0.000000 + . gene_id "RTEL1"; transcript_id "AK299332:uc011abc.2";
+chr20 hg19_knownGene exon 62321440 62321563 0.000000 + . gene_id "RTEL1"; transcript_id "AK299332:uc011abc.2";
+chr20 hg19_knownGene exon 62321647 62321794 0.000000 + . gene_id "RTEL1"; transcript_id "AK299332:uc011abc.2";
+chr20 hg19_knownGene exon 62322158 62322300 0.000000 + . gene_id "RTEL1"; transcript_id "AK299332:uc011abc.2";
+chr20 hg19_knownGene exon 62323095 62323190 0.000000 + . gene_id "RTEL1"; transcript_id "AK299332:uc011abc.2";
+chr20 hg19_knownGene exon 62324158 62324356 0.000000 + . gene_id "RTEL1"; transcript_id "AK299332:uc011abc.2";
+chr20 hg19_knownGene exon 62324496 62324636 0.000000 + . gene_id "RTEL1"; transcript_id "AK299332:uc011abc.2";
+chr20 hg19_knownGene exon 62325729 62325841 0.000000 + . gene_id "RTEL1"; transcript_id "AK299332:uc011abc.2";
+chr20 hg19_knownGene exon 62326094 62326327 0.000000 + . gene_id "RTEL1"; transcript_id "AK299332:uc011abc.2";
+chr20 hg19_knownGene exon 62289163 62289819 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62290756 62290857 0.000000 + 0 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62290586 62290857 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62292651 62292849 0.000000 + 0 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62292651 62292849 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62293203 62293296 0.000000 + 2 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62293203 62293296 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62293899 62293980 0.000000 + 1 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62293899 62293980 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62294182 62294242 0.000000 + 0 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62294182 62294242 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62297357 62297432 0.000000 + 2 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62297357 62297432 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62298822 62298906 0.000000 + 1 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62298822 62298906 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62303909 62303974 0.000000 + 0 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62303909 62303974 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62305293 62305446 0.000000 + 0 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62305293 62305446 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62309498 62309536 0.000000 + 2 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62309498 62309536 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62309621 62309699 0.000000 + 2 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62309621 62309699 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62311202 62311299 0.000000 + 1 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62311202 62311299 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62312017 62312072 0.000000 + 2 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62312017 62312072 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62316876 62316950 0.000000 + 0 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62316876 62316950 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62317144 62317225 0.000000 + 0 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62317144 62317225 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62318991 62319123 0.000000 + 2 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62318991 62319123 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62319290 62319403 0.000000 + 1 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62319290 62319403 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62319492 62319532 0.000000 + 1 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62319492 62319532 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62319654 62319739 0.000000 + 2 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62319654 62319739 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62319881 62319958 0.000000 + 0 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62319881 62319958 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62320408 62320485 0.000000 + 0 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62320408 62320485 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62320855 62321001 0.000000 + 0 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62320855 62321001 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62321103 62321218 0.000000 + 0 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62321103 62321218 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62321440 62321563 0.000000 + 1 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62321440 62321563 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62321647 62321794 0.000000 + 0 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62321647 62321794 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62322158 62322300 0.000000 + 2 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62322158 62322300 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62323095 62323190 0.000000 + 0 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62323095 62323190 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62324158 62324356 0.000000 + 0 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62324158 62324356 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62324496 62324636 0.000000 + 2 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62324496 62324636 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62325725 62325841 0.000000 + 2 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62325725 62325841 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62326094 62326327 0.000000 + 2 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62326094 62326327 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62326419 62326574 0.000000 + 2 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62326419 62326574 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62326681 62326833 0.000000 + 2 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62326681 62326833 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene CDS 62327131 62327135 0.000000 + 2 gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62327131 62328544 0.000000 + . gene_id "RTEL1"; transcript_id "NM_016434:uc002yfu.2";
+chr20 hg19_knownGene exon 62289163 62289819 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62290756 62290857 0.000000 + 0 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62290586 62290857 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62292651 62292849 0.000000 + 0 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62292651 62292849 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62293203 62293296 0.000000 + 2 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62293203 62293296 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62293827 62293980 0.000000 + 1 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62293827 62293980 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62294182 62294242 0.000000 + 0 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62294182 62294242 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62297357 62297432 0.000000 + 2 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62297357 62297432 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62298822 62298906 0.000000 + 1 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62298822 62298906 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62303909 62303974 0.000000 + 0 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62303909 62303974 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62305293 62305446 0.000000 + 0 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62305293 62305446 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62309498 62309536 0.000000 + 2 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62309498 62309536 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62309621 62309699 0.000000 + 2 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62309621 62309699 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62311202 62311299 0.000000 + 1 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62311202 62311299 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62312017 62312072 0.000000 + 2 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62312017 62312072 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62316876 62316950 0.000000 + 0 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62316876 62316950 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62317144 62317225 0.000000 + 0 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62317144 62317225 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62318991 62319123 0.000000 + 2 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62318991 62319123 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62319290 62319403 0.000000 + 1 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62319290 62319403 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62319492 62319532 0.000000 + 1 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62319492 62319532 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62319654 62319739 0.000000 + 2 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62319654 62319739 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62319881 62319958 0.000000 + 0 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62319881 62319958 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62320408 62320485 0.000000 + 0 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62320408 62320485 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62320855 62321001 0.000000 + 0 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62320855 62321001 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62321103 62321218 0.000000 + 0 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62321103 62321218 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62321440 62321563 0.000000 + 1 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62321440 62321563 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62321647 62321794 0.000000 + 0 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62321647 62321794 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62322158 62322300 0.000000 + 2 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62322158 62322300 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62323095 62323190 0.000000 + 0 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62323095 62323190 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62324158 62324356 0.000000 + 0 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62324158 62324356 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62324496 62324636 0.000000 + 2 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62324496 62324636 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62325725 62325841 0.000000 + 2 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62325725 62325841 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62326094 62326327 0.000000 + 2 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62326094 62326327 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62326419 62326574 0.000000 + 2 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62326419 62326574 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62326681 62326833 0.000000 + 2 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62326681 62326833 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene CDS 62327131 62327135 0.000000 + 2 gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62327131 62328544 0.000000 + . gene_id "RTEL1"; transcript_id "NM_032957:uc011abd.2";
+chr20 hg19_knownGene exon 62289667 62289812 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene exon 62292651 62292849 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene exon 62293203 62293296 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene exon 62293899 62293980 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene exon 62294182 62294242 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene exon 62297357 62297432 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene CDS 62298877 62298906 0.000000 + 0 gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene exon 62298822 62298906 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene CDS 62303909 62303974 0.000000 + 0 gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene exon 62303909 62303974 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene CDS 62305293 62305446 0.000000 + 0 gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene exon 62305293 62305446 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene CDS 62309498 62309536 0.000000 + 2 gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene exon 62309498 62309536 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene CDS 62309621 62309699 0.000000 + 2 gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene exon 62309621 62309699 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene CDS 62311202 62311299 0.000000 + 1 gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene exon 62311202 62311299 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene CDS 62312017 62312072 0.000000 + 2 gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene exon 62312017 62312072 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene CDS 62316876 62316950 0.000000 + 0 gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene exon 62316876 62316950 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene CDS 62317144 62317225 0.000000 + 0 gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene exon 62317144 62317225 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene CDS 62318991 62319123 0.000000 + 2 gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene exon 62318991 62319123 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene CDS 62319290 62319403 0.000000 + 1 gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene exon 62319290 62319403 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene CDS 62319492 62319532 0.000000 + 1 gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene exon 62319492 62319532 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene CDS 62319654 62319739 0.000000 + 2 gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene exon 62319654 62319739 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene CDS 62319881 62319958 0.000000 + 0 gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene exon 62319881 62319958 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene CDS 62320408 62320485 0.000000 + 0 gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene exon 62320408 62320485 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene CDS 62320855 62321001 0.000000 + 0 gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene exon 62320855 62321001 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene CDS 62321103 62321218 0.000000 + 0 gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene exon 62321103 62321218 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene CDS 62321440 62321563 0.000000 + 1 gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene exon 62321440 62321563 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene CDS 62321647 62321794 0.000000 + 0 gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene exon 62321647 62321794 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene CDS 62322158 62322300 0.000000 + 2 gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene exon 62322158 62322300 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene CDS 62323095 62323190 0.000000 + 0 gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene exon 62323095 62323190 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene CDS 62324158 62324356 0.000000 + 0 gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene exon 62324158 62324356 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene CDS 62324496 62324636 0.000000 + 2 gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene exon 62324496 62324636 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene CDS 62325725 62325841 0.000000 + 2 gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene exon 62325725 62325841 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene CDS 62326094 62326327 0.000000 + 2 gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene exon 62326094 62326327 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene CDS 62326419 62326574 0.000000 + 2 gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene exon 62326419 62326574 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene CDS 62326681 62326833 0.000000 + 2 gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene exon 62326681 62326833 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene CDS 62327131 62327135 0.000000 + 2 gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene exon 62327131 62328544 0.000000 + . gene_id "RTEL1"; transcript_id "AK304798:uc011abe.1";
+chr20 hg19_knownGene CDS 62290756 62290857 0.000000 + 0 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62290586 62290857 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene CDS 62292651 62292849 0.000000 + 0 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62292651 62292849 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene CDS 62293203 62293296 0.000000 + 2 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62293203 62293296 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene CDS 62293899 62293980 0.000000 + 1 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62293899 62293980 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene CDS 62294182 62294242 0.000000 + 0 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62294182 62294242 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene CDS 62297357 62297432 0.000000 + 2 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62297357 62297432 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene CDS 62298822 62298906 0.000000 + 1 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62298822 62298906 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene CDS 62303909 62303974 0.000000 + 0 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62303909 62303974 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene CDS 62305293 62305446 0.000000 + 0 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62305293 62305446 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene CDS 62309498 62309536 0.000000 + 2 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62309498 62309536 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene CDS 62309621 62309699 0.000000 + 2 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62309621 62309699 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene CDS 62311202 62311299 0.000000 + 1 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62311202 62311299 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene CDS 62312017 62312072 0.000000 + 2 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62312017 62312072 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene CDS 62316876 62316950 0.000000 + 0 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62316876 62316950 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene CDS 62317144 62317225 0.000000 + 0 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62317144 62317225 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene CDS 62318991 62319123 0.000000 + 2 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62318991 62319123 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene CDS 62319290 62319403 0.000000 + 1 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62319290 62319403 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene CDS 62319492 62319532 0.000000 + 1 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62319492 62319532 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene CDS 62319654 62319739 0.000000 + 2 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62319654 62319739 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene CDS 62319881 62319958 0.000000 + 0 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62319881 62319958 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene CDS 62320408 62320485 0.000000 + 0 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62320408 62320485 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene CDS 62320855 62321001 0.000000 + 0 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62320855 62321001 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene CDS 62321103 62321218 0.000000 + 0 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62321103 62321218 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene CDS 62321440 62321563 0.000000 + 1 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62321440 62321563 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene CDS 62321647 62321794 0.000000 + 0 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62321647 62321794 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene CDS 62322158 62322300 0.000000 + 2 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62322158 62322300 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene CDS 62323095 62323190 0.000000 + 0 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62323095 62323190 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene CDS 62324158 62324356 0.000000 + 0 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62324158 62324356 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene CDS 62324496 62324636 0.000000 + 2 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62324496 62324636 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene CDS 62325725 62325841 0.000000 + 2 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62325725 62325841 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene CDS 62326094 62326327 0.000000 + 2 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62326094 62326327 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene CDS 62326419 62326574 0.000000 + 2 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62326419 62326574 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene CDS 62326681 62327003 0.000000 + 2 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62326681 62327003 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene CDS 62327131 62327208 0.000000 + 0 gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62327131 62328544 0.000000 + . gene_id "RTEL1"; transcript_id "CCDS13530:uc021wge.1";
+chr20 hg19_knownGene exon 62321103 62321563 0.000000 + . gene_id "RTEL1-TNFRSF6B"; transcript_id "AK000485:uc002yfx.1";
+chr20 hg19_knownGene CDS 62321647 62321794 0.000000 + 0 gene_id "RTEL1-TNFRSF6B"; transcript_id "AK000485:uc002yfx.1";
+chr20 hg19_knownGene exon 62321647 62321794 0.000000 + . gene_id "RTEL1-TNFRSF6B"; transcript_id "AK000485:uc002yfx.1";
+chr20 hg19_knownGene CDS 62322158 62322300 0.000000 + 2 gene_id "RTEL1-TNFRSF6B"; transcript_id "AK000485:uc002yfx.1";
+chr20 hg19_knownGene exon 62322158 62322300 0.000000 + . gene_id "RTEL1-TNFRSF6B"; transcript_id "AK000485:uc002yfx.1";
+chr20 hg19_knownGene CDS 62323095 62323190 0.000000 + 0 gene_id "RTEL1-TNFRSF6B"; transcript_id "AK000485:uc002yfx.1";
+chr20 hg19_knownGene exon 62323095 62323190 0.000000 + . gene_id "RTEL1-TNFRSF6B"; transcript_id "AK000485:uc002yfx.1";
+chr20 hg19_knownGene CDS 62324158 62324356 0.000000 + 0 gene_id "RTEL1-TNFRSF6B"; transcript_id "AK000485:uc002yfx.1";
+chr20 hg19_knownGene exon 62324158 62324356 0.000000 + . gene_id "RTEL1-TNFRSF6B"; transcript_id "AK000485:uc002yfx.1";
+chr20 hg19_knownGene CDS 62324496 62324636 0.000000 + 2 gene_id "RTEL1-TNFRSF6B"; transcript_id "AK000485:uc002yfx.1";
+chr20 hg19_knownGene exon 62324496 62324636 0.000000 + . gene_id "RTEL1-TNFRSF6B"; transcript_id "AK000485:uc002yfx.1";
+chr20 hg19_knownGene CDS 62325725 62325841 0.000000 + 2 gene_id "RTEL1-TNFRSF6B"; transcript_id "AK000485:uc002yfx.1";
+chr20 hg19_knownGene exon 62325725 62325841 0.000000 + . gene_id "RTEL1-TNFRSF6B"; transcript_id "AK000485:uc002yfx.1";
+chr20 hg19_knownGene CDS 62326094 62326327 0.000000 + 2 gene_id "RTEL1-TNFRSF6B"; transcript_id "AK000485:uc002yfx.1";
+chr20 hg19_knownGene exon 62326094 62326327 0.000000 + . gene_id "RTEL1-TNFRSF6B"; transcript_id "AK000485:uc002yfx.1";
+chr20 hg19_knownGene CDS 62326419 62326574 0.000000 + 2 gene_id "RTEL1-TNFRSF6B"; transcript_id "AK000485:uc002yfx.1";
+chr20 hg19_knownGene exon 62326419 62326574 0.000000 + . gene_id "RTEL1-TNFRSF6B"; transcript_id "AK000485:uc002yfx.1";
+chr20 hg19_knownGene CDS 62326681 62327003 0.000000 + 2 gene_id "RTEL1-TNFRSF6B"; transcript_id "AK000485:uc002yfx.1";
+chr20 hg19_knownGene exon 62326681 62327003 0.000000 + . gene_id "RTEL1-TNFRSF6B"; transcript_id "AK000485:uc002yfx.1";
+chr20 hg19_knownGene CDS 62327131 62327208 0.000000 + 0 gene_id "RTEL1-TNFRSF6B"; transcript_id "AK000485:uc002yfx.1";
+chr20 hg19_knownGene exon 62327131 62328544 0.000000 + . gene_id "RTEL1-TNFRSF6B"; transcript_id "AK000485:uc002yfx.1";
+chr20 hg19_knownGene exon 62289163 62289819 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62290586 62290857 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62292651 62292849 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62293203 62293296 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62293899 62293980 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62294182 62294242 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62297357 62297432 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62298822 62298906 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62303909 62303974 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62305293 62305446 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62309498 62309536 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62309621 62309699 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62311202 62311299 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62312017 62312072 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62316876 62316950 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62317144 62317225 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62318991 62319123 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62319290 62319403 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62319492 62319532 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62319654 62319739 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62319881 62319958 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62320408 62320485 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62320855 62321001 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62321103 62321218 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62321440 62321563 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62321647 62321794 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62322158 62322300 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62323095 62323190 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62324158 62324356 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62324496 62324636 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62325725 62325841 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62326094 62326327 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62326419 62326574 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62326681 62327003 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62327131 62327207 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62328113 62328544 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62328681 62328875 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62329633 62330051 0.000000 + . gene_id "RTEL1"; transcript_id "NR_037882:uc002yfw.3";
+chr20 hg19_knownGene exon 62326094 62326327 0.000000 + . gene_id "TNFRSF6B"; transcript_id "AF217793:uc002yfy.3";
+chr20 hg19_knownGene exon 62326419 62326574 0.000000 + . gene_id "TNFRSF6B"; transcript_id "AF217793:uc002yfy.3";
+chr20 hg19_knownGene exon 62326681 62326833 0.000000 + . gene_id "TNFRSF6B"; transcript_id "AF217793:uc002yfy.3";
+chr20 hg19_knownGene exon 62327131 62327207 0.000000 + . gene_id "TNFRSF6B"; transcript_id "AF217793:uc002yfy.3";
+chr20 hg19_knownGene CDS 62328121 62328544 0.000000 + 0 gene_id "TNFRSF6B"; transcript_id "AF217793:uc002yfy.3";
+chr20 hg19_knownGene exon 62328113 62328544 0.000000 + . gene_id "TNFRSF6B"; transcript_id "AF217793:uc002yfy.3";
+chr20 hg19_knownGene CDS 62328681 62328875 0.000000 + 2 gene_id "TNFRSF6B"; transcript_id "AF217793:uc002yfy.3";
+chr20 hg19_knownGene exon 62328681 62328875 0.000000 + . gene_id "TNFRSF6B"; transcript_id "AF217793:uc002yfy.3";
+chr20 hg19_knownGene CDS 62329633 62329913 0.000000 + 2 gene_id "TNFRSF6B"; transcript_id "AF217793:uc002yfy.3";
+chr20 hg19_knownGene exon 62329633 62330051 0.000000 + . gene_id "TNFRSF6B"; transcript_id "AF217793:uc002yfy.3";
+chr20 hg19_knownGene CDS 62328121 62328544 0.000000 + 0 gene_id "TNFRSF6B"; transcript_id "NM_003823:uc002yfz.3";
+chr20 hg19_knownGene exon 62327131 62328544 0.000000 + . gene_id "TNFRSF6B"; transcript_id "NM_003823:uc002yfz.3";
+chr20 hg19_knownGene CDS 62328681 62328875 0.000000 + 2 gene_id "TNFRSF6B"; transcript_id "NM_003823:uc002yfz.3";
+chr20 hg19_knownGene exon 62328681 62328875 0.000000 + . gene_id "TNFRSF6B"; transcript_id "NM_003823:uc002yfz.3";
+chr20 hg19_knownGene CDS 62329633 62329913 0.000000 + 2 gene_id "TNFRSF6B"; transcript_id "NM_003823:uc002yfz.3";
+chr20 hg19_knownGene exon 62329633 62330051 0.000000 + . gene_id "TNFRSF6B"; transcript_id "NM_003823:uc002yfz.3";
+chr20 hg19_knownGene CDS 62331798 62331882 0.000000 - 1 gene_id "ARFRP1"; transcript_id "AK095962:uc002yga.3";
+chr20 hg19_knownGene exon 62329995 62331882 0.000000 - . gene_id "ARFRP1"; transcript_id "AK095962:uc002yga.3";
+chr20 hg19_knownGene CDS 62331954 62332054 0.000000 - 0 gene_id "ARFRP1"; transcript_id "AK095962:uc002yga.3";
+chr20 hg19_knownGene exon 62331954 62332054 0.000000 - . gene_id "ARFRP1"; transcript_id "AK095962:uc002yga.3";
+chr20 hg19_knownGene CDS 62333182 62333252 0.000000 - 2 gene_id "ARFRP1"; transcript_id "AK095962:uc002yga.3";
+chr20 hg19_knownGene exon 62333182 62333252 0.000000 - . gene_id "ARFRP1"; transcript_id "AK095962:uc002yga.3";
+chr20 hg19_knownGene CDS 62333488 62333569 0.000000 - 0 gene_id "ARFRP1"; transcript_id "AK095962:uc002yga.3";
+chr20 hg19_knownGene exon 62333488 62333569 0.000000 - . gene_id "ARFRP1"; transcript_id "AK095962:uc002yga.3";
+chr20 hg19_knownGene CDS 62337709 62337791 0.000000 - 2 gene_id "ARFRP1"; transcript_id "AK095962:uc002yga.3";
+chr20 hg19_knownGene exon 62337709 62337791 0.000000 - . gene_id "ARFRP1"; transcript_id "AK095962:uc002yga.3";
+chr20 hg19_knownGene CDS 62338003 62338090 0.000000 - 0 gene_id "ARFRP1"; transcript_id "AK095962:uc002yga.3";
+chr20 hg19_knownGene exon 62338003 62338090 0.000000 - . gene_id "ARFRP1"; transcript_id "AK095962:uc002yga.3";
+chr20 hg19_knownGene CDS 62338351 62338443 0.000000 - 0 gene_id "ARFRP1"; transcript_id "AK095962:uc002yga.3";
+chr20 hg19_knownGene exon 62338351 62339010 0.000000 - . gene_id "ARFRP1"; transcript_id "AK095962:uc002yga.3";
+chr20 hg19_knownGene CDS 62331798 62331882 0.000000 - 1 gene_id "ARFRP1"; transcript_id "NM_003224:uc002ygc.3";
+chr20 hg19_knownGene exon 62329995 62331882 0.000000 - . gene_id "ARFRP1"; transcript_id "NM_003224:uc002ygc.3";
+chr20 hg19_knownGene CDS 62331954 62332054 0.000000 - 0 gene_id "ARFRP1"; transcript_id "NM_003224:uc002ygc.3";
+chr20 hg19_knownGene exon 62331954 62332054 0.000000 - . gene_id "ARFRP1"; transcript_id "NM_003224:uc002ygc.3";
+chr20 hg19_knownGene CDS 62333182 62333252 0.000000 - 2 gene_id "ARFRP1"; transcript_id "NM_003224:uc002ygc.3";
+chr20 hg19_knownGene exon 62333182 62333252 0.000000 - . gene_id "ARFRP1"; transcript_id "NM_003224:uc002ygc.3";
+chr20 hg19_knownGene CDS 62333488 62333569 0.000000 - 0 gene_id "ARFRP1"; transcript_id "NM_003224:uc002ygc.3";
+chr20 hg19_knownGene exon 62333488 62333569 0.000000 - . gene_id "ARFRP1"; transcript_id "NM_003224:uc002ygc.3";
+chr20 hg19_knownGene CDS 62337709 62337791 0.000000 - 2 gene_id "ARFRP1"; transcript_id "NM_003224:uc002ygc.3";
+chr20 hg19_knownGene exon 62337709 62337791 0.000000 - . gene_id "ARFRP1"; transcript_id "NM_003224:uc002ygc.3";
+chr20 hg19_knownGene CDS 62338003 62338090 0.000000 - 0 gene_id "ARFRP1"; transcript_id "NM_003224:uc002ygc.3";
+chr20 hg19_knownGene exon 62338003 62338090 0.000000 - . gene_id "ARFRP1"; transcript_id "NM_003224:uc002ygc.3";
+chr20 hg19_knownGene CDS 62338351 62338443 0.000000 - 0 gene_id "ARFRP1"; transcript_id "NM_003224:uc002ygc.3";
+chr20 hg19_knownGene exon 62338351 62338444 0.000000 - . gene_id "ARFRP1"; transcript_id "NM_003224:uc002ygc.3";
+chr20 hg19_knownGene exon 62339219 62339355 0.000000 - . gene_id "ARFRP1"; transcript_id "NM_003224:uc002ygc.3";
+chr20 hg19_knownGene CDS 62331953 62332054 0.000000 - 0 gene_id "ARFRP1"; transcript_id "NM_001134758:uc011abg.2";
+chr20 hg19_knownGene exon 62329995 62332054 0.000000 - . gene_id "ARFRP1"; transcript_id "NM_001134758:uc011abg.2";
+chr20 hg19_knownGene CDS 62333182 62333252 0.000000 - 2 gene_id "ARFRP1"; transcript_id "NM_001134758:uc011abg.2";
+chr20 hg19_knownGene exon 62333182 62333252 0.000000 - . gene_id "ARFRP1"; transcript_id "NM_001134758:uc011abg.2";
+chr20 hg19_knownGene CDS 62333488 62333569 0.000000 - 0 gene_id "ARFRP1"; transcript_id "NM_001134758:uc011abg.2";
+chr20 hg19_knownGene exon 62333488 62333569 0.000000 - . gene_id "ARFRP1"; transcript_id "NM_001134758:uc011abg.2";
+chr20 hg19_knownGene CDS 62337709 62337791 0.000000 - 2 gene_id "ARFRP1"; transcript_id "NM_001134758:uc011abg.2";
+chr20 hg19_knownGene exon 62337709 62337791 0.000000 - . gene_id "ARFRP1"; transcript_id "NM_001134758:uc011abg.2";
+chr20 hg19_knownGene CDS 62338003 62338090 0.000000 - 0 gene_id "ARFRP1"; transcript_id "NM_001134758:uc011abg.2";
+chr20 hg19_knownGene exon 62338003 62338090 0.000000 - . gene_id "ARFRP1"; transcript_id "NM_001134758:uc011abg.2";
+chr20 hg19_knownGene CDS 62338351 62338443 0.000000 - 0 gene_id "ARFRP1"; transcript_id "NM_001134758:uc011abg.2";
+chr20 hg19_knownGene exon 62338351 62338444 0.000000 - . gene_id "ARFRP1"; transcript_id "NM_001134758:uc011abg.2";
+chr20 hg19_knownGene exon 62339219 62339355 0.000000 - . gene_id "ARFRP1"; transcript_id "NM_001134758:uc011abg.2";
+chr20 hg19_knownGene exon 62329995 62331882 0.000000 - . gene_id "ARFRP1"; transcript_id "BC143472:uc011abh.2";
+chr20 hg19_knownGene exon 62331954 62332054 0.000000 - . gene_id "ARFRP1"; transcript_id "BC143472:uc011abh.2";
+chr20 hg19_knownGene exon 62333182 62333250 0.000000 - . gene_id "ARFRP1"; transcript_id "BC143472:uc011abh.2";
+chr20 hg19_knownGene exon 62333488 62333569 0.000000 - . gene_id "ARFRP1"; transcript_id "BC143472:uc011abh.2";
+chr20 hg19_knownGene exon 62337709 62337791 0.000000 - . gene_id "ARFRP1"; transcript_id "BC143472:uc011abh.2";
+chr20 hg19_knownGene exon 62338003 62338090 0.000000 - . gene_id "ARFRP1"; transcript_id "BC143472:uc011abh.2";
+chr20 hg19_knownGene exon 62338351 62338449 0.000000 - . gene_id "ARFRP1"; transcript_id "BC143472:uc011abh.2";
+chr20 hg19_knownGene exon 62339219 62339355 0.000000 - . gene_id "ARFRP1"; transcript_id "BC143472:uc011abh.2";
+chr20 hg19_knownGene CDS 62331798 62331882 0.000000 - 1 gene_id "ARFRP1"; transcript_id "BC143467:uc002ygf.3";
+chr20 hg19_knownGene exon 62329995 62331882 0.000000 - . gene_id "ARFRP1"; transcript_id "BC143467:uc002ygf.3";
+chr20 hg19_knownGene CDS 62331954 62332054 0.000000 - 0 gene_id "ARFRP1"; transcript_id "BC143467:uc002ygf.3";
+chr20 hg19_knownGene exon 62331954 62332054 0.000000 - . gene_id "ARFRP1"; transcript_id "BC143467:uc002ygf.3";
+chr20 hg19_knownGene CDS 62333182 62333252 0.000000 - 2 gene_id "ARFRP1"; transcript_id "BC143467:uc002ygf.3";
+chr20 hg19_knownGene exon 62333182 62333252 0.000000 - . gene_id "ARFRP1"; transcript_id "BC143467:uc002ygf.3";
+chr20 hg19_knownGene CDS 62333488 62333569 0.000000 - 0 gene_id "ARFRP1"; transcript_id "BC143467:uc002ygf.3";
+chr20 hg19_knownGene exon 62333488 62333569 0.000000 - . gene_id "ARFRP1"; transcript_id "BC143467:uc002ygf.3";
+chr20 hg19_knownGene CDS 62337709 62337791 0.000000 - 2 gene_id "ARFRP1"; transcript_id "BC143467:uc002ygf.3";
+chr20 hg19_knownGene exon 62337709 62337791 0.000000 - . gene_id "ARFRP1"; transcript_id "BC143467:uc002ygf.3";
+chr20 hg19_knownGene CDS 62338003 62338090 0.000000 - 0 gene_id "ARFRP1"; transcript_id "BC143467:uc002ygf.3";
+chr20 hg19_knownGene exon 62338003 62338090 0.000000 - . gene_id "ARFRP1"; transcript_id "BC143467:uc002ygf.3";
+chr20 hg19_knownGene CDS 62338351 62338443 0.000000 - 0 gene_id "ARFRP1"; transcript_id "BC143467:uc002ygf.3";
+chr20 hg19_knownGene exon 62338351 62338449 0.000000 - . gene_id "ARFRP1"; transcript_id "BC143467:uc002ygf.3";
+chr20 hg19_knownGene exon 62339219 62339355 0.000000 - . gene_id "ARFRP1"; transcript_id "BC143467:uc002ygf.3";
+chr20 hg19_knownGene CDS 62332038 62332054 0.000000 - 2 gene_id "ARFRP1"; transcript_id "BC143477:uc011abf.2";
+chr20 hg19_knownGene exon 62329995 62332054 0.000000 - . gene_id "ARFRP1"; transcript_id "BC143477:uc011abf.2";
+chr20 hg19_knownGene CDS 62333182 62333250 0.000000 - 2 gene_id "ARFRP1"; transcript_id "BC143477:uc011abf.2";
+chr20 hg19_knownGene exon 62333182 62333250 0.000000 - . gene_id "ARFRP1"; transcript_id "BC143477:uc011abf.2";
+chr20 hg19_knownGene CDS 62333488 62333569 0.000000 - 0 gene_id "ARFRP1"; transcript_id "BC143477:uc011abf.2";
+chr20 hg19_knownGene exon 62333488 62333569 0.000000 - . gene_id "ARFRP1"; transcript_id "BC143477:uc011abf.2";
+chr20 hg19_knownGene CDS 62337709 62337791 0.000000 - 2 gene_id "ARFRP1"; transcript_id "BC143477:uc011abf.2";
+chr20 hg19_knownGene exon 62337709 62337791 0.000000 - . gene_id "ARFRP1"; transcript_id "BC143477:uc011abf.2";
+chr20 hg19_knownGene CDS 62338003 62338090 0.000000 - 0 gene_id "ARFRP1"; transcript_id "BC143477:uc011abf.2";
+chr20 hg19_knownGene exon 62338003 62338090 0.000000 - . gene_id "ARFRP1"; transcript_id "BC143477:uc011abf.2";
+chr20 hg19_knownGene CDS 62338351 62338443 0.000000 - 0 gene_id "ARFRP1"; transcript_id "BC143477:uc011abf.2";
+chr20 hg19_knownGene exon 62338351 62338449 0.000000 - . gene_id "ARFRP1"; transcript_id "BC143477:uc011abf.2";
+chr20 hg19_knownGene exon 62339219 62339355 0.000000 - . gene_id "ARFRP1"; transcript_id "BC143477:uc011abf.2";
+chr20 hg19_knownGene CDS 62331953 62332054 0.000000 - 0 gene_id "ARFRP1"; transcript_id "BC143448:uc002ygh.4";
+chr20 hg19_knownGene exon 62329995 62332054 0.000000 - . gene_id "ARFRP1"; transcript_id "BC143448:uc002ygh.4";
+chr20 hg19_knownGene CDS 62333182 62333252 0.000000 - 2 gene_id "ARFRP1"; transcript_id "BC143448:uc002ygh.4";
+chr20 hg19_knownGene exon 62333182 62333252 0.000000 - . gene_id "ARFRP1"; transcript_id "BC143448:uc002ygh.4";
+chr20 hg19_knownGene CDS 62333488 62333569 0.000000 - 0 gene_id "ARFRP1"; transcript_id "BC143448:uc002ygh.4";
+chr20 hg19_knownGene exon 62333488 62333569 0.000000 - . gene_id "ARFRP1"; transcript_id "BC143448:uc002ygh.4";
+chr20 hg19_knownGene CDS 62337709 62337791 0.000000 - 2 gene_id "ARFRP1"; transcript_id "BC143448:uc002ygh.4";
+chr20 hg19_knownGene exon 62337709 62337791 0.000000 - . gene_id "ARFRP1"; transcript_id "BC143448:uc002ygh.4";
+chr20 hg19_knownGene CDS 62338003 62338090 0.000000 - 0 gene_id "ARFRP1"; transcript_id "BC143448:uc002ygh.4";
+chr20 hg19_knownGene exon 62338003 62338090 0.000000 - . gene_id "ARFRP1"; transcript_id "BC143448:uc002ygh.4";
+chr20 hg19_knownGene CDS 62338351 62338443 0.000000 - 0 gene_id "ARFRP1"; transcript_id "BC143448:uc002ygh.4";
+chr20 hg19_knownGene exon 62338351 62338449 0.000000 - . gene_id "ARFRP1"; transcript_id "BC143448:uc002ygh.4";
+chr20 hg19_knownGene exon 62339219 62339355 0.000000 - . gene_id "ARFRP1"; transcript_id "BC143448:uc002ygh.4";
+chr20 hg19_knownGene exon 62338794 62338911 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_001083113:uc002ygi.2";
+chr20 hg19_knownGene CDS 62339933 62340516 0.000000 + 0 gene_id "ZGPAT"; transcript_id "NM_001083113:uc002ygi.2";
+chr20 hg19_knownGene exon 62339905 62340516 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_001083113:uc002ygi.2";
+chr20 hg19_knownGene CDS 62364571 62364704 0.000000 + 1 gene_id "ZGPAT"; transcript_id "NM_001083113:uc002ygi.2";
+chr20 hg19_knownGene exon 62364571 62364704 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_001083113:uc002ygi.2";
+chr20 hg19_knownGene CDS 62364939 62365091 0.000000 + 2 gene_id "ZGPAT"; transcript_id "NM_001083113:uc002ygi.2";
+chr20 hg19_knownGene exon 62364939 62365091 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_001083113:uc002ygi.2";
+chr20 hg19_knownGene CDS 62366057 62366176 0.000000 + 2 gene_id "ZGPAT"; transcript_id "NM_001083113:uc002ygi.2";
+chr20 hg19_knownGene exon 62366057 62366176 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_001083113:uc002ygi.2";
+chr20 hg19_knownGene CDS 62366511 62366916 0.000000 + 2 gene_id "ZGPAT"; transcript_id "NM_001083113:uc002ygi.2";
+chr20 hg19_knownGene exon 62366511 62366916 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_001083113:uc002ygi.2";
+chr20 hg19_knownGene CDS 62367133 62367268 0.000000 + 1 gene_id "ZGPAT"; transcript_id "NM_001083113:uc002ygi.2";
+chr20 hg19_knownGene exon 62367133 62367538 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_001083113:uc002ygi.2";
+chr20 hg19_knownGene exon 62339380 62339470 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_181485:uc002ygj.2";
+chr20 hg19_knownGene CDS 62339933 62340516 0.000000 + 0 gene_id "ZGPAT"; transcript_id "NM_181485:uc002ygj.2";
+chr20 hg19_knownGene exon 62339905 62340516 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_181485:uc002ygj.2";
+chr20 hg19_knownGene CDS 62364571 62364704 0.000000 + 1 gene_id "ZGPAT"; transcript_id "NM_181485:uc002ygj.2";
+chr20 hg19_knownGene exon 62364571 62364704 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_181485:uc002ygj.2";
+chr20 hg19_knownGene CDS 62364939 62365091 0.000000 + 2 gene_id "ZGPAT"; transcript_id "NM_181485:uc002ygj.2";
+chr20 hg19_knownGene exon 62364939 62365091 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_181485:uc002ygj.2";
+chr20 hg19_knownGene CDS 62366057 62366176 0.000000 + 2 gene_id "ZGPAT"; transcript_id "NM_181485:uc002ygj.2";
+chr20 hg19_knownGene exon 62366057 62366176 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_181485:uc002ygj.2";
+chr20 hg19_knownGene CDS 62366511 62366916 0.000000 + 2 gene_id "ZGPAT"; transcript_id "NM_181485:uc002ygj.2";
+chr20 hg19_knownGene exon 62366511 62366916 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_181485:uc002ygj.2";
+chr20 hg19_knownGene CDS 62367133 62367268 0.000000 + 1 gene_id "ZGPAT"; transcript_id "NM_181485:uc002ygj.2";
+chr20 hg19_knownGene exon 62367133 62367538 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_181485:uc002ygj.2";
+chr20 hg19_knownGene exon 62339380 62339540 0.000000 + . gene_id "ZGPAT"; transcript_id "AK307368:uc010gkk.2";
+chr20 hg19_knownGene CDS 62366789 62366916 0.000000 + 0 gene_id "ZGPAT"; transcript_id "AK307368:uc010gkk.2";
+chr20 hg19_knownGene exon 62366588 62366916 0.000000 + . gene_id "ZGPAT"; transcript_id "AK307368:uc010gkk.2";
+chr20 hg19_knownGene CDS 62367133 62367268 0.000000 + 1 gene_id "ZGPAT"; transcript_id "AK307368:uc010gkk.2";
+chr20 hg19_knownGene exon 62367133 62367538 0.000000 + . gene_id "ZGPAT"; transcript_id "AK307368:uc010gkk.2";
+chr20 hg19_knownGene exon 62339380 62339521 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_001195653:uc010gkl.2";
+chr20 hg19_knownGene CDS 62339933 62340516 0.000000 + 0 gene_id "ZGPAT"; transcript_id "NM_001195653:uc010gkl.2";
+chr20 hg19_knownGene exon 62339905 62340516 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_001195653:uc010gkl.2";
+chr20 hg19_knownGene CDS 62364571 62364704 0.000000 + 1 gene_id "ZGPAT"; transcript_id "NM_001195653:uc010gkl.2";
+chr20 hg19_knownGene exon 62364571 62364704 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_001195653:uc010gkl.2";
+chr20 hg19_knownGene CDS 62364939 62365091 0.000000 + 2 gene_id "ZGPAT"; transcript_id "NM_001195653:uc010gkl.2";
+chr20 hg19_knownGene exon 62364939 62365091 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_001195653:uc010gkl.2";
+chr20 hg19_knownGene CDS 62366057 62366176 0.000000 + 2 gene_id "ZGPAT"; transcript_id "NM_001195653:uc010gkl.2";
+chr20 hg19_knownGene exon 62366057 62366176 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_001195653:uc010gkl.2";
+chr20 hg19_knownGene CDS 62366511 62366916 0.000000 + 2 gene_id "ZGPAT"; transcript_id "NM_001195653:uc010gkl.2";
+chr20 hg19_knownGene exon 62366511 62366916 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_001195653:uc010gkl.2";
+chr20 hg19_knownGene CDS 62367133 62367268 0.000000 + 1 gene_id "ZGPAT"; transcript_id "NM_001195653:uc010gkl.2";
+chr20 hg19_knownGene exon 62367133 62367538 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_001195653:uc010gkl.2";
+chr20 hg19_knownGene exon 62339380 62339540 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_032527:uc002ygk.3";
+chr20 hg19_knownGene CDS 62339933 62340516 0.000000 + 0 gene_id "ZGPAT"; transcript_id "NM_032527:uc002ygk.3";
+chr20 hg19_knownGene exon 62339905 62340516 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_032527:uc002ygk.3";
+chr20 hg19_knownGene CDS 62364571 62364704 0.000000 + 1 gene_id "ZGPAT"; transcript_id "NM_032527:uc002ygk.3";
+chr20 hg19_knownGene exon 62364571 62364704 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_032527:uc002ygk.3";
+chr20 hg19_knownGene CDS 62364939 62365091 0.000000 + 2 gene_id "ZGPAT"; transcript_id "NM_032527:uc002ygk.3";
+chr20 hg19_knownGene exon 62364939 62365091 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_032527:uc002ygk.3";
+chr20 hg19_knownGene CDS 62365997 62366176 0.000000 + 2 gene_id "ZGPAT"; transcript_id "NM_032527:uc002ygk.3";
+chr20 hg19_knownGene exon 62365997 62366176 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_032527:uc002ygk.3";
+chr20 hg19_knownGene CDS 62366511 62366916 0.000000 + 2 gene_id "ZGPAT"; transcript_id "NM_032527:uc002ygk.3";
+chr20 hg19_knownGene exon 62366511 62366916 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_032527:uc002ygk.3";
+chr20 hg19_knownGene CDS 62367133 62367268 0.000000 + 1 gene_id "ZGPAT"; transcript_id "NM_032527:uc002ygk.3";
+chr20 hg19_knownGene exon 62367133 62367538 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_032527:uc002ygk.3";
+chr20 hg19_knownGene exon 62339380 62339540 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_001195654:uc002ygm.3";
+chr20 hg19_knownGene CDS 62339933 62340516 0.000000 + 0 gene_id "ZGPAT"; transcript_id "NM_001195654:uc002ygm.3";
+chr20 hg19_knownGene exon 62339905 62340516 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_001195654:uc002ygm.3";
+chr20 hg19_knownGene CDS 62364571 62364704 0.000000 + 1 gene_id "ZGPAT"; transcript_id "NM_001195654:uc002ygm.3";
+chr20 hg19_knownGene exon 62364571 62364704 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_001195654:uc002ygm.3";
+chr20 hg19_knownGene CDS 62364939 62365064 0.000000 + 2 gene_id "ZGPAT"; transcript_id "NM_001195654:uc002ygm.3";
+chr20 hg19_knownGene exon 62364939 62365064 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_001195654:uc002ygm.3";
+chr20 hg19_knownGene CDS 62366057 62366176 0.000000 + 2 gene_id "ZGPAT"; transcript_id "NM_001195654:uc002ygm.3";
+chr20 hg19_knownGene exon 62366057 62366176 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_001195654:uc002ygm.3";
+chr20 hg19_knownGene CDS 62366511 62366916 0.000000 + 2 gene_id "ZGPAT"; transcript_id "NM_001195654:uc002ygm.3";
+chr20 hg19_knownGene exon 62366511 62366916 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_001195654:uc002ygm.3";
+chr20 hg19_knownGene CDS 62367133 62367268 0.000000 + 1 gene_id "ZGPAT"; transcript_id "NM_001195654:uc002ygm.3";
+chr20 hg19_knownGene exon 62367133 62367538 0.000000 + . gene_id "ZGPAT"; transcript_id "NM_001195654:uc002ygm.3";
+chr20 hg19_knownGene exon 62339905 62340516 0.000000 + . gene_id "ZGPAT"; transcript_id "AK122912:uc002ygn.4";
+chr20 hg19_knownGene exon 62364571 62364704 0.000000 + . gene_id "ZGPAT"; transcript_id "AK122912:uc002ygn.4";
+chr20 hg19_knownGene exon 62364939 62365091 0.000000 + . gene_id "ZGPAT"; transcript_id "AK122912:uc002ygn.4";
+chr20 hg19_knownGene exon 62366057 62366176 0.000000 + . gene_id "ZGPAT"; transcript_id "AK122912:uc002ygn.4";
+chr20 hg19_knownGene exon 62366511 62366916 0.000000 + . gene_id "ZGPAT"; transcript_id "AK122912:uc002ygn.4";
+chr20 hg19_knownGene exon 62367133 62368064 0.000000 + . gene_id "ZGPAT"; transcript_id "AK122912:uc002ygn.4";
+chr20 hg19_knownGene exon 62368886 62369000 0.000000 + . gene_id "ZGPAT"; transcript_id "AK122912:uc002ygn.4";
+chr20 hg19_knownGene exon 62369174 62369255 0.000000 + . gene_id "ZGPAT"; transcript_id "AK122912:uc002ygn.4";
+chr20 hg19_knownGene exon 62369361 62369413 0.000000 + . gene_id "ZGPAT"; transcript_id "AK122912:uc002ygn.4";
+chr20 hg19_knownGene exon 62369536 62369852 0.000000 + . gene_id "ZGPAT"; transcript_id "AK122912:uc002ygn.4";
+chr20 hg19_knownGene exon 62369951 62370460 0.000000 + . gene_id "ZGPAT"; transcript_id "AK122912:uc002ygn.4";
+chr20 hg19_knownGene exon 62367053 62367538 0.000000 + . gene_id "LIME1"; transcript_id "AY203957:uc011abi.2";
+chr20 hg19_knownGene CDS 62368903 62369000 0.000000 + 0 gene_id "LIME1"; transcript_id "AY203957:uc011abi.2";
+chr20 hg19_knownGene exon 62368886 62369000 0.000000 + . gene_id "LIME1"; transcript_id "AY203957:uc011abi.2";
+chr20 hg19_knownGene CDS 62369174 62369255 0.000000 + 1 gene_id "LIME1"; transcript_id "AY203957:uc011abi.2";
+chr20 hg19_knownGene exon 62369174 62369255 0.000000 + . gene_id "LIME1"; transcript_id "AY203957:uc011abi.2";
+chr20 hg19_knownGene CDS 62369361 62369413 0.000000 + 0 gene_id "LIME1"; transcript_id "AY203957:uc011abi.2";
+chr20 hg19_knownGene exon 62369361 62369413 0.000000 + . gene_id "LIME1"; transcript_id "AY203957:uc011abi.2";
+chr20 hg19_knownGene CDS 62369536 62369830 0.000000 + 1 gene_id "LIME1"; transcript_id "AY203957:uc011abi.2";
+chr20 hg19_knownGene exon 62369536 62369852 0.000000 + . gene_id "LIME1"; transcript_id "AY203957:uc011abi.2";
+chr20 hg19_knownGene exon 62369951 62370460 0.000000 + . gene_id "LIME1"; transcript_id "AY203957:uc011abi.2";
+chr20 hg19_knownGene exon 62367133 62368064 0.000000 + . gene_id "LIME1"; transcript_id "NM_017806:uc002ygp.4";
+chr20 hg19_knownGene CDS 62368903 62369000 0.000000 + 0 gene_id "LIME1"; transcript_id "NM_017806:uc002ygp.4";
+chr20 hg19_knownGene exon 62368886 62369000 0.000000 + . gene_id "LIME1"; transcript_id "NM_017806:uc002ygp.4";
+chr20 hg19_knownGene CDS 62369174 62369255 0.000000 + 1 gene_id "LIME1"; transcript_id "NM_017806:uc002ygp.4";
+chr20 hg19_knownGene exon 62369174 62369255 0.000000 + . gene_id "LIME1"; transcript_id "NM_017806:uc002ygp.4";
+chr20 hg19_knownGene CDS 62369326 62369413 0.000000 + 0 gene_id "LIME1"; transcript_id "NM_017806:uc002ygp.4";
+chr20 hg19_knownGene exon 62369326 62369413 0.000000 + . gene_id "LIME1"; transcript_id "NM_017806:uc002ygp.4";
+chr20 hg19_knownGene CDS 62369536 62369852 0.000000 + 2 gene_id "LIME1"; transcript_id "NM_017806:uc002ygp.4";
+chr20 hg19_knownGene exon 62369536 62369852 0.000000 + . gene_id "LIME1"; transcript_id "NM_017806:uc002ygp.4";
+chr20 hg19_knownGene CDS 62369951 62370250 0.000000 + 0 gene_id "LIME1"; transcript_id "NM_017806:uc002ygp.4";
+chr20 hg19_knownGene exon 62369951 62370460 0.000000 + . gene_id "LIME1"; transcript_id "NM_017806:uc002ygp.4";
+chr20 hg19_knownGene CDS 62371266 62371391 0.000000 + 0 gene_id "SLC2A4RG"; transcript_id "NM_020062:uc002ygq.3";
+chr20 hg19_knownGene exon 62371211 62371391 0.000000 + . gene_id "SLC2A4RG"; transcript_id "NM_020062:uc002ygq.3";
+chr20 hg19_knownGene CDS 62371730 62371884 0.000000 + 0 gene_id "SLC2A4RG"; transcript_id "NM_020062:uc002ygq.3";
+chr20 hg19_knownGene exon 62371730 62371884 0.000000 + . gene_id "SLC2A4RG"; transcript_id "NM_020062:uc002ygq.3";
+chr20 hg19_knownGene CDS 62372723 62372832 0.000000 + 1 gene_id "SLC2A4RG"; transcript_id "NM_020062:uc002ygq.3";
+chr20 hg19_knownGene exon 62372723 62372832 0.000000 + . gene_id "SLC2A4RG"; transcript_id "NM_020062:uc002ygq.3";
+chr20 hg19_knownGene CDS 62373222 62373409 0.000000 + 2 gene_id "SLC2A4RG"; transcript_id "NM_020062:uc002ygq.3";
+chr20 hg19_knownGene exon 62373222 62373409 0.000000 + . gene_id "SLC2A4RG"; transcript_id "NM_020062:uc002ygq.3";
+chr20 hg19_knownGene CDS 62373483 62373583 0.000000 + 0 gene_id "SLC2A4RG"; transcript_id "NM_020062:uc002ygq.3";
+chr20 hg19_knownGene exon 62373483 62373583 0.000000 + . gene_id "SLC2A4RG"; transcript_id "NM_020062:uc002ygq.3";
+chr20 hg19_knownGene CDS 62373689 62373968 0.000000 + 1 gene_id "SLC2A4RG"; transcript_id "NM_020062:uc002ygq.3";
+chr20 hg19_knownGene exon 62373689 62373968 0.000000 + . gene_id "SLC2A4RG"; transcript_id "NM_020062:uc002ygq.3";
+chr20 hg19_knownGene CDS 62374052 62374143 0.000000 + 0 gene_id "SLC2A4RG"; transcript_id "NM_020062:uc002ygq.3";
+chr20 hg19_knownGene exon 62374052 62374143 0.000000 + . gene_id "SLC2A4RG"; transcript_id "NM_020062:uc002ygq.3";
+chr20 hg19_knownGene CDS 62374232 62374340 0.000000 + 1 gene_id "SLC2A4RG"; transcript_id "NM_020062:uc002ygq.3";
+chr20 hg19_knownGene exon 62374232 62375403 0.000000 + . gene_id "SLC2A4RG"; transcript_id "NM_020062:uc002ygq.3";
+chr20 hg19_knownGene exon 62371659 62371884 0.000000 + . gene_id "SLC2A4RG"; transcript_id "AB044777:uc002ygr.3";
+chr20 hg19_knownGene CDS 62372757 62372832 0.000000 + 0 gene_id "SLC2A4RG"; transcript_id "AB044777:uc002ygr.3";
+chr20 hg19_knownGene exon 62372723 62372832 0.000000 + . gene_id "SLC2A4RG"; transcript_id "AB044777:uc002ygr.3";
+chr20 hg19_knownGene CDS 62373222 62373409 0.000000 + 2 gene_id "SLC2A4RG"; transcript_id "AB044777:uc002ygr.3";
+chr20 hg19_knownGene exon 62373222 62373409 0.000000 + . gene_id "SLC2A4RG"; transcript_id "AB044777:uc002ygr.3";
+chr20 hg19_knownGene CDS 62373483 62373583 0.000000 + 0 gene_id "SLC2A4RG"; transcript_id "AB044777:uc002ygr.3";
+chr20 hg19_knownGene exon 62373483 62373583 0.000000 + . gene_id "SLC2A4RG"; transcript_id "AB044777:uc002ygr.3";
+chr20 hg19_knownGene CDS 62373689 62373968 0.000000 + 1 gene_id "SLC2A4RG"; transcript_id "AB044777:uc002ygr.3";
+chr20 hg19_knownGene exon 62373689 62373968 0.000000 + . gene_id "SLC2A4RG"; transcript_id "AB044777:uc002ygr.3";
+chr20 hg19_knownGene CDS 62374052 62374143 0.000000 + 0 gene_id "SLC2A4RG"; transcript_id "AB044777:uc002ygr.3";
+chr20 hg19_knownGene exon 62374052 62374143 0.000000 + . gene_id "SLC2A4RG"; transcript_id "AB044777:uc002ygr.3";
+chr20 hg19_knownGene CDS 62374232 62374340 0.000000 + 1 gene_id "SLC2A4RG"; transcript_id "AB044777:uc002ygr.3";
+chr20 hg19_knownGene exon 62374232 62375403 0.000000 + . gene_id "SLC2A4RG"; transcript_id "AB044777:uc002ygr.3";
+chr20 hg19_knownGene CDS 62372757 62372832 0.000000 + 0 gene_id "SLC2A4RG"; transcript_id "AK298304:uc011abj.2";
+chr20 hg19_knownGene exon 62372464 62372832 0.000000 + . gene_id "SLC2A4RG"; transcript_id "AK298304:uc011abj.2";
+chr20 hg19_knownGene CDS 62373222 62373409 0.000000 + 2 gene_id "SLC2A4RG"; transcript_id "AK298304:uc011abj.2";
+chr20 hg19_knownGene exon 62373222 62373409 0.000000 + . gene_id "SLC2A4RG"; transcript_id "AK298304:uc011abj.2";
+chr20 hg19_knownGene CDS 62373483 62373583 0.000000 + 0 gene_id "SLC2A4RG"; transcript_id "AK298304:uc011abj.2";
+chr20 hg19_knownGene exon 62373483 62373583 0.000000 + . gene_id "SLC2A4RG"; transcript_id "AK298304:uc011abj.2";
+chr20 hg19_knownGene CDS 62373689 62373968 0.000000 + 1 gene_id "SLC2A4RG"; transcript_id "AK298304:uc011abj.2";
+chr20 hg19_knownGene exon 62373689 62373968 0.000000 + . gene_id "SLC2A4RG"; transcript_id "AK298304:uc011abj.2";
+chr20 hg19_knownGene CDS 62374052 62374143 0.000000 + 0 gene_id "SLC2A4RG"; transcript_id "AK298304:uc011abj.2";
+chr20 hg19_knownGene exon 62374052 62374143 0.000000 + . gene_id "SLC2A4RG"; transcript_id "AK298304:uc011abj.2";
+chr20 hg19_knownGene CDS 62374232 62374340 0.000000 + 1 gene_id "SLC2A4RG"; transcript_id "AK298304:uc011abj.2";
+chr20 hg19_knownGene exon 62374232 62375403 0.000000 + . gene_id "SLC2A4RG"; transcript_id "AK298304:uc011abj.2";
+chr20 hg19_knownGene exon 62372464 62372832 0.000000 + . gene_id "SLC2A4RG"; transcript_id "BC017446:uc002ygs.3";
+chr20 hg19_knownGene CDS 62373498 62373583 0.000000 + 0 gene_id "SLC2A4RG"; transcript_id "BC017446:uc002ygs.3";
+chr20 hg19_knownGene exon 62373483 62373583 0.000000 + . gene_id "SLC2A4RG"; transcript_id "BC017446:uc002ygs.3";
+chr20 hg19_knownGene CDS 62373689 62373968 0.000000 + 1 gene_id "SLC2A4RG"; transcript_id "BC017446:uc002ygs.3";
+chr20 hg19_knownGene exon 62373689 62373968 0.000000 + . gene_id "SLC2A4RG"; transcript_id "BC017446:uc002ygs.3";
+chr20 hg19_knownGene CDS 62374052 62374143 0.000000 + 0 gene_id "SLC2A4RG"; transcript_id "BC017446:uc002ygs.3";
+chr20 hg19_knownGene exon 62374052 62374143 0.000000 + . gene_id "SLC2A4RG"; transcript_id "BC017446:uc002ygs.3";
+chr20 hg19_knownGene CDS 62374232 62374340 0.000000 + 1 gene_id "SLC2A4RG"; transcript_id "BC017446:uc002ygs.3";
+chr20 hg19_knownGene exon 62374232 62375403 0.000000 + . gene_id "SLC2A4RG"; transcript_id "BC017446:uc002ygs.3";
+chr20 hg19_knownGene CDS 62378286 62378654 0.000000 - 0 gene_id "ZBTB46"; transcript_id "NM_025224:uc002ygv.2";
+chr20 hg19_knownGene exon 62375021 62378654 0.000000 - . gene_id "ZBTB46"; transcript_id "NM_025224:uc002ygv.2";
+chr20 hg19_knownGene CDS 62384039 62384214 0.000000 - 2 gene_id "ZBTB46"; transcript_id "NM_025224:uc002ygv.2";
+chr20 hg19_knownGene exon 62384039 62384214 0.000000 - . gene_id "ZBTB46"; transcript_id "NM_025224:uc002ygv.2";
+chr20 hg19_knownGene CDS 62407031 62407315 0.000000 - 2 gene_id "ZBTB46"; transcript_id "NM_025224:uc002ygv.2";
+chr20 hg19_knownGene exon 62407031 62407315 0.000000 - . gene_id "ZBTB46"; transcript_id "NM_025224:uc002ygv.2";
+chr20 hg19_knownGene CDS 62421174 62422110 0.000000 - 0 gene_id "ZBTB46"; transcript_id "NM_025224:uc002ygv.2";
+chr20 hg19_knownGene exon 62421174 62422143 0.000000 - . gene_id "ZBTB46"; transcript_id "NM_025224:uc002ygv.2";
+chr20 hg19_knownGene exon 62436689 62436856 0.000000 - . gene_id "ZBTB46"; transcript_id "NM_025224:uc002ygv.2";
+chr20 hg19_knownGene exon 62439442 62439508 0.000000 + . gene_id "BC002534"; transcript_id "BC002534:uc002ygw.3";
+chr20 hg19_knownGene exon 62452103 62452224 0.000000 + . gene_id "BC002534"; transcript_id "BC002534:uc002ygw.3";
+chr20 hg19_knownGene exon 62453475 62454360 0.000000 + . gene_id "BC002534"; transcript_id "BC002534:uc002ygw.3";
+chr20 hg19_knownGene exon 62375875 62376034 0.000000 - . gene_id "ZBTB46"; transcript_id "BC073800:uc002ygu.3";
+chr20 hg19_knownGene exon 62376496 62376664 0.000000 - . gene_id "ZBTB46"; transcript_id "BC073800:uc002ygu.3";
+chr20 hg19_knownGene exon 62378225 62378654 0.000000 - . gene_id "ZBTB46"; transcript_id "BC073800:uc002ygu.3";
+chr20 hg19_knownGene exon 62384039 62384214 0.000000 - . gene_id "ZBTB46"; transcript_id "BC073800:uc002ygu.3";
+chr20 hg19_knownGene exon 62407031 62407315 0.000000 - . gene_id "ZBTB46"; transcript_id "BC073800:uc002ygu.3";
+chr20 hg19_knownGene exon 62421174 62422143 0.000000 - . gene_id "ZBTB46"; transcript_id "BC073800:uc002ygu.3";
+chr20 hg19_knownGene exon 62462450 62462597 0.000000 - . gene_id "ZBTB46"; transcript_id "BC073800:uc002ygu.3";
+chr20 hg19_knownGene CDS 62492894 62494300 0.000000 + 0 gene_id "ABHD16B"; transcript_id "NM_080622:uc002ygx.1";
+chr20 hg19_knownGene exon 62492566 62494341 0.000000 + . gene_id "ABHD16B"; transcript_id "NM_080622:uc002ygx.1";
+chr20 hg19_knownGene CDS 62507995 62508558 0.000000 + 0 gene_id "LOC100505815"; transcript_id "NR_045370:uc021wgj.1";
+chr20 hg19_knownGene exon 62507484 62512243 0.000000 + . gene_id "LOC100505815"; transcript_id "NR_045370:uc021wgj.1";
+chr20 hg19_knownGene CDS 62496719 62496737 0.000000 + 0 gene_id "TPD52L2"; transcript_id "NM_199360:uc002ygy.3";
+chr20 hg19_knownGene exon 62496581 62496737 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199360:uc002ygy.3";
+chr20 hg19_knownGene CDS 62500649 62500794 0.000000 + 2 gene_id "TPD52L2"; transcript_id "NM_199360:uc002ygy.3";
+chr20 hg19_knownGene exon 62500649 62500794 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199360:uc002ygy.3";
+chr20 hg19_knownGene CDS 62505021 62505169 0.000000 + 0 gene_id "TPD52L2"; transcript_id "NM_199360:uc002ygy.3";
+chr20 hg19_knownGene exon 62505021 62505169 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199360:uc002ygy.3";
+chr20 hg19_knownGene CDS 62507169 62507228 0.000000 + 1 gene_id "TPD52L2"; transcript_id "NM_199360:uc002ygy.3";
+chr20 hg19_knownGene exon 62507169 62507228 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199360:uc002ygy.3";
+chr20 hg19_knownGene CDS 62514072 62514173 0.000000 + 1 gene_id "TPD52L2"; transcript_id "NM_199360:uc002ygy.3";
+chr20 hg19_knownGene exon 62514072 62514173 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199360:uc002ygy.3";
+chr20 hg19_knownGene CDS 62517369 62517395 0.000000 + 1 gene_id "TPD52L2"; transcript_id "NM_199360:uc002ygy.3";
+chr20 hg19_knownGene exon 62517369 62517395 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199360:uc002ygy.3";
+chr20 hg19_knownGene CDS 62518917 62518958 0.000000 + 1 gene_id "TPD52L2"; transcript_id "NM_199360:uc002ygy.3";
+chr20 hg19_knownGene exon 62518917 62518958 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199360:uc002ygy.3";
+chr20 hg19_knownGene CDS 62520543 62520591 0.000000 + 1 gene_id "TPD52L2"; transcript_id "NM_199360:uc002ygy.3";
+chr20 hg19_knownGene exon 62520543 62520591 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199360:uc002ygy.3";
+chr20 hg19_knownGene CDS 62521203 62521295 0.000000 + 0 gene_id "TPD52L2"; transcript_id "NM_199360:uc002ygy.3";
+chr20 hg19_knownGene exon 62521203 62522898 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199360:uc002ygy.3";
+chr20 hg19_knownGene CDS 62496719 62496737 0.000000 + 0 gene_id "TPD52L2"; transcript_id "NM_001243894:uc021wgf.1";
+chr20 hg19_knownGene exon 62496581 62496737 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_001243894:uc021wgf.1";
+chr20 hg19_knownGene CDS 62500649 62500794 0.000000 + 2 gene_id "TPD52L2"; transcript_id "NM_001243894:uc021wgf.1";
+chr20 hg19_knownGene exon 62500649 62500794 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_001243894:uc021wgf.1";
+chr20 hg19_knownGene CDS 62505021 62505169 0.000000 + 0 gene_id "TPD52L2"; transcript_id "NM_001243894:uc021wgf.1";
+chr20 hg19_knownGene exon 62505021 62505169 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_001243894:uc021wgf.1";
+chr20 hg19_knownGene CDS 62520543 62520591 0.000000 + 1 gene_id "TPD52L2"; transcript_id "NM_001243894:uc021wgf.1";
+chr20 hg19_knownGene exon 62520543 62520591 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_001243894:uc021wgf.1";
+chr20 hg19_knownGene CDS 62521203 62521295 0.000000 + 0 gene_id "TPD52L2"; transcript_id "NM_001243894:uc021wgf.1";
+chr20 hg19_knownGene exon 62521203 62522898 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_001243894:uc021wgf.1";
+chr20 hg19_knownGene CDS 62496719 62496737 0.000000 + 0 gene_id "TPD52L2"; transcript_id "NM_001243895:uc021wgg.1";
+chr20 hg19_knownGene exon 62496581 62496737 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_001243895:uc021wgg.1";
+chr20 hg19_knownGene CDS 62500649 62500794 0.000000 + 2 gene_id "TPD52L2"; transcript_id "NM_001243895:uc021wgg.1";
+chr20 hg19_knownGene exon 62500649 62500794 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_001243895:uc021wgg.1";
+chr20 hg19_knownGene CDS 62505021 62505169 0.000000 + 0 gene_id "TPD52L2"; transcript_id "NM_001243895:uc021wgg.1";
+chr20 hg19_knownGene exon 62505021 62505169 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_001243895:uc021wgg.1";
+chr20 hg19_knownGene CDS 62507169 62507228 0.000000 + 1 gene_id "TPD52L2"; transcript_id "NM_001243895:uc021wgg.1";
+chr20 hg19_knownGene exon 62507169 62507228 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_001243895:uc021wgg.1";
+chr20 hg19_knownGene CDS 62514072 62514173 0.000000 + 1 gene_id "TPD52L2"; transcript_id "NM_001243895:uc021wgg.1";
+chr20 hg19_knownGene exon 62514072 62514173 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_001243895:uc021wgg.1";
+chr20 hg19_knownGene CDS 62521203 62521392 0.000000 + 1 gene_id "TPD52L2"; transcript_id "NM_001243895:uc021wgg.1";
+chr20 hg19_knownGene exon 62521203 62522898 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_001243895:uc021wgg.1";
+chr20 hg19_knownGene exon 62496581 62496737 0.000000 + . gene_id "TPD52L2"; transcript_id "AK293349:uc011abk.2";
+chr20 hg19_knownGene CDS 62500700 62500717 0.000000 + 0 gene_id "TPD52L2"; transcript_id "AK293349:uc011abk.2";
+chr20 hg19_knownGene exon 62500649 62500717 0.000000 + . gene_id "TPD52L2"; transcript_id "AK293349:uc011abk.2";
+chr20 hg19_knownGene CDS 62505021 62505169 0.000000 + 0 gene_id "TPD52L2"; transcript_id "AK293349:uc011abk.2";
+chr20 hg19_knownGene exon 62505021 62505169 0.000000 + . gene_id "TPD52L2"; transcript_id "AK293349:uc011abk.2";
+chr20 hg19_knownGene CDS 62507169 62507228 0.000000 + 1 gene_id "TPD52L2"; transcript_id "AK293349:uc011abk.2";
+chr20 hg19_knownGene exon 62507169 62507228 0.000000 + . gene_id "TPD52L2"; transcript_id "AK293349:uc011abk.2";
+chr20 hg19_knownGene CDS 62514072 62514173 0.000000 + 1 gene_id "TPD52L2"; transcript_id "AK293349:uc011abk.2";
+chr20 hg19_knownGene exon 62514072 62514173 0.000000 + . gene_id "TPD52L2"; transcript_id "AK293349:uc011abk.2";
+chr20 hg19_knownGene CDS 62520543 62520591 0.000000 + 1 gene_id "TPD52L2"; transcript_id "AK293349:uc011abk.2";
+chr20 hg19_knownGene exon 62520543 62520591 0.000000 + . gene_id "TPD52L2"; transcript_id "AK293349:uc011abk.2";
+chr20 hg19_knownGene CDS 62521203 62521295 0.000000 + 0 gene_id "TPD52L2"; transcript_id "AK293349:uc011abk.2";
+chr20 hg19_knownGene exon 62521203 62522898 0.000000 + . gene_id "TPD52L2"; transcript_id "AK293349:uc011abk.2";
+chr20 hg19_knownGene CDS 62496719 62496737 0.000000 + 0 gene_id "TPD52L2"; transcript_id "NM_199362:uc002ygz.3";
+chr20 hg19_knownGene exon 62496581 62496737 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199362:uc002ygz.3";
+chr20 hg19_knownGene CDS 62500649 62500794 0.000000 + 2 gene_id "TPD52L2"; transcript_id "NM_199362:uc002ygz.3";
+chr20 hg19_knownGene exon 62500649 62500794 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199362:uc002ygz.3";
+chr20 hg19_knownGene CDS 62505021 62505169 0.000000 + 0 gene_id "TPD52L2"; transcript_id "NM_199362:uc002ygz.3";
+chr20 hg19_knownGene exon 62505021 62505169 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199362:uc002ygz.3";
+chr20 hg19_knownGene CDS 62507169 62507228 0.000000 + 1 gene_id "TPD52L2"; transcript_id "NM_199362:uc002ygz.3";
+chr20 hg19_knownGene exon 62507169 62507228 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199362:uc002ygz.3";
+chr20 hg19_knownGene CDS 62514072 62514173 0.000000 + 1 gene_id "TPD52L2"; transcript_id "NM_199362:uc002ygz.3";
+chr20 hg19_knownGene exon 62514072 62514173 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199362:uc002ygz.3";
+chr20 hg19_knownGene CDS 62518917 62518958 0.000000 + 1 gene_id "TPD52L2"; transcript_id "NM_199362:uc002ygz.3";
+chr20 hg19_knownGene exon 62518917 62518958 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199362:uc002ygz.3";
+chr20 hg19_knownGene CDS 62520543 62520591 0.000000 + 1 gene_id "TPD52L2"; transcript_id "NM_199362:uc002ygz.3";
+chr20 hg19_knownGene exon 62520543 62520591 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199362:uc002ygz.3";
+chr20 hg19_knownGene CDS 62521203 62521295 0.000000 + 0 gene_id "TPD52L2"; transcript_id "NM_199362:uc002ygz.3";
+chr20 hg19_knownGene exon 62521203 62522898 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199362:uc002ygz.3";
+chr20 hg19_knownGene CDS 62496719 62496737 0.000000 + 0 gene_id "TPD52L2"; transcript_id "NM_199361:uc002yha.3";
+chr20 hg19_knownGene exon 62496581 62496737 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199361:uc002yha.3";
+chr20 hg19_knownGene CDS 62500649 62500794 0.000000 + 2 gene_id "TPD52L2"; transcript_id "NM_199361:uc002yha.3";
+chr20 hg19_knownGene exon 62500649 62500794 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199361:uc002yha.3";
+chr20 hg19_knownGene CDS 62505021 62505169 0.000000 + 0 gene_id "TPD52L2"; transcript_id "NM_199361:uc002yha.3";
+chr20 hg19_knownGene exon 62505021 62505169 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199361:uc002yha.3";
+chr20 hg19_knownGene CDS 62514072 62514173 0.000000 + 1 gene_id "TPD52L2"; transcript_id "NM_199361:uc002yha.3";
+chr20 hg19_knownGene exon 62514072 62514173 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199361:uc002yha.3";
+chr20 hg19_knownGene CDS 62517369 62517395 0.000000 + 1 gene_id "TPD52L2"; transcript_id "NM_199361:uc002yha.3";
+chr20 hg19_knownGene exon 62517369 62517395 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199361:uc002yha.3";
+chr20 hg19_knownGene CDS 62518917 62518958 0.000000 + 1 gene_id "TPD52L2"; transcript_id "NM_199361:uc002yha.3";
+chr20 hg19_knownGene exon 62518917 62518958 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199361:uc002yha.3";
+chr20 hg19_knownGene CDS 62520543 62520591 0.000000 + 1 gene_id "TPD52L2"; transcript_id "NM_199361:uc002yha.3";
+chr20 hg19_knownGene exon 62520543 62520591 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199361:uc002yha.3";
+chr20 hg19_knownGene CDS 62521203 62521295 0.000000 + 0 gene_id "TPD52L2"; transcript_id "NM_199361:uc002yha.3";
+chr20 hg19_knownGene exon 62521203 62522898 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199361:uc002yha.3";
+chr20 hg19_knownGene CDS 62496719 62496737 0.000000 + 0 gene_id "TPD52L2"; transcript_id "NM_199363:uc002yhb.3";
+chr20 hg19_knownGene exon 62496581 62496737 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199363:uc002yhb.3";
+chr20 hg19_knownGene CDS 62500649 62500794 0.000000 + 2 gene_id "TPD52L2"; transcript_id "NM_199363:uc002yhb.3";
+chr20 hg19_knownGene exon 62500649 62500794 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199363:uc002yhb.3";
+chr20 hg19_knownGene CDS 62505021 62505169 0.000000 + 0 gene_id "TPD52L2"; transcript_id "NM_199363:uc002yhb.3";
+chr20 hg19_knownGene exon 62505021 62505169 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199363:uc002yhb.3";
+chr20 hg19_knownGene CDS 62514072 62514173 0.000000 + 1 gene_id "TPD52L2"; transcript_id "NM_199363:uc002yhb.3";
+chr20 hg19_knownGene exon 62514072 62514173 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199363:uc002yhb.3";
+chr20 hg19_knownGene CDS 62518917 62518958 0.000000 + 1 gene_id "TPD52L2"; transcript_id "NM_199363:uc002yhb.3";
+chr20 hg19_knownGene exon 62518917 62518958 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199363:uc002yhb.3";
+chr20 hg19_knownGene CDS 62520543 62520591 0.000000 + 1 gene_id "TPD52L2"; transcript_id "NM_199363:uc002yhb.3";
+chr20 hg19_knownGene exon 62520543 62520591 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199363:uc002yhb.3";
+chr20 hg19_knownGene CDS 62521203 62521295 0.000000 + 0 gene_id "TPD52L2"; transcript_id "NM_199363:uc002yhb.3";
+chr20 hg19_knownGene exon 62521203 62522898 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199363:uc002yhb.3";
+chr20 hg19_knownGene CDS 62496719 62496737 0.000000 + 0 gene_id "TPD52L2"; transcript_id "NM_001243892:uc011abl.2";
+chr20 hg19_knownGene exon 62496581 62496737 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_001243892:uc011abl.2";
+chr20 hg19_knownGene CDS 62500718 62500794 0.000000 + 2 gene_id "TPD52L2"; transcript_id "NM_001243892:uc011abl.2";
+chr20 hg19_knownGene exon 62500718 62500794 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_001243892:uc011abl.2";
+chr20 hg19_knownGene CDS 62505021 62505169 0.000000 + 0 gene_id "TPD52L2"; transcript_id "NM_001243892:uc011abl.2";
+chr20 hg19_knownGene exon 62505021 62505169 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_001243892:uc011abl.2";
+chr20 hg19_knownGene CDS 62514072 62514173 0.000000 + 1 gene_id "TPD52L2"; transcript_id "NM_001243892:uc011abl.2";
+chr20 hg19_knownGene exon 62514072 62514173 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_001243892:uc011abl.2";
+chr20 hg19_knownGene CDS 62520543 62520591 0.000000 + 1 gene_id "TPD52L2"; transcript_id "NM_001243892:uc011abl.2";
+chr20 hg19_knownGene exon 62520543 62520591 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_001243892:uc011abl.2";
+chr20 hg19_knownGene CDS 62521203 62521295 0.000000 + 0 gene_id "TPD52L2"; transcript_id "NM_001243892:uc011abl.2";
+chr20 hg19_knownGene exon 62521203 62522898 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_001243892:uc011abl.2";
+chr20 hg19_knownGene CDS 62496719 62496737 0.000000 + 0 gene_id "TPD52L2"; transcript_id "NM_003288:uc002yhc.3";
+chr20 hg19_knownGene exon 62496581 62496737 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_003288:uc002yhc.3";
+chr20 hg19_knownGene CDS 62500649 62500794 0.000000 + 2 gene_id "TPD52L2"; transcript_id "NM_003288:uc002yhc.3";
+chr20 hg19_knownGene exon 62500649 62500794 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_003288:uc002yhc.3";
+chr20 hg19_knownGene CDS 62505021 62505169 0.000000 + 0 gene_id "TPD52L2"; transcript_id "NM_003288:uc002yhc.3";
+chr20 hg19_knownGene exon 62505021 62505169 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_003288:uc002yhc.3";
+chr20 hg19_knownGene CDS 62507169 62507228 0.000000 + 1 gene_id "TPD52L2"; transcript_id "NM_003288:uc002yhc.3";
+chr20 hg19_knownGene exon 62507169 62507228 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_003288:uc002yhc.3";
+chr20 hg19_knownGene CDS 62514072 62514173 0.000000 + 1 gene_id "TPD52L2"; transcript_id "NM_003288:uc002yhc.3";
+chr20 hg19_knownGene exon 62514072 62514173 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_003288:uc002yhc.3";
+chr20 hg19_knownGene CDS 62520543 62520591 0.000000 + 1 gene_id "TPD52L2"; transcript_id "NM_003288:uc002yhc.3";
+chr20 hg19_knownGene exon 62520543 62520591 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_003288:uc002yhc.3";
+chr20 hg19_knownGene CDS 62521203 62521295 0.000000 + 0 gene_id "TPD52L2"; transcript_id "NM_003288:uc002yhc.3";
+chr20 hg19_knownGene exon 62521203 62522898 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_003288:uc002yhc.3";
+chr20 hg19_knownGene CDS 62496719 62496737 0.000000 + 0 gene_id "TPD52L2"; transcript_id "NM_199359:uc002yhd.3";
+chr20 hg19_knownGene exon 62496581 62496737 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199359:uc002yhd.3";
+chr20 hg19_knownGene CDS 62500649 62500794 0.000000 + 2 gene_id "TPD52L2"; transcript_id "NM_199359:uc002yhd.3";
+chr20 hg19_knownGene exon 62500649 62500794 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199359:uc002yhd.3";
+chr20 hg19_knownGene CDS 62505021 62505169 0.000000 + 0 gene_id "TPD52L2"; transcript_id "NM_199359:uc002yhd.3";
+chr20 hg19_knownGene exon 62505021 62505169 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199359:uc002yhd.3";
+chr20 hg19_knownGene CDS 62514072 62514173 0.000000 + 1 gene_id "TPD52L2"; transcript_id "NM_199359:uc002yhd.3";
+chr20 hg19_knownGene exon 62514072 62514173 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199359:uc002yhd.3";
+chr20 hg19_knownGene CDS 62520543 62520591 0.000000 + 1 gene_id "TPD52L2"; transcript_id "NM_199359:uc002yhd.3";
+chr20 hg19_knownGene exon 62520543 62520591 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199359:uc002yhd.3";
+chr20 hg19_knownGene CDS 62521203 62521295 0.000000 + 0 gene_id "TPD52L2"; transcript_id "NM_199359:uc002yhd.3";
+chr20 hg19_knownGene exon 62521203 62522898 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_199359:uc002yhd.3";
+chr20 hg19_knownGene CDS 62496719 62496737 0.000000 + 0 gene_id "TPD52L2"; transcript_id "NR_045090:uc021wgh.1";
+chr20 hg19_knownGene exon 62496581 62496737 0.000000 + . gene_id "TPD52L2"; transcript_id "NR_045090:uc021wgh.1";
+chr20 hg19_knownGene CDS 62500649 62500794 0.000000 + 2 gene_id "TPD52L2"; transcript_id "NR_045090:uc021wgh.1";
+chr20 hg19_knownGene exon 62500649 62500794 0.000000 + . gene_id "TPD52L2"; transcript_id "NR_045090:uc021wgh.1";
+chr20 hg19_knownGene CDS 62505021 62505169 0.000000 + 0 gene_id "TPD52L2"; transcript_id "NR_045090:uc021wgh.1";
+chr20 hg19_knownGene exon 62505021 62505169 0.000000 + . gene_id "TPD52L2"; transcript_id "NR_045090:uc021wgh.1";
+chr20 hg19_knownGene CDS 62507169 62507228 0.000000 + 1 gene_id "TPD52L2"; transcript_id "NR_045090:uc021wgh.1";
+chr20 hg19_knownGene exon 62507169 62507228 0.000000 + . gene_id "TPD52L2"; transcript_id "NR_045090:uc021wgh.1";
+chr20 hg19_knownGene CDS 62514103 62514169 0.000000 + 1 gene_id "TPD52L2"; transcript_id "NR_045090:uc021wgh.1";
+chr20 hg19_knownGene exon 62514103 62514173 0.000000 + . gene_id "TPD52L2"; transcript_id "NR_045090:uc021wgh.1";
+chr20 hg19_knownGene exon 62520543 62520591 0.000000 + . gene_id "TPD52L2"; transcript_id "NR_045090:uc021wgh.1";
+chr20 hg19_knownGene exon 62521203 62522898 0.000000 + . gene_id "TPD52L2"; transcript_id "NR_045090:uc021wgh.1";
+chr20 hg19_knownGene CDS 62496719 62496737 0.000000 + 0 gene_id "TPD52L2"; transcript_id "NM_001243891:uc021wgi.1";
+chr20 hg19_knownGene exon 62496581 62496737 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_001243891:uc021wgi.1";
+chr20 hg19_knownGene CDS 62500649 62500719 0.000000 + 2 gene_id "TPD52L2"; transcript_id "NM_001243891:uc021wgi.1";
+chr20 hg19_knownGene exon 62500649 62500719 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_001243891:uc021wgi.1";
+chr20 hg19_knownGene CDS 62505021 62505169 0.000000 + 0 gene_id "TPD52L2"; transcript_id "NM_001243891:uc021wgi.1";
+chr20 hg19_knownGene exon 62505021 62505169 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_001243891:uc021wgi.1";
+chr20 hg19_knownGene CDS 62507169 62507228 0.000000 + 1 gene_id "TPD52L2"; transcript_id "NM_001243891:uc021wgi.1";
+chr20 hg19_knownGene exon 62507169 62507228 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_001243891:uc021wgi.1";
+chr20 hg19_knownGene CDS 62514072 62514173 0.000000 + 1 gene_id "TPD52L2"; transcript_id "NM_001243891:uc021wgi.1";
+chr20 hg19_knownGene exon 62514072 62514173 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_001243891:uc021wgi.1";
+chr20 hg19_knownGene CDS 62520543 62520591 0.000000 + 1 gene_id "TPD52L2"; transcript_id "NM_001243891:uc021wgi.1";
+chr20 hg19_knownGene exon 62520543 62520591 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_001243891:uc021wgi.1";
+chr20 hg19_knownGene CDS 62521203 62521295 0.000000 + 0 gene_id "TPD52L2"; transcript_id "NM_001243891:uc021wgi.1";
+chr20 hg19_knownGene exon 62521203 62522898 0.000000 + . gene_id "TPD52L2"; transcript_id "NM_001243891:uc021wgi.1";
+chr20 hg19_knownGene exon 62550778 62551006 0.000000 + . gene_id "MIR941-1"; transcript_id "NR_040032:uc021wgk.1";
+chr20 hg19_knownGene exon 62551085 62551313 0.000000 + . gene_id "MIR941-3"; transcript_id "NR_030638:uc021wgl.1";
+chr20 hg19_knownGene exon 62526455 62526676 0.000000 + . gene_id "DNAJC5"; transcript_id "NM_025219:uc002yhf.3";
+chr20 hg19_knownGene CDS 62559699 62559805 0.000000 + 0 gene_id "DNAJC5"; transcript_id "NM_025219:uc002yhf.3";
+chr20 hg19_knownGene exon 62559688 62559805 0.000000 + . gene_id "DNAJC5"; transcript_id "NM_025219:uc002yhf.3";
+chr20 hg19_knownGene CDS 62560665 62560878 0.000000 + 1 gene_id "DNAJC5"; transcript_id "NM_025219:uc002yhf.3";
+chr20 hg19_knownGene exon 62560665 62560878 0.000000 + . gene_id "DNAJC5"; transcript_id "NM_025219:uc002yhf.3";
+chr20 hg19_knownGene CDS 62562204 62562375 0.000000 + 0 gene_id "DNAJC5"; transcript_id "NM_025219:uc002yhf.3";
+chr20 hg19_knownGene exon 62562204 62562375 0.000000 + . gene_id "DNAJC5"; transcript_id "NM_025219:uc002yhf.3";
+chr20 hg19_knownGene CDS 62562818 62562918 0.000000 + 2 gene_id "DNAJC5"; transcript_id "NM_025219:uc002yhf.3";
+chr20 hg19_knownGene exon 62562818 62567384 0.000000 + . gene_id "DNAJC5"; transcript_id "NM_025219:uc002yhf.3";
+chr20 hg19_knownGene exon 62550809 62551687 0.000000 + . gene_id "DNAJC5"; transcript_id "AK128776:uc002yhh.3";
+chr20 hg19_knownGene exon 62559688 62559805 0.000000 + . gene_id "DNAJC5"; transcript_id "AK128776:uc002yhh.3";
+chr20 hg19_knownGene exon 62560665 62560878 0.000000 + . gene_id "DNAJC5"; transcript_id "AK128776:uc002yhh.3";
+chr20 hg19_knownGene exon 62562204 62562375 0.000000 + . gene_id "DNAJC5"; transcript_id "AK128776:uc002yhh.3";
+chr20 hg19_knownGene exon 62562462 62562535 0.000000 + . gene_id "DNAJC5"; transcript_id "AK128776:uc002yhh.3";
+chr20 hg19_knownGene exon 62562818 62567384 0.000000 + . gene_id "DNAJC5"; transcript_id "AK128776:uc002yhh.3";
+chr20 hg19_knownGene exon 62572818 62572897 0.000000 - . gene_id "MIR1914"; transcript_id "NR_031735:uc021wgm.1";
+chr20 hg19_knownGene exon 62573984 62574079 0.000000 - . gene_id "MIR647"; transcript_id "NR_030377:uc021wgn.1";
+chr20 hg19_knownGene CDS 62571332 62571408 0.000000 - 2 gene_id "UCKL1"; transcript_id "NM_001193379:uc011abm.2";
+chr20 hg19_knownGene exon 62571182 62571408 0.000000 - . gene_id "UCKL1"; transcript_id "NM_001193379:uc011abm.2";
+chr20 hg19_knownGene CDS 62571503 62571659 0.000000 - 0 gene_id "UCKL1"; transcript_id "NM_001193379:uc011abm.2";
+chr20 hg19_knownGene exon 62571503 62571659 0.000000 - . gene_id "UCKL1"; transcript_id "NM_001193379:uc011abm.2";
+chr20 hg19_knownGene CDS 62571731 62571838 0.000000 - 0 gene_id "UCKL1"; transcript_id "NM_001193379:uc011abm.2";
+chr20 hg19_knownGene exon 62571731 62571838 0.000000 - . gene_id "UCKL1"; transcript_id "NM_001193379:uc011abm.2";
+chr20 hg19_knownGene CDS 62571947 62572069 0.000000 - 0 gene_id "UCKL1"; transcript_id "NM_001193379:uc011abm.2";
+chr20 hg19_knownGene exon 62571947 62572069 0.000000 - . gene_id "UCKL1"; transcript_id "NM_001193379:uc011abm.2";
+chr20 hg19_knownGene CDS 62572147 62572209 0.000000 - 0 gene_id "UCKL1"; transcript_id "NM_001193379:uc011abm.2";
+chr20 hg19_knownGene exon 62572147 62572209 0.000000 - . gene_id "UCKL1"; transcript_id "NM_001193379:uc011abm.2";
+chr20 hg19_knownGene CDS 62572303 62572396 0.000000 - 1 gene_id "UCKL1"; transcript_id "NM_001193379:uc011abm.2";
+chr20 hg19_knownGene exon 62572303 62572396 0.000000 - . gene_id "UCKL1"; transcript_id "NM_001193379:uc011abm.2";
+chr20 hg19_knownGene CDS 62572463 62572561 0.000000 - 1 gene_id "UCKL1"; transcript_id "NM_001193379:uc011abm.2";
+chr20 hg19_knownGene exon 62572463 62572561 0.000000 - . gene_id "UCKL1"; transcript_id "NM_001193379:uc011abm.2";
+chr20 hg19_knownGene CDS 62575006 62575022 0.000000 - 0 gene_id "UCKL1"; transcript_id "NM_001193379:uc011abm.2";
+chr20 hg19_knownGene exon 62575006 62575022 0.000000 - . gene_id "UCKL1"; transcript_id "NM_001193379:uc011abm.2";
+chr20 hg19_knownGene CDS 62575750 62575811 0.000000 - 2 gene_id "UCKL1"; transcript_id "NM_001193379:uc011abm.2";
+chr20 hg19_knownGene exon 62575750 62575811 0.000000 - . gene_id "UCKL1"; transcript_id "NM_001193379:uc011abm.2";
+chr20 hg19_knownGene CDS 62575898 62576087 0.000000 - 0 gene_id "UCKL1"; transcript_id "NM_001193379:uc011abm.2";
+chr20 hg19_knownGene exon 62575898 62576087 0.000000 - . gene_id "UCKL1"; transcript_id "NM_001193379:uc011abm.2";
+chr20 hg19_knownGene CDS 62577004 62577075 0.000000 - 0 gene_id "UCKL1"; transcript_id "NM_001193379:uc011abm.2";
+chr20 hg19_knownGene exon 62577004 62577075 0.000000 - . gene_id "UCKL1"; transcript_id "NM_001193379:uc011abm.2";
+chr20 hg19_knownGene CDS 62577158 62577328 0.000000 - 0 gene_id "UCKL1"; transcript_id "NM_001193379:uc011abm.2";
+chr20 hg19_knownGene exon 62577158 62577328 0.000000 - . gene_id "UCKL1"; transcript_id "NM_001193379:uc011abm.2";
+chr20 hg19_knownGene CDS 62577514 62577620 0.000000 - 2 gene_id "UCKL1"; transcript_id "NM_001193379:uc011abm.2";
+chr20 hg19_knownGene exon 62577514 62577620 0.000000 - . gene_id "UCKL1"; transcript_id "NM_001193379:uc011abm.2";
+chr20 hg19_knownGene CDS 62577806 62577996 0.000000 - 1 gene_id "UCKL1"; transcript_id "NM_001193379:uc011abm.2";
+chr20 hg19_knownGene exon 62577806 62577996 0.000000 - . gene_id "UCKL1"; transcript_id "NM_001193379:uc011abm.2";
+chr20 hg19_knownGene CDS 62582112 62582179 0.000000 - 0 gene_id "UCKL1"; transcript_id "NM_001193379:uc011abm.2";
+chr20 hg19_knownGene exon 62582112 62582527 0.000000 - . gene_id "UCKL1"; transcript_id "NM_001193379:uc011abm.2";
+chr20 hg19_knownGene CDS 62571332 62571408 0.000000 - 2 gene_id "UCKL1"; transcript_id "NM_017859:uc010gkn.3";
+chr20 hg19_knownGene exon 62571182 62571408 0.000000 - . gene_id "UCKL1"; transcript_id "NM_017859:uc010gkn.3";
+chr20 hg19_knownGene CDS 62571503 62571659 0.000000 - 0 gene_id "UCKL1"; transcript_id "NM_017859:uc010gkn.3";
+chr20 hg19_knownGene exon 62571503 62571659 0.000000 - . gene_id "UCKL1"; transcript_id "NM_017859:uc010gkn.3";
+chr20 hg19_knownGene CDS 62571731 62571838 0.000000 - 0 gene_id "UCKL1"; transcript_id "NM_017859:uc010gkn.3";
+chr20 hg19_knownGene exon 62571731 62571838 0.000000 - . gene_id "UCKL1"; transcript_id "NM_017859:uc010gkn.3";
+chr20 hg19_knownGene CDS 62571947 62572069 0.000000 - 0 gene_id "UCKL1"; transcript_id "NM_017859:uc010gkn.3";
+chr20 hg19_knownGene exon 62571947 62572069 0.000000 - . gene_id "UCKL1"; transcript_id "NM_017859:uc010gkn.3";
+chr20 hg19_knownGene CDS 62572147 62572209 0.000000 - 0 gene_id "UCKL1"; transcript_id "NM_017859:uc010gkn.3";
+chr20 hg19_knownGene exon 62572147 62572209 0.000000 - . gene_id "UCKL1"; transcript_id "NM_017859:uc010gkn.3";
+chr20 hg19_knownGene CDS 62572303 62572396 0.000000 - 1 gene_id "UCKL1"; transcript_id "NM_017859:uc010gkn.3";
+chr20 hg19_knownGene exon 62572303 62572396 0.000000 - . gene_id "UCKL1"; transcript_id "NM_017859:uc010gkn.3";
+chr20 hg19_knownGene CDS 62572463 62572561 0.000000 - 1 gene_id "UCKL1"; transcript_id "NM_017859:uc010gkn.3";
+chr20 hg19_knownGene exon 62572463 62572561 0.000000 - . gene_id "UCKL1"; transcript_id "NM_017859:uc010gkn.3";
+chr20 hg19_knownGene CDS 62575006 62575022 0.000000 - 0 gene_id "UCKL1"; transcript_id "NM_017859:uc010gkn.3";
+chr20 hg19_knownGene exon 62575006 62575022 0.000000 - . gene_id "UCKL1"; transcript_id "NM_017859:uc010gkn.3";
+chr20 hg19_knownGene CDS 62575750 62575811 0.000000 - 2 gene_id "UCKL1"; transcript_id "NM_017859:uc010gkn.3";
+chr20 hg19_knownGene exon 62575750 62575811 0.000000 - . gene_id "UCKL1"; transcript_id "NM_017859:uc010gkn.3";
+chr20 hg19_knownGene CDS 62575898 62576087 0.000000 - 0 gene_id "UCKL1"; transcript_id "NM_017859:uc010gkn.3";
+chr20 hg19_knownGene exon 62575898 62576087 0.000000 - . gene_id "UCKL1"; transcript_id "NM_017859:uc010gkn.3";
+chr20 hg19_knownGene CDS 62577004 62577075 0.000000 - 0 gene_id "UCKL1"; transcript_id "NM_017859:uc010gkn.3";
+chr20 hg19_knownGene exon 62577004 62577075 0.000000 - . gene_id "UCKL1"; transcript_id "NM_017859:uc010gkn.3";
+chr20 hg19_knownGene CDS 62577158 62577328 0.000000 - 0 gene_id "UCKL1"; transcript_id "NM_017859:uc010gkn.3";
+chr20 hg19_knownGene exon 62577158 62577328 0.000000 - . gene_id "UCKL1"; transcript_id "NM_017859:uc010gkn.3";
+chr20 hg19_knownGene CDS 62577514 62577620 0.000000 - 2 gene_id "UCKL1"; transcript_id "NM_017859:uc010gkn.3";
+chr20 hg19_knownGene exon 62577514 62577620 0.000000 - . gene_id "UCKL1"; transcript_id "NM_017859:uc010gkn.3";
+chr20 hg19_knownGene CDS 62577806 62577996 0.000000 - 1 gene_id "UCKL1"; transcript_id "NM_017859:uc010gkn.3";
+chr20 hg19_knownGene exon 62577806 62577996 0.000000 - . gene_id "UCKL1"; transcript_id "NM_017859:uc010gkn.3";
+chr20 hg19_knownGene CDS 62587613 62587725 0.000000 - 0 gene_id "UCKL1"; transcript_id "NM_017859:uc010gkn.3";
+chr20 hg19_knownGene exon 62587613 62587800 0.000000 - . gene_id "UCKL1"; transcript_id "NM_017859:uc010gkn.3";
+chr20 hg19_knownGene exon 62571182 62571408 0.000000 - . gene_id "UCKL1"; transcript_id "AJ605558:uc011abn.2";
+chr20 hg19_knownGene exon 62571503 62571659 0.000000 - . gene_id "UCKL1"; transcript_id "AJ605558:uc011abn.2";
+chr20 hg19_knownGene exon 62571731 62571838 0.000000 - . gene_id "UCKL1"; transcript_id "AJ605558:uc011abn.2";
+chr20 hg19_knownGene exon 62571947 62572069 0.000000 - . gene_id "UCKL1"; transcript_id "AJ605558:uc011abn.2";
+chr20 hg19_knownGene exon 62572170 62572209 0.000000 - . gene_id "UCKL1"; transcript_id "AJ605558:uc011abn.2";
+chr20 hg19_knownGene exon 62572303 62572396 0.000000 - . gene_id "UCKL1"; transcript_id "AJ605558:uc011abn.2";
+chr20 hg19_knownGene exon 62572463 62572561 0.000000 - . gene_id "UCKL1"; transcript_id "AJ605558:uc011abn.2";
+chr20 hg19_knownGene exon 62575006 62575022 0.000000 - . gene_id "UCKL1"; transcript_id "AJ605558:uc011abn.2";
+chr20 hg19_knownGene exon 62575750 62575811 0.000000 - . gene_id "UCKL1"; transcript_id "AJ605558:uc011abn.2";
+chr20 hg19_knownGene exon 62575898 62576087 0.000000 - . gene_id "UCKL1"; transcript_id "AJ605558:uc011abn.2";
+chr20 hg19_knownGene exon 62577004 62577075 0.000000 - . gene_id "UCKL1"; transcript_id "AJ605558:uc011abn.2";
+chr20 hg19_knownGene exon 62577158 62577328 0.000000 - . gene_id "UCKL1"; transcript_id "AJ605558:uc011abn.2";
+chr20 hg19_knownGene exon 62577514 62577620 0.000000 - . gene_id "UCKL1"; transcript_id "AJ605558:uc011abn.2";
+chr20 hg19_knownGene exon 62577806 62577996 0.000000 - . gene_id "UCKL1"; transcript_id "AJ605558:uc011abn.2";
+chr20 hg19_knownGene exon 62587613 62587800 0.000000 - . gene_id "UCKL1"; transcript_id "AJ605558:uc011abn.2";
+chr20 hg19_knownGene exon 62572303 62572396 0.000000 - . gene_id "UCKL1"; transcript_id "AK301602:uc011abo.2";
+chr20 hg19_knownGene exon 62572489 62572561 0.000000 - . gene_id "UCKL1"; transcript_id "AK301602:uc011abo.2";
+chr20 hg19_knownGene exon 62575006 62575269 0.000000 - . gene_id "UCKL1"; transcript_id "AK301602:uc011abo.2";
+chr20 hg19_knownGene exon 62575750 62575811 0.000000 - . gene_id "UCKL1"; transcript_id "AK301602:uc011abo.2";
+chr20 hg19_knownGene exon 62575898 62576087 0.000000 - . gene_id "UCKL1"; transcript_id "AK301602:uc011abo.2";
+chr20 hg19_knownGene exon 62577004 62577075 0.000000 - . gene_id "UCKL1"; transcript_id "AK301602:uc011abo.2";
+chr20 hg19_knownGene exon 62577158 62577267 0.000000 - . gene_id "UCKL1"; transcript_id "AK301602:uc011abo.2";
+chr20 hg19_knownGene exon 62577514 62577620 0.000000 - . gene_id "UCKL1"; transcript_id "AK301602:uc011abo.2";
+chr20 hg19_knownGene exon 62577806 62577996 0.000000 - . gene_id "UCKL1"; transcript_id "AK301602:uc011abo.2";
+chr20 hg19_knownGene exon 62587613 62587800 0.000000 - . gene_id "UCKL1"; transcript_id "AK301602:uc011abo.2";
+chr20 hg19_knownGene exon 62584737 62587828 0.000000 + . gene_id "UCKL1-AS1"; transcript_id "NR_027287:uc011abp.1";
+chr20 hg19_knownGene exon 62587860 62588338 0.000000 + . gene_id "UCKL1-AS1"; transcript_id "NR_027287:uc011abp.1";
+chr20 hg19_knownGene CDS 62591244 62591492 0.000000 - 0 gene_id "ZNF512B"; transcript_id "NM_020713:uc002yhl.1";
+chr20 hg19_knownGene exon 62588055 62591492 0.000000 - . gene_id "ZNF512B"; transcript_id "NM_020713:uc002yhl.1";
+chr20 hg19_knownGene CDS 62592662 62592760 0.000000 - 0 gene_id "ZNF512B"; transcript_id "NM_020713:uc002yhl.1";
+chr20 hg19_knownGene exon 62592662 62592760 0.000000 - . gene_id "ZNF512B"; transcript_id "NM_020713:uc002yhl.1";
+chr20 hg19_knownGene CDS 62593295 62593357 0.000000 - 0 gene_id "ZNF512B"; transcript_id "NM_020713:uc002yhl.1";
+chr20 hg19_knownGene exon 62593295 62593357 0.000000 - . gene_id "ZNF512B"; transcript_id "NM_020713:uc002yhl.1";
+chr20 hg19_knownGene CDS 62593626 62593727 0.000000 - 0 gene_id "ZNF512B"; transcript_id "NM_020713:uc002yhl.1";
+chr20 hg19_knownGene exon 62593626 62593727 0.000000 - . gene_id "ZNF512B"; transcript_id "NM_020713:uc002yhl.1";
+chr20 hg19_knownGene CDS 62593940 62594134 0.000000 - 0 gene_id "ZNF512B"; transcript_id "NM_020713:uc002yhl.1";
+chr20 hg19_knownGene exon 62593940 62594134 0.000000 - . gene_id "ZNF512B"; transcript_id "NM_020713:uc002yhl.1";
+chr20 hg19_knownGene CDS 62594448 62594618 0.000000 - 0 gene_id "ZNF512B"; transcript_id "NM_020713:uc002yhl.1";
+chr20 hg19_knownGene exon 62594448 62594618 0.000000 - . gene_id "ZNF512B"; transcript_id "NM_020713:uc002yhl.1";
+chr20 hg19_knownGene CDS 62594695 62594793 0.000000 - 0 gene_id "ZNF512B"; transcript_id "NM_020713:uc002yhl.1";
+chr20 hg19_knownGene exon 62594695 62594793 0.000000 - . gene_id "ZNF512B"; transcript_id "NM_020713:uc002yhl.1";
+chr20 hg19_knownGene CDS 62594971 62595063 0.000000 - 0 gene_id "ZNF512B"; transcript_id "NM_020713:uc002yhl.1";
+chr20 hg19_knownGene exon 62594971 62595063 0.000000 - . gene_id "ZNF512B"; transcript_id "NM_020713:uc002yhl.1";
+chr20 hg19_knownGene CDS 62595142 62595266 0.000000 - 2 gene_id "ZNF512B"; transcript_id "NM_020713:uc002yhl.1";
+chr20 hg19_knownGene exon 62595142 62595266 0.000000 - . gene_id "ZNF512B"; transcript_id "NM_020713:uc002yhl.1";
+chr20 hg19_knownGene CDS 62595424 62595570 0.000000 - 2 gene_id "ZNF512B"; transcript_id "NM_020713:uc002yhl.1";
+chr20 hg19_knownGene exon 62595424 62595570 0.000000 - . gene_id "ZNF512B"; transcript_id "NM_020713:uc002yhl.1";
+chr20 hg19_knownGene CDS 62595673 62595744 0.000000 - 2 gene_id "ZNF512B"; transcript_id "NM_020713:uc002yhl.1";
+chr20 hg19_knownGene exon 62595673 62595744 0.000000 - . gene_id "ZNF512B"; transcript_id "NM_020713:uc002yhl.1";
+chr20 hg19_knownGene CDS 62595843 62596069 0.000000 - 1 gene_id "ZNF512B"; transcript_id "NM_020713:uc002yhl.1";
+chr20 hg19_knownGene exon 62595843 62596069 0.000000 - . gene_id "ZNF512B"; transcript_id "NM_020713:uc002yhl.1";
+chr20 hg19_knownGene CDS 62597494 62598134 0.000000 - 0 gene_id "ZNF512B"; transcript_id "NM_020713:uc002yhl.1";
+chr20 hg19_knownGene exon 62597494 62598134 0.000000 - . gene_id "ZNF512B"; transcript_id "NM_020713:uc002yhl.1";
+chr20 hg19_knownGene CDS 62598229 62598357 0.000000 - 0 gene_id "ZNF512B"; transcript_id "NM_020713:uc002yhl.1";
+chr20 hg19_knownGene exon 62598229 62598357 0.000000 - . gene_id "ZNF512B"; transcript_id "NM_020713:uc002yhl.1";
+chr20 hg19_knownGene CDS 62598734 62598876 0.000000 - 2 gene_id "ZNF512B"; transcript_id "NM_020713:uc002yhl.1";
+chr20 hg19_knownGene exon 62598734 62598876 0.000000 - . gene_id "ZNF512B"; transcript_id "NM_020713:uc002yhl.1";
+chr20 hg19_knownGene CDS 62599183 62599303 0.000000 - 0 gene_id "ZNF512B"; transcript_id "NM_020713:uc002yhl.1";
+chr20 hg19_knownGene exon 62599183 62599305 0.000000 - . gene_id "ZNF512B"; transcript_id "NM_020713:uc002yhl.1";
+chr20 hg19_knownGene exon 62601167 62601218 0.000000 - . gene_id "ZNF512B"; transcript_id "NM_020713:uc002yhl.1";
+chr20 hg19_knownGene CDS 62606866 62606885 0.000000 - 2 gene_id "SAMD10"; transcript_id "NM_080621:uc002yhm.2";
+chr20 hg19_knownGene exon 62605466 62606885 0.000000 - . gene_id "SAMD10"; transcript_id "NM_080621:uc002yhm.2";
+chr20 hg19_knownGene CDS 62607045 62607185 0.000000 - 2 gene_id "SAMD10"; transcript_id "NM_080621:uc002yhm.2";
+chr20 hg19_knownGene exon 62607045 62607185 0.000000 - . gene_id "SAMD10"; transcript_id "NM_080621:uc002yhm.2";
+chr20 hg19_knownGene CDS 62608324 62608495 0.000000 - 0 gene_id "SAMD10"; transcript_id "NM_080621:uc002yhm.2";
+chr20 hg19_knownGene exon 62608324 62608495 0.000000 - . gene_id "SAMD10"; transcript_id "NM_080621:uc002yhm.2";
+chr20 hg19_knownGene CDS 62608578 62608759 0.000000 - 2 gene_id "SAMD10"; transcript_id "NM_080621:uc002yhm.2";
+chr20 hg19_knownGene exon 62608578 62608759 0.000000 - . gene_id "SAMD10"; transcript_id "NM_080621:uc002yhm.2";
+chr20 hg19_knownGene CDS 62610730 62610820 0.000000 - 0 gene_id "SAMD10"; transcript_id "NM_080621:uc002yhm.2";
+chr20 hg19_knownGene exon 62610730 62610995 0.000000 - . gene_id "SAMD10"; transcript_id "NM_080621:uc002yhm.2";
+chr20 hg19_knownGene exon 62605466 62606885 0.000000 - . gene_id "SAMD10"; transcript_id "BC041436:uc002yhn.2";
+chr20 hg19_knownGene exon 62607045 62607185 0.000000 - . gene_id "SAMD10"; transcript_id "BC041436:uc002yhn.2";
+chr20 hg19_knownGene exon 62608324 62608495 0.000000 - . gene_id "SAMD10"; transcript_id "BC041436:uc002yhn.2";
+chr20 hg19_knownGene exon 62608578 62608759 0.000000 - . gene_id "SAMD10"; transcript_id "BC041436:uc002yhn.2";
+chr20 hg19_knownGene exon 62611207 62611362 0.000000 - . gene_id "SAMD10"; transcript_id "BC041436:uc002yhn.2";
+chr20 hg19_knownGene CDS 62612599 62612669 0.000000 + 0 gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene exon 62612431 62612669 0.000000 + . gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene CDS 62614400 62614568 0.000000 + 1 gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene exon 62614400 62614568 0.000000 + . gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene CDS 62616260 62616378 0.000000 + 0 gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene exon 62616260 62616378 0.000000 + . gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene CDS 62624760 62624838 0.000000 + 1 gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene exon 62624760 62624838 0.000000 + . gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene CDS 62626269 62626445 0.000000 + 0 gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene exon 62626269 62626445 0.000000 + . gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene CDS 62626680 62626835 0.000000 + 0 gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene exon 62626680 62626835 0.000000 + . gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene CDS 62630398 62630492 0.000000 + 0 gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene exon 62630398 62630492 0.000000 + . gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene CDS 62630956 62631112 0.000000 + 1 gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene exon 62630956 62631112 0.000000 + . gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene CDS 62632430 62632592 0.000000 + 0 gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene exon 62632430 62632592 0.000000 + . gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene CDS 62641553 62641671 0.000000 + 2 gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene exon 62641553 62641671 0.000000 + . gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene CDS 62642638 62642856 0.000000 + 0 gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene exon 62642638 62642856 0.000000 + . gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene CDS 62648076 62648198 0.000000 + 0 gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene exon 62648076 62648198 0.000000 + . gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene CDS 62654110 62654231 0.000000 + 0 gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene exon 62654110 62654231 0.000000 + . gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene CDS 62655908 62656046 0.000000 + 1 gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene exon 62655908 62656046 0.000000 + . gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene CDS 62657292 62657411 0.000000 + 0 gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene exon 62657292 62657411 0.000000 + . gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene CDS 62658335 62658511 0.000000 + 0 gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene exon 62658335 62658511 0.000000 + . gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene CDS 62658956 62659089 0.000000 + 0 gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene exon 62658956 62659089 0.000000 + . gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene CDS 62659831 62659922 0.000000 + 1 gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene exon 62659831 62659922 0.000000 + . gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene CDS 62660730 62660844 0.000000 + 2 gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene exon 62660730 62660844 0.000000 + . gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene CDS 62663271 62663397 0.000000 + 1 gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene exon 62663271 62663397 0.000000 + . gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene CDS 62664194 62664343 0.000000 + 0 gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene exon 62664194 62664453 0.000000 + . gene_id "PRPF6"; transcript_id "NM_012469:uc002yho.3";
+chr20 hg19_knownGene CDS 62612599 62612669 0.000000 + 0 gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene exon 62612431 62612669 0.000000 + . gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene CDS 62614400 62614568 0.000000 + 1 gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene exon 62614400 62614568 0.000000 + . gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene CDS 62616260 62616378 0.000000 + 0 gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene exon 62616260 62616378 0.000000 + . gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene CDS 62624760 62624838 0.000000 + 1 gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene exon 62624760 62624838 0.000000 + . gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene CDS 62626269 62626445 0.000000 + 0 gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene exon 62626269 62626445 0.000000 + . gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene CDS 62626680 62626835 0.000000 + 0 gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene exon 62626680 62626835 0.000000 + . gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene CDS 62630398 62630492 0.000000 + 0 gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene exon 62630398 62630492 0.000000 + . gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene CDS 62630956 62631112 0.000000 + 1 gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene exon 62630956 62631112 0.000000 + . gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene CDS 62632430 62632592 0.000000 + 0 gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene exon 62632430 62632592 0.000000 + . gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene CDS 62641553 62641671 0.000000 + 2 gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene exon 62641553 62641671 0.000000 + . gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene CDS 62642638 62642856 0.000000 + 0 gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene exon 62642638 62642856 0.000000 + . gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene CDS 62648076 62648198 0.000000 + 0 gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene exon 62648076 62648198 0.000000 + . gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene CDS 62654110 62654231 0.000000 + 0 gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene exon 62654110 62654231 0.000000 + . gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene CDS 62655908 62656046 0.000000 + 1 gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene exon 62655908 62656046 0.000000 + . gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene CDS 62658335 62658511 0.000000 + 0 gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene exon 62658335 62658511 0.000000 + . gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene CDS 62658956 62659089 0.000000 + 0 gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene exon 62658956 62659089 0.000000 + . gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene CDS 62659831 62659922 0.000000 + 1 gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene exon 62659831 62659922 0.000000 + . gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene CDS 62660730 62660844 0.000000 + 2 gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene exon 62660730 62660844 0.000000 + . gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene CDS 62663271 62663397 0.000000 + 1 gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene exon 62663271 62663397 0.000000 + . gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene CDS 62664194 62664343 0.000000 + 0 gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene exon 62664194 62664453 0.000000 + . gene_id "PRPF6"; transcript_id "AK001554:uc002yhp.3";
+chr20 hg19_knownGene exon 62665697 62667400 0.000000 + . gene_id "LINC00176"; transcript_id "NR_027686:uc002yhq.3";
+chr20 hg19_knownGene exon 62667490 62669555 0.000000 + . gene_id "LINC00176"; transcript_id "NR_027686:uc002yhq.3";
+chr20 hg19_knownGene exon 62669649 62669801 0.000000 + . gene_id "LINC00176"; transcript_id "NR_027686:uc002yhq.3";
+chr20 hg19_knownGene exon 62669975 62671315 0.000000 + . gene_id "LINC00176"; transcript_id "NR_027686:uc002yhq.3";
+chr20 hg19_knownGene exon 62665697 62667400 0.000000 + . gene_id "LINC00176"; transcript_id "NR_027687:uc011abq.2";
+chr20 hg19_knownGene exon 62667490 62669555 0.000000 + . gene_id "LINC00176"; transcript_id "NR_027687:uc011abq.2";
+chr20 hg19_knownGene exon 62669852 62671315 0.000000 + . gene_id "LINC00176"; transcript_id "NR_027687:uc011abq.2";
+chr20 hg19_knownGene exon 62667490 62669555 0.000000 + . gene_id "LINC00176"; transcript_id "AK310631:uc010gko.3";
+chr20 hg19_knownGene exon 62669975 62671315 0.000000 + . gene_id "LINC00176"; transcript_id "AK310631:uc010gko.3";
+chr20 hg19_knownGene CDS 62679522 62680315 0.000000 - 2 gene_id "SOX18"; transcript_id "NM_018419:uc002yhs.3";
+chr20 hg19_knownGene exon 62679079 62680315 0.000000 - . gene_id "SOX18"; transcript_id "NM_018419:uc002yhs.3";
+chr20 hg19_knownGene CDS 62680512 62680869 0.000000 - 0 gene_id "SOX18"; transcript_id "NM_018419:uc002yhs.3";
+chr20 hg19_knownGene exon 62680512 62680979 0.000000 - . gene_id "SOX18"; transcript_id "NM_018419:uc002yhs.3";
+chr20 hg19_knownGene exon 62694544 62695476 0.000000 + . gene_id "BC056407"; transcript_id "BC056407:uc021wgr.1";
+chr20 hg19_knownGene exon 62688175 62688230 0.000000 + . gene_id "TCEA2"; transcript_id "BC098585:uc021wgo.1";
+chr20 hg19_knownGene exon 62688325 62689008 0.000000 + . gene_id "TCEA2"; transcript_id "BC098585:uc021wgo.1";
+chr20 hg19_knownGene exon 62689326 62691066 0.000000 + . gene_id "TCEA2"; transcript_id "BC098585:uc021wgo.1";
+chr20 hg19_knownGene exon 62691270 62691488 0.000000 + . gene_id "TCEA2"; transcript_id "BC098585:uc021wgo.1";
+chr20 hg19_knownGene exon 62693783 62693856 0.000000 + . gene_id "TCEA2"; transcript_id "BC098585:uc021wgo.1";
+chr20 hg19_knownGene exon 62697829 62697891 0.000000 + . gene_id "TCEA2"; transcript_id "BC098585:uc021wgo.1";
+chr20 hg19_knownGene exon 62698268 62698373 0.000000 + . gene_id "TCEA2"; transcript_id "BC098585:uc021wgo.1";
+chr20 hg19_knownGene exon 62699400 62699487 0.000000 + . gene_id "TCEA2"; transcript_id "BC098585:uc021wgo.1";
+chr20 hg19_knownGene exon 62700714 62700844 0.000000 + . gene_id "TCEA2"; transcript_id "BC098585:uc021wgo.1";
+chr20 hg19_knownGene exon 62701118 62701174 0.000000 + . gene_id "TCEA2"; transcript_id "BC098585:uc021wgo.1";
+chr20 hg19_knownGene CDS 62697838 62697891 0.000000 + 0 gene_id "TCEA2"; transcript_id "AJ844626:uc010gku.2";
+chr20 hg19_knownGene exon 62697829 62697891 0.000000 + . gene_id "TCEA2"; transcript_id "AJ844626:uc010gku.2";
+chr20 hg19_knownGene CDS 62698268 62698373 0.000000 + 0 gene_id "TCEA2"; transcript_id "AJ844626:uc010gku.2";
+chr20 hg19_knownGene exon 62698268 62698373 0.000000 + . gene_id "TCEA2"; transcript_id "AJ844626:uc010gku.2";
+chr20 hg19_knownGene CDS 62700714 62700820 0.000000 + 2 gene_id "TCEA2"; transcript_id "AJ844626:uc010gku.2";
+chr20 hg19_knownGene exon 62700714 62700844 0.000000 + . gene_id "TCEA2"; transcript_id "AJ844626:uc010gku.2";
+chr20 hg19_knownGene exon 62701118 62701174 0.000000 + . gene_id "TCEA2"; transcript_id "AJ844626:uc010gku.2";
+chr20 hg19_knownGene exon 62688439 62689004 0.000000 + . gene_id "TCEA2"; transcript_id "NM_198723:uc021wgp.1";
+chr20 hg19_knownGene exon 62693783 62693856 0.000000 + . gene_id "TCEA2"; transcript_id "NM_198723:uc021wgp.1";
+chr20 hg19_knownGene CDS 62697838 62697891 0.000000 + 0 gene_id "TCEA2"; transcript_id "NM_198723:uc021wgp.1";
+chr20 hg19_knownGene exon 62697829 62697891 0.000000 + . gene_id "TCEA2"; transcript_id "NM_198723:uc021wgp.1";
+chr20 hg19_knownGene CDS 62698268 62698373 0.000000 + 0 gene_id "TCEA2"; transcript_id "NM_198723:uc021wgp.1";
+chr20 hg19_knownGene exon 62698268 62698373 0.000000 + . gene_id "TCEA2"; transcript_id "NM_198723:uc021wgp.1";
+chr20 hg19_knownGene CDS 62699400 62699487 0.000000 + 2 gene_id "TCEA2"; transcript_id "NM_198723:uc021wgp.1";
+chr20 hg19_knownGene exon 62699400 62699487 0.000000 + . gene_id "TCEA2"; transcript_id "NM_198723:uc021wgp.1";
+chr20 hg19_knownGene CDS 62700714 62700844 0.000000 + 1 gene_id "TCEA2"; transcript_id "NM_198723:uc021wgp.1";
+chr20 hg19_knownGene exon 62700714 62700844 0.000000 + . gene_id "TCEA2"; transcript_id "NM_198723:uc021wgp.1";
+chr20 hg19_knownGene CDS 62701118 62701174 0.000000 + 2 gene_id "TCEA2"; transcript_id "NM_198723:uc021wgp.1";
+chr20 hg19_knownGene exon 62701118 62701174 0.000000 + . gene_id "TCEA2"; transcript_id "NM_198723:uc021wgp.1";
+chr20 hg19_knownGene CDS 62701613 62701767 0.000000 + 2 gene_id "TCEA2"; transcript_id "NM_198723:uc021wgp.1";
+chr20 hg19_knownGene exon 62701613 62701767 0.000000 + . gene_id "TCEA2"; transcript_id "NM_198723:uc021wgp.1";
+chr20 hg19_knownGene CDS 62701842 62701988 0.000000 + 0 gene_id "TCEA2"; transcript_id "NM_198723:uc021wgp.1";
+chr20 hg19_knownGene exon 62701842 62701988 0.000000 + . gene_id "TCEA2"; transcript_id "NM_198723:uc021wgp.1";
+chr20 hg19_knownGene CDS 62703223 62703294 0.000000 + 0 gene_id "TCEA2"; transcript_id "NM_198723:uc021wgp.1";
+chr20 hg19_knownGene exon 62703223 62703294 0.000000 + . gene_id "TCEA2"; transcript_id "NM_198723:uc021wgp.1";
+chr20 hg19_knownGene CDS 62703525 62703530 0.000000 + 0 gene_id "TCEA2"; transcript_id "NM_198723:uc021wgp.1";
+chr20 hg19_knownGene exon 62703525 62703700 0.000000 + . gene_id "TCEA2"; transcript_id "NM_198723:uc021wgp.1";
+chr20 hg19_knownGene CDS 62694666 62694737 0.000000 + 0 gene_id "TCEA2"; transcript_id "NM_003195:uc021wgq.1";
+chr20 hg19_knownGene exon 62694010 62694737 0.000000 + . gene_id "TCEA2"; transcript_id "NM_003195:uc021wgq.1";
+chr20 hg19_knownGene CDS 62697829 62697891 0.000000 + 0 gene_id "TCEA2"; transcript_id "NM_003195:uc021wgq.1";
+chr20 hg19_knownGene exon 62697829 62697891 0.000000 + . gene_id "TCEA2"; transcript_id "NM_003195:uc021wgq.1";
+chr20 hg19_knownGene CDS 62698268 62698373 0.000000 + 0 gene_id "TCEA2"; transcript_id "NM_003195:uc021wgq.1";
+chr20 hg19_knownGene exon 62698268 62698373 0.000000 + . gene_id "TCEA2"; transcript_id "NM_003195:uc021wgq.1";
+chr20 hg19_knownGene CDS 62699400 62699487 0.000000 + 2 gene_id "TCEA2"; transcript_id "NM_003195:uc021wgq.1";
+chr20 hg19_knownGene exon 62699400 62699487 0.000000 + . gene_id "TCEA2"; transcript_id "NM_003195:uc021wgq.1";
+chr20 hg19_knownGene CDS 62700714 62700844 0.000000 + 1 gene_id "TCEA2"; transcript_id "NM_003195:uc021wgq.1";
+chr20 hg19_knownGene exon 62700714 62700844 0.000000 + . gene_id "TCEA2"; transcript_id "NM_003195:uc021wgq.1";
+chr20 hg19_knownGene CDS 62701118 62701174 0.000000 + 2 gene_id "TCEA2"; transcript_id "NM_003195:uc021wgq.1";
+chr20 hg19_knownGene exon 62701118 62701174 0.000000 + . gene_id "TCEA2"; transcript_id "NM_003195:uc021wgq.1";
+chr20 hg19_knownGene CDS 62701613 62701767 0.000000 + 2 gene_id "TCEA2"; transcript_id "NM_003195:uc021wgq.1";
+chr20 hg19_knownGene exon 62701613 62701767 0.000000 + . gene_id "TCEA2"; transcript_id "NM_003195:uc021wgq.1";
+chr20 hg19_knownGene CDS 62701842 62701988 0.000000 + 0 gene_id "TCEA2"; transcript_id "NM_003195:uc021wgq.1";
+chr20 hg19_knownGene exon 62701842 62701988 0.000000 + . gene_id "TCEA2"; transcript_id "NM_003195:uc021wgq.1";
+chr20 hg19_knownGene CDS 62703223 62703294 0.000000 + 0 gene_id "TCEA2"; transcript_id "NM_003195:uc021wgq.1";
+chr20 hg19_knownGene exon 62703223 62703294 0.000000 + . gene_id "TCEA2"; transcript_id "NM_003195:uc021wgq.1";
+chr20 hg19_knownGene CDS 62703525 62703530 0.000000 + 0 gene_id "TCEA2"; transcript_id "NM_003195:uc021wgq.1";
+chr20 hg19_knownGene exon 62703525 62703700 0.000000 + . gene_id "TCEA2"; transcript_id "NM_003195:uc021wgq.1";
+chr20 hg19_knownGene CDS 62705209 62705397 0.000000 - 0 gene_id "RGS19"; transcript_id "NM_005873:uc002yhy.3";
+chr20 hg19_knownGene exon 62704535 62705397 0.000000 - . gene_id "RGS19"; transcript_id "NM_005873:uc002yhy.3";
+chr20 hg19_knownGene CDS 62705497 62705731 0.000000 - 1 gene_id "RGS19"; transcript_id "NM_005873:uc002yhy.3";
+chr20 hg19_knownGene exon 62705497 62705731 0.000000 - . gene_id "RGS19"; transcript_id "NM_005873:uc002yhy.3";
+chr20 hg19_knownGene CDS 62705820 62705894 0.000000 - 1 gene_id "RGS19"; transcript_id "NM_005873:uc002yhy.3";
+chr20 hg19_knownGene exon 62705820 62705894 0.000000 - . gene_id "RGS19"; transcript_id "NM_005873:uc002yhy.3";
+chr20 hg19_knownGene CDS 62707878 62707999 0.000000 - 0 gene_id "RGS19"; transcript_id "NM_005873:uc002yhy.3";
+chr20 hg19_knownGene exon 62707878 62707999 0.000000 - . gene_id "RGS19"; transcript_id "NM_005873:uc002yhy.3";
+chr20 hg19_knownGene CDS 62708210 62708239 0.000000 - 0 gene_id "RGS19"; transcript_id "NM_005873:uc002yhy.3";
+chr20 hg19_knownGene exon 62708210 62708307 0.000000 - . gene_id "RGS19"; transcript_id "NM_005873:uc002yhy.3";
+chr20 hg19_knownGene exon 62710647 62710845 0.000000 - . gene_id "RGS19"; transcript_id "NM_005873:uc002yhy.3";
+chr20 hg19_knownGene CDS 62705209 62705397 0.000000 - 0 gene_id "RGS19"; transcript_id "AK298240:uc002yhz.3";
+chr20 hg19_knownGene exon 62704535 62705397 0.000000 - . gene_id "RGS19"; transcript_id "AK298240:uc002yhz.3";
+chr20 hg19_knownGene CDS 62705497 62705731 0.000000 - 1 gene_id "RGS19"; transcript_id "AK298240:uc002yhz.3";
+chr20 hg19_knownGene exon 62705497 62705731 0.000000 - . gene_id "RGS19"; transcript_id "AK298240:uc002yhz.3";
+chr20 hg19_knownGene CDS 62705820 62705894 0.000000 - 1 gene_id "RGS19"; transcript_id "AK298240:uc002yhz.3";
+chr20 hg19_knownGene exon 62705820 62705894 0.000000 - . gene_id "RGS19"; transcript_id "AK298240:uc002yhz.3";
+chr20 hg19_knownGene CDS 62707878 62707963 0.000000 - 0 gene_id "RGS19"; transcript_id "AK298240:uc002yhz.3";
+chr20 hg19_knownGene exon 62707878 62707999 0.000000 - . gene_id "RGS19"; transcript_id "AK298240:uc002yhz.3";
+chr20 hg19_knownGene exon 62710647 62710845 0.000000 - . gene_id "RGS19"; transcript_id "AK298240:uc002yhz.3";
+chr20 hg19_knownGene CDS 62705209 62705397 0.000000 - 0 gene_id "RGS19"; transcript_id "NM_001039467:uc002yib.3";
+chr20 hg19_knownGene exon 62704535 62705397 0.000000 - . gene_id "RGS19"; transcript_id "NM_001039467:uc002yib.3";
+chr20 hg19_knownGene CDS 62705497 62705731 0.000000 - 1 gene_id "RGS19"; transcript_id "NM_001039467:uc002yib.3";
+chr20 hg19_knownGene exon 62705497 62705731 0.000000 - . gene_id "RGS19"; transcript_id "NM_001039467:uc002yib.3";
+chr20 hg19_knownGene CDS 62705820 62705894 0.000000 - 1 gene_id "RGS19"; transcript_id "NM_001039467:uc002yib.3";
+chr20 hg19_knownGene exon 62705820 62705894 0.000000 - . gene_id "RGS19"; transcript_id "NM_001039467:uc002yib.3";
+chr20 hg19_knownGene CDS 62707878 62707999 0.000000 - 0 gene_id "RGS19"; transcript_id "NM_001039467:uc002yib.3";
+chr20 hg19_knownGene exon 62707878 62707999 0.000000 - . gene_id "RGS19"; transcript_id "NM_001039467:uc002yib.3";
+chr20 hg19_knownGene CDS 62708210 62708239 0.000000 - 0 gene_id "RGS19"; transcript_id "NM_001039467:uc002yib.3";
+chr20 hg19_knownGene exon 62708210 62708307 0.000000 - . gene_id "RGS19"; transcript_id "NM_001039467:uc002yib.3";
+chr20 hg19_knownGene exon 62711226 62711324 0.000000 - . gene_id "RGS19"; transcript_id "NM_001039467:uc002yib.3";
+chr20 hg19_knownGene CDS 62714741 62715058 0.000000 - 0 gene_id "C20orf201"; transcript_id "NM_001007125:uc002yie.1";
+chr20 hg19_knownGene exon 62714733 62715058 0.000000 - . gene_id "C20orf201"; transcript_id "NM_001007125:uc002yie.1";
+chr20 hg19_knownGene CDS 62715171 62715572 0.000000 - 0 gene_id "C20orf201"; transcript_id "NM_001007125:uc002yie.1";
+chr20 hg19_knownGene exon 62715171 62715712 0.000000 - . gene_id "C20orf201"; transcript_id "NM_001007125:uc002yie.1";
+chr20 hg19_knownGene exon 62711471 62711705 0.000000 + . gene_id "OPRL1"; transcript_id "NM_182647:uc002yic.3";
+chr20 hg19_knownGene exon 62723319 62723469 0.000000 + . gene_id "OPRL1"; transcript_id "NM_182647:uc002yic.3";
+chr20 hg19_knownGene CDS 62724074 62724306 0.000000 + 0 gene_id "OPRL1"; transcript_id "NM_182647:uc002yic.3";
+chr20 hg19_knownGene exon 62724041 62724306 0.000000 + . gene_id "OPRL1"; transcript_id "NM_182647:uc002yic.3";
+chr20 hg19_knownGene CDS 62729155 62729510 0.000000 + 1 gene_id "OPRL1"; transcript_id "NM_182647:uc002yic.3";
+chr20 hg19_knownGene exon 62729155 62729510 0.000000 + . gene_id "OPRL1"; transcript_id "NM_182647:uc002yic.3";
+chr20 hg19_knownGene CDS 62729629 62730149 0.000000 + 2 gene_id "OPRL1"; transcript_id "NM_182647:uc002yic.3";
+chr20 hg19_knownGene exon 62729629 62731996 0.000000 + . gene_id "OPRL1"; transcript_id "NM_182647:uc002yic.3";
+chr20 hg19_knownGene exon 62711471 62711705 0.000000 + . gene_id "OPRL1"; transcript_id "NM_000913:uc002yid.3";
+chr20 hg19_knownGene CDS 62724074 62724306 0.000000 + 0 gene_id "OPRL1"; transcript_id "NM_000913:uc002yid.3";
+chr20 hg19_knownGene exon 62724041 62724306 0.000000 + . gene_id "OPRL1"; transcript_id "NM_000913:uc002yid.3";
+chr20 hg19_knownGene CDS 62729155 62729510 0.000000 + 1 gene_id "OPRL1"; transcript_id "NM_000913:uc002yid.3";
+chr20 hg19_knownGene exon 62729155 62729510 0.000000 + . gene_id "OPRL1"; transcript_id "NM_000913:uc002yid.3";
+chr20 hg19_knownGene CDS 62729629 62730149 0.000000 + 2 gene_id "OPRL1"; transcript_id "NM_000913:uc002yid.3";
+chr20 hg19_knownGene exon 62729629 62731996 0.000000 + . gene_id "OPRL1"; transcript_id "NM_000913:uc002yid.3";
+chr20 hg19_knownGene exon 62716369 62716501 0.000000 + . gene_id "OPRL1"; transcript_id "NM_001200019:uc021wgs.1";
+chr20 hg19_knownGene exon 62717858 62717952 0.000000 + . gene_id "OPRL1"; transcript_id "NM_001200019:uc021wgs.1";
+chr20 hg19_knownGene exon 62723319 62723469 0.000000 + . gene_id "OPRL1"; transcript_id "NM_001200019:uc021wgs.1";
+chr20 hg19_knownGene CDS 62724074 62724306 0.000000 + 0 gene_id "OPRL1"; transcript_id "NM_001200019:uc021wgs.1";
+chr20 hg19_knownGene exon 62724041 62724306 0.000000 + . gene_id "OPRL1"; transcript_id "NM_001200019:uc021wgs.1";
+chr20 hg19_knownGene CDS 62729155 62729510 0.000000 + 1 gene_id "OPRL1"; transcript_id "NM_001200019:uc021wgs.1";
+chr20 hg19_knownGene exon 62729155 62729510 0.000000 + . gene_id "OPRL1"; transcript_id "NM_001200019:uc021wgs.1";
+chr20 hg19_knownGene CDS 62729629 62730149 0.000000 + 2 gene_id "OPRL1"; transcript_id "NM_001200019:uc021wgs.1";
+chr20 hg19_knownGene exon 62729629 62731996 0.000000 + . gene_id "OPRL1"; transcript_id "NM_001200019:uc021wgs.1";
+chr20 hg19_knownGene CDS 62724074 62724291 0.000000 + 0 gene_id "OPRL1"; transcript_id "AF126470:uc002yif.4";
+chr20 hg19_knownGene exon 62724041 62724291 0.000000 + . gene_id "OPRL1"; transcript_id "AF126470:uc002yif.4";
+chr20 hg19_knownGene CDS 62729155 62729510 0.000000 + 1 gene_id "OPRL1"; transcript_id "AF126470:uc002yif.4";
+chr20 hg19_knownGene exon 62729155 62729510 0.000000 + . gene_id "OPRL1"; transcript_id "AF126470:uc002yif.4";
+chr20 hg19_knownGene CDS 62729629 62730149 0.000000 + 2 gene_id "OPRL1"; transcript_id "AF126470:uc002yif.4";
+chr20 hg19_knownGene exon 62729629 62731996 0.000000 + . gene_id "OPRL1"; transcript_id "AF126470:uc002yif.4";
+chr20 hg19_knownGene CDS 62737186 62738184 0.000000 - 0 gene_id "NPBWR2"; transcript_id "NM_005286:uc011abt.2";
+chr20 hg19_knownGene exon 62737183 62738184 0.000000 - . gene_id "NPBWR2"; transcript_id "NM_005286:uc011abt.2";
+chr20 hg19_knownGene exon 62783144 62783263 0.000000 + . gene_id "MYT1"; transcript_id "BC062313:uc002yih.3";
+chr20 hg19_knownGene exon 62821416 62821513 0.000000 + . gene_id "MYT1"; transcript_id "BC062313:uc002yih.3";
+chr20 hg19_knownGene CDS 62830215 62830269 0.000000 + 0 gene_id "MYT1"; transcript_id "BC062313:uc002yih.3";
+chr20 hg19_knownGene exon 62830215 62830269 0.000000 + . gene_id "MYT1"; transcript_id "BC062313:uc002yih.3";
+chr20 hg19_knownGene CDS 62831245 62831275 0.000000 + 2 gene_id "MYT1"; transcript_id "BC062313:uc002yih.3";
+chr20 hg19_knownGene exon 62831245 62831275 0.000000 + . gene_id "MYT1"; transcript_id "BC062313:uc002yih.3";
+chr20 hg19_knownGene CDS 62836388 62836450 0.000000 + 1 gene_id "MYT1"; transcript_id "BC062313:uc002yih.3";
+chr20 hg19_knownGene exon 62836388 62836450 0.000000 + . gene_id "MYT1"; transcript_id "BC062313:uc002yih.3";
+chr20 hg19_knownGene CDS 62836906 62837153 0.000000 + 1 gene_id "MYT1"; transcript_id "BC062313:uc002yih.3";
+chr20 hg19_knownGene exon 62836906 62837153 0.000000 + . gene_id "MYT1"; transcript_id "BC062313:uc002yih.3";
+chr20 hg19_knownGene CDS 62842559 62842693 0.000000 + 2 gene_id "MYT1"; transcript_id "BC062313:uc002yih.3";
+chr20 hg19_knownGene exon 62842559 62842693 0.000000 + . gene_id "MYT1"; transcript_id "BC062313:uc002yih.3";
+chr20 hg19_knownGene CDS 62843401 62843491 0.000000 + 2 gene_id "MYT1"; transcript_id "BC062313:uc002yih.3";
+chr20 hg19_knownGene exon 62843401 62843491 0.000000 + . gene_id "MYT1"; transcript_id "BC062313:uc002yih.3";
+chr20 hg19_knownGene CDS 62844887 62845000 0.000000 + 1 gene_id "MYT1"; transcript_id "BC062313:uc002yih.3";
+chr20 hg19_knownGene exon 62844887 62845000 0.000000 + . gene_id "MYT1"; transcript_id "BC062313:uc002yih.3";
+chr20 hg19_knownGene CDS 62848420 62848634 0.000000 + 1 gene_id "MYT1"; transcript_id "BC062313:uc002yih.3";
+chr20 hg19_knownGene exon 62848420 62848634 0.000000 + . gene_id "MYT1"; transcript_id "BC062313:uc002yih.3";
+chr20 hg19_knownGene CDS 62850264 62850388 0.000000 + 2 gene_id "MYT1"; transcript_id "BC062313:uc002yih.3";
+chr20 hg19_knownGene exon 62850264 62850388 0.000000 + . gene_id "MYT1"; transcript_id "BC062313:uc002yih.3";
+chr20 hg19_knownGene CDS 62851066 62851335 0.000000 + 0 gene_id "MYT1"; transcript_id "BC062313:uc002yih.3";
+chr20 hg19_knownGene exon 62851066 62851335 0.000000 + . gene_id "MYT1"; transcript_id "BC062313:uc002yih.3";
+chr20 hg19_knownGene CDS 62853246 62853400 0.000000 + 0 gene_id "MYT1"; transcript_id "BC062313:uc002yih.3";
+chr20 hg19_knownGene exon 62853246 62853400 0.000000 + . gene_id "MYT1"; transcript_id "BC062313:uc002yih.3";
+chr20 hg19_knownGene CDS 62854464 62854526 0.000000 + 1 gene_id "MYT1"; transcript_id "BC062313:uc002yih.3";
+chr20 hg19_knownGene exon 62854464 62854526 0.000000 + . gene_id "MYT1"; transcript_id "BC062313:uc002yih.3";
+chr20 hg19_knownGene CDS 62858768 62858830 0.000000 + 1 gene_id "MYT1"; transcript_id "BC062313:uc002yih.3";
+chr20 hg19_knownGene exon 62858768 62858830 0.000000 + . gene_id "MYT1"; transcript_id "BC062313:uc002yih.3";
+chr20 hg19_knownGene CDS 62859241 62859385 0.000000 + 1 gene_id "MYT1"; transcript_id "BC062313:uc002yih.3";
+chr20 hg19_knownGene exon 62859241 62859455 0.000000 + . gene_id "MYT1"; transcript_id "BC062313:uc002yih.3";
+chr20 hg19_knownGene exon 62795827 62796092 0.000000 + . gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene exon 62821416 62821513 0.000000 + . gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene CDS 62830215 62830269 0.000000 + 0 gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene exon 62830215 62830269 0.000000 + . gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene CDS 62831245 62831275 0.000000 + 2 gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene exon 62831245 62831275 0.000000 + . gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene CDS 62836388 62836450 0.000000 + 1 gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene exon 62836388 62836450 0.000000 + . gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene CDS 62836906 62837153 0.000000 + 1 gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene exon 62836906 62837153 0.000000 + . gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene CDS 62838947 62839840 0.000000 + 2 gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene exon 62838947 62839840 0.000000 + . gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene CDS 62842559 62842693 0.000000 + 2 gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene exon 62842559 62842693 0.000000 + . gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene CDS 62843401 62843491 0.000000 + 2 gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene exon 62843401 62843491 0.000000 + . gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene CDS 62844887 62845000 0.000000 + 1 gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene exon 62844887 62845000 0.000000 + . gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene CDS 62848420 62848634 0.000000 + 1 gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene exon 62848420 62848634 0.000000 + . gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene CDS 62850264 62850388 0.000000 + 2 gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene exon 62850264 62850388 0.000000 + . gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene CDS 62851066 62851335 0.000000 + 0 gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene exon 62851066 62851335 0.000000 + . gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene CDS 62853246 62853400 0.000000 + 0 gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene exon 62853246 62853400 0.000000 + . gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene CDS 62854464 62854526 0.000000 + 1 gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene exon 62854464 62854526 0.000000 + . gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene CDS 62854644 62854712 0.000000 + 1 gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene exon 62854644 62854712 0.000000 + . gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene CDS 62858768 62858830 0.000000 + 1 gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene exon 62858768 62858830 0.000000 + . gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene CDS 62859241 62859324 0.000000 + 1 gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene exon 62859241 62859324 0.000000 + . gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene CDS 62863517 62863738 0.000000 + 1 gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene exon 62863517 62863738 0.000000 + . gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene CDS 62867908 62867999 0.000000 + 1 gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene exon 62867908 62867999 0.000000 + . gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene CDS 62868640 62868743 0.000000 + 2 gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene exon 62868640 62868743 0.000000 + . gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene CDS 62871113 62871256 0.000000 + 0 gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene exon 62871113 62871256 0.000000 + . gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene CDS 62871673 62871798 0.000000 + 0 gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene exon 62871673 62873606 0.000000 + . gene_id "MYT1"; transcript_id "NM_004535:uc002yii.3";
+chr20 hg19_knownGene CDS 62839654 62839840 0.000000 + 0 gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene exon 62838947 62839840 0.000000 + . gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene CDS 62842559 62842693 0.000000 + 2 gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene exon 62842559 62842693 0.000000 + . gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene CDS 62843401 62843491 0.000000 + 2 gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene exon 62843401 62843491 0.000000 + . gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene CDS 62844887 62845000 0.000000 + 1 gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene exon 62844887 62845000 0.000000 + . gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene CDS 62848420 62848634 0.000000 + 1 gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene exon 62848420 62848634 0.000000 + . gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene CDS 62850183 62850388 0.000000 + 2 gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene exon 62850183 62850388 0.000000 + . gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene CDS 62851066 62851335 0.000000 + 0 gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene exon 62851066 62851335 0.000000 + . gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene CDS 62853246 62853400 0.000000 + 0 gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene exon 62853246 62853400 0.000000 + . gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene CDS 62854464 62854526 0.000000 + 1 gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene exon 62854464 62854526 0.000000 + . gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene CDS 62854644 62854712 0.000000 + 1 gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene exon 62854644 62854712 0.000000 + . gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene CDS 62858768 62858830 0.000000 + 1 gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene exon 62858768 62858830 0.000000 + . gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene CDS 62859241 62859324 0.000000 + 1 gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene exon 62859241 62859324 0.000000 + . gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene CDS 62863517 62863738 0.000000 + 1 gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene exon 62863517 62863738 0.000000 + . gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene CDS 62867908 62867999 0.000000 + 1 gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene exon 62867908 62867999 0.000000 + . gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene CDS 62868640 62868743 0.000000 + 2 gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene exon 62868640 62868743 0.000000 + . gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene CDS 62871113 62871256 0.000000 + 0 gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene exon 62871113 62871256 0.000000 + . gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene CDS 62871673 62871798 0.000000 + 0 gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene exon 62871673 62873606 0.000000 + . gene_id "MYT1"; transcript_id "M96980:uc002yij.3";
+chr20 hg19_knownGene exon 62887048 62887223 0.000000 + . gene_id "PCMTD2"; transcript_id "NM_018257:uc002yil.4";
+chr20 hg19_knownGene CDS 62891319 62891625 0.000000 + 0 gene_id "PCMTD2"; transcript_id "NM_018257:uc002yil.4";
+chr20 hg19_knownGene exon 62891295 62891625 0.000000 + . gene_id "PCMTD2"; transcript_id "NM_018257:uc002yil.4";
+chr20 hg19_knownGene CDS 62895782 62895884 0.000000 + 2 gene_id "PCMTD2"; transcript_id "NM_018257:uc002yil.4";
+chr20 hg19_knownGene exon 62895782 62895884 0.000000 + . gene_id "PCMTD2"; transcript_id "NM_018257:uc002yil.4";
+chr20 hg19_knownGene CDS 62896611 62896782 0.000000 + 1 gene_id "PCMTD2"; transcript_id "NM_018257:uc002yil.4";
+chr20 hg19_knownGene exon 62896611 62896782 0.000000 + . gene_id "PCMTD2"; transcript_id "NM_018257:uc002yil.4";
+chr20 hg19_knownGene CDS 62899240 62899363 0.000000 + 0 gene_id "PCMTD2"; transcript_id "NM_018257:uc002yil.4";
+chr20 hg19_knownGene exon 62899240 62899363 0.000000 + . gene_id "PCMTD2"; transcript_id "NM_018257:uc002yil.4";
+chr20 hg19_knownGene CDS 62904574 62904950 0.000000 + 2 gene_id "PCMTD2"; transcript_id "NM_018257:uc002yil.4";
+chr20 hg19_knownGene exon 62904574 62907579 0.000000 + . gene_id "PCMTD2"; transcript_id "NM_018257:uc002yil.4";
+chr20 hg19_knownGene exon 62887048 62887223 0.000000 + . gene_id "PCMTD2"; transcript_id "NM_001104925:uc002yim.4";
+chr20 hg19_knownGene CDS 62891319 62891625 0.000000 + 0 gene_id "PCMTD2"; transcript_id "NM_001104925:uc002yim.4";
+chr20 hg19_knownGene exon 62891295 62891625 0.000000 + . gene_id "PCMTD2"; transcript_id "NM_001104925:uc002yim.4";
+chr20 hg19_knownGene CDS 62895782 62895884 0.000000 + 2 gene_id "PCMTD2"; transcript_id "NM_001104925:uc002yim.4";
+chr20 hg19_knownGene exon 62895782 62895884 0.000000 + . gene_id "PCMTD2"; transcript_id "NM_001104925:uc002yim.4";
+chr20 hg19_knownGene CDS 62896611 62896782 0.000000 + 1 gene_id "PCMTD2"; transcript_id "NM_001104925:uc002yim.4";
+chr20 hg19_knownGene exon 62896611 62896782 0.000000 + . gene_id "PCMTD2"; transcript_id "NM_001104925:uc002yim.4";
+chr20 hg19_knownGene CDS 62899321 62899363 0.000000 + 0 gene_id "PCMTD2"; transcript_id "NM_001104925:uc002yim.4";
+chr20 hg19_knownGene exon 62899321 62899363 0.000000 + . gene_id "PCMTD2"; transcript_id "NM_001104925:uc002yim.4";
+chr20 hg19_knownGene CDS 62904574 62904950 0.000000 + 2 gene_id "PCMTD2"; transcript_id "NM_001104925:uc002yim.4";
+chr20 hg19_knownGene exon 62904574 62907579 0.000000 + . gene_id "PCMTD2"; transcript_id "NM_001104925:uc002yim.4";
+chr20 hg19_knownGene exon 62919983 62920072 0.000000 + . gene_id "DQ590432"; transcript_id "DQ590432:uc002yin.3";
+chr20 hg19_knownGene exon 62921738 62922087 0.000000 + . gene_id "LINC00266-1"; transcript_id "NR_040415:uc002yio.1";
+chr20 hg19_knownGene exon 62926244 62926412 0.000000 + . gene_id "LINC00266-1"; transcript_id "NR_040415:uc002yio.1";
+chr20 hg19_knownGene exon 62934504 62934707 0.000000 + . gene_id "LINC00266-1"; transcript_id "NR_040415:uc002yio.1";
diff --git a/clipper/tidx/chr20.txt.tidx b/clipper/tidx/chr20.txt.tidx
new file mode 100644
index 0000000..82b8da1
Binary files /dev/null and b/clipper/tidx/chr20.txt.tidx differ
diff --git a/tidx/fastq-lib.cpp b/clipper/tidx/fastq-lib.cpp
similarity index 100%
copy from tidx/fastq-lib.cpp
copy to clipper/tidx/fastq-lib.cpp
diff --git a/tidx/fastq-lib.h b/clipper/tidx/fastq-lib.h
similarity index 100%
copy from tidx/fastq-lib.h
copy to clipper/tidx/fastq-lib.h
diff --git a/clipper/tidx/foo.txt b/clipper/tidx/foo.txt
new file mode 100644
index 0000000..d3704d4
--- /dev/null
+++ b/clipper/tidx/foo.txt
@@ -0,0 +1,3 @@
+chr20 251858 foo 1
+chr20 251908 foo 2
+chr20 12 notthere
diff --git a/clipper/tidx/perl/Changes b/clipper/tidx/perl/Changes
new file mode 100644
index 0000000..97abf97
--- /dev/null
+++ b/clipper/tidx/perl/Changes
@@ -0,0 +1,6 @@
+Revision history for Perl extension Text::Tidx.
+
+0.01 Mon Sep 10 15:24:21 2012
+ - original version; created by h2xs 1.23 with options
+ -A -n Text::Tidx
+
diff --git a/clipper/tidx/perl/MANIFEST b/clipper/tidx/perl/MANIFEST
new file mode 100644
index 0000000..e95eea1
--- /dev/null
+++ b/clipper/tidx/perl/MANIFEST
@@ -0,0 +1,32 @@
+Changes
+fastq-lib.cpp
+fastq-lib.h
+lib/Text/Tidx.pm
+Makefile.PL
+MANIFEST This list of files
+perlobject.map
+ppport.h
+README
+t/annot.txt
+t/res1.txt
+t/res2.txt
+t/Text-Tidx.t
+tidx.cpp
+tidx-lib.cpp
+tidx.h
+Tidx.xs
+typemap
+utils.cpp
+utils.h
+sparsehash/template_util.h
+sparsehash/sparse_hash_map
+sparsehash/sparsetable
+sparsehash/sparse_hash_set
+sparsehash/internal/densehashtable.h
+sparsehash/internal/sparseconfig.h
+sparsehash/internal/hashtable-common.h
+sparsehash/internal/sparsehashtable.h
+sparsehash/internal/libc_allocator_with_realloc.h
+sparsehash/type_traits.h
+sparsehash/dense_hash_set
+sparsehash/dense_hash_map
diff --git a/clipper/tidx/perl/Makefile.PL b/clipper/tidx/perl/Makefile.PL
new file mode 100644
index 0000000..0858de7
--- /dev/null
+++ b/clipper/tidx/perl/Makefile.PL
@@ -0,0 +1,39 @@
+use 5.010001;
+use ExtUtils::MakeMaker;
+# See lib/ExtUtils/MakeMaker.pm for details of how to influence
+# the contents of the Makefile that is written.
+$CC = "g++";
+$EXE_EXT = $^O =~ /win32/i ? ".exe" : "";
+
+WriteMakefile(
+ NAME => 'Text::Tidx',
+ VERSION_FROM => 'lib/Text/Tidx.pm', # finds $VERSION
+ H => ['sparsehash'],
+ OPTIMIZE => '-O3',
+ PREREQ_PM => {}, # e.g., Module::Name => 1.1
+ ($] >= 5.005 ? ## Add these new keywords supported since 5.005
+ (ABSTRACT_FROM => 'lib/Text/Tidx.pm', # retrieve abstract from module
+ AUTHOR => 'A. U. Thor <earonesty@>') : ()),
+# LIBS => ['-ltidx'], # e.g., '-lm'
+ CC => $CC,
+ LD => '$(CC)',
+ XSOPT => '-C++',
+ TYPEMAPS => ['perlobject.map'],
+# 'dist' => { },
+ DEFINE => '', # e.g., '-DHAVE_SOMETHING'
+ INC => '-I.', # e.g., '-I. -I/usr/include/other'
+ # Un-comment this if you add C files to link with later:
+ OBJECT => '$(O_FILES)', # link all the C files too
+ EXE_FILES => ['tidx'.$EXE_EXT],
+);
+
+
+sub MY::postamble
+{
+# todo... this probably doesn't work on windows/mig
+return <<CMD
+tidx: fastq-lib.o tidx-lib.o tidx.o utils.o
+ \$(CC) -O3 fastq-lib.o tidx-lib.o tidx.o utils.o -o tidx$EXE_EXT
+CMD
+}
+
diff --git a/clipper/tidx/perl/README b/clipper/tidx/perl/README
new file mode 100644
index 0000000..deba75e
--- /dev/null
+++ b/clipper/tidx/perl/README
@@ -0,0 +1,41 @@
+Text-Tidx version 0.91
+======================
+
+Text:Tidx allows you to index any text file using key fields
+start-stop coordinates, and, later, use that index for binary-search
+lookups into the file, even though there is a range of responses.
+
+This was written because it was, for me significantly faster, for very large
+files (>100k rows) and many searches ( > 10k), then entering
+all of the information into a database and doing range querys,
+even faster than SQLITE's rtree extension, or the "tabix" program
+both of which are do similar things and do them rather well.
+
+Although it was designed for chromosome, stop, start indexing,
+it is not genome specific, and can index any delimited text file.
+
+Indexes are loaded into RAM. If you only have a few lookups
+to do perl instance, this is expensive, and a database will be faster.
+
+INSTALLATION
+
+To install this module type the following:
+
+ perl Makefile.PL
+ make
+ make test
+ make install
+
+DEPENDENCIES
+
+This module includes google's sparsehash, some code from ea-utils, as
+well as the tidx-lib source because they're small, however, they can
+be replaced with newer versions of those libraries if desired.
+
+COPYRIGHT AND LICENCE
+
+Copyright (C) 2012 Erik Aronesty
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself, either Perl version 5.10.1 or,
+at your option, any later version of Perl 5 you may have available.
diff --git a/clipper/tidx/perl/Tidx.xs b/clipper/tidx/perl/Tidx.xs
new file mode 100644
index 0000000..417b1cd
--- /dev/null
+++ b/clipper/tidx/perl/Tidx.xs
@@ -0,0 +1,32 @@
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "EXTERN.h"
+#include "perl.h"
+#include "XSUB.h"
+
+#include "ppport.h"
+
+#ifdef __cplusplus
+}
+#endif
+
+#include "tidx.h"
+
+MODULE = Text::Tidx PACKAGE = Text::Tidx
+
+tidx *
+tidx::new(char * path)
+
+void
+tidx::DESTROY()
+
+const char *
+tidx::lookup_c(const char *chr, int pos, const char *msep);
+
+const char *
+tidx::lookup_cr(const char *chr, int beg, int end, const char *msep);
+
+void
+tidx_build(const char *file, const char *sep, int chr, int beg, int end, int skip_i, char skip_c, bool sub_e);
diff --git a/tidx/fastq-lib.cpp b/clipper/tidx/perl/fastq-lib.cpp
similarity index 100%
rename from tidx/fastq-lib.cpp
rename to clipper/tidx/perl/fastq-lib.cpp
diff --git a/tidx/fastq-lib.h b/clipper/tidx/perl/fastq-lib.h
similarity index 100%
rename from tidx/fastq-lib.h
rename to clipper/tidx/perl/fastq-lib.h
diff --git a/clipper/tidx/perl/lib/Text/Tidx.pm b/clipper/tidx/perl/lib/Text/Tidx.pm
new file mode 100644
index 0000000..b31a739
--- /dev/null
+++ b/clipper/tidx/perl/lib/Text/Tidx.pm
@@ -0,0 +1,172 @@
+package Text::Tidx;
+
+use 5.010001;
+use strict;
+use warnings;
+use Carp;
+
+require Exporter;
+
+our @ISA = qw(Exporter);
+
+# Items to export into callers namespace by default. Note: do not export
+# names by default without a very good reason. Use EXPORT_OK instead.
+# Do not simply export all your public functions/methods/constants.
+
+# This allows declaration use Text::Tidx ':all';
+# If you do not need this, moving things directly into @EXPORT or @EXPORT_OK
+# will save memory.
+our %EXPORT_TAGS = ( 'all' => [ qw(
+
+) ] );
+
+our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
+
+our @EXPORT = qw(
+
+);
+
+our $VERSION = '0.94';
+
+require XSLoader;
+XSLoader::load('Text::Tidx', $VERSION);
+
+# Preloaded methods go here.
+
+sub lookup {
+ if (@_ == 3) {
+ return lookup_c(@_, "^");
+ }
+ if (@_ == 4) {
+ return lookup_cr(@_, "^");
+ }
+}
+
+sub query {
+ my $r;
+ if (@_ == 3) {
+ $r = lookup_c(@_, "^");
+ }
+ if (@_ == 4) {
+ $r = lookup_cr(@_, "^");
+ }
+ return () if (!$r);
+ $r =~ s/^\^//;
+ return split /\^/, $r;
+}
+
+sub build {
+ my ($file, %op) = @_;
+ croak "usage: build(file, options)\n" unless $file;
+ $op{skip} = '#' if !defined($op{skip});
+ $op{skip_c} = $op{skip} !~ /^\d+$/ ? $op{skip} : '';
+ $op{skip_i} = $op{skip} =~ /^\d+$/ ? $op{skip} : 0;
+ $op{sub_e} = $op{sub} || $op{sub_e} ? 1 : 0;
+ $op{sep} = "\t" if !$op{sep};
+ $op{chr} = 1 if !defined($op{chr});
+ $op{beg} = 2 if !$op{beg};
+ $op{end} = 3 if !$op{end};
+ # one based index, consistent with command-line version
+ --$op{chr};
+ --$op{beg};
+ --$op{end};
+ # todo... for kicks: allow indexing on text only, no positions
+ tidx_build($file, $op{sep}, $op{chr}, $op{beg}, $op{end}, $op{skip_i}, $op{skip_c}, $op{sub_e});
+}
+
+1;
+__END__
+# Below is stub documentation for your module. You'd better edit it!
+
+=head1 NAME
+
+Text::Tidx - Index a delimited text file containing start-stop positions
+
+=head1 SYNOPSIS
+
+ use Text::Tidx;
+ Text::Tidx::build("annot.txt");
+ $idx = Text::Tidx->new("annot.txt");
+ print $idx->query("chr1",240034);
+
+=head1 FUNCTION
+
+=head2 new(FILE)
+
+Loads an index from a file.
+
+=head2 query(CHR, POS [, END])
+
+Query a loaded index, returning an array of text lines corresponding to the specified
+chr string and integer pos. If an end is specified, then all overlapping regions
+are returned.
+
+=head2 build(FILE [, option1=>value1, ...])
+
+Builds an index. Default is to index on the first 3 columns.
+
+The following options may be used:
+
+=over 4
+
+=item sep
+
+Field separator, default to a tab
+
+=item chr
+
+1-based index of the string key field, can be -1 for "Not applicable", default is 1
+
+=item beg
+
+1-based index of the field containing the start of the integer numeric range, default is 2
+
+=item end
+
+1-based index of the field containing the end of the integer numeric range, default is 3
+
+=item skip
+
+If an integer, then it is the number of rows to skip. If it's
+a character, then skips all rows beginning with that character.
+Default is '#', skipping comment chars (compatible with gffs, vcfs, etc.)
+
+=item sub_e
+
+If nonzero, then the "end" of the range is not included in the range, ie:
+one is subtracted from the end positions.
+
+=back
+
+=head1 DESCRIPTION
+
+Text:Tidx allows you to index any text file using a key field
+and range coordinates, and, later, use that index for O(log(n))
+range-lookups into the file.
+
+This was written because it was, for me significantly faster, for very large
+files (>100k rows) and many searches ( > 10k), then entering
+all of the information into a database and doing range querys,
+even faster than SQLITE's rtree extension, or the "tabix" program
+both of which are do similar things and do them rather well.
+
+Although it was designed for chromosome, stop, start indexing,
+it is not genome specific, and can index any delimited text file.
+
+Indexes are loaded into RAM. If you only have a few lookups
+to do perl instance, this is expensive, and a database will be faster.
+
+=head1 AUTHOR
+
+Erik Aronesty, E<lt>earonesty at cpan.orgE<gt>
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright (C) 2012 by Erik Aronesty
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself, either Perl version 5.10.1 or,
+at your option, any later version of Perl 5 you may have available.
+
+
+=cut
diff --git a/clipper/tidx/perl/perlobject.map b/clipper/tidx/perl/perlobject.map
new file mode 100644
index 0000000..644eff4
--- /dev/null
+++ b/clipper/tidx/perl/perlobject.map
@@ -0,0 +1,106 @@
+# "perlobject.map" Dean Roehrich, version 19960302
+#
+# TYPEMAPs
+#
+# HV * -> unblessed Perl HV object.
+# AV * -> unblessed Perl AV object.
+#
+# INPUT/OUTPUT maps
+#
+# O_* -> opaque blessed objects
+# T_* -> opaque blessed or unblessed objects
+#
+# O_OBJECT -> link an opaque C or C++ object to a blessed Perl object.
+# T_OBJECT -> link an opaque C or C++ object to an unblessed Perl object.
+# O_HvRV -> a blessed Perl HV object.
+# T_HvRV -> an unblessed Perl HV object.
+# O_AvRV -> a blessed Perl AV object.
+# T_AvRV -> an unblessed Perl AV object.
+
+TYPEMAP
+
+HV * T_HvRV
+AV * T_AvRV
+
+
+######################################################################
+OUTPUT
+
+# The Perl object is blessed into 'CLASS', which should be a
+# char* having the name of the package for the blessing.
+O_OBJECT
+ sv_setref_pv( $arg, CLASS, (void*)$var );
+
+T_OBJECT
+ sv_setref_pv( $arg, Nullch, (void*)$var );
+
+# Cannot use sv_setref_pv() because that will destroy
+# the HV-ness of the object. Remember that newRV() will increment
+# the refcount.
+O_HvRV
+ $arg = sv_bless( newRV((SV*)$var), gv_stashpv(CLASS,1) );
+
+T_HvRV
+ $arg = newRV((SV*)$var);
+
+# Cannot use sv_setref_pv() because that will destroy
+# the AV-ness of the object. Remember that newRV() will increment
+# the refcount.
+O_AvRV
+ $arg = sv_bless( newRV((SV*)$var), gv_stashpv(CLASS,1) );
+
+T_AvRV
+ $arg = newRV((SV*)$var);
+
+
+######################################################################
+INPUT
+
+O_OBJECT
+ if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) )
+ $var = ($type)SvIV((SV*)SvRV( $arg ));
+ else{
+ warn( \"${Package}::$func_name() -- $var is not a blessed SV reference\" );
+ XSRETURN_UNDEF;
+ }
+
+T_OBJECT
+ if( SvROK($arg) )
+ $var = ($type)SvIV((SV*)SvRV( $arg ));
+ else{
+ warn( \"${Package}::$func_name() -- $var is not an SV reference\" );
+ XSRETURN_UNDEF;
+ }
+
+O_HvRV
+ if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVHV) )
+ $var = (HV*)SvRV( $arg );
+ else {
+ warn( \"${Package}::$func_name() -- $var is not a blessed HV reference\" );
+ XSRETURN_UNDEF;
+ }
+
+T_HvRV
+ if( SvROK($arg) && (SvTYPE(SvRV($arg)) == SVt_PVHV) )
+ $var = (HV*)SvRV( $arg );
+ else {
+ warn( \"${Package}::$func_name() -- $var is not an HV reference\" );
+ XSRETURN_UNDEF;
+ }
+
+O_AvRV
+ if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVAV) )
+ $var = (AV*)SvRV( $arg );
+ else {
+ warn( \"${Package}::$func_name() -- $var is not a blessed AV reference\" );
+ XSRETURN_UNDEF;
+ }
+
+T_AvRV
+ if( SvROK($arg) && (SvTYPE(SvRV($arg)) == SVt_PVAV) )
+ $var = (AV*)SvRV( $arg );
+ else {
+ warn( \"${Package}::$func_name() -- $var is not an AV reference\" );
+ XSRETURN_UNDEF;
+ }
+
diff --git a/clipper/tidx/perl/ppport.h b/clipper/tidx/perl/ppport.h
new file mode 100644
index 0000000..8ec0d5f
--- /dev/null
+++ b/clipper/tidx/perl/ppport.h
@@ -0,0 +1,7063 @@
+#if 0
+<<'SKIP';
+#endif
+/*
+----------------------------------------------------------------------
+
+ ppport.h -- Perl/Pollution/Portability Version 3.19
+
+ Automatically created by Devel::PPPort running under perl 5.010001.
+
+ Do NOT edit this file directly! -- Edit PPPort_pm.PL and the
+ includes in parts/inc/ instead.
+
+ Use 'perldoc ppport.h' to view the documentation below.
+
+----------------------------------------------------------------------
+
+SKIP
+
+=pod
+
+=head1 NAME
+
+ppport.h - Perl/Pollution/Portability version 3.19
+
+=head1 SYNOPSIS
+
+ perl ppport.h [options] [source files]
+
+ Searches current directory for files if no [source files] are given
+
+ --help show short help
+
+ --version show version
+
+ --patch=file write one patch file with changes
+ --copy=suffix write changed copies with suffix
+ --diff=program use diff program and options
+
+ --compat-version=version provide compatibility with Perl version
+ --cplusplus accept C++ comments
+
+ --quiet don't output anything except fatal errors
+ --nodiag don't show diagnostics
+ --nohints don't show hints
+ --nochanges don't suggest changes
+ --nofilter don't filter input files
+
+ --strip strip all script and doc functionality from
+ ppport.h
+
+ --list-provided list provided API
+ --list-unsupported list unsupported API
+ --api-info=name show Perl API portability information
+
+=head1 COMPATIBILITY
+
+This version of F<ppport.h> is designed to support operation with Perl
+installations back to 5.003, and has been tested up to 5.10.0.
+
+=head1 OPTIONS
+
+=head2 --help
+
+Display a brief usage summary.
+
+=head2 --version
+
+Display the version of F<ppport.h>.
+
+=head2 --patch=I<file>
+
+If this option is given, a single patch file will be created if
+any changes are suggested. This requires a working diff program
+to be installed on your system.
+
+=head2 --copy=I<suffix>
+
+If this option is given, a copy of each file will be saved with
+the given suffix that contains the suggested changes. This does
+not require any external programs. Note that this does not
+automagially add a dot between the original filename and the
+suffix. If you want the dot, you have to include it in the option
+argument.
+
+If neither C<--patch> or C<--copy> are given, the default is to
+simply print the diffs for each file. This requires either
+C<Text::Diff> or a C<diff> program to be installed.
+
+=head2 --diff=I<program>
+
+Manually set the diff program and options to use. The default
+is to use C<Text::Diff>, when installed, and output unified
+context diffs.
+
+=head2 --compat-version=I<version>
+
+Tell F<ppport.h> to check for compatibility with the given
+Perl version. The default is to check for compatibility with Perl
+version 5.003. You can use this option to reduce the output
+of F<ppport.h> if you intend to be backward compatible only
+down to a certain Perl version.
+
+=head2 --cplusplus
+
+Usually, F<ppport.h> will detect C++ style comments and
+replace them with C style comments for portability reasons.
+Using this option instructs F<ppport.h> to leave C++
+comments untouched.
+
+=head2 --quiet
+
+Be quiet. Don't print anything except fatal errors.
+
+=head2 --nodiag
+
+Don't output any diagnostic messages. Only portability
+alerts will be printed.
+
+=head2 --nohints
+
+Don't output any hints. Hints often contain useful portability
+notes. Warnings will still be displayed.
+
+=head2 --nochanges
+
+Don't suggest any changes. Only give diagnostic output and hints
+unless these are also deactivated.
+
+=head2 --nofilter
+
+Don't filter the list of input files. By default, files not looking
+like source code (i.e. not *.xs, *.c, *.cc, *.cpp or *.h) are skipped.
+
+=head2 --strip
+
+Strip all script and documentation functionality from F<ppport.h>.
+This reduces the size of F<ppport.h> dramatically and may be useful
+if you want to include F<ppport.h> in smaller modules without
+increasing their distribution size too much.
+
+The stripped F<ppport.h> will have a C<--unstrip> option that allows
+you to undo the stripping, but only if an appropriate C<Devel::PPPort>
+module is installed.
+
+=head2 --list-provided
+
+Lists the API elements for which compatibility is provided by
+F<ppport.h>. Also lists if it must be explicitly requested,
+if it has dependencies, and if there are hints or warnings for it.
+
+=head2 --list-unsupported
+
+Lists the API elements that are known not to be supported by
+F<ppport.h> and below which version of Perl they probably
+won't be available or work.
+
+=head2 --api-info=I<name>
+
+Show portability information for API elements matching I<name>.
+If I<name> is surrounded by slashes, it is interpreted as a regular
+expression.
+
+=head1 DESCRIPTION
+
+In order for a Perl extension (XS) module to be as portable as possible
+across differing versions of Perl itself, certain steps need to be taken.
+
+=over 4
+
+=item *
+
+Including this header is the first major one. This alone will give you
+access to a large part of the Perl API that hasn't been available in
+earlier Perl releases. Use
+
+ perl ppport.h --list-provided
+
+to see which API elements are provided by ppport.h.
+
+=item *
+
+You should avoid using deprecated parts of the API. For example, using
+global Perl variables without the C<PL_> prefix is deprecated. Also,
+some API functions used to have a C<perl_> prefix. Using this form is
+also deprecated. You can safely use the supported API, as F<ppport.h>
+will provide wrappers for older Perl versions.
+
+=item *
+
+If you use one of a few functions or variables that were not present in
+earlier versions of Perl, and that can't be provided using a macro, you
+have to explicitly request support for these functions by adding one or
+more C<#define>s in your source code before the inclusion of F<ppport.h>.
+
+These functions or variables will be marked C<explicit> in the list shown
+by C<--list-provided>.
+
+Depending on whether you module has a single or multiple files that
+use such functions or variables, you want either C<static> or global
+variants.
+
+For a C<static> function or variable (used only in a single source
+file), use:
+
+ #define NEED_function
+ #define NEED_variable
+
+For a global function or variable (used in multiple source files),
+use:
+
+ #define NEED_function_GLOBAL
+ #define NEED_variable_GLOBAL
+
+Note that you mustn't have more than one global request for the
+same function or variable in your project.
+
+ Function / Variable Static Request Global Request
+ -----------------------------------------------------------------------------------------
+ PL_parser NEED_PL_parser NEED_PL_parser_GLOBAL
+ PL_signals NEED_PL_signals NEED_PL_signals_GLOBAL
+ eval_pv() NEED_eval_pv NEED_eval_pv_GLOBAL
+ grok_bin() NEED_grok_bin NEED_grok_bin_GLOBAL
+ grok_hex() NEED_grok_hex NEED_grok_hex_GLOBAL
+ grok_number() NEED_grok_number NEED_grok_number_GLOBAL
+ grok_numeric_radix() NEED_grok_numeric_radix NEED_grok_numeric_radix_GLOBAL
+ grok_oct() NEED_grok_oct NEED_grok_oct_GLOBAL
+ load_module() NEED_load_module NEED_load_module_GLOBAL
+ my_snprintf() NEED_my_snprintf NEED_my_snprintf_GLOBAL
+ my_sprintf() NEED_my_sprintf NEED_my_sprintf_GLOBAL
+ my_strlcat() NEED_my_strlcat NEED_my_strlcat_GLOBAL
+ my_strlcpy() NEED_my_strlcpy NEED_my_strlcpy_GLOBAL
+ newCONSTSUB() NEED_newCONSTSUB NEED_newCONSTSUB_GLOBAL
+ newRV_noinc() NEED_newRV_noinc NEED_newRV_noinc_GLOBAL
+ newSV_type() NEED_newSV_type NEED_newSV_type_GLOBAL
+ newSVpvn_flags() NEED_newSVpvn_flags NEED_newSVpvn_flags_GLOBAL
+ newSVpvn_share() NEED_newSVpvn_share NEED_newSVpvn_share_GLOBAL
+ pv_display() NEED_pv_display NEED_pv_display_GLOBAL
+ pv_escape() NEED_pv_escape NEED_pv_escape_GLOBAL
+ pv_pretty() NEED_pv_pretty NEED_pv_pretty_GLOBAL
+ sv_2pv_flags() NEED_sv_2pv_flags NEED_sv_2pv_flags_GLOBAL
+ sv_2pvbyte() NEED_sv_2pvbyte NEED_sv_2pvbyte_GLOBAL
+ sv_catpvf_mg() NEED_sv_catpvf_mg NEED_sv_catpvf_mg_GLOBAL
+ sv_catpvf_mg_nocontext() NEED_sv_catpvf_mg_nocontext NEED_sv_catpvf_mg_nocontext_GLOBAL
+ sv_pvn_force_flags() NEED_sv_pvn_force_flags NEED_sv_pvn_force_flags_GLOBAL
+ sv_setpvf_mg() NEED_sv_setpvf_mg NEED_sv_setpvf_mg_GLOBAL
+ sv_setpvf_mg_nocontext() NEED_sv_setpvf_mg_nocontext NEED_sv_setpvf_mg_nocontext_GLOBAL
+ vload_module() NEED_vload_module NEED_vload_module_GLOBAL
+ vnewSVpvf() NEED_vnewSVpvf NEED_vnewSVpvf_GLOBAL
+ warner() NEED_warner NEED_warner_GLOBAL
+
+To avoid namespace conflicts, you can change the namespace of the
+explicitly exported functions / variables using the C<DPPP_NAMESPACE>
+macro. Just C<#define> the macro before including C<ppport.h>:
+
+ #define DPPP_NAMESPACE MyOwnNamespace_
+ #include "ppport.h"
+
+The default namespace is C<DPPP_>.
+
+=back
+
+The good thing is that most of the above can be checked by running
+F<ppport.h> on your source code. See the next section for
+details.
+
+=head1 EXAMPLES
+
+To verify whether F<ppport.h> is needed for your module, whether you
+should make any changes to your code, and whether any special defines
+should be used, F<ppport.h> can be run as a Perl script to check your
+source code. Simply say:
+
+ perl ppport.h
+
+The result will usually be a list of patches suggesting changes
+that should at least be acceptable, if not necessarily the most
+efficient solution, or a fix for all possible problems.
+
+If you know that your XS module uses features only available in
+newer Perl releases, if you're aware that it uses C++ comments,
+and if you want all suggestions as a single patch file, you could
+use something like this:
+
+ perl ppport.h --compat-version=5.6.0 --cplusplus --patch=test.diff
+
+If you only want your code to be scanned without any suggestions
+for changes, use:
+
+ perl ppport.h --nochanges
+
+You can specify a different C<diff> program or options, using
+the C<--diff> option:
+
+ perl ppport.h --diff='diff -C 10'
+
+This would output context diffs with 10 lines of context.
+
+If you want to create patched copies of your files instead, use:
+
+ perl ppport.h --copy=.new
+
+To display portability information for the C<newSVpvn> function,
+use:
+
+ perl ppport.h --api-info=newSVpvn
+
+Since the argument to C<--api-info> can be a regular expression,
+you can use
+
+ perl ppport.h --api-info=/_nomg$/
+
+to display portability information for all C<_nomg> functions or
+
+ perl ppport.h --api-info=/./
+
+to display information for all known API elements.
+
+=head1 BUGS
+
+If this version of F<ppport.h> is causing failure during
+the compilation of this module, please check if newer versions
+of either this module or C<Devel::PPPort> are available on CPAN
+before sending a bug report.
+
+If F<ppport.h> was generated using the latest version of
+C<Devel::PPPort> and is causing failure of this module, please
+file a bug report using the CPAN Request Tracker at L<http://rt.cpan.org/>.
+
+Please include the following information:
+
+=over 4
+
+=item 1.
+
+The complete output from running "perl -V"
+
+=item 2.
+
+This file.
+
+=item 3.
+
+The name and version of the module you were trying to build.
+
+=item 4.
+
+A full log of the build that failed.
+
+=item 5.
+
+Any other information that you think could be relevant.
+
+=back
+
+For the latest version of this code, please get the C<Devel::PPPort>
+module from CPAN.
+
+=head1 COPYRIGHT
+
+Version 3.x, Copyright (c) 2004-2009, Marcus Holland-Moritz.
+
+Version 2.x, Copyright (C) 2001, Paul Marquess.
+
+Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+=head1 SEE ALSO
+
+See L<Devel::PPPort>.
+
+=cut
+
+use strict;
+
+# Disable broken TRIE-optimization
+BEGIN { eval '${^RE_TRIE_MAXBUF} = -1' if $] >= 5.009004 && $] <= 5.009005 }
+
+my $VERSION = 3.19;
+
+my %opt = (
+ quiet => 0,
+ diag => 1,
+ hints => 1,
+ changes => 1,
+ cplusplus => 0,
+ filter => 1,
+ strip => 0,
+ version => 0,
+);
+
+my($ppport) = $0 =~ /([\w.]+)$/;
+my $LF = '(?:\r\n|[\r\n])'; # line feed
+my $HS = "[ \t]"; # horizontal whitespace
+
+# Never use C comments in this file!
+my $ccs = '/'.'*';
+my $cce = '*'.'/';
+my $rccs = quotemeta $ccs;
+my $rcce = quotemeta $cce;
+
+eval {
+ require Getopt::Long;
+ Getopt::Long::GetOptions(\%opt, qw(
+ help quiet diag! filter! hints! changes! cplusplus strip version
+ patch=s copy=s diff=s compat-version=s
+ list-provided list-unsupported api-info=s
+ )) or usage();
+};
+
+if ($@ and grep /^-/, @ARGV) {
+ usage() if "@ARGV" =~ /^--?h(?:elp)?$/;
+ die "Getopt::Long not found. Please don't use any options.\n";
+}
+
+if ($opt{version}) {
+ print "This is $0 $VERSION.\n";
+ exit 0;
+}
+
+usage() if $opt{help};
+strip() if $opt{strip};
+
+if (exists $opt{'compat-version'}) {
+ my($r,$v,$s) = eval { parse_version($opt{'compat-version'}) };
+ if ($@) {
+ die "Invalid version number format: '$opt{'compat-version'}'\n";
+ }
+ die "Only Perl 5 is supported\n" if $r != 5;
+ die "Invalid version number: $opt{'compat-version'}\n" if $v >= 1000 || $s >= 1000;
+ $opt{'compat-version'} = sprintf "%d.%03d%03d", $r, $v, $s;
+}
+else {
+ $opt{'compat-version'} = 5;
+}
+
+my %API = map { /^(\w+)\|([^|]*)\|([^|]*)\|(\w*)$/
+ ? ( $1 => {
+ ($2 ? ( base => $2 ) : ()),
+ ($3 ? ( todo => $3 ) : ()),
+ (index($4, 'v') >= 0 ? ( varargs => 1 ) : ()),
+ (index($4, 'p') >= 0 ? ( provided => 1 ) : ()),
+ (index($4, 'n') >= 0 ? ( nothxarg => 1 ) : ()),
+ } )
+ : die "invalid spec: $_" } qw(
+AvFILLp|5.004050||p
+AvFILL|||
+CLASS|||n
+CPERLscope|5.005000||p
+CX_CURPAD_SAVE|||
+CX_CURPAD_SV|||
+CopFILEAV|5.006000||p
+CopFILEGV_set|5.006000||p
+CopFILEGV|5.006000||p
+CopFILESV|5.006000||p
+CopFILE_set|5.006000||p
+CopFILE|5.006000||p
+CopSTASHPV_set|5.006000||p
+CopSTASHPV|5.006000||p
+CopSTASH_eq|5.006000||p
+CopSTASH_set|5.006000||p
+CopSTASH|5.006000||p
+CopyD|5.009002||p
+Copy|||
+CvPADLIST|||
+CvSTASH|||
+CvWEAKOUTSIDE|||
+DEFSV_set|5.011000||p
+DEFSV|5.004050||p
+END_EXTERN_C|5.005000||p
+ENTER|||
+ERRSV|5.004050||p
+EXTEND|||
+EXTERN_C|5.005000||p
+F0convert|||n
+FREETMPS|||
+GIMME_V||5.004000|n
+GIMME|||n
+GROK_NUMERIC_RADIX|5.007002||p
+G_ARRAY|||
+G_DISCARD|||
+G_EVAL|||
+G_METHOD|5.006001||p
+G_NOARGS|||
+G_SCALAR|||
+G_VOID||5.004000|
+GetVars|||
+GvSVn|5.009003||p
+GvSV|||
+Gv_AMupdate|||
+HEf_SVKEY||5.004000|
+HeHASH||5.004000|
+HeKEY||5.004000|
+HeKLEN||5.004000|
+HePV||5.004000|
+HeSVKEY_force||5.004000|
+HeSVKEY_set||5.004000|
+HeSVKEY||5.004000|
+HeUTF8||5.011000|
+HeVAL||5.004000|
+HvNAMELEN_get|5.009003||p
+HvNAME_get|5.009003||p
+HvNAME|||
+INT2PTR|5.006000||p
+IN_LOCALE_COMPILETIME|5.007002||p
+IN_LOCALE_RUNTIME|5.007002||p
+IN_LOCALE|5.007002||p
+IN_PERL_COMPILETIME|5.008001||p
+IS_NUMBER_GREATER_THAN_UV_MAX|5.007002||p
+IS_NUMBER_INFINITY|5.007002||p
+IS_NUMBER_IN_UV|5.007002||p
+IS_NUMBER_NAN|5.007003||p
+IS_NUMBER_NEG|5.007002||p
+IS_NUMBER_NOT_INT|5.007002||p
+IVSIZE|5.006000||p
+IVTYPE|5.006000||p
+IVdf|5.006000||p
+LEAVE|||
+LVRET|||
+MARK|||
+MULTICALL||5.011000|
+MY_CXT_CLONE|5.009002||p
+MY_CXT_INIT|5.007003||p
+MY_CXT|5.007003||p
+MoveD|5.009002||p
+Move|||
+NOOP|5.005000||p
+NUM2PTR|5.006000||p
+NVTYPE|5.006000||p
+NVef|5.006001||p
+NVff|5.006001||p
+NVgf|5.006001||p
+Newxc|5.009003||p
+Newxz|5.009003||p
+Newx|5.009003||p
+Nullav|||
+Nullch|||
+Nullcv|||
+Nullhv|||
+Nullsv|||
+ORIGMARK|||
+PAD_BASE_SV|||
+PAD_CLONE_VARS|||
+PAD_COMPNAME_FLAGS|||
+PAD_COMPNAME_GEN_set|||
+PAD_COMPNAME_GEN|||
+PAD_COMPNAME_OURSTASH|||
+PAD_COMPNAME_PV|||
+PAD_COMPNAME_TYPE|||
+PAD_DUP|||
+PAD_RESTORE_LOCAL|||
+PAD_SAVE_LOCAL|||
+PAD_SAVE_SETNULLPAD|||
+PAD_SETSV|||
+PAD_SET_CUR_NOSAVE|||
+PAD_SET_CUR|||
+PAD_SVl|||
+PAD_SV|||
+PERLIO_FUNCS_CAST|5.009003||p
+PERLIO_FUNCS_DECL|5.009003||p
+PERL_ABS|5.008001||p
+PERL_BCDVERSION|5.011000||p
+PERL_GCC_BRACE_GROUPS_FORBIDDEN|5.008001||p
+PERL_HASH|5.004000||p
+PERL_INT_MAX|5.004000||p
+PERL_INT_MIN|5.004000||p
+PERL_LONG_MAX|5.004000||p
+PERL_LONG_MIN|5.004000||p
+PERL_MAGIC_arylen|5.007002||p
+PERL_MAGIC_backref|5.007002||p
+PERL_MAGIC_bm|5.007002||p
+PERL_MAGIC_collxfrm|5.007002||p
+PERL_MAGIC_dbfile|5.007002||p
+PERL_MAGIC_dbline|5.007002||p
+PERL_MAGIC_defelem|5.007002||p
+PERL_MAGIC_envelem|5.007002||p
+PERL_MAGIC_env|5.007002||p
+PERL_MAGIC_ext|5.007002||p
+PERL_MAGIC_fm|5.007002||p
+PERL_MAGIC_glob|5.011000||p
+PERL_MAGIC_isaelem|5.007002||p
+PERL_MAGIC_isa|5.007002||p
+PERL_MAGIC_mutex|5.011000||p
+PERL_MAGIC_nkeys|5.007002||p
+PERL_MAGIC_overload_elem|5.007002||p
+PERL_MAGIC_overload_table|5.007002||p
+PERL_MAGIC_overload|5.007002||p
+PERL_MAGIC_pos|5.007002||p
+PERL_MAGIC_qr|5.007002||p
+PERL_MAGIC_regdata|5.007002||p
+PERL_MAGIC_regdatum|5.007002||p
+PERL_MAGIC_regex_global|5.007002||p
+PERL_MAGIC_shared_scalar|5.007003||p
+PERL_MAGIC_shared|5.007003||p
+PERL_MAGIC_sigelem|5.007002||p
+PERL_MAGIC_sig|5.007002||p
+PERL_MAGIC_substr|5.007002||p
+PERL_MAGIC_sv|5.007002||p
+PERL_MAGIC_taint|5.007002||p
+PERL_MAGIC_tiedelem|5.007002||p
+PERL_MAGIC_tiedscalar|5.007002||p
+PERL_MAGIC_tied|5.007002||p
+PERL_MAGIC_utf8|5.008001||p
+PERL_MAGIC_uvar_elem|5.007003||p
+PERL_MAGIC_uvar|5.007002||p
+PERL_MAGIC_vec|5.007002||p
+PERL_MAGIC_vstring|5.008001||p
+PERL_PV_ESCAPE_ALL|5.009004||p
+PERL_PV_ESCAPE_FIRSTCHAR|5.009004||p
+PERL_PV_ESCAPE_NOBACKSLASH|5.009004||p
+PERL_PV_ESCAPE_NOCLEAR|5.009004||p
+PERL_PV_ESCAPE_QUOTE|5.009004||p
+PERL_PV_ESCAPE_RE|5.009005||p
+PERL_PV_ESCAPE_UNI_DETECT|5.009004||p
+PERL_PV_ESCAPE_UNI|5.009004||p
+PERL_PV_PRETTY_DUMP|5.009004||p
+PERL_PV_PRETTY_ELLIPSES|5.010000||p
+PERL_PV_PRETTY_LTGT|5.009004||p
+PERL_PV_PRETTY_NOCLEAR|5.010000||p
+PERL_PV_PRETTY_QUOTE|5.009004||p
+PERL_PV_PRETTY_REGPROP|5.009004||p
+PERL_QUAD_MAX|5.004000||p
+PERL_QUAD_MIN|5.004000||p
+PERL_REVISION|5.006000||p
+PERL_SCAN_ALLOW_UNDERSCORES|5.007003||p
+PERL_SCAN_DISALLOW_PREFIX|5.007003||p
+PERL_SCAN_GREATER_THAN_UV_MAX|5.007003||p
+PERL_SCAN_SILENT_ILLDIGIT|5.008001||p
+PERL_SHORT_MAX|5.004000||p
+PERL_SHORT_MIN|5.004000||p
+PERL_SIGNALS_UNSAFE_FLAG|5.008001||p
+PERL_SUBVERSION|5.006000||p
+PERL_SYS_INIT3||5.006000|
+PERL_SYS_INIT|||
+PERL_SYS_TERM||5.011000|
+PERL_UCHAR_MAX|5.004000||p
+PERL_UCHAR_MIN|5.004000||p
+PERL_UINT_MAX|5.004000||p
+PERL_UINT_MIN|5.004000||p
+PERL_ULONG_MAX|5.004000||p
+PERL_ULONG_MIN|5.004000||p
+PERL_UNUSED_ARG|5.009003||p
+PERL_UNUSED_CONTEXT|5.009004||p
+PERL_UNUSED_DECL|5.007002||p
+PERL_UNUSED_VAR|5.007002||p
+PERL_UQUAD_MAX|5.004000||p
+PERL_UQUAD_MIN|5.004000||p
+PERL_USE_GCC_BRACE_GROUPS|5.009004||p
+PERL_USHORT_MAX|5.004000||p
+PERL_USHORT_MIN|5.004000||p
+PERL_VERSION|5.006000||p
+PL_DBsignal|5.005000||p
+PL_DBsingle|||pn
+PL_DBsub|||pn
+PL_DBtrace|||pn
+PL_Sv|5.005000||p
+PL_bufend|5.011000||p
+PL_bufptr|5.011000||p
+PL_compiling|5.004050||p
+PL_copline|5.011000||p
+PL_curcop|5.004050||p
+PL_curstash|5.004050||p
+PL_debstash|5.004050||p
+PL_defgv|5.004050||p
+PL_diehook|5.004050||p
+PL_dirty|5.004050||p
+PL_dowarn|||pn
+PL_errgv|5.004050||p
+PL_error_count|5.011000||p
+PL_expect|5.011000||p
+PL_hexdigit|5.005000||p
+PL_hints|5.005000||p
+PL_in_my_stash|5.011000||p
+PL_in_my|5.011000||p
+PL_last_in_gv|||n
+PL_laststatval|5.005000||p
+PL_lex_state|5.011000||p
+PL_lex_stuff|5.011000||p
+PL_linestr|5.011000||p
+PL_modglobal||5.005000|n
+PL_na|5.004050||pn
+PL_no_modify|5.006000||p
+PL_ofsgv|||n
+PL_parser|5.009005||p
+PL_perl_destruct_level|5.004050||p
+PL_perldb|5.004050||p
+PL_ppaddr|5.006000||p
+PL_rsfp_filters|5.004050||p
+PL_rsfp|5.004050||p
+PL_rs|||n
+PL_signals|5.008001||p
+PL_stack_base|5.004050||p
+PL_stack_sp|5.004050||p
+PL_statcache|5.005000||p
+PL_stdingv|5.004050||p
+PL_sv_arenaroot|5.004050||p
+PL_sv_no|5.004050||pn
+PL_sv_undef|5.004050||pn
+PL_sv_yes|5.004050||pn
+PL_tainted|5.004050||p
+PL_tainting|5.004050||p
+PL_tokenbuf|5.011000||p
+POP_MULTICALL||5.011000|
+POPi|||n
+POPl|||n
+POPn|||n
+POPpbytex||5.007001|n
+POPpx||5.005030|n
+POPp|||n
+POPs|||n
+PTR2IV|5.006000||p
+PTR2NV|5.006000||p
+PTR2UV|5.006000||p
+PTR2nat|5.009003||p
+PTR2ul|5.007001||p
+PTRV|5.006000||p
+PUSHMARK|||
+PUSH_MULTICALL||5.011000|
+PUSHi|||
+PUSHmortal|5.009002||p
+PUSHn|||
+PUSHp|||
+PUSHs|||
+PUSHu|5.004000||p
+PUTBACK|||
+PerlIO_clearerr||5.007003|
+PerlIO_close||5.007003|
+PerlIO_context_layers||5.009004|
+PerlIO_eof||5.007003|
+PerlIO_error||5.007003|
+PerlIO_fileno||5.007003|
+PerlIO_fill||5.007003|
+PerlIO_flush||5.007003|
+PerlIO_get_base||5.007003|
+PerlIO_get_bufsiz||5.007003|
+PerlIO_get_cnt||5.007003|
+PerlIO_get_ptr||5.007003|
+PerlIO_read||5.007003|
+PerlIO_seek||5.007003|
+PerlIO_set_cnt||5.007003|
+PerlIO_set_ptrcnt||5.007003|
+PerlIO_setlinebuf||5.007003|
+PerlIO_stderr||5.007003|
+PerlIO_stdin||5.007003|
+PerlIO_stdout||5.007003|
+PerlIO_tell||5.007003|
+PerlIO_unread||5.007003|
+PerlIO_write||5.007003|
+Perl_signbit||5.009005|n
+PoisonFree|5.009004||p
+PoisonNew|5.009004||p
+PoisonWith|5.009004||p
+Poison|5.008000||p
+RETVAL|||n
+Renewc|||
+Renew|||
+SAVECLEARSV|||
+SAVECOMPPAD|||
+SAVEPADSV|||
+SAVETMPS|||
+SAVE_DEFSV|5.004050||p
+SPAGAIN|||
+SP|||
+START_EXTERN_C|5.005000||p
+START_MY_CXT|5.007003||p
+STMT_END|||p
+STMT_START|||p
+STR_WITH_LEN|5.009003||p
+ST|||
+SV_CONST_RETURN|5.009003||p
+SV_COW_DROP_PV|5.008001||p
+SV_COW_SHARED_HASH_KEYS|5.009005||p
+SV_GMAGIC|5.007002||p
+SV_HAS_TRAILING_NUL|5.009004||p
+SV_IMMEDIATE_UNREF|5.007001||p
+SV_MUTABLE_RETURN|5.009003||p
+SV_NOSTEAL|5.009002||p
+SV_SMAGIC|5.009003||p
+SV_UTF8_NO_ENCODING|5.008001||p
+SVfARG|5.009005||p
+SVf_UTF8|5.006000||p
+SVf|5.006000||p
+SVt_IV|||
+SVt_NV|||
+SVt_PVAV|||
+SVt_PVCV|||
+SVt_PVHV|||
+SVt_PVMG|||
+SVt_PV|||
+Safefree|||
+Slab_Alloc|||
+Slab_Free|||
+Slab_to_rw|||
+StructCopy|||
+SvCUR_set|||
+SvCUR|||
+SvEND|||
+SvGAMAGIC||5.006001|
+SvGETMAGIC|5.004050||p
+SvGROW|||
+SvIOK_UV||5.006000|
+SvIOK_notUV||5.006000|
+SvIOK_off|||
+SvIOK_only_UV||5.006000|
+SvIOK_only|||
+SvIOK_on|||
+SvIOKp|||
+SvIOK|||
+SvIVX|||
+SvIV_nomg|5.009001||p
+SvIV_set|||
+SvIVx|||
+SvIV|||
+SvIsCOW_shared_hash||5.008003|
+SvIsCOW||5.008003|
+SvLEN_set|||
+SvLEN|||
+SvLOCK||5.007003|
+SvMAGIC_set|5.009003||p
+SvNIOK_off|||
+SvNIOKp|||
+SvNIOK|||
+SvNOK_off|||
+SvNOK_only|||
+SvNOK_on|||
+SvNOKp|||
+SvNOK|||
+SvNVX|||
+SvNV_set|||
+SvNVx|||
+SvNV|||
+SvOK|||
+SvOOK_offset||5.011000|
+SvOOK|||
+SvPOK_off|||
+SvPOK_only_UTF8||5.006000|
+SvPOK_only|||
+SvPOK_on|||
+SvPOKp|||
+SvPOK|||
+SvPVX_const|5.009003||p
+SvPVX_mutable|5.009003||p
+SvPVX|||
+SvPV_const|5.009003||p
+SvPV_flags_const_nolen|5.009003||p
+SvPV_flags_const|5.009003||p
+SvPV_flags_mutable|5.009003||p
+SvPV_flags|5.007002||p
+SvPV_force_flags_mutable|5.009003||p
+SvPV_force_flags_nolen|5.009003||p
+SvPV_force_flags|5.007002||p
+SvPV_force_mutable|5.009003||p
+SvPV_force_nolen|5.009003||p
+SvPV_force_nomg_nolen|5.009003||p
+SvPV_force_nomg|5.007002||p
+SvPV_force|||p
+SvPV_mutable|5.009003||p
+SvPV_nolen_const|5.009003||p
+SvPV_nolen|5.006000||p
+SvPV_nomg_const_nolen|5.009003||p
+SvPV_nomg_const|5.009003||p
+SvPV_nomg|5.007002||p
+SvPV_renew|5.009003||p
+SvPV_set|||
+SvPVbyte_force||5.009002|
+SvPVbyte_nolen||5.006000|
+SvPVbytex_force||5.006000|
+SvPVbytex||5.006000|
+SvPVbyte|5.006000||p
+SvPVutf8_force||5.006000|
+SvPVutf8_nolen||5.006000|
+SvPVutf8x_force||5.006000|
+SvPVutf8x||5.006000|
+SvPVutf8||5.006000|
+SvPVx|||
+SvPV|||
+SvREFCNT_dec|||
+SvREFCNT_inc_NN|5.009004||p
+SvREFCNT_inc_simple_NN|5.009004||p
+SvREFCNT_inc_simple_void_NN|5.009004||p
+SvREFCNT_inc_simple_void|5.009004||p
+SvREFCNT_inc_simple|5.009004||p
+SvREFCNT_inc_void_NN|5.009004||p
+SvREFCNT_inc_void|5.009004||p
+SvREFCNT_inc|||p
+SvREFCNT|||
+SvROK_off|||
+SvROK_on|||
+SvROK|||
+SvRV_set|5.009003||p
+SvRV|||
+SvRXOK||5.009005|
+SvRX||5.009005|
+SvSETMAGIC|||
+SvSHARED_HASH|5.009003||p
+SvSHARE||5.007003|
+SvSTASH_set|5.009003||p
+SvSTASH|||
+SvSetMagicSV_nosteal||5.004000|
+SvSetMagicSV||5.004000|
+SvSetSV_nosteal||5.004000|
+SvSetSV|||
+SvTAINTED_off||5.004000|
+SvTAINTED_on||5.004000|
+SvTAINTED||5.004000|
+SvTAINT|||
+SvTRUE|||
+SvTYPE|||
+SvUNLOCK||5.007003|
+SvUOK|5.007001|5.006000|p
+SvUPGRADE|||
+SvUTF8_off||5.006000|
+SvUTF8_on||5.006000|
+SvUTF8||5.006000|
+SvUVXx|5.004000||p
+SvUVX|5.004000||p
+SvUV_nomg|5.009001||p
+SvUV_set|5.009003||p
+SvUVx|5.004000||p
+SvUV|5.004000||p
+SvVOK||5.008001|
+SvVSTRING_mg|5.009004||p
+THIS|||n
+UNDERBAR|5.009002||p
+UTF8_MAXBYTES|5.009002||p
+UVSIZE|5.006000||p
+UVTYPE|5.006000||p
+UVXf|5.007001||p
+UVof|5.006000||p
+UVuf|5.006000||p
+UVxf|5.006000||p
+WARN_ALL|5.006000||p
+WARN_AMBIGUOUS|5.006000||p
+WARN_ASSERTIONS|5.011000||p
+WARN_BAREWORD|5.006000||p
+WARN_CLOSED|5.006000||p
+WARN_CLOSURE|5.006000||p
+WARN_DEBUGGING|5.006000||p
+WARN_DEPRECATED|5.006000||p
+WARN_DIGIT|5.006000||p
+WARN_EXEC|5.006000||p
+WARN_EXITING|5.006000||p
+WARN_GLOB|5.006000||p
+WARN_INPLACE|5.006000||p
+WARN_INTERNAL|5.006000||p
+WARN_IO|5.006000||p
+WARN_LAYER|5.008000||p
+WARN_MALLOC|5.006000||p
+WARN_MISC|5.006000||p
+WARN_NEWLINE|5.006000||p
+WARN_NUMERIC|5.006000||p
+WARN_ONCE|5.006000||p
+WARN_OVERFLOW|5.006000||p
+WARN_PACK|5.006000||p
+WARN_PARENTHESIS|5.006000||p
+WARN_PIPE|5.006000||p
+WARN_PORTABLE|5.006000||p
+WARN_PRECEDENCE|5.006000||p
+WARN_PRINTF|5.006000||p
+WARN_PROTOTYPE|5.006000||p
+WARN_QW|5.006000||p
+WARN_RECURSION|5.006000||p
+WARN_REDEFINE|5.006000||p
+WARN_REGEXP|5.006000||p
+WARN_RESERVED|5.006000||p
+WARN_SEMICOLON|5.006000||p
+WARN_SEVERE|5.006000||p
+WARN_SIGNAL|5.006000||p
+WARN_SUBSTR|5.006000||p
+WARN_SYNTAX|5.006000||p
+WARN_TAINT|5.006000||p
+WARN_THREADS|5.008000||p
+WARN_UNINITIALIZED|5.006000||p
+WARN_UNOPENED|5.006000||p
+WARN_UNPACK|5.006000||p
+WARN_UNTIE|5.006000||p
+WARN_UTF8|5.006000||p
+WARN_VOID|5.006000||p
+XCPT_CATCH|5.009002||p
+XCPT_RETHROW|5.009002||p
+XCPT_TRY_END|5.009002||p
+XCPT_TRY_START|5.009002||p
+XPUSHi|||
+XPUSHmortal|5.009002||p
+XPUSHn|||
+XPUSHp|||
+XPUSHs|||
+XPUSHu|5.004000||p
+XSPROTO|5.010000||p
+XSRETURN_EMPTY|||
+XSRETURN_IV|||
+XSRETURN_NO|||
+XSRETURN_NV|||
+XSRETURN_PV|||
+XSRETURN_UNDEF|||
+XSRETURN_UV|5.008001||p
+XSRETURN_YES|||
+XSRETURN|||p
+XST_mIV|||
+XST_mNO|||
+XST_mNV|||
+XST_mPV|||
+XST_mUNDEF|||
+XST_mUV|5.008001||p
+XST_mYES|||
+XS_VERSION_BOOTCHECK|||
+XS_VERSION|||
+XSprePUSH|5.006000||p
+XS|||
+ZeroD|5.009002||p
+Zero|||
+_aMY_CXT|5.007003||p
+_pMY_CXT|5.007003||p
+aMY_CXT_|5.007003||p
+aMY_CXT|5.007003||p
+aTHXR_|5.011000||p
+aTHXR|5.011000||p
+aTHX_|5.006000||p
+aTHX|5.006000||p
+add_data|||n
+addmad|||
+allocmy|||
+amagic_call|||
+amagic_cmp_locale|||
+amagic_cmp|||
+amagic_i_ncmp|||
+amagic_ncmp|||
+any_dup|||
+ao|||
+append_elem|||
+append_list|||
+append_madprops|||
+apply_attrs_my|||
+apply_attrs_string||5.006001|
+apply_attrs|||
+apply|||
+atfork_lock||5.007003|n
+atfork_unlock||5.007003|n
+av_arylen_p||5.009003|
+av_clear|||
+av_create_and_push||5.009005|
+av_create_and_unshift_one||5.009005|
+av_delete||5.006000|
+av_exists||5.006000|
+av_extend|||
+av_fetch|||
+av_fill|||
+av_iter_p||5.011000|
+av_len|||
+av_make|||
+av_pop|||
+av_push|||
+av_reify|||
+av_shift|||
+av_store|||
+av_undef|||
+av_unshift|||
+ax|||n
+bad_type|||
+bind_match|||
+block_end|||
+block_gimme||5.004000|
+block_start|||
+boolSV|5.004000||p
+boot_core_PerlIO|||
+boot_core_UNIVERSAL|||
+boot_core_mro|||
+bytes_from_utf8||5.007001|
+bytes_to_uni|||n
+bytes_to_utf8||5.006001|
+call_argv|5.006000||p
+call_atexit||5.006000|
+call_list||5.004000|
+call_method|5.006000||p
+call_pv|5.006000||p
+call_sv|5.006000||p
+calloc||5.007002|n
+cando|||
+cast_i32||5.006000|
+cast_iv||5.006000|
+cast_ulong||5.006000|
+cast_uv||5.006000|
+check_type_and_open|||
+check_uni|||
+checkcomma|||
+checkposixcc|||
+ckWARN|5.006000||p
+ck_anoncode|||
+ck_bitop|||
+ck_concat|||
+ck_defined|||
+ck_delete|||
+ck_die|||
+ck_each|||
+ck_eof|||
+ck_eval|||
+ck_exec|||
+ck_exists|||
+ck_exit|||
+ck_ftst|||
+ck_fun|||
+ck_glob|||
+ck_grep|||
+ck_index|||
+ck_join|||
+ck_lfun|||
+ck_listiob|||
+ck_match|||
+ck_method|||
+ck_null|||
+ck_open|||
+ck_readline|||
+ck_repeat|||
+ck_require|||
+ck_return|||
+ck_rfun|||
+ck_rvconst|||
+ck_sassign|||
+ck_select|||
+ck_shift|||
+ck_sort|||
+ck_spair|||
+ck_split|||
+ck_subr|||
+ck_substr|||
+ck_svconst|||
+ck_trunc|||
+ck_unpack|||
+ckwarn_d||5.009003|
+ckwarn||5.009003|
+cl_and|||n
+cl_anything|||n
+cl_init_zero|||n
+cl_init|||n
+cl_is_anything|||n
+cl_or|||n
+clear_placeholders|||
+closest_cop|||
+convert|||
+cop_free|||
+cr_textfilter|||
+create_eval_scope|||
+croak_nocontext|||vn
+croak_xs_usage||5.011000|
+croak|||v
+csighandler||5.009003|n
+curmad|||
+custom_op_desc||5.007003|
+custom_op_name||5.007003|
+cv_ckproto_len|||
+cv_clone|||
+cv_const_sv||5.004000|
+cv_dump|||
+cv_undef|||
+cx_dump||5.005000|
+cx_dup|||
+cxinc|||
+dAXMARK|5.009003||p
+dAX|5.007002||p
+dITEMS|5.007002||p
+dMARK|||
+dMULTICALL||5.009003|
+dMY_CXT_SV|5.007003||p
+dMY_CXT|5.007003||p
+dNOOP|5.006000||p
+dORIGMARK|||
+dSP|||
+dTHR|5.004050||p
+dTHXR|5.011000||p
+dTHXa|5.006000||p
+dTHXoa|5.006000||p
+dTHX|5.006000||p
+dUNDERBAR|5.009002||p
+dVAR|5.009003||p
+dXCPT|5.009002||p
+dXSARGS|||
+dXSI32|||
+dXSTARG|5.006000||p
+deb_curcv|||
+deb_nocontext|||vn
+deb_stack_all|||
+deb_stack_n|||
+debop||5.005000|
+debprofdump||5.005000|
+debprof|||
+debstackptrs||5.007003|
+debstack||5.007003|
+debug_start_match|||
+deb||5.007003|v
+del_sv|||
+delete_eval_scope|||
+delimcpy||5.004000|
+deprecate_old|||
+deprecate|||
+despatch_signals||5.007001|
+destroy_matcher|||
+die_nocontext|||vn
+die_where|||
+die|||v
+dirp_dup|||
+div128|||
+djSP|||
+do_aexec5|||
+do_aexec|||
+do_aspawn|||
+do_binmode||5.004050|
+do_chomp|||
+do_chop|||
+do_close|||
+do_dump_pad|||
+do_eof|||
+do_exec3|||
+do_execfree|||
+do_exec|||
+do_gv_dump||5.006000|
+do_gvgv_dump||5.006000|
+do_hv_dump||5.006000|
+do_ipcctl|||
+do_ipcget|||
+do_join|||
+do_kv|||
+do_magic_dump||5.006000|
+do_msgrcv|||
+do_msgsnd|||
+do_oddball|||
+do_op_dump||5.006000|
+do_op_xmldump|||
+do_open9||5.006000|
+do_openn||5.007001|
+do_open||5.004000|
+do_pmop_dump||5.006000|
+do_pmop_xmldump|||
+do_print|||
+do_readline|||
+do_seek|||
+do_semop|||
+do_shmio|||
+do_smartmatch|||
+do_spawn_nowait|||
+do_spawn|||
+do_sprintf|||
+do_sv_dump||5.006000|
+do_sysseek|||
+do_tell|||
+do_trans_complex_utf8|||
+do_trans_complex|||
+do_trans_count_utf8|||
+do_trans_count|||
+do_trans_simple_utf8|||
+do_trans_simple|||
+do_trans|||
+do_vecget|||
+do_vecset|||
+do_vop|||
+docatch|||
+doeval|||
+dofile|||
+dofindlabel|||
+doform|||
+doing_taint||5.008001|n
+dooneliner|||
+doopen_pm|||
+doparseform|||
+dopoptoeval|||
+dopoptogiven|||
+dopoptolabel|||
+dopoptoloop|||
+dopoptosub_at|||
+dopoptowhen|||
+doref||5.009003|
+dounwind|||
+dowantarray|||
+dump_all||5.006000|
+dump_eval||5.006000|
+dump_exec_pos|||
+dump_fds|||
+dump_form||5.006000|
+dump_indent||5.006000|v
+dump_mstats|||
+dump_packsubs||5.006000|
+dump_sub||5.006000|
+dump_sv_child|||
+dump_trie_interim_list|||
+dump_trie_interim_table|||
+dump_trie|||
+dump_vindent||5.006000|
+dumpuntil|||
+dup_attrlist|||
+emulate_cop_io|||
+eval_pv|5.006000||p
+eval_sv|5.006000||p
+exec_failed|||
+expect_number|||
+fbm_compile||5.005000|
+fbm_instr||5.005000|
+feature_is_enabled|||
+fetch_cop_label||5.011000|
+filter_add|||
+filter_del|||
+filter_gets|||
+filter_read|||
+find_and_forget_pmops|||
+find_array_subscript|||
+find_beginning|||
+find_byclass|||
+find_hash_subscript|||
+find_in_my_stash|||
+find_runcv||5.008001|
+find_rundefsvoffset||5.009002|
+find_script|||
+find_uninit_var|||
+first_symbol|||n
+fold_constants|||
+forbid_setid|||
+force_ident|||
+force_list|||
+force_next|||
+force_version|||
+force_word|||
+forget_pmop|||
+form_nocontext|||vn
+form||5.004000|v
+fp_dup|||
+fprintf_nocontext|||vn
+free_global_struct|||
+free_tied_hv_pool|||
+free_tmps|||
+gen_constant_list|||
+get_arena|||
+get_aux_mg|||
+get_av|5.006000||p
+get_context||5.006000|n
+get_cvn_flags||5.009005|
+get_cv|5.006000||p
+get_db_sub|||
+get_debug_opts|||
+get_hash_seed|||
+get_hv|5.006000||p
+get_isa_hash|||
+get_mstats|||
+get_no_modify|||
+get_num|||
+get_op_descs||5.005000|
+get_op_names||5.005000|
+get_opargs|||
+get_ppaddr||5.006000|
+get_re_arg|||
+get_sv|5.006000||p
+get_vtbl||5.005030|
+getcwd_sv||5.007002|
+getenv_len|||
+glob_2number|||
+glob_assign_glob|||
+glob_assign_ref|||
+gp_dup|||
+gp_free|||
+gp_ref|||
+grok_bin|5.007003||p
+grok_hex|5.007003||p
+grok_number|5.007002||p
+grok_numeric_radix|5.007002||p
+grok_oct|5.007003||p
+group_end|||
+gv_AVadd|||
+gv_HVadd|||
+gv_IOadd|||
+gv_SVadd|||
+gv_autoload4||5.004000|
+gv_check|||
+gv_const_sv||5.009003|
+gv_dump||5.006000|
+gv_efullname3||5.004000|
+gv_efullname4||5.006001|
+gv_efullname|||
+gv_ename|||
+gv_fetchfile_flags||5.009005|
+gv_fetchfile|||
+gv_fetchmeth_autoload||5.007003|
+gv_fetchmethod_autoload||5.004000|
+gv_fetchmethod_flags||5.011000|
+gv_fetchmethod|||
+gv_fetchmeth|||
+gv_fetchpvn_flags|5.009002||p
+gv_fetchpvs|5.009004||p
+gv_fetchpv|||
+gv_fetchsv||5.009002|
+gv_fullname3||5.004000|
+gv_fullname4||5.006001|
+gv_fullname|||
+gv_get_super_pkg|||
+gv_handler||5.007001|
+gv_init_sv|||
+gv_init|||
+gv_name_set||5.009004|
+gv_stashpvn|5.004000||p
+gv_stashpvs|5.009003||p
+gv_stashpv|||
+gv_stashsv|||
+he_dup|||
+hek_dup|||
+hfreeentries|||
+hsplit|||
+hv_assert||5.011000|
+hv_auxinit|||n
+hv_backreferences_p|||
+hv_clear_placeholders||5.009001|
+hv_clear|||
+hv_common_key_len||5.010000|
+hv_common||5.010000|
+hv_copy_hints_hv|||
+hv_delayfree_ent||5.004000|
+hv_delete_common|||
+hv_delete_ent||5.004000|
+hv_delete|||
+hv_eiter_p||5.009003|
+hv_eiter_set||5.009003|
+hv_exists_ent||5.004000|
+hv_exists|||
+hv_fetch_ent||5.004000|
+hv_fetchs|5.009003||p
+hv_fetch|||
+hv_free_ent||5.004000|
+hv_iterinit|||
+hv_iterkeysv||5.004000|
+hv_iterkey|||
+hv_iternext_flags||5.008000|
+hv_iternextsv|||
+hv_iternext|||
+hv_iterval|||
+hv_kill_backrefs|||
+hv_ksplit||5.004000|
+hv_magic_check|||n
+hv_magic|||
+hv_name_set||5.009003|
+hv_notallowed|||
+hv_placeholders_get||5.009003|
+hv_placeholders_p||5.009003|
+hv_placeholders_set||5.009003|
+hv_riter_p||5.009003|
+hv_riter_set||5.009003|
+hv_scalar||5.009001|
+hv_store_ent||5.004000|
+hv_store_flags||5.008000|
+hv_stores|5.009004||p
+hv_store|||
+hv_undef|||
+ibcmp_locale||5.004000|
+ibcmp_utf8||5.007003|
+ibcmp|||
+incline|||
+incpush_if_exists|||
+incpush_use_sep|||
+incpush|||
+ingroup|||
+init_argv_symbols|||
+init_debugger|||
+init_global_struct|||
+init_i18nl10n||5.006000|
+init_i18nl14n||5.006000|
+init_ids|||
+init_interp|||
+init_main_stash|||
+init_perllib|||
+init_postdump_symbols|||
+init_predump_symbols|||
+init_stacks||5.005000|
+init_tm||5.007002|
+instr|||
+intro_my|||
+intuit_method|||
+intuit_more|||
+invert|||
+io_close|||
+isALNUMC|5.006000||p
+isALNUM|||
+isALPHA|||
+isASCII|5.006000||p
+isBLANK|5.006001||p
+isCNTRL|5.006000||p
+isDIGIT|||
+isGRAPH|5.006000||p
+isGV_with_GP|5.009004||p
+isLOWER|||
+isPRINT|5.004000||p
+isPSXSPC|5.006001||p
+isPUNCT|5.006000||p
+isSPACE|||
+isUPPER|||
+isXDIGIT|5.006000||p
+is_an_int|||
+is_gv_magical_sv|||
+is_handle_constructor|||n
+is_list_assignment|||
+is_lvalue_sub||5.007001|
+is_uni_alnum_lc||5.006000|
+is_uni_alnumc_lc||5.006000|
+is_uni_alnumc||5.006000|
+is_uni_alnum||5.006000|
+is_uni_alpha_lc||5.006000|
+is_uni_alpha||5.006000|
+is_uni_ascii_lc||5.006000|
+is_uni_ascii||5.006000|
+is_uni_cntrl_lc||5.006000|
+is_uni_cntrl||5.006000|
+is_uni_digit_lc||5.006000|
+is_uni_digit||5.006000|
+is_uni_graph_lc||5.006000|
+is_uni_graph||5.006000|
+is_uni_idfirst_lc||5.006000|
+is_uni_idfirst||5.006000|
+is_uni_lower_lc||5.006000|
+is_uni_lower||5.006000|
+is_uni_print_lc||5.006000|
+is_uni_print||5.006000|
+is_uni_punct_lc||5.006000|
+is_uni_punct||5.006000|
+is_uni_space_lc||5.006000|
+is_uni_space||5.006000|
+is_uni_upper_lc||5.006000|
+is_uni_upper||5.006000|
+is_uni_xdigit_lc||5.006000|
+is_uni_xdigit||5.006000|
+is_utf8_alnumc||5.006000|
+is_utf8_alnum||5.006000|
+is_utf8_alpha||5.006000|
+is_utf8_ascii||5.006000|
+is_utf8_char_slow|||n
+is_utf8_char||5.006000|
+is_utf8_cntrl||5.006000|
+is_utf8_common|||
+is_utf8_digit||5.006000|
+is_utf8_graph||5.006000|
+is_utf8_idcont||5.008000|
+is_utf8_idfirst||5.006000|
+is_utf8_lower||5.006000|
+is_utf8_mark||5.006000|
+is_utf8_print||5.006000|
+is_utf8_punct||5.006000|
+is_utf8_space||5.006000|
+is_utf8_string_loclen||5.009003|
+is_utf8_string_loc||5.008001|
+is_utf8_string||5.006001|
+is_utf8_upper||5.006000|
+is_utf8_xdigit||5.006000|
+isa_lookup|||
+items|||n
+ix|||n
+jmaybe|||
+join_exact|||
+keyword|||
+leave_scope|||
+lex_end|||
+lex_start|||
+linklist|||
+listkids|||
+list|||
+load_module_nocontext|||vn
+load_module|5.006000||pv
+localize|||
+looks_like_bool|||
+looks_like_number|||
+lop|||
+mPUSHi|5.009002||p
+mPUSHn|5.009002||p
+mPUSHp|5.009002||p
+mPUSHs|5.011000||p
+mPUSHu|5.009002||p
+mXPUSHi|5.009002||p
+mXPUSHn|5.009002||p
+mXPUSHp|5.009002||p
+mXPUSHs|5.011000||p
+mXPUSHu|5.009002||p
+mad_free|||
+madlex|||
+madparse|||
+magic_clear_all_env|||
+magic_clearenv|||
+magic_clearhint|||
+magic_clearisa|||
+magic_clearpack|||
+magic_clearsig|||
+magic_dump||5.006000|
+magic_existspack|||
+magic_freearylen_p|||
+magic_freeovrld|||
+magic_getarylen|||
+magic_getdefelem|||
+magic_getnkeys|||
+magic_getpack|||
+magic_getpos|||
+magic_getsig|||
+magic_getsubstr|||
+magic_gettaint|||
+magic_getuvar|||
+magic_getvec|||
+magic_get|||
+magic_killbackrefs|||
+magic_len|||
+magic_methcall|||
+magic_methpack|||
+magic_nextpack|||
+magic_regdata_cnt|||
+magic_regdatum_get|||
+magic_regdatum_set|||
+magic_scalarpack|||
+magic_set_all_env|||
+magic_setamagic|||
+magic_setarylen|||
+magic_setcollxfrm|||
+magic_setdbline|||
+magic_setdefelem|||
+magic_setenv|||
+magic_sethint|||
+magic_setisa|||
+magic_setmglob|||
+magic_setnkeys|||
+magic_setpack|||
+magic_setpos|||
+magic_setregexp|||
+magic_setsig|||
+magic_setsubstr|||
+magic_settaint|||
+magic_setutf8|||
+magic_setuvar|||
+magic_setvec|||
+magic_set|||
+magic_sizepack|||
+magic_wipepack|||
+make_matcher|||
+make_trie_failtable|||
+make_trie|||
+malloc_good_size|||n
+malloced_size|||n
+malloc||5.007002|n
+markstack_grow|||
+matcher_matches_sv|||
+measure_struct|||
+memEQ|5.004000||p
+memNE|5.004000||p
+mem_collxfrm|||
+mem_log_common|||n
+mess_alloc|||
+mess_nocontext|||vn
+mess||5.006000|v
+method_common|||
+mfree||5.007002|n
+mg_clear|||
+mg_copy|||
+mg_dup|||
+mg_find|||
+mg_free|||
+mg_get|||
+mg_length||5.005000|
+mg_localize|||
+mg_magical|||
+mg_set|||
+mg_size||5.005000|
+mini_mktime||5.007002|
+missingterm|||
+mode_from_discipline|||
+modkids|||
+mod|||
+more_bodies|||
+more_sv|||
+moreswitches|||
+mro_get_from_name||5.011000|
+mro_get_linear_isa_dfs|||
+mro_get_linear_isa||5.009005|
+mro_get_private_data||5.011000|
+mro_isa_changed_in|||
+mro_meta_dup|||
+mro_meta_init|||
+mro_method_changed_in||5.009005|
+mro_register||5.011000|
+mro_set_mro||5.011000|
+mro_set_private_data||5.011000|
+mul128|||
+mulexp10|||n
+my_atof2||5.007002|
+my_atof||5.006000|
+my_attrs|||
+my_bcopy|||n
+my_betoh16|||n
+my_betoh32|||n
+my_betoh64|||n
+my_betohi|||n
+my_betohl|||n
+my_betohs|||n
+my_bzero|||n
+my_chsize|||
+my_clearenv|||
+my_cxt_index|||
+my_cxt_init|||
+my_dirfd||5.009005|
+my_exit_jump|||
+my_exit|||
+my_failure_exit||5.004000|
+my_fflush_all||5.006000|
+my_fork||5.007003|n
+my_htobe16|||n
+my_htobe32|||n
+my_htobe64|||n
+my_htobei|||n
+my_htobel|||n
+my_htobes|||n
+my_htole16|||n
+my_htole32|||n
+my_htole64|||n
+my_htolei|||n
+my_htolel|||n
+my_htoles|||n
+my_htonl|||
+my_kid|||
+my_letoh16|||n
+my_letoh32|||n
+my_letoh64|||n
+my_letohi|||n
+my_letohl|||n
+my_letohs|||n
+my_lstat|||
+my_memcmp||5.004000|n
+my_memset|||n
+my_ntohl|||
+my_pclose||5.004000|
+my_popen_list||5.007001|
+my_popen||5.004000|
+my_setenv|||
+my_snprintf|5.009004||pvn
+my_socketpair||5.007003|n
+my_sprintf|5.009003||pvn
+my_stat|||
+my_strftime||5.007002|
+my_strlcat|5.009004||pn
+my_strlcpy|5.009004||pn
+my_swabn|||n
+my_swap|||
+my_unexec|||
+my_vsnprintf||5.009004|n
+need_utf8|||n
+newANONATTRSUB||5.006000|
+newANONHASH|||
+newANONLIST|||
+newANONSUB|||
+newASSIGNOP|||
+newATTRSUB||5.006000|
+newAVREF|||
+newAV|||
+newBINOP|||
+newCONDOP|||
+newCONSTSUB|5.004050||p
+newCVREF|||
+newDEFSVOP|||
+newFORM|||
+newFOROP|||
+newGIVENOP||5.009003|
+newGIVWHENOP|||
+newGP|||
+newGVOP|||
+newGVREF|||
+newGVgen|||
+newHVREF|||
+newHVhv||5.005000|
+newHV|||
+newIO|||
+newLISTOP|||
+newLOGOP|||
+newLOOPEX|||
+newLOOPOP|||
+newMADPROP|||
+newMADsv|||
+newMYSUB|||
+newNULLLIST|||
+newOP|||
+newPADOP|||
+newPMOP|||
+newPROG|||
+newPVOP|||
+newRANGE|||
+newRV_inc|5.004000||p
+newRV_noinc|5.004000||p
+newRV|||
+newSLICEOP|||
+newSTATEOP|||
+newSUB|||
+newSVOP|||
+newSVREF|||
+newSV_type|5.009005||p
+newSVhek||5.009003|
+newSViv|||
+newSVnv|||
+newSVpvf_nocontext|||vn
+newSVpvf||5.004000|v
+newSVpvn_flags|5.011000||p
+newSVpvn_share|5.007001||p
+newSVpvn_utf8|5.011000||p
+newSVpvn|5.004050||p
+newSVpvs_flags|5.011000||p
+newSVpvs_share||5.009003|
+newSVpvs|5.009003||p
+newSVpv|||
+newSVrv|||
+newSVsv|||
+newSVuv|5.006000||p
+newSV|||
+newTOKEN|||
+newUNOP|||
+newWHENOP||5.009003|
+newWHILEOP||5.009003|
+newXS_flags||5.009004|
+newXSproto||5.006000|
+newXS||5.006000|
+new_collate||5.006000|
+new_constant|||
+new_ctype||5.006000|
+new_he|||
+new_logop|||
+new_numeric||5.006000|
+new_stackinfo||5.005000|
+new_version||5.009000|
+new_warnings_bitfield|||
+next_symbol|||
+nextargv|||
+nextchar|||
+ninstr|||
+no_bareword_allowed|||
+no_fh_allowed|||
+no_op|||
+not_a_number|||
+nothreadhook||5.008000|
+nuke_stacks|||
+num_overflow|||n
+offer_nice_chunk|||
+oopsAV|||
+oopsHV|||
+op_clear|||
+op_const_sv|||
+op_dump||5.006000|
+op_free|||
+op_getmad_weak|||
+op_getmad|||
+op_null||5.007002|
+op_refcnt_dec|||
+op_refcnt_inc|||
+op_refcnt_lock||5.009002|
+op_refcnt_unlock||5.009002|
+op_xmldump|||
+open_script|||
+pMY_CXT_|5.007003||p
+pMY_CXT|5.007003||p
+pTHX_|5.006000||p
+pTHX|5.006000||p
+packWARN|5.007003||p
+pack_cat||5.007003|
+pack_rec|||
+package|||
+packlist||5.008001|
+pad_add_anon|||
+pad_add_name|||
+pad_alloc|||
+pad_block_start|||
+pad_check_dup|||
+pad_compname_type|||
+pad_findlex|||
+pad_findmy|||
+pad_fixup_inner_anons|||
+pad_free|||
+pad_leavemy|||
+pad_new|||
+pad_peg|||n
+pad_push|||
+pad_reset|||
+pad_setsv|||
+pad_sv||5.011000|
+pad_swipe|||
+pad_tidy|||
+pad_undef|||
+parse_body|||
+parse_unicode_opts|||
+parser_dup|||
+parser_free|||
+path_is_absolute|||n
+peep|||
+pending_Slabs_to_ro|||
+perl_alloc_using|||n
+perl_alloc|||n
+perl_clone_using|||n
+perl_clone|||n
+perl_construct|||n
+perl_destruct||5.007003|n
+perl_free|||n
+perl_parse||5.006000|n
+perl_run|||n
+pidgone|||
+pm_description|||
+pmflag|||
+pmop_dump||5.006000|
+pmop_xmldump|||
+pmruntime|||
+pmtrans|||
+pop_scope|||
+pregcomp||5.009005|
+pregexec|||
+pregfree2||5.011000|
+pregfree|||
+prepend_elem|||
+prepend_madprops|||
+printbuf|||
+printf_nocontext|||vn
+process_special_blocks|||
+ptr_table_clear||5.009005|
+ptr_table_fetch||5.009005|
+ptr_table_find|||n
+ptr_table_free||5.009005|
+ptr_table_new||5.009005|
+ptr_table_split||5.009005|
+ptr_table_store||5.009005|
+push_scope|||
+put_byte|||
+pv_display|5.006000||p
+pv_escape|5.009004||p
+pv_pretty|5.009004||p
+pv_uni_display||5.007003|
+qerror|||
+qsortsvu|||
+re_compile||5.009005|
+re_croak2|||
+re_dup_guts|||
+re_intuit_start||5.009005|
+re_intuit_string||5.006000|
+readpipe_override|||
+realloc||5.007002|n
+reentrant_free|||
+reentrant_init|||
+reentrant_retry|||vn
+reentrant_size|||
+ref_array_or_hash|||
+refcounted_he_chain_2hv|||
+refcounted_he_fetch|||
+refcounted_he_free|||
+refcounted_he_new_common|||
+refcounted_he_new|||
+refcounted_he_value|||
+refkids|||
+refto|||
+ref||5.011000|
+reg_check_named_buff_matched|||
+reg_named_buff_all||5.009005|
+reg_named_buff_exists||5.009005|
+reg_named_buff_fetch||5.009005|
+reg_named_buff_firstkey||5.009005|
+reg_named_buff_iter|||
+reg_named_buff_nextkey||5.009005|
+reg_named_buff_scalar||5.009005|
+reg_named_buff|||
+reg_namedseq|||
+reg_node|||
+reg_numbered_buff_fetch|||
+reg_numbered_buff_length|||
+reg_numbered_buff_store|||
+reg_qr_package|||
+reg_recode|||
+reg_scan_name|||
+reg_skipcomment|||
+reg_temp_copy|||
+reganode|||
+regatom|||
+regbranch|||
+regclass_swash||5.009004|
+regclass|||
+regcppop|||
+regcppush|||
+regcurly|||n
+regdump_extflags|||
+regdump||5.005000|
+regdupe_internal|||
+regexec_flags||5.005000|
+regfree_internal||5.009005|
+reghop3|||n
+reghop4|||n
+reghopmaybe3|||n
+reginclass|||
+reginitcolors||5.006000|
+reginsert|||
+regmatch|||
+regnext||5.005000|
+regpiece|||
+regpposixcc|||
+regprop|||
+regrepeat|||
+regtail_study|||
+regtail|||
+regtry|||
+reguni|||
+regwhite|||n
+reg|||
+repeatcpy|||
+report_evil_fh|||
+report_uninit|||
+require_pv||5.006000|
+require_tie_mod|||
+restore_magic|||
+rninstr|||
+rsignal_restore|||
+rsignal_save|||
+rsignal_state||5.004000|
+rsignal||5.004000|
+run_body|||
+run_user_filter|||
+runops_debug||5.005000|
+runops_standard||5.005000|
+rvpv_dup|||
+rxres_free|||
+rxres_restore|||
+rxres_save|||
+safesyscalloc||5.006000|n
+safesysfree||5.006000|n
+safesysmalloc||5.006000|n
+safesysrealloc||5.006000|n
+same_dirent|||
+save_I16||5.004000|
+save_I32|||
+save_I8||5.006000|
+save_adelete||5.011000|
+save_aelem||5.004050|
+save_alloc||5.006000|
+save_aptr|||
+save_ary|||
+save_bool||5.008001|
+save_clearsv|||
+save_delete|||
+save_destructor_x||5.006000|
+save_destructor||5.006000|
+save_freeop|||
+save_freepv|||
+save_freesv|||
+save_generic_pvref||5.006001|
+save_generic_svref||5.005030|
+save_gp||5.004000|
+save_hash|||
+save_hek_flags|||n
+save_helem_flags||5.011000|
+save_helem||5.004050|
+save_hints|||
+save_hptr|||
+save_int|||
+save_item|||
+save_iv||5.005000|
+save_lines|||
+save_list|||
+save_long|||
+save_magic|||
+save_mortalizesv||5.007001|
+save_nogv|||
+save_op|||
+save_padsv_and_mortalize||5.011000|
+save_pptr|||
+save_pushi32ptr|||
+save_pushptri32ptr|||
+save_pushptrptr|||
+save_pushptr||5.011000|
+save_re_context||5.006000|
+save_scalar_at|||
+save_scalar|||
+save_set_svflags||5.009000|
+save_shared_pvref||5.007003|
+save_sptr|||
+save_svref|||
+save_vptr||5.006000|
+savepvn|||
+savepvs||5.009003|
+savepv|||
+savesharedpvn||5.009005|
+savesharedpv||5.007003|
+savestack_grow_cnt||5.008001|
+savestack_grow|||
+savesvpv||5.009002|
+sawparens|||
+scalar_mod_type|||n
+scalarboolean|||
+scalarkids|||
+scalarseq|||
+scalarvoid|||
+scalar|||
+scan_bin||5.006000|
+scan_commit|||
+scan_const|||
+scan_formline|||
+scan_heredoc|||
+scan_hex|||
+scan_ident|||
+scan_inputsymbol|||
+scan_num||5.007001|
+scan_oct|||
+scan_pat|||
+scan_str|||
+scan_subst|||
+scan_trans|||
+scan_version||5.009001|
+scan_vstring||5.009005|
+scan_word|||
+scope|||
+screaminstr||5.005000|
+search_const|||
+seed||5.008001|
+sequence_num|||
+sequence_tail|||
+sequence|||
+set_context||5.006000|n
+set_numeric_local||5.006000|
+set_numeric_radix||5.006000|
+set_numeric_standard||5.006000|
+setdefout|||
+share_hek_flags|||
+share_hek||5.004000|
+si_dup|||
+sighandler|||n
+simplify_sort|||
+skipspace0|||
+skipspace1|||
+skipspace2|||
+skipspace|||
+softref2xv|||
+sortcv_stacked|||
+sortcv_xsub|||
+sortcv|||
+sortsv_flags||5.009003|
+sortsv||5.007003|
+space_join_names_mortal|||
+ss_dup|||
+stack_grow|||
+start_force|||
+start_glob|||
+start_subparse||5.004000|
+stashpv_hvname_match||5.011000|
+stdize_locale|||
+store_cop_label|||
+strEQ|||
+strGE|||
+strGT|||
+strLE|||
+strLT|||
+strNE|||
+str_to_version||5.006000|
+strip_return|||
+strnEQ|||
+strnNE|||
+study_chunk|||
+sub_crush_depth|||
+sublex_done|||
+sublex_push|||
+sublex_start|||
+sv_2bool|||
+sv_2cv|||
+sv_2io|||
+sv_2iuv_common|||
+sv_2iuv_non_preserve|||
+sv_2iv_flags||5.009001|
+sv_2iv|||
+sv_2mortal|||
+sv_2num|||
+sv_2nv|||
+sv_2pv_flags|5.007002||p
+sv_2pv_nolen|5.006000||p
+sv_2pvbyte_nolen|5.006000||p
+sv_2pvbyte|5.006000||p
+sv_2pvutf8_nolen||5.006000|
+sv_2pvutf8||5.006000|
+sv_2pv|||
+sv_2uv_flags||5.009001|
+sv_2uv|5.004000||p
+sv_add_arena|||
+sv_add_backref|||
+sv_backoff|||
+sv_bless|||
+sv_cat_decode||5.008001|
+sv_catpv_mg|5.004050||p
+sv_catpvf_mg_nocontext|||pvn
+sv_catpvf_mg|5.006000|5.004000|pv
+sv_catpvf_nocontext|||vn
+sv_catpvf||5.004000|v
+sv_catpvn_flags||5.007002|
+sv_catpvn_mg|5.004050||p
+sv_catpvn_nomg|5.007002||p
+sv_catpvn|||
+sv_catpvs|5.009003||p
+sv_catpv|||
+sv_catsv_flags||5.007002|
+sv_catsv_mg|5.004050||p
+sv_catsv_nomg|5.007002||p
+sv_catsv|||
+sv_catxmlpvn|||
+sv_catxmlsv|||
+sv_chop|||
+sv_clean_all|||
+sv_clean_objs|||
+sv_clear|||
+sv_cmp_locale||5.004000|
+sv_cmp|||
+sv_collxfrm|||
+sv_compile_2op||5.008001|
+sv_copypv||5.007003|
+sv_dec|||
+sv_del_backref|||
+sv_derived_from||5.004000|
+sv_destroyable||5.010000|
+sv_does||5.009004|
+sv_dump|||
+sv_dup_inc_multiple|||
+sv_dup|||
+sv_eq|||
+sv_exp_grow|||
+sv_force_normal_flags||5.007001|
+sv_force_normal||5.006000|
+sv_free2|||
+sv_free_arenas|||
+sv_free|||
+sv_gets||5.004000|
+sv_grow|||
+sv_i_ncmp|||
+sv_inc|||
+sv_insert_flags||5.011000|
+sv_insert|||
+sv_isa|||
+sv_isobject|||
+sv_iv||5.005000|
+sv_kill_backrefs|||
+sv_len_utf8||5.006000|
+sv_len|||
+sv_magic_portable|5.011000|5.004000|p
+sv_magicext||5.007003|
+sv_magic|||
+sv_mortalcopy|||
+sv_ncmp|||
+sv_newmortal|||
+sv_newref|||
+sv_nolocking||5.007003|
+sv_nosharing||5.007003|
+sv_nounlocking|||
+sv_nv||5.005000|
+sv_peek||5.005000|
+sv_pos_b2u_midway|||
+sv_pos_b2u||5.006000|
+sv_pos_u2b_cached|||
+sv_pos_u2b_forwards|||n
+sv_pos_u2b_midway|||n
+sv_pos_u2b||5.006000|
+sv_pvbyten_force||5.006000|
+sv_pvbyten||5.006000|
+sv_pvbyte||5.006000|
+sv_pvn_force_flags|5.007002||p
+sv_pvn_force|||
+sv_pvn_nomg|5.007003|5.005000|p
+sv_pvn||5.005000|
+sv_pvutf8n_force||5.006000|
+sv_pvutf8n||5.006000|
+sv_pvutf8||5.006000|
+sv_pv||5.006000|
+sv_recode_to_utf8||5.007003|
+sv_reftype|||
+sv_release_COW|||
+sv_replace|||
+sv_report_used|||
+sv_reset|||
+sv_rvweaken||5.006000|
+sv_setiv_mg|5.004050||p
+sv_setiv|||
+sv_setnv_mg|5.006000||p
+sv_setnv|||
+sv_setpv_mg|5.004050||p
+sv_setpvf_mg_nocontext|||pvn
+sv_setpvf_mg|5.006000|5.004000|pv
+sv_setpvf_nocontext|||vn
+sv_setpvf||5.004000|v
+sv_setpviv_mg||5.008001|
+sv_setpviv||5.008001|
+sv_setpvn_mg|5.004050||p
+sv_setpvn|||
+sv_setpvs|5.009004||p
+sv_setpv|||
+sv_setref_iv|||
+sv_setref_nv|||
+sv_setref_pvn|||
+sv_setref_pv|||
+sv_setref_uv||5.007001|
+sv_setsv_cow|||
+sv_setsv_flags||5.007002|
+sv_setsv_mg|5.004050||p
+sv_setsv_nomg|5.007002||p
+sv_setsv|||
+sv_setuv_mg|5.004050||p
+sv_setuv|5.004000||p
+sv_tainted||5.004000|
+sv_taint||5.004000|
+sv_true||5.005000|
+sv_unglob|||
+sv_uni_display||5.007003|
+sv_unmagic|||
+sv_unref_flags||5.007001|
+sv_unref|||
+sv_untaint||5.004000|
+sv_upgrade|||
+sv_usepvn_flags||5.009004|
+sv_usepvn_mg|5.004050||p
+sv_usepvn|||
+sv_utf8_decode||5.006000|
+sv_utf8_downgrade||5.006000|
+sv_utf8_encode||5.006000|
+sv_utf8_upgrade_flags_grow||5.011000|
+sv_utf8_upgrade_flags||5.007002|
+sv_utf8_upgrade_nomg||5.007002|
+sv_utf8_upgrade||5.007001|
+sv_uv|5.005000||p
+sv_vcatpvf_mg|5.006000|5.004000|p
+sv_vcatpvfn||5.004000|
+sv_vcatpvf|5.006000|5.004000|p
+sv_vsetpvf_mg|5.006000|5.004000|p
+sv_vsetpvfn||5.004000|
+sv_vsetpvf|5.006000|5.004000|p
+sv_xmlpeek|||
+svtype|||
+swallow_bom|||
+swap_match_buff|||
+swash_fetch||5.007002|
+swash_get|||
+swash_init||5.006000|
+sys_init3||5.010000|n
+sys_init||5.010000|n
+sys_intern_clear|||
+sys_intern_dup|||
+sys_intern_init|||
+sys_term||5.010000|n
+taint_env|||
+taint_proper|||
+tmps_grow||5.006000|
+toLOWER|||
+toUPPER|||
+to_byte_substr|||
+to_uni_fold||5.007003|
+to_uni_lower_lc||5.006000|
+to_uni_lower||5.007003|
+to_uni_title_lc||5.006000|
+to_uni_title||5.007003|
+to_uni_upper_lc||5.006000|
+to_uni_upper||5.007003|
+to_utf8_case||5.007003|
+to_utf8_fold||5.007003|
+to_utf8_lower||5.007003|
+to_utf8_substr|||
+to_utf8_title||5.007003|
+to_utf8_upper||5.007003|
+token_free|||
+token_getmad|||
+tokenize_use|||
+tokeq|||
+tokereport|||
+too_few_arguments|||
+too_many_arguments|||
+uiv_2buf|||n
+unlnk|||
+unpack_rec|||
+unpack_str||5.007003|
+unpackstring||5.008001|
+unshare_hek_or_pvn|||
+unshare_hek|||
+unsharepvn||5.004000|
+unwind_handler_stack|||
+update_debugger_info|||
+upg_version||5.009005|
+usage|||
+utf16_to_utf8_reversed||5.006001|
+utf16_to_utf8||5.006001|
+utf8_distance||5.006000|
+utf8_hop||5.006000|
+utf8_length||5.007001|
+utf8_mg_pos_cache_update|||
+utf8_to_bytes||5.006001|
+utf8_to_uvchr||5.007001|
+utf8_to_uvuni||5.007001|
+utf8n_to_uvchr|||
+utf8n_to_uvuni||5.007001|
+utilize|||
+uvchr_to_utf8_flags||5.007003|
+uvchr_to_utf8|||
+uvuni_to_utf8_flags||5.007003|
+uvuni_to_utf8||5.007001|
+validate_suid|||
+varname|||
+vcmp||5.009000|
+vcroak||5.006000|
+vdeb||5.007003|
+vdie_common|||
+vdie_croak_common|||
+vdie|||
+vform||5.006000|
+visit|||
+vivify_defelem|||
+vivify_ref|||
+vload_module|5.006000||p
+vmess||5.006000|
+vnewSVpvf|5.006000|5.004000|p
+vnormal||5.009002|
+vnumify||5.009000|
+vstringify||5.009000|
+vverify||5.009003|
+vwarner||5.006000|
+vwarn||5.006000|
+wait4pid|||
+warn_nocontext|||vn
+warner_nocontext|||vn
+warner|5.006000|5.004000|pv
+warn|||v
+watch|||
+whichsig|||
+write_no_mem|||
+write_to_stderr|||
+xmldump_all|||
+xmldump_attr|||
+xmldump_eval|||
+xmldump_form|||
+xmldump_indent|||v
+xmldump_packsubs|||
+xmldump_sub|||
+xmldump_vindent|||
+yyerror|||
+yylex|||
+yyparse|||
+yywarn|||
+);
+
+if (exists $opt{'list-unsupported'}) {
+ my $f;
+ for $f (sort { lc $a cmp lc $b } keys %API) {
+ next unless $API{$f}{todo};
+ print "$f ", '.'x(40-length($f)), " ", format_version($API{$f}{todo}), "\n";
+ }
+ exit 0;
+}
+
+# Scan for possible replacement candidates
+
+my(%replace, %need, %hints, %warnings, %depends);
+my $replace = 0;
+my($hint, $define, $function);
+
+sub find_api
+{
+ my $code = shift;
+ $code =~ s{
+ / (?: \*[^*]*\*+(?:[^$ccs][^*]*\*+)* / | /[^\r\n]*)
+ | "[^"\\]*(?:\\.[^"\\]*)*"
+ | '[^'\\]*(?:\\.[^'\\]*)*' }{}egsx;
+ grep { exists $API{$_} } $code =~ /(\w+)/mg;
+}
+
+while (<DATA>) {
+ if ($hint) {
+ my $h = $hint->[0] eq 'Hint' ? \%hints : \%warnings;
+ if (m{^\s*\*\s(.*?)\s*$}) {
+ for (@{$hint->[1]}) {
+ $h->{$_} ||= ''; # suppress warning with older perls
+ $h->{$_} .= "$1\n";
+ }
+ }
+ else { undef $hint }
+ }
+
+ $hint = [$1, [split /,?\s+/, $2]]
+ if m{^\s*$rccs\s+(Hint|Warning):\s+(\w+(?:,?\s+\w+)*)\s*$};
+
+ if ($define) {
+ if ($define->[1] =~ /\\$/) {
+ $define->[1] .= $_;
+ }
+ else {
+ if (exists $API{$define->[0]} && $define->[1] !~ /^DPPP_\(/) {
+ my @n = find_api($define->[1]);
+ push @{$depends{$define->[0]}}, @n if @n
+ }
+ undef $define;
+ }
+ }
+
+ $define = [$1, $2] if m{^\s*#\s*define\s+(\w+)(?:\([^)]*\))?\s+(.*)};
+
+ if ($function) {
+ if (/^}/) {
+ if (exists $API{$function->[0]}) {
+ my @n = find_api($function->[1]);
+ push @{$depends{$function->[0]}}, @n if @n
+ }
+ undef $function;
+ }
+ else {
+ $function->[1] .= $_;
+ }
+ }
+
+ $function = [$1, ''] if m{^DPPP_\(my_(\w+)\)};
+
+ $replace = $1 if m{^\s*$rccs\s+Replace:\s+(\d+)\s+$rcce\s*$};
+ $replace{$2} = $1 if $replace and m{^\s*#\s*define\s+(\w+)(?:\([^)]*\))?\s+(\w+)};
+ $replace{$2} = $1 if m{^\s*#\s*define\s+(\w+)(?:\([^)]*\))?\s+(\w+).*$rccs\s+Replace\s+$rcce};
+ $replace{$1} = $2 if m{^\s*$rccs\s+Replace (\w+) with (\w+)\s+$rcce\s*$};
+
+ if (m{^\s*$rccs\s+(\w+(\s*,\s*\w+)*)\s+depends\s+on\s+(\w+(\s*,\s*\w+)*)\s+$rcce\s*$}) {
+ my @deps = map { s/\s+//g; $_ } split /,/, $3;
+ my $d;
+ for $d (map { s/\s+//g; $_ } split /,/, $1) {
+ push @{$depends{$d}}, @deps;
+ }
+ }
+
+ $need{$1} = 1 if m{^#if\s+defined\(NEED_(\w+)(?:_GLOBAL)?\)};
+}
+
+for (values %depends) {
+ my %s;
+ $_ = [sort grep !$s{$_}++, @$_];
+}
+
+if (exists $opt{'api-info'}) {
+ my $f;
+ my $count = 0;
+ my $match = $opt{'api-info'} =~ m!^/(.*)/$! ? $1 : "^\Q$opt{'api-info'}\E\$";
+ for $f (sort { lc $a cmp lc $b } keys %API) {
+ next unless $f =~ /$match/;
+ print "\n=== $f ===\n\n";
+ my $info = 0;
+ if ($API{$f}{base} || $API{$f}{todo}) {
+ my $base = format_version($API{$f}{base} || $API{$f}{todo});
+ print "Supported at least starting from perl-$base.\n";
+ $info++;
+ }
+ if ($API{$f}{provided}) {
+ my $todo = $API{$f}{todo} ? format_version($API{$f}{todo}) : "5.003";
+ print "Support by $ppport provided back to perl-$todo.\n";
+ print "Support needs to be explicitly requested by NEED_$f.\n" if exists $need{$f};
+ print "Depends on: ", join(', ', @{$depends{$f}}), ".\n" if exists $depends{$f};
+ print "\n$hints{$f}" if exists $hints{$f};
+ print "\nWARNING:\n$warnings{$f}" if exists $warnings{$f};
+ $info++;
+ }
+ print "No portability information available.\n" unless $info;
+ $count++;
+ }
+ $count or print "Found no API matching '$opt{'api-info'}'.";
+ print "\n";
+ exit 0;
+}
+
+if (exists $opt{'list-provided'}) {
+ my $f;
+ for $f (sort { lc $a cmp lc $b } keys %API) {
+ next unless $API{$f}{provided};
+ my @flags;
+ push @flags, 'explicit' if exists $need{$f};
+ push @flags, 'depend' if exists $depends{$f};
+ push @flags, 'hint' if exists $hints{$f};
+ push @flags, 'warning' if exists $warnings{$f};
+ my $flags = @flags ? ' ['.join(', ', @flags).']' : '';
+ print "$f$flags\n";
+ }
+ exit 0;
+}
+
+my @files;
+my @srcext = qw( .xs .c .h .cc .cpp -c.inc -xs.inc );
+my $srcext = join '|', map { quotemeta $_ } @srcext;
+
+if (@ARGV) {
+ my %seen;
+ for (@ARGV) {
+ if (-e) {
+ if (-f) {
+ push @files, $_ unless $seen{$_}++;
+ }
+ else { warn "'$_' is not a file.\n" }
+ }
+ else {
+ my @new = grep { -f } glob $_
+ or warn "'$_' does not exist.\n";
+ push @files, grep { !$seen{$_}++ } @new;
+ }
+ }
+}
+else {
+ eval {
+ require File::Find;
+ File::Find::find(sub {
+ $File::Find::name =~ /($srcext)$/i
+ and push @files, $File::Find::name;
+ }, '.');
+ };
+ if ($@) {
+ @files = map { glob "*$_" } @srcext;
+ }
+}
+
+if (!@ARGV || $opt{filter}) {
+ my(@in, @out);
+ my %xsc = map { /(.*)\.xs$/ ? ("$1.c" => 1, "$1.cc" => 1) : () } @files;
+ for (@files) {
+ my $out = exists $xsc{$_} || /\b\Q$ppport\E$/i || !/($srcext)$/i;
+ push @{ $out ? \@out : \@in }, $_;
+ }
+ if (@ARGV && @out) {
+ warning("Skipping the following files (use --nofilter to avoid this):\n| ", join "\n| ", @out);
+ }
+ @files = @in;
+}
+
+die "No input files given!\n" unless @files;
+
+my(%files, %global, %revreplace);
+%revreplace = reverse %replace;
+my $filename;
+my $patch_opened = 0;
+
+for $filename (@files) {
+ unless (open IN, "<$filename") {
+ warn "Unable to read from $filename: $!\n";
+ next;
+ }
+
+ info("Scanning $filename ...");
+
+ my $c = do { local $/; <IN> };
+ close IN;
+
+ my %file = (orig => $c, changes => 0);
+
+ # Temporarily remove C/XS comments and strings from the code
+ my @ccom;
+
+ $c =~ s{
+ ( ^$HS*\#$HS*include\b[^\r\n]+\b(?:\Q$ppport\E|XSUB\.h)\b[^\r\n]*
+ | ^$HS*\#$HS*(?:define|elif|if(?:def)?)\b[^\r\n]* )
+ | ( ^$HS*\#[^\r\n]*
+ | "[^"\\]*(?:\\.[^"\\]*)*"
+ | '[^'\\]*(?:\\.[^'\\]*)*'
+ | / (?: \*[^*]*\*+(?:[^$ccs][^*]*\*+)* / | /[^\r\n]* ) )
+ }{ defined $2 and push @ccom, $2;
+ defined $1 ? $1 : "$ccs$#ccom$cce" }mgsex;
+
+ $file{ccom} = \@ccom;
+ $file{code} = $c;
+ $file{has_inc_ppport} = $c =~ /^$HS*#$HS*include[^\r\n]+\b\Q$ppport\E\b/m;
+
+ my $func;
+
+ for $func (keys %API) {
+ my $match = $func;
+ $match .= "|$revreplace{$func}" if exists $revreplace{$func};
+ if ($c =~ /\b(?:Perl_)?($match)\b/) {
+ $file{uses_replace}{$1}++ if exists $revreplace{$func} && $1 eq $revreplace{$func};
+ $file{uses_Perl}{$func}++ if $c =~ /\bPerl_$func\b/;
+ if (exists $API{$func}{provided}) {
+ $file{uses_provided}{$func}++;
+ if (!exists $API{$func}{base} || $API{$func}{base} > $opt{'compat-version'}) {
+ $file{uses}{$func}++;
+ my @deps = rec_depend($func);
+ if (@deps) {
+ $file{uses_deps}{$func} = \@deps;
+ for (@deps) {
+ $file{uses}{$_} = 0 unless exists $file{uses}{$_};
+ }
+ }
+ for ($func, @deps) {
+ $file{needs}{$_} = 'static' if exists $need{$_};
+ }
+ }
+ }
+ if (exists $API{$func}{todo} && $API{$func}{todo} > $opt{'compat-version'}) {
+ if ($c =~ /\b$func\b/) {
+ $file{uses_todo}{$func}++;
+ }
+ }
+ }
+ }
+
+ while ($c =~ /^$HS*#$HS*define$HS+(NEED_(\w+?)(_GLOBAL)?)\b/mg) {
+ if (exists $need{$2}) {
+ $file{defined $3 ? 'needed_global' : 'needed_static'}{$2}++;
+ }
+ else { warning("Possibly wrong #define $1 in $filename") }
+ }
+
+ for (qw(uses needs uses_todo needed_global needed_static)) {
+ for $func (keys %{$file{$_}}) {
+ push @{$global{$_}{$func}}, $filename;
+ }
+ }
+
+ $files{$filename} = \%file;
+}
+
+# Globally resolve NEED_'s
+my $need;
+for $need (keys %{$global{needs}}) {
+ if (@{$global{needs}{$need}} > 1) {
+ my @targets = @{$global{needs}{$need}};
+ my @t = grep $files{$_}{needed_global}{$need}, @targets;
+ @targets = @t if @t;
+ @t = grep /\.xs$/i, @targets;
+ @targets = @t if @t;
+ my $target = shift @targets;
+ $files{$target}{needs}{$need} = 'global';
+ for (@{$global{needs}{$need}}) {
+ $files{$_}{needs}{$need} = 'extern' if $_ ne $target;
+ }
+ }
+}
+
+for $filename (@files) {
+ exists $files{$filename} or next;
+
+ info("=== Analyzing $filename ===");
+
+ my %file = %{$files{$filename}};
+ my $func;
+ my $c = $file{code};
+ my $warnings = 0;
+
+ for $func (sort keys %{$file{uses_Perl}}) {
+ if ($API{$func}{varargs}) {
+ unless ($API{$func}{nothxarg}) {
+ my $changes = ($c =~ s{\b(Perl_$func\s*\(\s*)(?!aTHX_?)(\)|[^\s)]*\))}
+ { $1 . ($2 eq ')' ? 'aTHX' : 'aTHX_ ') . $2 }ge);
+ if ($changes) {
+ warning("Doesn't pass interpreter argument aTHX to Perl_$func");
+ $file{changes} += $changes;
+ }
+ }
+ }
+ else {
+ warning("Uses Perl_$func instead of $func");
+ $file{changes} += ($c =~ s{\bPerl_$func(\s*)\((\s*aTHX_?)?\s*}
+ {$func$1(}g);
+ }
+ }
+
+ for $func (sort keys %{$file{uses_replace}}) {
+ warning("Uses $func instead of $replace{$func}");
+ $file{changes} += ($c =~ s/\b$func\b/$replace{$func}/g);
+ }
+
+ for $func (sort keys %{$file{uses_provided}}) {
+ if ($file{uses}{$func}) {
+ if (exists $file{uses_deps}{$func}) {
+ diag("Uses $func, which depends on ", join(', ', @{$file{uses_deps}{$func}}));
+ }
+ else {
+ diag("Uses $func");
+ }
+ }
+ $warnings += hint($func);
+ }
+
+ unless ($opt{quiet}) {
+ for $func (sort keys %{$file{uses_todo}}) {
+ print "*** WARNING: Uses $func, which may not be portable below perl ",
+ format_version($API{$func}{todo}), ", even with '$ppport'\n";
+ $warnings++;
+ }
+ }
+
+ for $func (sort keys %{$file{needed_static}}) {
+ my $message = '';
+ if (not exists $file{uses}{$func}) {
+ $message = "No need to define NEED_$func if $func is never used";
+ }
+ elsif (exists $file{needs}{$func} && $file{needs}{$func} ne 'static') {
+ $message = "No need to define NEED_$func when already needed globally";
+ }
+ if ($message) {
+ diag($message);
+ $file{changes} += ($c =~ s/^$HS*#$HS*define$HS+NEED_$func\b.*$LF//mg);
+ }
+ }
+
+ for $func (sort keys %{$file{needed_global}}) {
+ my $message = '';
+ if (not exists $global{uses}{$func}) {
+ $message = "No need to define NEED_${func}_GLOBAL if $func is never used";
+ }
+ elsif (exists $file{needs}{$func}) {
+ if ($file{needs}{$func} eq 'extern') {
+ $message = "No need to define NEED_${func}_GLOBAL when already needed globally";
+ }
+ elsif ($file{needs}{$func} eq 'static') {
+ $message = "No need to define NEED_${func}_GLOBAL when only used in this file";
+ }
+ }
+ if ($message) {
+ diag($message);
+ $file{changes} += ($c =~ s/^$HS*#$HS*define$HS+NEED_${func}_GLOBAL\b.*$LF//mg);
+ }
+ }
+
+ $file{needs_inc_ppport} = keys %{$file{uses}};
+
+ if ($file{needs_inc_ppport}) {
+ my $pp = '';
+
+ for $func (sort keys %{$file{needs}}) {
+ my $type = $file{needs}{$func};
+ next if $type eq 'extern';
+ my $suffix = $type eq 'global' ? '_GLOBAL' : '';
+ unless (exists $file{"needed_$type"}{$func}) {
+ if ($type eq 'global') {
+ diag("Files [@{$global{needs}{$func}}] need $func, adding global request");
+ }
+ else {
+ diag("File needs $func, adding static request");
+ }
+ $pp .= "#define NEED_$func$suffix\n";
+ }
+ }
+
+ if ($pp && ($c =~ s/^(?=$HS*#$HS*define$HS+NEED_\w+)/$pp/m)) {
+ $pp = '';
+ $file{changes}++;
+ }
+
+ unless ($file{has_inc_ppport}) {
+ diag("Needs to include '$ppport'");
+ $pp .= qq(#include "$ppport"\n)
+ }
+
+ if ($pp) {
+ $file{changes} += ($c =~ s/^($HS*#$HS*define$HS+NEED_\w+.*?)^/$1$pp/ms)
+ || ($c =~ s/^(?=$HS*#$HS*include.*\Q$ppport\E)/$pp/m)
+ || ($c =~ s/^($HS*#$HS*include.*XSUB.*\s*?)^/$1$pp/m)
+ || ($c =~ s/^/$pp/);
+ }
+ }
+ else {
+ if ($file{has_inc_ppport}) {
+ diag("No need to include '$ppport'");
+ $file{changes} += ($c =~ s/^$HS*?#$HS*include.*\Q$ppport\E.*?$LF//m);
+ }
+ }
+
+ # put back in our C comments
+ my $ix;
+ my $cppc = 0;
+ my @ccom = @{$file{ccom}};
+ for $ix (0 .. $#ccom) {
+ if (!$opt{cplusplus} && $ccom[$ix] =~ s!^//!!) {
+ $cppc++;
+ $file{changes} += $c =~ s/$rccs$ix$rcce/$ccs$ccom[$ix] $cce/;
+ }
+ else {
+ $c =~ s/$rccs$ix$rcce/$ccom[$ix]/;
+ }
+ }
+
+ if ($cppc) {
+ my $s = $cppc != 1 ? 's' : '';
+ warning("Uses $cppc C++ style comment$s, which is not portable");
+ }
+
+ my $s = $warnings != 1 ? 's' : '';
+ my $warn = $warnings ? " ($warnings warning$s)" : '';
+ info("Analysis completed$warn");
+
+ if ($file{changes}) {
+ if (exists $opt{copy}) {
+ my $newfile = "$filename$opt{copy}";
+ if (-e $newfile) {
+ error("'$newfile' already exists, refusing to write copy of '$filename'");
+ }
+ else {
+ local *F;
+ if (open F, ">$newfile") {
+ info("Writing copy of '$filename' with changes to '$newfile'");
+ print F $c;
+ close F;
+ }
+ else {
+ error("Cannot open '$newfile' for writing: $!");
+ }
+ }
+ }
+ elsif (exists $opt{patch} || $opt{changes}) {
+ if (exists $opt{patch}) {
+ unless ($patch_opened) {
+ if (open PATCH, ">$opt{patch}") {
+ $patch_opened = 1;
+ }
+ else {
+ error("Cannot open '$opt{patch}' for writing: $!");
+ delete $opt{patch};
+ $opt{changes} = 1;
+ goto fallback;
+ }
+ }
+ mydiff(\*PATCH, $filename, $c);
+ }
+ else {
+fallback:
+ info("Suggested changes:");
+ mydiff(\*STDOUT, $filename, $c);
+ }
+ }
+ else {
+ my $s = $file{changes} == 1 ? '' : 's';
+ info("$file{changes} potentially required change$s detected");
+ }
+ }
+ else {
+ info("Looks good");
+ }
+}
+
+close PATCH if $patch_opened;
+
+exit 0;
+
+
+sub try_use { eval "use @_;"; return $@ eq '' }
+
+sub mydiff
+{
+ local *F = shift;
+ my($file, $str) = @_;
+ my $diff;
+
+ if (exists $opt{diff}) {
+ $diff = run_diff($opt{diff}, $file, $str);
+ }
+
+ if (!defined $diff and try_use('Text::Diff')) {
+ $diff = Text::Diff::diff($file, \$str, { STYLE => 'Unified' });
+ $diff = <<HEADER . $diff;
+--- $file
++++ $file.patched
+HEADER
+ }
+
+ if (!defined $diff) {
+ $diff = run_diff('diff -u', $file, $str);
+ }
+
+ if (!defined $diff) {
+ $diff = run_diff('diff', $file, $str);
+ }
+
+ if (!defined $diff) {
+ error("Cannot generate a diff. Please install Text::Diff or use --copy.");
+ return;
+ }
+
+ print F $diff;
+}
+
+sub run_diff
+{
+ my($prog, $file, $str) = @_;
+ my $tmp = 'dppptemp';
+ my $suf = 'aaa';
+ my $diff = '';
+ local *F;
+
+ while (-e "$tmp.$suf") { $suf++ }
+ $tmp = "$tmp.$suf";
+
+ if (open F, ">$tmp") {
+ print F $str;
+ close F;
+
+ if (open F, "$prog $file $tmp |") {
+ while (<F>) {
+ s/\Q$tmp\E/$file.patched/;
+ $diff .= $_;
+ }
+ close F;
+ unlink $tmp;
+ return $diff;
+ }
+
+ unlink $tmp;
+ }
+ else {
+ error("Cannot open '$tmp' for writing: $!");
+ }
+
+ return undef;
+}
+
+sub rec_depend
+{
+ my($func, $seen) = @_;
+ return () unless exists $depends{$func};
+ $seen = {%{$seen||{}}};
+ return () if $seen->{$func}++;
+ my %s;
+ grep !$s{$_}++, map { ($_, rec_depend($_, $seen)) } @{$depends{$func}};
+}
+
+sub parse_version
+{
+ my $ver = shift;
+
+ if ($ver =~ /^(\d+)\.(\d+)\.(\d+)$/) {
+ return ($1, $2, $3);
+ }
+ elsif ($ver !~ /^\d+\.[\d_]+$/) {
+ die "cannot parse version '$ver'\n";
+ }
+
+ $ver =~ s/_//g;
+ $ver =~ s/$/000000/;
+
+ my($r,$v,$s) = $ver =~ /(\d+)\.(\d{3})(\d{3})/;
+
+ $v = int $v;
+ $s = int $s;
+
+ if ($r < 5 || ($r == 5 && $v < 6)) {
+ if ($s % 10) {
+ die "cannot parse version '$ver'\n";
+ }
+ }
+
+ return ($r, $v, $s);
+}
+
+sub format_version
+{
+ my $ver = shift;
+
+ $ver =~ s/$/000000/;
+ my($r,$v,$s) = $ver =~ /(\d+)\.(\d{3})(\d{3})/;
+
+ $v = int $v;
+ $s = int $s;
+
+ if ($r < 5 || ($r == 5 && $v < 6)) {
+ if ($s % 10) {
+ die "invalid version '$ver'\n";
+ }
+ $s /= 10;
+
+ $ver = sprintf "%d.%03d", $r, $v;
+ $s > 0 and $ver .= sprintf "_%02d", $s;
+
+ return $ver;
+ }
+
+ return sprintf "%d.%d.%d", $r, $v, $s;
+}
+
+sub info
+{
+ $opt{quiet} and return;
+ print @_, "\n";
+}
+
+sub diag
+{
+ $opt{quiet} and return;
+ $opt{diag} and print @_, "\n";
+}
+
+sub warning
+{
+ $opt{quiet} and return;
+ print "*** ", @_, "\n";
+}
+
+sub error
+{
+ print "*** ERROR: ", @_, "\n";
+}
+
+my %given_hints;
+my %given_warnings;
+sub hint
+{
+ $opt{quiet} and return;
+ my $func = shift;
+ my $rv = 0;
+ if (exists $warnings{$func} && !$given_warnings{$func}++) {
+ my $warn = $warnings{$func};
+ $warn =~ s!^!*** !mg;
+ print "*** WARNING: $func\n", $warn;
+ $rv++;
+ }
+ if ($opt{hints} && exists $hints{$func} && !$given_hints{$func}++) {
+ my $hint = $hints{$func};
+ $hint =~ s/^/ /mg;
+ print " --- hint for $func ---\n", $hint;
+ }
+ $rv;
+}
+
+sub usage
+{
+ my($usage) = do { local(@ARGV,$/)=($0); <> } =~ /^=head\d$HS+SYNOPSIS\s*^(.*?)\s*^=/ms;
+ my %M = ( 'I' => '*' );
+ $usage =~ s/^\s*perl\s+\S+/$^X $0/;
+ $usage =~ s/([A-Z])<([^>]+)>/$M{$1}$2$M{$1}/g;
+
+ print <<ENDUSAGE;
+
+Usage: $usage
+
+See perldoc $0 for details.
+
+ENDUSAGE
+
+ exit 2;
+}
+
+sub strip
+{
+ my $self = do { local(@ARGV,$/)=($0); <> };
+ my($copy) = $self =~ /^=head\d\s+COPYRIGHT\s*^(.*?)^=\w+/ms;
+ $copy =~ s/^(?=\S+)/ /gms;
+ $self =~ s/^$HS+Do NOT edit.*?(?=^-)/$copy/ms;
+ $self =~ s/^SKIP.*(?=^__DATA__)/SKIP
+if (\@ARGV && \$ARGV[0] eq '--unstrip') {
+ eval { require Devel::PPPort };
+ \$@ and die "Cannot require Devel::PPPort, please install.\\n";
+ if (eval \$Devel::PPPort::VERSION < $VERSION) {
+ die "$0 was originally generated with Devel::PPPort $VERSION.\\n"
+ . "Your Devel::PPPort is only version \$Devel::PPPort::VERSION.\\n"
+ . "Please install a newer version, or --unstrip will not work.\\n";
+ }
+ Devel::PPPort::WriteFile(\$0);
+ exit 0;
+}
+print <<END;
+
+Sorry, but this is a stripped version of \$0.
+
+To be able to use its original script and doc functionality,
+please try to regenerate this file using:
+
+ \$^X \$0 --unstrip
+
+END
+/ms;
+ my($pl, $c) = $self =~ /(.*^__DATA__)(.*)/ms;
+ $c =~ s{
+ / (?: \*[^*]*\*+(?:[^$ccs][^*]*\*+)* / | /[^\r\n]*)
+ | ( "[^"\\]*(?:\\.[^"\\]*)*"
+ | '[^'\\]*(?:\\.[^'\\]*)*' )
+ | ($HS+) }{ defined $2 ? ' ' : ($1 || '') }gsex;
+ $c =~ s!\s+$!!mg;
+ $c =~ s!^$LF!!mg;
+ $c =~ s!^\s*#\s*!#!mg;
+ $c =~ s!^\s+!!mg;
+
+ open OUT, ">$0" or die "cannot strip $0: $!\n";
+ print OUT "$pl$c\n";
+
+ exit 0;
+}
+
+__DATA__
+*/
+
+#ifndef _P_P_PORTABILITY_H_
+#define _P_P_PORTABILITY_H_
+
+#ifndef DPPP_NAMESPACE
+# define DPPP_NAMESPACE DPPP_
+#endif
+
+#define DPPP_CAT2(x,y) CAT2(x,y)
+#define DPPP_(name) DPPP_CAT2(DPPP_NAMESPACE, name)
+
+#ifndef PERL_REVISION
+# if !defined(__PATCHLEVEL_H_INCLUDED__) && !(defined(PATCHLEVEL) && defined(SUBVERSION))
+# define PERL_PATCHLEVEL_H_IMPLICIT
+# include <patchlevel.h>
+# endif
+# if !(defined(PERL_VERSION) || (defined(SUBVERSION) && defined(PATCHLEVEL)))
+# include <could_not_find_Perl_patchlevel.h>
+# endif
+# ifndef PERL_REVISION
+# define PERL_REVISION (5)
+ /* Replace: 1 */
+# define PERL_VERSION PATCHLEVEL
+# define PERL_SUBVERSION SUBVERSION
+ /* Replace PERL_PATCHLEVEL with PERL_VERSION */
+ /* Replace: 0 */
+# endif
+#endif
+
+#define _dpppDEC2BCD(dec) ((((dec)/100)<<8)|((((dec)%100)/10)<<4)|((dec)%10))
+#define PERL_BCDVERSION ((_dpppDEC2BCD(PERL_REVISION)<<24)|(_dpppDEC2BCD(PERL_VERSION)<<12)|_dpppDEC2BCD(PERL_SUBVERSION))
+
+/* It is very unlikely that anyone will try to use this with Perl 6
+ (or greater), but who knows.
+ */
+#if PERL_REVISION != 5
+# error ppport.h only works with Perl version 5
+#endif /* PERL_REVISION != 5 */
+#ifndef dTHR
+# define dTHR dNOOP
+#endif
+#ifndef dTHX
+# define dTHX dNOOP
+#endif
+
+#ifndef dTHXa
+# define dTHXa(x) dNOOP
+#endif
+#ifndef pTHX
+# define pTHX void
+#endif
+
+#ifndef pTHX_
+# define pTHX_
+#endif
+
+#ifndef aTHX
+# define aTHX
+#endif
+
+#ifndef aTHX_
+# define aTHX_
+#endif
+
+#if (PERL_BCDVERSION < 0x5006000)
+# ifdef USE_THREADS
+# define aTHXR thr
+# define aTHXR_ thr,
+# else
+# define aTHXR
+# define aTHXR_
+# endif
+# define dTHXR dTHR
+#else
+# define aTHXR aTHX
+# define aTHXR_ aTHX_
+# define dTHXR dTHX
+#endif
+#ifndef dTHXoa
+# define dTHXoa(x) dTHXa(x)
+#endif
+
+#ifdef I_LIMITS
+# include <limits.h>
+#endif
+
+#ifndef PERL_UCHAR_MIN
+# define PERL_UCHAR_MIN ((unsigned char)0)
+#endif
+
+#ifndef PERL_UCHAR_MAX
+# ifdef UCHAR_MAX
+# define PERL_UCHAR_MAX ((unsigned char)UCHAR_MAX)
+# else
+# ifdef MAXUCHAR
+# define PERL_UCHAR_MAX ((unsigned char)MAXUCHAR)
+# else
+# define PERL_UCHAR_MAX ((unsigned char)~(unsigned)0)
+# endif
+# endif
+#endif
+
+#ifndef PERL_USHORT_MIN
+# define PERL_USHORT_MIN ((unsigned short)0)
+#endif
+
+#ifndef PERL_USHORT_MAX
+# ifdef USHORT_MAX
+# define PERL_USHORT_MAX ((unsigned short)USHORT_MAX)
+# else
+# ifdef MAXUSHORT
+# define PERL_USHORT_MAX ((unsigned short)MAXUSHORT)
+# else
+# ifdef USHRT_MAX
+# define PERL_USHORT_MAX ((unsigned short)USHRT_MAX)
+# else
+# define PERL_USHORT_MAX ((unsigned short)~(unsigned)0)
+# endif
+# endif
+# endif
+#endif
+
+#ifndef PERL_SHORT_MAX
+# ifdef SHORT_MAX
+# define PERL_SHORT_MAX ((short)SHORT_MAX)
+# else
+# ifdef MAXSHORT /* Often used in <values.h> */
+# define PERL_SHORT_MAX ((short)MAXSHORT)
+# else
+# ifdef SHRT_MAX
+# define PERL_SHORT_MAX ((short)SHRT_MAX)
+# else
+# define PERL_SHORT_MAX ((short) (PERL_USHORT_MAX >> 1))
+# endif
+# endif
+# endif
+#endif
+
+#ifndef PERL_SHORT_MIN
+# ifdef SHORT_MIN
+# define PERL_SHORT_MIN ((short)SHORT_MIN)
+# else
+# ifdef MINSHORT
+# define PERL_SHORT_MIN ((short)MINSHORT)
+# else
+# ifdef SHRT_MIN
+# define PERL_SHORT_MIN ((short)SHRT_MIN)
+# else
+# define PERL_SHORT_MIN (-PERL_SHORT_MAX - ((3 & -1) == 3))
+# endif
+# endif
+# endif
+#endif
+
+#ifndef PERL_UINT_MAX
+# ifdef UINT_MAX
+# define PERL_UINT_MAX ((unsigned int)UINT_MAX)
+# else
+# ifdef MAXUINT
+# define PERL_UINT_MAX ((unsigned int)MAXUINT)
+# else
+# define PERL_UINT_MAX (~(unsigned int)0)
+# endif
+# endif
+#endif
+
+#ifndef PERL_UINT_MIN
+# define PERL_UINT_MIN ((unsigned int)0)
+#endif
+
+#ifndef PERL_INT_MAX
+# ifdef INT_MAX
+# define PERL_INT_MAX ((int)INT_MAX)
+# else
+# ifdef MAXINT /* Often used in <values.h> */
+# define PERL_INT_MAX ((int)MAXINT)
+# else
+# define PERL_INT_MAX ((int)(PERL_UINT_MAX >> 1))
+# endif
+# endif
+#endif
+
+#ifndef PERL_INT_MIN
+# ifdef INT_MIN
+# define PERL_INT_MIN ((int)INT_MIN)
+# else
+# ifdef MININT
+# define PERL_INT_MIN ((int)MININT)
+# else
+# define PERL_INT_MIN (-PERL_INT_MAX - ((3 & -1) == 3))
+# endif
+# endif
+#endif
+
+#ifndef PERL_ULONG_MAX
+# ifdef ULONG_MAX
+# define PERL_ULONG_MAX ((unsigned long)ULONG_MAX)
+# else
+# ifdef MAXULONG
+# define PERL_ULONG_MAX ((unsigned long)MAXULONG)
+# else
+# define PERL_ULONG_MAX (~(unsigned long)0)
+# endif
+# endif
+#endif
+
+#ifndef PERL_ULONG_MIN
+# define PERL_ULONG_MIN ((unsigned long)0L)
+#endif
+
+#ifndef PERL_LONG_MAX
+# ifdef LONG_MAX
+# define PERL_LONG_MAX ((long)LONG_MAX)
+# else
+# ifdef MAXLONG
+# define PERL_LONG_MAX ((long)MAXLONG)
+# else
+# define PERL_LONG_MAX ((long) (PERL_ULONG_MAX >> 1))
+# endif
+# endif
+#endif
+
+#ifndef PERL_LONG_MIN
+# ifdef LONG_MIN
+# define PERL_LONG_MIN ((long)LONG_MIN)
+# else
+# ifdef MINLONG
+# define PERL_LONG_MIN ((long)MINLONG)
+# else
+# define PERL_LONG_MIN (-PERL_LONG_MAX - ((3 & -1) == 3))
+# endif
+# endif
+#endif
+
+#if defined(HAS_QUAD) && (defined(convex) || defined(uts))
+# ifndef PERL_UQUAD_MAX
+# ifdef ULONGLONG_MAX
+# define PERL_UQUAD_MAX ((unsigned long long)ULONGLONG_MAX)
+# else
+# ifdef MAXULONGLONG
+# define PERL_UQUAD_MAX ((unsigned long long)MAXULONGLONG)
+# else
+# define PERL_UQUAD_MAX (~(unsigned long long)0)
+# endif
+# endif
+# endif
+
+# ifndef PERL_UQUAD_MIN
+# define PERL_UQUAD_MIN ((unsigned long long)0L)
+# endif
+
+# ifndef PERL_QUAD_MAX
+# ifdef LONGLONG_MAX
+# define PERL_QUAD_MAX ((long long)LONGLONG_MAX)
+# else
+# ifdef MAXLONGLONG
+# define PERL_QUAD_MAX ((long long)MAXLONGLONG)
+# else
+# define PERL_QUAD_MAX ((long long) (PERL_UQUAD_MAX >> 1))
+# endif
+# endif
+# endif
+
+# ifndef PERL_QUAD_MIN
+# ifdef LONGLONG_MIN
+# define PERL_QUAD_MIN ((long long)LONGLONG_MIN)
+# else
+# ifdef MINLONGLONG
+# define PERL_QUAD_MIN ((long long)MINLONGLONG)
+# else
+# define PERL_QUAD_MIN (-PERL_QUAD_MAX - ((3 & -1) == 3))
+# endif
+# endif
+# endif
+#endif
+
+/* This is based on code from 5.003 perl.h */
+#ifdef HAS_QUAD
+# ifdef cray
+#ifndef IVTYPE
+# define IVTYPE int
+#endif
+
+#ifndef IV_MIN
+# define IV_MIN PERL_INT_MIN
+#endif
+
+#ifndef IV_MAX
+# define IV_MAX PERL_INT_MAX
+#endif
+
+#ifndef UV_MIN
+# define UV_MIN PERL_UINT_MIN
+#endif
+
+#ifndef UV_MAX
+# define UV_MAX PERL_UINT_MAX
+#endif
+
+# ifdef INTSIZE
+#ifndef IVSIZE
+# define IVSIZE INTSIZE
+#endif
+
+# endif
+# else
+# if defined(convex) || defined(uts)
+#ifndef IVTYPE
+# define IVTYPE long long
+#endif
+
+#ifndef IV_MIN
+# define IV_MIN PERL_QUAD_MIN
+#endif
+
+#ifndef IV_MAX
+# define IV_MAX PERL_QUAD_MAX
+#endif
+
+#ifndef UV_MIN
+# define UV_MIN PERL_UQUAD_MIN
+#endif
+
+#ifndef UV_MAX
+# define UV_MAX PERL_UQUAD_MAX
+#endif
+
+# ifdef LONGLONGSIZE
+#ifndef IVSIZE
+# define IVSIZE LONGLONGSIZE
+#endif
+
+# endif
+# else
+#ifndef IVTYPE
+# define IVTYPE long
+#endif
+
+#ifndef IV_MIN
+# define IV_MIN PERL_LONG_MIN
+#endif
+
+#ifndef IV_MAX
+# define IV_MAX PERL_LONG_MAX
+#endif
+
+#ifndef UV_MIN
+# define UV_MIN PERL_ULONG_MIN
+#endif
+
+#ifndef UV_MAX
+# define UV_MAX PERL_ULONG_MAX
+#endif
+
+# ifdef LONGSIZE
+#ifndef IVSIZE
+# define IVSIZE LONGSIZE
+#endif
+
+# endif
+# endif
+# endif
+#ifndef IVSIZE
+# define IVSIZE 8
+#endif
+
+#ifndef PERL_QUAD_MIN
+# define PERL_QUAD_MIN IV_MIN
+#endif
+
+#ifndef PERL_QUAD_MAX
+# define PERL_QUAD_MAX IV_MAX
+#endif
+
+#ifndef PERL_UQUAD_MIN
+# define PERL_UQUAD_MIN UV_MIN
+#endif
+
+#ifndef PERL_UQUAD_MAX
+# define PERL_UQUAD_MAX UV_MAX
+#endif
+
+#else
+#ifndef IVTYPE
+# define IVTYPE long
+#endif
+
+#ifndef IV_MIN
+# define IV_MIN PERL_LONG_MIN
+#endif
+
+#ifndef IV_MAX
+# define IV_MAX PERL_LONG_MAX
+#endif
+
+#ifndef UV_MIN
+# define UV_MIN PERL_ULONG_MIN
+#endif
+
+#ifndef UV_MAX
+# define UV_MAX PERL_ULONG_MAX
+#endif
+
+#endif
+
+#ifndef IVSIZE
+# ifdef LONGSIZE
+# define IVSIZE LONGSIZE
+# else
+# define IVSIZE 4 /* A bold guess, but the best we can make. */
+# endif
+#endif
+#ifndef UVTYPE
+# define UVTYPE unsigned IVTYPE
+#endif
+
+#ifndef UVSIZE
+# define UVSIZE IVSIZE
+#endif
+#ifndef sv_setuv
+# define sv_setuv(sv, uv) \
+ STMT_START { \
+ UV TeMpUv = uv; \
+ if (TeMpUv <= IV_MAX) \
+ sv_setiv(sv, TeMpUv); \
+ else \
+ sv_setnv(sv, (double)TeMpUv); \
+ } STMT_END
+#endif
+#ifndef newSVuv
+# define newSVuv(uv) ((uv) <= IV_MAX ? newSViv((IV)uv) : newSVnv((NV)uv))
+#endif
+#ifndef sv_2uv
+# define sv_2uv(sv) ((PL_Sv = (sv)), (UV) (SvNOK(PL_Sv) ? SvNV(PL_Sv) : sv_2nv(PL_Sv)))
+#endif
+
+#ifndef SvUVX
+# define SvUVX(sv) ((UV)SvIVX(sv))
+#endif
+
+#ifndef SvUVXx
+# define SvUVXx(sv) SvUVX(sv)
+#endif
+
+#ifndef SvUV
+# define SvUV(sv) (SvIOK(sv) ? SvUVX(sv) : sv_2uv(sv))
+#endif
+
+#ifndef SvUVx
+# define SvUVx(sv) ((PL_Sv = (sv)), SvUV(PL_Sv))
+#endif
+
+/* Hint: sv_uv
+ * Always use the SvUVx() macro instead of sv_uv().
+ */
+#ifndef sv_uv
+# define sv_uv(sv) SvUVx(sv)
+#endif
+
+#if !defined(SvUOK) && defined(SvIOK_UV)
+# define SvUOK(sv) SvIOK_UV(sv)
+#endif
+#ifndef XST_mUV
+# define XST_mUV(i,v) (ST(i) = sv_2mortal(newSVuv(v)) )
+#endif
+
+#ifndef XSRETURN_UV
+# define XSRETURN_UV(v) STMT_START { XST_mUV(0,v); XSRETURN(1); } STMT_END
+#endif
+#ifndef PUSHu
+# define PUSHu(u) STMT_START { sv_setuv(TARG, (UV)(u)); PUSHTARG; } STMT_END
+#endif
+
+#ifndef XPUSHu
+# define XPUSHu(u) STMT_START { sv_setuv(TARG, (UV)(u)); XPUSHTARG; } STMT_END
+#endif
+
+#ifdef HAS_MEMCMP
+#ifndef memNE
+# define memNE(s1,s2,l) (memcmp(s1,s2,l))
+#endif
+
+#ifndef memEQ
+# define memEQ(s1,s2,l) (!memcmp(s1,s2,l))
+#endif
+
+#else
+#ifndef memNE
+# define memNE(s1,s2,l) (bcmp(s1,s2,l))
+#endif
+
+#ifndef memEQ
+# define memEQ(s1,s2,l) (!bcmp(s1,s2,l))
+#endif
+
+#endif
+#ifndef MoveD
+# define MoveD(s,d,n,t) memmove((char*)(d),(char*)(s), (n) * sizeof(t))
+#endif
+
+#ifndef CopyD
+# define CopyD(s,d,n,t) memcpy((char*)(d),(char*)(s), (n) * sizeof(t))
+#endif
+
+#ifdef HAS_MEMSET
+#ifndef ZeroD
+# define ZeroD(d,n,t) memzero((char*)(d), (n) * sizeof(t))
+#endif
+
+#else
+#ifndef ZeroD
+# define ZeroD(d,n,t) ((void)memzero((char*)(d), (n) * sizeof(t)), d)
+#endif
+
+#endif
+#ifndef PoisonWith
+# define PoisonWith(d,n,t,b) (void)memset((char*)(d), (U8)(b), (n) * sizeof(t))
+#endif
+
+#ifndef PoisonNew
+# define PoisonNew(d,n,t) PoisonWith(d,n,t,0xAB)
+#endif
+
+#ifndef PoisonFree
+# define PoisonFree(d,n,t) PoisonWith(d,n,t,0xEF)
+#endif
+
+#ifndef Poison
+# define Poison(d,n,t) PoisonFree(d,n,t)
+#endif
+#ifndef Newx
+# define Newx(v,n,t) New(0,v,n,t)
+#endif
+
+#ifndef Newxc
+# define Newxc(v,n,t,c) Newc(0,v,n,t,c)
+#endif
+
+#ifndef Newxz
+# define Newxz(v,n,t) Newz(0,v,n,t)
+#endif
+
+#ifndef PERL_UNUSED_DECL
+# ifdef HASATTRIBUTE
+# if (defined(__GNUC__) && defined(__cplusplus)) || defined(__INTEL_COMPILER)
+# define PERL_UNUSED_DECL
+# else
+# define PERL_UNUSED_DECL __attribute__((unused))
+# endif
+# else
+# define PERL_UNUSED_DECL
+# endif
+#endif
+
+#ifndef PERL_UNUSED_ARG
+# if defined(lint) && defined(S_SPLINT_S) /* www.splint.org */
+# include <note.h>
+# define PERL_UNUSED_ARG(x) NOTE(ARGUNUSED(x))
+# else
+# define PERL_UNUSED_ARG(x) ((void)x)
+# endif
+#endif
+
+#ifndef PERL_UNUSED_VAR
+# define PERL_UNUSED_VAR(x) ((void)x)
+#endif
+
+#ifndef PERL_UNUSED_CONTEXT
+# ifdef USE_ITHREADS
+# define PERL_UNUSED_CONTEXT PERL_UNUSED_ARG(my_perl)
+# else
+# define PERL_UNUSED_CONTEXT
+# endif
+#endif
+#ifndef NOOP
+# define NOOP /*EMPTY*/(void)0
+#endif
+
+#ifndef dNOOP
+# define dNOOP extern int /*@unused@*/ Perl___notused PERL_UNUSED_DECL
+#endif
+
+#ifndef NVTYPE
+# if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE)
+# define NVTYPE long double
+# else
+# define NVTYPE double
+# endif
+typedef NVTYPE NV;
+#endif
+
+#ifndef INT2PTR
+# if (IVSIZE == PTRSIZE) && (UVSIZE == PTRSIZE)
+# define PTRV UV
+# define INT2PTR(any,d) (any)(d)
+# else
+# if PTRSIZE == LONGSIZE
+# define PTRV unsigned long
+# else
+# define PTRV unsigned
+# endif
+# define INT2PTR(any,d) (any)(PTRV)(d)
+# endif
+#endif
+
+#ifndef PTR2ul
+# if PTRSIZE == LONGSIZE
+# define PTR2ul(p) (unsigned long)(p)
+# else
+# define PTR2ul(p) INT2PTR(unsigned long,p)
+# endif
+#endif
+#ifndef PTR2nat
+# define PTR2nat(p) (PTRV)(p)
+#endif
+
+#ifndef NUM2PTR
+# define NUM2PTR(any,d) (any)PTR2nat(d)
+#endif
+
+#ifndef PTR2IV
+# define PTR2IV(p) INT2PTR(IV,p)
+#endif
+
+#ifndef PTR2UV
+# define PTR2UV(p) INT2PTR(UV,p)
+#endif
+
+#ifndef PTR2NV
+# define PTR2NV(p) NUM2PTR(NV,p)
+#endif
+
+#undef START_EXTERN_C
+#undef END_EXTERN_C
+#undef EXTERN_C
+#ifdef __cplusplus
+# define START_EXTERN_C extern "C" {
+# define END_EXTERN_C }
+# define EXTERN_C extern "C"
+#else
+# define START_EXTERN_C
+# define END_EXTERN_C
+# define EXTERN_C extern
+#endif
+
+#if defined(PERL_GCC_PEDANTIC)
+# ifndef PERL_GCC_BRACE_GROUPS_FORBIDDEN
+# define PERL_GCC_BRACE_GROUPS_FORBIDDEN
+# endif
+#endif
+
+#if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN) && !defined(__cplusplus)
+# ifndef PERL_USE_GCC_BRACE_GROUPS
+# define PERL_USE_GCC_BRACE_GROUPS
+# endif
+#endif
+
+#undef STMT_START
+#undef STMT_END
+#ifdef PERL_USE_GCC_BRACE_GROUPS
+# define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
+# define STMT_END )
+#else
+# if defined(VOIDFLAGS) && (VOIDFLAGS) && (defined(sun) || defined(__sun__)) && !defined(__GNUC__)
+# define STMT_START if (1)
+# define STMT_END else (void)0
+# else
+# define STMT_START do
+# define STMT_END while (0)
+# endif
+#endif
+#ifndef boolSV
+# define boolSV(b) ((b) ? &PL_sv_yes : &PL_sv_no)
+#endif
+
+/* DEFSV appears first in 5.004_56 */
+#ifndef DEFSV
+# define DEFSV GvSV(PL_defgv)
+#endif
+
+#ifndef SAVE_DEFSV
+# define SAVE_DEFSV SAVESPTR(GvSV(PL_defgv))
+#endif
+
+#ifndef DEFSV_set
+# define DEFSV_set(sv) (DEFSV = (sv))
+#endif
+
+/* Older perls (<=5.003) lack AvFILLp */
+#ifndef AvFILLp
+# define AvFILLp AvFILL
+#endif
+#ifndef ERRSV
+# define ERRSV get_sv("@",FALSE)
+#endif
+
+/* Hint: gv_stashpvn
+ * This function's backport doesn't support the length parameter, but
+ * rather ignores it. Portability can only be ensured if the length
+ * parameter is used for speed reasons, but the length can always be
+ * correctly computed from the string argument.
+ */
+#ifndef gv_stashpvn
+# define gv_stashpvn(str,len,create) gv_stashpv(str,create)
+#endif
+
+/* Replace: 1 */
+#ifndef get_cv
+# define get_cv perl_get_cv
+#endif
+
+#ifndef get_sv
+# define get_sv perl_get_sv
+#endif
+
+#ifndef get_av
+# define get_av perl_get_av
+#endif
+
+#ifndef get_hv
+# define get_hv perl_get_hv
+#endif
+
+/* Replace: 0 */
+#ifndef dUNDERBAR
+# define dUNDERBAR dNOOP
+#endif
+
+#ifndef UNDERBAR
+# define UNDERBAR DEFSV
+#endif
+#ifndef dAX
+# define dAX I32 ax = MARK - PL_stack_base + 1
+#endif
+
+#ifndef dITEMS
+# define dITEMS I32 items = SP - MARK
+#endif
+#ifndef dXSTARG
+# define dXSTARG SV * targ = sv_newmortal()
+#endif
+#ifndef dAXMARK
+# define dAXMARK I32 ax = POPMARK; \
+ register SV ** const mark = PL_stack_base + ax++
+#endif
+#ifndef XSprePUSH
+# define XSprePUSH (sp = PL_stack_base + ax - 1)
+#endif
+
+#if (PERL_BCDVERSION < 0x5005000)
+# undef XSRETURN
+# define XSRETURN(off) \
+ STMT_START { \
+ PL_stack_sp = PL_stack_base + ax + ((off) - 1); \
+ return; \
+ } STMT_END
+#endif
+#ifndef XSPROTO
+# define XSPROTO(name) void name(pTHX_ CV* cv)
+#endif
+
+#ifndef SVfARG
+# define SVfARG(p) ((void*)(p))
+#endif
+#ifndef PERL_ABS
+# define PERL_ABS(x) ((x) < 0 ? -(x) : (x))
+#endif
+#ifndef dVAR
+# define dVAR dNOOP
+#endif
+#ifndef SVf
+# define SVf "_"
+#endif
+#ifndef UTF8_MAXBYTES
+# define UTF8_MAXBYTES UTF8_MAXLEN
+#endif
+#ifndef CPERLscope
+# define CPERLscope(x) x
+#endif
+#ifndef PERL_HASH
+# define PERL_HASH(hash,str,len) \
+ STMT_START { \
+ const char *s_PeRlHaSh = str; \
+ I32 i_PeRlHaSh = len; \
+ U32 hash_PeRlHaSh = 0; \
+ while (i_PeRlHaSh--) \
+ hash_PeRlHaSh = hash_PeRlHaSh * 33 + *s_PeRlHaSh++; \
+ (hash) = hash_PeRlHaSh; \
+ } STMT_END
+#endif
+
+#ifndef PERLIO_FUNCS_DECL
+# ifdef PERLIO_FUNCS_CONST
+# define PERLIO_FUNCS_DECL(funcs) const PerlIO_funcs funcs
+# define PERLIO_FUNCS_CAST(funcs) (PerlIO_funcs*)(funcs)
+# else
+# define PERLIO_FUNCS_DECL(funcs) PerlIO_funcs funcs
+# define PERLIO_FUNCS_CAST(funcs) (funcs)
+# endif
+#endif
+
+/* provide these typedefs for older perls */
+#if (PERL_BCDVERSION < 0x5009003)
+
+# ifdef ARGSproto
+typedef OP* (CPERLscope(*Perl_ppaddr_t))(ARGSproto);
+# else
+typedef OP* (CPERLscope(*Perl_ppaddr_t))(pTHX);
+# endif
+
+typedef OP* (CPERLscope(*Perl_check_t)) (pTHX_ OP*);
+
+#endif
+#ifndef isPSXSPC
+# define isPSXSPC(c) (isSPACE(c) || (c) == '\v')
+#endif
+
+#ifndef isBLANK
+# define isBLANK(c) ((c) == ' ' || (c) == '\t')
+#endif
+
+#ifdef EBCDIC
+#ifndef isALNUMC
+# define isALNUMC(c) isalnum(c)
+#endif
+
+#ifndef isASCII
+# define isASCII(c) isascii(c)
+#endif
+
+#ifndef isCNTRL
+# define isCNTRL(c) iscntrl(c)
+#endif
+
+#ifndef isGRAPH
+# define isGRAPH(c) isgraph(c)
+#endif
+
+#ifndef isPRINT
+# define isPRINT(c) isprint(c)
+#endif
+
+#ifndef isPUNCT
+# define isPUNCT(c) ispunct(c)
+#endif
+
+#ifndef isXDIGIT
+# define isXDIGIT(c) isxdigit(c)
+#endif
+
+#else
+# if (PERL_BCDVERSION < 0x5010000)
+/* Hint: isPRINT
+ * The implementation in older perl versions includes all of the
+ * isSPACE() characters, which is wrong. The version provided by
+ * Devel::PPPort always overrides a present buggy version.
+ */
+# undef isPRINT
+# endif
+#ifndef isALNUMC
+# define isALNUMC(c) (isALPHA(c) || isDIGIT(c))
+#endif
+
+#ifndef isASCII
+# define isASCII(c) ((c) <= 127)
+#endif
+
+#ifndef isCNTRL
+# define isCNTRL(c) ((c) < ' ' || (c) == 127)
+#endif
+
+#ifndef isGRAPH
+# define isGRAPH(c) (isALNUM(c) || isPUNCT(c))
+#endif
+
+#ifndef isPRINT
+# define isPRINT(c) (((c) >= 32 && (c) < 127))
+#endif
+
+#ifndef isPUNCT
+# define isPUNCT(c) (((c) >= 33 && (c) <= 47) || ((c) >= 58 && (c) <= 64) || ((c) >= 91 && (c) <= 96) || ((c) >= 123 && (c) <= 126))
+#endif
+
+#ifndef isXDIGIT
+# define isXDIGIT(c) (isDIGIT(c) || ((c) >= 'a' && (c) <= 'f') || ((c) >= 'A' && (c) <= 'F'))
+#endif
+
+#endif
+
+#ifndef PERL_SIGNALS_UNSAFE_FLAG
+
+#define PERL_SIGNALS_UNSAFE_FLAG 0x0001
+
+#if (PERL_BCDVERSION < 0x5008000)
+# define D_PPP_PERL_SIGNALS_INIT PERL_SIGNALS_UNSAFE_FLAG
+#else
+# define D_PPP_PERL_SIGNALS_INIT 0
+#endif
+
+#if defined(NEED_PL_signals)
+static U32 DPPP_(my_PL_signals) = D_PPP_PERL_SIGNALS_INIT;
+#elif defined(NEED_PL_signals_GLOBAL)
+U32 DPPP_(my_PL_signals) = D_PPP_PERL_SIGNALS_INIT;
+#else
+extern U32 DPPP_(my_PL_signals);
+#endif
+#define PL_signals DPPP_(my_PL_signals)
+
+#endif
+
+/* Hint: PL_ppaddr
+ * Calling an op via PL_ppaddr requires passing a context argument
+ * for threaded builds. Since the context argument is different for
+ * 5.005 perls, you can use aTHXR (supplied by ppport.h), which will
+ * automatically be defined as the correct argument.
+ */
+
+#if (PERL_BCDVERSION <= 0x5005005)
+/* Replace: 1 */
+# define PL_ppaddr ppaddr
+# define PL_no_modify no_modify
+/* Replace: 0 */
+#endif
+
+#if (PERL_BCDVERSION <= 0x5004005)
+/* Replace: 1 */
+# define PL_DBsignal DBsignal
+# define PL_DBsingle DBsingle
+# define PL_DBsub DBsub
+# define PL_DBtrace DBtrace
+# define PL_Sv Sv
+# define PL_bufend bufend
+# define PL_bufptr bufptr
+# define PL_compiling compiling
+# define PL_copline copline
+# define PL_curcop curcop
+# define PL_curstash curstash
+# define PL_debstash debstash
+# define PL_defgv defgv
+# define PL_diehook diehook
+# define PL_dirty dirty
+# define PL_dowarn dowarn
+# define PL_errgv errgv
+# define PL_error_count error_count
+# define PL_expect expect
+# define PL_hexdigit hexdigit
+# define PL_hints hints
+# define PL_in_my in_my
+# define PL_laststatval laststatval
+# define PL_lex_state lex_state
+# define PL_lex_stuff lex_stuff
+# define PL_linestr linestr
+# define PL_na na
+# define PL_perl_destruct_level perl_destruct_level
+# define PL_perldb perldb
+# define PL_rsfp_filters rsfp_filters
+# define PL_rsfp rsfp
+# define PL_stack_base stack_base
+# define PL_stack_sp stack_sp
+# define PL_statcache statcache
+# define PL_stdingv stdingv
+# define PL_sv_arenaroot sv_arenaroot
+# define PL_sv_no sv_no
+# define PL_sv_undef sv_undef
+# define PL_sv_yes sv_yes
+# define PL_tainted tainted
+# define PL_tainting tainting
+# define PL_tokenbuf tokenbuf
+/* Replace: 0 */
+#endif
+
+/* Warning: PL_parser
+ * For perl versions earlier than 5.9.5, this is an always
+ * non-NULL dummy. Also, it cannot be dereferenced. Don't
+ * use it if you can avoid is and unless you absolutely know
+ * what you're doing.
+ * If you always check that PL_parser is non-NULL, you can
+ * define DPPP_PL_parser_NO_DUMMY to avoid the creation of
+ * a dummy parser structure.
+ */
+
+#if (PERL_BCDVERSION >= 0x5009005)
+# ifdef DPPP_PL_parser_NO_DUMMY
+# define D_PPP_my_PL_parser_var(var) ((PL_parser ? PL_parser : \
+ (croak("panic: PL_parser == NULL in %s:%d", \
+ __FILE__, __LINE__), (yy_parser *) NULL))->var)
+# else
+# ifdef DPPP_PL_parser_NO_DUMMY_WARNING
+# define D_PPP_parser_dummy_warning(var)
+# else
+# define D_PPP_parser_dummy_warning(var) \
+ warn("warning: dummy PL_" #var " used in %s:%d", __FILE__, __LINE__),
+# endif
+# define D_PPP_my_PL_parser_var(var) ((PL_parser ? PL_parser : \
+ (D_PPP_parser_dummy_warning(var) &DPPP_(dummy_PL_parser)))->var)
+#if defined(NEED_PL_parser)
+static yy_parser DPPP_(dummy_PL_parser);
+#elif defined(NEED_PL_parser_GLOBAL)
+yy_parser DPPP_(dummy_PL_parser);
+#else
+extern yy_parser DPPP_(dummy_PL_parser);
+#endif
+
+# endif
+
+/* PL_expect, PL_copline, PL_rsfp, PL_rsfp_filters, PL_linestr, PL_bufptr, PL_bufend, PL_lex_state, PL_lex_stuff, PL_tokenbuf depends on PL_parser */
+/* Warning: PL_expect, PL_copline, PL_rsfp, PL_rsfp_filters, PL_linestr, PL_bufptr, PL_bufend, PL_lex_state, PL_lex_stuff, PL_tokenbuf
+ * Do not use this variable unless you know exactly what you're
+ * doint. It is internal to the perl parser and may change or even
+ * be removed in the future. As of perl 5.9.5, you have to check
+ * for (PL_parser != NULL) for this variable to have any effect.
+ * An always non-NULL PL_parser dummy is provided for earlier
+ * perl versions.
+ * If PL_parser is NULL when you try to access this variable, a
+ * dummy is being accessed instead and a warning is issued unless
+ * you define DPPP_PL_parser_NO_DUMMY_WARNING.
+ * If DPPP_PL_parser_NO_DUMMY is defined, the code trying to access
+ * this variable will croak with a panic message.
+ */
+
+# define PL_expect D_PPP_my_PL_parser_var(expect)
+# define PL_copline D_PPP_my_PL_parser_var(copline)
+# define PL_rsfp D_PPP_my_PL_parser_var(rsfp)
+# define PL_rsfp_filters D_PPP_my_PL_parser_var(rsfp_filters)
+# define PL_linestr D_PPP_my_PL_parser_var(linestr)
+# define PL_bufptr D_PPP_my_PL_parser_var(bufptr)
+# define PL_bufend D_PPP_my_PL_parser_var(bufend)
+# define PL_lex_state D_PPP_my_PL_parser_var(lex_state)
+# define PL_lex_stuff D_PPP_my_PL_parser_var(lex_stuff)
+# define PL_tokenbuf D_PPP_my_PL_parser_var(tokenbuf)
+# define PL_in_my D_PPP_my_PL_parser_var(in_my)
+# define PL_in_my_stash D_PPP_my_PL_parser_var(in_my_stash)
+# define PL_error_count D_PPP_my_PL_parser_var(error_count)
+
+
+#else
+
+/* ensure that PL_parser != NULL and cannot be dereferenced */
+# define PL_parser ((void *) 1)
+
+#endif
+#ifndef mPUSHs
+# define mPUSHs(s) PUSHs(sv_2mortal(s))
+#endif
+
+#ifndef PUSHmortal
+# define PUSHmortal PUSHs(sv_newmortal())
+#endif
+
+#ifndef mPUSHp
+# define mPUSHp(p,l) sv_setpvn(PUSHmortal, (p), (l))
+#endif
+
+#ifndef mPUSHn
+# define mPUSHn(n) sv_setnv(PUSHmortal, (NV)(n))
+#endif
+
+#ifndef mPUSHi
+# define mPUSHi(i) sv_setiv(PUSHmortal, (IV)(i))
+#endif
+
+#ifndef mPUSHu
+# define mPUSHu(u) sv_setuv(PUSHmortal, (UV)(u))
+#endif
+#ifndef mXPUSHs
+# define mXPUSHs(s) XPUSHs(sv_2mortal(s))
+#endif
+
+#ifndef XPUSHmortal
+# define XPUSHmortal XPUSHs(sv_newmortal())
+#endif
+
+#ifndef mXPUSHp
+# define mXPUSHp(p,l) STMT_START { EXTEND(sp,1); sv_setpvn(PUSHmortal, (p), (l)); } STMT_END
+#endif
+
+#ifndef mXPUSHn
+# define mXPUSHn(n) STMT_START { EXTEND(sp,1); sv_setnv(PUSHmortal, (NV)(n)); } STMT_END
+#endif
+
+#ifndef mXPUSHi
+# define mXPUSHi(i) STMT_START { EXTEND(sp,1); sv_setiv(PUSHmortal, (IV)(i)); } STMT_END
+#endif
+
+#ifndef mXPUSHu
+# define mXPUSHu(u) STMT_START { EXTEND(sp,1); sv_setuv(PUSHmortal, (UV)(u)); } STMT_END
+#endif
+
+/* Replace: 1 */
+#ifndef call_sv
+# define call_sv perl_call_sv
+#endif
+
+#ifndef call_pv
+# define call_pv perl_call_pv
+#endif
+
+#ifndef call_argv
+# define call_argv perl_call_argv
+#endif
+
+#ifndef call_method
+# define call_method perl_call_method
+#endif
+#ifndef eval_sv
+# define eval_sv perl_eval_sv
+#endif
+
+/* Replace: 0 */
+#ifndef PERL_LOADMOD_DENY
+# define PERL_LOADMOD_DENY 0x1
+#endif
+
+#ifndef PERL_LOADMOD_NOIMPORT
+# define PERL_LOADMOD_NOIMPORT 0x2
+#endif
+
+#ifndef PERL_LOADMOD_IMPORT_OPS
+# define PERL_LOADMOD_IMPORT_OPS 0x4
+#endif
+
+#ifndef G_METHOD
+# define G_METHOD 64
+# ifdef call_sv
+# undef call_sv
+# endif
+# if (PERL_BCDVERSION < 0x5006000)
+# define call_sv(sv, flags) ((flags) & G_METHOD ? perl_call_method((char *) SvPV_nolen_const(sv), \
+ (flags) & ~G_METHOD) : perl_call_sv(sv, flags))
+# else
+# define call_sv(sv, flags) ((flags) & G_METHOD ? Perl_call_method(aTHX_ (char *) SvPV_nolen_const(sv), \
+ (flags) & ~G_METHOD) : Perl_call_sv(aTHX_ sv, flags))
+# endif
+#endif
+
+/* Replace perl_eval_pv with eval_pv */
+
+#ifndef eval_pv
+#if defined(NEED_eval_pv)
+static SV* DPPP_(my_eval_pv)(char *p, I32 croak_on_error);
+static
+#else
+extern SV* DPPP_(my_eval_pv)(char *p, I32 croak_on_error);
+#endif
+
+#ifdef eval_pv
+# undef eval_pv
+#endif
+#define eval_pv(a,b) DPPP_(my_eval_pv)(aTHX_ a,b)
+#define Perl_eval_pv DPPP_(my_eval_pv)
+
+#if defined(NEED_eval_pv) || defined(NEED_eval_pv_GLOBAL)
+
+SV*
+DPPP_(my_eval_pv)(char *p, I32 croak_on_error)
+{
+ dSP;
+ SV* sv = newSVpv(p, 0);
+
+ PUSHMARK(sp);
+ eval_sv(sv, G_SCALAR);
+ SvREFCNT_dec(sv);
+
+ SPAGAIN;
+ sv = POPs;
+ PUTBACK;
+
+ if (croak_on_error && SvTRUE(GvSV(errgv)))
+ croak(SvPVx(GvSV(errgv), na));
+
+ return sv;
+}
+
+#endif
+#endif
+
+#ifndef vload_module
+#if defined(NEED_vload_module)
+static void DPPP_(my_vload_module)(U32 flags, SV *name, SV *ver, va_list *args);
+static
+#else
+extern void DPPP_(my_vload_module)(U32 flags, SV *name, SV *ver, va_list *args);
+#endif
+
+#ifdef vload_module
+# undef vload_module
+#endif
+#define vload_module(a,b,c,d) DPPP_(my_vload_module)(aTHX_ a,b,c,d)
+#define Perl_vload_module DPPP_(my_vload_module)
+
+#if defined(NEED_vload_module) || defined(NEED_vload_module_GLOBAL)
+
+void
+DPPP_(my_vload_module)(U32 flags, SV *name, SV *ver, va_list *args)
+{
+ dTHR;
+ dVAR;
+ OP *veop, *imop;
+
+ OP * const modname = newSVOP(OP_CONST, 0, name);
+ /* 5.005 has a somewhat hacky force_normal that doesn't croak on
+ SvREADONLY() if PL_compling is true. Current perls take care in
+ ck_require() to correctly turn off SvREADONLY before calling
+ force_normal_flags(). This seems a better fix than fudging PL_compling
+ */
+ SvREADONLY_off(((SVOP*)modname)->op_sv);
+ modname->op_private |= OPpCONST_BARE;
+ if (ver) {
+ veop = newSVOP(OP_CONST, 0, ver);
+ }
+ else
+ veop = NULL;
+ if (flags & PERL_LOADMOD_NOIMPORT) {
+ imop = sawparens(newNULLLIST());
+ }
+ else if (flags & PERL_LOADMOD_IMPORT_OPS) {
+ imop = va_arg(*args, OP*);
+ }
+ else {
+ SV *sv;
+ imop = NULL;
+ sv = va_arg(*args, SV*);
+ while (sv) {
+ imop = append_elem(OP_LIST, imop, newSVOP(OP_CONST, 0, sv));
+ sv = va_arg(*args, SV*);
+ }
+ }
+ {
+ const line_t ocopline = PL_copline;
+ COP * const ocurcop = PL_curcop;
+ const int oexpect = PL_expect;
+
+#if (PERL_BCDVERSION >= 0x5004000)
+ utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(FALSE, 0),
+ veop, modname, imop);
+#else
+ utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(),
+ modname, imop);
+#endif
+ PL_expect = oexpect;
+ PL_copline = ocopline;
+ PL_curcop = ocurcop;
+ }
+}
+
+#endif
+#endif
+
+#ifndef load_module
+#if defined(NEED_load_module)
+static void DPPP_(my_load_module)(U32 flags, SV *name, SV *ver, ...);
+static
+#else
+extern void DPPP_(my_load_module)(U32 flags, SV *name, SV *ver, ...);
+#endif
+
+#ifdef load_module
+# undef load_module
+#endif
+#define load_module DPPP_(my_load_module)
+#define Perl_load_module DPPP_(my_load_module)
+
+#if defined(NEED_load_module) || defined(NEED_load_module_GLOBAL)
+
+void
+DPPP_(my_load_module)(U32 flags, SV *name, SV *ver, ...)
+{
+ va_list args;
+ va_start(args, ver);
+ vload_module(flags, name, ver, &args);
+ va_end(args);
+}
+
+#endif
+#endif
+#ifndef newRV_inc
+# define newRV_inc(sv) newRV(sv) /* Replace */
+#endif
+
+#ifndef newRV_noinc
+#if defined(NEED_newRV_noinc)
+static SV * DPPP_(my_newRV_noinc)(SV *sv);
+static
+#else
+extern SV * DPPP_(my_newRV_noinc)(SV *sv);
+#endif
+
+#ifdef newRV_noinc
+# undef newRV_noinc
+#endif
+#define newRV_noinc(a) DPPP_(my_newRV_noinc)(aTHX_ a)
+#define Perl_newRV_noinc DPPP_(my_newRV_noinc)
+
+#if defined(NEED_newRV_noinc) || defined(NEED_newRV_noinc_GLOBAL)
+SV *
+DPPP_(my_newRV_noinc)(SV *sv)
+{
+ SV *rv = (SV *)newRV(sv);
+ SvREFCNT_dec(sv);
+ return rv;
+}
+#endif
+#endif
+
+/* Hint: newCONSTSUB
+ * Returns a CV* as of perl-5.7.1. This return value is not supported
+ * by Devel::PPPort.
+ */
+
+/* newCONSTSUB from IO.xs is in the core starting with 5.004_63 */
+#if (PERL_BCDVERSION < 0x5004063) && (PERL_BCDVERSION != 0x5004005)
+#if defined(NEED_newCONSTSUB)
+static void DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv);
+static
+#else
+extern void DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv);
+#endif
+
+#ifdef newCONSTSUB
+# undef newCONSTSUB
+#endif
+#define newCONSTSUB(a,b,c) DPPP_(my_newCONSTSUB)(aTHX_ a,b,c)
+#define Perl_newCONSTSUB DPPP_(my_newCONSTSUB)
+
+#if defined(NEED_newCONSTSUB) || defined(NEED_newCONSTSUB_GLOBAL)
+
+/* This is just a trick to avoid a dependency of newCONSTSUB on PL_parser */
+/* (There's no PL_parser in perl < 5.005, so this is completely safe) */
+#define D_PPP_PL_copline PL_copline
+
+void
+DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv)
+{
+ U32 oldhints = PL_hints;
+ HV *old_cop_stash = PL_curcop->cop_stash;
+ HV *old_curstash = PL_curstash;
+ line_t oldline = PL_curcop->cop_line;
+ PL_curcop->cop_line = D_PPP_PL_copline;
+
+ PL_hints &= ~HINT_BLOCK_SCOPE;
+ if (stash)
+ PL_curstash = PL_curcop->cop_stash = stash;
+
+ newSUB(
+
+#if (PERL_BCDVERSION < 0x5003022)
+ start_subparse(),
+#elif (PERL_BCDVERSION == 0x5003022)
+ start_subparse(0),
+#else /* 5.003_23 onwards */
+ start_subparse(FALSE, 0),
+#endif
+
+ newSVOP(OP_CONST, 0, newSVpv((char *) name, 0)),
+ newSVOP(OP_CONST, 0, &PL_sv_no), /* SvPV(&PL_sv_no) == "" -- GMB */
+ newSTATEOP(0, Nullch, newSVOP(OP_CONST, 0, sv))
+ );
+
+ PL_hints = oldhints;
+ PL_curcop->cop_stash = old_cop_stash;
+ PL_curstash = old_curstash;
+ PL_curcop->cop_line = oldline;
+}
+#endif
+#endif
+
+/*
+ * Boilerplate macros for initializing and accessing interpreter-local
+ * data from C. All statics in extensions should be reworked to use
+ * this, if you want to make the extension thread-safe. See ext/re/re.xs
+ * for an example of the use of these macros.
+ *
+ * Code that uses these macros is responsible for the following:
+ * 1. #define MY_CXT_KEY to a unique string, e.g. "DynaLoader_guts"
+ * 2. Declare a typedef named my_cxt_t that is a structure that contains
+ * all the data that needs to be interpreter-local.
+ * 3. Use the START_MY_CXT macro after the declaration of my_cxt_t.
+ * 4. Use the MY_CXT_INIT macro such that it is called exactly once
+ * (typically put in the BOOT: section).
+ * 5. Use the members of the my_cxt_t structure everywhere as
+ * MY_CXT.member.
+ * 6. Use the dMY_CXT macro (a declaration) in all the functions that
+ * access MY_CXT.
+ */
+
+#if defined(MULTIPLICITY) || defined(PERL_OBJECT) || \
+ defined(PERL_CAPI) || defined(PERL_IMPLICIT_CONTEXT)
+
+#ifndef START_MY_CXT
+
+/* This must appear in all extensions that define a my_cxt_t structure,
+ * right after the definition (i.e. at file scope). The non-threads
+ * case below uses it to declare the data as static. */
+#define START_MY_CXT
+
+#if (PERL_BCDVERSION < 0x5004068)
+/* Fetches the SV that keeps the per-interpreter data. */
+#define dMY_CXT_SV \
+ SV *my_cxt_sv = get_sv(MY_CXT_KEY, FALSE)
+#else /* >= perl5.004_68 */
+#define dMY_CXT_SV \
+ SV *my_cxt_sv = *hv_fetch(PL_modglobal, MY_CXT_KEY, \
+ sizeof(MY_CXT_KEY)-1, TRUE)
+#endif /* < perl5.004_68 */
+
+/* This declaration should be used within all functions that use the
+ * interpreter-local data. */
+#define dMY_CXT \
+ dMY_CXT_SV; \
+ my_cxt_t *my_cxtp = INT2PTR(my_cxt_t*,SvUV(my_cxt_sv))
+
+/* Creates and zeroes the per-interpreter data.
+ * (We allocate my_cxtp in a Perl SV so that it will be released when
+ * the interpreter goes away.) */
+#define MY_CXT_INIT \
+ dMY_CXT_SV; \
+ /* newSV() allocates one more than needed */ \
+ my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\
+ Zero(my_cxtp, 1, my_cxt_t); \
+ sv_setuv(my_cxt_sv, PTR2UV(my_cxtp))
+
+/* This macro must be used to access members of the my_cxt_t structure.
+ * e.g. MYCXT.some_data */
+#define MY_CXT (*my_cxtp)
+
+/* Judicious use of these macros can reduce the number of times dMY_CXT
+ * is used. Use is similar to pTHX, aTHX etc. */
+#define pMY_CXT my_cxt_t *my_cxtp
+#define pMY_CXT_ pMY_CXT,
+#define _pMY_CXT ,pMY_CXT
+#define aMY_CXT my_cxtp
+#define aMY_CXT_ aMY_CXT,
+#define _aMY_CXT ,aMY_CXT
+
+#endif /* START_MY_CXT */
+
+#ifndef MY_CXT_CLONE
+/* Clones the per-interpreter data. */
+#define MY_CXT_CLONE \
+ dMY_CXT_SV; \
+ my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\
+ Copy(INT2PTR(my_cxt_t*, SvUV(my_cxt_sv)), my_cxtp, 1, my_cxt_t);\
+ sv_setuv(my_cxt_sv, PTR2UV(my_cxtp))
+#endif
+
+#else /* single interpreter */
+
+#ifndef START_MY_CXT
+
+#define START_MY_CXT static my_cxt_t my_cxt;
+#define dMY_CXT_SV dNOOP
+#define dMY_CXT dNOOP
+#define MY_CXT_INIT NOOP
+#define MY_CXT my_cxt
+
+#define pMY_CXT void
+#define pMY_CXT_
+#define _pMY_CXT
+#define aMY_CXT
+#define aMY_CXT_
+#define _aMY_CXT
+
+#endif /* START_MY_CXT */
+
+#ifndef MY_CXT_CLONE
+#define MY_CXT_CLONE NOOP
+#endif
+
+#endif
+
+#ifndef IVdf
+# if IVSIZE == LONGSIZE
+# define IVdf "ld"
+# define UVuf "lu"
+# define UVof "lo"
+# define UVxf "lx"
+# define UVXf "lX"
+# else
+# if IVSIZE == INTSIZE
+# define IVdf "d"
+# define UVuf "u"
+# define UVof "o"
+# define UVxf "x"
+# define UVXf "X"
+# endif
+# endif
+#endif
+
+#ifndef NVef
+# if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE) && \
+ defined(PERL_PRIfldbl) && (PERL_BCDVERSION != 0x5006000)
+ /* Not very likely, but let's try anyway. */
+# define NVef PERL_PRIeldbl
+# define NVff PERL_PRIfldbl
+# define NVgf PERL_PRIgldbl
+# else
+# define NVef "e"
+# define NVff "f"
+# define NVgf "g"
+# endif
+#endif
+
+#ifndef SvREFCNT_inc
+# ifdef PERL_USE_GCC_BRACE_GROUPS
+# define SvREFCNT_inc(sv) \
+ ({ \
+ SV * const _sv = (SV*)(sv); \
+ if (_sv) \
+ (SvREFCNT(_sv))++; \
+ _sv; \
+ })
+# else
+# define SvREFCNT_inc(sv) \
+ ((PL_Sv=(SV*)(sv)) ? (++(SvREFCNT(PL_Sv)),PL_Sv) : NULL)
+# endif
+#endif
+
+#ifndef SvREFCNT_inc_simple
+# ifdef PERL_USE_GCC_BRACE_GROUPS
+# define SvREFCNT_inc_simple(sv) \
+ ({ \
+ if (sv) \
+ (SvREFCNT(sv))++; \
+ (SV *)(sv); \
+ })
+# else
+# define SvREFCNT_inc_simple(sv) \
+ ((sv) ? (SvREFCNT(sv)++,(SV*)(sv)) : NULL)
+# endif
+#endif
+
+#ifndef SvREFCNT_inc_NN
+# ifdef PERL_USE_GCC_BRACE_GROUPS
+# define SvREFCNT_inc_NN(sv) \
+ ({ \
+ SV * const _sv = (SV*)(sv); \
+ SvREFCNT(_sv)++; \
+ _sv; \
+ })
+# else
+# define SvREFCNT_inc_NN(sv) \
+ (PL_Sv=(SV*)(sv),++(SvREFCNT(PL_Sv)),PL_Sv)
+# endif
+#endif
+
+#ifndef SvREFCNT_inc_void
+# ifdef PERL_USE_GCC_BRACE_GROUPS
+# define SvREFCNT_inc_void(sv) \
+ ({ \
+ SV * const _sv = (SV*)(sv); \
+ if (_sv) \
+ (void)(SvREFCNT(_sv)++); \
+ })
+# else
+# define SvREFCNT_inc_void(sv) \
+ (void)((PL_Sv=(SV*)(sv)) ? ++(SvREFCNT(PL_Sv)) : 0)
+# endif
+#endif
+#ifndef SvREFCNT_inc_simple_void
+# define SvREFCNT_inc_simple_void(sv) STMT_START { if (sv) SvREFCNT(sv)++; } STMT_END
+#endif
+
+#ifndef SvREFCNT_inc_simple_NN
+# define SvREFCNT_inc_simple_NN(sv) (++SvREFCNT(sv), (SV*)(sv))
+#endif
+
+#ifndef SvREFCNT_inc_void_NN
+# define SvREFCNT_inc_void_NN(sv) (void)(++SvREFCNT((SV*)(sv)))
+#endif
+
+#ifndef SvREFCNT_inc_simple_void_NN
+# define SvREFCNT_inc_simple_void_NN(sv) (void)(++SvREFCNT((SV*)(sv)))
+#endif
+
+#ifndef newSV_type
+
+#if defined(NEED_newSV_type)
+static SV* DPPP_(my_newSV_type)(pTHX_ svtype const t);
+static
+#else
+extern SV* DPPP_(my_newSV_type)(pTHX_ svtype const t);
+#endif
+
+#ifdef newSV_type
+# undef newSV_type
+#endif
+#define newSV_type(a) DPPP_(my_newSV_type)(aTHX_ a)
+#define Perl_newSV_type DPPP_(my_newSV_type)
+
+#if defined(NEED_newSV_type) || defined(NEED_newSV_type_GLOBAL)
+
+SV*
+DPPP_(my_newSV_type)(pTHX_ svtype const t)
+{
+ SV* const sv = newSV(0);
+ sv_upgrade(sv, t);
+ return sv;
+}
+
+#endif
+
+#endif
+
+#if (PERL_BCDVERSION < 0x5006000)
+# define D_PPP_CONSTPV_ARG(x) ((char *) (x))
+#else
+# define D_PPP_CONSTPV_ARG(x) (x)
+#endif
+#ifndef newSVpvn
+# define newSVpvn(data,len) ((data) \
+ ? ((len) ? newSVpv((data), (len)) : newSVpv("", 0)) \
+ : newSV(0))
+#endif
+#ifndef newSVpvn_utf8
+# define newSVpvn_utf8(s, len, u) newSVpvn_flags((s), (len), (u) ? SVf_UTF8 : 0)
+#endif
+#ifndef SVf_UTF8
+# define SVf_UTF8 0
+#endif
+
+#ifndef newSVpvn_flags
+
+#if defined(NEED_newSVpvn_flags)
+static SV * DPPP_(my_newSVpvn_flags)(pTHX_ const char *s, STRLEN len, U32 flags);
+static
+#else
+extern SV * DPPP_(my_newSVpvn_flags)(pTHX_ const char *s, STRLEN len, U32 flags);
+#endif
+
+#ifdef newSVpvn_flags
+# undef newSVpvn_flags
+#endif
+#define newSVpvn_flags(a,b,c) DPPP_(my_newSVpvn_flags)(aTHX_ a,b,c)
+#define Perl_newSVpvn_flags DPPP_(my_newSVpvn_flags)
+
+#if defined(NEED_newSVpvn_flags) || defined(NEED_newSVpvn_flags_GLOBAL)
+
+SV *
+DPPP_(my_newSVpvn_flags)(pTHX_ const char *s, STRLEN len, U32 flags)
+{
+ SV *sv = newSVpvn(D_PPP_CONSTPV_ARG(s), len);
+ SvFLAGS(sv) |= (flags & SVf_UTF8);
+ return (flags & SVs_TEMP) ? sv_2mortal(sv) : sv;
+}
+
+#endif
+
+#endif
+
+/* Backwards compatibility stuff... :-( */
+#if !defined(NEED_sv_2pv_flags) && defined(NEED_sv_2pv_nolen)
+# define NEED_sv_2pv_flags
+#endif
+#if !defined(NEED_sv_2pv_flags_GLOBAL) && defined(NEED_sv_2pv_nolen_GLOBAL)
+# define NEED_sv_2pv_flags_GLOBAL
+#endif
+
+/* Hint: sv_2pv_nolen
+ * Use the SvPV_nolen() or SvPV_nolen_const() macros instead of sv_2pv_nolen().
+ */
+#ifndef sv_2pv_nolen
+# define sv_2pv_nolen(sv) SvPV_nolen(sv)
+#endif
+
+#ifdef SvPVbyte
+
+/* Hint: SvPVbyte
+ * Does not work in perl-5.6.1, ppport.h implements a version
+ * borrowed from perl-5.7.3.
+ */
+
+#if (PERL_BCDVERSION < 0x5007000)
+
+#if defined(NEED_sv_2pvbyte)
+static char * DPPP_(my_sv_2pvbyte)(pTHX_ SV *sv, STRLEN *lp);
+static
+#else
+extern char * DPPP_(my_sv_2pvbyte)(pTHX_ SV *sv, STRLEN *lp);
+#endif
+
+#ifdef sv_2pvbyte
+# undef sv_2pvbyte
+#endif
+#define sv_2pvbyte(a,b) DPPP_(my_sv_2pvbyte)(aTHX_ a,b)
+#define Perl_sv_2pvbyte DPPP_(my_sv_2pvbyte)
+
+#if defined(NEED_sv_2pvbyte) || defined(NEED_sv_2pvbyte_GLOBAL)
+
+char *
+DPPP_(my_sv_2pvbyte)(pTHX_ SV *sv, STRLEN *lp)
+{
+ sv_utf8_downgrade(sv,0);
+ return SvPV(sv,*lp);
+}
+
+#endif
+
+/* Hint: sv_2pvbyte
+ * Use the SvPVbyte() macro instead of sv_2pvbyte().
+ */
+
+#undef SvPVbyte
+
+#define SvPVbyte(sv, lp) \
+ ((SvFLAGS(sv) & (SVf_POK|SVf_UTF8)) == (SVf_POK) \
+ ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pvbyte(sv, &lp))
+
+#endif
+
+#else
+
+# define SvPVbyte SvPV
+# define sv_2pvbyte sv_2pv
+
+#endif
+#ifndef sv_2pvbyte_nolen
+# define sv_2pvbyte_nolen(sv) sv_2pv_nolen(sv)
+#endif
+
+/* Hint: sv_pvn
+ * Always use the SvPV() macro instead of sv_pvn().
+ */
+
+/* Hint: sv_pvn_force
+ * Always use the SvPV_force() macro instead of sv_pvn_force().
+ */
+
+/* If these are undefined, they're not handled by the core anyway */
+#ifndef SV_IMMEDIATE_UNREF
+# define SV_IMMEDIATE_UNREF 0
+#endif
+
+#ifndef SV_GMAGIC
+# define SV_GMAGIC 0
+#endif
+
+#ifndef SV_COW_DROP_PV
+# define SV_COW_DROP_PV 0
+#endif
+
+#ifndef SV_UTF8_NO_ENCODING
+# define SV_UTF8_NO_ENCODING 0
+#endif
+
+#ifndef SV_NOSTEAL
+# define SV_NOSTEAL 0
+#endif
+
+#ifndef SV_CONST_RETURN
+# define SV_CONST_RETURN 0
+#endif
+
+#ifndef SV_MUTABLE_RETURN
+# define SV_MUTABLE_RETURN 0
+#endif
+
+#ifndef SV_SMAGIC
+# define SV_SMAGIC 0
+#endif
+
+#ifndef SV_HAS_TRAILING_NUL
+# define SV_HAS_TRAILING_NUL 0
+#endif
+
+#ifndef SV_COW_SHARED_HASH_KEYS
+# define SV_COW_SHARED_HASH_KEYS 0
+#endif
+
+#if (PERL_BCDVERSION < 0x5007002)
+
+#if defined(NEED_sv_2pv_flags)
+static char * DPPP_(my_sv_2pv_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags);
+static
+#else
+extern char * DPPP_(my_sv_2pv_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags);
+#endif
+
+#ifdef sv_2pv_flags
+# undef sv_2pv_flags
+#endif
+#define sv_2pv_flags(a,b,c) DPPP_(my_sv_2pv_flags)(aTHX_ a,b,c)
+#define Perl_sv_2pv_flags DPPP_(my_sv_2pv_flags)
+
+#if defined(NEED_sv_2pv_flags) || defined(NEED_sv_2pv_flags_GLOBAL)
+
+char *
+DPPP_(my_sv_2pv_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags)
+{
+ STRLEN n_a = (STRLEN) flags;
+ return sv_2pv(sv, lp ? lp : &n_a);
+}
+
+#endif
+
+#if defined(NEED_sv_pvn_force_flags)
+static char * DPPP_(my_sv_pvn_force_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags);
+static
+#else
+extern char * DPPP_(my_sv_pvn_force_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags);
+#endif
+
+#ifdef sv_pvn_force_flags
+# undef sv_pvn_force_flags
+#endif
+#define sv_pvn_force_flags(a,b,c) DPPP_(my_sv_pvn_force_flags)(aTHX_ a,b,c)
+#define Perl_sv_pvn_force_flags DPPP_(my_sv_pvn_force_flags)
+
+#if defined(NEED_sv_pvn_force_flags) || defined(NEED_sv_pvn_force_flags_GLOBAL)
+
+char *
+DPPP_(my_sv_pvn_force_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags)
+{
+ STRLEN n_a = (STRLEN) flags;
+ return sv_pvn_force(sv, lp ? lp : &n_a);
+}
+
+#endif
+
+#endif
+
+#if (PERL_BCDVERSION < 0x5008008) || ( (PERL_BCDVERSION >= 0x5009000) && (PERL_BCDVERSION < 0x5009003) )
+# define DPPP_SVPV_NOLEN_LP_ARG &PL_na
+#else
+# define DPPP_SVPV_NOLEN_LP_ARG 0
+#endif
+#ifndef SvPV_const
+# define SvPV_const(sv, lp) SvPV_flags_const(sv, lp, SV_GMAGIC)
+#endif
+
+#ifndef SvPV_mutable
+# define SvPV_mutable(sv, lp) SvPV_flags_mutable(sv, lp, SV_GMAGIC)
+#endif
+#ifndef SvPV_flags
+# define SvPV_flags(sv, lp, flags) \
+ ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
+ ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
+#endif
+#ifndef SvPV_flags_const
+# define SvPV_flags_const(sv, lp, flags) \
+ ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
+ ? ((lp = SvCUR(sv)), SvPVX_const(sv)) : \
+ (const char*) sv_2pv_flags(sv, &lp, flags|SV_CONST_RETURN))
+#endif
+#ifndef SvPV_flags_const_nolen
+# define SvPV_flags_const_nolen(sv, flags) \
+ ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
+ ? SvPVX_const(sv) : \
+ (const char*) sv_2pv_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, flags|SV_CONST_RETURN))
+#endif
+#ifndef SvPV_flags_mutable
+# define SvPV_flags_mutable(sv, lp, flags) \
+ ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
+ ? ((lp = SvCUR(sv)), SvPVX_mutable(sv)) : \
+ sv_2pv_flags(sv, &lp, flags|SV_MUTABLE_RETURN))
+#endif
+#ifndef SvPV_force
+# define SvPV_force(sv, lp) SvPV_force_flags(sv, lp, SV_GMAGIC)
+#endif
+
+#ifndef SvPV_force_nolen
+# define SvPV_force_nolen(sv) SvPV_force_flags_nolen(sv, SV_GMAGIC)
+#endif
+
+#ifndef SvPV_force_mutable
+# define SvPV_force_mutable(sv, lp) SvPV_force_flags_mutable(sv, lp, SV_GMAGIC)
+#endif
+
+#ifndef SvPV_force_nomg
+# define SvPV_force_nomg(sv, lp) SvPV_force_flags(sv, lp, 0)
+#endif
+
+#ifndef SvPV_force_nomg_nolen
+# define SvPV_force_nomg_nolen(sv) SvPV_force_flags_nolen(sv, 0)
+#endif
+#ifndef SvPV_force_flags
+# define SvPV_force_flags(sv, lp, flags) \
+ ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == SVf_POK \
+ ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_pvn_force_flags(sv, &lp, flags))
+#endif
+#ifndef SvPV_force_flags_nolen
+# define SvPV_force_flags_nolen(sv, flags) \
+ ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == SVf_POK \
+ ? SvPVX(sv) : sv_pvn_force_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, flags))
+#endif
+#ifndef SvPV_force_flags_mutable
+# define SvPV_force_flags_mutable(sv, lp, flags) \
+ ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == SVf_POK \
+ ? ((lp = SvCUR(sv)), SvPVX_mutable(sv)) \
+ : sv_pvn_force_flags(sv, &lp, flags|SV_MUTABLE_RETURN))
+#endif
+#ifndef SvPV_nolen
+# define SvPV_nolen(sv) \
+ ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
+ ? SvPVX(sv) : sv_2pv_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, SV_GMAGIC))
+#endif
+#ifndef SvPV_nolen_const
+# define SvPV_nolen_const(sv) \
+ ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
+ ? SvPVX_const(sv) : sv_2pv_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, SV_GMAGIC|SV_CONST_RETURN))
+#endif
+#ifndef SvPV_nomg
+# define SvPV_nomg(sv, lp) SvPV_flags(sv, lp, 0)
+#endif
+
+#ifndef SvPV_nomg_const
+# define SvPV_nomg_const(sv, lp) SvPV_flags_const(sv, lp, 0)
+#endif
+
+#ifndef SvPV_nomg_const_nolen
+# define SvPV_nomg_const_nolen(sv) SvPV_flags_const_nolen(sv, 0)
+#endif
+#ifndef SvPV_renew
+# define SvPV_renew(sv,n) STMT_START { SvLEN_set(sv, n); \
+ SvPV_set((sv), (char *) saferealloc( \
+ (Malloc_t)SvPVX(sv), (MEM_SIZE)((n)))); \
+ } STMT_END
+#endif
+#ifndef SvMAGIC_set
+# define SvMAGIC_set(sv, val) \
+ STMT_START { assert(SvTYPE(sv) >= SVt_PVMG); \
+ (((XPVMG*) SvANY(sv))->xmg_magic = (val)); } STMT_END
+#endif
+
+#if (PERL_BCDVERSION < 0x5009003)
+#ifndef SvPVX_const
+# define SvPVX_const(sv) ((const char*) (0 + SvPVX(sv)))
+#endif
+
+#ifndef SvPVX_mutable
+# define SvPVX_mutable(sv) (0 + SvPVX(sv))
+#endif
+#ifndef SvRV_set
+# define SvRV_set(sv, val) \
+ STMT_START { assert(SvTYPE(sv) >= SVt_RV); \
+ (((XRV*) SvANY(sv))->xrv_rv = (val)); } STMT_END
+#endif
+
+#else
+#ifndef SvPVX_const
+# define SvPVX_const(sv) ((const char*)((sv)->sv_u.svu_pv))
+#endif
+
+#ifndef SvPVX_mutable
+# define SvPVX_mutable(sv) ((sv)->sv_u.svu_pv)
+#endif
+#ifndef SvRV_set
+# define SvRV_set(sv, val) \
+ STMT_START { assert(SvTYPE(sv) >= SVt_RV); \
+ ((sv)->sv_u.svu_rv = (val)); } STMT_END
+#endif
+
+#endif
+#ifndef SvSTASH_set
+# define SvSTASH_set(sv, val) \
+ STMT_START { assert(SvTYPE(sv) >= SVt_PVMG); \
+ (((XPVMG*) SvANY(sv))->xmg_stash = (val)); } STMT_END
+#endif
+
+#if (PERL_BCDVERSION < 0x5004000)
+#ifndef SvUV_set
+# define SvUV_set(sv, val) \
+ STMT_START { assert(SvTYPE(sv) == SVt_IV || SvTYPE(sv) >= SVt_PVIV); \
+ (((XPVIV*) SvANY(sv))->xiv_iv = (IV) (val)); } STMT_END
+#endif
+
+#else
+#ifndef SvUV_set
+# define SvUV_set(sv, val) \
+ STMT_START { assert(SvTYPE(sv) == SVt_IV || SvTYPE(sv) >= SVt_PVIV); \
+ (((XPVUV*) SvANY(sv))->xuv_uv = (val)); } STMT_END
+#endif
+
+#endif
+
+#if (PERL_BCDVERSION >= 0x5004000) && !defined(vnewSVpvf)
+#if defined(NEED_vnewSVpvf)
+static SV * DPPP_(my_vnewSVpvf)(pTHX_ const char *pat, va_list *args);
+static
+#else
+extern SV * DPPP_(my_vnewSVpvf)(pTHX_ const char *pat, va_list *args);
+#endif
+
+#ifdef vnewSVpvf
+# undef vnewSVpvf
+#endif
+#define vnewSVpvf(a,b) DPPP_(my_vnewSVpvf)(aTHX_ a,b)
+#define Perl_vnewSVpvf DPPP_(my_vnewSVpvf)
+
+#if defined(NEED_vnewSVpvf) || defined(NEED_vnewSVpvf_GLOBAL)
+
+SV *
+DPPP_(my_vnewSVpvf)(pTHX_ const char *pat, va_list *args)
+{
+ register SV *sv = newSV(0);
+ sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*));
+ return sv;
+}
+
+#endif
+#endif
+
+#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_vcatpvf)
+# define sv_vcatpvf(sv, pat, args) sv_vcatpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*))
+#endif
+
+#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_vsetpvf)
+# define sv_vsetpvf(sv, pat, args) sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*))
+#endif
+
+#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_catpvf_mg)
+#if defined(NEED_sv_catpvf_mg)
+static void DPPP_(my_sv_catpvf_mg)(pTHX_ SV *sv, const char *pat, ...);
+static
+#else
+extern void DPPP_(my_sv_catpvf_mg)(pTHX_ SV *sv, const char *pat, ...);
+#endif
+
+#define Perl_sv_catpvf_mg DPPP_(my_sv_catpvf_mg)
+
+#if defined(NEED_sv_catpvf_mg) || defined(NEED_sv_catpvf_mg_GLOBAL)
+
+void
+DPPP_(my_sv_catpvf_mg)(pTHX_ SV *sv, const char *pat, ...)
+{
+ va_list args;
+ va_start(args, pat);
+ sv_vcatpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*));
+ SvSETMAGIC(sv);
+ va_end(args);
+}
+
+#endif
+#endif
+
+#ifdef PERL_IMPLICIT_CONTEXT
+#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_catpvf_mg_nocontext)
+#if defined(NEED_sv_catpvf_mg_nocontext)
+static void DPPP_(my_sv_catpvf_mg_nocontext)(SV *sv, const char *pat, ...);
+static
+#else
+extern void DPPP_(my_sv_catpvf_mg_nocontext)(SV *sv, const char *pat, ...);
+#endif
+
+#define sv_catpvf_mg_nocontext DPPP_(my_sv_catpvf_mg_nocontext)
+#define Perl_sv_catpvf_mg_nocontext DPPP_(my_sv_catpvf_mg_nocontext)
+
+#if defined(NEED_sv_catpvf_mg_nocontext) || defined(NEED_sv_catpvf_mg_nocontext_GLOBAL)
+
+void
+DPPP_(my_sv_catpvf_mg_nocontext)(SV *sv, const char *pat, ...)
+{
+ dTHX;
+ va_list args;
+ va_start(args, pat);
+ sv_vcatpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*));
+ SvSETMAGIC(sv);
+ va_end(args);
+}
+
+#endif
+#endif
+#endif
+
+/* sv_catpvf_mg depends on sv_catpvf_mg_nocontext */
+#ifndef sv_catpvf_mg
+# ifdef PERL_IMPLICIT_CONTEXT
+# define sv_catpvf_mg Perl_sv_catpvf_mg_nocontext
+# else
+# define sv_catpvf_mg Perl_sv_catpvf_mg
+# endif
+#endif
+
+#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_vcatpvf_mg)
+# define sv_vcatpvf_mg(sv, pat, args) \
+ STMT_START { \
+ sv_vcatpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)); \
+ SvSETMAGIC(sv); \
+ } STMT_END
+#endif
+
+#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_setpvf_mg)
+#if defined(NEED_sv_setpvf_mg)
+static void DPPP_(my_sv_setpvf_mg)(pTHX_ SV *sv, const char *pat, ...);
+static
+#else
+extern void DPPP_(my_sv_setpvf_mg)(pTHX_ SV *sv, const char *pat, ...);
+#endif
+
+#define Perl_sv_setpvf_mg DPPP_(my_sv_setpvf_mg)
+
+#if defined(NEED_sv_setpvf_mg) || defined(NEED_sv_setpvf_mg_GLOBAL)
+
+void
+DPPP_(my_sv_setpvf_mg)(pTHX_ SV *sv, const char *pat, ...)
+{
+ va_list args;
+ va_start(args, pat);
+ sv_vsetpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*));
+ SvSETMAGIC(sv);
+ va_end(args);
+}
+
+#endif
+#endif
+
+#ifdef PERL_IMPLICIT_CONTEXT
+#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_setpvf_mg_nocontext)
+#if defined(NEED_sv_setpvf_mg_nocontext)
+static void DPPP_(my_sv_setpvf_mg_nocontext)(SV *sv, const char *pat, ...);
+static
+#else
+extern void DPPP_(my_sv_setpvf_mg_nocontext)(SV *sv, const char *pat, ...);
+#endif
+
+#define sv_setpvf_mg_nocontext DPPP_(my_sv_setpvf_mg_nocontext)
+#define Perl_sv_setpvf_mg_nocontext DPPP_(my_sv_setpvf_mg_nocontext)
+
+#if defined(NEED_sv_setpvf_mg_nocontext) || defined(NEED_sv_setpvf_mg_nocontext_GLOBAL)
+
+void
+DPPP_(my_sv_setpvf_mg_nocontext)(SV *sv, const char *pat, ...)
+{
+ dTHX;
+ va_list args;
+ va_start(args, pat);
+ sv_vsetpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*));
+ SvSETMAGIC(sv);
+ va_end(args);
+}
+
+#endif
+#endif
+#endif
+
+/* sv_setpvf_mg depends on sv_setpvf_mg_nocontext */
+#ifndef sv_setpvf_mg
+# ifdef PERL_IMPLICIT_CONTEXT
+# define sv_setpvf_mg Perl_sv_setpvf_mg_nocontext
+# else
+# define sv_setpvf_mg Perl_sv_setpvf_mg
+# endif
+#endif
+
+#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_vsetpvf_mg)
+# define sv_vsetpvf_mg(sv, pat, args) \
+ STMT_START { \
+ sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)); \
+ SvSETMAGIC(sv); \
+ } STMT_END
+#endif
+
+#ifndef newSVpvn_share
+
+#if defined(NEED_newSVpvn_share)
+static SV * DPPP_(my_newSVpvn_share)(pTHX_ const char *src, I32 len, U32 hash);
+static
+#else
+extern SV * DPPP_(my_newSVpvn_share)(pTHX_ const char *src, I32 len, U32 hash);
+#endif
+
+#ifdef newSVpvn_share
+# undef newSVpvn_share
+#endif
+#define newSVpvn_share(a,b,c) DPPP_(my_newSVpvn_share)(aTHX_ a,b,c)
+#define Perl_newSVpvn_share DPPP_(my_newSVpvn_share)
+
+#if defined(NEED_newSVpvn_share) || defined(NEED_newSVpvn_share_GLOBAL)
+
+SV *
+DPPP_(my_newSVpvn_share)(pTHX_ const char *src, I32 len, U32 hash)
+{
+ SV *sv;
+ if (len < 0)
+ len = -len;
+ if (!hash)
+ PERL_HASH(hash, (char*) src, len);
+ sv = newSVpvn((char *) src, len);
+ sv_upgrade(sv, SVt_PVIV);
+ SvIVX(sv) = hash;
+ SvREADONLY_on(sv);
+ SvPOK_on(sv);
+ return sv;
+}
+
+#endif
+
+#endif
+#ifndef SvSHARED_HASH
+# define SvSHARED_HASH(sv) (0 + SvUVX(sv))
+#endif
+#ifndef HvNAME_get
+# define HvNAME_get(hv) HvNAME(hv)
+#endif
+#ifndef HvNAMELEN_get
+# define HvNAMELEN_get(hv) (HvNAME_get(hv) ? (I32)strlen(HvNAME_get(hv)) : 0)
+#endif
+#ifndef GvSVn
+# define GvSVn(gv) GvSV(gv)
+#endif
+
+#ifndef isGV_with_GP
+# define isGV_with_GP(gv) isGV(gv)
+#endif
+#ifndef WARN_ALL
+# define WARN_ALL 0
+#endif
+
+#ifndef WARN_CLOSURE
+# define WARN_CLOSURE 1
+#endif
+
+#ifndef WARN_DEPRECATED
+# define WARN_DEPRECATED 2
+#endif
+
+#ifndef WARN_EXITING
+# define WARN_EXITING 3
+#endif
+
+#ifndef WARN_GLOB
+# define WARN_GLOB 4
+#endif
+
+#ifndef WARN_IO
+# define WARN_IO 5
+#endif
+
+#ifndef WARN_CLOSED
+# define WARN_CLOSED 6
+#endif
+
+#ifndef WARN_EXEC
+# define WARN_EXEC 7
+#endif
+
+#ifndef WARN_LAYER
+# define WARN_LAYER 8
+#endif
+
+#ifndef WARN_NEWLINE
+# define WARN_NEWLINE 9
+#endif
+
+#ifndef WARN_PIPE
+# define WARN_PIPE 10
+#endif
+
+#ifndef WARN_UNOPENED
+# define WARN_UNOPENED 11
+#endif
+
+#ifndef WARN_MISC
+# define WARN_MISC 12
+#endif
+
+#ifndef WARN_NUMERIC
+# define WARN_NUMERIC 13
+#endif
+
+#ifndef WARN_ONCE
+# define WARN_ONCE 14
+#endif
+
+#ifndef WARN_OVERFLOW
+# define WARN_OVERFLOW 15
+#endif
+
+#ifndef WARN_PACK
+# define WARN_PACK 16
+#endif
+
+#ifndef WARN_PORTABLE
+# define WARN_PORTABLE 17
+#endif
+
+#ifndef WARN_RECURSION
+# define WARN_RECURSION 18
+#endif
+
+#ifndef WARN_REDEFINE
+# define WARN_REDEFINE 19
+#endif
+
+#ifndef WARN_REGEXP
+# define WARN_REGEXP 20
+#endif
+
+#ifndef WARN_SEVERE
+# define WARN_SEVERE 21
+#endif
+
+#ifndef WARN_DEBUGGING
+# define WARN_DEBUGGING 22
+#endif
+
+#ifndef WARN_INPLACE
+# define WARN_INPLACE 23
+#endif
+
+#ifndef WARN_INTERNAL
+# define WARN_INTERNAL 24
+#endif
+
+#ifndef WARN_MALLOC
+# define WARN_MALLOC 25
+#endif
+
+#ifndef WARN_SIGNAL
+# define WARN_SIGNAL 26
+#endif
+
+#ifndef WARN_SUBSTR
+# define WARN_SUBSTR 27
+#endif
+
+#ifndef WARN_SYNTAX
+# define WARN_SYNTAX 28
+#endif
+
+#ifndef WARN_AMBIGUOUS
+# define WARN_AMBIGUOUS 29
+#endif
+
+#ifndef WARN_BAREWORD
+# define WARN_BAREWORD 30
+#endif
+
+#ifndef WARN_DIGIT
+# define WARN_DIGIT 31
+#endif
+
+#ifndef WARN_PARENTHESIS
+# define WARN_PARENTHESIS 32
+#endif
+
+#ifndef WARN_PRECEDENCE
+# define WARN_PRECEDENCE 33
+#endif
+
+#ifndef WARN_PRINTF
+# define WARN_PRINTF 34
+#endif
+
+#ifndef WARN_PROTOTYPE
+# define WARN_PROTOTYPE 35
+#endif
+
+#ifndef WARN_QW
+# define WARN_QW 36
+#endif
+
+#ifndef WARN_RESERVED
+# define WARN_RESERVED 37
+#endif
+
+#ifndef WARN_SEMICOLON
+# define WARN_SEMICOLON 38
+#endif
+
+#ifndef WARN_TAINT
+# define WARN_TAINT 39
+#endif
+
+#ifndef WARN_THREADS
+# define WARN_THREADS 40
+#endif
+
+#ifndef WARN_UNINITIALIZED
+# define WARN_UNINITIALIZED 41
+#endif
+
+#ifndef WARN_UNPACK
+# define WARN_UNPACK 42
+#endif
+
+#ifndef WARN_UNTIE
+# define WARN_UNTIE 43
+#endif
+
+#ifndef WARN_UTF8
+# define WARN_UTF8 44
+#endif
+
+#ifndef WARN_VOID
+# define WARN_VOID 45
+#endif
+
+#ifndef WARN_ASSERTIONS
+# define WARN_ASSERTIONS 46
+#endif
+#ifndef packWARN
+# define packWARN(a) (a)
+#endif
+
+#ifndef ckWARN
+# ifdef G_WARN_ON
+# define ckWARN(a) (PL_dowarn & G_WARN_ON)
+# else
+# define ckWARN(a) PL_dowarn
+# endif
+#endif
+
+#if (PERL_BCDVERSION >= 0x5004000) && !defined(warner)
+#if defined(NEED_warner)
+static void DPPP_(my_warner)(U32 err, const char *pat, ...);
+static
+#else
+extern void DPPP_(my_warner)(U32 err, const char *pat, ...);
+#endif
+
+#define Perl_warner DPPP_(my_warner)
+
+#if defined(NEED_warner) || defined(NEED_warner_GLOBAL)
+
+void
+DPPP_(my_warner)(U32 err, const char *pat, ...)
+{
+ SV *sv;
+ va_list args;
+
+ PERL_UNUSED_ARG(err);
+
+ va_start(args, pat);
+ sv = vnewSVpvf(pat, &args);
+ va_end(args);
+ sv_2mortal(sv);
+ warn("%s", SvPV_nolen(sv));
+}
+
+#define warner Perl_warner
+
+#define Perl_warner_nocontext Perl_warner
+
+#endif
+#endif
+
+/* concatenating with "" ensures that only literal strings are accepted as argument
+ * note that STR_WITH_LEN() can't be used as argument to macros or functions that
+ * under some configurations might be macros
+ */
+#ifndef STR_WITH_LEN
+# define STR_WITH_LEN(s) (s ""), (sizeof(s)-1)
+#endif
+#ifndef newSVpvs
+# define newSVpvs(str) newSVpvn(str "", sizeof(str) - 1)
+#endif
+
+#ifndef newSVpvs_flags
+# define newSVpvs_flags(str, flags) newSVpvn_flags(str "", sizeof(str) - 1, flags)
+#endif
+
+#ifndef sv_catpvs
+# define sv_catpvs(sv, str) sv_catpvn(sv, str "", sizeof(str) - 1)
+#endif
+
+#ifndef sv_setpvs
+# define sv_setpvs(sv, str) sv_setpvn(sv, str "", sizeof(str) - 1)
+#endif
+
+#ifndef hv_fetchs
+# define hv_fetchs(hv, key, lval) hv_fetch(hv, key "", sizeof(key) - 1, lval)
+#endif
+
+#ifndef hv_stores
+# define hv_stores(hv, key, val) hv_store(hv, key "", sizeof(key) - 1, val, 0)
+#endif
+#ifndef gv_fetchpvn_flags
+# define gv_fetchpvn_flags(name, len, flags, svt) gv_fetchpv(name, flags, svt)
+#endif
+
+#ifndef gv_fetchpvs
+# define gv_fetchpvs(name, flags, svt) gv_fetchpvn_flags(name "", sizeof(name) - 1, flags, svt)
+#endif
+
+#ifndef gv_stashpvs
+# define gv_stashpvs(name, flags) gv_stashpvn(name "", sizeof(name) - 1, flags)
+#endif
+#ifndef SvGETMAGIC
+# define SvGETMAGIC(x) STMT_START { if (SvGMAGICAL(x)) mg_get(x); } STMT_END
+#endif
+#ifndef PERL_MAGIC_sv
+# define PERL_MAGIC_sv '\0'
+#endif
+
+#ifndef PERL_MAGIC_overload
+# define PERL_MAGIC_overload 'A'
+#endif
+
+#ifndef PERL_MAGIC_overload_elem
+# define PERL_MAGIC_overload_elem 'a'
+#endif
+
+#ifndef PERL_MAGIC_overload_table
+# define PERL_MAGIC_overload_table 'c'
+#endif
+
+#ifndef PERL_MAGIC_bm
+# define PERL_MAGIC_bm 'B'
+#endif
+
+#ifndef PERL_MAGIC_regdata
+# define PERL_MAGIC_regdata 'D'
+#endif
+
+#ifndef PERL_MAGIC_regdatum
+# define PERL_MAGIC_regdatum 'd'
+#endif
+
+#ifndef PERL_MAGIC_env
+# define PERL_MAGIC_env 'E'
+#endif
+
+#ifndef PERL_MAGIC_envelem
+# define PERL_MAGIC_envelem 'e'
+#endif
+
+#ifndef PERL_MAGIC_fm
+# define PERL_MAGIC_fm 'f'
+#endif
+
+#ifndef PERL_MAGIC_regex_global
+# define PERL_MAGIC_regex_global 'g'
+#endif
+
+#ifndef PERL_MAGIC_isa
+# define PERL_MAGIC_isa 'I'
+#endif
+
+#ifndef PERL_MAGIC_isaelem
+# define PERL_MAGIC_isaelem 'i'
+#endif
+
+#ifndef PERL_MAGIC_nkeys
+# define PERL_MAGIC_nkeys 'k'
+#endif
+
+#ifndef PERL_MAGIC_dbfile
+# define PERL_MAGIC_dbfile 'L'
+#endif
+
+#ifndef PERL_MAGIC_dbline
+# define PERL_MAGIC_dbline 'l'
+#endif
+
+#ifndef PERL_MAGIC_mutex
+# define PERL_MAGIC_mutex 'm'
+#endif
+
+#ifndef PERL_MAGIC_shared
+# define PERL_MAGIC_shared 'N'
+#endif
+
+#ifndef PERL_MAGIC_shared_scalar
+# define PERL_MAGIC_shared_scalar 'n'
+#endif
+
+#ifndef PERL_MAGIC_collxfrm
+# define PERL_MAGIC_collxfrm 'o'
+#endif
+
+#ifndef PERL_MAGIC_tied
+# define PERL_MAGIC_tied 'P'
+#endif
+
+#ifndef PERL_MAGIC_tiedelem
+# define PERL_MAGIC_tiedelem 'p'
+#endif
+
+#ifndef PERL_MAGIC_tiedscalar
+# define PERL_MAGIC_tiedscalar 'q'
+#endif
+
+#ifndef PERL_MAGIC_qr
+# define PERL_MAGIC_qr 'r'
+#endif
+
+#ifndef PERL_MAGIC_sig
+# define PERL_MAGIC_sig 'S'
+#endif
+
+#ifndef PERL_MAGIC_sigelem
+# define PERL_MAGIC_sigelem 's'
+#endif
+
+#ifndef PERL_MAGIC_taint
+# define PERL_MAGIC_taint 't'
+#endif
+
+#ifndef PERL_MAGIC_uvar
+# define PERL_MAGIC_uvar 'U'
+#endif
+
+#ifndef PERL_MAGIC_uvar_elem
+# define PERL_MAGIC_uvar_elem 'u'
+#endif
+
+#ifndef PERL_MAGIC_vstring
+# define PERL_MAGIC_vstring 'V'
+#endif
+
+#ifndef PERL_MAGIC_vec
+# define PERL_MAGIC_vec 'v'
+#endif
+
+#ifndef PERL_MAGIC_utf8
+# define PERL_MAGIC_utf8 'w'
+#endif
+
+#ifndef PERL_MAGIC_substr
+# define PERL_MAGIC_substr 'x'
+#endif
+
+#ifndef PERL_MAGIC_defelem
+# define PERL_MAGIC_defelem 'y'
+#endif
+
+#ifndef PERL_MAGIC_glob
+# define PERL_MAGIC_glob '*'
+#endif
+
+#ifndef PERL_MAGIC_arylen
+# define PERL_MAGIC_arylen '#'
+#endif
+
+#ifndef PERL_MAGIC_pos
+# define PERL_MAGIC_pos '.'
+#endif
+
+#ifndef PERL_MAGIC_backref
+# define PERL_MAGIC_backref '<'
+#endif
+
+#ifndef PERL_MAGIC_ext
+# define PERL_MAGIC_ext '~'
+#endif
+
+/* That's the best we can do... */
+#ifndef sv_catpvn_nomg
+# define sv_catpvn_nomg sv_catpvn
+#endif
+
+#ifndef sv_catsv_nomg
+# define sv_catsv_nomg sv_catsv
+#endif
+
+#ifndef sv_setsv_nomg
+# define sv_setsv_nomg sv_setsv
+#endif
+
+#ifndef sv_pvn_nomg
+# define sv_pvn_nomg sv_pvn
+#endif
+
+#ifndef SvIV_nomg
+# define SvIV_nomg SvIV
+#endif
+
+#ifndef SvUV_nomg
+# define SvUV_nomg SvUV
+#endif
+
+#ifndef sv_catpv_mg
+# define sv_catpv_mg(sv, ptr) \
+ STMT_START { \
+ SV *TeMpSv = sv; \
+ sv_catpv(TeMpSv,ptr); \
+ SvSETMAGIC(TeMpSv); \
+ } STMT_END
+#endif
+
+#ifndef sv_catpvn_mg
+# define sv_catpvn_mg(sv, ptr, len) \
+ STMT_START { \
+ SV *TeMpSv = sv; \
+ sv_catpvn(TeMpSv,ptr,len); \
+ SvSETMAGIC(TeMpSv); \
+ } STMT_END
+#endif
+
+#ifndef sv_catsv_mg
+# define sv_catsv_mg(dsv, ssv) \
+ STMT_START { \
+ SV *TeMpSv = dsv; \
+ sv_catsv(TeMpSv,ssv); \
+ SvSETMAGIC(TeMpSv); \
+ } STMT_END
+#endif
+
+#ifndef sv_setiv_mg
+# define sv_setiv_mg(sv, i) \
+ STMT_START { \
+ SV *TeMpSv = sv; \
+ sv_setiv(TeMpSv,i); \
+ SvSETMAGIC(TeMpSv); \
+ } STMT_END
+#endif
+
+#ifndef sv_setnv_mg
+# define sv_setnv_mg(sv, num) \
+ STMT_START { \
+ SV *TeMpSv = sv; \
+ sv_setnv(TeMpSv,num); \
+ SvSETMAGIC(TeMpSv); \
+ } STMT_END
+#endif
+
+#ifndef sv_setpv_mg
+# define sv_setpv_mg(sv, ptr) \
+ STMT_START { \
+ SV *TeMpSv = sv; \
+ sv_setpv(TeMpSv,ptr); \
+ SvSETMAGIC(TeMpSv); \
+ } STMT_END
+#endif
+
+#ifndef sv_setpvn_mg
+# define sv_setpvn_mg(sv, ptr, len) \
+ STMT_START { \
+ SV *TeMpSv = sv; \
+ sv_setpvn(TeMpSv,ptr,len); \
+ SvSETMAGIC(TeMpSv); \
+ } STMT_END
+#endif
+
+#ifndef sv_setsv_mg
+# define sv_setsv_mg(dsv, ssv) \
+ STMT_START { \
+ SV *TeMpSv = dsv; \
+ sv_setsv(TeMpSv,ssv); \
+ SvSETMAGIC(TeMpSv); \
+ } STMT_END
+#endif
+
+#ifndef sv_setuv_mg
+# define sv_setuv_mg(sv, i) \
+ STMT_START { \
+ SV *TeMpSv = sv; \
+ sv_setuv(TeMpSv,i); \
+ SvSETMAGIC(TeMpSv); \
+ } STMT_END
+#endif
+
+#ifndef sv_usepvn_mg
+# define sv_usepvn_mg(sv, ptr, len) \
+ STMT_START { \
+ SV *TeMpSv = sv; \
+ sv_usepvn(TeMpSv,ptr,len); \
+ SvSETMAGIC(TeMpSv); \
+ } STMT_END
+#endif
+#ifndef SvVSTRING_mg
+# define SvVSTRING_mg(sv) (SvMAGICAL(sv) ? mg_find(sv, PERL_MAGIC_vstring) : NULL)
+#endif
+
+/* Hint: sv_magic_portable
+ * This is a compatibility function that is only available with
+ * Devel::PPPort. It is NOT in the perl core.
+ * Its purpose is to mimic the 5.8.0 behaviour of sv_magic() when
+ * it is being passed a name pointer with namlen == 0. In that
+ * case, perl 5.8.0 and later store the pointer, not a copy of it.
+ * The compatibility can be provided back to perl 5.004. With
+ * earlier versions, the code will not compile.
+ */
+
+#if (PERL_BCDVERSION < 0x5004000)
+
+ /* code that uses sv_magic_portable will not compile */
+
+#elif (PERL_BCDVERSION < 0x5008000)
+
+# define sv_magic_portable(sv, obj, how, name, namlen) \
+ STMT_START { \
+ SV *SvMp_sv = (sv); \
+ char *SvMp_name = (char *) (name); \
+ I32 SvMp_namlen = (namlen); \
+ if (SvMp_name && SvMp_namlen == 0) \
+ { \
+ MAGIC *mg; \
+ sv_magic(SvMp_sv, obj, how, 0, 0); \
+ mg = SvMAGIC(SvMp_sv); \
+ mg->mg_len = -42; /* XXX: this is the tricky part */ \
+ mg->mg_ptr = SvMp_name; \
+ } \
+ else \
+ { \
+ sv_magic(SvMp_sv, obj, how, SvMp_name, SvMp_namlen); \
+ } \
+ } STMT_END
+
+#else
+
+# define sv_magic_portable(a, b, c, d, e) sv_magic(a, b, c, d, e)
+
+#endif
+
+#ifdef USE_ITHREADS
+#ifndef CopFILE
+# define CopFILE(c) ((c)->cop_file)
+#endif
+
+#ifndef CopFILEGV
+# define CopFILEGV(c) (CopFILE(c) ? gv_fetchfile(CopFILE(c)) : Nullgv)
+#endif
+
+#ifndef CopFILE_set
+# define CopFILE_set(c,pv) ((c)->cop_file = savepv(pv))
+#endif
+
+#ifndef CopFILESV
+# define CopFILESV(c) (CopFILE(c) ? GvSV(gv_fetchfile(CopFILE(c))) : Nullsv)
+#endif
+
+#ifndef CopFILEAV
+# define CopFILEAV(c) (CopFILE(c) ? GvAV(gv_fetchfile(CopFILE(c))) : Nullav)
+#endif
+
+#ifndef CopSTASHPV
+# define CopSTASHPV(c) ((c)->cop_stashpv)
+#endif
+
+#ifndef CopSTASHPV_set
+# define CopSTASHPV_set(c,pv) ((c)->cop_stashpv = ((pv) ? savepv(pv) : Nullch))
+#endif
+
+#ifndef CopSTASH
+# define CopSTASH(c) (CopSTASHPV(c) ? gv_stashpv(CopSTASHPV(c),GV_ADD) : Nullhv)
+#endif
+
+#ifndef CopSTASH_set
+# define CopSTASH_set(c,hv) CopSTASHPV_set(c, (hv) ? HvNAME(hv) : Nullch)
+#endif
+
+#ifndef CopSTASH_eq
+# define CopSTASH_eq(c,hv) ((hv) && (CopSTASHPV(c) == HvNAME(hv) \
+ || (CopSTASHPV(c) && HvNAME(hv) \
+ && strEQ(CopSTASHPV(c), HvNAME(hv)))))
+#endif
+
+#else
+#ifndef CopFILEGV
+# define CopFILEGV(c) ((c)->cop_filegv)
+#endif
+
+#ifndef CopFILEGV_set
+# define CopFILEGV_set(c,gv) ((c)->cop_filegv = (GV*)SvREFCNT_inc(gv))
+#endif
+
+#ifndef CopFILE_set
+# define CopFILE_set(c,pv) CopFILEGV_set((c), gv_fetchfile(pv))
+#endif
+
+#ifndef CopFILESV
+# define CopFILESV(c) (CopFILEGV(c) ? GvSV(CopFILEGV(c)) : Nullsv)
+#endif
+
+#ifndef CopFILEAV
+# define CopFILEAV(c) (CopFILEGV(c) ? GvAV(CopFILEGV(c)) : Nullav)
+#endif
+
+#ifndef CopFILE
+# define CopFILE(c) (CopFILESV(c) ? SvPVX(CopFILESV(c)) : Nullch)
+#endif
+
+#ifndef CopSTASH
+# define CopSTASH(c) ((c)->cop_stash)
+#endif
+
+#ifndef CopSTASH_set
+# define CopSTASH_set(c,hv) ((c)->cop_stash = (hv))
+#endif
+
+#ifndef CopSTASHPV
+# define CopSTASHPV(c) (CopSTASH(c) ? HvNAME(CopSTASH(c)) : Nullch)
+#endif
+
+#ifndef CopSTASHPV_set
+# define CopSTASHPV_set(c,pv) CopSTASH_set((c), gv_stashpv(pv,GV_ADD))
+#endif
+
+#ifndef CopSTASH_eq
+# define CopSTASH_eq(c,hv) (CopSTASH(c) == (hv))
+#endif
+
+#endif /* USE_ITHREADS */
+#ifndef IN_PERL_COMPILETIME
+# define IN_PERL_COMPILETIME (PL_curcop == &PL_compiling)
+#endif
+
+#ifndef IN_LOCALE_RUNTIME
+# define IN_LOCALE_RUNTIME (PL_curcop->op_private & HINT_LOCALE)
+#endif
+
+#ifndef IN_LOCALE_COMPILETIME
+# define IN_LOCALE_COMPILETIME (PL_hints & HINT_LOCALE)
+#endif
+
+#ifndef IN_LOCALE
+# define IN_LOCALE (IN_PERL_COMPILETIME ? IN_LOCALE_COMPILETIME : IN_LOCALE_RUNTIME)
+#endif
+#ifndef IS_NUMBER_IN_UV
+# define IS_NUMBER_IN_UV 0x01
+#endif
+
+#ifndef IS_NUMBER_GREATER_THAN_UV_MAX
+# define IS_NUMBER_GREATER_THAN_UV_MAX 0x02
+#endif
+
+#ifndef IS_NUMBER_NOT_INT
+# define IS_NUMBER_NOT_INT 0x04
+#endif
+
+#ifndef IS_NUMBER_NEG
+# define IS_NUMBER_NEG 0x08
+#endif
+
+#ifndef IS_NUMBER_INFINITY
+# define IS_NUMBER_INFINITY 0x10
+#endif
+
+#ifndef IS_NUMBER_NAN
+# define IS_NUMBER_NAN 0x20
+#endif
+#ifndef GROK_NUMERIC_RADIX
+# define GROK_NUMERIC_RADIX(sp, send) grok_numeric_radix(sp, send)
+#endif
+#ifndef PERL_SCAN_GREATER_THAN_UV_MAX
+# define PERL_SCAN_GREATER_THAN_UV_MAX 0x02
+#endif
+
+#ifndef PERL_SCAN_SILENT_ILLDIGIT
+# define PERL_SCAN_SILENT_ILLDIGIT 0x04
+#endif
+
+#ifndef PERL_SCAN_ALLOW_UNDERSCORES
+# define PERL_SCAN_ALLOW_UNDERSCORES 0x01
+#endif
+
+#ifndef PERL_SCAN_DISALLOW_PREFIX
+# define PERL_SCAN_DISALLOW_PREFIX 0x02
+#endif
+
+#ifndef grok_numeric_radix
+#if defined(NEED_grok_numeric_radix)
+static bool DPPP_(my_grok_numeric_radix)(pTHX_ const char ** sp, const char * send);
+static
+#else
+extern bool DPPP_(my_grok_numeric_radix)(pTHX_ const char ** sp, const char * send);
+#endif
+
+#ifdef grok_numeric_radix
+# undef grok_numeric_radix
+#endif
+#define grok_numeric_radix(a,b) DPPP_(my_grok_numeric_radix)(aTHX_ a,b)
+#define Perl_grok_numeric_radix DPPP_(my_grok_numeric_radix)
+
+#if defined(NEED_grok_numeric_radix) || defined(NEED_grok_numeric_radix_GLOBAL)
+bool
+DPPP_(my_grok_numeric_radix)(pTHX_ const char **sp, const char *send)
+{
+#ifdef USE_LOCALE_NUMERIC
+#ifdef PL_numeric_radix_sv
+ if (PL_numeric_radix_sv && IN_LOCALE) {
+ STRLEN len;
+ char* radix = SvPV(PL_numeric_radix_sv, len);
+ if (*sp + len <= send && memEQ(*sp, radix, len)) {
+ *sp += len;
+ return TRUE;
+ }
+ }
+#else
+ /* older perls don't have PL_numeric_radix_sv so the radix
+ * must manually be requested from locale.h
+ */
+#include <locale.h>
+ dTHR; /* needed for older threaded perls */
+ struct lconv *lc = localeconv();
+ char *radix = lc->decimal_point;
+ if (radix && IN_LOCALE) {
+ STRLEN len = strlen(radix);
+ if (*sp + len <= send && memEQ(*sp, radix, len)) {
+ *sp += len;
+ return TRUE;
+ }
+ }
+#endif
+#endif /* USE_LOCALE_NUMERIC */
+ /* always try "." if numeric radix didn't match because
+ * we may have data from different locales mixed */
+ if (*sp < send && **sp == '.') {
+ ++*sp;
+ return TRUE;
+ }
+ return FALSE;
+}
+#endif
+#endif
+
+#ifndef grok_number
+#if defined(NEED_grok_number)
+static int DPPP_(my_grok_number)(pTHX_ const char * pv, STRLEN len, UV * valuep);
+static
+#else
+extern int DPPP_(my_grok_number)(pTHX_ const char * pv, STRLEN len, UV * valuep);
+#endif
+
+#ifdef grok_number
+# undef grok_number
+#endif
+#define grok_number(a,b,c) DPPP_(my_grok_number)(aTHX_ a,b,c)
+#define Perl_grok_number DPPP_(my_grok_number)
+
+#if defined(NEED_grok_number) || defined(NEED_grok_number_GLOBAL)
+int
+DPPP_(my_grok_number)(pTHX_ const char *pv, STRLEN len, UV *valuep)
+{
+ const char *s = pv;
+ const char *send = pv + len;
+ const UV max_div_10 = UV_MAX / 10;
+ const char max_mod_10 = UV_MAX % 10;
+ int numtype = 0;
+ int sawinf = 0;
+ int sawnan = 0;
+
+ while (s < send && isSPACE(*s))
+ s++;
+ if (s == send) {
+ return 0;
+ } else if (*s == '-') {
+ s++;
+ numtype = IS_NUMBER_NEG;
+ }
+ else if (*s == '+')
+ s++;
+
+ if (s == send)
+ return 0;
+
+ /* next must be digit or the radix separator or beginning of infinity */
+ if (isDIGIT(*s)) {
+ /* UVs are at least 32 bits, so the first 9 decimal digits cannot
+ overflow. */
+ UV value = *s - '0';
+ /* This construction seems to be more optimiser friendly.
+ (without it gcc does the isDIGIT test and the *s - '0' separately)
+ With it gcc on arm is managing 6 instructions (6 cycles) per digit.
+ In theory the optimiser could deduce how far to unroll the loop
+ before checking for overflow. */
+ if (++s < send) {
+ int digit = *s - '0';
+ if (digit >= 0 && digit <= 9) {
+ value = value * 10 + digit;
+ if (++s < send) {
+ digit = *s - '0';
+ if (digit >= 0 && digit <= 9) {
+ value = value * 10 + digit;
+ if (++s < send) {
+ digit = *s - '0';
+ if (digit >= 0 && digit <= 9) {
+ value = value * 10 + digit;
+ if (++s < send) {
+ digit = *s - '0';
+ if (digit >= 0 && digit <= 9) {
+ value = value * 10 + digit;
+ if (++s < send) {
+ digit = *s - '0';
+ if (digit >= 0 && digit <= 9) {
+ value = value * 10 + digit;
+ if (++s < send) {
+ digit = *s - '0';
+ if (digit >= 0 && digit <= 9) {
+ value = value * 10 + digit;
+ if (++s < send) {
+ digit = *s - '0';
+ if (digit >= 0 && digit <= 9) {
+ value = value * 10 + digit;
+ if (++s < send) {
+ digit = *s - '0';
+ if (digit >= 0 && digit <= 9) {
+ value = value * 10 + digit;
+ if (++s < send) {
+ /* Now got 9 digits, so need to check
+ each time for overflow. */
+ digit = *s - '0';
+ while (digit >= 0 && digit <= 9
+ && (value < max_div_10
+ || (value == max_div_10
+ && digit <= max_mod_10))) {
+ value = value * 10 + digit;
+ if (++s < send)
+ digit = *s - '0';
+ else
+ break;
+ }
+ if (digit >= 0 && digit <= 9
+ && (s < send)) {
+ /* value overflowed.
+ skip the remaining digits, don't
+ worry about setting *valuep. */
+ do {
+ s++;
+ } while (s < send && isDIGIT(*s));
+ numtype |=
+ IS_NUMBER_GREATER_THAN_UV_MAX;
+ goto skip_value;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ numtype |= IS_NUMBER_IN_UV;
+ if (valuep)
+ *valuep = value;
+
+ skip_value:
+ if (GROK_NUMERIC_RADIX(&s, send)) {
+ numtype |= IS_NUMBER_NOT_INT;
+ while (s < send && isDIGIT(*s)) /* optional digits after the radix */
+ s++;
+ }
+ }
+ else if (GROK_NUMERIC_RADIX(&s, send)) {
+ numtype |= IS_NUMBER_NOT_INT | IS_NUMBER_IN_UV; /* valuep assigned below */
+ /* no digits before the radix means we need digits after it */
+ if (s < send && isDIGIT(*s)) {
+ do {
+ s++;
+ } while (s < send && isDIGIT(*s));
+ if (valuep) {
+ /* integer approximation is valid - it's 0. */
+ *valuep = 0;
+ }
+ }
+ else
+ return 0;
+ } else if (*s == 'I' || *s == 'i') {
+ s++; if (s == send || (*s != 'N' && *s != 'n')) return 0;
+ s++; if (s == send || (*s != 'F' && *s != 'f')) return 0;
+ s++; if (s < send && (*s == 'I' || *s == 'i')) {
+ s++; if (s == send || (*s != 'N' && *s != 'n')) return 0;
+ s++; if (s == send || (*s != 'I' && *s != 'i')) return 0;
+ s++; if (s == send || (*s != 'T' && *s != 't')) return 0;
+ s++; if (s == send || (*s != 'Y' && *s != 'y')) return 0;
+ s++;
+ }
+ sawinf = 1;
+ } else if (*s == 'N' || *s == 'n') {
+ /* XXX TODO: There are signaling NaNs and quiet NaNs. */
+ s++; if (s == send || (*s != 'A' && *s != 'a')) return 0;
+ s++; if (s == send || (*s != 'N' && *s != 'n')) return 0;
+ s++;
+ sawnan = 1;
+ } else
+ return 0;
+
+ if (sawinf) {
+ numtype &= IS_NUMBER_NEG; /* Keep track of sign */
+ numtype |= IS_NUMBER_INFINITY | IS_NUMBER_NOT_INT;
+ } else if (sawnan) {
+ numtype &= IS_NUMBER_NEG; /* Keep track of sign */
+ numtype |= IS_NUMBER_NAN | IS_NUMBER_NOT_INT;
+ } else if (s < send) {
+ /* we can have an optional exponent part */
+ if (*s == 'e' || *s == 'E') {
+ /* The only flag we keep is sign. Blow away any "it's UV" */
+ numtype &= IS_NUMBER_NEG;
+ numtype |= IS_NUMBER_NOT_INT;
+ s++;
+ if (s < send && (*s == '-' || *s == '+'))
+ s++;
+ if (s < send && isDIGIT(*s)) {
+ do {
+ s++;
+ } while (s < send && isDIGIT(*s));
+ }
+ else
+ return 0;
+ }
+ }
+ while (s < send && isSPACE(*s))
+ s++;
+ if (s >= send)
+ return numtype;
+ if (len == 10 && memEQ(pv, "0 but true", 10)) {
+ if (valuep)
+ *valuep = 0;
+ return IS_NUMBER_IN_UV;
+ }
+ return 0;
+}
+#endif
+#endif
+
+/*
+ * The grok_* routines have been modified to use warn() instead of
+ * Perl_warner(). Also, 'hexdigit' was the former name of PL_hexdigit,
+ * which is why the stack variable has been renamed to 'xdigit'.
+ */
+
+#ifndef grok_bin
+#if defined(NEED_grok_bin)
+static UV DPPP_(my_grok_bin)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result);
+static
+#else
+extern UV DPPP_(my_grok_bin)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result);
+#endif
+
+#ifdef grok_bin
+# undef grok_bin
+#endif
+#define grok_bin(a,b,c,d) DPPP_(my_grok_bin)(aTHX_ a,b,c,d)
+#define Perl_grok_bin DPPP_(my_grok_bin)
+
+#if defined(NEED_grok_bin) || defined(NEED_grok_bin_GLOBAL)
+UV
+DPPP_(my_grok_bin)(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result)
+{
+ const char *s = start;
+ STRLEN len = *len_p;
+ UV value = 0;
+ NV value_nv = 0;
+
+ const UV max_div_2 = UV_MAX / 2;
+ bool allow_underscores = *flags & PERL_SCAN_ALLOW_UNDERSCORES;
+ bool overflowed = FALSE;
+
+ if (!(*flags & PERL_SCAN_DISALLOW_PREFIX)) {
+ /* strip off leading b or 0b.
+ for compatibility silently suffer "b" and "0b" as valid binary
+ numbers. */
+ if (len >= 1) {
+ if (s[0] == 'b') {
+ s++;
+ len--;
+ }
+ else if (len >= 2 && s[0] == '0' && s[1] == 'b') {
+ s+=2;
+ len-=2;
+ }
+ }
+ }
+
+ for (; len-- && *s; s++) {
+ char bit = *s;
+ if (bit == '0' || bit == '1') {
+ /* Write it in this wonky order with a goto to attempt to get the
+ compiler to make the common case integer-only loop pretty tight.
+ With gcc seems to be much straighter code than old scan_bin. */
+ redo:
+ if (!overflowed) {
+ if (value <= max_div_2) {
+ value = (value << 1) | (bit - '0');
+ continue;
+ }
+ /* Bah. We're just overflowed. */
+ warn("Integer overflow in binary number");
+ overflowed = TRUE;
+ value_nv = (NV) value;
+ }
+ value_nv *= 2.0;
+ /* If an NV has not enough bits in its mantissa to
+ * represent a UV this summing of small low-order numbers
+ * is a waste of time (because the NV cannot preserve
+ * the low-order bits anyway): we could just remember when
+ * did we overflow and in the end just multiply value_nv by the
+ * right amount. */
+ value_nv += (NV)(bit - '0');
+ continue;
+ }
+ if (bit == '_' && len && allow_underscores && (bit = s[1])
+ && (bit == '0' || bit == '1'))
+ {
+ --len;
+ ++s;
+ goto redo;
+ }
+ if (!(*flags & PERL_SCAN_SILENT_ILLDIGIT))
+ warn("Illegal binary digit '%c' ignored", *s);
+ break;
+ }
+
+ if ( ( overflowed && value_nv > 4294967295.0)
+#if UVSIZE > 4
+ || (!overflowed && value > 0xffffffff )
+#endif
+ ) {
+ warn("Binary number > 0b11111111111111111111111111111111 non-portable");
+ }
+ *len_p = s - start;
+ if (!overflowed) {
+ *flags = 0;
+ return value;
+ }
+ *flags = PERL_SCAN_GREATER_THAN_UV_MAX;
+ if (result)
+ *result = value_nv;
+ return UV_MAX;
+}
+#endif
+#endif
+
+#ifndef grok_hex
+#if defined(NEED_grok_hex)
+static UV DPPP_(my_grok_hex)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result);
+static
+#else
+extern UV DPPP_(my_grok_hex)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result);
+#endif
+
+#ifdef grok_hex
+# undef grok_hex
+#endif
+#define grok_hex(a,b,c,d) DPPP_(my_grok_hex)(aTHX_ a,b,c,d)
+#define Perl_grok_hex DPPP_(my_grok_hex)
+
+#if defined(NEED_grok_hex) || defined(NEED_grok_hex_GLOBAL)
+UV
+DPPP_(my_grok_hex)(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result)
+{
+ const char *s = start;
+ STRLEN len = *len_p;
+ UV value = 0;
+ NV value_nv = 0;
+
+ const UV max_div_16 = UV_MAX / 16;
+ bool allow_underscores = *flags & PERL_SCAN_ALLOW_UNDERSCORES;
+ bool overflowed = FALSE;
+ const char *xdigit;
+
+ if (!(*flags & PERL_SCAN_DISALLOW_PREFIX)) {
+ /* strip off leading x or 0x.
+ for compatibility silently suffer "x" and "0x" as valid hex numbers.
+ */
+ if (len >= 1) {
+ if (s[0] == 'x') {
+ s++;
+ len--;
+ }
+ else if (len >= 2 && s[0] == '0' && s[1] == 'x') {
+ s+=2;
+ len-=2;
+ }
+ }
+ }
+
+ for (; len-- && *s; s++) {
+ xdigit = strchr((char *) PL_hexdigit, *s);
+ if (xdigit) {
+ /* Write it in this wonky order with a goto to attempt to get the
+ compiler to make the common case integer-only loop pretty tight.
+ With gcc seems to be much straighter code than old scan_hex. */
+ redo:
+ if (!overflowed) {
+ if (value <= max_div_16) {
+ value = (value << 4) | ((xdigit - PL_hexdigit) & 15);
+ continue;
+ }
+ warn("Integer overflow in hexadecimal number");
+ overflowed = TRUE;
+ value_nv = (NV) value;
+ }
+ value_nv *= 16.0;
+ /* If an NV has not enough bits in its mantissa to
+ * represent a UV this summing of small low-order numbers
+ * is a waste of time (because the NV cannot preserve
+ * the low-order bits anyway): we could just remember when
+ * did we overflow and in the end just multiply value_nv by the
+ * right amount of 16-tuples. */
+ value_nv += (NV)((xdigit - PL_hexdigit) & 15);
+ continue;
+ }
+ if (*s == '_' && len && allow_underscores && s[1]
+ && (xdigit = strchr((char *) PL_hexdigit, s[1])))
+ {
+ --len;
+ ++s;
+ goto redo;
+ }
+ if (!(*flags & PERL_SCAN_SILENT_ILLDIGIT))
+ warn("Illegal hexadecimal digit '%c' ignored", *s);
+ break;
+ }
+
+ if ( ( overflowed && value_nv > 4294967295.0)
+#if UVSIZE > 4
+ || (!overflowed && value > 0xffffffff )
+#endif
+ ) {
+ warn("Hexadecimal number > 0xffffffff non-portable");
+ }
+ *len_p = s - start;
+ if (!overflowed) {
+ *flags = 0;
+ return value;
+ }
+ *flags = PERL_SCAN_GREATER_THAN_UV_MAX;
+ if (result)
+ *result = value_nv;
+ return UV_MAX;
+}
+#endif
+#endif
+
+#ifndef grok_oct
+#if defined(NEED_grok_oct)
+static UV DPPP_(my_grok_oct)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result);
+static
+#else
+extern UV DPPP_(my_grok_oct)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result);
+#endif
+
+#ifdef grok_oct
+# undef grok_oct
+#endif
+#define grok_oct(a,b,c,d) DPPP_(my_grok_oct)(aTHX_ a,b,c,d)
+#define Perl_grok_oct DPPP_(my_grok_oct)
+
+#if defined(NEED_grok_oct) || defined(NEED_grok_oct_GLOBAL)
+UV
+DPPP_(my_grok_oct)(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result)
+{
+ const char *s = start;
+ STRLEN len = *len_p;
+ UV value = 0;
+ NV value_nv = 0;
+
+ const UV max_div_8 = UV_MAX / 8;
+ bool allow_underscores = *flags & PERL_SCAN_ALLOW_UNDERSCORES;
+ bool overflowed = FALSE;
+
+ for (; len-- && *s; s++) {
+ /* gcc 2.95 optimiser not smart enough to figure that this subtraction
+ out front allows slicker code. */
+ int digit = *s - '0';
+ if (digit >= 0 && digit <= 7) {
+ /* Write it in this wonky order with a goto to attempt to get the
+ compiler to make the common case integer-only loop pretty tight.
+ */
+ redo:
+ if (!overflowed) {
+ if (value <= max_div_8) {
+ value = (value << 3) | digit;
+ continue;
+ }
+ /* Bah. We're just overflowed. */
+ warn("Integer overflow in octal number");
+ overflowed = TRUE;
+ value_nv = (NV) value;
+ }
+ value_nv *= 8.0;
+ /* If an NV has not enough bits in its mantissa to
+ * represent a UV this summing of small low-order numbers
+ * is a waste of time (because the NV cannot preserve
+ * the low-order bits anyway): we could just remember when
+ * did we overflow and in the end just multiply value_nv by the
+ * right amount of 8-tuples. */
+ value_nv += (NV)digit;
+ continue;
+ }
+ if (digit == ('_' - '0') && len && allow_underscores
+ && (digit = s[1] - '0') && (digit >= 0 && digit <= 7))
+ {
+ --len;
+ ++s;
+ goto redo;
+ }
+ /* Allow \octal to work the DWIM way (that is, stop scanning
+ * as soon as non-octal characters are seen, complain only iff
+ * someone seems to want to use the digits eight and nine). */
+ if (digit == 8 || digit == 9) {
+ if (!(*flags & PERL_SCAN_SILENT_ILLDIGIT))
+ warn("Illegal octal digit '%c' ignored", *s);
+ }
+ break;
+ }
+
+ if ( ( overflowed && value_nv > 4294967295.0)
+#if UVSIZE > 4
+ || (!overflowed && value > 0xffffffff )
+#endif
+ ) {
+ warn("Octal number > 037777777777 non-portable");
+ }
+ *len_p = s - start;
+ if (!overflowed) {
+ *flags = 0;
+ return value;
+ }
+ *flags = PERL_SCAN_GREATER_THAN_UV_MAX;
+ if (result)
+ *result = value_nv;
+ return UV_MAX;
+}
+#endif
+#endif
+
+#if !defined(my_snprintf)
+#if defined(NEED_my_snprintf)
+static int DPPP_(my_my_snprintf)(char * buffer, const Size_t len, const char * format, ...);
+static
+#else
+extern int DPPP_(my_my_snprintf)(char * buffer, const Size_t len, const char * format, ...);
+#endif
+
+#define my_snprintf DPPP_(my_my_snprintf)
+#define Perl_my_snprintf DPPP_(my_my_snprintf)
+
+#if defined(NEED_my_snprintf) || defined(NEED_my_snprintf_GLOBAL)
+
+int
+DPPP_(my_my_snprintf)(char *buffer, const Size_t len, const char *format, ...)
+{
+ dTHX;
+ int retval;
+ va_list ap;
+ va_start(ap, format);
+#ifdef HAS_VSNPRINTF
+ retval = vsnprintf(buffer, len, format, ap);
+#else
+ retval = vsprintf(buffer, format, ap);
+#endif
+ va_end(ap);
+ if (retval < 0 || (len > 0 && (Size_t)retval >= len))
+ Perl_croak(aTHX_ "panic: my_snprintf buffer overflow");
+ return retval;
+}
+
+#endif
+#endif
+
+#if !defined(my_sprintf)
+#if defined(NEED_my_sprintf)
+static int DPPP_(my_my_sprintf)(char * buffer, const char * pat, ...);
+static
+#else
+extern int DPPP_(my_my_sprintf)(char * buffer, const char * pat, ...);
+#endif
+
+#define my_sprintf DPPP_(my_my_sprintf)
+#define Perl_my_sprintf DPPP_(my_my_sprintf)
+
+#if defined(NEED_my_sprintf) || defined(NEED_my_sprintf_GLOBAL)
+
+int
+DPPP_(my_my_sprintf)(char *buffer, const char* pat, ...)
+{
+ va_list args;
+ va_start(args, pat);
+ vsprintf(buffer, pat, args);
+ va_end(args);
+ return strlen(buffer);
+}
+
+#endif
+#endif
+
+#ifdef NO_XSLOCKS
+# ifdef dJMPENV
+# define dXCPT dJMPENV; int rEtV = 0
+# define XCPT_TRY_START JMPENV_PUSH(rEtV); if (rEtV == 0)
+# define XCPT_TRY_END JMPENV_POP;
+# define XCPT_CATCH if (rEtV != 0)
+# define XCPT_RETHROW JMPENV_JUMP(rEtV)
+# else
+# define dXCPT Sigjmp_buf oldTOP; int rEtV = 0
+# define XCPT_TRY_START Copy(top_env, oldTOP, 1, Sigjmp_buf); rEtV = Sigsetjmp(top_env, 1); if (rEtV == 0)
+# define XCPT_TRY_END Copy(oldTOP, top_env, 1, Sigjmp_buf);
+# define XCPT_CATCH if (rEtV != 0)
+# define XCPT_RETHROW Siglongjmp(top_env, rEtV)
+# endif
+#endif
+
+#if !defined(my_strlcat)
+#if defined(NEED_my_strlcat)
+static Size_t DPPP_(my_my_strlcat)(char * dst, const char * src, Size_t size);
+static
+#else
+extern Size_t DPPP_(my_my_strlcat)(char * dst, const char * src, Size_t size);
+#endif
+
+#define my_strlcat DPPP_(my_my_strlcat)
+#define Perl_my_strlcat DPPP_(my_my_strlcat)
+
+#if defined(NEED_my_strlcat) || defined(NEED_my_strlcat_GLOBAL)
+
+Size_t
+DPPP_(my_my_strlcat)(char *dst, const char *src, Size_t size)
+{
+ Size_t used, length, copy;
+
+ used = strlen(dst);
+ length = strlen(src);
+ if (size > 0 && used < size - 1) {
+ copy = (length >= size - used) ? size - used - 1 : length;
+ memcpy(dst + used, src, copy);
+ dst[used + copy] = '\0';
+ }
+ return used + length;
+}
+#endif
+#endif
+
+#if !defined(my_strlcpy)
+#if defined(NEED_my_strlcpy)
+static Size_t DPPP_(my_my_strlcpy)(char * dst, const char * src, Size_t size);
+static
+#else
+extern Size_t DPPP_(my_my_strlcpy)(char * dst, const char * src, Size_t size);
+#endif
+
+#define my_strlcpy DPPP_(my_my_strlcpy)
+#define Perl_my_strlcpy DPPP_(my_my_strlcpy)
+
+#if defined(NEED_my_strlcpy) || defined(NEED_my_strlcpy_GLOBAL)
+
+Size_t
+DPPP_(my_my_strlcpy)(char *dst, const char *src, Size_t size)
+{
+ Size_t length, copy;
+
+ length = strlen(src);
+ if (size > 0) {
+ copy = (length >= size) ? size - 1 : length;
+ memcpy(dst, src, copy);
+ dst[copy] = '\0';
+ }
+ return length;
+}
+
+#endif
+#endif
+#ifndef PERL_PV_ESCAPE_QUOTE
+# define PERL_PV_ESCAPE_QUOTE 0x0001
+#endif
+
+#ifndef PERL_PV_PRETTY_QUOTE
+# define PERL_PV_PRETTY_QUOTE PERL_PV_ESCAPE_QUOTE
+#endif
+
+#ifndef PERL_PV_PRETTY_ELLIPSES
+# define PERL_PV_PRETTY_ELLIPSES 0x0002
+#endif
+
+#ifndef PERL_PV_PRETTY_LTGT
+# define PERL_PV_PRETTY_LTGT 0x0004
+#endif
+
+#ifndef PERL_PV_ESCAPE_FIRSTCHAR
+# define PERL_PV_ESCAPE_FIRSTCHAR 0x0008
+#endif
+
+#ifndef PERL_PV_ESCAPE_UNI
+# define PERL_PV_ESCAPE_UNI 0x0100
+#endif
+
+#ifndef PERL_PV_ESCAPE_UNI_DETECT
+# define PERL_PV_ESCAPE_UNI_DETECT 0x0200
+#endif
+
+#ifndef PERL_PV_ESCAPE_ALL
+# define PERL_PV_ESCAPE_ALL 0x1000
+#endif
+
+#ifndef PERL_PV_ESCAPE_NOBACKSLASH
+# define PERL_PV_ESCAPE_NOBACKSLASH 0x2000
+#endif
+
+#ifndef PERL_PV_ESCAPE_NOCLEAR
+# define PERL_PV_ESCAPE_NOCLEAR 0x4000
+#endif
+
+#ifndef PERL_PV_ESCAPE_RE
+# define PERL_PV_ESCAPE_RE 0x8000
+#endif
+
+#ifndef PERL_PV_PRETTY_NOCLEAR
+# define PERL_PV_PRETTY_NOCLEAR PERL_PV_ESCAPE_NOCLEAR
+#endif
+#ifndef PERL_PV_PRETTY_DUMP
+# define PERL_PV_PRETTY_DUMP PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_QUOTE
+#endif
+
+#ifndef PERL_PV_PRETTY_REGPROP
+# define PERL_PV_PRETTY_REGPROP PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_LTGT|PERL_PV_ESCAPE_RE
+#endif
+
+/* Hint: pv_escape
+ * Note that unicode functionality is only backported to
+ * those perl versions that support it. For older perl
+ * versions, the implementation will fall back to bytes.
+ */
+
+#ifndef pv_escape
+#if defined(NEED_pv_escape)
+static char * DPPP_(my_pv_escape)(pTHX_ SV * dsv, char const * const str, const STRLEN count, const STRLEN max, STRLEN * const escaped, const U32 flags);
+static
+#else
+extern char * DPPP_(my_pv_escape)(pTHX_ SV * dsv, char const * const str, const STRLEN count, const STRLEN max, STRLEN * const escaped, const U32 flags);
+#endif
+
+#ifdef pv_escape
+# undef pv_escape
+#endif
+#define pv_escape(a,b,c,d,e,f) DPPP_(my_pv_escape)(aTHX_ a,b,c,d,e,f)
+#define Perl_pv_escape DPPP_(my_pv_escape)
+
+#if defined(NEED_pv_escape) || defined(NEED_pv_escape_GLOBAL)
+
+char *
+DPPP_(my_pv_escape)(pTHX_ SV *dsv, char const * const str,
+ const STRLEN count, const STRLEN max,
+ STRLEN * const escaped, const U32 flags)
+{
+ const char esc = flags & PERL_PV_ESCAPE_RE ? '%' : '\\';
+ const char dq = flags & PERL_PV_ESCAPE_QUOTE ? '"' : esc;
+ char octbuf[32] = "%123456789ABCDF";
+ STRLEN wrote = 0;
+ STRLEN chsize = 0;
+ STRLEN readsize = 1;
+#if defined(is_utf8_string) && defined(utf8_to_uvchr)
+ bool isuni = flags & PERL_PV_ESCAPE_UNI ? 1 : 0;
+#endif
+ const char *pv = str;
+ const char * const end = pv + count;
+ octbuf[0] = esc;
+
+ if (!(flags & PERL_PV_ESCAPE_NOCLEAR))
+ sv_setpvs(dsv, "");
+
+#if defined(is_utf8_string) && defined(utf8_to_uvchr)
+ if ((flags & PERL_PV_ESCAPE_UNI_DETECT) && is_utf8_string((U8*)pv, count))
+ isuni = 1;
+#endif
+
+ for (; pv < end && (!max || wrote < max) ; pv += readsize) {
+ const UV u =
+#if defined(is_utf8_string) && defined(utf8_to_uvchr)
+ isuni ? utf8_to_uvchr((U8*)pv, &readsize) :
+#endif
+ (U8)*pv;
+ const U8 c = (U8)u & 0xFF;
+
+ if (u > 255 || (flags & PERL_PV_ESCAPE_ALL)) {
+ if (flags & PERL_PV_ESCAPE_FIRSTCHAR)
+ chsize = my_snprintf(octbuf, sizeof octbuf,
+ "%"UVxf, u);
+ else
+ chsize = my_snprintf(octbuf, sizeof octbuf,
+ "%cx{%"UVxf"}", esc, u);
+ } else if (flags & PERL_PV_ESCAPE_NOBACKSLASH) {
+ chsize = 1;
+ } else {
+ if (c == dq || c == esc || !isPRINT(c)) {
+ chsize = 2;
+ switch (c) {
+ case '\\' : /* fallthrough */
+ case '%' : if (c == esc)
+ octbuf[1] = esc;
+ else
+ chsize = 1;
+ break;
+ case '\v' : octbuf[1] = 'v'; break;
+ case '\t' : octbuf[1] = 't'; break;
+ case '\r' : octbuf[1] = 'r'; break;
+ case '\n' : octbuf[1] = 'n'; break;
+ case '\f' : octbuf[1] = 'f'; break;
+ case '"' : if (dq == '"')
+ octbuf[1] = '"';
+ else
+ chsize = 1;
+ break;
+ default: chsize = my_snprintf(octbuf, sizeof octbuf,
+ pv < end && isDIGIT((U8)*(pv+readsize))
+ ? "%c%03o" : "%c%o", esc, c);
+ }
+ } else {
+ chsize = 1;
+ }
+ }
+ if (max && wrote + chsize > max) {
+ break;
+ } else if (chsize > 1) {
+ sv_catpvn(dsv, octbuf, chsize);
+ wrote += chsize;
+ } else {
+ char tmp[2];
+ my_snprintf(tmp, sizeof tmp, "%c", c);
+ sv_catpvn(dsv, tmp, 1);
+ wrote++;
+ }
+ if (flags & PERL_PV_ESCAPE_FIRSTCHAR)
+ break;
+ }
+ if (escaped != NULL)
+ *escaped= pv - str;
+ return SvPVX(dsv);
+}
+
+#endif
+#endif
+
+#ifndef pv_pretty
+#if defined(NEED_pv_pretty)
+static char * DPPP_(my_pv_pretty)(pTHX_ SV * dsv, char const * const str, const STRLEN count, const STRLEN max, char const * const start_color, char const * const end_color, const U32 flags);
+static
+#else
+extern char * DPPP_(my_pv_pretty)(pTHX_ SV * dsv, char const * const str, const STRLEN count, const STRLEN max, char const * const start_color, char const * const end_color, const U32 flags);
+#endif
+
+#ifdef pv_pretty
+# undef pv_pretty
+#endif
+#define pv_pretty(a,b,c,d,e,f,g) DPPP_(my_pv_pretty)(aTHX_ a,b,c,d,e,f,g)
+#define Perl_pv_pretty DPPP_(my_pv_pretty)
+
+#if defined(NEED_pv_pretty) || defined(NEED_pv_pretty_GLOBAL)
+
+char *
+DPPP_(my_pv_pretty)(pTHX_ SV *dsv, char const * const str, const STRLEN count,
+ const STRLEN max, char const * const start_color, char const * const end_color,
+ const U32 flags)
+{
+ const U8 dq = (flags & PERL_PV_PRETTY_QUOTE) ? '"' : '%';
+ STRLEN escaped;
+
+ if (!(flags & PERL_PV_PRETTY_NOCLEAR))
+ sv_setpvs(dsv, "");
+
+ if (dq == '"')
+ sv_catpvs(dsv, "\"");
+ else if (flags & PERL_PV_PRETTY_LTGT)
+ sv_catpvs(dsv, "<");
+
+ if (start_color != NULL)
+ sv_catpv(dsv, D_PPP_CONSTPV_ARG(start_color));
+
+ pv_escape(dsv, str, count, max, &escaped, flags | PERL_PV_ESCAPE_NOCLEAR);
+
+ if (end_color != NULL)
+ sv_catpv(dsv, D_PPP_CONSTPV_ARG(end_color));
+
+ if (dq == '"')
+ sv_catpvs(dsv, "\"");
+ else if (flags & PERL_PV_PRETTY_LTGT)
+ sv_catpvs(dsv, ">");
+
+ if ((flags & PERL_PV_PRETTY_ELLIPSES) && escaped < count)
+ sv_catpvs(dsv, "...");
+
+ return SvPVX(dsv);
+}
+
+#endif
+#endif
+
+#ifndef pv_display
+#if defined(NEED_pv_display)
+static char * DPPP_(my_pv_display)(pTHX_ SV * dsv, const char * pv, STRLEN cur, STRLEN len, STRLEN pvlim);
+static
+#else
+extern char * DPPP_(my_pv_display)(pTHX_ SV * dsv, const char * pv, STRLEN cur, STRLEN len, STRLEN pvlim);
+#endif
+
+#ifdef pv_display
+# undef pv_display
+#endif
+#define pv_display(a,b,c,d,e) DPPP_(my_pv_display)(aTHX_ a,b,c,d,e)
+#define Perl_pv_display DPPP_(my_pv_display)
+
+#if defined(NEED_pv_display) || defined(NEED_pv_display_GLOBAL)
+
+char *
+DPPP_(my_pv_display)(pTHX_ SV *dsv, const char *pv, STRLEN cur, STRLEN len, STRLEN pvlim)
+{
+ pv_pretty(dsv, pv, cur, pvlim, NULL, NULL, PERL_PV_PRETTY_DUMP);
+ if (len > cur && pv[cur] == '\0')
+ sv_catpvs(dsv, "\\0");
+ return SvPVX(dsv);
+}
+
+#endif
+#endif
+
+#endif /* _P_P_PORTABILITY_H_ */
+
+/* End of File ppport.h */
diff --git a/clipper/tidx/perl/send2cpan b/clipper/tidx/perl/send2cpan
new file mode 100755
index 0000000..25bf5c4
--- /dev/null
+++ b/clipper/tidx/perl/send2cpan
@@ -0,0 +1,28 @@
+#!/bin/bash -e
+
+if [ "" = "$1" ]; then
+ echo "Specify the file you want to upload"
+ exit
+fi
+
+if [ -s ~/.cpan-user ]; then
+ USER=`cat ~/.cpan-user`
+else
+ read -p "Enter username: " USER
+ echo $USER > ~/.cpan-user
+fi
+
+if [ -s ~/.cpan-pass ]; then
+ PASS=`cat ~/.cpan-pass`
+else
+ read -p "Enter password: " PASS
+ echo $PASS > ~/.cpan-pass
+ chmod 600 ~/.cpan-pass
+fi
+
+
+ncftpput pause.perl.org incoming $1
+
+sleep 1
+
+wget "http://$USER:$PASS@pause.perl.org/pause/authenquery" -O /tmp/cpan-upload.out --post-data="pause99_add_uri_upload=$1&HIDDENNAME=$USER&SUBMIT_pause99_add_uri_upload=+Upload+the+checked+file+"
diff --git a/clipper/tidx/perl/t/Text-Tidx.t b/clipper/tidx/perl/t/Text-Tidx.t
new file mode 100644
index 0000000..4340a8c
--- /dev/null
+++ b/clipper/tidx/perl/t/Text-Tidx.t
@@ -0,0 +1,40 @@
+# Before `make install' is performed this script should be runnable with
+# `make test'. After `make install' it should work as `perl Text-Tidx.t'
+
+#########################
+
+# change 'tests => 1' to 'tests => last_test_to_print';
+
+use Test::More tests => 4;
+use Cwd;
+
+BEGIN { use_ok('Text::Tidx') };
+
+#########################
+
+# Insert your test code below, the Test::More module is use()ed here so read
+# its man page ( perldoc Test::More ) for help writing this test script.
+
+my ($subdir) = $0 =~ /(.*)[\/\\]/;
+
+Text::Tidx::build("$subdir/annot.txt");
+
+my $cytoTab=Text::Tidx->new("$subdir/annot.txt");
+
+ at res = $cytoTab->query("chr1", 2300001);
+is($res[0],'chr1 2300000 5400000 p36.32 gpos25', "snp query");
+
+ at res = $cytoTab->query("chr1", 16100000, 20400001);
+is("@res", slurp("$subdir/res1.txt"), "range query 1");
+
+ at res = $cytoTab->query("chr1", 9200000, 12700000);
+is("@res", slurp("$subdir/res2.txt"), "range query 2");
+
+
+sub slurp {
+ open IN, $_[0];
+ my $r = <IN>;
+ $r =~ s/\s+$//;
+ close IN;
+ return $r;
+}
diff --git a/clipper/tidx/perl/t/annot.txt b/clipper/tidx/perl/t/annot.txt
new file mode 100644
index 0000000..8dc4782
--- /dev/null
+++ b/clipper/tidx/perl/t/annot.txt
@@ -0,0 +1,862 @@
+chr1 0 2300000 p36.33 gneg
+chr1 2300000 5400000 p36.32 gpos25
+chr1 5400000 7200000 p36.31 gneg
+chr1 7200000 9200000 p36.23 gpos25
+chr1 9200000 12700000 p36.22 gneg
+chr1 12700000 16200000 p36.21 gpos50
+chr1 16200000 20400000 p36.13 gneg
+chr1 20400000 23900000 p36.12 gpos25
+chr1 23900000 28000000 p36.11 gneg
+chr1 28000000 30200000 p35.3 gpos25
+chr1 30200000 32400000 p35.2 gneg
+chr1 32400000 34600000 p35.1 gpos25
+chr1 34600000 40100000 p34.3 gneg
+chr1 40100000 44100000 p34.2 gpos25
+chr1 44100000 46800000 p34.1 gneg
+chr1 46800000 50700000 p33 gpos75
+chr1 50700000 56100000 p32.3 gneg
+chr1 56100000 59000000 p32.2 gpos50
+chr1 59000000 61300000 p32.1 gneg
+chr1 61300000 68900000 p31.3 gpos50
+chr1 68900000 69700000 p31.2 gneg
+chr1 69700000 84900000 p31.1 gpos100
+chr1 84900000 88400000 p22.3 gneg
+chr1 88400000 92000000 p22.2 gpos75
+chr1 92000000 94700000 p22.1 gneg
+chr1 94700000 99700000 p21.3 gpos75
+chr1 99700000 102200000 p21.2 gneg
+chr1 102200000 107200000 p21.1 gpos100
+chr1 107200000 111800000 p13.3 gneg
+chr1 111800000 116100000 p13.2 gpos50
+chr1 116100000 117800000 p13.1 gneg
+chr1 117800000 120600000 p12 gpos50
+chr1 120600000 121500000 p11.2 gneg
+chr1 121500000 125000000 p11.1 acen
+chr1 125000000 128900000 q11 acen
+chr1 128900000 142600000 q12 gvar
+chr1 142600000 147000000 q21.1 gneg
+chr1 147000000 150300000 q21.2 gpos50
+chr1 150300000 155000000 q21.3 gneg
+chr1 155000000 156500000 q22 gpos50
+chr1 156500000 159100000 q23.1 gneg
+chr1 159100000 160500000 q23.2 gpos50
+chr1 160500000 165500000 q23.3 gneg
+chr1 165500000 167200000 q24.1 gpos50
+chr1 167200000 170900000 q24.2 gneg
+chr1 170900000 172900000 q24.3 gpos75
+chr1 172900000 176000000 q25.1 gneg
+chr1 176000000 180300000 q25.2 gpos50
+chr1 180300000 185800000 q25.3 gneg
+chr1 185800000 190800000 q31.1 gpos100
+chr1 190800000 193800000 q31.2 gneg
+chr1 193800000 198700000 q31.3 gpos100
+chr1 198700000 207200000 q32.1 gneg
+chr1 207200000 211500000 q32.2 gpos25
+chr1 211500000 214500000 q32.3 gneg
+chr1 214500000 224100000 q41 gpos100
+chr1 224100000 224600000 q42.11 gneg
+chr1 224600000 227000000 q42.12 gpos25
+chr1 227000000 230700000 q42.13 gneg
+chr1 230700000 234700000 q42.2 gpos50
+chr1 234700000 236600000 q42.3 gneg
+chr1 236600000 243700000 q43 gpos75
+chr1 243700000 249250621 q44 gneg
+chr10 0 3000000 p15.3 gneg
+chr10 3000000 3800000 p15.2 gpos25
+chr10 3800000 6600000 p15.1 gneg
+chr10 6600000 12200000 p14 gpos75
+chr10 12200000 17300000 p13 gneg
+chr10 17300000 18600000 p12.33 gpos75
+chr10 18600000 18700000 p12.32 gneg
+chr10 18700000 22600000 p12.31 gpos75
+chr10 22600000 24600000 p12.2 gneg
+chr10 24600000 29600000 p12.1 gpos50
+chr10 29600000 31300000 p11.23 gneg
+chr10 31300000 34400000 p11.22 gpos25
+chr10 34400000 38000000 p11.21 gneg
+chr10 38000000 40200000 p11.1 acen
+chr10 40200000 42300000 q11.1 acen
+chr10 42300000 46100000 q11.21 gneg
+chr10 46100000 49900000 q11.22 gpos25
+chr10 49900000 52900000 q11.23 gneg
+chr10 52900000 61200000 q21.1 gpos100
+chr10 61200000 64500000 q21.2 gneg
+chr10 64500000 70600000 q21.3 gpos100
+chr10 70600000 74900000 q22.1 gneg
+chr10 74900000 77700000 q22.2 gpos50
+chr10 77700000 82000000 q22.3 gneg
+chr10 82000000 87900000 q23.1 gpos100
+chr10 87900000 89500000 q23.2 gneg
+chr10 89500000 92900000 q23.31 gpos75
+chr10 92900000 94100000 q23.32 gneg
+chr10 94100000 97000000 q23.33 gpos50
+chr10 97000000 99300000 q24.1 gneg
+chr10 99300000 101900000 q24.2 gpos50
+chr10 101900000 103000000 q24.31 gneg
+chr10 103000000 104900000 q24.32 gpos25
+chr10 104900000 105800000 q24.33 gneg
+chr10 105800000 111900000 q25.1 gpos100
+chr10 111900000 114900000 q25.2 gneg
+chr10 114900000 119100000 q25.3 gpos75
+chr10 119100000 121700000 q26.11 gneg
+chr10 121700000 123100000 q26.12 gpos50
+chr10 123100000 127500000 q26.13 gneg
+chr10 127500000 130600000 q26.2 gpos50
+chr10 130600000 135534747 q26.3 gneg
+chr11 0 2800000 p15.5 gneg
+chr11 2800000 10700000 p15.4 gpos50
+chr11 10700000 12700000 p15.3 gneg
+chr11 12700000 16200000 p15.2 gpos50
+chr11 16200000 21700000 p15.1 gneg
+chr11 21700000 26100000 p14.3 gpos100
+chr11 26100000 27200000 p14.2 gneg
+chr11 27200000 31000000 p14.1 gpos75
+chr11 31000000 36400000 p13 gneg
+chr11 36400000 43500000 p12 gpos100
+chr11 43500000 48800000 p11.2 gneg
+chr11 48800000 51600000 p11.12 gpos75
+chr11 51600000 53700000 p11.11 acen
+chr11 53700000 55700000 q11 acen
+chr11 55700000 59900000 q12.1 gpos75
+chr11 59900000 61700000 q12.2 gneg
+chr11 61700000 63400000 q12.3 gpos25
+chr11 63400000 65900000 q13.1 gneg
+chr11 65900000 68400000 q13.2 gpos25
+chr11 68400000 70400000 q13.3 gneg
+chr11 70400000 75200000 q13.4 gpos50
+chr11 75200000 77100000 q13.5 gneg
+chr11 77100000 85600000 q14.1 gpos100
+chr11 85600000 88300000 q14.2 gneg
+chr11 88300000 92800000 q14.3 gpos100
+chr11 92800000 97200000 q21 gneg
+chr11 97200000 102100000 q22.1 gpos100
+chr11 102100000 102900000 q22.2 gneg
+chr11 102900000 110400000 q22.3 gpos100
+chr11 110400000 112500000 q23.1 gneg
+chr11 112500000 114500000 q23.2 gpos50
+chr11 114500000 121200000 q23.3 gneg
+chr11 121200000 123900000 q24.1 gpos50
+chr11 123900000 127800000 q24.2 gneg
+chr11 127800000 130800000 q24.3 gpos50
+chr11 130800000 135006516 q25 gneg
+chr12 0 3300000 p13.33 gneg
+chr12 3300000 5400000 p13.32 gpos25
+chr12 5400000 10100000 p13.31 gneg
+chr12 10100000 12800000 p13.2 gpos75
+chr12 12800000 14800000 p13.1 gneg
+chr12 14800000 20000000 p12.3 gpos100
+chr12 20000000 21300000 p12.2 gneg
+chr12 21300000 26500000 p12.1 gpos100
+chr12 26500000 27800000 p11.23 gneg
+chr12 27800000 30700000 p11.22 gpos50
+chr12 30700000 33300000 p11.21 gneg
+chr12 33300000 35800000 p11.1 acen
+chr12 35800000 38200000 q11 acen
+chr12 38200000 46400000 q12 gpos100
+chr12 46400000 49100000 q13.11 gneg
+chr12 49100000 51500000 q13.12 gpos25
+chr12 51500000 54900000 q13.13 gneg
+chr12 54900000 56600000 q13.2 gpos25
+chr12 56600000 58100000 q13.3 gneg
+chr12 58100000 63100000 q14.1 gpos75
+chr12 63100000 65100000 q14.2 gneg
+chr12 65100000 67700000 q14.3 gpos50
+chr12 67700000 71500000 q15 gneg
+chr12 71500000 75700000 q21.1 gpos75
+chr12 75700000 80300000 q21.2 gneg
+chr12 80300000 86700000 q21.31 gpos100
+chr12 86700000 89000000 q21.32 gneg
+chr12 89000000 92600000 q21.33 gpos100
+chr12 92600000 96200000 q22 gneg
+chr12 96200000 101600000 q23.1 gpos75
+chr12 101600000 103800000 q23.2 gneg
+chr12 103800000 109000000 q23.3 gpos50
+chr12 109000000 111700000 q24.11 gneg
+chr12 111700000 112300000 q24.12 gpos25
+chr12 112300000 114300000 q24.13 gneg
+chr12 114300000 116800000 q24.21 gpos50
+chr12 116800000 118100000 q24.22 gneg
+chr12 118100000 120700000 q24.23 gpos50
+chr12 120700000 125900000 q24.31 gneg
+chr12 125900000 129300000 q24.32 gpos50
+chr12 129300000 133851895 q24.33 gneg
+chr13 0 4500000 p13 gvar
+chr13 4500000 10000000 p12 stalk
+chr13 10000000 16300000 p11.2 gvar
+chr13 16300000 17900000 p11.1 acen
+chr13 17900000 19500000 q11 acen
+chr13 19500000 23300000 q12.11 gneg
+chr13 23300000 25500000 q12.12 gpos25
+chr13 25500000 27800000 q12.13 gneg
+chr13 27800000 28900000 q12.2 gpos25
+chr13 28900000 32200000 q12.3 gneg
+chr13 32200000 34000000 q13.1 gpos50
+chr13 34000000 35500000 q13.2 gneg
+chr13 35500000 40100000 q13.3 gpos75
+chr13 40100000 45200000 q14.11 gneg
+chr13 45200000 45800000 q14.12 gpos25
+chr13 45800000 47300000 q14.13 gneg
+chr13 47300000 50900000 q14.2 gpos50
+chr13 50900000 55300000 q14.3 gneg
+chr13 55300000 59600000 q21.1 gpos100
+chr13 59600000 62300000 q21.2 gneg
+chr13 62300000 65700000 q21.31 gpos75
+chr13 65700000 68600000 q21.32 gneg
+chr13 68600000 73300000 q21.33 gpos100
+chr13 73300000 75400000 q22.1 gneg
+chr13 75400000 77200000 q22.2 gpos50
+chr13 77200000 79000000 q22.3 gneg
+chr13 79000000 87700000 q31.1 gpos100
+chr13 87700000 90000000 q31.2 gneg
+chr13 90000000 95000000 q31.3 gpos100
+chr13 95000000 98200000 q32.1 gneg
+chr13 98200000 99300000 q32.2 gpos25
+chr13 99300000 101700000 q32.3 gneg
+chr13 101700000 104800000 q33.1 gpos100
+chr13 104800000 107000000 q33.2 gneg
+chr13 107000000 110300000 q33.3 gpos100
+chr13 110300000 115169878 q34 gneg
+chr14 0 3700000 p13 gvar
+chr14 3700000 8100000 p12 stalk
+chr14 8100000 16100000 p11.2 gvar
+chr14 16100000 17600000 p11.1 acen
+chr14 17600000 19100000 q11.1 acen
+chr14 19100000 24600000 q11.2 gneg
+chr14 24600000 33300000 q12 gpos100
+chr14 33300000 35300000 q13.1 gneg
+chr14 35300000 36600000 q13.2 gpos50
+chr14 36600000 37800000 q13.3 gneg
+chr14 37800000 43500000 q21.1 gpos100
+chr14 43500000 47200000 q21.2 gneg
+chr14 47200000 50900000 q21.3 gpos100
+chr14 50900000 54100000 q22.1 gneg
+chr14 54100000 55500000 q22.2 gpos25
+chr14 55500000 58100000 q22.3 gneg
+chr14 58100000 62100000 q23.1 gpos75
+chr14 62100000 64800000 q23.2 gneg
+chr14 64800000 67900000 q23.3 gpos50
+chr14 67900000 70200000 q24.1 gneg
+chr14 70200000 73800000 q24.2 gpos50
+chr14 73800000 79300000 q24.3 gneg
+chr14 79300000 83600000 q31.1 gpos100
+chr14 83600000 84900000 q31.2 gneg
+chr14 84900000 89800000 q31.3 gpos100
+chr14 89800000 91900000 q32.11 gneg
+chr14 91900000 94700000 q32.12 gpos25
+chr14 94700000 96300000 q32.13 gneg
+chr14 96300000 101400000 q32.2 gpos50
+chr14 101400000 103200000 q32.31 gneg
+chr14 103200000 104000000 q32.32 gpos50
+chr14 104000000 107349540 q32.33 gneg
+chr15 0 3900000 p13 gvar
+chr15 3900000 8700000 p12 stalk
+chr15 8700000 15800000 p11.2 gvar
+chr15 15800000 19000000 p11.1 acen
+chr15 19000000 20700000 q11.1 acen
+chr15 20700000 25700000 q11.2 gneg
+chr15 25700000 28100000 q12 gpos50
+chr15 28100000 30300000 q13.1 gneg
+chr15 30300000 31200000 q13.2 gpos50
+chr15 31200000 33600000 q13.3 gneg
+chr15 33600000 40100000 q14 gpos75
+chr15 40100000 42800000 q15.1 gneg
+chr15 42800000 43600000 q15.2 gpos25
+chr15 43600000 44800000 q15.3 gneg
+chr15 44800000 49500000 q21.1 gpos75
+chr15 49500000 52900000 q21.2 gneg
+chr15 52900000 59100000 q21.3 gpos75
+chr15 59100000 59300000 q22.1 gneg
+chr15 59300000 63700000 q22.2 gpos25
+chr15 63700000 67200000 q22.31 gneg
+chr15 67200000 67300000 q22.32 gpos25
+chr15 67300000 67500000 q22.33 gneg
+chr15 67500000 72700000 q23 gpos25
+chr15 72700000 75200000 q24.1 gneg
+chr15 75200000 76600000 q24.2 gpos25
+chr15 76600000 78300000 q24.3 gneg
+chr15 78300000 81700000 q25.1 gpos50
+chr15 81700000 85200000 q25.2 gneg
+chr15 85200000 89100000 q25.3 gpos50
+chr15 89100000 94300000 q26.1 gneg
+chr15 94300000 98500000 q26.2 gpos50
+chr15 98500000 102531392 q26.3 gneg
+chr16 0 7900000 p13.3 gneg
+chr16 7900000 10500000 p13.2 gpos50
+chr16 10500000 12600000 p13.13 gneg
+chr16 12600000 14800000 p13.12 gpos50
+chr16 14800000 16800000 p13.11 gneg
+chr16 16800000 21200000 p12.3 gpos50
+chr16 21200000 24200000 p12.2 gneg
+chr16 24200000 28100000 p12.1 gpos50
+chr16 28100000 34600000 p11.2 gneg
+chr16 34600000 36600000 p11.1 acen
+chr16 36600000 38600000 q11.1 acen
+chr16 38600000 47000000 q11.2 gvar
+chr16 47000000 52600000 q12.1 gneg
+chr16 52600000 56700000 q12.2 gpos50
+chr16 56700000 57400000 q13 gneg
+chr16 57400000 66700000 q21 gpos100
+chr16 66700000 70800000 q22.1 gneg
+chr16 70800000 72900000 q22.2 gpos50
+chr16 72900000 74100000 q22.3 gneg
+chr16 74100000 79200000 q23.1 gpos75
+chr16 79200000 81700000 q23.2 gneg
+chr16 81700000 84200000 q23.3 gpos50
+chr16 84200000 87100000 q24.1 gneg
+chr16 87100000 88700000 q24.2 gpos25
+chr16 88700000 90354753 q24.3 gneg
+chr17 0 3300000 p13.3 gneg
+chr17 3300000 6500000 p13.2 gpos50
+chr17 6500000 10700000 p13.1 gneg
+chr17 10700000 16000000 p12 gpos75
+chr17 16000000 22200000 p11.2 gneg
+chr17 22200000 24000000 p11.1 acen
+chr17 24000000 25800000 q11.1 acen
+chr17 25800000 31800000 q11.2 gneg
+chr17 31800000 38100000 q12 gpos50
+chr17 38100000 38400000 q21.1 gneg
+chr17 38400000 40900000 q21.2 gpos25
+chr17 40900000 44900000 q21.31 gneg
+chr17 44900000 47400000 q21.32 gpos25
+chr17 47400000 50200000 q21.33 gneg
+chr17 50200000 57600000 q22 gpos75
+chr17 57600000 58300000 q23.1 gneg
+chr17 58300000 61100000 q23.2 gpos75
+chr17 61100000 62600000 q23.3 gneg
+chr17 62600000 64200000 q24.1 gpos50
+chr17 64200000 67100000 q24.2 gneg
+chr17 67100000 70900000 q24.3 gpos75
+chr17 70900000 74800000 q25.1 gneg
+chr17 74800000 75300000 q25.2 gpos25
+chr17 75300000 81195210 q25.3 gneg
+chr18 0 2900000 p11.32 gneg
+chr18 2900000 7100000 p11.31 gpos50
+chr18 7100000 8500000 p11.23 gneg
+chr18 8500000 10900000 p11.22 gpos25
+chr18 10900000 15400000 p11.21 gneg
+chr18 15400000 17200000 p11.1 acen
+chr18 17200000 19000000 q11.1 acen
+chr18 19000000 25000000 q11.2 gneg
+chr18 25000000 32700000 q12.1 gpos100
+chr18 32700000 37200000 q12.2 gneg
+chr18 37200000 43500000 q12.3 gpos75
+chr18 43500000 48200000 q21.1 gneg
+chr18 48200000 53800000 q21.2 gpos75
+chr18 53800000 56200000 q21.31 gneg
+chr18 56200000 59000000 q21.32 gpos50
+chr18 59000000 61600000 q21.33 gneg
+chr18 61600000 66800000 q22.1 gpos100
+chr18 66800000 68700000 q22.2 gneg
+chr18 68700000 73100000 q22.3 gpos25
+chr18 73100000 78077248 q23 gneg
+chr19 0 6900000 p13.3 gneg
+chr19 6900000 13900000 p13.2 gpos25
+chr19 13900000 14000000 p13.13 gneg
+chr19 14000000 16300000 p13.12 gpos25
+chr19 16300000 20000000 p13.11 gneg
+chr19 20000000 24400000 p12 gvar
+chr19 24400000 26500000 p11 acen
+chr19 26500000 28600000 q11 acen
+chr19 28600000 32400000 q12 gvar
+chr19 32400000 35500000 q13.11 gneg
+chr19 35500000 38300000 q13.12 gpos25
+chr19 38300000 38700000 q13.13 gneg
+chr19 38700000 43400000 q13.2 gpos25
+chr19 43400000 45200000 q13.31 gneg
+chr19 45200000 48000000 q13.32 gpos25
+chr19 48000000 51400000 q13.33 gneg
+chr19 51400000 53600000 q13.41 gpos25
+chr19 53600000 56300000 q13.42 gneg
+chr19 56300000 59128983 q13.43 gpos25
+chr2 0 4400000 p25.3 gneg
+chr2 4400000 7100000 p25.2 gpos50
+chr2 7100000 12200000 p25.1 gneg
+chr2 12200000 16700000 p24.3 gpos75
+chr2 16700000 19200000 p24.2 gneg
+chr2 19200000 24000000 p24.1 gpos75
+chr2 24000000 27900000 p23.3 gneg
+chr2 27900000 30000000 p23.2 gpos25
+chr2 30000000 32100000 p23.1 gneg
+chr2 32100000 36600000 p22.3 gpos75
+chr2 36600000 38600000 p22.2 gneg
+chr2 38600000 41800000 p22.1 gpos50
+chr2 41800000 47800000 p21 gneg
+chr2 47800000 52900000 p16.3 gpos100
+chr2 52900000 55000000 p16.2 gneg
+chr2 55000000 61300000 p16.1 gpos100
+chr2 61300000 64100000 p15 gneg
+chr2 64100000 68600000 p14 gpos50
+chr2 68600000 71500000 p13.3 gneg
+chr2 71500000 73500000 p13.2 gpos50
+chr2 73500000 75000000 p13.1 gneg
+chr2 75000000 83300000 p12 gpos100
+chr2 83300000 90500000 p11.2 gneg
+chr2 90500000 93300000 p11.1 acen
+chr2 93300000 96800000 q11.1 acen
+chr2 96800000 102700000 q11.2 gneg
+chr2 102700000 106000000 q12.1 gpos50
+chr2 106000000 107500000 q12.2 gneg
+chr2 107500000 110200000 q12.3 gpos25
+chr2 110200000 114400000 q13 gneg
+chr2 114400000 118800000 q14.1 gpos50
+chr2 118800000 122400000 q14.2 gneg
+chr2 122400000 129900000 q14.3 gpos50
+chr2 129900000 132500000 q21.1 gneg
+chr2 132500000 135100000 q21.2 gpos25
+chr2 135100000 136800000 q21.3 gneg
+chr2 136800000 142200000 q22.1 gpos100
+chr2 142200000 144100000 q22.2 gneg
+chr2 144100000 148700000 q22.3 gpos100
+chr2 148700000 149900000 q23.1 gneg
+chr2 149900000 150500000 q23.2 gpos25
+chr2 150500000 154900000 q23.3 gneg
+chr2 154900000 159800000 q24.1 gpos75
+chr2 159800000 163700000 q24.2 gneg
+chr2 163700000 169700000 q24.3 gpos75
+chr2 169700000 178000000 q31.1 gneg
+chr2 178000000 180600000 q31.2 gpos50
+chr2 180600000 183000000 q31.3 gneg
+chr2 183000000 189400000 q32.1 gpos75
+chr2 189400000 191900000 q32.2 gneg
+chr2 191900000 197400000 q32.3 gpos75
+chr2 197400000 203300000 q33.1 gneg
+chr2 203300000 204900000 q33.2 gpos50
+chr2 204900000 209000000 q33.3 gneg
+chr2 209000000 215300000 q34 gpos100
+chr2 215300000 221500000 q35 gneg
+chr2 221500000 225200000 q36.1 gpos75
+chr2 225200000 226100000 q36.2 gneg
+chr2 226100000 231000000 q36.3 gpos100
+chr2 231000000 235600000 q37.1 gneg
+chr2 235600000 237300000 q37.2 gpos50
+chr2 237300000 243199373 q37.3 gneg
+chr20 0 5100000 p13 gneg
+chr20 5100000 9200000 p12.3 gpos75
+chr20 9200000 12100000 p12.2 gneg
+chr20 12100000 17900000 p12.1 gpos75
+chr20 17900000 21300000 p11.23 gneg
+chr20 21300000 22300000 p11.22 gpos25
+chr20 22300000 25600000 p11.21 gneg
+chr20 25600000 27500000 p11.1 acen
+chr20 27500000 29400000 q11.1 acen
+chr20 29400000 32100000 q11.21 gneg
+chr20 32100000 34400000 q11.22 gpos25
+chr20 34400000 37600000 q11.23 gneg
+chr20 37600000 41700000 q12 gpos75
+chr20 41700000 42100000 q13.11 gneg
+chr20 42100000 46400000 q13.12 gpos25
+chr20 46400000 49800000 q13.13 gneg
+chr20 49800000 55000000 q13.2 gpos75
+chr20 55000000 56500000 q13.31 gneg
+chr20 56500000 58400000 q13.32 gpos50
+chr20 58400000 63025520 q13.33 gneg
+chr21 0 2800000 p13 gvar
+chr21 2800000 6800000 p12 stalk
+chr21 6800000 10900000 p11.2 gvar
+chr21 10900000 13200000 p11.1 acen
+chr21 13200000 14300000 q11.1 acen
+chr21 14300000 16400000 q11.2 gneg
+chr21 16400000 24000000 q21.1 gpos100
+chr21 24000000 26800000 q21.2 gneg
+chr21 26800000 31500000 q21.3 gpos75
+chr21 31500000 35800000 q22.11 gneg
+chr21 35800000 37800000 q22.12 gpos50
+chr21 37800000 39700000 q22.13 gneg
+chr21 39700000 42600000 q22.2 gpos50
+chr21 42600000 48129895 q22.3 gneg
+chr22 0 3800000 p13 gvar
+chr22 3800000 8300000 p12 stalk
+chr22 8300000 12200000 p11.2 gvar
+chr22 12200000 14700000 p11.1 acen
+chr22 14700000 17900000 q11.1 acen
+chr22 17900000 22200000 q11.21 gneg
+chr22 22200000 23500000 q11.22 gpos25
+chr22 23500000 25900000 q11.23 gneg
+chr22 25900000 29600000 q12.1 gpos50
+chr22 29600000 32200000 q12.2 gneg
+chr22 32200000 37600000 q12.3 gpos50
+chr22 37600000 41000000 q13.1 gneg
+chr22 41000000 44200000 q13.2 gpos50
+chr22 44200000 48400000 q13.31 gneg
+chr22 48400000 49400000 q13.32 gpos50
+chr22 49400000 51304566 q13.33 gneg
+chr3 0 2800000 p26.3 gpos50
+chr3 2800000 4000000 p26.2 gneg
+chr3 4000000 8700000 p26.1 gpos50
+chr3 8700000 11800000 p25.3 gneg
+chr3 11800000 13300000 p25.2 gpos25
+chr3 13300000 16400000 p25.1 gneg
+chr3 16400000 23900000 p24.3 gpos100
+chr3 23900000 26400000 p24.2 gneg
+chr3 26400000 30900000 p24.1 gpos75
+chr3 30900000 32100000 p23 gneg
+chr3 32100000 36500000 p22.3 gpos50
+chr3 36500000 39400000 p22.2 gneg
+chr3 39400000 43700000 p22.1 gpos75
+chr3 43700000 44100000 p21.33 gneg
+chr3 44100000 44200000 p21.32 gpos50
+chr3 44200000 50600000 p21.31 gneg
+chr3 50600000 52300000 p21.2 gpos25
+chr3 52300000 54400000 p21.1 gneg
+chr3 54400000 58600000 p14.3 gpos50
+chr3 58600000 63700000 p14.2 gneg
+chr3 63700000 69800000 p14.1 gpos50
+chr3 69800000 74200000 p13 gneg
+chr3 74200000 79800000 p12.3 gpos75
+chr3 79800000 83500000 p12.2 gneg
+chr3 83500000 87200000 p12.1 gpos75
+chr3 87200000 87900000 p11.2 gneg
+chr3 87900000 91000000 p11.1 acen
+chr3 91000000 93900000 q11.1 acen
+chr3 93900000 98300000 q11.2 gvar
+chr3 98300000 100000000 q12.1 gneg
+chr3 100000000 100900000 q12.2 gpos25
+chr3 100900000 102800000 q12.3 gneg
+chr3 102800000 106200000 q13.11 gpos75
+chr3 106200000 107900000 q13.12 gneg
+chr3 107900000 111300000 q13.13 gpos50
+chr3 111300000 113500000 q13.2 gneg
+chr3 113500000 117300000 q13.31 gpos75
+chr3 117300000 119000000 q13.32 gneg
+chr3 119000000 121900000 q13.33 gpos75
+chr3 121900000 123800000 q21.1 gneg
+chr3 123800000 125800000 q21.2 gpos25
+chr3 125800000 129200000 q21.3 gneg
+chr3 129200000 133700000 q22.1 gpos25
+chr3 133700000 135700000 q22.2 gneg
+chr3 135700000 138700000 q22.3 gpos25
+chr3 138700000 142800000 q23 gneg
+chr3 142800000 148900000 q24 gpos100
+chr3 148900000 152100000 q25.1 gneg
+chr3 152100000 155000000 q25.2 gpos50
+chr3 155000000 157000000 q25.31 gneg
+chr3 157000000 159000000 q25.32 gpos50
+chr3 159000000 160700000 q25.33 gneg
+chr3 160700000 167600000 q26.1 gpos100
+chr3 167600000 170900000 q26.2 gneg
+chr3 170900000 175700000 q26.31 gpos75
+chr3 175700000 179000000 q26.32 gneg
+chr3 179000000 182700000 q26.33 gpos75
+chr3 182700000 184500000 q27.1 gneg
+chr3 184500000 186000000 q27.2 gpos25
+chr3 186000000 187900000 q27.3 gneg
+chr3 187900000 192300000 q28 gpos75
+chr3 192300000 198022430 q29 gneg
+chr4 0 4500000 p16.3 gneg
+chr4 4500000 6000000 p16.2 gpos25
+chr4 6000000 11300000 p16.1 gneg
+chr4 11300000 15200000 p15.33 gpos50
+chr4 15200000 17800000 p15.32 gneg
+chr4 17800000 21300000 p15.31 gpos75
+chr4 21300000 27700000 p15.2 gneg
+chr4 27700000 35800000 p15.1 gpos100
+chr4 35800000 41200000 p14 gneg
+chr4 41200000 44600000 p13 gpos50
+chr4 44600000 48200000 p12 gneg
+chr4 48200000 50400000 p11 acen
+chr4 50400000 52700000 q11 acen
+chr4 52700000 59500000 q12 gneg
+chr4 59500000 66600000 q13.1 gpos100
+chr4 66600000 70500000 q13.2 gneg
+chr4 70500000 76300000 q13.3 gpos75
+chr4 76300000 78900000 q21.1 gneg
+chr4 78900000 82400000 q21.21 gpos50
+chr4 82400000 84100000 q21.22 gneg
+chr4 84100000 86900000 q21.23 gpos25
+chr4 86900000 88000000 q21.3 gneg
+chr4 88000000 93700000 q22.1 gpos75
+chr4 93700000 95100000 q22.2 gneg
+chr4 95100000 98800000 q22.3 gpos75
+chr4 98800000 101100000 q23 gneg
+chr4 101100000 107700000 q24 gpos50
+chr4 107700000 114100000 q25 gneg
+chr4 114100000 120800000 q26 gpos75
+chr4 120800000 123800000 q27 gneg
+chr4 123800000 128800000 q28.1 gpos50
+chr4 128800000 131100000 q28.2 gneg
+chr4 131100000 139500000 q28.3 gpos100
+chr4 139500000 141500000 q31.1 gneg
+chr4 141500000 146800000 q31.21 gpos25
+chr4 146800000 148500000 q31.22 gneg
+chr4 148500000 151100000 q31.23 gpos25
+chr4 151100000 155600000 q31.3 gneg
+chr4 155600000 161800000 q32.1 gpos100
+chr4 161800000 164500000 q32.2 gneg
+chr4 164500000 170100000 q32.3 gpos100
+chr4 170100000 171900000 q33 gneg
+chr4 171900000 176300000 q34.1 gpos75
+chr4 176300000 177500000 q34.2 gneg
+chr4 177500000 183200000 q34.3 gpos100
+chr4 183200000 187100000 q35.1 gneg
+chr4 187100000 191154276 q35.2 gpos25
+chr5 0 4500000 p15.33 gneg
+chr5 4500000 6300000 p15.32 gpos25
+chr5 6300000 9800000 p15.31 gneg
+chr5 9800000 15000000 p15.2 gpos50
+chr5 15000000 18400000 p15.1 gneg
+chr5 18400000 23300000 p14.3 gpos100
+chr5 23300000 24600000 p14.2 gneg
+chr5 24600000 28900000 p14.1 gpos100
+chr5 28900000 33800000 p13.3 gneg
+chr5 33800000 38400000 p13.2 gpos25
+chr5 38400000 42500000 p13.1 gneg
+chr5 42500000 46100000 p12 gpos50
+chr5 46100000 48400000 p11 acen
+chr5 48400000 50700000 q11.1 acen
+chr5 50700000 58900000 q11.2 gneg
+chr5 58900000 62900000 q12.1 gpos75
+chr5 62900000 63200000 q12.2 gneg
+chr5 63200000 66700000 q12.3 gpos75
+chr5 66700000 68400000 q13.1 gneg
+chr5 68400000 73300000 q13.2 gpos50
+chr5 73300000 76900000 q13.3 gneg
+chr5 76900000 81400000 q14.1 gpos50
+chr5 81400000 82800000 q14.2 gneg
+chr5 82800000 92300000 q14.3 gpos100
+chr5 92300000 98200000 q15 gneg
+chr5 98200000 102800000 q21.1 gpos100
+chr5 102800000 104500000 q21.2 gneg
+chr5 104500000 109600000 q21.3 gpos100
+chr5 109600000 111500000 q22.1 gneg
+chr5 111500000 113100000 q22.2 gpos50
+chr5 113100000 115200000 q22.3 gneg
+chr5 115200000 121400000 q23.1 gpos100
+chr5 121400000 127300000 q23.2 gneg
+chr5 127300000 130600000 q23.3 gpos100
+chr5 130600000 136200000 q31.1 gneg
+chr5 136200000 139500000 q31.2 gpos25
+chr5 139500000 144500000 q31.3 gneg
+chr5 144500000 149800000 q32 gpos75
+chr5 149800000 152700000 q33.1 gneg
+chr5 152700000 155700000 q33.2 gpos50
+chr5 155700000 159900000 q33.3 gneg
+chr5 159900000 168500000 q34 gpos100
+chr5 168500000 172800000 q35.1 gneg
+chr5 172800000 176600000 q35.2 gpos25
+chr5 176600000 180915260 q35.3 gneg
+chr6 0 2300000 p25.3 gneg
+chr6 2300000 4200000 p25.2 gpos25
+chr6 4200000 7100000 p25.1 gneg
+chr6 7100000 10600000 p24.3 gpos50
+chr6 10600000 11600000 p24.2 gneg
+chr6 11600000 13400000 p24.1 gpos25
+chr6 13400000 15200000 p23 gneg
+chr6 15200000 25200000 p22.3 gpos75
+chr6 25200000 27000000 p22.2 gneg
+chr6 27000000 30400000 p22.1 gpos50
+chr6 30400000 32100000 p21.33 gneg
+chr6 32100000 33500000 p21.32 gpos25
+chr6 33500000 36600000 p21.31 gneg
+chr6 36600000 40500000 p21.2 gpos25
+chr6 40500000 46200000 p21.1 gneg
+chr6 46200000 51800000 p12.3 gpos100
+chr6 51800000 52900000 p12.2 gneg
+chr6 52900000 57000000 p12.1 gpos100
+chr6 57000000 58700000 p11.2 gneg
+chr6 58700000 61000000 p11.1 acen
+chr6 61000000 63300000 q11.1 acen
+chr6 63300000 63400000 q11.2 gneg
+chr6 63400000 70000000 q12 gpos100
+chr6 70000000 75900000 q13 gneg
+chr6 75900000 83900000 q14.1 gpos50
+chr6 83900000 84900000 q14.2 gneg
+chr6 84900000 88000000 q14.3 gpos50
+chr6 88000000 93100000 q15 gneg
+chr6 93100000 99500000 q16.1 gpos100
+chr6 99500000 100600000 q16.2 gneg
+chr6 100600000 105500000 q16.3 gpos100
+chr6 105500000 114600000 q21 gneg
+chr6 114600000 118300000 q22.1 gpos75
+chr6 118300000 118500000 q22.2 gneg
+chr6 118500000 126100000 q22.31 gpos100
+chr6 126100000 127100000 q22.32 gneg
+chr6 127100000 130300000 q22.33 gpos75
+chr6 130300000 131200000 q23.1 gneg
+chr6 131200000 135200000 q23.2 gpos50
+chr6 135200000 139000000 q23.3 gneg
+chr6 139000000 142800000 q24.1 gpos75
+chr6 142800000 145600000 q24.2 gneg
+chr6 145600000 149000000 q24.3 gpos75
+chr6 149000000 152500000 q25.1 gneg
+chr6 152500000 155500000 q25.2 gpos50
+chr6 155500000 161000000 q25.3 gneg
+chr6 161000000 164500000 q26 gpos50
+chr6 164500000 171115067 q27 gneg
+chr7 0 2800000 p22.3 gneg
+chr7 2800000 4500000 p22.2 gpos25
+chr7 4500000 7300000 p22.1 gneg
+chr7 7300000 13800000 p21.3 gpos100
+chr7 13800000 16500000 p21.2 gneg
+chr7 16500000 20900000 p21.1 gpos100
+chr7 20900000 25500000 p15.3 gneg
+chr7 25500000 28000000 p15.2 gpos50
+chr7 28000000 28800000 p15.1 gneg
+chr7 28800000 35000000 p14.3 gpos75
+chr7 35000000 37200000 p14.2 gneg
+chr7 37200000 43300000 p14.1 gpos75
+chr7 43300000 45400000 p13 gneg
+chr7 45400000 49000000 p12.3 gpos75
+chr7 49000000 50500000 p12.2 gneg
+chr7 50500000 54000000 p12.1 gpos75
+chr7 54000000 58000000 p11.2 gneg
+chr7 58000000 59900000 p11.1 acen
+chr7 59900000 61700000 q11.1 acen
+chr7 61700000 67000000 q11.21 gneg
+chr7 67000000 72200000 q11.22 gpos50
+chr7 72200000 77500000 q11.23 gneg
+chr7 77500000 86400000 q21.11 gpos100
+chr7 86400000 88200000 q21.12 gneg
+chr7 88200000 91100000 q21.13 gpos75
+chr7 91100000 92800000 q21.2 gneg
+chr7 92800000 98000000 q21.3 gpos75
+chr7 98000000 103800000 q22.1 gneg
+chr7 103800000 104500000 q22.2 gpos50
+chr7 104500000 107400000 q22.3 gneg
+chr7 107400000 114600000 q31.1 gpos75
+chr7 114600000 117400000 q31.2 gneg
+chr7 117400000 121100000 q31.31 gpos75
+chr7 121100000 123800000 q31.32 gneg
+chr7 123800000 127100000 q31.33 gpos75
+chr7 127100000 129200000 q32.1 gneg
+chr7 129200000 130400000 q32.2 gpos25
+chr7 130400000 132600000 q32.3 gneg
+chr7 132600000 138200000 q33 gpos50
+chr7 138200000 143100000 q34 gneg
+chr7 143100000 147900000 q35 gpos75
+chr7 147900000 152600000 q36.1 gneg
+chr7 152600000 155100000 q36.2 gpos25
+chr7 155100000 159138663 q36.3 gneg
+chr8 0 2200000 p23.3 gneg
+chr8 2200000 6200000 p23.2 gpos75
+chr8 6200000 12700000 p23.1 gneg
+chr8 12700000 19000000 p22 gpos100
+chr8 19000000 23300000 p21.3 gneg
+chr8 23300000 27400000 p21.2 gpos50
+chr8 27400000 28800000 p21.1 gneg
+chr8 28800000 36500000 p12 gpos75
+chr8 36500000 38300000 p11.23 gneg
+chr8 38300000 39700000 p11.22 gpos25
+chr8 39700000 43100000 p11.21 gneg
+chr8 43100000 45600000 p11.1 acen
+chr8 45600000 48100000 q11.1 acen
+chr8 48100000 52200000 q11.21 gneg
+chr8 52200000 52600000 q11.22 gpos75
+chr8 52600000 55500000 q11.23 gneg
+chr8 55500000 61600000 q12.1 gpos50
+chr8 61600000 62200000 q12.2 gneg
+chr8 62200000 66000000 q12.3 gpos50
+chr8 66000000 68000000 q13.1 gneg
+chr8 68000000 70500000 q13.2 gpos50
+chr8 70500000 73900000 q13.3 gneg
+chr8 73900000 78300000 q21.11 gpos100
+chr8 78300000 80100000 q21.12 gneg
+chr8 80100000 84600000 q21.13 gpos75
+chr8 84600000 86900000 q21.2 gneg
+chr8 86900000 93300000 q21.3 gpos100
+chr8 93300000 99000000 q22.1 gneg
+chr8 99000000 101600000 q22.2 gpos25
+chr8 101600000 106200000 q22.3 gneg
+chr8 106200000 110500000 q23.1 gpos75
+chr8 110500000 112100000 q23.2 gneg
+chr8 112100000 117700000 q23.3 gpos100
+chr8 117700000 119200000 q24.11 gneg
+chr8 119200000 122500000 q24.12 gpos50
+chr8 122500000 127300000 q24.13 gneg
+chr8 127300000 131500000 q24.21 gpos50
+chr8 131500000 136400000 q24.22 gneg
+chr8 136400000 139900000 q24.23 gpos75
+chr8 139900000 146364022 q24.3 gneg
+chr9 0 2200000 p24.3 gneg
+chr9 2200000 4600000 p24.2 gpos25
+chr9 4600000 9000000 p24.1 gneg
+chr9 9000000 14200000 p23 gpos75
+chr9 14200000 16600000 p22.3 gneg
+chr9 16600000 18500000 p22.2 gpos25
+chr9 18500000 19900000 p22.1 gneg
+chr9 19900000 25600000 p21.3 gpos100
+chr9 25600000 28000000 p21.2 gneg
+chr9 28000000 33200000 p21.1 gpos100
+chr9 33200000 36300000 p13.3 gneg
+chr9 36300000 38400000 p13.2 gpos25
+chr9 38400000 41000000 p13.1 gneg
+chr9 41000000 43600000 p12 gpos50
+chr9 43600000 47300000 p11.2 gneg
+chr9 47300000 49000000 p11.1 acen
+chr9 49000000 50700000 q11 acen
+chr9 50700000 65900000 q12 gvar
+chr9 65900000 68700000 q13 gneg
+chr9 68700000 72200000 q21.11 gpos25
+chr9 72200000 74000000 q21.12 gneg
+chr9 74000000 79200000 q21.13 gpos50
+chr9 79200000 81100000 q21.2 gneg
+chr9 81100000 84100000 q21.31 gpos50
+chr9 84100000 86900000 q21.32 gneg
+chr9 86900000 90400000 q21.33 gpos50
+chr9 90400000 91800000 q22.1 gneg
+chr9 91800000 93900000 q22.2 gpos25
+chr9 93900000 96600000 q22.31 gneg
+chr9 96600000 99300000 q22.32 gpos25
+chr9 99300000 102600000 q22.33 gneg
+chr9 102600000 108200000 q31.1 gpos100
+chr9 108200000 111300000 q31.2 gneg
+chr9 111300000 114900000 q31.3 gpos25
+chr9 114900000 117700000 q32 gneg
+chr9 117700000 122500000 q33.1 gpos75
+chr9 122500000 125800000 q33.2 gneg
+chr9 125800000 130300000 q33.3 gpos25
+chr9 130300000 133500000 q34.11 gneg
+chr9 133500000 134000000 q34.12 gpos25
+chr9 134000000 135900000 q34.13 gneg
+chr9 135900000 137400000 q34.2 gpos25
+chr9 137400000 141213431 q34.3 gneg
+chrX 0 4300000 p22.33 gneg
+chrX 4300000 6000000 p22.32 gpos50
+chrX 6000000 9500000 p22.31 gneg
+chrX 9500000 17100000 p22.2 gpos50
+chrX 17100000 19300000 p22.13 gneg
+chrX 19300000 21900000 p22.12 gpos50
+chrX 21900000 24900000 p22.11 gneg
+chrX 24900000 29300000 p21.3 gpos100
+chrX 29300000 31500000 p21.2 gneg
+chrX 31500000 37600000 p21.1 gpos100
+chrX 37600000 42400000 p11.4 gneg
+chrX 42400000 46400000 p11.3 gpos75
+chrX 46400000 49800000 p11.23 gneg
+chrX 49800000 54800000 p11.22 gpos25
+chrX 54800000 58100000 p11.21 gneg
+chrX 58100000 60600000 p11.1 acen
+chrX 60600000 63000000 q11.1 acen
+chrX 63000000 64600000 q11.2 gneg
+chrX 64600000 67800000 q12 gpos50
+chrX 67800000 71800000 q13.1 gneg
+chrX 71800000 73900000 q13.2 gpos50
+chrX 73900000 76000000 q13.3 gneg
+chrX 76000000 84600000 q21.1 gpos100
+chrX 84600000 86200000 q21.2 gneg
+chrX 86200000 91800000 q21.31 gpos100
+chrX 91800000 93500000 q21.32 gneg
+chrX 93500000 98300000 q21.33 gpos75
+chrX 98300000 102600000 q22.1 gneg
+chrX 102600000 103700000 q22.2 gpos50
+chrX 103700000 108700000 q22.3 gneg
+chrX 108700000 116500000 q23 gpos75
+chrX 116500000 120900000 q24 gneg
+chrX 120900000 128700000 q25 gpos100
+chrX 128700000 130400000 q26.1 gneg
+chrX 130400000 133600000 q26.2 gpos25
+chrX 133600000 138000000 q26.3 gneg
+chrX 138000000 140300000 q27.1 gpos75
+chrX 140300000 142100000 q27.2 gneg
+chrX 142100000 147100000 q27.3 gpos100
+chrX 147100000 155270560 q28 gneg
+chrY 0 2500000 p11.32 gneg
+chrY 2500000 3000000 p11.31 gpos50
+chrY 3000000 11600000 p11.2 gneg
+chrY 11600000 12500000 p11.1 acen
+chrY 12500000 13400000 q11.1 acen
+chrY 13400000 15100000 q11.21 gneg
+chrY 15100000 19800000 q11.221 gpos50
+chrY 19800000 22100000 q11.222 gneg
+chrY 22100000 26200000 q11.223 gpos50
+chrY 26200000 28800000 q11.23 gneg
+chrY 28800000 59373566 q12 gvar
diff --git a/clipper/tidx/perl/t/res1.txt b/clipper/tidx/perl/t/res1.txt
new file mode 100644
index 0000000..8ac5711
--- /dev/null
+++ b/clipper/tidx/perl/t/res1.txt
@@ -0,0 +1 @@
+chr1 12700000 16200000 p36.21 gpos50 chr1 16200000 20400000 p36.13 gneg chr1 12700000 16200000 p36.21 gpos50 chr1 16200000 20400000 p36.13 gneg chr1 20400000 23900000 p36.12 gpos25 chr1 16200000 20400000 p36.13 gneg chr1 20400000 23900000 p36.12 gpos25
diff --git a/clipper/tidx/perl/t/res2.txt b/clipper/tidx/perl/t/res2.txt
new file mode 100644
index 0000000..5a5fe87
--- /dev/null
+++ b/clipper/tidx/perl/t/res2.txt
@@ -0,0 +1 @@
+chr1 9200000 12700000 p36.22 gneg chr1 7200000 9200000 p36.23 gpos25 chr1 9200000 12700000 p36.22 gneg chr1 12700000 16200000 p36.21 gpos50 chr1 9200000 12700000 p36.22 gneg
diff --git a/clipper/tidx/perl/tidx-lib.cpp b/clipper/tidx/perl/tidx-lib.cpp
new file mode 120000
index 0000000..26e4667
--- /dev/null
+++ b/clipper/tidx/perl/tidx-lib.cpp
@@ -0,0 +1 @@
+../tidx-lib.cpp
\ No newline at end of file
diff --git a/clipper/tidx/perl/tidx.cpp b/clipper/tidx/perl/tidx.cpp
new file mode 120000
index 0000000..e390238
--- /dev/null
+++ b/clipper/tidx/perl/tidx.cpp
@@ -0,0 +1 @@
+../tidx.cpp
\ No newline at end of file
diff --git a/clipper/tidx/perl/tidx.h b/clipper/tidx/perl/tidx.h
new file mode 120000
index 0000000..e667f14
--- /dev/null
+++ b/clipper/tidx/perl/tidx.h
@@ -0,0 +1 @@
+../tidx.h
\ No newline at end of file
diff --git a/clipper/tidx/perl/typemap b/clipper/tidx/perl/typemap
new file mode 100644
index 0000000..faa074d
--- /dev/null
+++ b/clipper/tidx/perl/typemap
@@ -0,0 +1,2 @@
+TYPEMAP
+tidx * O_OBJECT
diff --git a/tidx/utils.cpp b/clipper/tidx/perl/utils.cpp
similarity index 100%
copy from tidx/utils.cpp
copy to clipper/tidx/perl/utils.cpp
diff --git a/tidx/utils.h b/clipper/tidx/perl/utils.h
similarity index 100%
copy from tidx/utils.h
copy to clipper/tidx/perl/utils.h
diff --git a/tidx/tidx-lib.cpp b/clipper/tidx/tidx-lib.cpp
similarity index 100%
rename from tidx/tidx-lib.cpp
rename to clipper/tidx/tidx-lib.cpp
diff --git a/tidx/tidx.cpp b/clipper/tidx/tidx.cpp
similarity index 100%
rename from tidx/tidx.cpp
rename to clipper/tidx/tidx.cpp
diff --git a/tidx/tidx.h b/clipper/tidx/tidx.h
similarity index 100%
rename from tidx/tidx.h
rename to clipper/tidx/tidx.h
diff --git a/tidx/utils.cpp b/clipper/tidx/utils.cpp
similarity index 100%
rename from tidx/utils.cpp
rename to clipper/tidx/utils.cpp
diff --git a/tidx/utils.h b/clipper/tidx/utils.h
similarity index 100%
rename from tidx/utils.h
rename to clipper/tidx/utils.h
diff --git a/clipper/utils.cpp b/clipper/utils.cpp
new file mode 100644
index 0000000..fb72567
--- /dev/null
+++ b/clipper/utils.cpp
@@ -0,0 +1,39 @@
+#include <string.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string>
+#include <vector>
+
+#include "utils.h"
+
+std::string string_format(const std::string &fmt, ...) {
+ int n, size=100;
+ std::string str;
+ va_list ap;
+ while (1) {
+ str.resize(size);
+ va_start(ap, fmt);
+ int n = vsnprintf((char *)str.c_str(), size, fmt.c_str(), ap);
+ va_end(ap);
+ if (n > -1 && n < size)
+ return str;
+ if (n > -1)
+ size=n+1;
+ else
+ size*=2;
+ }
+}
+
+std::vector<char *> split(char* str,const char* delim)
+{
+ char* token = strtok(str,delim);
+ std::vector<char *> result;
+ while(token != NULL)
+ {
+ result.push_back(token);
+ token = strtok(NULL,delim);
+ }
+ return result;
+}
+
diff --git a/utils.h b/clipper/utils.h
similarity index 100%
rename from utils.h
rename to clipper/utils.h
diff --git a/clipper/varcall-matrix b/clipper/varcall-matrix
new file mode 100755
index 0000000..797d77d
--- /dev/null
+++ b/clipper/varcall-matrix
@@ -0,0 +1,248 @@
+#!/usr/bin/perl
+
+use strict;
+
+use IO::File;
+use Data::Dumper;
+use Getopt::Long qw(:config no_ignorecase);
+
+my $min_seen = 0;
+my $distance = 0;
+my $strip = -1;
+my $usepil;
+my $pilsub;
+my $faidx;
+
+GetOptions("minvar=i"=>\$min_seen, "distance"=>\$distance, "strip!"=>\$strip, "pileup"=>\$usepil, "PSUB=s"=>\$pilsub, "faidx=s"=>\$faidx) || die;
+
+die "use -p for default varcall.txt/pileup.txt conversion\n" if -e $pilsub;
+$pilsub = "varcall.txt/pileup.txt" if $usepil && !$pilsub;
+
+die "Usage: $0 [opts] varcall-files...
+ -m Minimum number of samples with a variant (1)
+ -d Output a distance matrix instead (1=het, 2=hom, 3=indel)
+ -p Use associated pileup info for reference depth, default is varcall.txt -> pileup.txt
+ -s Strip all path info
+ -f REF Use reference for sort order (necessary if the original file was not lexically sorted!)
+ -P SUBST Use associated pileup info for reference depth, and define SUBST
+" if !@ARGV;
+
+my @in; my @pil; my $i = 0;
+
+my %refsort;
+if ($faidx) {
+ $faidx = "$faidx.fai" if $faidx !~ /\.fai$/;
+ open(IN, $faidx) || die "can't read $faidx: $!";
+ my $i = 0;
+ while(<IN>) {
+ my ($id) = split /\t/;
+ $refsort{$id}=++$i;
+ }
+ die unless %refsort;
+}
+
+for (@ARGV) {
+ if (defined $pilsub) {
+ my $pil = $_;
+ my ($from, $to) = split /[\/=]/, $pilsub;
+ die "-PSUB must be from/to: $pilsub\n" unless $to;
+ if ($pil =~ s/$from$/$to/) {
+ if (-s $pil) {
+ open($pil[$i], $pil)||die"open $pil:$!\n";
+ } elsif (-s "$pil.gz") {
+ open($pil[$i], "gunzip -c $pil.gz|")||die"open $pil:$!\n";
+ } else {
+ die "file name $pil does not exist";
+ }
+ } else {
+ die "file name $pil does not match $pilsub";
+ }
+ }
+ open($in[$i++], $_)||die"open $_:$!\n";
+}
+
+# print header
+print "chr\tpos\tref" if !$distance;
+print "chr-pos" if $distance;
+# strip common path info
+my $pre = common_prefix(@ARGV); $pre =~ s/[^\/]+$//; $pre = quotemeta($pre);
+my $suf = common_suffix(@ARGV); $suf =~ s/^[^.]+//; $suf = quotemeta($suf);
+for (my $i = 0; $i < @in; ++$i ){
+ print "\t";
+ my $th = $ARGV[$i];
+ if ($strip == -1) {
+ $th =~ s/^$pre//;
+ } elsif ($strip) {
+ $th =~ s/^.*\///;
+ }
+ $th =~ s/$suf$//;
+ print $th;
+}
+print "\n";
+
+my $ok = 1;
+my @keep;
+my $cnt = 0;
+while ($ok) {
+$ok = 0;
+
+my ($l, @d);
+my ($min_i, $min_id, $min_pos);
+# for each file
+for (my $i = 0; $i < @in; ++$i ) {
+ # read if needed
+ if (!defined($keep[$i])) {
+ $l = $in[$i]->getline; chomp $l;
+ next unless $l;
+ # id, pos, ref, depth, skipped, pct, call1, call2...
+ $d[$i] = [split /\t/, $l];
+ } else {
+ # reuse last rounds read
+ $d[$i] = $keep[$i];
+ next unless $d[$i];
+ }
+ # find the min id
+ $ok = 1;
+ if ( ( $d[$i][0] && !defined($min_id) ) ||
+ ( chrlt($d[$i][0],$min_id) ) ||
+ ( ($d[$i][0] eq $min_id) && ($d[$i][1] < $min_pos) )
+ ) {
+ # minimum id
+ $min_i = $i;
+ $min_id = $d[$i][0];
+ $min_pos = $d[$i][1];
+ }
+}
+
+last if !$ok;
+
+die "Error: no id found: ", Dumper \@d if !$min_id;
+
+my $seen;
+for ($i = 0; $i < @in; ++$i ){
+ if ($d[$i] && ($d[$i][0] eq $min_id && $d[$i][1] eq $min_pos) ) {
+ ++$seen;
+ $keep[$i] = undef; # read next
+ } else {
+ $keep[$i] = $d[$i]; # don't read
+ }
+}
+
+# if you don't see enough in common, skip
+if ($seen < $min_seen) {
+ next;
+}
+
+my @p;
+if (@pil) {
+ # seek all the pileups
+ for ($i = 0; $i < @pil; ++$i ){
+ do {
+ # note: chr, pos, ref, depth, pil
+ $p[$i] = [split /\t/, $pil[$i]->getline];
+ } while ( ( chrlt($p[$i][0], $min_id) ) ||
+ ( ($p[$i][0] eq $min_id) && ($p[$i][1] < $min_pos) )
+ );
+ }
+}
+
+# print the variant
+my $ref = $d[$min_i][2];
+print "$min_id-$min_pos" if $distance;
+print "$min_id\t$min_pos\t", $ref if !$distance;
+
+for ($i = 0; $i < @in; ++$i ){
+ print "\t";
+ if ($d[$i] && ($d[$i][0] eq $min_id && $d[$i][1] eq $min_pos) ) {
+ # output data
+ # todo support alternate matrix formats
+ my $count = $#{$d[$i]};
+ if ($distance) {
+ for (@{$d[$i]}[6 .. $count]) {
+ $distance = 2;
+ if (uc($ref) eq substr($_,0,1)) {
+ --$distance;
+ }
+ if (substr($_,0,1) eq '*') {
+ ++$distance;
+ }
+ if (substr($_,0,1) eq '+') {
+ ++$distance;
+ }
+ }
+ print $distance;
+ } else {
+ print join ";", sort { substr($b,index($b,':')+1) <=> substr($a,index($a,':')+1) } @{$d[$i]}[6 .. $count];
+ }
+ } else {
+ # output blank, keep read for later
+ if ($distance) {
+ print 0;
+ } else {
+ if ($p[$i] && $p[$i][0] eq $min_id && $p[$i][1] eq $min_pos) {
+ if ($p[$i][2] =~ /^[atgc]$/oi) {
+ my $depth = $p[$i][4] =~ tr/,.//;
+ if ($depth < 4) {
+ print "n/a";
+ } else {
+ my $sq = 0;
+ for(my $j=0;$j<length($p[$i][5]);++$j) {
+ $sq+=ord(substr($p[$i][5],$j,1))-33;
+ }
+ $sq = int($sq/length($p[$i][5]));
+ print uc($p[$i][2]), ":$depth,$sq";
+ }
+ } else {
+ print "n/a";
+ }
+ } else {
+ print "";
+ }
+ }
+ }
+}
+
+print "\n";
+};
+
+
+sub common_suffix {
+ my $comm = shift @_;
+ while ($_ = shift @_) {
+ $_ = substr($_,-length($comm)) if (length($_) > length($comm));
+ $comm = substr($comm,-length($_)) if (length($_) < length($comm));
+ if (( $_ ^ $comm ) =~ /(\0*)$/) {
+ $comm = substr($comm, -length($1));
+ } else {
+ return undef;
+ }
+ }
+ return $comm;
+}
+
+sub common_prefix {
+ my $comm = shift @_;
+ while ($_ = shift @_) {
+ $_ = substr($_,0,length($comm)) if (length($_) > length($comm));
+ $comm = substr($comm,0,length($_)) if (length($_) < length($comm));
+ if (( $_ ^ $comm ) =~ /^(\0*)/) {
+ $comm = substr($comm, 0, length($1));
+ } else {
+ return undef;
+ }
+ }
+ return $comm;
+}
+
+sub chrlt {
+ my ($a, $b) = @_;
+ if ($faidx) {
+ return 0 if $a eq $b;
+ return $refsort{$a} < $refsort{$b};
+ } else {
+ $a =~ tr/:/\0/;
+ $b =~ tr/:/\0/;
+ return $a lt $b;
+ }
+}
+
diff --git a/clipper/varcall.cpp b/clipper/varcall.cpp
new file mode 100644
index 0000000..a9eebc7
--- /dev/null
+++ b/clipper/varcall.cpp
@@ -0,0 +1,2531 @@
+/*
+Copyright (c) 2012 Erik Aronesty
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+*/
+
+#include <math.h>
+#include <ctype.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <getopt.h>
+#include <string.h>
+#include <errno.h>
+#include <stdarg.h>
+
+#include <gsl/gsl_randist.h>
+
+#include <sys/stat.h>
+
+#include <string>
+#include <queue>
+#include <list>
+
+#include <sparsehash/sparse_hash_map> // or sparse_hash_set, dense_hash_map, ...
+#include <sparsehash/dense_hash_map> // or sparse_hash_set, dense_hash_map, ...
+#include "tidx/tidx.h"
+
+#include "fastq-lib.h"
+
+const char * VERSION = "0.96.819";
+
+#define MIN_READ_LEN 20
+#define DEFAULT_LOCII 1000000
+
+
+using namespace std;
+using namespace google;
+
+void usage(FILE *f);
+
+
+FILE *stat_fout=NULL;
+
+// #define DEBUG 1
+
+#define meminit(l) (memset(&l,0,sizeof(l)))
+#ifdef DEBUG
+ #define debug(s,...) fprintf(stderr,s,##__VA_ARGS__)
+#else
+ #define debug(s,...)
+#endif
+#undef warn
+#define warn(s,...) (++errs, fprintf(stderr,s,##__VA_ARGS__))
+#define die(s,...) (fprintf(stderr,s,##__VA_ARGS__), exit(1))
+#define stat_out(s,...) fprintf(stat_fout,s,##__VA_ARGS__)
+#define stdev(cnt, sum, ssq) sqrt((((double)cnt)*ssq-pow((double)sum,2)) / ((double)cnt*((double)cnt-1)))
+#define log10(x) (log(x)/log(10))
+
+//////////// BASE 2 INTEGER
+
+#define T_A 0
+#define T_C 1
+#define T_G 2
+#define T_T 3
+#define T_SDEL 4
+#define T_NDEL 5
+#define T_INS 6
+#define T_N 7
+#define T_CNT 8
+#define b2i(c) ((c)=='A'?0:(c)=='a'?0:(c)=='C'?1:(c)=='c'?1:(c)=='G'?2:(c)=='g'?2:(c)=='T'?3:(c)=='t'?3:(c)=='*'?4:(c)=='-'?5:(c)=='+'?6:7)
+#define i2b(i) (i==0?'A':i==1?'C':i==2?'G':i==3?'T':i==4?'*':i==5?'-':i==6?'+':'?')
+#define toupper(c) ((c)>='a' && (c)<='z' ? ((c)-32) : (c))
+
+// die unless it's a number
+int ok_atoi(const char *s) {
+ if (!s || (!isdigit(*s)&& !(*s=='-'))) {
+ die("%s is not a number\n", s);
+ }
+ return atoi(s);
+}
+
+double quantile(const std::vector<int> &vec, double p);
+double quantile(const std::vector<double> &vec, double p);
+double pnorm(double x);
+double qnorm(double x);
+int rand_round(double x);
+
+// basic utils
+std::vector<char *> split(char* str, char delim);
+int split(char **buf, char* str, char delim);
+std::string string_format(const std::string &fmt, ...);
+void to_upper(const std::string str);
+void rename_tmp(std::string f);
+
+int errs=0;
+extern int optind;
+int g_lineno=0;
+double vse_rate[T_CNT][T_CNT];
+
+class Faidx {
+public:
+ typedef struct {
+ int len;
+ long long offset;
+ int line_blen;
+ int line_len;
+ } Faient;
+
+ sparse_hash_map<string, Faient> faimap;
+
+ string fa_n;
+ FILE *fa_f;
+
+ Faidx() {fa_f=NULL;};
+ void Load(const char *path); // open file, read fai
+
+ // read into buffer
+ bool Fetch(char *buf, const string &chr, int pos_from, int pos_to) {
+ Fetch(buf, Chrdex(chr), pos_from, pos_to);
+ };
+
+ // read into buffer, with cached Chrdex
+ bool Fetch(char *buf, const Faient *ent, int pos_from, int pos_to);
+ const Faient * Chrdex(const string &chr) {
+ return &(faimap[chr]);
+ }
+};
+
+class Noise {
+public:
+ Noise() {noise=0;depth=0;};
+ Noise(char r, char v, int d, double n, double q, double mq) {ref=r, var=v, depth=d; noise=n;qnoise=q;mnqual=mq;};
+ char ref;
+ char var;
+ double noise;
+ double qnoise;
+ int depth;
+ double mnqual;
+};
+
+double quantile_depth(const vector<Noise> &vec, double p);
+
+bool noisebydepth (const Noise &a, const Noise &b) { return (a.depth>b.depth);}
+
+class PileupEnt {
+public:
+ bool is_rev;
+ bool is_start;
+ bool f;
+ const char *b;
+ int q;
+ int m;
+ int p;
+};
+
+class vcall {
+public:
+ vcall() {base='\0'; mn_qual=mq0=fwd=rev=qual=is_ref=qual_ssq=mq_sum=mq_ssq=tail_rev=tail_fwd=fwd_q=rev_q=0; agreement=diversity=0.0;}
+ char base;
+ bool is_ref;
+ int qual, fwd, rev, mq0, mn_qual, qual_ssq, mq_sum, mq_ssq, tail_rev, tail_fwd, fwd_q, rev_q;
+ double diversity, agreement;
+ vector <string> seqs;
+ int depth() const {return fwd+rev;}
+ int mq_rms() const {return sqrt(mq_ssq/depth());}
+ int qual_rms() const {return sqrt(qual_ssq/depth());}
+};
+
+class vfinal {
+public:
+ vfinal(vcall &c) {max_idl_cnt=0; padj=1; pcall = &c;};
+ vfinal & operator=(vfinal const&x) {max_idl_seq=x.max_idl_seq; max_idl_cnt=x.max_idl_cnt; padj=x.padj; pcall=x.pcall;}
+ vcall *pcall;
+ string max_idl_seq;
+ int max_idl_cnt;
+ double padj;
+ bool is_indel() {return max_idl_cnt > 0;};
+};
+
+bool hitolocall (const vcall &i,const vcall &j) {return ((i.depth())>(j.depth()));}
+bool sortreffirst (const vfinal &i,const vfinal &j) {return (i.pcall->is_ref&&!j.pcall->is_ref)||((i.pcall->is_ref==j.pcall->is_ref) && ((i.pcall->depth())>(j.pcall->depth())));}
+
+class Read {
+public:
+ int MapQ;
+ int Pos;
+ string Seq;
+ Read() {MapQ=Pos=0;};
+};
+
+class PileupReads {
+public:
+ double MeanReadLen() {return ReadBin.size() ? TotReadLen/ReadBin.size() : MIN_READ_LEN;}
+ int TotReadLen;
+ deque<Read> ReadBin;
+ list<Read> ReadList;
+ PileupReads() {TotReadLen=0;}
+};
+
+class PileupSummary {
+public:
+ string Chr;
+ int Pos;
+ char Base;
+ int Depth;
+ int TotQual;
+ int NumReads;
+ vector<vcall> Calls;
+ bool InTarget;
+ int Regions;
+
+ int SkipN;
+ int SkipAmp;
+ int SkipDupReads;
+ int SkipMinMapq;
+ int SkipMinQual;
+
+ int RepeatCount;
+ char RepeatBase;
+
+ void Parse(char *line, PileupReads &reads, tidx *annot=NULL, char annot_type='\0');
+ PileupSummary() { Base = '\0'; Pos=-1; };
+};
+
+class PileupManager;
+
+class PileupSubscriber {
+public:
+ PileupManager *Manager;
+ virtual void Visit(PileupSummary &dat) = 0;
+ virtual void Finish() {};
+ PileupSubscriber(PileupManager &man);
+ PileupSubscriber() {Manager = NULL;}
+ void SetManager(PileupManager &man);
+};
+
+class PileupManager {
+friend class PileupSubscriber;
+
+private:
+ void Visit(PileupSummary &dat);
+ void VisitX(PileupSummary &dat, int windex);
+ PileupSummary Pileup;
+
+protected:
+ vector<PileupSubscriber *> Kids;
+
+public:
+
+ string Reference;
+ char InputType;
+ int WinMax; // flanking window size
+ int WinDex; // current index into the window (ususally midpoint)
+
+ deque<PileupSummary> Win;
+
+ int UseAnnot;
+ tidx AnnotDex; // start/stop index file
+ char AnnotType; // b (bed) or g (gtf - preferred)
+
+ PileupReads Reads;
+
+ PileupManager() {InputType ='\0'; WinMax=0; WinDex=0; UseAnnot=0; AnnotType='\0';}
+
+ void Finish();
+
+ void Parse(char *dat);
+
+ void LoadAnnot(const char *annot_file);
+ void FillReference(int refSize);
+};
+
+class VarStatVisitor : public PileupSubscriber {
+ public:
+ VarStatVisitor() : PileupSubscriber() {tot_locii=0; tot_depth=0; num_reads=0; stats.reserve(1000000); ins_stats.reserve(1000000); del_stats.reserve(1000000);};
+ VarStatVisitor(PileupManager &man) : PileupSubscriber(man) {tot_locii=0; tot_depth=0; num_reads=0;};
+
+ void Visit(PileupSummary &dat);
+ void Finish() {};
+
+ double tot_depth;
+ int tot_locii;
+ int num_reads;
+ vector<Noise> stats;
+ vector<Noise> ins_stats;
+ vector<Noise> del_stats;
+};
+
+
+class VarCallVisitor : public PileupSubscriber {
+ public:
+
+ VarCallVisitor(PileupManager &man) : PileupSubscriber(man) {
+ SkippedAnnot=0;
+ SkippedDepth=0;
+ Hets=0;
+ Homs=0;
+ Locii=0;
+ };
+
+ void Visit(PileupSummary &dat);
+
+ int SkippedDepth;
+ int SkippedAnnot;
+ int Locii;
+ int Hets;
+ int Homs;
+};
+
+bool hasdata(const string &file) {
+ struct stat st;
+ if (stat(file.c_str(), &st)) {
+ return false;
+ }
+ return st.st_size > 0;
+}
+
+
+int minsampdepth=20;
+double pct_depth=0;
+double pct_qdepth=0;
+double global_error_rate=0;
+double max_phred;
+double vse_max_phred[T_CNT][T_CNT];
+int total_locii=-1;
+double pct_balance=0.05; // at least 1 reverse read for every 20
+char *debug_xchr=NULL;
+int debug_xpos=0;
+int debug_level=0;
+int min_depth=1;
+int min_mapq=0;
+double min_diversity=0.15; // only skip huge piles in one spot... even a little diversity is OK
+double min_agreement=0.15; // only really relevent when depths are high ... this is a bare minimum score
+int min_qual=3;
+int repeat_filter=7;
+double artifact_filter=1;
+int min_adepth=2;
+int read_tail_pct=.6;
+int read_tail_len=4;
+int min_idepth=3;
+int no_baq=0;
+double zygosity=.5; // set to .1 for 1 10% admixture, or even .05 for het/admix
+bool output_ref=0; // set to 1 if you want to output reference-only positions
+bool no_indels=0;
+
+void parse_bams(PileupManager &v, int in_n, char **in, const char *ref);
+void check_ref_fai(const char * ref);
+
+FILE *noise_f=NULL, *var_f = NULL, *varsum_f = NULL, *tgt_var_f = NULL, *tgt_cse_f = NULL, *vcf_f = NULL, *eav_f=NULL, *cse_f=NULL;
+
+double alpha=.05;
+int phred=33;
+double phi(double x);
+
+FILE *openordie(const char *path, const char *mode) {
+ FILE *f=fopen(path, mode);
+ if (!f) {
+ warn("Can't open-%s %s: %s\n", mode, path, strerror(errno));
+ exit(1);
+ }
+ return f;
+}
+
+int str_in(const char *needle, const char **haystack) {
+ int i=-1;
+ while (*haystack) {
+ ++i;
+ if (!strcasecmp(needle, *haystack)) {
+ return i;
+ }
+ ++haystack;
+ }
+ return -1;
+}
+
+void output_stats(VarStatVisitor &vstat);
+
+Faidx faidx;
+bool pcr_annot = false;
+
+int main(int argc, char **argv) {
+ char c;
+ const char *ref=NULL;
+ optind = 0;
+ int umindepth=0;
+ int uminadepth=-1;
+ int uminidepth=0;
+ double upctqdepth=0;
+ int do_stats=0;
+ int do_varcall=0;
+
+ char *out_prefix = NULL;
+ char *target_annot = NULL;
+ const char *read_stats = NULL;
+
+
+// list of default output formats used when -o is specified
+#define MAX_F 20
+ const char *format_list[MAX_F]={"var", "eav", "noise", "varsum", NULL};
+
+// option characters... use \1, \2... for long-only
+
+ #define OPT_PCR_ANNOT '\1'
+ #define OPT_DEBUG_LEVEL '\2'
+ #define OPT_NO_INDELS '\3'
+ #define OPT_FILTER_ANNOT 'A'
+
+// long options
+ static struct option long_options[] = {
+ {"pcr-annot", 1, 0, OPT_PCR_ANNOT},
+ {"filter-annot", 1, 0, OPT_FILTER_ANNOT},
+ {"repeat-filter", 1, 0, 'R'},
+ {"no-indels", 0, 0, OPT_NO_INDELS},
+ {"agreement", 1, 0, 'G'},
+ {"diversity", 1, 0, 'd'},
+ {"version", 0, 0, 'V'},
+ {"debug", 1, 0, OPT_DEBUG_LEVEL},
+ {0, 0, 0, 0}
+ };
+
+ while ( (c = getopt_long(argc, argv, "?sv0VBhe:m:x:f:p:a:g:q:Q:i:o:D:R:b:L:S:F:A:G:d:",long_options,NULL)) != -1) {
+ switch (c) {
+ case OPT_PCR_ANNOT: target_annot=optarg; pcr_annot=true; break;
+ case OPT_FILTER_ANNOT: target_annot=optarg; pcr_annot=false; break;
+ case OPT_NO_INDELS: no_indels=true; break;
+ case 'h': usage(stdout); return 0;
+ case 'm': umindepth=ok_atoi(optarg); break;
+ case 'q': min_qual=ok_atoi(optarg); break;
+ case 'o': out_prefix=optarg; break;
+ case 'Q': min_mapq=ok_atoi(optarg); break;
+ case 'V': printf("Version: %s\n", VERSION); exit(0); break;
+ case 'R': repeat_filter=ok_atoi(optarg); break;
+ case 'a': uminadepth=ok_atoi(optarg);break;
+ case 'D': artifact_filter=atof(optarg);break;
+ case 'i': uminidepth=ok_atoi(optarg);break;
+ case 'd': min_diversity=atof(optarg); break;
+ case 'G': min_agreement=atof(optarg); break;
+ case '0': min_qual=0; umindepth=0; min_mapq=0; repeat_filter=0; uminadepth=0; artifact_filter=0; uminidepth=0; min_diversity=0; alpha=1; pct_balance=0; upctqdepth=0; min_agreement=0; break;
+ case 'x': {
+ debug_xchr=optarg;
+ char *p=strrchr(debug_xchr, ':');
+ if (!p) die("Invalid param for -x");
+ *p='\0';
+ debug_xpos=atoi(++p);
+ if (!p) die("Invalid param for -x, need pos");
+ ++debug_level;
+ break;
+ }
+ case OPT_DEBUG_LEVEL:
+ debug_level = atoi(optarg);
+ case 'b': pct_balance=atof(optarg)/100.0; break;
+ case 'B': no_baq=1; break;
+ case 'p': upctqdepth=atof(optarg); break;
+ case 'e': alpha=atof(optarg); break;
+ case 'g': global_error_rate=atof(optarg); break;
+ case 'L': total_locii=ok_atoi(optarg); break;
+ case 'f': ref=optarg; break;
+ case 's': do_stats=1; break;
+ case 'S': read_stats=optarg; break;
+ case 'v': do_varcall=1; break;
+ case 'F': {
+ char *tok, *saved; int i=0;
+ for (tok = strtok_r(optarg, "%", &saved); tok && i < MAX_F; tok = strtok_r(NULL, " ,", &saved)) {
+ format_list[i++]=tok;
+ }
+ format_list[i]=NULL;
+ break;
+ }
+ case '?':
+ if (!optopt) {
+ usage(stdout); return 0;
+ } else if (optopt && strchr("ox", optopt))
+ fprintf (stderr, "Option -%c requires an argument.\n", optopt);
+ else if (isprint(optopt))
+ fprintf (stderr, "Unknown option `-%c'.\n", optopt);
+ else
+ fprintf (stderr, "Unknown option character `\\x%x'.\n", optopt);
+ usage(stderr);
+ return 1;
+ }
+ }
+
+
+ if (!do_stats && !do_varcall) {
+ warn("Specify -s for stats only, or -v to do variant calling\n\n");
+ usage(stderr);
+ return 1;
+ }
+
+ if (out_prefix && do_varcall) {
+ var_f = openordie(string_format("%s.var.tmp", out_prefix).c_str(), "w");
+
+ fprintf(var_f,"%s\t%s\t%s\t%s\t%s\t%s\t%s%s\n","chr", "pos", "ref", "depth", "skip", "pct", (target_annot&&!pcr_annot) ? "target\t" : pcr_annot ? "regions\t" : "", "...");
+
+ varsum_f = openordie(string_format("%s.varsum.tmp", out_prefix).c_str(), "w");
+
+ if (target_annot && !pcr_annot) {
+ // targted only output
+ tgt_var_f = openordie(string_format("%s.tgt.var.tmp", out_prefix).c_str(), "w");
+ fprintf(tgt_var_f,"%s\t%s\t%s\t%s\t%s\t%s\t%s\n","chr", "pos", "ref", "depth", "skip", "pct", "...");
+ }
+
+ if (str_in("vcf", format_list)>=0) {
+ vcf_f = openordie(string_format("%s.vcf.tmp", out_prefix).c_str(), "w");
+ }
+ if (str_in("eav", format_list)>=0) {
+ eav_f = openordie(string_format("%s.eav.tmp", out_prefix).c_str(), "w");
+ }
+
+ if (str_in("cse", format_list)>=0) {
+ check_ref_fai(ref);
+ cse_f = openordie(string_format("%s.cse.tmp", out_prefix).c_str(), "w");
+ faidx.Load(ref);
+ // targted only output
+ if (target_annot && ! pcr_annot)
+ tgt_cse_f = openordie(string_format("%s.tgt.cse.tmp", out_prefix).c_str(), "w");
+ }
+ } else {
+ var_f = stdout;
+ varsum_f = stderr;
+ }
+
+ if (umindepth > minsampdepth) {
+ minsampdepth=umindepth;
+ }
+
+ // set argv to '-' if stdin
+ const char *stdv[3] = {argv[0],"-",NULL};
+ if (!argv[optind]) {
+ argc=2;
+ argv = (char **) stdv;
+ optind=1;
+ }
+
+ char **in=&argv[optind];
+ int in_n = argc-optind;
+
+ // not really random
+ srand(1);
+
+ meminit(vse_rate);
+
+ if (do_stats) {
+ if (out_prefix) {
+ stat_fout = openordie(string_format("%s.stats", out_prefix).c_str(), "w");
+ noise_f = openordie(string_format("%s.noise", out_prefix).c_str(), "w");
+ fprintf(noise_f,"%s\t%s\t%s\t%s\t%s\t%s\n", "depth", "ref", "var", "noise", "qnoise", "qmean");
+ }
+ if (!stat_fout) {
+ if (do_varcall)
+ stat_fout=stderr; // stats to stderr
+ else
+ stat_fout=stdout; // stats to stdout
+ }
+ // do stats by myself
+ PileupManager pman;
+ VarStatVisitor vstat(pman);
+ parse_bams(pman, in_n, in, ref);
+ output_stats(vstat);
+ if (out_prefix) {
+ fclose(stat_fout);
+ fclose(noise_f);
+ noise_f=NULL;
+ stat_fout=NULL;
+ }
+ }
+
+ if (do_varcall && out_prefix) {
+ // run stats again... with new levels if any
+ stat_fout = openordie(string_format("%s.vstats", out_prefix).c_str(), "w");
+ }
+
+ if (read_stats){
+ FILE * f = fopen(read_stats, "r");
+ if (!f) {
+ warn("File %s does not exist, quitting\n", read_stats);
+ exit(1);
+ }
+ line l; meminit(l);
+ char *val;
+
+ double noise_mean=0;
+ double noise_dev=0;
+
+ double qnoise_mean=0;
+ double qnoise_dev=0;
+
+ double vse_mean[T_CNT][T_CNT];
+ double vse_dev[T_CNT][T_CNT];
+
+ meminit(vse_mean);
+ meminit(vse_dev);
+
+ while(read_line(f, l)>0) {
+ if (val=strchr(l.s, '\t')) {
+ *val='\0'; ++val;
+ if (!strcasecmp(l.s, "min depth")) {
+ if (umindepth && umindepth > atoi(val)) {
+ fprintf(varsum_f,"warning\tsampling depth was less than variation depth\n");
+ }
+ if (!umindepth) umindepth=atoi(val);
+ } else if (!strcasecmp(l.s, "min pct qual")) {
+ if (upctqdepth<=0) upctqdepth=atof(val);
+ } else if (!strcasecmp(l.s, "noise mean")) {
+ if (global_error_rate<=0) noise_mean=atof(val);
+ } else if (!strcasecmp(l.s, "noise dev")) {
+ if (global_error_rate<=0) noise_dev=atof(val);
+ } else if (!strcasecmp(l.s, "qnoise mean")) {
+ if (global_error_rate<=0) qnoise_mean=atof(val);
+ } else if (!strcasecmp(l.s, "qnoise dev")) {
+ if (global_error_rate<=0) qnoise_dev=atof(val);
+ } else if (!strcasecmp(l.s, "locii >= min depth")) {
+ if (total_locii<0) total_locii=atoi(val);
+ } else if (!strcasecmp(l.s, "alpha")) {
+ if (alpha<=0) alpha=atof(val);
+ } else if (!strncasecmp(l.s, "vnoise", 6)) {
+ char ref, var; char typ[10];
+ if ( sscanf(l.s, "vnoise %s %c:%c", typ, &ref, &var) == 3) {
+ if (*typ == 'm') {
+ // warn("vse_mean %d, %d : %f\n", b2i(ref),b2i(var), atof(val));
+ vse_mean[b2i(ref)][b2i(var)]=atof(val);
+ } else if (*typ == 'd') {
+ vse_dev[b2i(ref)][b2i(var)]=atof(val);
+ } else {
+ die("Invalid stats format : %s\n", l.s);
+ }
+ }
+ }
+ }
+ }
+
+ int i, j;
+ for (i=0;i<T_CNT;++i) {
+ for (j=0;j<T_CNT;++j) {
+ if (vse_mean[i][j]>0) {
+ vse_rate[i][j] = vse_mean[i][j] + vse_dev[i][j];
+ } else {
+ vse_rate[i][j] = noise_mean+noise_dev;
+ }
+ }
+ }
+
+ if (noise_mean > 0) {
+ global_error_rate=noise_mean+noise_dev;
+ }
+ }
+
+ // for speed, do this once...
+ max_phred = -log10(global_error_rate)*10;
+ meminit(vse_max_phred);
+
+ // init table
+ int i, j;
+ for (i=0;i<T_CNT;++i) {
+ for (j=0;j<T_CNT;++j) {
+ if (vse_rate[i][j]>0) {
+ vse_max_phred[i][j]=-log10(vse_rate[i][j])*10;
+ } else {
+ vse_max_phred[i][j]=max_phred;
+ }
+ // warn("%d %d %f\n", i, j, vse_max_phred[i][j]);
+ }
+ }
+
+ if (total_locii<0) total_locii=DEFAULT_LOCII;
+ if (total_locii==0) total_locii=1; // no adjustment
+
+ if (eav_f) {
+ fprintf(eav_f,"chr\tpos\tref\tdepth\tnum_states\ttop_consensus\ttop_freq\tvar_base\tvar_depth\tvar_qual\tvar_strands\tforward_strands\treverse_strands\t%cval\tdiversity\tagreement\t%s\n", (total_locii>1?'e':'p'), (target_annot&&!pcr_annot) ? "in_target\t" : pcr_annot ? "regions\t" : "");
+ }
+
+ if (do_varcall) {
+ if (umindepth) min_depth=umindepth;
+ if (upctqdepth > 0) pct_qdepth=(double)upctqdepth/100;
+ if (uminadepth>=0) min_adepth=uminadepth;
+ if (uminidepth) min_idepth=uminidepth;
+
+ if (!min_depth || (!pct_depth && !pct_qdepth)) {
+ fprintf(varsum_f,"warning\toutputting all variations, no minimum depths specified\n");
+ }
+
+ if (pct_qdepth==0.0 && !min_adepth) {
+ output_ref=1;
+ }
+
+ fprintf(varsum_f,"version\tvarcall-%s\n", VERSION);
+ fprintf(varsum_f,"min depth\t%d\n", min_depth);
+ fprintf(varsum_f,"min call depth\t%d\n", min_adepth);
+ fprintf(varsum_f,"alpha\t%f\n", alpha);
+ fprintf(varsum_f,"min pct qual\t%d\n", (int)(100*pct_qdepth));
+
+ fprintf(varsum_f,"min balance\t%d\n", (int)(100*pct_balance));
+ fprintf(varsum_f,"artifact filter\t%f\n", artifact_filter);
+ fprintf(varsum_f,"min qual\t%d\n", min_qual);
+ fprintf(varsum_f,"min map qual\t%d\n", min_mapq);
+ fprintf(varsum_f,"error rate\t%f\n", global_error_rate);
+ fprintf(varsum_f,"locii used for adjustment\t%d\n", total_locii);
+
+ PileupManager pman;
+
+ VarCallVisitor vcall(pman);
+ VarStatVisitor vstat;
+
+ if (stat_fout) {
+ vstat.SetManager(pman);
+ }
+
+ if (target_annot) {
+ pman.LoadAnnot(target_annot);
+ }
+
+ if (cse_f) {
+ pman.WinMax=21;
+ } else if (repeat_filter > 0) {
+ fprintf(varsum_f,"homopolymer filter\t%d\n", repeat_filter);
+ pman.WinMax=repeat_filter+repeat_filter+3;
+ } else {
+ pman.WinMax=5;
+ }
+
+ if (vcf_f) {
+ // print VCF header
+ fprintf(vcf_f, "%s\n", "##fileformat=VCFv4.1");
+ }
+ if (cse_f) {
+ fprintf(cse_f, "Chr\tPos\tRef\tA\tC\tG\tT\ta\tc\tg\tt\tAq\tCq\tGq\tTq\taq\tcq\tgq\ttq\tRefAllele\tAd\tCd\tGd\tTd\tAg\tCg\tGg\tTg%s\n", pcr_annot ? "\tRegions" : "");
+ }
+
+ parse_bams(pman, in_n, in, ref);
+
+ if (pman.InputType == 'B') {
+ fprintf(varsum_f,"baq correct\t%s\n", (no_baq?"no":"yes"));
+ }
+ fprintf(varsum_f,"locii\t%d\n", vcall.Locii);
+ fprintf(varsum_f,"hom calls\t%d\n", vcall.Homs);
+ fprintf(varsum_f,"het calls\t%d\n", vcall.Hets);
+ fprintf(varsum_f,"locii below depth\t%d\n", vcall.SkippedDepth);
+ fprintf(varsum_f,"locii outside annot\t%d\n", vcall.SkippedAnnot);
+
+ if (out_prefix) {
+ // close it all
+ fclose(var_f);
+ fclose(varsum_f);
+ if (vcf_f) fclose(vcf_f);
+ if (eav_f) fclose(eav_f);
+ if (noise_f) fclose(noise_f);
+ if (cse_f) fclose(cse_f);
+ if (tgt_var_f) fclose(tgt_var_f);
+ if (tgt_cse_f) fclose(tgt_cse_f);
+
+ rename_tmp(string_format("%s.var.tmp", out_prefix));
+ rename_tmp(string_format("%s.varsum.tmp", out_prefix));
+
+ if (vcf_f) rename_tmp(string_format("%s.vcf.tmp", out_prefix));
+ if (eav_f) rename_tmp(string_format("%s.eav.tmp", out_prefix));
+ if (cse_f) rename_tmp(string_format("%s.cse.tmp", out_prefix));
+
+ if (tgt_var_f) rename_tmp(string_format("%s.tgt.var.tmp", out_prefix));
+ if (tgt_cse_f) rename_tmp(string_format("%s.tgt.cse.tmp", out_prefix));
+
+ if (stat_fout)
+ output_stats(vstat);
+ }
+ }
+}
+
+void rename_tmp(std::string f) {
+ std::string notmp = f;
+ size_t pos = notmp.find(".tmp");
+ if (pos >= 0) {
+ notmp.replace(notmp.find(".tmp"),4,"");
+ rename(f.c_str(),notmp.c_str());
+ }
+}
+
+// normal distribution
+double qnorm(double q) {
+ if(q == .5)
+ return 0;
+
+ q = 1.0 - q;
+
+ double p = (q > 0.0 && q < 0.5) ? q : (1.0 - q);
+ double t = sqrt(log(1.0 / pow(p, 2.0)));
+
+ double c0 = 2.515517;
+ double c1 = 0.802853;
+ double c2 = 0.010328;
+
+ double d1 = 1.432788;
+ double d2 = 0.189269;
+ double d3 = 0.001308;
+
+ double x = t - (c0 + c1 * t + c2 * pow(t, 2.0)) /
+ (1.0 + d1 * t + d2 * pow(t, 2.0) + d3 * pow(t, 3.0));
+
+ if(q > .5)
+ x *= -1.0;
+
+ return x;
+}
+
+double pnorm(double x)
+{
+ // constants
+ double a1 = 0.254829592;
+ double a2 = -0.284496736;
+ double a3 = 1.421413741;
+ double a4 = -1.453152027;
+ double a5 = 1.061405429;
+ double p = 0.3275911;
+
+ // Save the sign of x
+ int sign = 1;
+ if (x < 0)
+ sign = -1;
+ x = fabs(x)/sqrt(2.0);
+
+ // A&S formula 7.1.26
+ double t = 1.0/(1.0 + p*x);
+ double y = 1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x);
+
+ return 0.5*(1.0 + sign*y);
+}
+
+void parse_bams(PileupManager &v, int in_n, char **in, const char *ref) {
+
+ if (!in_n) {
+ die("No input files, quitting\n");
+ }
+
+ int i, bam_n=0;
+ for (i=0;i<in_n;++i) {
+ if (!strcmp(fext(in[i]), ".bam")) {
+ ++bam_n;
+ }
+ }
+
+ if (bam_n != in_n) {
+ if (bam_n > 0) {
+ die("Can't mix bams and other input files\n");
+ } else {
+ if (in_n > 1) {
+ die("Can't handle multiple pileups... TODO\n");
+ } else {
+ warn("input\t%d pileup\n", in_n);
+ v.InputType='P';
+ }
+ }
+ } else {
+ warn("input\t%d bam\n", bam_n);
+ v.InputType='B';
+ }
+
+ int is_popen = 0;
+ FILE *fin;
+
+ if (bam_n) {
+ check_ref_fai(ref);
+
+ const char *nobaq = no_baq ? "-B" : "";
+
+ string mpil_cmd = string_format("samtools mpileup -Q 0 -d 100000 %s -f '%s'", nobaq, ref);
+
+ int i;
+ for (i=0;i<in_n;++i) {
+ mpil_cmd += " '";
+ mpil_cmd += in[i];
+ mpil_cmd += "' ";
+ }
+
+ warn("command\t%s\n", mpil_cmd.c_str());
+
+ fin = popen(mpil_cmd.c_str(), "r");
+ if (!fin)
+ exit(1);
+
+ is_popen = 1;
+ } else {
+ if (!strcmp(in[0], "-")) {
+ fin=stdin;
+ } else {
+ if (!strcmp(fext(in[0]), ".gz")) {
+ string gunz = string_format("gunzip -c '%s'", in[0]);
+ fin = popen(gunz.c_str(), "r");
+ is_popen = 1;
+ } else {
+ fin = fopen(in[0], "r");
+ }
+ if (!fin) {
+ warn("%s: %s", in[0], strerror(errno));
+ exit(1);
+ }
+ }
+ }
+
+ line l; meminit(l);
+ g_lineno=0;
+ if (fin) {
+ while(read_line(fin, l)>0) {
+ ++g_lineno;
+ // chr 2 G 6 ^9,^+.^*,^2,^&.^&, &.'&*- 9+*2&& 166,552,643,201,299,321
+ v.Parse(l.s);
+ }
+ v.Finish();
+
+ if (is_popen) pclose(fin); else fclose(fin);
+ }
+
+ if (g_lineno == 0) {
+ warn("No data in pileup, quitting\n");
+ exit(1);
+ }
+}
+
+
+bool hitoloint (int i,int j) { return (i>j);}
+
+class q_calls {public: q_calls() {meminit(call);} int call[8];};
+vector<int> depthbypos;
+vector<q_calls> depthbyposbycall;
+typedef struct {
+ string Chr;
+ int Beg;
+ int End;
+} ChrRange;
+
+
+char *_dat[256];
+inline void PileupSummary::Parse(char *line, PileupReads &rds, tidx *adex, char atype) {
+
+ int dsize=split(_dat, line, '\t');
+
+ if (dsize < 6) {
+ warn("Can't read pileup : %d fields, need 6 columns, line %d\n", (int) dsize, g_lineno);
+ exit(1);
+ }
+
+ const char * p_qual=_dat[5];
+
+ Chr=_dat[0];
+ Pos=atoi(_dat[1]);
+ Base=*(_dat[2]);
+ Depth = atoi(_dat[3]);
+ SkipDupReads = 0;
+ SkipN = 0;
+ SkipAmp = 0;
+ SkipMinQual = 0;
+ SkipMinMapq = 0;
+ RepeatCount = 0;
+ RepeatBase = '\0';
+ NumReads = 0;
+ InTarget = 0;
+ Regions = 0;
+
+ int i;
+
+ const char *cur_p = _dat[4];
+
+ list<Read>::iterator read_i = rds.ReadList.begin();
+
+ memset(depthbypos.data(),0,depthbypos.size()*sizeof(depthbypos[0]));
+ memset(depthbyposbycall.data(),0,depthbyposbycall.size()*sizeof(depthbyposbycall[0]));
+
+ int eor=0;
+
+ // list of amplicon range objects
+ vector<ChrRange> amps;
+
+ if (pcr_annot && adex) {
+ string s = adex->lookup(Chr.data(), Pos + (atype=='b' ? -1 : 0), "^");
+ if (s.length()) {
+ vector<char *> a=split((char *)s.data(), '^');
+ Regions=a.size()-1;
+ // skip leading entry...
+ for(i=1;i<a.size();++i) {
+ vector<char *> f=split(a[i], '\t');
+ // create new range object
+ if (f.size() >= 3) {
+ ChrRange amp;
+ amp.Chr=f[0];
+ amp.Beg=atoi(f[1]);
+ amp.End=atoi(f[2]);
+ if (atype=='b') {
+ ++amp.Beg;
+ }
+ if ((amp.End < amp.Beg) || !amp.Beg) {
+ die("Annotation file must be in bed or gtf format, or at least a 1-based inclusive set of ranges\n");
+ }
+// warn("AMP: %s:%d-%d\n",amp.Chr.data(),amp.Beg,amp.End);
+ amps.push_back(amp);
+ }
+ }
+ }
+ }
+
+ if (debug_xpos) {
+ if (Pos == debug_xpos && !strcmp(debug_xchr,Chr.data())) {
+ fprintf(stderr,"depth: %d, meanreadlen: %f\n", Depth, rds.MeanReadLen());
+ }
+ }
+
+ int meanreadlen = rds.MeanReadLen();
+ int maxdepthbypos = meanreadlen <= 0 ? 10 : max(10, round(10.0 * artifact_filter * (Depth/(double)meanreadlen)));
+
+ Calls.clear();
+
+ int j;
+ int pia_len=0;
+ for (i=0;i<Depth;++i,++read_i) {
+ bool sor=0;
+
+ if (*cur_p == '^') {
+ sor=1;
+ ++cur_p;
+ Read x;
+ x.MapQ = *cur_p-phred;
+ x.Pos = Pos;
+ ++cur_p;
+ if (read_i != rds.ReadList.end()) {
+ ++read_i;
+ }
+ read_i=rds.ReadList.insert(read_i,x);
+ meanreadlen = rds.MeanReadLen();
+ }
+
+ if (read_i == rds.ReadList.end()) {
+ warn("warning\tread start without '^', partial pileup: '%s'\n", cur_p);
+ Read x;
+ x.MapQ = 0;
+ x.Pos = -1;
+ read_i=rds.ReadList.insert(read_i,x);
+ meanreadlen = rds.MeanReadLen();
+ }
+
+
+ // position of read relative to my position
+ int pia = read_i->Pos >= 0 ? Pos-read_i->Pos : 0;
+
+ pia = pia % (meanreadlen*2);
+
+ if (pia >= depthbypos.size()) {
+ depthbypos.resize(pia+1);
+ depthbyposbycall.resize(pia+1);
+ }
+ if (pia >= pia_len)
+ pia_len=pia+1;
+
+ depthbypos[pia]++;
+
+ if (sor)
+ ++NumReads;
+
+ char q = p_qual[i]-phred; // qual char
+ char mq = read_i->MapQ;
+ char o = *cur_p; // orig call
+ char c = toupper(o); // uppercase/ref
+ bool is_ref = 0;
+
+ if (o == '.' || o == ',') {
+ c = Base; // ref instead
+ is_ref = 1;
+ }
+
+ if (o == '>' || o == '<') {
+ /// splice! don't add to SEQ or depth, etc!
+ c = 'N'; // no call
+ is_ref = 1;
+ }
+
+ bool skip = 0;
+ bool ampok = !pcr_annot || !adex;
+
+ if (!ampok) {
+ for (j=0;j<amps.size();++j) {
+ int apos = read_i->Pos + meanreadlen + 1;
+ int bpos = read_i->Pos + meanreadlen;
+ int cpos = read_i->Pos + meanreadlen - 1;
+ if (apos == amps[j].End || bpos == amps[j].End || cpos == amps[j].End) {
+ ampok=1;
+ }
+ if (read_i->Pos == amps[j].Beg) {
+ ampok=1;
+ break;
+ }
+ }
+ }
+
+
+ if (debug_xpos) {
+ if (debug_level >= 3) {
+ if (Pos == debug_xpos && !strcmp(debug_xchr,Chr.data())) {
+ fprintf(stderr, "DEBUG: PIA: %d, DBP: %d, rrou: %d, nonRR: %f, maxdbp: %d, filt: %d, f1: %d, f2: %d\n", pia,
+ depthbypos[pia], max(1,rand_round(0.5 + artifact_filter * (Depth/rds.MeanReadLen()))), artifact_filter * (Depth/rds.MeanReadLen()),
+ maxdepthbypos, (10*(depthbypos[pia]-1))+(i%10), ((10*(depthbypos[pia]-1))+(i%10)) > maxdepthbypos, depthbypos[pia] > max(1,rand_round(0.5+artifact_filter * (Depth/rds.MeanReadLen()))) );
+ }
+ }
+ }
+
+
+// before dup filtering
+
+ int call_index = b2i(c);
+ depthbyposbycall[pia].call[call_index]++;
+
+ if (!ampok) {
+// warn("SKIP: %d-%d, %c\n", read_i->Pos, (int)(read_i->Pos+rds.MeanReadLen()), o);
+ ++SkipAmp;
+ skip=1;
+ } else if (c == 'N') {
+ ++SkipN;
+ skip=1;
+ // ok, instead of rolling a random number, even things out
+ } else if (mq < min_mapq) {
+ ++SkipMinMapq;
+ skip=1;
+ } else if (q < min_qual) {
+ ++SkipMinQual;
+ skip=1;
+ } else if (artifact_filter > 0 && (((10*(depthbypos[pia]-1))+(i%10)) > maxdepthbypos )) {
+ ++SkipDupReads;
+ skip=1;
+ } else {
+ int j = call_index;
+
+ if (call_index >= Calls.size()) {
+ int was = Calls.size();
+ Calls.resize(j+1);
+ int t; for (t=was;t<=j;++t) {
+ Calls[t].base=i2b(t);
+ }
+ }
+ if (is_ref)
+ Calls[j].is_ref = 1;
+
+ if ( o == ',' || o == 'a' || o == 'c' || o == 't' || o == 'g' ) {
+ ++Calls[j].rev;
+ Calls[j].rev_q += q;
+ } else if ( c != 'N' ) {
+ ++Calls[j].fwd;
+ Calls[j].fwd_q += q;
+ }
+
+ Calls[j].qual+=q;
+ Calls[j].mn_qual+=min(mq,q);
+ Calls[j].mq_ssq+=mq*mq;
+ Calls[j].mq_sum+=mq;
+ Calls[j].qual_ssq+=q*q;
+/*
+ if (pia <= read_tail_len || (rds.MeanReadLen()-pia) <= read_tail_len) {
+ if ( o == ',' || o == 'a' || o == 'c' || o == 't' || o == 'g' ) {
+ ++Calls[j].tail_rev;
+ } else {
+ ++Calls[j].tail_fwd;
+ }
+ }
+*/
+
+ if (vcf_f) {
+ if (mq == 0)
+ Calls[j].mq0++;
+ }
+ }
+
+ if (c == '-' || c == '+') {
+ warn("invalid pileup, at '%s', indel not attached to read?\n", cur_p);
+ } else {
+ if (c != '*' && c != 'N')
+ read_i->Seq += c;
+ ++cur_p;
+ }
+
+ if (*cur_p == '+' || *cur_p == '-') {
+ c = *cur_p;
+ char *end_p;
+ int len = strtol(++cur_p, &end_p, 10);
+ string ins_seq(end_p, len);
+ to_upper(ins_seq);
+ read_i->Seq += ins_seq;
+ if (!skip) {
+ int j = b2i(c);
+ if (j >= Calls.size()) {
+ int was = Calls.size();
+ Calls.resize(j+1);
+ int t; for (t=was;t<=j;++t) {
+ Calls[t].base=i2b(t);
+ }
+ }
+ if ( o == ',' || o == 'a' || o == 'c' || o == 't' || o == 'g' ) {
+ ++Calls[j].rev;
+ Calls[j].rev_q+=q;
+ } else {
+ ++Calls[j].fwd;
+ Calls[j].fwd_q+=q;
+ }
+ Calls[j].qual+=q;
+ Calls[j].mn_qual+=min(q, mq);
+ Calls[j].qual_ssq+=q*q;
+ Calls[j].mq_ssq+=mq*mq;
+ Calls[j].mq_sum+=mq;
+ Calls[j].seqs.push_back(ins_seq);
+ }
+ cur_p=end_p+len;
+ }
+
+ if (*cur_p == '$') {
+ if (read_i->MapQ > -1) {
+ rds.TotReadLen+=read_i->Seq.size();
+ rds.ReadBin.push_back(*read_i);
+ if (rds.ReadBin.size() > min(1000,Depth*2)) {
+ rds.TotReadLen-=rds.ReadBin.front().Seq.size();
+ rds.ReadBin.pop_front();
+ }
+ }
+// printf("%d\t%s\n", read_i->MapQ, read_i->Seq.c_str());
+ read_i=rds.ReadList.erase(read_i);
+ meanreadlen = rds.MeanReadLen();
+ --read_i;
+ ++cur_p;
+ ++eor;
+ }
+ }
+
+ if ((Depth-eor) != rds.ReadList.size()) {
+ warn("warning\tdepth is %d, but read list is: %d\n", Depth, (int) rds.ReadList.size());
+ }
+
+ if (*cur_p == '-' || *cur_p == '+') {
+ char *end_p;
+ int len = strtol(++cur_p, &end_p, 10);
+ // keep this
+ string idl(end_p, len);
+ cur_p=end_p+len;
+ }
+
+ if (*cur_p) {
+ warn("Failed to parse pileup %s\n", _dat[4]);
+ exit(1);
+ }
+
+ Depth=0;
+ for (i=0;i<5 && i < Calls.size();++i) { // total depth (exclude inserts for tot depth, otherwise they are double-counted)
+ Depth+=Calls[i].depth();
+ }
+
+ if (debug_xpos) {
+ if (Pos == debug_xpos && !strcmp(debug_xchr,Chr.data())) {
+ fprintf(stderr,"xpos-max-per-pos\t%f\n", maxdepthbypos/10.0);
+ fprintf(stderr,"xpos-mean-readlen\t%f\n", rds.MeanReadLen());
+ fprintf(stderr,"xpos-depth-list\t");
+ for (i=0;i<pia_len;++i) {
+ fprintf(stderr,"%d,", depthbypos[i]);
+ }
+ fprintf(stderr,"\n");
+
+ if (debug_level >= 2) {
+ for (i=0;i < Calls.size();++i) { // total depth (exclude inserts for tot depth, otherwise they are double-counted)
+ if (Calls[i].depth()>0) {
+ fprintf(stderr,"xpos-depth-list-%c\t",Calls[i].base);
+ for (j=0;j<depthbyposbycall.size();++j) {
+ fprintf(stderr,"%d,", depthbyposbycall[j].call[i]);
+ }
+ fprintf(stderr,"\n");
+ }
+ }
+ }
+ }
+ }
+
+// bool quit=0;
+ for (i=0;i < Calls.size();++i) { // total depth (exclude inserts for tot depth, otherwise they are double-counted)
+ if (Calls[i].depth()>0) {
+ double expected=Calls[i].depth()/meanreadlen;
+ double all_pct=Calls[i].depth()/(double)Depth;
+ double p2=(Calls[i].depth()+2*all_pct*pia_len)/(double)(Depth+2*pia_len);
+ double total_v=0;
+ double diff;
+ double moment_den=0;
+ double p1;
+ double pdiff;
+ double cube_v=0;
+ int j;
+
+/*
+ if(Depth>100 && Calls[i].depth() < 100) {
+ printf("exp: %g, depth: %d, cdep: %d, p2: %g\nv=c(", expected, Depth, Calls[i].depth(), p2);
+ for (j=0;j<depthbyposbycall.size();++j) {
+ printf("%d,", depthbyposbycall[j].call[i]);
+ }
+ printf(")\nd=c(");
+ for (j=0;j<depthbyposbycall.size();++j) {
+ printf("%d,", depthbypos[j]);
+ }
+ printf(")\n");
+ }
+
+*/
+ int poscnt=0;
+ for (j=0;j<pia_len;++j) {
+ // diversity calc
+ diff=floor(fabs(depthbyposbycall[j].call[i]-expected));
+ total_v+=diff*diff;
+ if (depthbyposbycall[j].call[i] > 0) {
+ ++poscnt;
+ }
+
+ p1=((depthbyposbycall[j].call[i]+all_pct*2)/((double)depthbypos[j]+2));
+ pdiff=fabs(p1-p2);
+/*
+ if (Pos == debug_xpos && !strcmp(debug_xchr,Chr.data())) {
+ warn("base:%c, depth:%d, dbc:%d, p1: %g, pdiff: %g, maxc: %g, all_pct: %g\n", Calls[i].base, depthbypos[j], depthbyposbycall[j].call[i], p1, pdiff, max(depthbypos[j]*pdiff*pdiff*pdiff-all_pct,0), all_pct);
+ }
+*/
+ cube_v += max(depthbypos[j]*pdiff*pdiff*pdiff-all_pct,0);
+ }
+ double shift_v = max(0, total_v-2*Calls[i].depth());
+ Calls[i].diversity = max(0,1-shift_v/max(1,(pow(Calls[i].depth()-expected,2)-2*Calls[i].depth())));
+ if (poscnt==1) Calls[i].diversity = 0;
+
+ double wt4_od=pow(cube_v/((double)(Depth+2*pia_len)),1.0/3.0)/all_pct;
+ Calls[i].agreement = max(0,1-wt4_od);
+
+ if (debug_xpos) {
+ if (Pos == debug_xpos && !strcmp(debug_xchr,Chr.data())) {
+ if (debug_level > 2) warn("base:%c, cube_v:%g, deno:%g\n", Calls[i].base, cube_v, ((double)(Depth+2*pia_len)));
+ fprintf(stderr,"xpos-agree-%c\t%g\n",Calls[i].base, Calls[i].agreement);
+ fprintf(stderr,"xpos-diver-%c\t%g\n",Calls[i].base, Calls[i].diversity);
+ }
+ }
+
+/*
+ if(Depth>100 && Calls[i].depth() < 100) {
+ printf("num %g, den %g\n", (p2*(1-p2)*(Depth+2*pia_len)), moment_den);
+ printf(", Agree: %g", Calls[i].agreement);
+ printf(", Divers: %g\n", Calls[i].diversity);
+ quit=1;
+ }
+*/
+ }
+ }
+// if(quit) die("\nDIED\n");
+
+ TotQual=0;
+ for (i=0;i<5 && i < Calls.size();++i) { // total depth (exclude inserts for tot depth, otherwise they are double-counted)
+ TotQual+=Calls[i].qual;
+ }
+}
+
+PileupSummary JunkSummary;
+
+inline void PileupManager::Parse(char *dat) {
+ Pileup.Parse(dat, Reads, UseAnnot ? &AnnotDex : NULL, AnnotType);
+ Visit(Pileup);
+}
+
+void PileupManager::Visit(PileupSummary &p) {
+
+ if (WinMax < 3) {
+ // no real window ... just go straight
+ VisitX(p, -1);
+ return;
+ }
+
+ if (p.Base != '-' && p.Base != '@') {
+ if (Win.size() && (Win.back().Pos != (p.Pos - 1) )) {
+ if (Win.back().Pos < p.Pos && ((p.Pos - Win.back().Pos) <= (WinMax/2))) {
+ while (Win.back().Pos < (p.Pos - 1)) {
+ // visit/pop, add a placeholder
+ JunkSummary.Base = '-';
+ JunkSummary.Pos = Win.back().Pos + 1;
+ Visit(JunkSummary);
+ }
+ } else {
+ while (Win.size() && Win[WinMax/2].Base != '@') {
+ // visit/pop, but don't add anything, until it's empty
+ JunkSummary.Base = '@';
+ JunkSummary.Pos = 0;
+ Visit(JunkSummary);
+ }
+ }
+ }
+ }
+
+ // initialize the window with nothing, if it's not full
+ while (Win.size() < WinMax) {
+ JunkSummary.Base = '@';
+ JunkSummary.Pos = 0;
+ Win.push_back(JunkSummary);
+ }
+
+ Win.push_back(p);
+
+ //debug("Visit: %d\n", p.Pos);
+
+ if (Win.size() > WinMax) // queue too big? pop
+ Win.pop_front();
+
+ int i;
+ int lrc=0,rrc=0; // left repeat count, right repeat count
+ char lrb, rrb; // left repeat base...
+ int vx;
+
+ if (Win.size() < WinMax) { // small window? look at leading edge only
+ return;
+ } else {
+ vx = WinMax/2; // larger window? look at midpoint
+ }
+
+ if (Win[vx].Base == '-' || Win[vx].Base == '@')
+ return;
+
+ if (vx > 1) { // look left
+ lrb = Win[vx-1].Base;
+ for (i=vx-2; i >= 0; --i) { // increment repeat count
+ if (Win[i].Base == lrb)
+ ++lrc;
+ else
+ break;
+ }
+ }
+ if (vx < (Win.size()-2)) {
+ rrb = Win[vx+1].Base;
+ for (i=vx+2; i < Win.size(); ++i) {
+ if (Win[i].Base == rrb)
+ ++rrc;
+ else
+ break;
+ }
+ }
+
+ // repeat counts are now 1-based, not 0-based
+ ++lrc;
+ ++rrc;
+
+ // maximum repeat count and associated base
+ if (lrb == rrb ) {
+ Win[vx].RepeatCount = lrc+rrc;
+ Win[vx].RepeatBase = lrb;
+ } else if (lrc > rrc) {
+ Win[vx].RepeatCount = lrc;
+ Win[vx].RepeatBase = lrb;
+ } else {
+ Win[vx].RepeatCount = rrc;
+ Win[vx].RepeatBase = rrb;
+ }
+
+ if (debug_xpos) {
+ if (Win[vx].Pos == debug_xpos && !strcmp(debug_xchr,Win[vx].Chr.data())) {
+ fprintf(stderr,"xpos-window\t");
+ for (i=0;i<Win.size();++i) {
+ fprintf(stderr,"%c", Win[i].Base);
+ }
+ fprintf(stderr,"\n");
+ }
+ }
+
+ double drms = 0;
+ if (vx < Win.size()-1) {
+ int i;
+ int dminus = b2i('-');
+ int dstar = b2i('*');
+
+ if (Win[vx].Calls.size() > dminus && Win[vx].Calls[dminus].depth() > 0) {
+ if (Win[vx+1].Calls.size() > dstar && Win[vx+1].Calls[dstar].depth() > 0) {
+ // baq adjustment works at the 'star' not at the 'indel', so adjust qual using the next locus
+ double adj=Win[vx+1].Calls[dstar].qual_rms()/(double)Win[vx].Calls[dminus].qual_rms();
+ if (debug_xpos) {
+ if (Win[vx].Pos == debug_xpos && !strcmp(debug_xchr,Win[vx].Chr.data())) {
+ fprintf(stderr,"xpos-adj-qual\t%d to %d (%f)\n", Win[vx].Calls[dminus].qual_rms(),Win[vx+1].Calls[dstar].qual_rms(), adj);
+ }
+ }
+ Win[vx].Calls[dminus].qual *= adj;
+ Win[vx].Calls[dminus].qual_ssq *= adj;
+ } else {
+ vcall none;
+ if (debug_xpos) {
+ if (Win[vx].Pos == debug_xpos && !strcmp(debug_xchr,Win[vx].Chr.data())) {
+ fprintf(stderr,"xpos-skip-del-qual\t%d\n", Win[vx].Calls[dminus].depth());
+ }
+ }
+ Win[vx].Calls[dminus] = none;
+ }
+ }
+ }
+
+ VisitX(Win[vx], vx);
+}
+
+void PileupManager::Finish() {
+ // finish out the rest of the pileup, with the existing window
+ int vx = WinMax/2+1;
+ while (vx < Win.size()) {
+ ///debug("Finish: %d\n", Win[vx].Pos);
+ VisitX(Win[vx++], vx);
+ }
+ int i;
+ for (i=0;i<Kids.size();++i) {
+ Kids[i]->Finish();
+ }
+}
+
+void PileupManager::VisitX(PileupSummary &p, int windex) {
+
+ WinDex=windex;
+
+ if (UseAnnot) {
+ // index lookup only.... not string lookup
+ const std::vector <long int> * v = &(AnnotDex.lookup(p.Chr.data(), p.Pos + (AnnotType=='b' ? -1 : 0)));
+ if (v && v->size()) {
+ p.InTarget=1;
+ }
+ }
+
+ if (no_indels) {
+ if (p.Calls.size() > 4) {
+ p.Calls.resize(4);
+ }
+ }
+
+ int i;
+ for (i=0;i<Kids.size();++i) {
+ Kids[i]->Visit(p);
+ }
+}
+
+void VarCallVisitor::Visit(PileupSummary &p) {
+ //debug("VisitX: %d\n", p.Pos);
+
+ if (debug_xpos) {
+ if (p.Pos != debug_xpos)
+ return;
+ if (strcmp(debug_xchr,p.Chr.data()))
+ return;
+ }
+
+ if (pcr_annot) {
+ if (!p.InTarget) {
+ if (debug_xpos) {
+ fprintf(stderr,"xpos-skip-annot\t1\n");
+ }
+ ++SkippedAnnot;
+ return;
+ }
+ }
+
+ if (p.Depth < min_depth) {
+ if (debug_xpos) {
+ fprintf(stderr,"xpos-skip-depth\t%d < %d\n",p.Depth, min_depth);
+ fprintf(stderr,"xpos-skip-dup\t%d\n",p.SkipDupReads);
+ fprintf(stderr,"xpos-skip-n\t%d\n",p.SkipN);
+ fprintf(stderr,"xpos-skip-amp\t%d\n",p.SkipAmp);
+ fprintf(stderr,"xpos-skip-mapq\t%d\n",p.SkipMinMapq);
+ fprintf(stderr,"xpos-skip-qual\t%d\n",p.SkipMinQual);
+ exit(0);
+ }
+ ++SkippedDepth;
+ return;
+ }
+
+ int ins_fwd = p.Calls.size() > 6 ? p.Calls[6].fwd : 0;
+ int ins_rev = p.Calls.size() > 6 ? p.Calls[6].rev : 0;
+
+ int i;
+ if (p.Calls.size() > 6)
+ p.Calls.resize(7); // toss N's before sort
+
+ static char regions[64] = "";
+ if (pcr_annot) {
+ sprintf(regions, "\t%d", p.Regions);
+ }
+
+ // OUTPUT CSE BEFORE REORDRED BASES!
+ if (cse_f) {
+ if (p.Calls.size() < 4)
+ p.Calls.resize(4); // cse needs 4 calls
+
+ Manager->FillReference(21);
+
+ // cse format... no need to sort or call anything
+ if (p.Calls[T_A].depth()||p.Calls[T_C].depth()|| p.Calls[T_G].depth()|| p.Calls[T_T].depth()) {
+ // silly 15 decimals to match R's default output ... better off with the C default
+ static char cse_buf[8192];
+ #define MEANQ(base,dir) (p.Calls[base].dir?(p.Calls[base].dir##_q/(double)p.Calls[base].dir):0)
+ sprintf(cse_buf,"%s\t%d\t%c\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%g\t%g\t%g\t%g\t%g\t%g\t%g\t%g\t%s\t%g\t%g\t%g\t%g\t%g\t%g\t%g\t%g%s\n",p.Chr.c_str(), p.Pos, toupper(p.Base)
+ , p.Calls[T_A].fwd, p.Calls[T_C].fwd, p.Calls[T_G].fwd, p.Calls[T_T].fwd
+ , p.Calls[T_A].rev, p.Calls[T_C].rev, p.Calls[T_G].rev, p.Calls[T_T].rev
+ , MEANQ(T_A,fwd), MEANQ(T_C,fwd), MEANQ(T_G,fwd), MEANQ(T_T,fwd)
+ , MEANQ(T_A,rev), MEANQ(T_C,rev), MEANQ(T_G,rev), MEANQ(T_T,rev)
+ , Manager->Reference.data()
+ , p.Calls[T_A].diversity
+ , p.Calls[T_C].diversity
+ , p.Calls[T_G].diversity
+ , p.Calls[T_T].diversity
+ , p.Calls[T_A].agreement
+ , p.Calls[T_C].agreement
+ , p.Calls[T_G].agreement
+ , p.Calls[T_T].agreement
+ , regions
+ );
+ fputs(cse_buf, cse_f);
+ // cse requires separate output for on-target (instead of another column)
+ if (tgt_cse_f && p.InTarget) {
+ fputs(cse_buf, tgt_cse_f);
+ }
+ }
+ }
+
+ sort(p.Calls.begin(), p.Calls.end(), hitolocall);
+
+ int need_out = -1;
+ int skipped_balance=0;
+ int skipped_alpha=0;
+ int skipped_indel=0;
+ int skipped_tail_hom=0;
+ int skipped_depth=0;
+ int skipped_repeat=0;
+ int skipped_diversity=0;
+ int skipped_agreement=0;
+
+ vector<vfinal> final_calls;
+ for (i=0;i<p.Calls.size();++i) { // all calls
+ // printf("CALL TOP: depth:%d base: %c, pd: %d, calls: %d\n", (int) p.Calls[i].depth(), p.Calls[i].base, p.Depth, (int) p.Calls.size());
+
+ double pct = (double) p.Calls[i].depth()/p.Depth;
+ double qpct = (double) p.Calls[i].qual/p.TotQual;
+
+ if (!p.Calls[i].base)
+ continue;
+
+ if (!p.Calls[i].depth())
+ continue;
+
+ double bpct = (double) min(p.Calls[i].fwd,p.Calls[i].rev)/p.Calls[i].depth();
+
+ // REBALANCE READS.... CUTTING OFF HIGH COLUMNS
+ if (pct >= pct_depth && qpct >= pct_qdepth && (p.Calls[i].depth() >= min_adepth)) {
+ if (bpct < pct_balance) {
+ int fwd_adj=0, rev_adj=0;
+ // f=b*(f+r); r=f/b-f; adj=r-(f/b-f)
+ if (p.Calls[i].fwd < p.Calls[i].rev) {
+ rev_adj = (int) p.Calls[i].rev - ( p.Calls[i].fwd/pct_balance - p.Calls[i].fwd );
+ } else {
+ fwd_adj = (int) p.Calls[i].fwd - ( p.Calls[i].rev/pct_balance - p.Calls[i].rev );
+ }
+ if (fwd_adj + rev_adj > 1 && bpct > 0) {
+ // adjust call down
+ p.Calls[i].qual -= (rev_adj+fwd_adj)*(p.Calls[i].qual/p.Calls[i].depth());
+ p.Calls[i].mq_sum -= (rev_adj+fwd_adj)*(p.Calls[i].mq_sum/p.Calls[i].depth());
+ p.Calls[i].qual_ssq -= (rev_adj+fwd_adj)*(p.Calls[i].qual_ssq/p.Calls[i].depth());
+ p.Calls[i].mq_ssq -= (rev_adj+fwd_adj)*(p.Calls[i].mq_ssq/p.Calls[i].depth());
+ p.Calls[i].rev -= rev_adj;
+ p.Calls[i].fwd -= fwd_adj;
+ skipped_balance+=rev_adj+fwd_adj;
+
+ // fixed bpct
+ bpct = (double) min(p.Calls[i].fwd,p.Calls[i].rev)/p.Calls[i].depth();
+ } else {
+ // it's junk anyway
+ }
+
+ // fix depths after adjustment!
+ pct = (double) p.Calls[i].depth()/p.Depth;
+ qpct = (double) p.Calls[i].qual/p.TotQual;
+ }
+ }
+
+ if (pct >= pct_depth && qpct >= pct_qdepth && (p.Calls[i].depth() >= min_adepth)) {
+ // balance is meaningless at low depths
+ if ((bpct >= pct_balance) || (p.Calls[i].depth()<4)) {
+ // reads come from diverse positions
+ if (p.Calls[i].diversity >= min_diversity) {
+ if (p.Calls[i].agreement >= min_agreement) {
+ if (p.Calls[i].base == '+' || p.Calls[i].base == '-') {
+ // yuk ... time to think about a possible indel call
+ if (p.Calls[i].depth() >= min_idepth) {
+ // should really pick more than 1
+ // but need to allow "similar" indels to pile up
+ // should group into distinct bins, using some homology thing
+ sort(p.Calls[i].seqs.begin(), p.Calls[i].seqs.end());
+ string prev, maxs;
+ int pcnt=0, maxc=0, j;
+ for (j=0;j<p.Calls[i].seqs.size();++j) {
+ if (prev == p.Calls[i].seqs[j]) {
+ ++pcnt;
+ } else {
+ if (pcnt > maxc) {
+ maxs=prev;
+ maxc=pcnt;
+ }
+ prev=p.Calls[i].seqs[j];
+ pcnt=1;
+ }
+ }
+ if (pcnt > maxc) {
+ maxs=prev;
+ maxc=pcnt;
+ }
+ if (maxc >= min_idepth && maxc >= min_adepth) {
+ // only calls 1 indel at a given position
+ if ((repeat_filter == 0) || (p.RepeatCount < repeat_filter)) {
+ // maybe use rms here... see if it helps
+ double mean_qual = p.Calls[i].qual/(double)p.Calls[i].depth();
+ double err_rate = mean_qual < max_phred ? pow(10,-mean_qual/10.0) : global_error_rate;
+ // expected number of non-reference = error_rate*depth
+ double pval=(p.Depth*err_rate==0)?0:gsl_ran_poisson_pdf(p.Calls[i].depth(), p.Depth*err_rate);
+ double padj=total_locii ? pval*total_locii : pval; // multiple-testing adjustment
+
+ if (alpha>=1 || padj <= alpha) {
+ vfinal final(p.Calls[i]);
+
+ double mq_padj=max(total_locii*pow(10,-p.Calls[i].mq_sum/10.0),padj); // never report pval as better than the total mapping quality
+ if (debug_xpos) fprintf(stderr,"xpos-debug-pval\tbase:%c, err:%g, pval:%g, padj:%g, mq_padj:%g, mq_sum:%d\n", p.Calls[i].base, err_rate, pval, padj, mq_padj, p.Calls[i].mq_sum);
+
+ if (mq_padj > 1) mq_padj=1;
+
+ if (need_out == -1)
+ need_out = i;
+
+ // printf("FINAL: depth:%d base: %s\n", (int) maxc, maxs.c_str());
+ final.padj=mq_padj;
+ final.max_idl_cnt=maxc;
+ final.max_idl_seq=maxs;
+ final_calls.push_back(final);
+ } else {
+ skipped_alpha+=p.Calls[i].depth();
+ }
+ // implicitly skip all the ohter indel calls at the same locus
+ skipped_indel+=p.Calls[i].depth()-maxc;
+ } else {
+ skipped_repeat+=p.Calls[i].depth();
+ }
+ } else {
+ skipped_indel+=p.Calls[i].depth();
+ }
+ } else {
+ skipped_indel+=p.Calls[i].depth();
+ }
+ } else {
+ if (p.Calls[i].base == '*' && (
+ ((repeat_filter > 0) && (p.RepeatCount >= repeat_filter)) ||
+ (p.Calls[i].depth() < min_idepth)
+ )) {
+ skipped_indel+=p.Calls[i].depth();
+ } else {
+ // subtract inserts from reference .. perhaps > 0 is correct here....
+ if (p.Calls[i].is_ref && (ins_rev+ins_fwd) > max(min_idepth,min_adepth)) {
+ p.Calls[i].fwd-=ins_fwd;
+ p.Calls[i].rev-=ins_rev;
+ }
+
+ double mean_qual = p.Calls[i].qual/(double)p.Calls[i].depth();
+
+ /*
+ if ( (repeat_filter > 0) && (p.RepeatCount >= repeat_filter) ) {
+ p.Calls[i].fwd-=p.Calls[i].tail_fwd;
+ p.Calls[i].rev-=p.Calls[i].tail_rev;
+ skipped_tail_hom+=p.Calls[i].tail_fwd+p.Calls[i].tail_rev;
+ }
+ */
+ if (p.Calls[i].depth() >= min_adepth && p.Calls[i].depth() > 0) {
+ double err_rate = mean_qual < vse_max_phred[b2i(p.Base)][b2i(p.Calls[i].base)] ? pow(10,-mean_qual/10.0) : vse_rate[b2i(p.Base)][b2i(p.Calls[i].base)];
+ // expected number of non-reference bases at this position is error_rate*depth
+ double pval=(p.Depth*err_rate==0)?0:gsl_ran_poisson_pdf(p.Calls[i].depth(), p.Depth*err_rate);
+ double padj=total_locii ? pval*total_locii : pval; // multiple-testing adjustment
+
+ if (alpha>=1 || padj <= alpha) {
+ double mq_padj=max(total_locii*pow(10,-p.Calls[i].mq_sum/10.0),padj); // never report as better than the mapping quality
+
+ if (mq_padj > 1) mq_padj=1;
+
+ if (debug_xpos) fprintf(stderr,"xpos-debug-pval\tbase:%c, err:%g, pval:%g, padj:%g, mq_padj:%g, mq_sum:%d\n", p.Calls[i].base, err_rate, pval, padj, mq_padj, p.Calls[i].mq_sum);
+
+ if (!p.Calls[i].is_ref || debug_xpos || output_ref) {
+ if (need_out == -1)
+ need_out = i;
+ }
+ vfinal final(p.Calls[i]);
+ final.padj=mq_padj;
+ final_calls.push_back(final);
+ } else {
+ skipped_alpha+=p.Calls[i].depth();
+ }
+ }
+ }
+ }
+ } else {
+ if (debug_xpos) {
+ warn("xpos-skipped-agree-%c\t%g\n", p.Calls[i].base, p.Calls[i].agreement);
+ }
+ skipped_agreement+=p.Calls[i].depth();
+ }
+ } else {
+ skipped_diversity+=p.Calls[i].depth();
+ }
+ } else {
+ skipped_balance+=p.Calls[i].depth();
+ }
+ } else {
+ // depth is too low now.... technically you can just add all the rest of the calls to skipped_depth without checking
+ skipped_depth+=p.Calls[i].depth();
+ }
+ }
+
+ ++Locii;
+
+ if (need_out>=0||debug_xpos) {
+
+ if (final_calls.size() > 1) {
+// printf("HERE1 %c/%c\n", final_calls[0].pcall->base, final_calls[1].pcall->base);
+ if(final_calls[1].pcall->is_ref) {
+ vfinal tmp=final_calls[1];
+ final_calls[1]=final_calls[0];
+ final_calls[0]=tmp;
+// printf("HERE2 %c/%c\n", final_calls[0].pcall->base, final_calls[1].pcall->base);
+ }
+ }
+
+// printf("allele_count: %d\n", (int) final_calls.size());
+
+
+ int total_call_depth=0;
+ int i;
+ for (i=0;i<final_calls.size();++i) {
+ total_call_depth+=final_calls[i].pcall->depth();
+ }
+ double pct_allele = 0;
+ if (need_out >=0) {
+ // more than 1 call at this position = Het
+ if (final_calls.size() > 1) {
+ if (final_calls[0].pcall->is_ref) {
+ pct_allele = 100.0 * final_calls[1].pcall->depth() / (double) total_call_depth;
+ } else {
+ // no reference seen... but still het?
+ pct_allele = 100.0 * final_calls[0].pcall->depth() / (double) total_call_depth;
+ }
+ ++Hets;
+ } else {
+ pct_allele = 100.0 * final_calls[0].pcall->depth() / (double) total_call_depth;
+ ++Homs;
+ }
+ }
+
+ /// INTERNAL VAR FILE
+ if (var_f) {
+ int i;
+ string pil;
+ for (i=0;i<final_calls.size();++i) {
+ vfinal &f=final_calls[i];
+ if (f.is_indel()) {
+ pil += string_format("\t%c%s:%d,%d,%.1e,%.2g,%.2g",f.pcall->base,f.max_idl_seq.c_str(),f.max_idl_cnt,f.pcall->qual/f.pcall->depth(),f.padj, f.pcall->diversity, f.pcall->agreement);
+ } else {
+ pil += string_format("\t%c:%d,%d,%.1e,%.2g,%.2g",f.pcall->base,f.pcall->depth(),f.pcall->qual/f.pcall->depth(),f.padj, f.pcall->diversity, f.pcall->agreement);
+ }
+ }
+ fprintf(var_f,"%s\t%d\t%c\t%d\t%d\t%2.2f%s%s\n",p.Chr.c_str(), p.Pos, p.Base, p.Depth, skipped_diversity+skipped_agreement+skipped_alpha+skipped_depth+skipped_balance+p.SkipAmp+p.SkipN+p.SkipDupReads+p.SkipMinMapq+p.SkipMinQual, pct_allele, Manager->UseAnnot==1?(p.InTarget ? "\t1" : "\t0"):"", pil.c_str());
+
+ if (tgt_var_f) {
+ if (p.InTarget) {
+ fprintf(tgt_var_f,"%s\t%d\t%c\t%d\t%d\t%2.2f%s\n",p.Chr.c_str(), p.Pos, p.Base, p.Depth, skipped_diversity+skipped_agreement+skipped_alpha+skipped_depth+skipped_balance+p.SkipAmp+p.SkipN+p.SkipDupReads+p.SkipMinMapq+p.SkipMinQual, pct_allele, pil.c_str());
+ }
+ }
+ }
+
+ if (vcf_f) {
+ for (i=0;i<final_calls.size();++i) {
+ vfinal &f=final_calls[i];
+ int qual = f.padj>0?min(40,10*(-log10(f.padj))):40;
+
+ if (f.is_indel()) {
+ string base;
+ string alt;
+ if (f.pcall->base =='-') {
+ base = p.Base + f.max_idl_seq;
+ alt = p.Base;
+ } else {
+ base = p.Base;
+ alt = p.Base + f.max_idl_seq;
+ }
+ double freq_allele = f.max_idl_cnt / (double) p.Depth;
+ fprintf(vcf_f,"%s\t%d\t.\t%s\t%s\t%2d\tPASS\tMQ=%d;BQ=%d;DP=%d;AF=%2.2f\n",
+ p.Chr.c_str(), p.Pos, base.c_str(), alt.c_str(), qual,
+ (int) f.pcall->mq_rms(),
+ (int) f.pcall->qual_rms(),
+ total_call_depth,
+ freq_allele);
+ } else {
+ char alt = f.pcall->base;
+ if (f.pcall->is_ref)
+ alt = '.';
+ double freq_allele = f.pcall->depth() / (double) p.Depth;
+ fprintf(vcf_f,"%s\t%d\t.\t%c\t%c\t%d\tPASS\tMQ=%d;BQ=%d;DP=%d;AF=%2.2f\n",
+ p.Chr.c_str(), p.Pos, p.Base, alt, qual,
+ (int) f.pcall->mq_rms(),
+ (int) f.pcall->qual_rms(),
+ total_call_depth,
+ freq_allele);
+ }
+ }
+ }
+
+ if (eav_f) {
+// printf(eav_f,"chr\tpos\tref\tdepth\tnum_states\ttop_consensus\ttop_freq\tvar_base\tvar_depth\tvar_qual\tvar_strands\tforward_strands\treverse_strands\n");
+ string top_cons, var_base, var_depth, var_qual, var_strands, forward, reverse, diversity, agreement;
+
+ float padj=final_calls[0].padj;
+ if (final_calls[0].pcall->is_ref && final_calls.size() > 1) {
+ padj=final_calls[1].padj;
+ }
+ for (i=0;i<final_calls.size();++i) {
+ vfinal &f=final_calls[i];
+ if (i < 2) {
+ if (i > 0) top_cons += "/";
+ top_cons += f.pcall->base;
+ }
+ if (i > 0) var_base += "/";
+ var_base += f.pcall->base;
+ if (f.is_indel()) {
+ if (i < 2) {
+ top_cons += f.max_idl_seq;
+ }
+ var_base += f.max_idl_seq;
+ }
+ if (i > 0) var_depth+= ";";
+ var_depth+= string_format("%d",f.pcall->depth());
+ if (i > 0) var_qual+= ";";
+ var_qual+= string_format("%d",f.pcall->qual_rms());
+ if (i > 0) var_strands+= ";";
+ var_strands+= string_format("%d",(f.pcall->fwd>0)+(f.pcall->rev>0));
+ if (i > 0) forward += ";";
+ forward+= string_format("%d",f.pcall->fwd);
+ if (i > 0) reverse += ";";
+ reverse+= string_format("%d",f.pcall->rev);
+ if (i > 0) agreement += ";";
+ agreement+= string_format("%g",f.pcall->agreement);
+ if (i > 0) diversity += ";";
+ diversity+= string_format("%g",f.pcall->diversity);
+ }
+ fprintf(eav_f,"%s\t%d\t%c\t%d\t%d\t%s\t%2.2f\t%s\t%s\t%s\t%s\t%s\t%s\t%.1e\t%s\t%s%s\n",p.Chr.c_str(), p.Pos, p.Base, p.Depth, (int) final_calls.size(),top_cons.c_str(), pct_allele, var_base.c_str(), var_depth.c_str(), var_qual.c_str(), var_strands.c_str(), forward.c_str(), reverse.c_str(), padj, diversity.c_str(), agreement.c_str(), Manager->UseAnnot==1?(p.InTarget?"\t1":"\t0"):regions);
+ }
+
+ if (debug_xpos) {
+ fprintf(stderr,"xpos-skip-dup\t%d\n",p.SkipDupReads);
+ fprintf(stderr,"xpos-skip-mapq\t%d\n",p.SkipMinMapq);
+ fprintf(stderr,"xpos-skip-qual\t%d\n",p.SkipMinQual);
+ fprintf(stderr,"xpos-skip-bal\t%d\n",skipped_balance);
+ fprintf(stderr,"xpos-skip-depth\t%d\n",skipped_depth);
+ fprintf(stderr,"xpos-skip-indel\t%d\n",skipped_indel);
+ fprintf(stderr,"xpos-skip-repeat\t%d\n",skipped_repeat);
+ fprintf(stderr,"xpos-skip-diversity\t%d\n",skipped_diversity);
+ fprintf(stderr,"xpos-skip-agreement\t%d\n",skipped_agreement);
+ fprintf(stderr,"xpos-skip-alpha\t%d\n",skipped_alpha);
+ if (repeat_filter > 0) {
+ fprintf(stderr,"repeat-count\t%d\n",p.RepeatCount);
+ fprintf(stderr,"repeat-filter\t%d\n",repeat_filter);
+ fprintf(stderr,"repeat-base\t%c\n",p.RepeatBase);
+ }
+ exit(0);
+ }
+ }
+}
+
+void PileupManager::FillReference(int refSize) {
+ int flank=(refSize-1)/2;
+ Reference.resize(refSize);
+
+ // if you're in the middle of a window
+ if (WinDex==flank && Win.size()==refSize) {
+ bool needfai=0;
+ int i;
+ for (i=WinDex-flank;i<refSize;++i) {
+ if (!isalpha(Win[i].Base)) {
+ needfai=1;
+ break;
+ } else {
+ Reference[i-(WinDex-flank)]=Win[i].Base;
+ }
+ }
+ if (needfai) {
+ faidx.Fetch((char *)Reference.data(), Pileup.Chr, Pileup.Pos-flank-1, Pileup.Pos+flank-1);
+ }
+ } else {
+ faidx.Fetch((char *)Reference.data(), Pileup.Chr, Pileup.Pos-flank-1, Pileup.Pos+flank-1);
+ }
+}
+
+void PileupManager::LoadAnnot(const char *path) {
+ FILE *f = fopen(path,"r");
+ if (!f) {
+ warn("Can't open %s : %s\n", path, strerror(errno));
+ exit(1);
+ }
+
+ AnnotType = '\0';
+
+ if (!strcmp(fext(path), ".bed"))
+ AnnotType='b';
+
+ if (!strcmp(fext(path), ".gtf"))
+ AnnotType='g';
+
+
+ if (!AnnotType) {
+ // try to detect it?
+ line l; meminit(l);
+ int cnt=0;
+ while(read_line(f, l)>0) {
+ vector<char *> d=split(l.s, '\t');
+ if (d.size() >= 7) {
+ AnnotType = (*d[5]=='+' || *d[5] == '-') ? 'b' : AnnotType;
+
+ if (!AnnotType)
+ AnnotType = (*d[6]=='+' || *d[6] == '-') ? 'g' : AnnotType;
+ }
+ break;
+ }
+ warn("detect-annot\t%s\n", AnnotType == 'g' ? "gtf" : AnnotType == 'b' ? "bed" : "unknown");
+ }
+
+ fclose(f);
+
+ if (!AnnotDex.read(path)) {
+ // try building if we know the type
+ if (AnnotType) {
+ // void build(const char *path, const char *sep, int nchr, int nbeg, int nend, int skip_i, char skip_c, int sub_e);
+ AnnotDex.build(path, "\t", 0, 1, 2, 0, '#', AnnotType=='b' ? 1 : 0);
+ }
+ die("Either %s.tidx must be a valid tidx indexed file, or %s must be a BED or GTF file\n", path, path);
+ }
+
+ UseAnnot=1;
+}
+
+void VarStatVisitor::Visit(PileupSummary &p) {
+ tot_locii += 1;
+
+// if (tot_locii % 10000 == 0) {
+// fprintf(stderr,"\r%.4f ", 100*(float)tot_locii/777385781.0);
+// }
+
+ if (p.Depth < minsampdepth)
+ return;
+
+ // insert and deletions have their own, separate noise levels
+
+ int ins_depth = p.Calls.size() > 6 ? p.Calls[6].depth() : 0;
+ int ins_qual = p.Calls.size() > 6 ? p.Calls[6].qual : 0;
+ double ins_noise = 0;
+ double ins_qnoise = 0;
+ if (p.Calls.size() > 1 && p.Depth > 0 && ins_depth > 0) {
+ ins_noise = (double) ins_depth/p.Depth;
+ ins_qnoise = (double) ins_qual/p.TotQual;
+ }
+
+ int del_depth = p.Calls.size() > 5 ? p.Calls[5].depth() : 0;
+ int del_qual = p.Calls.size() > 5 ? p.Calls[5].qual : 0;
+ double del_noise = 0;
+ double del_qnoise = 0;
+ if (p.Calls.size() > 1 && p.Depth > 0 && del_depth > 0) {
+ del_noise = (double) del_depth/p.Depth;
+ del_qnoise = (double) del_qual/p.TotQual;
+ }
+
+ // snp's are "noise" ... since they are supposedly rare.
+ int i;
+ if (p.Calls.size() > 5)
+ p.Calls.resize(5); // toss N's and inserts before sort
+
+ sort(p.Calls.begin(), p.Calls.end(), hitolocall);
+
+ double noise;
+ double qnoise;
+ if (p.Calls.size() > 1) {
+ // assume non-reference is noise
+ noise = (double) p.Calls[1].depth()/p.Depth;
+ qnoise = (double) p.Calls[1].qual/p.TotQual;
+ if (noise > .25) {
+ // unless maybe that was a het or something....
+ if (p.Calls.size() > 2) {
+ // but 3rd allele is always noise
+ noise = (double) p.Calls[2].depth()/p.Depth;
+ qnoise = (double) p.Calls[2].qual/p.TotQual;
+ } else {
+ // this is weird... but ok
+ noise = 0;
+ qnoise = 0;
+ }
+ }
+ } else {
+ noise = qnoise = 0.0;
+ }
+
+ double mnqual = (double)p.TotQual/p.Depth;
+
+ char pbase = p.Calls.size() > 1 ? p.Calls[1].base : '.';
+
+ if (noise_f) {
+ fprintf(noise_f,"%d\t%c\t%c\t%f\t%f\t%f\n", p.Depth, p.Base, pbase, noise, qnoise, mnqual);
+/*
+ if (ins_noise > 0) {
+ fprintf(noise_f,"%d\t%c\t%f\t%f\n", p.Depth, '+', ins_noise, ins_qnoise, mnqual);
+ }
+ if (del_noise > 0) {
+ fprintf(noise_f,"%d\t%c\t%f\t%f\n", p.Depth, '-', del_noise, del_qnoise, mnqual);
+ }
+*/
+ }
+
+ tot_depth += p.Depth;
+ num_reads += p.NumReads;
+ stats.push_back(Noise(p.Base, p.Calls[1].base, p.Depth, noise, qnoise, mnqual));
+ ins_stats.push_back(Noise(p.Base, p.Calls[1].base, p.Depth, ins_noise, ins_qnoise, mnqual));
+ del_stats.push_back(Noise(p.Base, p.Calls[1].base, p.Depth, del_noise, del_qnoise, mnqual));
+}
+
+
+void usage(FILE *f) {
+ fprintf(f,
+"Usage: varcall <-s|-v> <-f REF> [options] bam1 [bam2...]\n"
+"Version: %s (BETA)\n"
+"\n"
+"Either outputs summry stats for the list of files, or performs variant calling\n"
+"\n"
+"Options (later options override earlier):\n"
+"\n"
+"-s Calculate statistics\n"
+"-v|version Calculate variants bases on supplied parameters (see -S)\n"
+"-f Reference fasta (required if using bams, ignored otherwise)\n"
+"-m Min locii depth (1)\n"
+"-a Min allele depth (2)\n"
+"-p Min allele pct by quality (0)\n"
+"-q Min qual (3)\n"
+"-Q Min mapping quality (0)\n"
+"-b Min pct balance (strand/total) (0)\n"
+"-D FLOAT Max duplicate read fraction (depth/length per position) (1)\n"
+"-d FLOAT Minimum diversity (CV from optimal depth) (0.25)\n"
+"-G FLOAT Minimum agreement (Weighted CV of positional variation) (0.25)\n"
+"-0 Zero out all filters, set e-value filter to 1, report everything\n"
+"-B If running from a BAM, turn off BAQ correction (false)\n"
+"-R Homopolymer repeat indel filtering (8)\n"
+"-e FLOAT Alpha filter to use, requires -l or -S (.05)\n"
+"-g FLOAT Global minimum error rate (default: assume phred is ok)\n"
+"-l INT Number of locii in total pileup used for bonferroni (1 mil)\n"
+"-x CHR:POS Output this pos only, then quit\n"
+"-S FILE Read in statistics and params from a previous run with -s (do this!)\n"
+"-A ANNOT Calculate in-target stats using the annotation file (requires -o)\n"
+"-o PREFIX Output prefix (works with -s or -v)\n"
+"-F files List of file types to output (var, varsum, eav, vcf)\n"
+"\n"
+"Extended Options\n"
+"\n"
+"--pcr-annot BED Only include reads adhering to the expected amplicons\n"
+"--stranded TYPE Can be FR (the default), FF, FR. Used with pcr-annot\n"
+"--diversity|d FLOAT Alias for -d\n"
+"--agreement|G FLOAT Alias for -G\n"
+"--no-indels Ignore all indels\n"
+"\n"
+"Input files\n"
+"\n"
+"Files must be sorted bam files with bai index files available. Alternatively,\n"
+"a single pileup file can be supplied.\n"
+"\n"
+"Output files\n"
+"\n"
+"Varcalls go to stdout. Stats go to stdout, or stderr if varcalling too\n"
+"\n"
+"If an output prefix is used, files are created as follows:\n"
+" PREFIX.var Variant calls in tab delimited 'varcall' format\n"
+" PREFIX.eav Variant calls in tab delimited 'ea-var' format\n"
+" PREFIX.cse Variant calls in tab delimited 'varprowl' format\n"
+" PREFIX.vcf Variant calls, in vcf format\n"
+" PREFIX.varsum Summary of variant calls\n"
+" PREFIX.tgt.var On-target version of .var\n"
+" PREFIX.tgt.cse On-target version of .cse\n"
+" PREFIX.tgt.varsum On-target version of .varsum\n"
+"\n"
+"Stats Output:\n"
+"\n"
+"Contains mean, median, quartile information for depth, base quality, read len,\n"
+"mapping quality, indel levels. Also estimates parameters suitable for\n"
+"variant calls, and can be passed directly to this program for variant calls\n"
+"\n"
+"If an output prefix is used, files are created as follows:\n"
+"\n"
+" PREFIX.stats Stats output\n"
+" PREFIX.noise Non-reference, non-homozygous allele summary\n"
+" PREFIX.xnoise Like noise, but with context-specific rates\n"
+"\n"
+"Filtering Details:\n"
+"\n"
+ ,VERSION);
+}
+
+std::string string_format(const std::string &fmt, ...) {
+ int n, size=100;
+ std::string str;
+ va_list ap;
+ while (1) {
+ str.resize(size);
+ va_start(ap, fmt);
+ int n = vsnprintf((char *)str.c_str(), size, fmt.c_str(), ap);
+ va_end(ap);
+ if (n > -1 && n < size) {
+ str.resize(n);
+ return str;
+ }
+ if (n > -1)
+ size=n+1;
+ else
+ size*=2;
+ }
+}
+
+void to_upper(const std::string str) {
+ static int i;
+ static char c;
+ for ( i=0;i<str.size();++i ) {
+ c=((char *)(void *)str.data())[i];
+ if (c >= 'a' && c <= 'z') {
+ ((char *)(void *)str.data())[i]=c-32;
+ }
+ }
+}
+
+// returns quantile depth
+double quantile_depth(const std::vector<Noise> &vec, double p) {
+ int l = vec.size();
+ assert(l > 0);
+ double t = ((double)l-1)*p;
+ int it = (int) t;
+ int v=vec[it].depth;
+ if (t > (double)it) {
+ return (v + (t-it) * (vec[it+1].depth - v));
+ } else {
+ return v;
+ }
+}
+
+double quantile(const std::vector<int> &vec, double p) {
+ int l = vec.size();
+ double t = ((double)l-1)*p;
+ int it = (int) t;
+ int v=vec[it];
+ if (t > (double)it) {
+ return (v + (t-it) * (vec[it+1] - v));
+ } else {
+ return v;
+ }
+}
+
+double quantile(const std::vector<double> &vec, double p) {
+ int l = vec.size();
+ double t = ((double)l-1)*p;
+ int it = (int) t;
+ double v=vec[it];
+ if (t > (double)it) {
+ return (v + p * (vec[it+1] - v));
+ } else {
+ return v;
+ }
+}
+
+std::vector<char *> split(char* str,const char* delim)
+{
+ char *sav;
+ char* token = strtok_r(str,delim, &sav);
+ std::vector<char *> result;
+ while(token != NULL)
+ {
+ result.push_back(token);
+ token = strtok_r(NULL,delim, &sav);
+ }
+ return result;
+}
+
+std::vector<char *> split(char* str, char delim)
+{
+ char*p=strchr(str,delim);
+ std::vector<char *> result;
+ while(p != NULL)
+ {
+ *p='\0';
+ result.push_back(str);
+ str=p+1;
+ p=strchr(str,delim);
+ }
+ if (*str)
+ result.push_back(str);
+ return result;
+}
+
+int split(char **buf, char* str, char delim)
+{
+ char **bb=buf;
+ char *p=strchr(str,delim);
+ std::vector<char *> result;
+ while(p != NULL)
+ {
+ *p='\0';
+ *bb=str;
+ ++bb;
+ str=p+1;
+ p=strchr(str,delim);
+ }
+ if (*str) {
+ *bb=str;
+ bb++;
+ }
+ *bb=NULL;
+ return bb-buf;
+}
+
+int rand_round(double x) {
+ return floor(x)+((rand()>(x-int(x))) ? 1 : 0);
+//warn("rr:%f=%d\n",x);
+}
+
+
+void check_ref_fai(const char * ref) {
+ if (!ref) {
+ warn("Need a reference file (-f) parameter, try -h for help\n");
+ exit(1);
+ }
+
+ if (!hasdata(string(ref)+".fai")) {
+ int ret=system(string_format("samtools faidx '%s'", ref).c_str());
+ if (ret) {
+ warn("Need a %s.fai file, run samtools faidx\n", ref);
+ exit(1);
+ }
+ }
+}
+
+void Faidx::Load(const char *path) {
+ fa_f = openordie(path, "r");
+ FILE *fp = openordie(string_format("%s.fai", path).c_str(), "r");
+
+ char *buf = (char*)calloc(0x10000, 1);
+ char *p;
+ while (!feof(fp) && fgets(buf, 0x10000, fp)) {
+ for (p = buf; *p && isgraph(*p); ++p);
+ *p = 0; ++p;
+ Faient e;
+ sscanf(p, "%d%lld%d%d", &e.len, &e.offset, &e.line_blen, &e.line_len);
+ string chr = buf;
+ faimap[chr]=e;
+ }
+ free(buf);
+}
+
+bool Faidx::Fetch(char *buf, const Faient *ent, int pos_from, int pos_to) {
+ int len = (pos_to-pos_from+1);
+
+ if (fseek(fa_f, ent->offset + pos_from / ent->line_blen * ent->line_len + pos_from % ent->line_blen, SEEK_SET) == -1) {
+ return false;
+ }
+ int l = 0;
+ char c;
+ while (((c=fgetc(fa_f))!= EOF) && (l < len)) {
+ if (isgraph(c)) buf[l++] = c;
+ }
+ return l==len;
+}
+
+
+PileupSubscriber::PileupSubscriber(PileupManager &man) {
+ Manager = NULL;
+ SetManager(man);
+};
+
+void PileupSubscriber::SetManager(PileupManager &man) {
+ assert(!Manager);
+ Manager = &man;
+ man.Kids.push_back(this);
+};
+
+
+
+void output_stats(VarStatVisitor &vstat) {
+ stat_out("version\tvarcall-%s\n", VERSION);
+ stat_out("min depth\t%d\n", minsampdepth);
+ stat_out("alpha\t%f\n", alpha);
+
+ if (vstat.stats.size()) {
+ // sort by depth descending
+ sort(vstat.stats.begin(), vstat.stats.end(), noisebydepth);
+
+ // flip 3 and 1 because sorted in descending order for sampling (above)
+ double depth_q3=quantile_depth(vstat.stats, .25);
+ double depth_q2=quantile_depth(vstat.stats, .50);
+ double depth_q1=quantile_depth(vstat.stats, .75);
+ double depth_qx=quantile_depth(vstat.stats, .95);
+
+ // number of locii to compute error rate
+ int ncnt=min(100000,vstat.stats.size());
+
+ int i;
+ double nsum=0, nssq=0, dsum=0, dmin=vstat.stats[0].depth, qnsum=0, qnssq=0, qualsum=0;
+
+ double ins_nsum=0, ins_nssq=0, del_nsum=0, del_nssq=0;
+
+ double qvsum[T_CNT][T_CNT], qvssq[T_CNT][T_CNT]; int qvcnt[T_CNT][T_CNT];
+ meminit(qvsum);
+ meminit(qvssq);
+ meminit(qvcnt);
+
+ for (i=0;i<ncnt;++i) {
+ if (vstat.stats[i].depth < depth_q1) {
+ continue;
+ }
+
+ int ref_i, var_i;
+ ref_i=b2i(vstat.stats[i].ref);
+ var_i=b2i(vstat.stats[i].var);
+
+ if (ref_i < T_N && var_i < T_N) {
+ qvsum[ref_i][var_i]+=vstat.stats[i].qnoise;
+ qvssq[ref_i][var_i]+=vstat.stats[i].qnoise*vstat.stats[i].qnoise;
+ qvcnt[ref_i][var_i]+=1;
+ }
+
+ nsum+=vstat.stats[i].noise;
+ nssq+=vstat.stats[i].noise*vstat.stats[i].noise;
+ dsum+=vstat.stats[i].depth;
+ qnsum+=vstat.stats[i].qnoise;
+ qnssq+=vstat.stats[i].qnoise*vstat.stats[i].qnoise;
+ qualsum+=vstat.stats[i].mnqual;
+ if (vstat.stats[i].depth < dmin) dmin = vstat.stats[i].depth;
+ ins_nsum+=vstat.ins_stats[i].noise;
+ ins_nssq+=vstat.ins_stats[i].noise*vstat.ins_stats[i].noise;
+ del_nsum+=vstat.del_stats[i].noise;
+ del_nssq+=vstat.del_stats[i].noise*vstat.del_stats[i].noise;
+ }
+
+ double noise_mean =nsum/ncnt;
+ double noise_dev = stdev(ncnt, nsum, nssq);
+ double qnoise_mean =qnsum/ncnt;
+ double qnoise_dev = stdev(ncnt, qnsum, qnssq);
+ double qual_mean = qualsum/ncnt;
+ double ins_noise_mean =ins_nsum/ncnt;
+ double ins_noise_dev = stdev(ncnt, ins_nsum, ins_nssq);
+ double del_noise_mean =del_nsum/ncnt;
+ double del_noise_dev = stdev(ncnt, del_nsum, del_nssq);
+
+ stat_out("qual mean\t%.4f\n", qual_mean);
+ stat_out("noise mean\t%.6f\n", noise_mean);
+ stat_out("noise dev\t%.6f\n", noise_dev);
+ stat_out("qnoise mean\t%.6f\n", qnoise_mean);
+ stat_out("qnoise dev\t%.6f\n", qnoise_dev);
+ stat_out("ins freq\t%.6f\n", ins_noise_mean);
+ stat_out("ins freq dev\t%.6f\n", ins_noise_dev);
+ stat_out("del freq\t%.6f\n", del_noise_mean);
+ stat_out("del freq dev\t%.6f\n", del_noise_dev);
+
+ if (qnoise_mean >= noise_mean ) {
+ stat_out("error\tpoor quality estimates\n");
+ }
+
+ stat_out("noise depth mean\t%.4f\n", dsum/ncnt);
+ stat_out("noise depth min\t%.4f\n", dmin);
+ stat_out("noise cnt\t%d\n", ncnt);
+
+ stat_out("depth q1\t%.4f\n", depth_q1);
+ stat_out("depth median\t%.4f\n", depth_q2);
+ stat_out("depth q3\t%.4f\n", depth_q3);
+
+ dsum=0;
+ for (i=0;i<vstat.stats.size();++i) {
+ dsum+=vstat.stats[i].depth;
+ }
+
+ int locii_gtmin=0;
+ for (i=0;i<vstat.stats.size();++i) {
+ if (vstat.stats[i].depth >= min_depth) {
+ ++locii_gtmin;
+ }
+ }
+ stat_out("locii >= min depth\t%d\n", locii_gtmin);
+ stat_out("locii\t%d\n", vstat.tot_locii);
+
+ double stdevfrommean=-qnorm((alpha/locii_gtmin)/2);
+ stat_out("qnorm adj\t%f\n", stdevfrommean);
+
+
+ pct_qdepth=qnoise_mean+qnoise_dev*stdevfrommean;
+ stat_out("min pct qual\t%.4f\n", 100*pct_qdepth);
+
+ meminit(vse_rate);
+
+ // variation-specific error rates
+ int j;
+ for (i=0;i<T_CNT;++i) {
+ for (j=0;j<T_CNT;++j) {
+ if (i!=j && (qvcnt[i][j] > 20)) {
+ double qn_mean =qvsum[i][j]/qvcnt[i][j];
+ double qn_dev = stdev(qvcnt[i][j], qvsum[i][j], qvssq[i][j]);
+ stat_out("vnoise mean %c:%c\t%.6f\n", i2b(i), i2b(j), qn_mean);
+ stat_out("vnoise dev %c:%c\t%.6f\n", i2b(i), i2b(j), qn_dev);
+ vse_rate[i][j]=qn_mean+qn_dev; // vse rate
+ } else {
+ vse_rate[i][j]=noise_mean+noise_dev; // global rate
+ }
+ }
+ }
+
+
+ // now set params... as if you just read them in
+ // this should mirror "read stats"
+ min_depth = minsampdepth;
+ global_error_rate = noise_mean+noise_dev;
+ total_locii = locii_gtmin;
+ }
+}
+
+
diff --git a/clipper/xjoin b/clipper/xjoin
new file mode 100644
index 0000000..c4117a0
--- /dev/null
+++ b/clipper/xjoin
@@ -0,0 +1,546 @@
+#!/usr/bin/perl
+
+use strict;
+use File::Temp;
+use Getopt::Long;
+
+Getopt::Long::Configure qw(pass_through no_ignore_case);
+
+$SIG{INT} = \&sigint;
+$SIG{TERM} = \&sigterm;
+
+my @argv = @ARGV;
+# key1, key2, delimiter, keep
+my ($q, $k1, $k2) = ('', 1, 1);
+my ($d, $fp, $overwrite, $keep, $presort, $make, $n, $header, $prefix, $multi, $dup, $debug, $uniq);
+my ($hf1, $hf2);
+my $kalt;
+
+# these apply to the whole shebang
+Getopt::Long::Configure qw(permute);
+my @PERMUTE_OPTIONS = ("x"=>\$multi, "debug|D"=>\$debug, "K"=>\$keep, "x"=>\$multi, "m"=>\$make, "o"=>\$overwrite);
+GetOptions(@PERMUTE_OPTIONS) || die usage();
+
+# these apply to a file
+Getopt::Long::Configure qw(require_order);
+my @ORDERED_OPTIONS = ("k=i"=>\$kalt, "1=i"=>\$k1, "2=i"=>\$k2, "q=s"=>\$q, "d=s"=>\$d, "f"=>\$fp, "s:i"=>\$presort, "p"=>\$prefix, "n"=>\$n, "h:i"=>\$header, "u:i"=>\$uniq, "r=i"=>\$dup);
+
+GetOptions(@ORDERED_OPTIONS) || die usage();
+my $op = shift @ARGV;
+$op=~s/^://;
+
+Getopt::Long::Configure qw(no_pass_through);
+GetOptions(@ORDERED_OPTIONS) || die usage();
+my $f1 = shift @ARGV;
+my $f2 = shift @ARGV;
+
+# remaining options, arguments are stored!
+my @fx = @ARGV;
+
+$k1=$k2=$kalt if ($kalt);
+
+# if file number is not set, then operate on both input files
+$header = 3 if defined($header) && $header==0;
+$uniq = 3 if defined($uniq) && $uniq==0;
+$header = 0 if defined($header) && $header==-1;
+
+# invert the option
+# defined? sort the other, defined and zero? sort both (3-0 = 3)
+my $dosort = 3-(0+(defined $presort ? ($presort==0?3:0) : 0));
+
+my $of1=$f1;
+my $of2=$f2;
+
+die "Option -k doesn't make sense with -s or multifile" if (!$dosort && !@fx && !$multi) && $keep;
+die usage() unless $op =~ /^inn?e?r?|exc?l?u?d?e?|xle?f?t?|out?e?r?$|xri?g?h?t?|lef?t?|rig?h?t?/;
+die usage() if !$f2;
+$op = substr($op, 0, 2);
+
+my @tmps;
+my $tmerg;
+if (@fx) {
+ $tmerg = "$f2.tmerg";
+ open(OUT, ">$tmerg") || die "Can't create $f2.tmerg\n";
+} else {
+ *OUT=*STDOUT;
+}
+
+if ($multi && $f1 =~ /\.tmerg$/) {
+ push @tmps, $f1;
+}
+
+my $sortop;
+$sortop .= "-t '$d'" if $d;
+$sortop .= '-n' if $n;
+
+my ($f1hashead, $f2hashead);
+
+($f1, $hf1, $f1hashead) = preproc_file($f1, $k1, $header == 3 || $header == 1, $dosort == 3 || $dosort == 1);
+($f2, $hf2, $f2hashead) = preproc_file($f2, $k2, $header == 3 || $header == 2, $dosort == 3 || $dosort == 2);
+
+warn "# f1:$f1, f2: $f2\n" if $debug;
+
+$d = "\t" if !defined $d;
+
+open(I1, $f1) || die "$f1: $!\n";
+open(I2, $f2) || die "$f2: $!\n";
+
+my (@B1, @B2, $l);
+
+# buffer in
+push @B1, scalar <I1>;
+push @B2, scalar <I2>;
+
+# create "undef" rows for outer/left joins
+# left side is an empty array, with room for the key field
+my $l=$B1[0]; chomp $l;
+my @udt1 = split(/$d/, $l);
+grep {$_=""} @udt1;
+
+# right side is all delimiter
+$l=$B2[0]; chomp $l;
+my @t = split(/$d/, $l);
+splice @t, $k2, 1; # don't replicate key field
+my $ud2 = $d x ((scalar @t) - 1); # undef line 2
+
+if ($f1hashead) {
+ # when you sort, the header gets stripped
+ warn "# discard row 1 file 1\n" if $debug;
+ $hf1=$B1[0]; chomp $hf1;
+ @B1=();
+}
+if ($f2hashead) {
+ # when you sort, the header gets stripped
+ $hf2=$B2[0]; chomp $hf2;
+ warn "# discard row 1 file 2\n" if $debug;
+ @B2=();
+}
+
+if ($debug) {
+ my $nm = $ud2 =~ s/$d/$d/g;
+ warn "# UD2: --$nm delims--\n";
+}
+
+$k1 -= 1;
+$k2 -= 1;
+
+my $outhead = 1;
+$outhead=0 if $op eq 'ex';
+$outhead=1 if $tmerg;
+
+if ($outhead && $header && ($hf1 || $hf2)) {
+ # header line handline
+
+ # header on one side? mock up the other
+ if ($header==1) {
+ $hf2=$ud2;
+ } elsif ($header == 2) {
+ my $ud1 = join "\t", @udt1;
+ $hf1=$ud1;
+ }
+
+ # pull out key field from header when pasting
+ if ($op !~ /^xl|xr|ex$/) {
+ my @t = split(/$d/, $hf2);
+ splice @t, $k2, 1;
+ $hf2 = join $d, @t;
+ }
+
+ if ($prefix) {
+ # paste only
+ if ($op =~ /^ex|xr|xl/) {
+ die "Option -p makes no sense for 'ex', 'xr' or 'xl'" . ($op eq 'ex' ? ", maybe you mean -f" : "") . "\n";
+ }
+
+ my $p1 = $f1;
+ my $p2 = $f2;
+
+ # remove path and file extension
+ $p1 =~ s/.*\///;
+ $p2 =~ s/.*\///;
+ $p1 =~ s/\..*$//;
+ $p2 =~ s/\..*$//;
+
+ if (!$multi) {
+ my $cnt=0;
+ if ($op !~ /^ex|xr|xl/) {
+ $hf1 = join $d, map {s/^/$p1\// if $cnt++ != $k1; $_;} split(/$d/, $hf1);
+ }
+ }
+ if ($op !~ /^ex|xr|xl/) {
+ $hf2 = join $d, map {s/^/$p2\//; $_;} split(/$d/, $hf2);
+ }
+ }
+
+ # exclusive? no header for other file
+ $hf2="" if ($op =~ /^xl$/);
+ $hf1="" if ($op =~ /^xr|ex$/);
+
+ # tab if needed
+ $hf2="\t" . $hf2 if $hf2&&$hf1;
+
+ my $h = "$hf1$hf2\n";
+ if ($fp) {
+ $h="$d$h";
+ }
+ print OUT $h;
+}
+
+if ($fp && !($op eq 'ex')) {
+ die "Option -f only makes sense with ex\n";
+}
+
+my ($l1, $l2, $v1, $v2, @t, $cnt);
+my ($pv1, $pv2, $pl1, $pl2); # previous values
+my ($fp1); # file prefix 1
+
+while(1) {
+ ++$cnt;
+ if (! defined $l1) {
+ $l1 = @B1 ? shift @B1 : <I1>;
+
+ if ($multi && $fp && defined $l1) {
+ $l1 =~ s/^([^$d]+)$d//;
+ $fp1=$1;
+ } else {
+ $fp1=$f1;
+ }
+
+ # left join or inner... stop if run out of left file
+ last if ! defined $l1 && ( $op eq 'in' || $op eq 'xl' || $op eq 'le' );
+
+ if (defined $l1) {
+ chomp $l1;
+ # remove quote chars... this is DUMB... use quoted delim parser Regex::Common
+ @t = split(/$d/, $l1);
+ if ($q) {
+ grep s/^$q(.*)$q$/$1/, @t;
+ }
+ # key field for file 1
+ $v1 = $t[$k1];
+ } else {
+ $v1 = undef;
+ }
+ }
+ if (! defined $l2) {
+ # inner join or right join... stop if run out of right file
+ $l2 = @B2 ? shift @B2 : <I2>;
+ last if ! defined $l2 && ( $op eq 'in' || $op eq 'xr' || $op eq 'ri' );
+ if (defined $l2) {
+ chomp $l2;
+ # remove quote chars... this is DUMB... use quoted delim parser Regex::Common
+ @t = split(/$d/, $l2);
+ if ($q) {
+ grep s/^$q(.*)$q$/$1/, @t;
+ }
+ # key field for file 2
+ $v2 = $t[$k2];
+ if ($op !~ /^ex|xr|xl/) {
+ splice @t, $k2, 1; # don't replicate key field
+ $l2 = join $d, @t;
+ }
+ } else {
+ $v2 = undef;
+ }
+ }
+
+ # both empty? done.
+ last if ! defined $l2 && ! defined $l1;
+
+ # numeric sort?
+ my $c = $n ? ($v1 <=> $v2) : ($v1 cmp $v2);
+
+ # undef is always "less than"
+ $c = 1 if ! defined $l1 && defined $l2;
+ $c = -1 if ! defined $l2 && defined $l1;
+
+ # debug process
+ warn "# $v1<=>$v2 : $c\n" if $debug;
+
+ # comparison was equal
+ if ($c == 0) {
+ if ($op eq 'in' || $op eq 'ou' || $op eq 'le' || $op eq 'ri') {
+ # output the rows
+ print OUT $l1, "\t", $l2, "\n";
+ }
+ $pl1=$l1;
+ $pv1=$v1;
+ $pl2=$l2;
+ $pv2=$v2;
+ undef $l1 unless $dup == 2; # 1st can contain dups
+ undef $l2 unless $dup == 1; # 2nd can contain dups
+ next;
+ }
+
+ if ($c > 0) { # v1 > v2
+ if ($pv1 eq $v2) {
+ if ($uniq==2||$uniq==3) {
+ # skip dup row always
+ undef $l2;
+ next;
+ } else {
+ if ($op eq 'ou' || $op eq 'le' || $op eq 'ri') {
+ print OUT $pl1, "\t", $l2, "\n";
+ undef $l2;
+ next;
+ }
+ }
+ }
+
+ if (($uniq==2||$uniq==3) && ($pv2 eq $v2)) {
+ # no dups in file 2
+ } else {
+ if ($op eq 'ou' || $op eq 'ri') {
+ $udt1[$k1]=$v2;
+ my $ud1 = join "\t", @udt1;
+ print OUT $ud1, "\t", $l2, "\n";
+ }
+ if ($op eq 'ex' || $op eq 'xr') {
+ print OUT ($fp ? "$f2\t" : '') . $l2 . "\n" if defined $l2;
+ }
+ }
+ $pl2=$l2;
+ $pv2=$v2;
+ undef $l2; # read f2 next
+ }
+ if ($c < 0) { # v1 < v2
+ # prev would have matched
+ if ($pv2 eq $v1) {
+ if ($uniq==1||$uniq==3) {
+ # skip dup row always
+ undef $l1;
+ next;
+ } else {
+ if ($op eq 'ou' || $op eq 'le' || $op eq 'ri') {
+ # print pasted dup row
+ print OUT $l1, "\t", $pl2, "\n";
+ undef $l1;
+ next;
+ }
+ }
+ }
+
+ if (($uniq==1||$uniq==1) && ($pv1 eq $v1)) {
+ # no dups in file 1
+ } else {
+ if ($op eq 'ou' || $op eq 'le') {
+ print OUT $l1, "\t", $ud2, "\n";
+ }
+ if ($op eq 'ex' || $op eq 'xl') {
+ print OUT ($fp ? "$fp1\t" : '') . $l1 . "\n" if defined $l1;
+ }
+ }
+ $pl1=$l1;
+ $pv1=$v1;
+ undef $l1; # read f2 next
+ }
+}
+
+if (@fx) {
+ @argv = grep !/^$of1$/, @argv;
+ @argv = grep !/^$of2$/, @argv;
+
+
+ @ARGV = @argv;
+
+ my $pk1=$k1+1;
+
+ $k1=1;
+ $presort=undef;
+
+ # simulate the options processing WITHOUT those files
+ Getopt::Long::Configure qw(pass_through);
+ GetOptions(@PERMUTE_OPTIONS);
+ GetOptions(@ORDERED_OPTIONS);
+ shift @ARGV; # strip op
+ GetOptions(@ORDERED_OPTIONS);
+
+ my $of3 = shift @ARGV;
+
+
+ GetOptions(@ORDERED_OPTIONS);
+
+ my @addop;
+ if ($k1 == $pk1 & $presort eq undef) {
+ push @addop, "-s=1";
+ }
+
+ if ($of3 =~ /^:(.*)/) {
+ my $nop=$1;
+ $of3 = shift @ARGV;
+ for (my $i=0;$i<@argv;++$i) {
+ # remove :nop
+ if ($argv[$i] eq ":$nop") {
+ splice @argv, $i, 1;
+ last;
+ }
+ }
+ for (my $i=0;$i<@argv;++$i) {
+ if ($argv[$i] eq $op) {
+ splice @argv, $i, 1, $nop;
+ last;
+ }
+ }
+ }
+
+ unshift @argv, @addop;
+
+ my $nox=0;
+ for (my $i=0;$i<@argv;++$i) {
+ if ($argv[$i] eq $of3) {
+ splice @argv, $i, 1, ($tmerg, $of3);
+ last;
+ }
+ if ($argv[$i] eq "-x") {
+ $nox=1;
+ }
+ }
+
+ unshift @argv, "-x" unless $nox;
+
+ warn "# + $0 @argv\n" if $debug;
+ cleanup();
+ exec($0, @argv);
+}
+
+sub sigint {
+ $SIG{INT} = undef;
+ cleanup();
+ kill 2, $$;
+}
+
+sub sigterm {
+ $SIG{TERM} = undef;
+ cleanup();
+ kill 15, $$;
+}
+
+END {
+ cleanup();
+}
+
+sub cleanup {
+ if (!$keep) {
+ warn "# cleanup @tmps\n" if $debug;
+ for (@tmps) {
+ unlink $_;
+ }
+ }
+}
+
+sub preproc_file {
+ my ($file, $key, $dohead, $dosort) = @_;
+
+ die "Won't overwrite $file.sorted\n" if !$make && -e "$file.sorted" && !$overwrite && $dosort;
+
+ my $head;
+
+ my $of="cat '$file'";
+ # todo... use tee, fifo to handle stream input
+ if ($dohead) {
+ $of.="|tail -n +2";
+ if ($dosort) {
+ $head=`head -n 1 '$file'`;
+ }
+ chomp $head;
+ }
+
+ if (!$make || (stat("$file.sorted"))[9] <= (stat($file))[9]) {
+ $of.="|sort $sortop -k $key,$key" if ($dosort);
+ if ($dosort) {
+ warn("# + $of > '$file.sorted'\n") if $debug;
+ system("$of > '$file.sorted'\n") && exit (1);
+ push @tmps, "$file.sorted";
+ }
+ }
+
+ my $has_head=$dohead;
+ if ($dosort) {
+ $file="$file.sorted";
+ $has_head = 0;
+ }
+
+ return ($file, $head, $has_head);
+}
+
+sub usage {
+<<EOF
+Usage: xjoin [options] [:]<operator> <f1> <f2> [...*]
+
+Joins file 1 and file 2 by the first column, suitable
+for arbitratily large files (disk-based sort).
+
+Operator is one of:
+
+# Pasted ops, combines rows:
+
+ in[ner] return rows in common
+ le[ft] return rows in common, left joined
+ ri[ght] return rows in common, right joined
+ ou[ter] return all rows, outer joined
+
+# Exclusive (not pasted) ops, only return rows from 1 file:
+
+ ex[clude] return only those rows with nothing in common (see -f)
+ xl[eft] return left file rows that are not in right file
+ xr[ight] return right file rows that are not in left file
+
+Common options:
+
+ -1,-2=N per file, column number to join on (def 1)
+ -k=N set the key column to N (for both files)
+ -d STR column delimiter (def tab)
+ -q STR quote char (def none)
+ -h [N] files have headers (optionally, N is the file number)
+ -u [N] files may contain duplicate entries, only output first match
+ -s [N] files are already sorted, don't sort first
+ -n numeric sort key columns
+ -p prefix headers with filename/
+ -f prefix rows with the input file name (op:ex only)
+
+Debugging options:
+ -D debug mode
+ -K keep sorted files (named file.sorted)
+ -o always overwrite temp files if present (see -k)
+ -m use make-semantics with sorted files (see -k)
+
+Options -1,-2, -s, -r, -h are optionally file specific. They can be
+called with a number. 1 refers to the left file, 2 refers to the right,
+3 (or a missing number) refers to both, -1 means "turn this option off".
+
+Multi file operation:
+
+More than 2 files will result in multiple pairwise calls to
+xjoin. The use of the file-specific options can be confusing.
+
+The base, common case... where all the option stay the same, will
+not change in future versions.
+
+Multi mode operation:
+
+It's possible to merge two with an inner join, then merge with a left
+join, by sticking a colon-prefixed operator in the file list. You
+can also change the options at that time.
+
+EXAMPLE1 (common operation):
+
+ xjoin in file1 file2 file3
+
+EXAMPLE2 (sort is assumed for 3rd file, but not the first 2):
+
+ xjoin in file1 file2 -s file3
+
+EXAMPLE3 (inner join with headers on column 1, then inner join the result using column 3)
+ xjoin in -h test1.txt test2.txt -k 3 test3.txt
+
+EXAMPLE4 (inner join header on first 2, then outer join, no header on first file)
+ xjoin in -h test1.txt test2.txt -h 2 :ou test3.txt
+
+TODO: Restructure the options using a custom parser that allows positional
+options.... perl's GetOpt isn't flexible enough to capture overriding on
+multiple file merges.
+
+EOF
+}
+
+
diff --git a/clipper/zhead b/clipper/zhead
new file mode 100755
index 0000000..509a139
--- /dev/null
+++ b/clipper/zhead
@@ -0,0 +1,64 @@
+#!/usr/bin/perl
+
+use Getopt::Long qw(:config pass_through);
+
+GetOptions(\%opt,"lines|n=s", "bytes|c=s","verbose","help","quiet|silent|q")
+ || die("Try zhead --help\n");
+
+if ($ARGV[0] =~ /^-(\d+)/ && ! $opt{lines}) {
+ $opt{lines}=$1;
+ shift @ARGV;
+}
+
+$opt{lines} = 10 if !$opt{lines} && !$opt{bytes};
+
+if ($opt{help}) {
+ print "zhead is similar to head... see below.\n\n";
+ exec("head --help");
+}
+
+if ($opt{lines} =~ s/([a-z]+)$//) {
+ $i=lc($1);
+ $opt{lines} = $opt{lines} * (
+ $i eq 'b' ? 512 :
+ $i eq 'kb' ? 1000 :
+ $i eq 'k' ? 1000 :
+ $i eq 'mb' ? 1000*1000 :
+ $i eq 'm' ? 1024*1024 :
+ $i eq 'gb' ? 1000*1000*1000 :
+ $i eq 'g' ? 1024*1024*1024 :
+ 1 # if your using it for TB ... please don't
+ );
+}
+
+$ARGV[0] = '-' if (!@ARGV);
+
+$first = 1;
+for (@ARGV) {
+ open(IN, $_) || die "zhead: cannot open `$_' for reading: $!\n";
+ if (/\.gz$/) {
+ close IN;
+ $_=~ s/'/'"'"'/g;
+ open(IN, "gunzip -c '$_' |") || die "$!\n";
+ }
+ if (@ARGV > 1 && ! $opt{quiet}) {
+ print "\n" if !$first;
+ print "==> $_ <==\n";
+ $first = 0;
+ }
+ $l = 0;
+ if ($opt{lines}) {
+ while (<IN>) {
+ ++$l;
+ print;
+ last if $l >= $opt{lines};
+ }
+ } elsif ($opt{bytes}) {
+ $r = $opt{bytes}; # bytes remaining
+ while(($l=read(IN,$b,$r))>0) {
+ $r-=$l;
+ print $b;
+ }
+ }
+ close IN;
+}
diff --git a/faidx.c b/faidx.c
deleted file mode 100644
index 51c82ac..0000000
--- a/faidx.c
+++ /dev/null
@@ -1,437 +0,0 @@
-#include <ctype.h>
-#include <string.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <stdint.h>
-#include "faidx.h"
-#include "khash.h"
-
-typedef struct {
- int32_t line_len, line_blen;
- int64_t len;
- uint64_t offset;
-} faidx1_t;
-KHASH_MAP_INIT_STR(s, faidx1_t)
-
-#ifndef _NO_RAZF
-#include "razf.h"
-#else
-#ifdef _WIN32
-#define ftello(fp) ftell(fp)
-#define fseeko(fp, offset, whence) fseek(fp, offset, whence)
-#else
-extern off_t ftello(FILE *stream);
-extern int fseeko(FILE *stream, off_t offset, int whence);
-#endif
-#define RAZF FILE
-#define razf_read(fp, buf, size) fread(buf, 1, size, fp)
-#define razf_open(fn, mode) fopen(fn, mode)
-#define razf_close(fp) fclose(fp)
-#define razf_seek(fp, offset, whence) fseeko(fp, offset, whence)
-#define razf_tell(fp) ftello(fp)
-#endif
-#ifdef _USE_KNETFILE
-#include "knetfile.h"
-#endif
-
-struct __faidx_t {
- RAZF *rz;
- int n, m;
- char **name;
- khash_t(s) *hash;
-};
-
-#ifndef kroundup32
-#define kroundup32(x) (--(x), (x)|=(x)>>1, (x)|=(x)>>2, (x)|=(x)>>4, (x)|=(x)>>8, (x)|=(x)>>16, ++(x))
-#endif
-
-static inline void fai_insert_index(faidx_t *idx, const char *name, int len, int line_len, int line_blen, uint64_t offset)
-{
- khint_t k;
- int ret;
- faidx1_t t;
- if (idx->n == idx->m) {
- idx->m = idx->m? idx->m<<1 : 16;
- idx->name = (char**)realloc(idx->name, sizeof(void*) * idx->m);
- }
- idx->name[idx->n] = strdup(name);
- k = kh_put(s, idx->hash, idx->name[idx->n], &ret);
- t.len = len; t.line_len = line_len; t.line_blen = line_blen; t.offset = offset;
- kh_value(idx->hash, k) = t;
- ++idx->n;
-}
-
-faidx_t *fai_build_core(RAZF *rz)
-{
- char c, *name;
- int l_name, m_name, ret;
- int line_len, line_blen, state;
- int l1, l2;
- faidx_t *idx;
- uint64_t offset;
- int64_t len;
-
- idx = (faidx_t*)calloc(1, sizeof(faidx_t));
- idx->hash = kh_init(s);
- name = 0; l_name = m_name = 0;
- len = line_len = line_blen = -1; state = 0; l1 = l2 = -1; offset = 0;
- while (razf_read(rz, &c, 1)) {
- if (c == '\n') { // an empty line
- if (state == 1) {
- offset = razf_tell(rz);
- continue;
- } else if ((state == 0 && len < 0) || state == 2) continue;
- }
- if (c == '>') { // fasta header
- if (len >= 0)
- fai_insert_index(idx, name, len, line_len, line_blen, offset);
- l_name = 0;
- while ((ret = razf_read(rz, &c, 1)) != 0 && !isspace(c)) {
- if (m_name < l_name + 2) {
- m_name = l_name + 2;
- kroundup32(m_name);
- name = (char*)realloc(name, m_name);
- }
- name[l_name++] = c;
- }
- name[l_name] = '\0';
- if (ret == 0) {
- fprintf(stderr, "[fai_build_core] the last entry has no sequence\n");
- free(name); fai_destroy(idx);
- return 0;
- }
- if (c != '\n') while (razf_read(rz, &c, 1) && c != '\n');
- state = 1; len = 0;
- offset = razf_tell(rz);
- } else {
- if (state == 3) {
- fprintf(stderr, "[fai_build_core] inlined empty line is not allowed in sequence '%s'.\n", name);
- free(name); fai_destroy(idx);
- return 0;
- }
- if (state == 2) state = 3;
- l1 = l2 = 0;
- do {
- ++l1;
- if (isgraph(c)) ++l2;
- } while ((ret = razf_read(rz, &c, 1)) && c != '\n');
- if (state == 3 && l2) {
- fprintf(stderr, "[fai_build_core] different line length in sequence '%s'.\n", name);
- free(name); fai_destroy(idx);
- return 0;
- }
- ++l1; len += l2;
- if (state == 1) line_len = l1, line_blen = l2, state = 0;
- else if (state == 0) {
- if (l1 != line_len || l2 != line_blen) state = 2;
- }
- }
- }
- fai_insert_index(idx, name, len, line_len, line_blen, offset);
- free(name);
- return idx;
-}
-
-void fai_save(const faidx_t *fai, FILE *fp)
-{
- khint_t k;
- int i;
- for (i = 0; i < fai->n; ++i) {
- faidx1_t x;
- k = kh_get(s, fai->hash, fai->name[i]);
- x = kh_value(fai->hash, k);
-#ifdef _WIN32
- fprintf(fp, "%s\t%d\t%ld\t%d\t%d\n", fai->name[i], (int)x.len, (long)x.offset, (int)x.line_blen, (int)x.line_len);
-#else
- fprintf(fp, "%s\t%d\t%lld\t%d\t%d\n", fai->name[i], (int)x.len, (long long)x.offset, (int)x.line_blen, (int)x.line_len);
-#endif
- }
-}
-
-faidx_t *fai_read(FILE *fp)
-{
- faidx_t *fai;
- char *buf, *p;
- int len, line_len, line_blen;
-#ifdef _WIN32
- long offset;
-#else
- long long offset;
-#endif
- fai = (faidx_t*)calloc(1, sizeof(faidx_t));
- fai->hash = kh_init(s);
- buf = (char*)calloc(0x10000, 1);
- while (!feof(fp) && fgets(buf, 0x10000, fp)) {
- for (p = buf; *p && isgraph(*p); ++p);
- *p = 0; ++p;
-#ifdef _WIN32
- sscanf(p, "%d%ld%d%d", &len, &offset, &line_blen, &line_len);
-#else
- sscanf(p, "%d%lld%d%d", &len, &offset, &line_blen, &line_len);
-#endif
- fai_insert_index(fai, buf, len, line_len, line_blen, offset);
- }
- free(buf);
- return fai;
-}
-
-void fai_destroy(faidx_t *fai)
-{
- int i;
- for (i = 0; i < fai->n; ++i) free(fai->name[i]);
- free(fai->name);
- kh_destroy(s, fai->hash);
- if (fai->rz) razf_close(fai->rz);
- free(fai);
-}
-
-int fai_build(const char *fn)
-{
- char *str;
- RAZF *rz;
- FILE *fp;
- faidx_t *fai;
- str = (char*)calloc(strlen(fn) + 5, 1);
- sprintf(str, "%s.fai", fn);
- rz = razf_open(fn, "r");
- if (rz == 0) {
- fprintf(stderr, "[fai_build] fail to open the FASTA file %s\n",fn);
- free(str);
- return -1;
- }
- fai = fai_build_core(rz);
- razf_close(rz);
- fp = fopen(str, "wb");
- if (fp == 0) {
- fprintf(stderr, "[fai_build] fail to write FASTA index %s\n",str);
- fai_destroy(fai); free(str);
- return -1;
- }
- fai_save(fai, fp);
- fclose(fp);
- free(str);
- fai_destroy(fai);
- return 0;
-}
-
-#ifdef _USE_KNETFILE
-FILE *download_and_open(const char *fn)
-{
- const int buf_size = 1 * 1024 * 1024;
- uint8_t *buf;
- FILE *fp;
- knetFile *fp_remote;
- const char *url = fn;
- const char *p;
- int l = strlen(fn);
- for (p = fn + l - 1; p >= fn; --p)
- if (*p == '/') break;
- fn = p + 1;
-
- // First try to open a local copy
- fp = fopen(fn, "r");
- if (fp)
- return fp;
-
- // If failed, download from remote and open
- fp_remote = knet_open(url, "rb");
- if (fp_remote == 0) {
- fprintf(stderr, "[download_from_remote] fail to open remote file %s\n",url);
- return NULL;
- }
- if ((fp = fopen(fn, "wb")) == 0) {
- fprintf(stderr, "[download_from_remote] fail to create file in the working directory %s\n",fn);
- knet_close(fp_remote);
- return NULL;
- }
- buf = (uint8_t*)calloc(buf_size, 1);
- while ((l = knet_read(fp_remote, buf, buf_size)) != 0)
- fwrite(buf, 1, l, fp);
- free(buf);
- fclose(fp);
- knet_close(fp_remote);
-
- return fopen(fn, "r");
-}
-#endif
-
-faidx_t *fai_load(const char *fn)
-{
- char *str;
- FILE *fp;
- faidx_t *fai;
- str = (char*)calloc(strlen(fn) + 5, 1);
- sprintf(str, "%s.fai", fn);
-
-#ifdef _USE_KNETFILE
- if (strstr(fn, "ftp://") == fn || strstr(fn, "http://") == fn)
- {
- fp = download_and_open(str);
- if ( !fp )
- {
- fprintf(stderr, "[fai_load] failed to open remote FASTA index %s\n", str);
- free(str);
- return 0;
- }
- }
- else
-#endif
- fp = fopen(str, "rb");
- if (fp == 0) {
- fprintf(stderr, "[fai_load] build FASTA index.\n");
- fai_build(fn);
- fp = fopen(str, "rb");
- if (fp == 0) {
- fprintf(stderr, "[fai_load] fail to open FASTA index.\n");
- free(str);
- return 0;
- }
- }
-
- fai = fai_read(fp);
- fclose(fp);
-
- fai->rz = razf_open(fn, "rb");
- free(str);
- if (fai->rz == 0) {
- fprintf(stderr, "[fai_load] fail to open FASTA file.\n");
- return 0;
- }
- return fai;
-}
-
-char *fai_fetch(const faidx_t *fai, const char *str, int *len)
-{
- char *s, c;
- int i, l, k, name_end;
- khiter_t iter;
- faidx1_t val;
- khash_t(s) *h;
- int beg, end;
-
- beg = end = -1;
- h = fai->hash;
- name_end = l = strlen(str);
- s = (char*)malloc(l+1);
- // remove space
- for (i = k = 0; i < l; ++i)
- if (!isspace(str[i])) s[k++] = str[i];
- s[k] = 0; l = k;
- // determine the sequence name
- for (i = l - 1; i >= 0; --i) if (s[i] == ':') break; // look for colon from the end
- if (i >= 0) name_end = i;
- if (name_end < l) { // check if this is really the end
- int n_hyphen = 0;
- for (i = name_end + 1; i < l; ++i) {
- if (s[i] == '-') ++n_hyphen;
- else if (!isdigit(s[i]) && s[i] != ',') break;
- }
- if (i < l || n_hyphen > 1) name_end = l; // malformated region string; then take str as the name
- s[name_end] = 0;
- iter = kh_get(s, h, s);
- if (iter == kh_end(h)) { // cannot find the sequence name
- iter = kh_get(s, h, str); // try str as the name
- if (iter == kh_end(h)) {
- *len = 0;
- free(s); return 0;
- } else s[name_end] = ':', name_end = l;
- }
- } else iter = kh_get(s, h, str);
- if(iter == kh_end(h)) {
- fprintf(stderr, "[fai_fetch] Warning - Reference %s not found in FASTA file, returning empty sequence\n", str);
- free(s);
- return 0;
- };
- val = kh_value(h, iter);
- // parse the interval
- if (name_end < l) {
- for (i = k = name_end + 1; i < l; ++i)
- if (s[i] != ',') s[k++] = s[i];
- s[k] = 0;
- beg = atoi(s + name_end + 1);
- for (i = name_end + 1; i != k; ++i) if (s[i] == '-') break;
- end = i < k? atoi(s + i + 1) : val.len;
- if (beg > 0) --beg;
- } else beg = 0, end = val.len;
- if (beg >= val.len) beg = val.len;
- if (end >= val.len) end = val.len;
- if (beg > end) beg = end;
- free(s);
-
- // now retrieve the sequence
- l = 0;
- s = (char*)malloc(end - beg + 2);
- razf_seek(fai->rz, val.offset + beg / val.line_blen * val.line_len + beg % val.line_blen, SEEK_SET);
- while (razf_read(fai->rz, &c, 1) == 1 && l < end - beg && !fai->rz->z_err)
- if (isgraph(c)) s[l++] = c;
- s[l] = '\0';
- *len = l;
- return s;
-}
-
-int faidx_main(int argc, char *argv[])
-{
- if (argc == 1) {
- fprintf(stderr, "Usage: faidx <in.fasta> [<reg> [...]]\n");
- return 1;
- } else {
- if (argc == 2) fai_build(argv[1]);
- else {
- int i, j, k, l;
- char *s;
- faidx_t *fai;
- fai = fai_load(argv[1]);
- if (fai == 0) return 1;
- for (i = 2; i != argc; ++i) {
- printf(">%s\n", argv[i]);
- s = fai_fetch(fai, argv[i], &l);
- for (j = 0; j < l; j += 60) {
- for (k = 0; k < 60 && k < l - j; ++k)
- putchar(s[j + k]);
- putchar('\n');
- }
- free(s);
- }
- fai_destroy(fai);
- }
- }
- return 0;
-}
-
-int faidx_fetch_nseq(const faidx_t *fai)
-{
- return fai->n;
-}
-
-char *faidx_fetch_seq(const faidx_t *fai, char *c_name, int p_beg_i, int p_end_i, int *len)
-{
- int l;
- char c;
- khiter_t iter;
- faidx1_t val;
- char *seq=NULL;
-
- // Adjust position
- iter = kh_get(s, fai->hash, c_name);
- if(iter == kh_end(fai->hash)) return 0;
- val = kh_value(fai->hash, iter);
- if(p_end_i < p_beg_i) p_beg_i = p_end_i;
- if(p_beg_i < 0) p_beg_i = 0;
- else if(val.len <= p_beg_i) p_beg_i = val.len - 1;
- if(p_end_i < 0) p_end_i = 0;
- else if(val.len <= p_end_i) p_end_i = val.len - 1;
-
- // Now retrieve the sequence
- l = 0;
- seq = (char*)malloc(p_end_i - p_beg_i + 2);
- razf_seek(fai->rz, val.offset + p_beg_i / val.line_blen * val.line_len + p_beg_i % val.line_blen, SEEK_SET);
- while (razf_read(fai->rz, &c, 1) == 1 && l < p_end_i - p_beg_i + 1)
- if (isgraph(c)) seq[l++] = c;
- seq[l] = '\0';
- *len = l;
- return seq;
-}
-
-#ifdef FAIDX_MAIN
-int main(int argc, char *argv[]) { return faidx_main(argc, argv); }
-#endif
diff --git a/kaln.c b/kaln.c
deleted file mode 100644
index 9c0bbaa..0000000
--- a/kaln.c
+++ /dev/null
@@ -1,486 +0,0 @@
-/* The MIT License
-
- Copyright (c) 2003-2006, 2008, 2009, by Heng Li <lh3lh3 at gmail.com>
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- "Software"), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be
- included in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE.
-*/
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdint.h>
-#include <math.h>
-#include "kaln.h"
-
-#define FROM_M 0
-#define FROM_I 1
-#define FROM_D 2
-
-typedef struct {
- int i, j;
- unsigned char ctype;
-} path_t;
-
-int aln_sm_blosum62[] = {
-/* A R N D C Q E G H I L K M F P S T W Y V * X */
- 4,-1,-2,-2, 0,-1,-1, 0,-2,-1,-1,-1,-1,-2,-1, 1, 0,-3,-2, 0,-4, 0,
- -1, 5, 0,-2,-3, 1, 0,-2, 0,-3,-2, 2,-1,-3,-2,-1,-1,-3,-2,-3,-4,-1,
- -2, 0, 6, 1,-3, 0, 0, 0, 1,-3,-3, 0,-2,-3,-2, 1, 0,-4,-2,-3,-4,-1,
- -2,-2, 1, 6,-3, 0, 2,-1,-1,-3,-4,-1,-3,-3,-1, 0,-1,-4,-3,-3,-4,-1,
- 0,-3,-3,-3, 9,-3,-4,-3,-3,-1,-1,-3,-1,-2,-3,-1,-1,-2,-2,-1,-4,-2,
- -1, 1, 0, 0,-3, 5, 2,-2, 0,-3,-2, 1, 0,-3,-1, 0,-1,-2,-1,-2,-4,-1,
- -1, 0, 0, 2,-4, 2, 5,-2, 0,-3,-3, 1,-2,-3,-1, 0,-1,-3,-2,-2,-4,-1,
- 0,-2, 0,-1,-3,-2,-2, 6,-2,-4,-4,-2,-3,-3,-2, 0,-2,-2,-3,-3,-4,-1,
- -2, 0, 1,-1,-3, 0, 0,-2, 8,-3,-3,-1,-2,-1,-2,-1,-2,-2, 2,-3,-4,-1,
- -1,-3,-3,-3,-1,-3,-3,-4,-3, 4, 2,-3, 1, 0,-3,-2,-1,-3,-1, 3,-4,-1,
- -1,-2,-3,-4,-1,-2,-3,-4,-3, 2, 4,-2, 2, 0,-3,-2,-1,-2,-1, 1,-4,-1,
- -1, 2, 0,-1,-3, 1, 1,-2,-1,-3,-2, 5,-1,-3,-1, 0,-1,-3,-2,-2,-4,-1,
- -1,-1,-2,-3,-1, 0,-2,-3,-2, 1, 2,-1, 5, 0,-2,-1,-1,-1,-1, 1,-4,-1,
- -2,-3,-3,-3,-2,-3,-3,-3,-1, 0, 0,-3, 0, 6,-4,-2,-2, 1, 3,-1,-4,-1,
- -1,-2,-2,-1,-3,-1,-1,-2,-2,-3,-3,-1,-2,-4, 7,-1,-1,-4,-3,-2,-4,-2,
- 1,-1, 1, 0,-1, 0, 0, 0,-1,-2,-2, 0,-1,-2,-1, 4, 1,-3,-2,-2,-4, 0,
- 0,-1, 0,-1,-1,-1,-1,-2,-2,-1,-1,-1,-1,-2,-1, 1, 5,-2,-2, 0,-4, 0,
- -3,-3,-4,-4,-2,-2,-3,-2,-2,-3,-2,-3,-1, 1,-4,-3,-2,11, 2,-3,-4,-2,
- -2,-2,-2,-3,-2,-1,-2,-3, 2,-1,-1,-2,-1, 3,-3,-2,-2, 2, 7,-1,-4,-1,
- 0,-3,-3,-3,-1,-2,-2,-3,-3, 3, 1,-2, 1,-1,-2,-2, 0,-3,-1, 4,-4,-1,
- -4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4, 1,-4,
- 0,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2, 0, 0,-2,-1,-1,-4,-1
-};
-
-int aln_sm_blast[] = {
- 1, -3, -3, -3, -2,
- -3, 1, -3, -3, -2,
- -3, -3, 1, -3, -2,
- -3, -3, -3, 1, -2,
- -2, -2, -2, -2, -2
-};
-
-int aln_sm_qual[] = {
- 0, -23, -23, -23, 0,
- -23, 0, -23, -23, 0,
- -23, -23, 0, -23, 0,
- -23, -23, -23, 0, 0,
- 0, 0, 0, 0, 0
-};
-
-ka_param_t ka_param_blast = { 5, 2, 5, 2, aln_sm_blast, 5, 50 };
-ka_param_t ka_param_aa2aa = { 10, 2, 10, 2, aln_sm_blosum62, 22, 50 };
-
-ka_param2_t ka_param2_qual = { 37, 11, 37, 11, 37, 11, 0, 0, aln_sm_qual, 5, 50 };
-
-static uint32_t *ka_path2cigar32(const path_t *path, int path_len, int *n_cigar)
-{
- int i, n;
- uint32_t *cigar;
- unsigned char last_type;
-
- if (path_len == 0 || path == 0) {
- *n_cigar = 0;
- return 0;
- }
-
- last_type = path->ctype;
- for (i = n = 1; i < path_len; ++i) {
- if (last_type != path[i].ctype) ++n;
- last_type = path[i].ctype;
- }
- *n_cigar = n;
- cigar = (uint32_t*)calloc(*n_cigar, 4);
-
- cigar[0] = 1u << 4 | path[path_len-1].ctype;
- last_type = path[path_len-1].ctype;
- for (i = path_len - 2, n = 0; i >= 0; --i) {
- if (path[i].ctype == last_type) cigar[n] += 1u << 4;
- else {
- cigar[++n] = 1u << 4 | path[i].ctype;
- last_type = path[i].ctype;
- }
- }
-
- return cigar;
-}
-
-/***************************/
-/* START OF common_align.c */
-/***************************/
-
-#define SET_INF(s) (s).M = (s).I = (s).D = MINOR_INF;
-
-#define set_M(MM, cur, p, sc) \
-{ \
- if ((p)->M >= (p)->I) { \
- if ((p)->M >= (p)->D) { \
- (MM) = (p)->M + (sc); (cur)->Mt = FROM_M; \
- } else { \
- (MM) = (p)->D + (sc); (cur)->Mt = FROM_D; \
- } \
- } else { \
- if ((p)->I > (p)->D) { \
- (MM) = (p)->I + (sc); (cur)->Mt = FROM_I; \
- } else { \
- (MM) = (p)->D + (sc); (cur)->Mt = FROM_D; \
- } \
- } \
-}
-#define set_I(II, cur, p) \
-{ \
- if ((p)->M - gap_open > (p)->I) { \
- (cur)->It = FROM_M; \
- (II) = (p)->M - gap_open - gap_ext; \
- } else { \
- (cur)->It = FROM_I; \
- (II) = (p)->I - gap_ext; \
- } \
-}
-#define set_end_I(II, cur, p) \
-{ \
- if (gap_end_ext >= 0) { \
- if ((p)->M - gap_end_open > (p)->I) { \
- (cur)->It = FROM_M; \
- (II) = (p)->M - gap_end_open - gap_end_ext; \
- } else { \
- (cur)->It = FROM_I; \
- (II) = (p)->I - gap_end_ext; \
- } \
- } else set_I(II, cur, p); \
-}
-#define set_D(DD, cur, p) \
-{ \
- if ((p)->M - gap_open > (p)->D) { \
- (cur)->Dt = FROM_M; \
- (DD) = (p)->M - gap_open - gap_ext; \
- } else { \
- (cur)->Dt = FROM_D; \
- (DD) = (p)->D - gap_ext; \
- } \
-}
-#define set_end_D(DD, cur, p) \
-{ \
- if (gap_end_ext >= 0) { \
- if ((p)->M - gap_end_open > (p)->D) { \
- (cur)->Dt = FROM_M; \
- (DD) = (p)->M - gap_end_open - gap_end_ext; \
- } else { \
- (cur)->Dt = FROM_D; \
- (DD) = (p)->D - gap_end_ext; \
- } \
- } else set_D(DD, cur, p); \
-}
-
-typedef struct {
- uint8_t Mt:3, It:2, Dt:3;
-} dpcell_t;
-
-typedef struct {
- int M, I, D;
-} dpscore_t;
-
-/***************************
- * banded global alignment *
- ***************************/
-uint32_t *ka_global_core(uint8_t *seq1, int len1, uint8_t *seq2, int len2, const ka_param_t *ap, int *_score, int *n_cigar)
-{
- int i, j;
- dpcell_t **dpcell, *q;
- dpscore_t *curr, *last, *s;
- int b1, b2, tmp_end;
- int *mat, end, max = 0;
- uint8_t type, ctype;
- uint32_t *cigar = 0;
-
- int gap_open, gap_ext, gap_end_open, gap_end_ext, b;
- int *score_matrix, N_MATRIX_ROW;
-
- /* initialize some align-related parameters. just for compatibility */
- gap_open = ap->gap_open;
- gap_ext = ap->gap_ext;
- gap_end_open = ap->gap_end_open;
- gap_end_ext = ap->gap_end_ext;
- b = ap->band_width;
- score_matrix = ap->matrix;
- N_MATRIX_ROW = ap->row;
-
- if (n_cigar) *n_cigar = 0;
- if (len1 == 0 || len2 == 0) return 0;
-
- /* calculate b1 and b2 */
- if (len1 > len2) {
- b1 = len1 - len2 + b;
- b2 = b;
- } else {
- b1 = b;
- b2 = len2 - len1 + b;
- }
- if (b1 > len1) b1 = len1;
- if (b2 > len2) b2 = len2;
- --seq1; --seq2;
-
- /* allocate memory */
- end = (b1 + b2 <= len1)? (b1 + b2 + 1) : (len1 + 1);
- dpcell = (dpcell_t**)malloc(sizeof(dpcell_t*) * (len2 + 1));
- for (j = 0; j <= len2; ++j)
- dpcell[j] = (dpcell_t*)malloc(sizeof(dpcell_t) * end);
- for (j = b2 + 1; j <= len2; ++j)
- dpcell[j] -= j - b2;
- curr = (dpscore_t*)malloc(sizeof(dpscore_t) * (len1 + 1));
- last = (dpscore_t*)malloc(sizeof(dpscore_t) * (len1 + 1));
-
- /* set first row */
- SET_INF(*curr); curr->M = 0;
- for (i = 1, s = curr + 1; i < b1; ++i, ++s) {
- SET_INF(*s);
- set_end_D(s->D, dpcell[0] + i, s - 1);
- }
- s = curr; curr = last; last = s;
-
- /* core dynamic programming, part 1 */
- tmp_end = (b2 < len2)? b2 : len2 - 1;
- for (j = 1; j <= tmp_end; ++j) {
- q = dpcell[j]; s = curr; SET_INF(*s);
- set_end_I(s->I, q, last);
- end = (j + b1 <= len1 + 1)? (j + b1 - 1) : len1;
- mat = score_matrix + seq2[j] * N_MATRIX_ROW;
- ++s; ++q;
- for (i = 1; i != end; ++i, ++s, ++q) {
- set_M(s->M, q, last + i - 1, mat[seq1[i]]); /* this will change s->M ! */
- set_I(s->I, q, last + i);
- set_D(s->D, q, s - 1);
- }
- set_M(s->M, q, last + i - 1, mat[seq1[i]]);
- set_D(s->D, q, s - 1);
- if (j + b1 - 1 > len1) { /* bug fixed, 040227 */
- set_end_I(s->I, q, last + i);
- } else s->I = MINOR_INF;
- s = curr; curr = last; last = s;
- }
- /* last row for part 1, use set_end_D() instead of set_D() */
- if (j == len2 && b2 != len2 - 1) {
- q = dpcell[j]; s = curr; SET_INF(*s);
- set_end_I(s->I, q, last);
- end = (j + b1 <= len1 + 1)? (j + b1 - 1) : len1;
- mat = score_matrix + seq2[j] * N_MATRIX_ROW;
- ++s; ++q;
- for (i = 1; i != end; ++i, ++s, ++q) {
- set_M(s->M, q, last + i - 1, mat[seq1[i]]); /* this will change s->M ! */
- set_I(s->I, q, last + i);
- set_end_D(s->D, q, s - 1);
- }
- set_M(s->M, q, last + i - 1, mat[seq1[i]]);
- set_end_D(s->D, q, s - 1);
- if (j + b1 - 1 > len1) { /* bug fixed, 040227 */
- set_end_I(s->I, q, last + i);
- } else s->I = MINOR_INF;
- s = curr; curr = last; last = s;
- ++j;
- }
-
- /* core dynamic programming, part 2 */
- for (; j <= len2 - b2 + 1; ++j) {
- SET_INF(curr[j - b2]);
- mat = score_matrix + seq2[j] * N_MATRIX_ROW;
- end = j + b1 - 1;
- for (i = j - b2 + 1, q = dpcell[j] + i, s = curr + i; i != end; ++i, ++s, ++q) {
- set_M(s->M, q, last + i - 1, mat[seq1[i]]);
- set_I(s->I, q, last + i);
- set_D(s->D, q, s - 1);
- }
- set_M(s->M, q, last + i - 1, mat[seq1[i]]);
- set_D(s->D, q, s - 1);
- s->I = MINOR_INF;
- s = curr; curr = last; last = s;
- }
-
- /* core dynamic programming, part 3 */
- for (; j < len2; ++j) {
- SET_INF(curr[j - b2]);
- mat = score_matrix + seq2[j] * N_MATRIX_ROW;
- for (i = j - b2 + 1, q = dpcell[j] + i, s = curr + i; i < len1; ++i, ++s, ++q) {
- set_M(s->M, q, last + i - 1, mat[seq1[i]]);
- set_I(s->I, q, last + i);
- set_D(s->D, q, s - 1);
- }
- set_M(s->M, q, last + len1 - 1, mat[seq1[i]]);
- set_end_I(s->I, q, last + i);
- set_D(s->D, q, s - 1);
- s = curr; curr = last; last = s;
- }
- /* last row */
- if (j == len2) {
- SET_INF(curr[j - b2]);
- mat = score_matrix + seq2[j] * N_MATRIX_ROW;
- for (i = j - b2 + 1, q = dpcell[j] + i, s = curr + i; i < len1; ++i, ++s, ++q) {
- set_M(s->M, q, last + i - 1, mat[seq1[i]]);
- set_I(s->I, q, last + i);
- set_end_D(s->D, q, s - 1);
- }
- set_M(s->M, q, last + len1 - 1, mat[seq1[i]]);
- set_end_I(s->I, q, last + i);
- set_end_D(s->D, q, s - 1);
- s = curr; curr = last; last = s;
- }
-
- *_score = last[len1].M;
- if (n_cigar) { /* backtrace */
- path_t *p, *path = (path_t*)malloc(sizeof(path_t) * (len1 + len2 + 2));
- i = len1; j = len2;
- q = dpcell[j] + i;
- s = last + len1;
- max = s->M; type = q->Mt; ctype = FROM_M;
- if (s->I > max) { max = s->I; type = q->It; ctype = FROM_I; }
- if (s->D > max) { max = s->D; type = q->Dt; ctype = FROM_D; }
-
- p = path;
- p->ctype = ctype; p->i = i; p->j = j; /* bug fixed 040408 */
- ++p;
- do {
- switch (ctype) {
- case FROM_M: --i; --j; break;
- case FROM_I: --j; break;
- case FROM_D: --i; break;
- }
- q = dpcell[j] + i;
- ctype = type;
- switch (type) {
- case FROM_M: type = q->Mt; break;
- case FROM_I: type = q->It; break;
- case FROM_D: type = q->Dt; break;
- }
- p->ctype = ctype; p->i = i; p->j = j;
- ++p;
- } while (i || j);
- cigar = ka_path2cigar32(path, p - path - 1, n_cigar);
- free(path);
- }
-
- /* free memory */
- for (j = b2 + 1; j <= len2; ++j)
- dpcell[j] += j - b2;
- for (j = 0; j <= len2; ++j)
- free(dpcell[j]);
- free(dpcell);
- free(curr); free(last);
-
- return cigar;
-}
-
-typedef struct {
- int M, I, D;
-} score_aux_t;
-
-#define MINUS_INF -0x40000000
-
-// matrix: len2 rows and len1 columns
-int ka_global_score(const uint8_t *_seq1, int len1, const uint8_t *_seq2, int len2, const ka_param2_t *ap)
-{
-
-#define __score_aux(_p, _q0, _sc, _io, _ie, _do, _de) { \
- int t1, t2; \
- score_aux_t *_q; \
- _q = _q0; \
- _p->M = _q->M >= _q->I? _q->M : _q->I; \
- _p->M = _p->M >= _q->D? _p->M : _q->D; \
- _p->M += (_sc); \
- ++_q; t1 = _q->M - _io - _ie; t2 = _q->I - _ie; _p->I = t1 >= t2? t1 : t2; \
- _q = _p-1; t1 = _q->M - _do - _de; t2 = _q->D - _de; _p->D = t1 >= t2? t1 : t2; \
- }
-
- int i, j, bw, scmat_size = ap->row, *scmat = ap->matrix, ret;
- const uint8_t *seq1, *seq2;
- score_aux_t *curr, *last, *swap;
- bw = abs(len1 - len2) + ap->band_width;
- i = len1 > len2? len1 : len2;
- if (bw > i + 1) bw = i + 1;
- seq1 = _seq1 - 1; seq2 = _seq2 - 1;
- curr = calloc(len1 + 2, sizeof(score_aux_t));
- last = calloc(len1 + 2, sizeof(score_aux_t));
- { // the zero-th row
- int x, end = len1;
- score_aux_t *p;
- j = 0;
- x = j + bw; end = len1 < x? len1 : x; // band end
- p = curr;
- p->M = 0; p->I = p->D = MINUS_INF;
- for (i = 1, p = &curr[1]; i <= end; ++i, ++p)
- p->M = p->I = MINUS_INF, p->D = -(ap->edo + ap->ede * i);
- p->M = p->I = p->D = MINUS_INF;
- swap = curr; curr = last; last = swap;
- }
- for (j = 1; j < len2; ++j) {
- int x, beg = 0, end = len1, *scrow, col_end;
- score_aux_t *p;
- x = j - bw; beg = 0 > x? 0 : x; // band start
- x = j + bw; end = len1 < x? len1 : x; // band end
- if (beg == 0) { // from zero-th column
- p = curr;
- p->M = p->D = MINUS_INF; p->I = -(ap->eio + ap->eie * j);
- ++beg; // then beg = 1
- }
- scrow = scmat + seq2[j] * scmat_size;
- if (end == len1) col_end = 1, --end;
- else col_end = 0;
- for (i = beg, p = &curr[beg]; i <= end; ++i, ++p)
- __score_aux(p, &last[i-1], scrow[(int)seq1[i]], ap->iio, ap->iie, ap->ido, ap->ide);
- if (col_end) {
- __score_aux(p, &last[i-1], scrow[(int)seq1[i]], ap->eio, ap->eie, ap->ido, ap->ide);
- ++p;
- }
- p->M = p->I = p->D = MINUS_INF;
-// for (i = 0; i <= len1; ++i) printf("(%d,%d,%d) ", curr[i].M, curr[i].I, curr[i].D); putchar('\n');
- swap = curr; curr = last; last = swap;
- }
- { // the last row
- int x, beg = 0, *scrow;
- score_aux_t *p;
- j = len2;
- x = j - bw; beg = 0 > x? 0 : x; // band start
- if (beg == 0) { // from zero-th column
- p = curr;
- p->M = p->D = MINUS_INF; p->I = -(ap->eio + ap->eie * j);
- ++beg; // then beg = 1
- }
- scrow = scmat + seq2[j] * scmat_size;
- for (i = beg, p = &curr[beg]; i < len1; ++i, ++p)
- __score_aux(p, &last[i-1], scrow[(int)seq1[i]], ap->iio, ap->iie, ap->edo, ap->ede);
- __score_aux(p, &last[i-1], scrow[(int)seq1[i]], ap->eio, ap->eie, ap->edo, ap->ede);
-// for (i = 0; i <= len1; ++i) printf("(%d,%d,%d) ", curr[i].M, curr[i].I, curr[i].D); putchar('\n');
- }
- ret = curr[len1].M >= curr[len1].I? curr[len1].M : curr[len1].I;
- ret = ret >= curr[len1].D? ret : curr[len1].D;
- free(curr); free(last);
- return ret;
-}
-
-#ifdef _MAIN
-int main(int argc, char *argv[])
-{
-// int len1 = 35, len2 = 35;
-// uint8_t *seq1 = (uint8_t*)"\0\0\3\3\2\0\0\0\1\0\2\1\2\1\3\2\3\3\3\0\2\3\2\1\1\3\3\3\2\3\3\1\0\0\1";
-// uint8_t *seq2 = (uint8_t*)"\0\0\3\3\2\0\0\0\1\0\2\1\2\1\3\2\3\3\3\0\2\3\2\1\1\3\3\3\2\3\3\1\0\1\0";
- int len1 = 4, len2 = 4;
- uint8_t *seq1 = (uint8_t*)"\1\0\0\1";
- uint8_t *seq2 = (uint8_t*)"\1\0\1\0";
- int sc;
-// ka_global_core(seq1, 2, seq2, 1, &ka_param_qual, &sc, 0);
- sc = ka_global_score(seq1, len1, seq2, len2, &ka_param2_qual);
- printf("%d\n", sc);
- return 0;
-}
-#endif
diff --git a/knetfile.c b/knetfile.c
deleted file mode 100644
index af09146..0000000
--- a/knetfile.c
+++ /dev/null
@@ -1,632 +0,0 @@
-/* The MIT License
-
- Copyright (c) 2008 by Genome Research Ltd (GRL).
- 2010 by Attractive Chaos <attractor at live.co.uk>
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- "Software"), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be
- included in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE.
-*/
-
-/* Probably I will not do socket programming in the next few years and
- therefore I decide to heavily annotate this file, for Linux and
- Windows as well. -ac */
-
-#include <time.h>
-#include <stdio.h>
-#include <ctype.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-#include <unistd.h>
-#include <sys/types.h>
-
-#ifndef _WIN32
-#include <netdb.h>
-#include <arpa/inet.h>
-#include <sys/socket.h>
-#endif
-
-#include "knetfile.h"
-
-/* In winsock.h, the type of a socket is SOCKET, which is: "typedef
- * u_int SOCKET". An invalid SOCKET is: "(SOCKET)(~0)", or signed
- * integer -1. In knetfile.c, I use "int" for socket type
- * throughout. This should be improved to avoid confusion.
- *
- * In Linux/Mac, recv() and read() do almost the same thing. You can see
- * in the header file that netread() is simply an alias of read(). In
- * Windows, however, they are different and using recv() is mandatory.
- */
-
-/* This function tests if the file handler is ready for reading (or
- * writing if is_read==0). */
-static int socket_wait(int fd, int is_read)
-{
- fd_set fds, *fdr = 0, *fdw = 0;
- struct timeval tv;
- int ret;
- tv.tv_sec = 5; tv.tv_usec = 0; // 5 seconds time out
- FD_ZERO(&fds);
- FD_SET(fd, &fds);
- if (is_read) fdr = &fds;
- else fdw = &fds;
- ret = select(fd+1, fdr, fdw, 0, &tv);
-#ifndef _WIN32
- if (ret == -1) perror("select");
-#else
- if (ret == 0)
- fprintf(stderr, "select time-out\n");
- else if (ret == SOCKET_ERROR)
- fprintf(stderr, "select: %d\n", WSAGetLastError());
-#endif
- return ret;
-}
-
-#ifndef _WIN32
-/* This function does not work with Windows due to the lack of
- * getaddrinfo() in winsock. It is addapted from an example in "Beej's
- * Guide to Network Programming" (http://beej.us/guide/bgnet/). */
-static int socket_connect(const char *host, const char *port)
-{
-#define __err_connect(func) do { perror(func); freeaddrinfo(res); return -1; } while (0)
-
- int on = 1, fd;
- struct linger lng = { 0, 0 };
- struct addrinfo hints, *res = 0;
- memset(&hints, 0, sizeof(struct addrinfo));
- hints.ai_family = AF_UNSPEC;
- hints.ai_socktype = SOCK_STREAM;
- /* In Unix/Mac, getaddrinfo() is the most convenient way to get
- * server information. */
- if (getaddrinfo(host, port, &hints, &res) != 0) __err_connect("getaddrinfo");
- if ((fd = socket(res->ai_family, res->ai_socktype, res->ai_protocol)) == -1) __err_connect("socket");
- /* The following two setsockopt() are used by ftplib
- * (http://nbpfaus.net/~pfau/ftplib/). I am not sure if they
- * necessary. */
- if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)) == -1) __err_connect("setsockopt");
- if (setsockopt(fd, SOL_SOCKET, SO_LINGER, &lng, sizeof(lng)) == -1) __err_connect("setsockopt");
- if (connect(fd, res->ai_addr, res->ai_addrlen) != 0) __err_connect("connect");
- freeaddrinfo(res);
- return fd;
-}
-#else
-/* MinGW's printf has problem with "%lld" */
-char *int64tostr(char *buf, int64_t x)
-{
- int cnt;
- int i = 0;
- do {
- buf[i++] = '0' + x % 10;
- x /= 10;
- } while (x);
- buf[i] = 0;
- for (cnt = i, i = 0; i < cnt/2; ++i) {
- int c = buf[i]; buf[i] = buf[cnt-i-1]; buf[cnt-i-1] = c;
- }
- return buf;
-}
-
-int64_t strtoint64(const char *buf)
-{
- int64_t x;
- for (x = 0; *buf != '\0'; ++buf)
- x = x * 10 + ((int64_t) *buf - 48);
- return x;
-}
-/* In windows, the first thing is to establish the TCP connection. */
-int knet_win32_init()
-{
- WSADATA wsaData;
- return WSAStartup(MAKEWORD(2, 2), &wsaData);
-}
-void knet_win32_destroy()
-{
- WSACleanup();
-}
-/* A slightly modfied version of the following function also works on
- * Mac (and presummably Linux). However, this function is not stable on
- * my Mac. It sometimes works fine but sometimes does not. Therefore for
- * non-Windows OS, I do not use this one. */
-static SOCKET socket_connect(const char *host, const char *port)
-{
-#define __err_connect(func) \
- do { \
- fprintf(stderr, "%s: %d\n", func, WSAGetLastError()); \
- return -1; \
- } while (0)
-
- int on = 1;
- SOCKET fd;
- struct linger lng = { 0, 0 };
- struct sockaddr_in server;
- struct hostent *hp = 0;
- // open socket
- if ((fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == INVALID_SOCKET) __err_connect("socket");
- if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (char*)&on, sizeof(on)) == -1) __err_connect("setsockopt");
- if (setsockopt(fd, SOL_SOCKET, SO_LINGER, (char*)&lng, sizeof(lng)) == -1) __err_connect("setsockopt");
- // get host info
- if (isalpha(host[0])) hp = gethostbyname(host);
- else {
- struct in_addr addr;
- addr.s_addr = inet_addr(host);
- hp = gethostbyaddr((char*)&addr, 4, AF_INET);
- }
- if (hp == 0) __err_connect("gethost");
- // connect
- server.sin_addr.s_addr = *((unsigned long*)hp->h_addr);
- server.sin_family= AF_INET;
- server.sin_port = htons(atoi(port));
- if (connect(fd, (struct sockaddr*)&server, sizeof(server)) != 0) __err_connect("connect");
- // freehostent(hp); // strangely in MSDN, hp is NOT freed (memory leak?!)
- return fd;
-}
-#endif
-
-static off_t my_netread(int fd, void *buf, off_t len)
-{
- off_t rest = len, curr, l = 0;
- /* recv() and read() may not read the required length of data with
- * one call. They have to be called repeatedly. */
- while (rest) {
- if (socket_wait(fd, 1) <= 0) break; // socket is not ready for reading
- curr = netread(fd, buf + l, rest);
- /* According to the glibc manual, section 13.2, a zero returned
- * value indicates end-of-file (EOF), which should mean that
- * read() will not return zero if EOF has not been met but data
- * are not immediately available. */
- if (curr == 0) break;
- l += curr; rest -= curr;
- }
- return l;
-}
-
-/*************************
- * FTP specific routines *
- *************************/
-
-static int kftp_get_response(knetFile *ftp)
-{
-#ifndef _WIN32
- unsigned char c;
-#else
- char c;
-#endif
- int n = 0;
- char *p;
- if (socket_wait(ftp->ctrl_fd, 1) <= 0) return 0;
- while (netread(ftp->ctrl_fd, &c, 1)) { // FIXME: this is *VERY BAD* for unbuffered I/O
- //fputc(c, stderr);
- if (n >= ftp->max_response) {
- ftp->max_response = ftp->max_response? ftp->max_response<<1 : 256;
- ftp->response = realloc(ftp->response, ftp->max_response);
- }
- ftp->response[n++] = c;
- if (c == '\n') {
- if (n >= 4 && isdigit(ftp->response[0]) && isdigit(ftp->response[1]) && isdigit(ftp->response[2])
- && ftp->response[3] != '-') break;
- n = 0;
- continue;
- }
- }
- if (n < 2) return -1;
- ftp->response[n-2] = 0;
- return strtol(ftp->response, &p, 0);
-}
-
-static int kftp_send_cmd(knetFile *ftp, const char *cmd, int is_get)
-{
- if (socket_wait(ftp->ctrl_fd, 0) <= 0) return -1; // socket is not ready for writing
- netwrite(ftp->ctrl_fd, cmd, strlen(cmd));
- return is_get? kftp_get_response(ftp) : 0;
-}
-
-static int kftp_pasv_prep(knetFile *ftp)
-{
- char *p;
- int v[6];
- kftp_send_cmd(ftp, "PASV\r\n", 1);
- for (p = ftp->response; *p && *p != '('; ++p);
- if (*p != '(') return -1;
- ++p;
- sscanf(p, "%d,%d,%d,%d,%d,%d", &v[0], &v[1], &v[2], &v[3], &v[4], &v[5]);
- memcpy(ftp->pasv_ip, v, 4 * sizeof(int));
- ftp->pasv_port = (v[4]<<8&0xff00) + v[5];
- return 0;
-}
-
-
-static int kftp_pasv_connect(knetFile *ftp)
-{
- char host[80], port[10];
- if (ftp->pasv_port == 0) {
- fprintf(stderr, "[kftp_pasv_connect] kftp_pasv_prep() is not called before hand.\n");
- return -1;
- }
- sprintf(host, "%d.%d.%d.%d", ftp->pasv_ip[0], ftp->pasv_ip[1], ftp->pasv_ip[2], ftp->pasv_ip[3]);
- sprintf(port, "%d", ftp->pasv_port);
- ftp->fd = socket_connect(host, port);
- if (ftp->fd == -1) return -1;
- return 0;
-}
-
-int kftp_connect(knetFile *ftp)
-{
- ftp->ctrl_fd = socket_connect(ftp->host, ftp->port);
- if (ftp->ctrl_fd == -1) return -1;
- kftp_get_response(ftp);
- kftp_send_cmd(ftp, "USER anonymous\r\n", 1);
- kftp_send_cmd(ftp, "PASS kftp@\r\n", 1);
- kftp_send_cmd(ftp, "TYPE I\r\n", 1);
- return 0;
-}
-
-int kftp_reconnect(knetFile *ftp)
-{
- if (ftp->ctrl_fd != -1) {
- netclose(ftp->ctrl_fd);
- ftp->ctrl_fd = -1;
- }
- netclose(ftp->fd);
- ftp->fd = -1;
- return kftp_connect(ftp);
-}
-
-// initialize ->type, ->host, ->retr and ->size
-knetFile *kftp_parse_url(const char *fn, const char *mode)
-{
- knetFile *fp;
- char *p;
- int l;
- if (strstr(fn, "ftp://") != fn) return 0;
- for (p = (char*)fn + 6; *p && *p != '/'; ++p);
- if (*p != '/') return 0;
- l = p - fn - 6;
- fp = calloc(1, sizeof(knetFile));
- fp->type = KNF_TYPE_FTP;
- fp->fd = -1;
- /* the Linux/Mac version of socket_connect() also recognizes a port
- * like "ftp", but the Windows version does not. */
- fp->port = strdup("21");
- fp->host = calloc(l + 1, 1);
- if (strchr(mode, 'c')) fp->no_reconnect = 1;
- strncpy(fp->host, fn + 6, l);
- fp->retr = calloc(strlen(p) + 8, 1);
- sprintf(fp->retr, "RETR %s\r\n", p);
- fp->size_cmd = calloc(strlen(p) + 8, 1);
- sprintf(fp->size_cmd, "SIZE %s\r\n", p);
- fp->seek_offset = 0;
- return fp;
-}
-// place ->fd at offset off
-int kftp_connect_file(knetFile *fp)
-{
- int ret;
- long long file_size;
- if (fp->fd != -1) {
- netclose(fp->fd);
- if (fp->no_reconnect) kftp_get_response(fp);
- }
- kftp_pasv_prep(fp);
- kftp_send_cmd(fp, fp->size_cmd, 1);
-#ifndef _WIN32
- if ( sscanf(fp->response,"%*d %lld", &file_size) != 1 )
- {
- fprintf(stderr,"[kftp_connect_file] %s\n", fp->response);
- return -1;
- }
-#else
- const char *p = fp->response;
- while (*p != ' ') ++p;
- while (*p < '0' || *p > '9') ++p;
- file_size = strtoint64(p);
-#endif
- fp->file_size = file_size;
- if (fp->offset>=0) {
- char tmp[32];
-#ifndef _WIN32
- sprintf(tmp, "REST %lld\r\n", (long long)fp->offset);
-#else
- strcpy(tmp, "REST ");
- int64tostr(tmp + 5, fp->offset);
- strcat(tmp, "\r\n");
-#endif
- kftp_send_cmd(fp, tmp, 1);
- }
- kftp_send_cmd(fp, fp->retr, 0);
- kftp_pasv_connect(fp);
- ret = kftp_get_response(fp);
- if (ret != 150) {
- fprintf(stderr, "[kftp_connect_file] %s\n", fp->response);
- netclose(fp->fd);
- fp->fd = -1;
- return -1;
- }
- fp->is_ready = 1;
- return 0;
-}
-
-
-/**************************
- * HTTP specific routines *
- **************************/
-
-knetFile *khttp_parse_url(const char *fn, const char *mode)
-{
- knetFile *fp;
- char *p, *proxy, *q;
- int l;
- if (strstr(fn, "http://") != fn) return 0;
- // set ->http_host
- for (p = (char*)fn + 7; *p && *p != '/'; ++p);
- l = p - fn - 7;
- fp = calloc(1, sizeof(knetFile));
- fp->http_host = calloc(l + 1, 1);
- strncpy(fp->http_host, fn + 7, l);
- fp->http_host[l] = 0;
- for (q = fp->http_host; *q && *q != ':'; ++q);
- if (*q == ':') *q++ = 0;
- // get http_proxy
- proxy = getenv("http_proxy");
- // set ->host, ->port and ->path
- if (proxy == 0) {
- fp->host = strdup(fp->http_host); // when there is no proxy, server name is identical to http_host name.
- fp->port = strdup(*q? q : "80");
- fp->path = strdup(*p? p : "/");
- } else {
- fp->host = (strstr(proxy, "http://") == proxy)? strdup(proxy + 7) : strdup(proxy);
- for (q = fp->host; *q && *q != ':'; ++q);
- if (*q == ':') *q++ = 0;
- fp->port = strdup(*q? q : "80");
- fp->path = strdup(fn);
- }
- fp->type = KNF_TYPE_HTTP;
- fp->ctrl_fd = fp->fd = -1;
- fp->seek_offset = 0;
- return fp;
-}
-
-int khttp_connect_file(knetFile *fp)
-{
- int ret, l = 0;
- char *buf, *p;
- if (fp->fd != -1) netclose(fp->fd);
- fp->fd = socket_connect(fp->host, fp->port);
- buf = calloc(0x10000, 1); // FIXME: I am lazy... But in principle, 64KB should be large enough.
- l += sprintf(buf + l, "GET %s HTTP/1.0\r\nHost: %s\r\n", fp->path, fp->http_host);
- l += sprintf(buf + l, "Range: bytes=%lld-\r\n", (long long)fp->offset);
- l += sprintf(buf + l, "\r\n");
- netwrite(fp->fd, buf, l);
- l = 0;
- while (netread(fp->fd, buf + l, 1)) { // read HTTP header; FIXME: bad efficiency
- if (buf[l] == '\n' && l >= 3)
- if (strncmp(buf + l - 3, "\r\n\r\n", 4) == 0) break;
- ++l;
- }
- buf[l] = 0;
- if (l < 14) { // prematured header
- netclose(fp->fd);
- fp->fd = -1;
- return -1;
- }
- ret = strtol(buf + 8, &p, 0); // HTTP return code
- if (ret == 200 && fp->offset>0) { // 200 (complete result); then skip beginning of the file
- off_t rest = fp->offset;
- while (rest) {
- off_t l = rest < 0x10000? rest : 0x10000;
- rest -= my_netread(fp->fd, buf, l);
- }
- } else if (ret != 206 && ret != 200) {
- free(buf);
- fprintf(stderr, "[khttp_connect_file] fail to open file (HTTP code: %d).\n", ret);
- netclose(fp->fd);
- fp->fd = -1;
- return -1;
- }
- free(buf);
- fp->is_ready = 1;
- return 0;
-}
-
-/********************
- * Generic routines *
- ********************/
-
-knetFile *knet_open(const char *fn, const char *mode)
-{
- knetFile *fp = 0;
- if (mode[0] != 'r') {
- fprintf(stderr, "[kftp_open] only mode \"r\" is supported.\n");
- return 0;
- }
- if (strstr(fn, "ftp://") == fn) {
- fp = kftp_parse_url(fn, mode);
- if (fp == 0) return 0;
- if (kftp_connect(fp) == -1) {
- knet_close(fp);
- return 0;
- }
- kftp_connect_file(fp);
- } else if (strstr(fn, "http://") == fn) {
- fp = khttp_parse_url(fn, mode);
- if (fp == 0) return 0;
- khttp_connect_file(fp);
- } else { // local file
-#ifdef _WIN32
- /* In windows, O_BINARY is necessary. In Linux/Mac, O_BINARY may
- * be undefined on some systems, although it is defined on my
- * Mac and the Linux I have tested on. */
- int fd = open(fn, O_RDONLY | O_BINARY);
-#else
- int fd = open(fn, O_RDONLY);
-#endif
- if (fd == -1) {
- perror("open");
- return 0;
- }
- fp = (knetFile*)calloc(1, sizeof(knetFile));
- fp->type = KNF_TYPE_LOCAL;
- fp->fd = fd;
- fp->ctrl_fd = -1;
- }
- if (fp && fp->fd == -1) {
- knet_close(fp);
- return 0;
- }
- return fp;
-}
-
-knetFile *knet_dopen(int fd, const char *mode)
-{
- knetFile *fp = (knetFile*)calloc(1, sizeof(knetFile));
- fp->type = KNF_TYPE_LOCAL;
- fp->fd = fd;
- return fp;
-}
-
-off_t knet_read(knetFile *fp, void *buf, off_t len)
-{
- off_t l = 0;
- if (fp->fd == -1) return 0;
- if (fp->type == KNF_TYPE_FTP) {
- if (fp->is_ready == 0) {
- if (!fp->no_reconnect) kftp_reconnect(fp);
- kftp_connect_file(fp);
- }
- } else if (fp->type == KNF_TYPE_HTTP) {
- if (fp->is_ready == 0)
- khttp_connect_file(fp);
- }
- if (fp->type == KNF_TYPE_LOCAL) { // on Windows, the following block is necessary; not on UNIX
- off_t rest = len, curr;
- while (rest) {
- do {
- curr = read(fp->fd, buf + l, rest);
- } while (curr < 0 && EINTR == errno);
- if (curr < 0) return -1;
- if (curr == 0) break;
- l += curr; rest -= curr;
- }
- } else l = my_netread(fp->fd, buf, len);
- fp->offset += l;
- return l;
-}
-
-off_t knet_seek(knetFile *fp, int64_t off, int whence)
-{
- if (whence == SEEK_SET && off == fp->offset) return 0;
- if (fp->type == KNF_TYPE_LOCAL) {
- /* Be aware that lseek() returns the offset after seeking,
- * while fseek() returns zero on success. */
- off_t offset = lseek(fp->fd, off, whence);
- if (offset == -1) {
- // Be silent, it is OK for knet_seek to fail when the file is streamed
- // fprintf(stderr,"[knet_seek] %s\n", strerror(errno));
- return -1;
- }
- fp->offset = offset;
- return 0;
- }
- else if (fp->type == KNF_TYPE_FTP)
- {
- if (whence==SEEK_CUR)
- fp->offset += off;
- else if (whence==SEEK_SET)
- fp->offset = off;
- else if ( whence==SEEK_END)
- fp->offset = fp->file_size+off;
- fp->is_ready = 0;
- return 0;
- }
- else if (fp->type == KNF_TYPE_HTTP)
- {
- if (whence == SEEK_END) { // FIXME: can we allow SEEK_END in future?
- fprintf(stderr, "[knet_seek] SEEK_END is not supported for HTTP. Offset is unchanged.\n");
- errno = ESPIPE;
- return -1;
- }
- if (whence==SEEK_CUR)
- fp->offset += off;
- else if (whence==SEEK_SET)
- fp->offset = off;
- fp->is_ready = 0;
- return 0;
- }
- errno = EINVAL;
- fprintf(stderr,"[knet_seek] %s\n", strerror(errno));
- return -1;
-}
-
-int knet_close(knetFile *fp)
-{
- if (fp == 0) return 0;
- if (fp->ctrl_fd != -1) netclose(fp->ctrl_fd); // FTP specific
- if (fp->fd != -1) {
- /* On Linux/Mac, netclose() is an alias of close(), but on
- * Windows, it is an alias of closesocket(). */
- if (fp->type == KNF_TYPE_LOCAL) close(fp->fd);
- else netclose(fp->fd);
- }
- free(fp->host); free(fp->port);
- free(fp->response); free(fp->retr); // FTP specific
- free(fp->path); free(fp->http_host); // HTTP specific
- free(fp);
- return 0;
-}
-
-#ifdef KNETFILE_MAIN
-int main(void)
-{
- char *buf;
- knetFile *fp;
- int type = 4, l;
-#ifdef _WIN32
- knet_win32_init();
-#endif
- buf = calloc(0x100000, 1);
- if (type == 0) {
- fp = knet_open("knetfile.c", "r");
- knet_seek(fp, 1000, SEEK_SET);
- } else if (type == 1) { // NCBI FTP, large file
- fp = knet_open("ftp://ftp.ncbi.nih.gov/1000genomes/ftp/data/NA12878/alignment/NA12878.chrom6.SLX.SRP000032.2009_06.bam", "r");
- knet_seek(fp, 2500000000ll, SEEK_SET);
- l = knet_read(fp, buf, 255);
- } else if (type == 2) {
- fp = knet_open("ftp://ftp.sanger.ac.uk/pub4/treefam/tmp/index.shtml", "r");
- knet_seek(fp, 1000, SEEK_SET);
- } else if (type == 3) {
- fp = knet_open("http://www.sanger.ac.uk/Users/lh3/index.shtml", "r");
- knet_seek(fp, 1000, SEEK_SET);
- } else if (type == 4) {
- fp = knet_open("http://www.sanger.ac.uk/Users/lh3/ex1.bam", "r");
- knet_read(fp, buf, 10000);
- knet_seek(fp, 20000, SEEK_SET);
- knet_seek(fp, 10000, SEEK_SET);
- l = knet_read(fp, buf+10000, 10000000) + 10000;
- }
- if (type != 4 && type != 1) {
- knet_read(fp, buf, 255);
- buf[255] = 0;
- printf("%s\n", buf);
- } else write(fileno(stdout), buf, l);
- knet_close(fp);
- free(buf);
- return 0;
-}
-#endif
diff --git a/kprobaln.c b/kprobaln.c
deleted file mode 100644
index 04e526a..0000000
--- a/kprobaln.c
+++ /dev/null
@@ -1,280 +0,0 @@
-/* The MIT License
-
- Copyright (c) 2003-2006, 2008-2010, by Heng Li <lh3lh3 at live.co.uk>
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- "Software"), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be
- included in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE.
-*/
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdint.h>
-#include <math.h>
-#include "kprobaln.h"
-
-/*****************************************
- * Probabilistic banded glocal alignment *
- *****************************************/
-
-#define EI .25
-#define EM .33333333333
-
-static float g_qual2prob[256];
-
-#define set_u(u, b, i, k) { int x=(i)-(b); x=x>0?x:0; (u)=((k)-x+1)*3; }
-
-kpa_par_t kpa_par_def = { 0.001, 0.1, 10 };
-kpa_par_t kpa_par_alt = { 0.0001, 0.01, 10 };
-
-/*
- The topology of the profile HMM:
-
- /\ /\ /\ /\
- I[1] I[k-1] I[k] I[L]
- ^ \ \ ^ \ ^ \ \ ^
- | \ \ | \ | \ \ |
- M[0] M[1] -> ... -> M[k-1] -> M[k] -> ... -> M[L] M[L+1]
- \ \/ \/ \/ /
- \ /\ /\ /\ /
- -> D[k-1] -> D[k] ->
-
- M[0] points to every {M,I}[k] and every {M,I}[k] points M[L+1].
-
- On input, _ref is the reference sequence and _query is the query
- sequence. Both are sequences of 0/1/2/3/4 where 4 stands for an
- ambiguous residue. iqual is the base quality. c sets the gap open
- probability, gap extension probability and band width.
-
- On output, state and q are arrays of length l_query. The higher 30
- bits give the reference position the query base is matched to and the
- lower two bits can be 0 (an alignment match) or 1 (an
- insertion). q[i] gives the phred scaled posterior probability of
- state[i] being wrong.
- */
-int kpa_glocal(const uint8_t *_ref, int l_ref, const uint8_t *_query, int l_query, const uint8_t *iqual,
- const kpa_par_t *c, int *state, uint8_t *q)
-{
- double **f, **b = 0, *s, m[9], sI, sM, bI, bM, pb;
- float *qual, *_qual;
- const uint8_t *ref, *query;
- int bw, bw2, i, k, is_diff = 0, is_backward = 1, Pr;
-
- if ( l_ref<=0 || l_query<=0 ) return 0; // FIXME: this may not be an ideal fix, just prevents sefgault
-
- /*** initialization ***/
- is_backward = state && q? 1 : 0;
- ref = _ref - 1; query = _query - 1; // change to 1-based coordinate
- bw = l_ref > l_query? l_ref : l_query;
- if (bw > c->bw) bw = c->bw;
- if (bw < abs(l_ref - l_query)) bw = abs(l_ref - l_query);
- bw2 = bw * 2 + 1;
- // allocate the forward and backward matrices f[][] and b[][] and the scaling array s[]
- f = calloc(l_query+1, sizeof(void*));
- if (is_backward) b = calloc(l_query+1, sizeof(void*));
- for (i = 0; i <= l_query; ++i) { // FIXME: this will lead in segfault for l_query==0
- f[i] = calloc(bw2 * 3 + 6, sizeof(double)); // FIXME: this is over-allocated for very short seqs
- if (is_backward) b[i] = calloc(bw2 * 3 + 6, sizeof(double));
- }
- s = calloc(l_query+2, sizeof(double)); // s[] is the scaling factor to avoid underflow
- // initialize qual
- _qual = calloc(l_query, sizeof(float));
- if (g_qual2prob[0] == 0)
- for (i = 0; i < 256; ++i)
- g_qual2prob[i] = pow(10, -i/10.);
- for (i = 0; i < l_query; ++i) _qual[i] = g_qual2prob[iqual? iqual[i] : 30];
- qual = _qual - 1;
- // initialize transition probability
- sM = sI = 1. / (2 * l_query + 2); // the value here seems not to affect results; FIXME: need proof
- m[0*3+0] = (1 - c->d - c->d) * (1 - sM); m[0*3+1] = m[0*3+2] = c->d * (1 - sM);
- m[1*3+0] = (1 - c->e) * (1 - sI); m[1*3+1] = c->e * (1 - sI); m[1*3+2] = 0.;
- m[2*3+0] = 1 - c->e; m[2*3+1] = 0.; m[2*3+2] = c->e;
- bM = (1 - c->d) / l_ref; bI = c->d / l_ref; // (bM+bI)*l_ref==1
- /*** forward ***/
- // f[0]
- set_u(k, bw, 0, 0);
- f[0][k] = s[0] = 1.;
- { // f[1]
- double *fi = f[1], sum;
- int beg = 1, end = l_ref < bw + 1? l_ref : bw + 1, _beg, _end;
- for (k = beg, sum = 0.; k <= end; ++k) {
- int u;
- double e = (ref[k] > 3 || query[1] > 3)? 1. : ref[k] == query[1]? 1. - qual[1] : qual[1] * EM;
- set_u(u, bw, 1, k);
- fi[u+0] = e * bM; fi[u+1] = EI * bI;
- sum += fi[u] + fi[u+1];
- }
- // rescale
- s[1] = sum;
- set_u(_beg, bw, 1, beg); set_u(_end, bw, 1, end); _end += 2;
- for (k = _beg; k <= _end; ++k) fi[k] /= sum;
- }
- // f[2..l_query]
- for (i = 2; i <= l_query; ++i) {
- double *fi = f[i], *fi1 = f[i-1], sum, qli = qual[i];
- int beg = 1, end = l_ref, x, _beg, _end;
- uint8_t qyi = query[i];
- x = i - bw; beg = beg > x? beg : x; // band start
- x = i + bw; end = end < x? end : x; // band end
- for (k = beg, sum = 0.; k <= end; ++k) {
- int u, v11, v01, v10;
- double e;
- e = (ref[k] > 3 || qyi > 3)? 1. : ref[k] == qyi? 1. - qli : qli * EM;
- set_u(u, bw, i, k); set_u(v11, bw, i-1, k-1); set_u(v10, bw, i-1, k); set_u(v01, bw, i, k-1);
- fi[u+0] = e * (m[0] * fi1[v11+0] + m[3] * fi1[v11+1] + m[6] * fi1[v11+2]);
- fi[u+1] = EI * (m[1] * fi1[v10+0] + m[4] * fi1[v10+1]);
- fi[u+2] = m[2] * fi[v01+0] + m[8] * fi[v01+2];
- sum += fi[u] + fi[u+1] + fi[u+2];
-// fprintf(stderr, "F (%d,%d;%d): %lg,%lg,%lg\n", i, k, u, fi[u], fi[u+1], fi[u+2]); // DEBUG
- }
- // rescale
- s[i] = sum;
- set_u(_beg, bw, i, beg); set_u(_end, bw, i, end); _end += 2;
- for (k = _beg, sum = 1./sum; k <= _end; ++k) fi[k] *= sum;
- }
- { // f[l_query+1]
- double sum;
- for (k = 1, sum = 0.; k <= l_ref; ++k) {
- int u;
- set_u(u, bw, l_query, k);
- if (u < 3 || u >= bw2*3+3) continue;
- sum += f[l_query][u+0] * sM + f[l_query][u+1] * sI;
- }
- s[l_query+1] = sum; // the last scaling factor
- }
- { // compute likelihood
- double p = 1., Pr1 = 0.;
- for (i = 0; i <= l_query + 1; ++i) {
- p *= s[i];
- if (p < 1e-100) Pr1 += -4.343 * log(p), p = 1.;
- }
- Pr1 += -4.343 * log(p * l_ref * l_query);
- Pr = (int)(Pr1 + .499);
- if (!is_backward) { // skip backward and MAP
- for (i = 0; i <= l_query; ++i) free(f[i]);
- free(f); free(s); free(_qual);
- return Pr;
- }
- }
- /*** backward ***/
- // b[l_query] (b[l_query+1][0]=1 and thus \tilde{b}[][]=1/s[l_query+1]; this is where s[l_query+1] comes from)
- for (k = 1; k <= l_ref; ++k) {
- int u;
- double *bi = b[l_query];
- set_u(u, bw, l_query, k);
- if (u < 3 || u >= bw2*3+3) continue;
- bi[u+0] = sM / s[l_query] / s[l_query+1]; bi[u+1] = sI / s[l_query] / s[l_query+1];
- }
- // b[l_query-1..1]
- for (i = l_query - 1; i >= 1; --i) {
- int beg = 1, end = l_ref, x, _beg, _end;
- double *bi = b[i], *bi1 = b[i+1], y = (i > 1), qli1 = qual[i+1];
- uint8_t qyi1 = query[i+1];
- x = i - bw; beg = beg > x? beg : x;
- x = i + bw; end = end < x? end : x;
- for (k = end; k >= beg; --k) {
- int u, v11, v01, v10;
- double e;
- set_u(u, bw, i, k); set_u(v11, bw, i+1, k+1); set_u(v10, bw, i+1, k); set_u(v01, bw, i, k+1);
- e = (k >= l_ref? 0 : (ref[k+1] > 3 || qyi1 > 3)? 1. : ref[k+1] == qyi1? 1. - qli1 : qli1 * EM) * bi1[v11];
- bi[u+0] = e * m[0] + EI * m[1] * bi1[v10+1] + m[2] * bi[v01+2]; // bi1[v11] has been foled into e.
- bi[u+1] = e * m[3] + EI * m[4] * bi1[v10+1];
- bi[u+2] = (e * m[6] + m[8] * bi[v01+2]) * y;
-// fprintf(stderr, "B (%d,%d;%d): %lg,%lg,%lg\n", i, k, u, bi[u], bi[u+1], bi[u+2]); // DEBUG
- }
- // rescale
- set_u(_beg, bw, i, beg); set_u(_end, bw, i, end); _end += 2;
- for (k = _beg, y = 1./s[i]; k <= _end; ++k) bi[k] *= y;
- }
- { // b[0]
- int beg = 1, end = l_ref < bw + 1? l_ref : bw + 1;
- double sum = 0.;
- for (k = end; k >= beg; --k) {
- int u;
- double e = (ref[k] > 3 || query[1] > 3)? 1. : ref[k] == query[1]? 1. - qual[1] : qual[1] * EM;
- set_u(u, bw, 1, k);
- if (u < 3 || u >= bw2*3+3) continue;
- sum += e * b[1][u+0] * bM + EI * b[1][u+1] * bI;
- }
- set_u(k, bw, 0, 0);
- pb = b[0][k] = sum / s[0]; // if everything works as is expected, pb == 1.0
- }
- is_diff = fabs(pb - 1.) > 1e-7? 1 : 0;
- /*** MAP ***/
- for (i = 1; i <= l_query; ++i) {
- double sum = 0., *fi = f[i], *bi = b[i], max = 0.;
- int beg = 1, end = l_ref, x, max_k = -1;
- x = i - bw; beg = beg > x? beg : x;
- x = i + bw; end = end < x? end : x;
- for (k = beg; k <= end; ++k) {
- int u;
- double z;
- set_u(u, bw, i, k);
- z = fi[u+0] * bi[u+0]; if (z > max) max = z, max_k = (k-1)<<2 | 0; sum += z;
- z = fi[u+1] * bi[u+1]; if (z > max) max = z, max_k = (k-1)<<2 | 1; sum += z;
- }
- max /= sum; sum *= s[i]; // if everything works as is expected, sum == 1.0
- if (state) state[i-1] = max_k;
- if (q) k = (int)(-4.343 * log(1. - max) + .499), q[i-1] = k > 100? 99 : k;
-#ifdef _MAIN
- fprintf(stderr, "(%.10lg,%.10lg) (%d,%d:%c,%c:%d) %lg\n", pb, sum, i-1, max_k>>2,
- "ACGT"[query[i]], "ACGT"[ref[(max_k>>2)+1]], max_k&3, max); // DEBUG
-#endif
- }
- /*** free ***/
- for (i = 0; i <= l_query; ++i) {
- free(f[i]); free(b[i]);
- }
- free(f); free(b); free(s); free(_qual);
- return Pr;
-}
-
-#ifdef _MAIN
-#include <unistd.h>
-int main(int argc, char *argv[])
-{
- uint8_t conv[256], *iqual, *ref, *query;
- int c, l_ref, l_query, i, q = 30, b = 10, P;
- while ((c = getopt(argc, argv, "b:q:")) >= 0) {
- switch (c) {
- case 'b': b = atoi(optarg); break;
- case 'q': q = atoi(optarg); break;
- }
- }
- if (optind + 2 > argc) {
- fprintf(stderr, "Usage: %s [-q %d] [-b %d] <ref> <query>\n", argv[0], q, b); // example: acttc attc
- return 1;
- }
- memset(conv, 4, 256);
- conv['a'] = conv['A'] = 0; conv['c'] = conv['C'] = 1;
- conv['g'] = conv['G'] = 2; conv['t'] = conv['T'] = 3;
- ref = (uint8_t*)argv[optind]; query = (uint8_t*)argv[optind+1];
- l_ref = strlen((char*)ref); l_query = strlen((char*)query);
- for (i = 0; i < l_ref; ++i) ref[i] = conv[ref[i]];
- for (i = 0; i < l_query; ++i) query[i] = conv[query[i]];
- iqual = malloc(l_query);
- memset(iqual, q, l_query);
- kpa_par_def.bw = b;
- P = kpa_glocal(ref, l_ref, query, l_query, iqual, &kpa_par_alt, 0, 0);
- fprintf(stderr, "%d\n", P);
- free(iqual);
- return 0;
-}
-#endif
diff --git a/kstring.c b/kstring.c
deleted file mode 100644
index b8ff45c..0000000
--- a/kstring.c
+++ /dev/null
@@ -1,212 +0,0 @@
-#include <stdarg.h>
-#include <stdio.h>
-#include <ctype.h>
-#include <string.h>
-#include <stdint.h>
-#include "kstring.h"
-
-int ksprintf(kstring_t *s, const char *fmt, ...)
-{
- va_list ap;
- int l;
- va_start(ap, fmt);
- l = vsnprintf(s->s + s->l, s->m - s->l, fmt, ap); // This line does not work with glibc 2.0. See `man snprintf'.
- va_end(ap);
- if (l + 1 > s->m - s->l) {
- s->m = s->l + l + 2;
- kroundup32(s->m);
- s->s = (char*)realloc(s->s, s->m);
- va_start(ap, fmt);
- l = vsnprintf(s->s + s->l, s->m - s->l, fmt, ap);
- }
- va_end(ap);
- s->l += l;
- return l;
-}
-
-char *kstrtok(const char *str, const char *sep, ks_tokaux_t *aux)
-{
- const char *p, *start;
- if (sep) { // set up the table
- if (str == 0 && (aux->tab[0]&1)) return 0; // no need to set up if we have finished
- aux->finished = 0;
- if (sep[1]) {
- aux->sep = -1;
- aux->tab[0] = aux->tab[1] = aux->tab[2] = aux->tab[3] = 0;
- for (p = sep; *p; ++p) aux->tab[*p>>6] |= 1ull<<(*p&0x3f);
- } else aux->sep = sep[0];
- }
- if (aux->finished) return 0;
- else if (str) aux->p = str - 1, aux->finished = 0;
- if (aux->sep < 0) {
- for (p = start = aux->p + 1; *p; ++p)
- if (aux->tab[*p>>6]>>(*p&0x3f)&1) break;
- } else {
- for (p = start = aux->p + 1; *p; ++p)
- if (*p == aux->sep) break;
- }
- aux->p = p; // end of token
- if (*p == 0) aux->finished = 1; // no more tokens
- return (char*)start;
-}
-
-// s MUST BE a null terminated string; l = strlen(s)
-int ksplit_core(char *s, int delimiter, int *_max, int **_offsets)
-{
- int i, n, max, last_char, last_start, *offsets, l;
- n = 0; max = *_max; offsets = *_offsets;
- l = strlen(s);
-
-#define __ksplit_aux do { \
- if (_offsets) { \
- s[i] = 0; \
- if (n == max) { \
- max = max? max<<1 : 2; \
- offsets = (int*)realloc(offsets, sizeof(int) * max); \
- } \
- offsets[n++] = last_start; \
- } else ++n; \
- } while (0)
-
- for (i = 0, last_char = last_start = 0; i <= l; ++i) {
- if (delimiter == 0) {
- if (isspace(s[i]) || s[i] == 0) {
- if (isgraph(last_char)) __ksplit_aux; // the end of a field
- } else {
- if (isspace(last_char) || last_char == 0) last_start = i;
- }
- } else {
- if (s[i] == delimiter || s[i] == 0) {
- if (last_char != 0 && last_char != delimiter) __ksplit_aux; // the end of a field
- } else {
- if (last_char == delimiter || last_char == 0) last_start = i;
- }
- }
- last_char = s[i];
- }
- *_max = max; *_offsets = offsets;
- return n;
-}
-
-/**********************
- * Boyer-Moore search *
- **********************/
-
-typedef unsigned char ubyte_t;
-
-// reference: http://www-igm.univ-mlv.fr/~lecroq/string/node14.html
-static int *ksBM_prep(const ubyte_t *pat, int m)
-{
- int i, *suff, *prep, *bmGs, *bmBc;
- prep = (int*)calloc(m + 256, sizeof(int));
- bmGs = prep; bmBc = prep + m;
- { // preBmBc()
- for (i = 0; i < 256; ++i) bmBc[i] = m;
- for (i = 0; i < m - 1; ++i) bmBc[pat[i]] = m - i - 1;
- }
- suff = (int*)calloc(m, sizeof(int));
- { // suffixes()
- int f = 0, g;
- suff[m - 1] = m;
- g = m - 1;
- for (i = m - 2; i >= 0; --i) {
- if (i > g && suff[i + m - 1 - f] < i - g)
- suff[i] = suff[i + m - 1 - f];
- else {
- if (i < g) g = i;
- f = i;
- while (g >= 0 && pat[g] == pat[g + m - 1 - f]) --g;
- suff[i] = f - g;
- }
- }
- }
- { // preBmGs()
- int j = 0;
- for (i = 0; i < m; ++i) bmGs[i] = m;
- for (i = m - 1; i >= 0; --i)
- if (suff[i] == i + 1)
- for (; j < m - 1 - i; ++j)
- if (bmGs[j] == m)
- bmGs[j] = m - 1 - i;
- for (i = 0; i <= m - 2; ++i)
- bmGs[m - 1 - suff[i]] = m - 1 - i;
- }
- free(suff);
- return prep;
-}
-
-void *kmemmem(const void *_str, int n, const void *_pat, int m, int **_prep)
-{
- int i, j, *prep = 0, *bmGs, *bmBc;
- const ubyte_t *str, *pat;
- str = (const ubyte_t*)_str; pat = (const ubyte_t*)_pat;
- prep = (_prep == 0 || *_prep == 0)? ksBM_prep(pat, m) : *_prep;
- if (_prep && *_prep == 0) *_prep = prep;
- bmGs = prep; bmBc = prep + m;
- j = 0;
- while (j <= n - m) {
- for (i = m - 1; i >= 0 && pat[i] == str[i+j]; --i);
- if (i >= 0) {
- int max = bmBc[str[i+j]] - m + 1 + i;
- if (max < bmGs[i]) max = bmGs[i];
- j += max;
- } else return (void*)(str + j);
- }
- if (_prep == 0) free(prep);
- return 0;
-}
-
-char *kstrstr(const char *str, const char *pat, int **_prep)
-{
- return (char*)kmemmem(str, strlen(str), pat, strlen(pat), _prep);
-}
-
-char *kstrnstr(const char *str, const char *pat, int n, int **_prep)
-{
- return (char*)kmemmem(str, n, pat, strlen(pat), _prep);
-}
-
-/***********************
- * The main() function *
- ***********************/
-
-#ifdef KSTRING_MAIN
-#include <stdio.h>
-int main()
-{
- kstring_t *s;
- int *fields, n, i;
- ks_tokaux_t aux;
- char *p;
- s = (kstring_t*)calloc(1, sizeof(kstring_t));
- // test ksprintf()
- ksprintf(s, " abcdefg: %d ", 100);
- printf("'%s'\n", s->s);
- // test ksplit()
- fields = ksplit(s, 0, &n);
- for (i = 0; i < n; ++i)
- printf("field[%d] = '%s'\n", i, s->s + fields[i]);
- // test kstrtok()
- s->l = 0;
- for (p = kstrtok("ab:cde:fg/hij::k", ":/", &aux); p; p = kstrtok(0, 0, &aux)) {
- kputsn(p, aux.p - p, s);
- kputc('\n', s);
- }
- printf("%s", s->s);
- // free
- free(s->s); free(s); free(fields);
-
- {
- static char *str = "abcdefgcdgcagtcakcdcd";
- static char *pat = "cd";
- char *ret, *s = str;
- int *prep = 0;
- while ((ret = kstrstr(s, pat, &prep)) != 0) {
- printf("match: %s\n", ret);
- s = ret + prep[0];
- }
- free(prep);
- }
- return 0;
-}
-#endif
diff --git a/padding.c b/padding.c
deleted file mode 100644
index a8da562..0000000
--- a/padding.c
+++ /dev/null
@@ -1,479 +0,0 @@
-#include <string.h>
-#include <assert.h>
-#include <unistd.h>
-#include "kstring.h"
-#include "sam_header.h"
-#include "sam.h"
-#include "bam.h"
-#include "faidx.h"
-
-bam_header_t *bam_header_dup(const bam_header_t *h0); /*in sam.c*/
-
-static void replace_cigar(bam1_t *b, int n, uint32_t *cigar)
-{
- if (n != b->core.n_cigar) {
- int o = b->core.l_qname + b->core.n_cigar * 4;
- if (b->data_len + (n - b->core.n_cigar) * 4 > b->m_data) {
- b->m_data = b->data_len + (n - b->core.n_cigar) * 4;
- kroundup32(b->m_data);
- b->data = (uint8_t*)realloc(b->data, b->m_data);
- }
- memmove(b->data + b->core.l_qname + n * 4, b->data + o, b->data_len - o);
- memcpy(b->data + b->core.l_qname, cigar, n * 4);
- b->data_len += (n - b->core.n_cigar) * 4;
- b->core.n_cigar = n;
- } else memcpy(b->data + b->core.l_qname, cigar, n * 4);
-}
-
-#define write_cigar(_c, _n, _m, _v) do { \
- if (_n == _m) { \
- _m = _m? _m<<1 : 4; \
- _c = (uint32_t*)realloc(_c, _m * 4); \
- } \
- _c[_n++] = (_v); \
- } while (0)
-
-static void unpad_seq(bam1_t *b, kstring_t *s)
-{
- int k, j, i;
- int length;
- uint32_t *cigar = bam1_cigar(b);
- uint8_t *seq = bam1_seq(b);
- // b->core.l_qseq gives length of the SEQ entry (including soft clips, S)
- // We need the padded length after alignment from the CIGAR (excluding
- // soft clips S, but including pads from CIGAR D operations)
- length = 0;
- for (k = 0; k < b->core.n_cigar; ++k) {
- int op, ol;
- op= bam_cigar_op(cigar[k]);
- ol = bam_cigar_oplen(cigar[k]);
- if (op == BAM_CMATCH || op == BAM_CEQUAL || op == BAM_CDIFF || op == BAM_CDEL)
- length += ol;
- }
- ks_resize(s, length);
- for (k = 0, s->l = 0, j = 0; k < b->core.n_cigar; ++k) {
- int op, ol;
- op = bam_cigar_op(cigar[k]);
- ol = bam_cigar_oplen(cigar[k]);
- if (op == BAM_CMATCH || op == BAM_CEQUAL || op == BAM_CDIFF) {
- for (i = 0; i < ol; ++i, ++j) s->s[s->l++] = bam1_seqi(seq, j);
- } else if (op == BAM_CSOFT_CLIP) {
- j += ol;
- } else if (op == BAM_CHARD_CLIP) {
- /* do nothing */
- } else if (op == BAM_CDEL) {
- for (i = 0; i < ol; ++i) s->s[s->l++] = 0;
- } else {
- fprintf(stderr, "[depad] ERROR: Didn't expect CIGAR op %c in read %s\n", BAM_CIGAR_STR[op], bam1_qname(b));
- assert(-1);
- }
- }
- assert(length == s->l);
-}
-
-int load_unpadded_ref(faidx_t *fai, char *ref_name, int ref_len, kstring_t *seq)
-{
- char base;
- char *fai_ref = 0;
- int fai_ref_len = 0, k;
-
- fai_ref = fai_fetch(fai, ref_name, &fai_ref_len);
- if (fai_ref_len != ref_len) {
- fprintf(stderr, "[depad] ERROR: FASTA sequence %s length %i, expected %i\n", ref_name, fai_ref_len, ref_len);
- free(fai_ref);
- return -1;
- }
- ks_resize(seq, ref_len);
- seq->l = 0;
- for (k = 0; k < ref_len; ++k) {
- base = fai_ref[k];
- if (base == '-' || base == '*') {
- // Map gaps to null to match unpad_seq function
- seq->s[seq->l++] = 0;
- } else {
- int i = bam_nt16_table[(int)base];
- if (i == 0 || i==16) { // Equals maps to 0, anything unexpected to 16
- fprintf(stderr, "[depad] ERROR: Invalid character %c (ASCII %i) in FASTA sequence %s\n", base, (int)base, ref_name);
- free(fai_ref);
- return -1;
- }
- seq->s[seq->l++] = i;
- }
- }
- assert(ref_len == seq->l);
- free(fai_ref);
- return 0;
-}
-
-int get_unpadded_len(faidx_t *fai, char *ref_name, int padded_len)
-{
- char base;
- char *fai_ref = 0;
- int fai_ref_len = 0, k;
- int bases=0, gaps=0;
-
- fai_ref = fai_fetch(fai, ref_name, &fai_ref_len);
- if (fai_ref_len != padded_len) {
- fprintf(stderr, "[depad] ERROR: FASTA sequence '%s' length %i, expected %i\n", ref_name, fai_ref_len, padded_len);
- free(fai_ref);
- return -1;
- }
- for (k = 0; k < padded_len; ++k) {
- //fprintf(stderr, "[depad] checking base %i of %i or %i\n", k+1, ref_len, strlen(fai_ref));
- base = fai_ref[k];
- if (base == '-' || base == '*') {
- gaps += 1;
- } else {
- int i = bam_nt16_table[(int)base];
- if (i == 0 || i==16) { // Equals maps to 0, anything unexpected to 16
- fprintf(stderr, "[depad] ERROR: Invalid character %c (ASCII %i) in FASTA sequence '%s'\n", base, (int)base, ref_name);
- free(fai_ref);
- return -1;
- }
- bases += 1;
- }
- }
- free(fai_ref);
- assert (padded_len == bases + gaps);
- return bases;
-}
-
-inline int * update_posmap(int *posmap, kstring_t ref)
-{
- int i, k;
- posmap = realloc(posmap, ref.m * sizeof(int));
- for (i = k = 0; i < ref.l; ++i) {
- posmap[i] = k;
- if (ref.s[i]) ++k;
- }
- return posmap;
-}
-
-int bam_pad2unpad(samfile_t *in, samfile_t *out, faidx_t *fai)
-{
- bam_header_t *h = 0;
- bam1_t *b = 0;
- kstring_t r, q;
- int r_tid = -1;
- uint32_t *cigar2 = 0;
- int ret = 0, n2 = 0, m2 = 0, *posmap = 0;
-
- b = bam_init1();
- r.l = r.m = q.l = q.m = 0; r.s = q.s = 0;
- int read_ret;
- h = in->header;
- while ((read_ret = samread(in, b)) >= 0) { // read one alignment from `in'
- uint32_t *cigar = bam1_cigar(b);
- n2 = 0;
- if (b->core.pos == 0 && b->core.tid >= 0 && strcmp(bam1_qname(b), h->target_name[b->core.tid]) == 0) {
- // fprintf(stderr, "[depad] Found embedded reference '%s'\n", bam1_qname(b));
- r_tid = b->core.tid;
- unpad_seq(b, &r);
- if (h->target_len[r_tid] != r.l) {
- fprintf(stderr, "[depad] ERROR: (Padded) length of '%s' is %d in BAM header, but %ld in embedded reference\n", bam1_qname(b), h->target_len[r_tid], r.l);
- return -1;
- }
- if (fai) {
- // Check the embedded reference matches the FASTA file
- if (load_unpadded_ref(fai, h->target_name[b->core.tid], h->target_len[b->core.tid], &q)) {
- fprintf(stderr, "[depad] ERROR: Failed to load embedded reference '%s' from FASTA\n", h->target_name[b->core.tid]);
- return -1;
- }
- assert(r.l == q.l);
- int i;
- for (i = 0; i < r.l; ++i) {
- if (r.s[i] != q.s[i]) {
- // Show gaps as ASCII 45
- fprintf(stderr, "[depad] ERROR: Embedded sequence and reference FASTA don't match for %s base %i, '%c' vs '%c'\n",
- h->target_name[b->core.tid], i+1,
- r.s[i] ? bam_nt16_rev_table[(int)r.s[i]] : 45,
- q.s[i] ? bam_nt16_rev_table[(int)q.s[i]] : 45);
- return -1;
- }
- }
- }
- write_cigar(cigar2, n2, m2, bam_cigar_gen(b->core.l_qseq, BAM_CMATCH));
- replace_cigar(b, n2, cigar2);
- posmap = update_posmap(posmap, r);
- } else if (b->core.n_cigar > 0) {
- int i, k, op;
- if (b->core.tid < 0) {
- fprintf(stderr, "[depad] ERROR: Read '%s' has CIGAR but no RNAME\n", bam1_qname(b));
- return -1;
- } else if (b->core.tid == r_tid) {
- ; // good case, reference available
- //fprintf(stderr, "[depad] Have ref '%s' for read '%s'\n", h->target_name[b->core.tid], bam1_qname(b));
- } else if (fai) {
- if (load_unpadded_ref(fai, h->target_name[b->core.tid], h->target_len[b->core.tid], &r)) {
- fprintf(stderr, "[depad] ERROR: Failed to load '%s' from reference FASTA\n", h->target_name[b->core.tid]);
- return -1;
- }
- posmap = update_posmap(posmap, r);
- r_tid = b->core.tid;
- // fprintf(stderr, "[depad] Loaded %s from FASTA file\n", h->target_name[b->core.tid]);
- } else {
- fprintf(stderr, "[depad] ERROR: Missing %s embedded reference sequence (and no FASTA file)\n", h->target_name[b->core.tid]);
- return -1;
- }
- unpad_seq(b, &q);
- if (bam_cigar_op(cigar[0]) == BAM_CSOFT_CLIP) {
- write_cigar(cigar2, n2, m2, cigar[0]);
- } else if (bam_cigar_op(cigar[0]) == BAM_CHARD_CLIP) {
- write_cigar(cigar2, n2, m2, cigar[0]);
- if (b->core.n_cigar > 2 && bam_cigar_op(cigar[1]) == BAM_CSOFT_CLIP) {
- write_cigar(cigar2, n2, m2, cigar[1]);
- }
- }
- /* Determine CIGAR operator for each base in the aligned read */
- for (i = 0, k = b->core.pos; i < q.l; ++i, ++k)
- q.s[i] = q.s[i]? (r.s[k]? BAM_CMATCH : BAM_CINS) : (r.s[k]? BAM_CDEL : BAM_CPAD);
- /* Include any pads if starts with an insert */
- if (q.s[0] == BAM_CINS) {
- for (k = 0; k+1 < b->core.pos && !r.s[b->core.pos - k - 1]; ++k);
- if (k) write_cigar(cigar2, n2, m2, bam_cigar_gen(k, BAM_CPAD));
- }
- /* Count consecutive CIGAR operators to turn into a CIGAR string */
- for (i = k = 1, op = q.s[0]; i < q.l; ++i) {
- if (op != q.s[i]) {
- write_cigar(cigar2, n2, m2, bam_cigar_gen(k, op));
- op = q.s[i]; k = 1;
- } else ++k;
- }
- write_cigar(cigar2, n2, m2, bam_cigar_gen(k, op));
- if (bam_cigar_op(cigar[b->core.n_cigar-1]) == BAM_CSOFT_CLIP) {
- write_cigar(cigar2, n2, m2, cigar[b->core.n_cigar-1]);
- } else if (bam_cigar_op(cigar[b->core.n_cigar-1]) == BAM_CHARD_CLIP) {
- if (b->core.n_cigar > 2 && bam_cigar_op(cigar[b->core.n_cigar-2]) == BAM_CSOFT_CLIP) {
- write_cigar(cigar2, n2, m2, cigar[b->core.n_cigar-2]);
- }
- write_cigar(cigar2, n2, m2, cigar[b->core.n_cigar-1]);
- }
- /* Remove redundant P operators between M/X/=/D operators, e.g. 5M2P10M -> 15M */
- int pre_op, post_op;
- for (i = 2; i < n2; ++i)
- if (bam_cigar_op(cigar2[i-1]) == BAM_CPAD) {
- pre_op = bam_cigar_op(cigar2[i-2]);
- post_op = bam_cigar_op(cigar2[i]);
- /* Note don't need to check for X/= as code above will use M only */
- if ((pre_op == BAM_CMATCH || pre_op == BAM_CDEL) && (post_op == BAM_CMATCH || post_op == BAM_CDEL)) {
- /* This is a redundant P operator */
- cigar2[i-1] = 0; // i.e. 0M
- /* If had same operator either side, combine them in post_op */
- if (pre_op == post_op) {
- /* If CIGAR M, could treat as simple integers since BAM_CMATCH is zero*/
- cigar2[i] = bam_cigar_gen(bam_cigar_oplen(cigar2[i-2]) + bam_cigar_oplen(cigar2[i]), post_op);
- cigar2[i-2] = 0; // i.e. 0M
- }
- }
- }
- /* Remove the zero'd operators (0M) */
- for (i = k = 0; i < n2; ++i)
- if (cigar2[i]) cigar2[k++] = cigar2[i];
- n2 = k;
- replace_cigar(b, n2, cigar2);
- b->core.pos = posmap[b->core.pos];
- if (b->core.mtid < 0 || b->core.mpos < 0) {
- /* Nice case, no mate to worry about*/
- // fprintf(stderr, "[depad] Read '%s' mate not mapped\n", bam1_qname(b));
- /* TODO - Warning if FLAG says mate should be mapped? */
- /* Clean up funny input where mate position is given but mate reference is missing: */
- b->core.mtid = -1;
- b->core.mpos = -1;
- } else if (b->core.mtid == b->core.tid) {
- /* Nice case, same reference */
- // fprintf(stderr, "[depad] Read '%s' mate mapped to same ref\n", bam1_qname(b));
- b->core.mpos = posmap[b->core.mpos];
- } else {
- /* Nasty case, Must load alternative posmap */
- // fprintf(stderr, "[depad] Loading reference '%s' temporarily\n", h->target_name[b->core.mtid]);
- if (!fai) {
- fprintf(stderr, "[depad] ERROR: Needed reference %s sequence for mate (and no FASTA file)\n", h->target_name[b->core.mtid]);
- return -1;
- }
- /* Temporarily load the other reference sequence */
- if (load_unpadded_ref(fai, h->target_name[b->core.mtid], h->target_len[b->core.mtid], &r)) {
- fprintf(stderr, "[depad] ERROR: Failed to load '%s' from reference FASTA\n", h->target_name[b->core.mtid]);
- return -1;
- }
- posmap = update_posmap(posmap, r);
- b->core.mpos = posmap[b->core.mpos];
- /* Restore the reference and posmap*/
- if (load_unpadded_ref(fai, h->target_name[b->core.tid], h->target_len[b->core.tid], &r)) {
- fprintf(stderr, "[depad] ERROR: Failed to load '%s' from reference FASTA\n", h->target_name[b->core.tid]);
- return -1;
- }
- posmap = update_posmap(posmap, r);
- }
- }
- samwrite(out, b);
- }
- if (read_ret < -1) {
- fprintf(stderr, "[depad] truncated file.\n");
- ret = 1;
- }
- free(r.s); free(q.s); free(posmap);
- bam_destroy1(b);
- return ret;
-}
-
-bam_header_t * fix_header(bam_header_t *old, faidx_t *fai)
-{
- int i = 0, unpadded_len = 0;
- bam_header_t *header = 0 ;
-
- header = bam_header_dup(old);
- for (i = 0; i < old->n_targets; ++i) {
- unpadded_len = get_unpadded_len(fai, old->target_name[i], old->target_len[i]);
- if (unpadded_len < 0) {
- fprintf(stderr, "[depad] ERROR getting unpadded length of '%s', padded length %i\n", old->target_name[i], old->target_len[i]);
- } else {
- header->target_len[i] = unpadded_len;
- //fprintf(stderr, "[depad] Recalculating '%s' length %i -> %i\n", old->target_name[i], old->target_len[i], header->target_len[i]);
- }
- }
- /* Duplicating the header allocated new buffer for header string */
- /* After modifying the @SQ lines it will only get smaller, since */
- /* the LN entries will be the same or shorter, and we'll remove */
- /* any MD entries (MD5 checksums). */
- assert(strlen(old->text) == strlen(header->text));
- assert (0==strcmp(old->text, header->text));
- const char *text;
- text = old->text;
- header->text[0] = '\0'; /* Resuse the allocated buffer */
- char * newtext = header->text;
- char * end=NULL;
- while (text[0]=='@') {
- end = strchr(text, '\n');
- assert(end != 0);
- if (text[1]=='S' && text[2]=='Q' && text[3]=='\t') {
- /* TODO - edit the @SQ line here to remove MD and fix LN. */
- /* For now just remove the @SQ line, and samtools will */
- /* automatically generate a minimal replacement with LN. */
- /* However, that discards any other tags like AS, SP, UR. */
- //fprintf(stderr, "[depad] Removing @SQ line\n");
- } else {
- /* Copy this line to the new header */
- strncat(newtext, text, end - text + 1);
- }
- text = end + 1;
- }
- assert (text[0]=='\0');
- /* Check we didn't overflow the buffer */
- assert (strlen(header->text) <= strlen(old->text));
- if (strlen(header->text) < header->l_text) {
- //fprintf(stderr, "[depad] Reallocating header buffer\n");
- assert (newtext == header->text);
- newtext = malloc(strlen(header->text) + 1);
- strcpy(newtext, header->text);
- free(header->text);
- header->text = newtext;
- header->l_text = strlen(newtext);
- }
- //fprintf(stderr, "[depad] Here is the new header (pending @SQ lines),\n\n%s\n(end)\n", header->text);
- return header;
-}
-
-static int usage(int is_long_help);
-
-int main_pad2unpad(int argc, char *argv[])
-{
- samfile_t *in = 0, *out = 0;
- bam_header_t *h = 0;
- faidx_t *fai = 0;
- int c, is_bamin = 1, compress_level = -1, is_bamout = 1, is_long_help = 0;
- char in_mode[5], out_mode[5], *fn_out = 0, *fn_list = 0, *fn_ref = 0;
- int ret=0;
-
- /* parse command-line options */
- strcpy(in_mode, "r"); strcpy(out_mode, "w");
- while ((c = getopt(argc, argv, "Sso:u1T:?")) >= 0) {
- switch (c) {
- case 'S': is_bamin = 0; break;
- case 's': assert(compress_level == -1); is_bamout = 0; break;
- case 'o': fn_out = strdup(optarg); break;
- case 'u': assert(is_bamout == 1); compress_level = 0; break;
- case '1': assert(is_bamout == 1); compress_level = 1; break;
- case 'T': fn_ref = strdup(optarg); break;
- case '?': is_long_help = 1; break;
- default: return usage(is_long_help);
- }
- }
- if (argc == optind) return usage(is_long_help);
-
- if (is_bamin) strcat(in_mode, "b");
- if (is_bamout) strcat(out_mode, "b");
- strcat(out_mode, "h");
- if (compress_level >= 0) {
- char tmp[2];
- tmp[0] = compress_level + '0'; tmp[1] = '\0';
- strcat(out_mode, tmp);
- }
-
- // Load FASTA reference (also needed for SAM -> BAM if missing header)
- if (fn_ref) {
- fn_list = samfaipath(fn_ref);
- fai = fai_load(fn_ref);
- }
- // open file handlers
- if ((in = samopen(argv[optind], in_mode, fn_list)) == 0) {
- fprintf(stderr, "[depad] failed to open \"%s\" for reading.\n", argv[optind]);
- ret = 1;
- goto depad_end;
- }
- if (in->header == 0) {
- fprintf(stderr, "[depad] failed to read the header from \"%s\".\n", argv[optind]);
- ret = 1;
- goto depad_end;
- }
- if (in->header->text == 0 || in->header->l_text == 0) {
- fprintf(stderr, "[depad] Warning - failed to read any header text from \"%s\".\n", argv[optind]);
- assert (0 == in->header->l_text);
- assert (0 == in->header->text);
- }
- if (fn_ref) {
- h = fix_header(in->header, fai);
- } else {
- fprintf(stderr, "[depad] Warning - reference lengths will not be corrected without FASTA reference\n");
- h = in->header;
- }
- if ((out = samopen(fn_out? fn_out : "-", out_mode, h)) == 0) {
- fprintf(stderr, "[depad] failed to open \"%s\" for writing.\n", fn_out? fn_out : "standard output");
- ret = 1;
- goto depad_end;
- }
-
- // Do the depad
- ret = bam_pad2unpad(in, out, fai);
-
-depad_end:
- // close files, free and return
- if (fai) fai_destroy(fai);
- if (h != in->header) bam_header_destroy(h);
- samclose(in);
- samclose(out);
- free(fn_list); free(fn_out);
- return ret;
-}
-
-static int usage(int is_long_help)
-{
- fprintf(stderr, "\n");
- fprintf(stderr, "Usage: samtools depad <in.bam>\n\n");
- fprintf(stderr, "Options: -s output is SAM (default is BAM)\n");
- fprintf(stderr, " -S input is SAM (default is BAM)\n");
- fprintf(stderr, " -u uncompressed BAM output (can't use with -s)\n");
- fprintf(stderr, " -1 fast compression BAM output (can't use with -s)\n");
- fprintf(stderr, " -T FILE reference sequence file [null]\n");
- fprintf(stderr, " -o FILE output file name [stdout]\n");
- fprintf(stderr, " -? longer help\n");
- fprintf(stderr, "\n");
- if (is_long_help)
- fprintf(stderr, "Notes:\n\
-\n\
- 1. Requires embedded reference sequences (before the reads for that reference),\n\
- with the future aim to also support a FASTA padded reference sequence file.\n\
-\n\
- 2. The input padded alignment read's CIGAR strings must not use P or I operators.\n\
-\n");
- return 1;
-}
diff --git a/phase.c b/phase.c
deleted file mode 100644
index ef4eff9..0000000
--- a/phase.c
+++ /dev/null
@@ -1,687 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <stdint.h>
-#include <math.h>
-#include <zlib.h>
-#include "bam.h"
-#include "errmod.h"
-
-#include "kseq.h"
-KSTREAM_INIT(gzFile, gzread, 16384)
-
-#define MAX_VARS 256
-#define FLIP_PENALTY 2
-#define FLIP_THRES 4
-#define MASK_THRES 3
-
-#define FLAG_FIX_CHIMERA 0x1
-#define FLAG_LIST_EXCL 0x4
-#define FLAG_DROP_AMBI 0x8
-
-typedef struct {
- // configurations, initialized in the main function
- int flag, k, min_baseQ, min_varLOD, max_depth;
- // other global variables
- int vpos_shift;
- bamFile fp;
- char *pre;
- bamFile out[3];
- // alignment queue
- int n, m;
- bam1_t **b;
-} phaseg_t;
-
-typedef struct {
- int8_t seq[MAX_VARS]; // TODO: change to dynamic memory allocation!
- int vpos, beg, end;
- uint32_t vlen:16, single:1, flip:1, phase:1, phased:1, ambig:1;
- uint32_t in:16, out:16; // in-phase and out-phase
-} frag_t, *frag_p;
-
-#define rseq_lt(a,b) ((a)->vpos < (b)->vpos)
-
-#include "khash.h"
-KHASH_SET_INIT_INT64(set64)
-KHASH_MAP_INIT_INT64(64, frag_t)
-
-typedef khash_t(64) nseq_t;
-
-#include "ksort.h"
-KSORT_INIT(rseq, frag_p, rseq_lt)
-
-static char nt16_nt4_table[] = { 4, 0, 1, 4, 2, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 4 };
-
-static inline uint64_t X31_hash_string(const char *s)
-{
- uint64_t h = *s;
- if (h) for (++s ; *s; ++s) h = (h << 5) - h + *s;
- return h;
-}
-
-static void count1(int l, const uint8_t *seq, int *cnt)
-{
- int i, j, n_ambi;
- uint32_t z, x;
- if (seq[l-1] == 0) return; // do nothing is the last base is ambiguous
- for (i = n_ambi = 0; i < l; ++i) // collect ambiguous bases
- if (seq[i] == 0) ++n_ambi;
- if (l - n_ambi <= 1) return; // only one SNP
- for (x = 0; x < 1u<<n_ambi; ++x) { // count
- for (i = j = 0, z = 0; i < l; ++i) {
- int c;
- if (seq[i]) c = seq[i] - 1;
- else {
- c = x>>j&1;
- ++j;
- }
- z = z<<1 | c;
- }
- ++cnt[z];
- }
-}
-
-static int **count_all(int l, int vpos, nseq_t *hash)
-{
- khint_t k;
- int i, j, **cnt;
- uint8_t *seq;
- seq = calloc(l, 1);
- cnt = calloc(vpos, sizeof(void*));
- for (i = 0; i < vpos; ++i) cnt[i] = calloc(1<<l, sizeof(int));
- for (k = 0; k < kh_end(hash); ++k) {
- if (kh_exist(hash, k)) {
- frag_t *f = &kh_val(hash, k);
- if (f->vpos >= vpos || f->single) continue; // out of region; or singleton
- if (f->vlen == 1) { // such reads should be flagged as deleted previously if everything is right
- f->single = 1;
- continue;
- }
- for (j = 1; j < f->vlen; ++j) {
- for (i = 0; i < l; ++i)
- seq[i] = j < l - 1 - i? 0 : f->seq[j - (l - 1 - i)];
- count1(l, seq, cnt[f->vpos + j]);
- }
- }
- }
- free(seq);
- return cnt;
-}
-
-// phasing
-static int8_t *dynaprog(int l, int vpos, int **w)
-{
- int *f[2], *curr, *prev, max, i;
- int8_t **b, *h = 0;
- uint32_t x, z = 1u<<(l-1), mask = (1u<<l) - 1;
- f[0] = calloc(z, sizeof(int));
- f[1] = calloc(z, sizeof(int));
- b = calloc(vpos, sizeof(void*));
- prev = f[0]; curr = f[1];
- // fill the backtrack matrix
- for (i = 0; i < vpos; ++i) {
- int *wi = w[i], *tmp;
- int8_t *bi;
- bi = b[i] = calloc(z, 1);
- /* In the following, x is the current state, which is the
- * lexicographically smaller local haplotype. xc is the complement of
- * x, or the larger local haplotype; y0 and y1 are the two predecessors
- * of x. */
- for (x = 0; x < z; ++x) { // x0 is the smaller
- uint32_t y0, y1, xc;
- int c0, c1;
- xc = ~x&mask; y0 = x>>1; y1 = xc>>1;
- c0 = prev[y0] + wi[x] + wi[xc];
- c1 = prev[y1] + wi[x] + wi[xc];
- if (c0 > c1) bi[x] = 0, curr[x] = c0;
- else bi[x] = 1, curr[x] = c1;
- }
- tmp = prev; prev = curr; curr = tmp; // swap
- }
- { // backtrack
- uint32_t max_x = 0;
- int which = 0;
- h = calloc(vpos, 1);
- for (x = 0, max = 0, max_x = 0; x < z; ++x)
- if (prev[x] > max) max = prev[x], max_x = x;
- for (i = vpos - 1, x = max_x; i >= 0; --i) {
- h[i] = which? (~x&1) : (x&1);
- which = b[i][x]? !which : which;
- x = b[i][x]? (~x&mask)>>1 : x>>1;
- }
- }
- // free
- for (i = 0; i < vpos; ++i) free(b[i]);
- free(f[0]); free(f[1]); free(b);
- return h;
-}
-
-// phase each fragment
-static uint64_t *fragphase(int vpos, const int8_t *path, nseq_t *hash, int flip)
-{
- khint_t k;
- uint64_t *pcnt;
- uint32_t *left, *rght, max;
- left = rght = 0; max = 0;
- pcnt = calloc(vpos, 8);
- for (k = 0; k < kh_end(hash); ++k) {
- if (kh_exist(hash, k)) {
- int i, c[2];
- frag_t *f = &kh_val(hash, k);
- if (f->vpos >= vpos) continue;
- // get the phase
- c[0] = c[1] = 0;
- for (i = 0; i < f->vlen; ++i) {
- if (f->seq[i] == 0) continue;
- ++c[f->seq[i] == path[f->vpos + i] + 1? 0 : 1];
- }
- f->phase = c[0] > c[1]? 0 : 1;
- f->in = c[f->phase]; f->out = c[1 - f->phase];
- f->phased = f->in == f->out? 0 : 1;
- f->ambig = (f->in && f->out && f->out < 3 && f->in <= f->out + 1)? 1 : 0;
- // fix chimera
- f->flip = 0;
- if (flip && c[0] >= 3 && c[1] >= 3) {
- int sum[2], m, mi, md;
- if (f->vlen > max) { // enlarge the array
- max = f->vlen;
- kroundup32(max);
- left = realloc(left, max * 4);
- rght = realloc(rght, max * 4);
- }
- for (i = 0, sum[0] = sum[1] = 0; i < f->vlen; ++i) { // get left counts
- if (f->seq[i]) {
- int c = f->phase? 2 - f->seq[i] : f->seq[i] - 1;
- ++sum[c == path[f->vpos + i]? 0 : 1];
- }
- left[i] = sum[1]<<16 | sum[0];
- }
- for (i = f->vlen - 1, sum[0] = sum[1] = 0; i >= 0; --i) { // get right counts
- if (f->seq[i]) {
- int c = f->phase? 2 - f->seq[i] : f->seq[i] - 1;
- ++sum[c == path[f->vpos + i]? 0 : 1];
- }
- rght[i] = sum[1]<<16 | sum[0];
- }
- // find the best flip point
- for (i = m = 0, mi = -1, md = -1; i < f->vlen - 1; ++i) {
- int a[2];
- a[0] = (left[i]&0xffff) + (rght[i+1]>>16&0xffff) - (rght[i+1]&0xffff) * FLIP_PENALTY;
- a[1] = (left[i]>>16&0xffff) + (rght[i+1]&0xffff) - (rght[i+1]>>16&0xffff) * FLIP_PENALTY;
- if (a[0] > a[1]) {
- if (a[0] > m) m = a[0], md = 0, mi = i;
- } else {
- if (a[1] > m) m = a[1], md = 1, mi = i;
- }
- }
- if (m - c[0] >= FLIP_THRES && m - c[1] >= FLIP_THRES) { // then flip
- f->flip = 1;
- if (md == 0) { // flip the tail
- for (i = mi + 1; i < f->vlen; ++i)
- if (f->seq[i] == 1) f->seq[i] = 2;
- else if (f->seq[i] == 2) f->seq[i] = 1;
- } else { // flip the head
- for (i = 0; i <= mi; ++i)
- if (f->seq[i] == 1) f->seq[i] = 2;
- else if (f->seq[i] == 2) f->seq[i] = 1;
- }
- }
- }
- // update pcnt[]
- if (!f->single) {
- for (i = 0; i < f->vlen; ++i) {
- int c;
- if (f->seq[i] == 0) continue;
- c = f->phase? 2 - f->seq[i] : f->seq[i] - 1;
- if (c == path[f->vpos + i]) {
- if (f->phase == 0) ++pcnt[f->vpos + i];
- else pcnt[f->vpos + i] += 1ull<<32;
- } else {
- if (f->phase == 0) pcnt[f->vpos + i] += 1<<16;
- else pcnt[f->vpos + i] += 1ull<<48;
- }
- }
- }
- }
- }
- free(left); free(rght);
- return pcnt;
-}
-
-static uint64_t *genmask(int vpos, const uint64_t *pcnt, int *_n)
-{
- int i, max = 0, max_i = -1, m = 0, n = 0, beg = 0, score = 0;
- uint64_t *list = 0;
- for (i = 0; i < vpos; ++i) {
- uint64_t x = pcnt[i];
- int c[4], pre = score, s;
- c[0] = x&0xffff; c[1] = x>>16&0xffff; c[2] = x>>32&0xffff; c[3] = x>>48&0xffff;
- s = (c[1] + c[3] == 0)? -(c[0] + c[2]) : (c[1] + c[3] - 1);
- if (c[3] > c[2]) s += c[3] - c[2];
- if (c[1] > c[0]) s += c[1] - c[0];
- score += s;
- if (score < 0) score = 0;
- if (pre == 0 && score > 0) beg = i; // change from zero to non-zero
- if ((i == vpos - 1 || score == 0) && max >= MASK_THRES) {
- if (n == m) {
- m = m? m<<1 : 4;
- list = realloc(list, m * 8);
- }
- list[n++] = (uint64_t)beg<<32 | max_i;
- i = max_i; // reset i to max_i
- score = 0;
- } else if (score > max) max = score, max_i = i;
- if (score == 0) max = 0;
- }
- *_n = n;
- return list;
-}
-
-// trim heading and tailing ambiguous bases; mark deleted and remove sequence
-static int clean_seqs(int vpos, nseq_t *hash)
-{
- khint_t k;
- int ret = 0;
- for (k = 0; k < kh_end(hash); ++k) {
- if (kh_exist(hash, k)) {
- frag_t *f = &kh_val(hash, k);
- int beg, end, i;
- if (f->vpos >= vpos) {
- ret = 1;
- continue;
- }
- for (i = 0; i < f->vlen; ++i)
- if (f->seq[i] != 0) break;
- beg = i;
- for (i = f->vlen - 1; i >= 0; --i)
- if (f->seq[i] != 0) break;
- end = i + 1;
- if (end - beg <= 0) kh_del(64, hash, k);
- else {
- if (beg != 0) memmove(f->seq, f->seq + beg, end - beg);
- f->vpos += beg; f->vlen = end - beg;
- f->single = f->vlen == 1? 1 : 0;
- }
- }
- }
- return ret;
-}
-
-static void dump_aln(phaseg_t *g, int min_pos, const nseq_t *hash)
-{
- int i, is_flip, drop_ambi;
- drop_ambi = g->flag & FLAG_DROP_AMBI;
- is_flip = (drand48() < 0.5);
- for (i = 0; i < g->n; ++i) {
- int end, which;
- uint64_t key;
- khint_t k;
- bam1_t *b = g->b[i];
- key = X31_hash_string(bam1_qname(b));
- end = bam_calend(&b->core, bam1_cigar(b));
- if (end > min_pos) break;
- k = kh_get(64, hash, key);
- if (k == kh_end(hash)) which = 3;
- else {
- frag_t *f = &kh_val(hash, k);
- if (f->ambig) which = drop_ambi? 2 : 3;
- else if (f->phased && f->flip) which = 2;
- else if (f->phased == 0) which = 3;
- else { // phased and not flipped
- char c = 'Y';
- which = f->phase;
- bam_aux_append(b, "ZP", 'A', 1, (uint8_t*)&c);
- }
- if (which < 2 && is_flip) which = 1 - which; // increase the randomness
- }
- if (which == 3) which = (drand48() < 0.5);
- bam_write1(g->out[which], b);
- bam_destroy1(b);
- g->b[i] = 0;
- }
- memmove(g->b, g->b + i, (g->n - i) * sizeof(void*));
- g->n -= i;
-}
-
-static int phase(phaseg_t *g, const char *chr, int vpos, uint64_t *cns, nseq_t *hash)
-{
- int i, j, n_seqs = kh_size(hash), n_masked = 0, min_pos;
- khint_t k;
- frag_t **seqs;
- int8_t *path, *sitemask;
- uint64_t *pcnt, *regmask;
-
- if (vpos == 0) return 0;
- i = clean_seqs(vpos, hash); // i is true if hash has an element with its vpos >= vpos
- min_pos = i? cns[vpos]>>32 : 0x7fffffff;
- if (vpos == 1) {
- printf("PS\t%s\t%d\t%d\n", chr, (int)(cns[0]>>32) + 1, (int)(cns[0]>>32) + 1);
- printf("M0\t%s\t%d\t%d\t%c\t%c\t%d\t0\t0\t0\t0\n//\n", chr, (int)(cns[0]>>32) + 1, (int)(cns[0]>>32) + 1,
- "ACGTX"[cns[0]&3], "ACGTX"[cns[0]>>16&3], g->vpos_shift + 1);
- for (k = 0; k < kh_end(hash); ++k) {
- if (kh_exist(hash, k)) {
- frag_t *f = &kh_val(hash, k);
- if (f->vpos) continue;
- f->flip = 0;
- if (f->seq[0] == 0) f->phased = 0;
- else f->phased = 1, f->phase = f->seq[0] - 1;
- }
- }
- dump_aln(g, min_pos, hash);
- ++g->vpos_shift;
- return 1;
- }
- { // phase
- int **cnt;
- uint64_t *mask;
- printf("PS\t%s\t%d\t%d\n", chr, (int)(cns[0]>>32) + 1, (int)(cns[vpos-1]>>32) + 1);
- sitemask = calloc(vpos, 1);
- cnt = count_all(g->k, vpos, hash);
- path = dynaprog(g->k, vpos, cnt);
- for (i = 0; i < vpos; ++i) free(cnt[i]);
- free(cnt);
- pcnt = fragphase(vpos, path, hash, 0); // do not fix chimeras when masking
- mask = genmask(vpos, pcnt, &n_masked);
- regmask = calloc(n_masked, 8);
- for (i = 0; i < n_masked; ++i) {
- regmask[i] = cns[mask[i]>>32]>>32<<32 | cns[(uint32_t)mask[i]]>>32;
- for (j = mask[i]>>32; j <= (int32_t)mask[i]; ++j)
- sitemask[j] = 1;
- }
- free(mask);
- if (g->flag & FLAG_FIX_CHIMERA) {
- free(pcnt);
- pcnt = fragphase(vpos, path, hash, 1);
- }
- }
- for (i = 0; i < n_masked; ++i)
- printf("FL\t%s\t%d\t%d\n", chr, (int)(regmask[i]>>32) + 1, (int)regmask[i] + 1);
- for (i = 0; i < vpos; ++i) {
- uint64_t x = pcnt[i];
- int8_t c[2];
- c[0] = (cns[i]&0xffff)>>2 == 0? 4 : (cns[i]&3);
- c[1] = (cns[i]>>16&0xffff)>>2 == 0? 4 : (cns[i]>>16&3);
- printf("M%d\t%s\t%d\t%d\t%c\t%c\t%d\t%d\t%d\t%d\t%d\n", sitemask[i]+1, chr, (int)(cns[0]>>32) + 1, (int)(cns[i]>>32) + 1, "ACGTX"[c[path[i]]], "ACGTX"[c[1-path[i]]],
- i + g->vpos_shift + 1, (int)(x&0xffff), (int)(x>>16&0xffff), (int)(x>>32&0xffff), (int)(x>>48&0xffff));
- }
- free(path); free(pcnt); free(regmask); free(sitemask);
- seqs = calloc(n_seqs, sizeof(void*));
- for (k = 0, i = 0; k < kh_end(hash); ++k)
- if (kh_exist(hash, k) && kh_val(hash, k).vpos < vpos && !kh_val(hash, k).single)
- seqs[i++] = &kh_val(hash, k);
- n_seqs = i;
- ks_introsort_rseq(n_seqs, seqs);
- for (i = 0; i < n_seqs; ++i) {
- frag_t *f = seqs[i];
- printf("EV\t0\t%s\t%d\t40\t%dM\t*\t0\t0\t", chr, f->vpos + 1 + g->vpos_shift, f->vlen);
- for (j = 0; j < f->vlen; ++j) {
- uint32_t c = cns[f->vpos + j];
- if (f->seq[j] == 0) putchar('N');
- else putchar("ACGT"[f->seq[j] == 1? (c&3) : (c>>16&3)]);
- }
- printf("\t*\tYP:i:%d\tYF:i:%d\tYI:i:%d\tYO:i:%d\tYS:i:%d\n", f->phase, f->flip, f->in, f->out, f->beg+1);
- }
- free(seqs);
- printf("//\n");
- fflush(stdout);
- g->vpos_shift += vpos;
- dump_aln(g, min_pos, hash);
- return vpos;
-}
-
-static void update_vpos(int vpos, nseq_t *hash)
-{
- khint_t k;
- for (k = 0; k < kh_end(hash); ++k) {
- if (kh_exist(hash, k)) {
- frag_t *f = &kh_val(hash, k);
- if (f->vpos < vpos) kh_del(64, hash, k); // TODO: if frag_t::seq is allocated dynamically, free it
- else f->vpos -= vpos;
- }
- }
-}
-
-static nseq_t *shrink_hash(nseq_t *hash) // TODO: to implement
-{
- return hash;
-}
-
-static int readaln(void *data, bam1_t *b)
-{
- phaseg_t *g = (phaseg_t*)data;
- int ret;
- ret = bam_read1(g->fp, b);
- if (ret < 0) return ret;
- if (!(b->core.flag & (BAM_FUNMAP|BAM_FSECONDARY|BAM_FQCFAIL|BAM_FDUP)) && g->pre) {
- if (g->n == g->m) {
- g->m = g->m? g->m<<1 : 16;
- g->b = realloc(g->b, g->m * sizeof(void*));
- }
- g->b[g->n++] = bam_dup1(b);
- }
- return ret;
-}
-
-static khash_t(set64) *loadpos(const char *fn, bam_header_t *h)
-{
- gzFile fp;
- kstream_t *ks;
- int ret, dret;
- kstring_t *str;
- khash_t(set64) *hash;
-
- hash = kh_init(set64);
- str = calloc(1, sizeof(kstring_t));
- fp = strcmp(fn, "-")? gzopen(fn, "r") : gzdopen(fileno(stdin), "r");
- ks = ks_init(fp);
- while (ks_getuntil(ks, 0, str, &dret) >= 0) {
- int tid = bam_get_tid(h, str->s);
- if (tid >= 0 && dret != '\n') {
- if (ks_getuntil(ks, 0, str, &dret) >= 0) {
- uint64_t x = (uint64_t)tid<<32 | (atoi(str->s) - 1);
- kh_put(set64, hash, x, &ret);
- } else break;
- }
- if (dret != '\n') while ((dret = ks_getc(ks)) > 0 && dret != '\n');
- if (dret < 0) break;
- }
- ks_destroy(ks);
- gzclose(fp);
- free(str->s); free(str);
- return hash;
-}
-
-static int gl2cns(float q[16])
-{
- int i, j, min_ij;
- float min, min2;
- min = min2 = 1e30; min_ij = -1;
- for (i = 0; i < 4; ++i) {
- for (j = i; j < 4; ++j) {
- if (q[i<<2|j] < min) min_ij = i<<2|j, min2 = min, min = q[i<<2|j];
- else if (q[i<<2|j] < min2) min2 = q[i<<2|j];
- }
- }
- return (min_ij>>2&3) == (min_ij&3)? 0 : 1<<18 | (min_ij>>2&3)<<16 | (min_ij&3) | (int)(min2 - min + .499) << 2;
-}
-
-int main_phase(int argc, char *argv[])
-{
- extern void bam_init_header_hash(bam_header_t *header);
- int c, tid, pos, vpos = 0, n, lasttid = -1, max_vpos = 0;
- const bam_pileup1_t *plp;
- bam_plp_t iter;
- bam_header_t *h;
- nseq_t *seqs;
- uint64_t *cns = 0;
- phaseg_t g;
- char *fn_list = 0;
- khash_t(set64) *set = 0;
- errmod_t *em;
- uint16_t *bases;
-
- memset(&g, 0, sizeof(phaseg_t));
- g.flag = FLAG_FIX_CHIMERA;
- g.min_varLOD = 37; g.k = 13; g.min_baseQ = 13; g.max_depth = 256;
- while ((c = getopt(argc, argv, "Q:eFq:k:b:l:D:A:")) >= 0) {
- switch (c) {
- case 'D': g.max_depth = atoi(optarg); break;
- case 'q': g.min_varLOD = atoi(optarg); break;
- case 'Q': g.min_baseQ = atoi(optarg); break;
- case 'k': g.k = atoi(optarg); break;
- case 'F': g.flag &= ~FLAG_FIX_CHIMERA; break;
- case 'e': g.flag |= FLAG_LIST_EXCL; break;
- case 'A': g.flag |= FLAG_DROP_AMBI; break;
- case 'b': g.pre = strdup(optarg); break;
- case 'l': fn_list = strdup(optarg); break;
- }
- }
- if (argc == optind) {
- fprintf(stderr, "\n");
- fprintf(stderr, "Usage: samtools phase [options] <in.bam>\n\n");
- fprintf(stderr, "Options: -k INT block length [%d]\n", g.k);
- fprintf(stderr, " -b STR prefix of BAMs to output [null]\n");
- fprintf(stderr, " -q INT min het phred-LOD [%d]\n", g.min_varLOD);
- fprintf(stderr, " -Q INT min base quality in het calling [%d]\n", g.min_baseQ);
- fprintf(stderr, " -D INT max read depth [%d]\n", g.max_depth);
-// fprintf(stderr, " -l FILE list of sites to phase [null]\n");
- fprintf(stderr, " -F do not attempt to fix chimeras\n");
- fprintf(stderr, " -A drop reads with ambiguous phase\n");
-// fprintf(stderr, " -e do not discover SNPs (effective with -l)\n");
- fprintf(stderr, "\n");
- return 1;
- }
- g.fp = strcmp(argv[optind], "-")? bam_open(argv[optind], "r") : bam_dopen(fileno(stdin), "r");
- h = bam_header_read(g.fp);
- if (fn_list) { // read the list of sites to phase
- bam_init_header_hash(h);
- set = loadpos(fn_list, h);
- free(fn_list);
- } else g.flag &= ~FLAG_LIST_EXCL;
- if (g.pre) { // open BAMs to write
- char *s = malloc(strlen(g.pre) + 20);
- strcpy(s, g.pre); strcat(s, ".0.bam"); g.out[0] = bam_open(s, "w");
- strcpy(s, g.pre); strcat(s, ".1.bam"); g.out[1] = bam_open(s, "w");
- strcpy(s, g.pre); strcat(s, ".chimera.bam"); g.out[2] = bam_open(s, "w");
- for (c = 0; c <= 2; ++c) bam_header_write(g.out[c], h);
- free(s);
- }
-
- iter = bam_plp_init(readaln, &g);
- g.vpos_shift = 0;
- seqs = kh_init(64);
- em = errmod_init(1. - 0.83);
- bases = calloc(g.max_depth, 2);
- printf("CC\n");
- printf("CC\tDescriptions:\nCC\n");
- printf("CC\t CC comments\n");
- printf("CC\t PS start of a phase set\n");
- printf("CC\t FL filtered region\n");
- printf("CC\t M[012] markers; 0 for singletons, 1 for phased and 2 for filtered\n");
- printf("CC\t EV supporting reads; SAM format\n");
- printf("CC\t // end of a phase set\nCC\n");
- printf("CC\tFormats of PS, FL and M[012] lines (1-based coordinates):\nCC\n");
- printf("CC\t PS chr phaseSetStart phaseSetEnd\n");
- printf("CC\t FL chr filterStart filterEnd\n");
- printf("CC\t M? chr PS pos allele0 allele1 hetIndex #supports0 #errors0 #supp1 #err1\n");
- printf("CC\nCC\n");
- fflush(stdout);
- while ((plp = bam_plp_auto(iter, &tid, &pos, &n)) != 0) {
- int i, k, c, tmp, dophase = 1, in_set = 0;
- float q[16];
- if (tid < 0) break;
- if (tid != lasttid) { // change of chromosome
- g.vpos_shift = 0;
- if (lasttid >= 0) {
- seqs = shrink_hash(seqs);
- phase(&g, h->target_name[lasttid], vpos, cns, seqs);
- update_vpos(0x7fffffff, seqs);
- }
- lasttid = tid;
- vpos = 0;
- }
- if (set && kh_get(set64, set, (uint64_t)tid<<32 | pos) != kh_end(set)) in_set = 1;
- if (n > g.max_depth) continue; // do not proceed if the depth is too high
- // fill the bases array and check if there is a variant
- for (i = k = 0; i < n; ++i) {
- const bam_pileup1_t *p = plp + i;
- uint8_t *seq;
- int q, baseQ, b;
- if (p->is_del || p->is_refskip) continue;
- baseQ = bam1_qual(p->b)[p->qpos];
- if (baseQ < g.min_baseQ) continue;
- seq = bam1_seq(p->b);
- b = bam_nt16_nt4_table[bam1_seqi(seq, p->qpos)];
- if (b > 3) continue;
- q = baseQ < p->b->core.qual? baseQ : p->b->core.qual;
- if (q < 4) q = 4;
- if (q > 63) q = 63;
- bases[k++] = q<<5 | (int)bam1_strand(p->b)<<4 | b;
- }
- if (k == 0) continue;
- errmod_cal(em, k, 4, bases, q); // compute genotype likelihood
- c = gl2cns(q); // get the consensus
- // tell if to proceed
- if (set && (g.flag&FLAG_LIST_EXCL) && !in_set) continue; // not in the list
- if (!in_set && (c&0xffff)>>2 < g.min_varLOD) continue; // not a variant
- // add the variant
- if (vpos == max_vpos) {
- max_vpos = max_vpos? max_vpos<<1 : 128;
- cns = realloc(cns, max_vpos * 8);
- }
- cns[vpos] = (uint64_t)pos<<32 | c;
- for (i = 0; i < n; ++i) {
- const bam_pileup1_t *p = plp + i;
- uint64_t key;
- khint_t k;
- uint8_t *seq = bam1_seq(p->b);
- frag_t *f;
- if (p->is_del || p->is_refskip) continue;
- if (p->b->core.qual == 0) continue;
- // get the base code
- c = nt16_nt4_table[(int)bam1_seqi(seq, p->qpos)];
- if (c == (cns[vpos]&3)) c = 1;
- else if (c == (cns[vpos]>>16&3)) c = 2;
- else c = 0;
- // write to seqs
- key = X31_hash_string(bam1_qname(p->b));
- k = kh_put(64, seqs, key, &tmp);
- f = &kh_val(seqs, k);
- if (tmp == 0) { // present in the hash table
- if (vpos - f->vpos + 1 < MAX_VARS) {
- f->vlen = vpos - f->vpos + 1;
- f->seq[f->vlen-1] = c;
- f->end = bam_calend(&p->b->core, bam1_cigar(p->b));
- }
- dophase = 0;
- } else { // absent
- memset(f->seq, 0, MAX_VARS);
- f->beg = p->b->core.pos;
- f->end = bam_calend(&p->b->core, bam1_cigar(p->b));
- f->vpos = vpos, f->vlen = 1, f->seq[0] = c, f->single = f->phased = f->flip = f->ambig = 0;
- }
- }
- if (dophase) {
- seqs = shrink_hash(seqs);
- phase(&g, h->target_name[tid], vpos, cns, seqs);
- update_vpos(vpos, seqs);
- cns[0] = cns[vpos];
- vpos = 0;
- }
- ++vpos;
- }
- if (tid >= 0) phase(&g, h->target_name[tid], vpos, cns, seqs);
- bam_header_destroy(h);
- bam_plp_destroy(iter);
- bam_close(g.fp);
- kh_destroy(64, seqs);
- kh_destroy(set64, set);
- free(cns);
- errmod_destroy(em);
- free(bases);
- if (g.pre) {
- for (c = 0; c <= 2; ++c) bam_close(g.out[c]);
- free(g.pre); free(g.b);
- }
- return 0;
-}
diff --git a/razf.c b/razf.c
deleted file mode 100644
index e7499f9..0000000
--- a/razf.c
+++ /dev/null
@@ -1,853 +0,0 @@
-/*
- * RAZF : Random Access compressed(Z) File
- * Version: 1.0
- * Release Date: 2008-10-27
- *
- * Copyright 2008, Jue Ruan <ruanjue at gmail.com>, Heng Li <lh3 at sanger.ac.uk>
- *
- * 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. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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.
- */
-
-#ifndef _NO_RAZF
-
-#include <fcntl.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include "razf.h"
-
-
-#if ZLIB_VERNUM < 0x1221
-struct _gz_header_s {
- int text;
- uLong time;
- int xflags;
- int os;
- Bytef *extra;
- uInt extra_len;
- uInt extra_max;
- Bytef *name;
- uInt name_max;
- Bytef *comment;
- uInt comm_max;
- int hcrc;
- int done;
-};
-#warning "zlib < 1.2.2.1; RAZF writing is disabled."
-#endif
-
-#define DEF_MEM_LEVEL 8
-
-static inline uint32_t byte_swap_4(uint32_t v){
- v = ((v & 0x0000FFFFU) << 16) | (v >> 16);
- return ((v & 0x00FF00FFU) << 8) | ((v & 0xFF00FF00U) >> 8);
-}
-
-static inline uint64_t byte_swap_8(uint64_t v){
- v = ((v & 0x00000000FFFFFFFFLLU) << 32) | (v >> 32);
- v = ((v & 0x0000FFFF0000FFFFLLU) << 16) | ((v & 0xFFFF0000FFFF0000LLU) >> 16);
- return ((v & 0x00FF00FF00FF00FFLLU) << 8) | ((v & 0xFF00FF00FF00FF00LLU) >> 8);
-}
-
-static inline int is_big_endian(){
- int x = 0x01;
- char *c = (char*)&x;
- return (c[0] != 0x01);
-}
-
-#ifndef _RZ_READONLY
-static void add_zindex(RAZF *rz, int64_t in, int64_t out){
- if(rz->index->size == rz->index->cap){
- rz->index->cap = rz->index->cap * 1.5 + 2;
- rz->index->cell_offsets = realloc(rz->index->cell_offsets, sizeof(int) * rz->index->cap);
- rz->index->bin_offsets = realloc(rz->index->bin_offsets, sizeof(int64_t) * (rz->index->cap/RZ_BIN_SIZE + 1));
- }
- if(rz->index->size % RZ_BIN_SIZE == 0) rz->index->bin_offsets[rz->index->size / RZ_BIN_SIZE] = out;
- rz->index->cell_offsets[rz->index->size] = out - rz->index->bin_offsets[rz->index->size / RZ_BIN_SIZE];
- rz->index->size ++;
-}
-
-static void save_zindex(RAZF *rz, int fd){
- int32_t i, v32;
- int is_be;
- is_be = is_big_endian();
- if(is_be) write(fd, &rz->index->size, sizeof(int));
- else {
- v32 = byte_swap_4((uint32_t)rz->index->size);
- write(fd, &v32, sizeof(uint32_t));
- }
- v32 = rz->index->size / RZ_BIN_SIZE + 1;
- if(!is_be){
- for(i=0;i<v32;i++) rz->index->bin_offsets[i] = byte_swap_8((uint64_t)rz->index->bin_offsets[i]);
- for(i=0;i<rz->index->size;i++) rz->index->cell_offsets[i] = byte_swap_4((uint32_t)rz->index->cell_offsets[i]);
- }
- write(fd, rz->index->bin_offsets, sizeof(int64_t) * v32);
- write(fd, rz->index->cell_offsets, sizeof(int32_t) * rz->index->size);
-}
-#endif
-
-#ifdef _USE_KNETFILE
-static void load_zindex(RAZF *rz, knetFile *fp){
-#else
-static void load_zindex(RAZF *rz, int fd){
-#endif
- int32_t i, v32;
- int is_be;
- if(!rz->load_index) return;
- if(rz->index == NULL) rz->index = malloc(sizeof(ZBlockIndex));
- is_be = is_big_endian();
-#ifdef _USE_KNETFILE
- knet_read(fp, &rz->index->size, sizeof(int));
-#else
- read(fd, &rz->index->size, sizeof(int));
-#endif
- if(!is_be) rz->index->size = byte_swap_4((uint32_t)rz->index->size);
- rz->index->cap = rz->index->size;
- v32 = rz->index->size / RZ_BIN_SIZE + 1;
- rz->index->bin_offsets = malloc(sizeof(int64_t) * v32);
-#ifdef _USE_KNETFILE
- knet_read(fp, rz->index->bin_offsets, sizeof(int64_t) * v32);
-#else
- read(fd, rz->index->bin_offsets, sizeof(int64_t) * v32);
-#endif
- rz->index->cell_offsets = malloc(sizeof(int) * rz->index->size);
-#ifdef _USE_KNETFILE
- knet_read(fp, rz->index->cell_offsets, sizeof(int) * rz->index->size);
-#else
- read(fd, rz->index->cell_offsets, sizeof(int) * rz->index->size);
-#endif
- if(!is_be){
- for(i=0;i<v32;i++) rz->index->bin_offsets[i] = byte_swap_8((uint64_t)rz->index->bin_offsets[i]);
- for(i=0;i<rz->index->size;i++) rz->index->cell_offsets[i] = byte_swap_4((uint32_t)rz->index->cell_offsets[i]);
- }
-}
-
-#ifdef _RZ_READONLY
-static RAZF* razf_open_w(int fd)
-{
- fprintf(stderr, "[razf_open_w] Writing is not available with zlib ver < 1.2.2.1\n");
- return 0;
-}
-#else
-static RAZF* razf_open_w(int fd){
- RAZF *rz;
-#ifdef _WIN32
- setmode(fd, O_BINARY);
-#endif
- rz = calloc(1, sizeof(RAZF));
- rz->mode = 'w';
-#ifdef _USE_KNETFILE
- rz->x.fpw = fd;
-#else
- rz->filedes = fd;
-#endif
- rz->stream = calloc(sizeof(z_stream), 1);
- rz->inbuf = malloc(RZ_BUFFER_SIZE);
- rz->outbuf = malloc(RZ_BUFFER_SIZE);
- rz->index = calloc(sizeof(ZBlockIndex), 1);
- deflateInit2(rz->stream, RZ_COMPRESS_LEVEL, Z_DEFLATED, WINDOW_BITS + 16, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);
- rz->stream->avail_out = RZ_BUFFER_SIZE;
- rz->stream->next_out = rz->outbuf;
- rz->header = calloc(sizeof(gz_header), 1);
- rz->header->os = 0x03; //Unix
- rz->header->text = 0;
- rz->header->time = 0;
- rz->header->extra = malloc(7);
- strncpy((char*)rz->header->extra, "RAZF", 4);
- rz->header->extra[4] = 1; // obsolete field
- // block size = RZ_BLOCK_SIZE, Big-Endian
- rz->header->extra[5] = RZ_BLOCK_SIZE >> 8;
- rz->header->extra[6] = RZ_BLOCK_SIZE & 0xFF;
- rz->header->extra_len = 7;
- rz->header->name = rz->header->comment = 0;
- rz->header->hcrc = 0;
- deflateSetHeader(rz->stream, rz->header);
- rz->block_pos = rz->block_off = 0;
- return rz;
-}
-
-static void _razf_write(RAZF* rz, const void *data, int size){
- int tout;
- rz->stream->avail_in = size;
- rz->stream->next_in = (void*)data;
- while(1){
- tout = rz->stream->avail_out;
- deflate(rz->stream, Z_NO_FLUSH);
- rz->out += tout - rz->stream->avail_out;
- if(rz->stream->avail_out) break;
-#ifdef _USE_KNETFILE
- write(rz->x.fpw, rz->outbuf, RZ_BUFFER_SIZE - rz->stream->avail_out);
-#else
- write(rz->filedes, rz->outbuf, RZ_BUFFER_SIZE - rz->stream->avail_out);
-#endif
- rz->stream->avail_out = RZ_BUFFER_SIZE;
- rz->stream->next_out = rz->outbuf;
- if(rz->stream->avail_in == 0) break;
- };
- rz->in += size - rz->stream->avail_in;
- rz->block_off += size - rz->stream->avail_in;
-}
-
-static void razf_flush(RAZF *rz){
- uint32_t tout;
- if(rz->buf_len){
- _razf_write(rz, rz->inbuf, rz->buf_len);
- rz->buf_off = rz->buf_len = 0;
- }
- if(rz->stream->avail_out){
-#ifdef _USE_KNETFILE
- write(rz->x.fpw, rz->outbuf, RZ_BUFFER_SIZE - rz->stream->avail_out);
-#else
- write(rz->filedes, rz->outbuf, RZ_BUFFER_SIZE - rz->stream->avail_out);
-#endif
- rz->stream->avail_out = RZ_BUFFER_SIZE;
- rz->stream->next_out = rz->outbuf;
- }
- while(1){
- tout = rz->stream->avail_out;
- deflate(rz->stream, Z_FULL_FLUSH);
- rz->out += tout - rz->stream->avail_out;
- if(rz->stream->avail_out == 0){
-#ifdef _USE_KNETFILE
- write(rz->x.fpw, rz->outbuf, RZ_BUFFER_SIZE - rz->stream->avail_out);
-#else
- write(rz->filedes, rz->outbuf, RZ_BUFFER_SIZE - rz->stream->avail_out);
-#endif
- rz->stream->avail_out = RZ_BUFFER_SIZE;
- rz->stream->next_out = rz->outbuf;
- } else break;
- }
- rz->block_pos = rz->out;
- rz->block_off = 0;
-}
-
-static void razf_end_flush(RAZF *rz){
- uint32_t tout;
- if(rz->buf_len){
- _razf_write(rz, rz->inbuf, rz->buf_len);
- rz->buf_off = rz->buf_len = 0;
- }
- while(1){
- tout = rz->stream->avail_out;
- deflate(rz->stream, Z_FINISH);
- rz->out += tout - rz->stream->avail_out;
- if(rz->stream->avail_out < RZ_BUFFER_SIZE){
-#ifdef _USE_KNETFILE
- write(rz->x.fpw, rz->outbuf, RZ_BUFFER_SIZE - rz->stream->avail_out);
-#else
- write(rz->filedes, rz->outbuf, RZ_BUFFER_SIZE - rz->stream->avail_out);
-#endif
- rz->stream->avail_out = RZ_BUFFER_SIZE;
- rz->stream->next_out = rz->outbuf;
- } else break;
- }
-}
-
-static void _razf_buffered_write(RAZF *rz, const void *data, int size){
- int i, n;
- while(1){
- if(rz->buf_len == RZ_BUFFER_SIZE){
- _razf_write(rz, rz->inbuf, rz->buf_len);
- rz->buf_len = 0;
- }
- if(size + rz->buf_len < RZ_BUFFER_SIZE){
- for(i=0;i<size;i++) ((char*)rz->inbuf + rz->buf_len)[i] = ((char*)data)[i];
- rz->buf_len += size;
- return;
- } else {
- n = RZ_BUFFER_SIZE - rz->buf_len;
- for(i=0;i<n;i++) ((char*)rz->inbuf + rz->buf_len)[i] = ((char*)data)[i];
- size -= n;
- data += n;
- rz->buf_len += n;
- }
- }
-}
-
-int razf_write(RAZF* rz, const void *data, int size){
- int ori_size, n;
- int64_t next_block;
- ori_size = size;
- next_block = ((rz->in / RZ_BLOCK_SIZE) + 1) * RZ_BLOCK_SIZE;
- while(rz->in + rz->buf_len + size >= next_block){
- n = next_block - rz->in - rz->buf_len;
- _razf_buffered_write(rz, data, n);
- data += n;
- size -= n;
- razf_flush(rz);
- add_zindex(rz, rz->in, rz->out);
- next_block = ((rz->in / RZ_BLOCK_SIZE) + 1) * RZ_BLOCK_SIZE;
- }
- _razf_buffered_write(rz, data, size);
- return ori_size;
-}
-#endif
-
-/* gzip flag byte */
-#define ASCII_FLAG 0x01 /* bit 0 set: file probably ascii text */
-#define HEAD_CRC 0x02 /* bit 1 set: header CRC present */
-#define EXTRA_FIELD 0x04 /* bit 2 set: extra field present */
-#define ORIG_NAME 0x08 /* bit 3 set: original file name present */
-#define COMMENT 0x10 /* bit 4 set: file comment present */
-#define RESERVED 0xE0 /* bits 5..7: reserved */
-
-static int _read_gz_header(unsigned char *data, int size, int *extra_off, int *extra_len){
- int method, flags, n, len;
- if(size < 2) return 0;
- if(data[0] != 0x1f || data[1] != 0x8b) return 0;
- if(size < 4) return 0;
- method = data[2];
- flags = data[3];
- if(method != Z_DEFLATED || (flags & RESERVED)) return 0;
- n = 4 + 6; // Skip 6 bytes
- *extra_off = n + 2;
- *extra_len = 0;
- if(flags & EXTRA_FIELD){
- if(size < n + 2) return 0;
- len = ((int)data[n + 1] << 8) | data[n];
- n += 2;
- *extra_off = n;
- while(len){
- if(n >= size) return 0;
- n ++;
- len --;
- }
- *extra_len = n - (*extra_off);
- }
- if(flags & ORIG_NAME) while(n < size && data[n++]);
- if(flags & COMMENT) while(n < size && data[n++]);
- if(flags & HEAD_CRC){
- if(n + 2 > size) return 0;
- n += 2;
- }
- return n;
-}
-
-#ifdef _USE_KNETFILE
-static RAZF* razf_open_r(knetFile *fp, int _load_index){
-#else
-static RAZF* razf_open_r(int fd, int _load_index){
-#endif
- RAZF *rz;
- int ext_off, ext_len;
- int n, is_be, ret;
- int64_t end;
- unsigned char c[] = "RAZF";
- rz = calloc(1, sizeof(RAZF));
- rz->mode = 'r';
-#ifdef _USE_KNETFILE
- rz->x.fpr = fp;
-#else
-#ifdef _WIN32
- setmode(fd, O_BINARY);
-#endif
- rz->filedes = fd;
-#endif
- rz->stream = calloc(sizeof(z_stream), 1);
- rz->inbuf = malloc(RZ_BUFFER_SIZE);
- rz->outbuf = malloc(RZ_BUFFER_SIZE);
- rz->end = rz->src_end = 0x7FFFFFFFFFFFFFFFLL;
-#ifdef _USE_KNETFILE
- n = knet_read(rz->x.fpr, rz->inbuf, RZ_BUFFER_SIZE);
-#else
- n = read(rz->filedes, rz->inbuf, RZ_BUFFER_SIZE);
-#endif
- ret = _read_gz_header(rz->inbuf, n, &ext_off, &ext_len);
- if(ret == 0){
- PLAIN_FILE:
- rz->in = n;
- rz->file_type = FILE_TYPE_PLAIN;
- memcpy(rz->outbuf, rz->inbuf, n);
- rz->buf_len = n;
- free(rz->stream);
- rz->stream = NULL;
- return rz;
- }
- rz->header_size = ret;
- ret = inflateInit2(rz->stream, -WINDOW_BITS);
- if(ret != Z_OK){ inflateEnd(rz->stream); goto PLAIN_FILE;}
- rz->stream->avail_in = n - rz->header_size;
- rz->stream->next_in = rz->inbuf + rz->header_size;
- rz->stream->avail_out = RZ_BUFFER_SIZE;
- rz->stream->next_out = rz->outbuf;
- rz->file_type = FILE_TYPE_GZ;
- rz->in = rz->header_size;
- rz->block_pos = rz->header_size;
- rz->next_block_pos = rz->header_size;
- rz->block_off = 0;
- if(ext_len < 7 || memcmp(rz->inbuf + ext_off, c, 4) != 0) return rz;
- if(((((unsigned char*)rz->inbuf)[ext_off + 5] << 8) | ((unsigned char*)rz->inbuf)[ext_off + 6]) != RZ_BLOCK_SIZE){
- fprintf(stderr, " -- WARNING: RZ_BLOCK_SIZE is not %d, treat source as gz file. in %s -- %s:%d --\n", RZ_BLOCK_SIZE, __FUNCTION__, __FILE__, __LINE__);
- return rz;
- }
- rz->load_index = _load_index;
- rz->file_type = FILE_TYPE_RZ;
-#ifdef _USE_KNETFILE
- if(knet_seek(fp, -16, SEEK_END) == -1){
-#else
- if(lseek(fd, -16, SEEK_END) == -1){
-#endif
- UNSEEKABLE:
- rz->seekable = 0;
- rz->index = NULL;
- rz->src_end = rz->end = 0x7FFFFFFFFFFFFFFFLL;
- } else {
- is_be = is_big_endian();
- rz->seekable = 1;
-#ifdef _USE_KNETFILE
- knet_read(fp, &end, sizeof(int64_t));
-#else
- read(fd, &end, sizeof(int64_t));
-#endif
- if(!is_be) rz->src_end = (int64_t)byte_swap_8((uint64_t)end);
- else rz->src_end = end;
-
-#ifdef _USE_KNETFILE
- knet_read(fp, &end, sizeof(int64_t));
-#else
- read(fd, &end, sizeof(int64_t));
-#endif
- if(!is_be) rz->end = (int64_t)byte_swap_8((uint64_t)end);
- else rz->end = end;
- if(n > rz->end){
- rz->stream->avail_in -= n - rz->end;
- n = rz->end;
- }
- if(rz->end > rz->src_end){
-#ifdef _USE_KNETFILE
- knet_seek(fp, rz->in, SEEK_SET);
-#else
- lseek(fd, rz->in, SEEK_SET);
-#endif
- goto UNSEEKABLE;
- }
-#ifdef _USE_KNETFILE
- knet_seek(fp, rz->end, SEEK_SET);
- if(knet_tell(fp) != rz->end){
- knet_seek(fp, rz->in, SEEK_SET);
-#else
- if(lseek(fd, rz->end, SEEK_SET) != rz->end){
- lseek(fd, rz->in, SEEK_SET);
-#endif
- goto UNSEEKABLE;
- }
-#ifdef _USE_KNETFILE
- load_zindex(rz, fp);
- knet_seek(fp, n, SEEK_SET);
-#else
- load_zindex(rz, fd);
- lseek(fd, n, SEEK_SET);
-#endif
- }
- return rz;
-}
-
-#ifdef _USE_KNETFILE
-RAZF* razf_dopen(int fd, const char *mode){
- if (strstr(mode, "r")) fprintf(stderr,"[razf_dopen] implement me\n");
- else if(strstr(mode, "w")) return razf_open_w(fd);
- return NULL;
-}
-
-RAZF* razf_dopen2(int fd, const char *mode)
-{
- fprintf(stderr,"[razf_dopen2] implement me\n");
- return NULL;
-}
-#else
-RAZF* razf_dopen(int fd, const char *mode){
- if(strstr(mode, "r")) return razf_open_r(fd, 1);
- else if(strstr(mode, "w")) return razf_open_w(fd);
- else return NULL;
-}
-
-RAZF* razf_dopen2(int fd, const char *mode)
-{
- if(strstr(mode, "r")) return razf_open_r(fd, 0);
- else if(strstr(mode, "w")) return razf_open_w(fd);
- else return NULL;
-}
-#endif
-
-static inline RAZF* _razf_open(const char *filename, const char *mode, int _load_index){
- int fd;
- RAZF *rz;
- if(strstr(mode, "r")){
-#ifdef _USE_KNETFILE
- knetFile *fd = knet_open(filename, "r");
- if (fd == 0) {
- fprintf(stderr, "[_razf_open] fail to open %s\n", filename);
- return NULL;
- }
-#else
-#ifdef _WIN32
- fd = open(filename, O_RDONLY | O_BINARY);
-#else
- fd = open(filename, O_RDONLY);
-#endif
-#endif
- if(fd < 0) return NULL;
- rz = razf_open_r(fd, _load_index);
- } else if(strstr(mode, "w")){
-#ifdef _WIN32
- fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 0666);
-#else
- fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0666);
-#endif
- if(fd < 0) return NULL;
- rz = razf_open_w(fd);
- } else return NULL;
- return rz;
-}
-
-RAZF* razf_open(const char *filename, const char *mode){
- return _razf_open(filename, mode, 1);
-}
-
-RAZF* razf_open2(const char *filename, const char *mode){
- return _razf_open(filename, mode, 0);
-}
-
-int razf_get_data_size(RAZF *rz, int64_t *u_size, int64_t *c_size){
- int64_t n;
- if(rz->mode != 'r' && rz->mode != 'R') return 0;
- switch(rz->file_type){
- case FILE_TYPE_PLAIN:
- if(rz->end == 0x7fffffffffffffffLL){
-#ifdef _USE_KNETFILE
- if(knet_seek(rz->x.fpr, 0, SEEK_CUR) == -1) return 0;
- n = knet_tell(rz->x.fpr);
- knet_seek(rz->x.fpr, 0, SEEK_END);
- rz->end = knet_tell(rz->x.fpr);
- knet_seek(rz->x.fpr, n, SEEK_SET);
-#else
- if((n = lseek(rz->filedes, 0, SEEK_CUR)) == -1) return 0;
- rz->end = lseek(rz->filedes, 0, SEEK_END);
- lseek(rz->filedes, n, SEEK_SET);
-#endif
- }
- *u_size = *c_size = rz->end;
- return 1;
- case FILE_TYPE_GZ:
- return 0;
- case FILE_TYPE_RZ:
- if(rz->src_end == rz->end) return 0;
- *u_size = rz->src_end;
- *c_size = rz->end;
- return 1;
- default:
- return 0;
- }
-}
-
-static int _razf_read(RAZF* rz, void *data, int size){
- int ret, tin;
- if(rz->z_eof || rz->z_err) return 0;
- if (rz->file_type == FILE_TYPE_PLAIN) {
-#ifdef _USE_KNETFILE
- ret = knet_read(rz->x.fpr, data, size);
-#else
- ret = read(rz->filedes, data, size);
-#endif
- if (ret == 0) rz->z_eof = 1;
- return ret;
- }
- rz->stream->avail_out = size;
- rz->stream->next_out = data;
- while(rz->stream->avail_out){
- if(rz->stream->avail_in == 0){
- if(rz->in >= rz->end){ rz->z_eof = 1; break; }
- if(rz->end - rz->in < RZ_BUFFER_SIZE){
-#ifdef _USE_KNETFILE
- rz->stream->avail_in = knet_read(rz->x.fpr, rz->inbuf, rz->end -rz->in);
-#else
- rz->stream->avail_in = read(rz->filedes, rz->inbuf, rz->end -rz->in);
-#endif
- } else {
-#ifdef _USE_KNETFILE
- rz->stream->avail_in = knet_read(rz->x.fpr, rz->inbuf, RZ_BUFFER_SIZE);
-#else
- rz->stream->avail_in = read(rz->filedes, rz->inbuf, RZ_BUFFER_SIZE);
-#endif
- }
- if(rz->stream->avail_in == 0){
- rz->z_eof = 1;
- break;
- }
- rz->stream->next_in = rz->inbuf;
- }
- tin = rz->stream->avail_in;
- ret = inflate(rz->stream, Z_BLOCK);
- rz->in += tin - rz->stream->avail_in;
- if(ret == Z_NEED_DICT || ret == Z_MEM_ERROR || ret == Z_DATA_ERROR){
- fprintf(stderr, "[_razf_read] inflate error: %d %s (at %s:%d)\n", ret, rz->stream->msg ? rz->stream->msg : "", __FILE__, __LINE__);
- rz->z_err = 1;
- break;
- }
- if(ret == Z_STREAM_END){
- rz->z_eof = 1;
- break;
- }
- if ((rz->stream->data_type&128) && !(rz->stream->data_type&64)){
- rz->buf_flush = 1;
- rz->next_block_pos = rz->in;
- break;
- }
- }
- return size - rz->stream->avail_out;
-}
-
-int razf_read(RAZF *rz, void *data, int size){
- int ori_size, i;
- ori_size = size;
- while(size > 0){
- if(rz->buf_len){
- if(size < rz->buf_len){
- for(i=0;i<size;i++) ((char*)data)[i] = ((char*)rz->outbuf + rz->buf_off)[i];
- rz->buf_off += size;
- rz->buf_len -= size;
- data += size;
- rz->block_off += size;
- size = 0;
- break;
- } else {
- for(i=0;i<rz->buf_len;i++) ((char*)data)[i] = ((char*)rz->outbuf + rz->buf_off)[i];
- data += rz->buf_len;
- size -= rz->buf_len;
- rz->block_off += rz->buf_len;
- rz->buf_off = 0;
- rz->buf_len = 0;
- if(rz->buf_flush){
- rz->block_pos = rz->next_block_pos;
- rz->block_off = 0;
- rz->buf_flush = 0;
- }
- }
- } else if(rz->buf_flush){
- rz->block_pos = rz->next_block_pos;
- rz->block_off = 0;
- rz->buf_flush = 0;
- }
- if(rz->buf_flush) continue;
- rz->buf_len = _razf_read(rz, rz->outbuf, RZ_BUFFER_SIZE);
- if(rz->z_eof && rz->buf_len == 0) break;
- }
- rz->out += ori_size - size;
- return ori_size - size;
-}
-
-int razf_skip(RAZF* rz, int size){
- int ori_size;
- ori_size = size;
- while(size > 0){
- if(rz->buf_len){
- if(size < rz->buf_len){
- rz->buf_off += size;
- rz->buf_len -= size;
- rz->block_off += size;
- size = 0;
- break;
- } else {
- size -= rz->buf_len;
- rz->buf_off = 0;
- rz->buf_len = 0;
- rz->block_off += rz->buf_len;
- if(rz->buf_flush){
- rz->block_pos = rz->next_block_pos;
- rz->block_off = 0;
- rz->buf_flush = 0;
- }
- }
- } else if(rz->buf_flush){
- rz->block_pos = rz->next_block_pos;
- rz->block_off = 0;
- rz->buf_flush = 0;
- }
- if(rz->buf_flush) continue;
- rz->buf_len = _razf_read(rz, rz->outbuf, RZ_BUFFER_SIZE);
- if(rz->z_eof || rz->z_err) break;
- }
- rz->out += ori_size - size;
- return ori_size - size;
-}
-
-static void _razf_reset_read(RAZF *rz, int64_t in, int64_t out){
-#ifdef _USE_KNETFILE
- knet_seek(rz->x.fpr, in, SEEK_SET);
-#else
- lseek(rz->filedes, in, SEEK_SET);
-#endif
- rz->in = in;
- rz->out = out;
- rz->block_pos = in;
- rz->next_block_pos = in;
- rz->block_off = 0;
- rz->buf_flush = 0;
- rz->z_eof = rz->z_err = 0;
- inflateReset(rz->stream);
- rz->stream->avail_in = 0;
- rz->buf_off = rz->buf_len = 0;
-}
-
-int64_t razf_jump(RAZF *rz, int64_t block_start, int block_offset){
- int64_t pos;
- rz->z_eof = 0;
- if(rz->file_type == FILE_TYPE_PLAIN){
- rz->buf_off = rz->buf_len = 0;
- pos = block_start + block_offset;
-#ifdef _USE_KNETFILE
- knet_seek(rz->x.fpr, pos, SEEK_SET);
- pos = knet_tell(rz->x.fpr);
-#else
- pos = lseek(rz->filedes, pos, SEEK_SET);
-#endif
- rz->out = rz->in = pos;
- return pos;
- }
- if(block_start == rz->block_pos && block_offset >= rz->block_off) {
- block_offset -= rz->block_off;
- goto SKIP; // Needn't reset inflate
- }
- if(block_start == 0) block_start = rz->header_size; // Automaticly revist wrong block_start
- _razf_reset_read(rz, block_start, 0);
- SKIP:
- if(block_offset) razf_skip(rz, block_offset);
- return rz->block_off;
-}
-
-int64_t razf_seek(RAZF* rz, int64_t pos, int where){
- int64_t idx;
- int64_t seek_pos, new_out;
- rz->z_eof = 0;
- if (where == SEEK_CUR) pos += rz->out;
- else if (where == SEEK_END) pos += rz->src_end;
- if(rz->file_type == FILE_TYPE_PLAIN){
-#ifdef _USE_KNETFILE
- knet_seek(rz->x.fpr, pos, SEEK_SET);
- seek_pos = knet_tell(rz->x.fpr);
-#else
- seek_pos = lseek(rz->filedes, pos, SEEK_SET);
-#endif
- rz->buf_off = rz->buf_len = 0;
- rz->out = rz->in = seek_pos;
- return seek_pos;
- } else if(rz->file_type == FILE_TYPE_GZ){
- if(pos >= rz->out) goto SKIP;
- return rz->out;
- }
- if(pos == rz->out) return pos;
- if(pos > rz->src_end) return rz->out;
- if(!rz->seekable || !rz->load_index){
- if(pos >= rz->out) goto SKIP;
- }
- idx = pos / RZ_BLOCK_SIZE - 1;
- seek_pos = (idx < 0)? rz->header_size:(rz->index->cell_offsets[idx] + rz->index->bin_offsets[idx / RZ_BIN_SIZE]);
- new_out = (idx + 1) * RZ_BLOCK_SIZE;
- if(pos > rz->out && new_out <= rz->out) goto SKIP;
- _razf_reset_read(rz, seek_pos, new_out);
- SKIP:
- razf_skip(rz, (int)(pos - rz->out));
- return rz->out;
-}
-
-uint64_t razf_tell2(RAZF *rz)
-{
- /*
- if (rz->load_index) {
- int64_t idx, seek_pos;
- idx = rz->out / RZ_BLOCK_SIZE - 1;
- seek_pos = (idx < 0)? rz->header_size:(rz->index->cell_offsets[idx] + rz->index->bin_offsets[idx / RZ_BIN_SIZE]);
- if (seek_pos != rz->block_pos || rz->out%RZ_BLOCK_SIZE != rz->block_off)
- fprintf(stderr, "[razf_tell2] inconsistent block offset: (%lld, %lld) != (%lld, %lld)\n",
- (long long)seek_pos, (long long)rz->out%RZ_BLOCK_SIZE, (long long)rz->block_pos, (long long) rz->block_off);
- }
- */
- return (uint64_t)rz->block_pos<<16 | (rz->block_off&0xffff);
-}
-
-int64_t razf_seek2(RAZF *rz, uint64_t voffset, int where)
-{
- if (where != SEEK_SET) return -1;
- return razf_jump(rz, voffset>>16, voffset&0xffff);
-}
-
-void razf_close(RAZF *rz){
- if(rz->mode == 'w'){
-#ifndef _RZ_READONLY
- razf_end_flush(rz);
- deflateEnd(rz->stream);
-#ifdef _USE_KNETFILE
- save_zindex(rz, rz->x.fpw);
- if(is_big_endian()){
- write(rz->x.fpw, &rz->in, sizeof(int64_t));
- write(rz->x.fpw, &rz->out, sizeof(int64_t));
- } else {
- uint64_t v64 = byte_swap_8((uint64_t)rz->in);
- write(rz->x.fpw, &v64, sizeof(int64_t));
- v64 = byte_swap_8((uint64_t)rz->out);
- write(rz->x.fpw, &v64, sizeof(int64_t));
- }
-#else
- save_zindex(rz, rz->filedes);
- if(is_big_endian()){
- write(rz->filedes, &rz->in, sizeof(int64_t));
- write(rz->filedes, &rz->out, sizeof(int64_t));
- } else {
- uint64_t v64 = byte_swap_8((uint64_t)rz->in);
- write(rz->filedes, &v64, sizeof(int64_t));
- v64 = byte_swap_8((uint64_t)rz->out);
- write(rz->filedes, &v64, sizeof(int64_t));
- }
-#endif
-#endif
- } else if(rz->mode == 'r'){
- if(rz->stream) inflateEnd(rz->stream);
- }
- if(rz->inbuf) free(rz->inbuf);
- if(rz->outbuf) free(rz->outbuf);
- if(rz->header){
- free(rz->header->extra);
- free(rz->header->name);
- free(rz->header->comment);
- free(rz->header);
- }
- if(rz->index){
- free(rz->index->bin_offsets);
- free(rz->index->cell_offsets);
- free(rz->index);
- }
- free(rz->stream);
-#ifdef _USE_KNETFILE
- if (rz->mode == 'r')
- knet_close(rz->x.fpr);
- if (rz->mode == 'w')
- close(rz->x.fpw);
-#else
- close(rz->filedes);
-#endif
- free(rz);
-}
-
-#endif
diff --git a/razip.c b/razip.c
deleted file mode 100644
index 825e732..0000000
--- a/razip.c
+++ /dev/null
@@ -1,141 +0,0 @@
-#include <stdio.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-#include "razf.h"
-
-#define WINDOW_SIZE 4096
-
-static int razf_main_usage()
-{
- printf("\n");
- printf("Usage: razip [options] [file] ...\n\n");
- printf("Options: -c write on standard output, keep original files unchanged\n");
- printf(" -d decompress\n");
- printf(" -l list compressed file contents\n");
- printf(" -b INT decompress at INT position in the uncompressed file\n");
- printf(" -s INT decompress INT bytes in the uncompressed file\n");
- printf(" -h give this help\n");
- printf("\n");
- return 0;
-}
-
-static int write_open(const char *fn, int is_forced)
-{
- int fd = -1;
- char c;
- if (!is_forced) {
- if ((fd = open(fn, O_WRONLY | O_CREAT | O_TRUNC | O_EXCL, 0666)) < 0 && errno == EEXIST) {
- printf("razip: %s already exists; do you wish to overwrite (y or n)? ", fn);
- scanf("%c", &c);
- if (c != 'Y' && c != 'y') {
- printf("razip: not overwritten\n");
- exit(1);
- }
- }
- }
- if (fd < 0) {
- if ((fd = open(fn, O_WRONLY | O_CREAT | O_TRUNC, 0666)) < 0) {
- fprintf(stderr, "razip: %s: Fail to write\n", fn);
- exit(1);
- }
- }
- return fd;
-}
-
-int main(int argc, char **argv)
-{
- int c, compress, pstdout, is_forced;
- RAZF *rz;
- void *buffer;
- long start, end, size;
-
- compress = 1; pstdout = 0; start = 0; size = -1; end = -1; is_forced = 0;
- while((c = getopt(argc, argv, "cdlhfb:s:")) >= 0){
- switch(c){
- case 'h': return razf_main_usage();
- case 'd': compress = 0; break;
- case 'c': pstdout = 1; break;
- case 'l': compress = 2; break;
- case 'b': start = atol(optarg); break;
- case 's': size = atol(optarg); break;
- case 'f': is_forced = 1; break;
- }
- }
- if (size >= 0) end = start + size;
- if(end >= 0 && end < start){
- fprintf(stderr, " -- Illegal region: [%ld, %ld] --\n", start, end);
- return 1;
- }
- if(compress == 1){
- int f_src, f_dst = -1;
- if(argc > optind){
- if((f_src = open(argv[optind], O_RDONLY)) < 0){
- fprintf(stderr, " -- Cannot open file: %s --\n", argv[optind]);
- return 1;
- }
- if(pstdout){
- f_dst = fileno(stdout);
- } else {
- char *name = malloc(sizeof(strlen(argv[optind]) + 5));
- strcpy(name, argv[optind]);
- strcat(name, ".rz");
- f_dst = write_open(name, is_forced);
- if (f_dst < 0) return 1;
- free(name);
- }
- } else if(pstdout){
- f_src = fileno(stdin);
- f_dst = fileno(stdout);
- } else return razf_main_usage();
- rz = razf_dopen(f_dst, "w");
- buffer = malloc(WINDOW_SIZE);
- while((c = read(f_src, buffer, WINDOW_SIZE)) > 0) razf_write(rz, buffer, c);
- razf_close(rz); // f_dst will be closed here
- if (argc > optind && !pstdout) unlink(argv[optind]);
- free(buffer);
- close(f_src);
- return 0;
- } else {
- if(argc <= optind) return razf_main_usage();
- if(compress == 2){
- rz = razf_open(argv[optind], "r");
- if(rz->file_type == FILE_TYPE_RZ) {
- printf("%20s%20s%7s %s\n", "compressed", "uncompressed", "ratio", "name");
- printf("%20lld%20lld%6.1f%% %s\n", (long long)rz->end, (long long)rz->src_end, rz->end * 100.0f / rz->src_end,
- argv[optind]);
- } else fprintf(stdout, "%s is not a regular rz file\n", argv[optind]);
- } else {
- int f_dst;
- if (argc > optind && !pstdout) {
- char *name;
- if (strstr(argv[optind], ".rz") - argv[optind] != strlen(argv[optind]) - 3) {
- printf("razip: %s: unknown suffix -- ignored\n", argv[optind]);
- return 1;
- }
- name = strdup(argv[optind]);
- name[strlen(name) - 3] = '\0';
- f_dst = write_open(name, is_forced);
- free(name);
- } else f_dst = fileno(stdout);
- rz = razf_open(argv[optind], "r");
- buffer = malloc(WINDOW_SIZE);
- razf_seek(rz, start, SEEK_SET);
- while(1){
- if(end < 0) c = razf_read(rz, buffer, WINDOW_SIZE);
- else c = razf_read(rz, buffer, (end - start > WINDOW_SIZE)? WINDOW_SIZE:(end - start));
- if(c <= 0) break;
- start += c;
- write(f_dst, buffer, c);
- if(end >= 0 && start >= end) break;
- }
- free(buffer);
- if (!pstdout) unlink(argv[optind]);
- }
- razf_close(rz);
- return 0;
- }
-}
-
diff --git a/sam.c b/sam.c
deleted file mode 100644
index fa11df6..0000000
--- a/sam.c
+++ /dev/null
@@ -1,186 +0,0 @@
-#include <string.h>
-#include <unistd.h>
-#include "faidx.h"
-#include "sam.h"
-
-#define TYPE_BAM 1
-#define TYPE_READ 2
-
-bam_header_t *bam_header_dup(const bam_header_t *h0)
-{
- bam_header_t *h;
- int i;
- h = bam_header_init();
- *h = *h0;
- h->hash = h->dict = h->rg2lib = 0;
- h->text = (char*)calloc(h->l_text + 1, 1);
- memcpy(h->text, h0->text, h->l_text);
- h->target_len = (uint32_t*)calloc(h->n_targets, 4);
- h->target_name = (char**)calloc(h->n_targets, sizeof(void*));
- for (i = 0; i < h->n_targets; ++i) {
- h->target_len[i] = h0->target_len[i];
- h->target_name[i] = strdup(h0->target_name[i]);
- }
- return h;
-}
-static void append_header_text(bam_header_t *header, char* text, int len)
-{
- int x = header->l_text + 1;
- int y = header->l_text + len + 1; // 1 byte null
- if (text == 0) return;
- kroundup32(x);
- kroundup32(y);
- if (x < y) header->text = (char*)realloc(header->text, y);
- strncpy(header->text + header->l_text, text, len); // we cannot use strcpy() here.
- header->l_text += len;
- header->text[header->l_text] = 0;
-}
-
-int samthreads(samfile_t *fp, int n_threads, int n_sub_blks)
-{
- if (!(fp->type&1) || (fp->type&2)) return -1;
- bgzf_mt(fp->x.bam, n_threads, n_sub_blks);
- return 0;
-}
-
-samfile_t *samopen(const char *fn, const char *mode, const void *aux)
-{
- samfile_t *fp;
- fp = (samfile_t*)calloc(1, sizeof(samfile_t));
- if (strchr(mode, 'r')) { // read
- fp->type |= TYPE_READ;
- if (strchr(mode, 'b')) { // binary
- fp->type |= TYPE_BAM;
- fp->x.bam = strcmp(fn, "-")? bam_open(fn, "r") : bam_dopen(fileno(stdin), "r");
- if (fp->x.bam == 0) goto open_err_ret;
- fp->header = bam_header_read(fp->x.bam);
- } else { // text
- fp->x.tamr = sam_open(fn);
- if (fp->x.tamr == 0) goto open_err_ret;
- fp->header = sam_header_read(fp->x.tamr);
- if (fp->header->n_targets == 0) { // no @SQ fields
- if (aux) { // check if aux is present
- bam_header_t *textheader = fp->header;
- fp->header = sam_header_read2((const char*)aux);
- if (fp->header == 0) goto open_err_ret;
- append_header_text(fp->header, textheader->text, textheader->l_text);
- bam_header_destroy(textheader);
- }
- if (fp->header->n_targets == 0 && bam_verbose >= 1)
- fprintf(stderr, "[samopen] no @SQ lines in the header.\n");
- } else if (bam_verbose >= 2) fprintf(stderr, "[samopen] SAM header is present: %d sequences.\n", fp->header->n_targets);
- }
- } else if (strchr(mode, 'w')) { // write
- fp->header = bam_header_dup((const bam_header_t*)aux);
- if (strchr(mode, 'b')) { // binary
- char bmode[3];
- int i, compress_level = -1;
- for (i = 0; mode[i]; ++i) if (mode[i] >= '0' && mode[i] <= '9') break;
- if (mode[i]) compress_level = mode[i] - '0';
- if (strchr(mode, 'u')) compress_level = 0;
- bmode[0] = 'w'; bmode[1] = compress_level < 0? 0 : compress_level + '0'; bmode[2] = 0;
- fp->type |= TYPE_BAM;
- fp->x.bam = strcmp(fn, "-")? bam_open(fn, bmode) : bam_dopen(fileno(stdout), bmode);
- if (fp->x.bam == 0) goto open_err_ret;
- bam_header_write(fp->x.bam, fp->header);
- } else { // text
- // open file
- fp->x.tamw = strcmp(fn, "-")? fopen(fn, "w") : stdout;
- if (fp->x.tamw == 0) goto open_err_ret;
- if (strchr(mode, 'X')) fp->type |= BAM_OFSTR<<2;
- else if (strchr(mode, 'x')) fp->type |= BAM_OFHEX<<2;
- else fp->type |= BAM_OFDEC<<2;
- // write header
- if (strchr(mode, 'h')) {
- int i;
- bam_header_t *alt;
- // parse the header text
- alt = bam_header_init();
- alt->l_text = fp->header->l_text; alt->text = fp->header->text;
- sam_header_parse(alt);
- alt->l_text = 0; alt->text = 0;
- // check if there are @SQ lines in the header
- fwrite(fp->header->text, 1, fp->header->l_text, fp->x.tamw); // FIXME: better to skip the trailing NULL
- if (alt->n_targets) { // then write the header text without dumping ->target_{name,len}
- if (alt->n_targets != fp->header->n_targets && bam_verbose >= 1)
- fprintf(stderr, "[samopen] inconsistent number of target sequences. Output the text header.\n");
- } else { // then dump ->target_{name,len}
- for (i = 0; i < fp->header->n_targets; ++i)
- fprintf(fp->x.tamw, "@SQ\tSN:%s\tLN:%d\n", fp->header->target_name[i], fp->header->target_len[i]);
- }
- bam_header_destroy(alt);
- }
- }
- }
- return fp;
-
-open_err_ret:
- free(fp);
- return 0;
-}
-
-void samclose(samfile_t *fp)
-{
- if (fp == 0) return;
- if (fp->header) bam_header_destroy(fp->header);
- if (fp->type & TYPE_BAM) bam_close(fp->x.bam);
- else if (fp->type & TYPE_READ) sam_close(fp->x.tamr);
- else fclose(fp->x.tamw);
- free(fp);
-}
-
-int samread(samfile_t *fp, bam1_t *b)
-{
- if (fp == 0 || !(fp->type & TYPE_READ)) return -1; // not open for reading
- if (fp->type & TYPE_BAM) return bam_read1(fp->x.bam, b);
- else return sam_read1(fp->x.tamr, fp->header, b);
-}
-
-int samwrite(samfile_t *fp, const bam1_t *b)
-{
- if (fp == 0 || (fp->type & TYPE_READ)) return -1; // not open for writing
- if (fp->type & TYPE_BAM) return bam_write1(fp->x.bam, b);
- else {
- char *s = bam_format1_core(fp->header, b, fp->type>>2&3);
- int l = strlen(s);
- fputs(s, fp->x.tamw); fputc('\n', fp->x.tamw);
- free(s);
- return l + 1;
- }
-}
-
-int sampileup(samfile_t *fp, int mask, bam_pileup_f func, void *func_data)
-{
- bam_plbuf_t *buf;
- int ret;
- bam1_t *b;
- b = bam_init1();
- buf = bam_plbuf_init(func, func_data);
- bam_plbuf_set_mask(buf, mask);
- while ((ret = samread(fp, b)) >= 0)
- bam_plbuf_push(b, buf);
- bam_plbuf_push(0, buf);
- bam_plbuf_destroy(buf);
- bam_destroy1(b);
- return 0;
-}
-
-char *samfaipath(const char *fn_ref)
-{
- char *fn_list = 0;
- if (fn_ref == 0) return 0;
- fn_list = calloc(strlen(fn_ref) + 5, 1);
- strcat(strcpy(fn_list, fn_ref), ".fai");
- if (access(fn_list, R_OK) == -1) { // fn_list is unreadable
- if (access(fn_ref, R_OK) == -1) {
- fprintf(stderr, "[samfaipath] fail to read file %s.\n", fn_ref);
- } else {
- if (bam_verbose >= 3) fprintf(stderr, "[samfaipath] build FASTA index...\n");
- if (fai_build(fn_ref) == -1) {
- fprintf(stderr, "[samfaipath] fail to build FASTA index.\n");
- free(fn_list); fn_list = 0;
- }
- }
- }
- return fn_list;
-}
diff --git a/sam_header.c b/sam_header.c
deleted file mode 100644
index a1b5181..0000000
--- a/sam_header.c
+++ /dev/null
@@ -1,772 +0,0 @@
-#include "sam_header.h"
-#include <stdio.h>
-#include <string.h>
-#include <ctype.h>
-#include <stdlib.h>
-#include <stdarg.h>
-
-#include "khash.h"
-KHASH_MAP_INIT_STR(str, const char *)
-
-struct _HeaderList
-{
- struct _HeaderList *last; // Hack: Used and maintained only by list_append_to_end. Maintained in the root node only.
- struct _HeaderList *next;
- void *data;
-};
-typedef struct _HeaderList list_t;
-typedef list_t HeaderDict;
-
-typedef struct
-{
- char key[2];
- char *value;
-}
-HeaderTag;
-
-typedef struct
-{
- char type[2];
- list_t *tags;
-}
-HeaderLine;
-
-const char *o_hd_tags[] = {"SO","GO",NULL};
-const char *r_hd_tags[] = {"VN",NULL};
-
-const char *o_sq_tags[] = {"AS","M5","UR","SP",NULL};
-const char *r_sq_tags[] = {"SN","LN",NULL};
-const char *u_sq_tags[] = {"SN",NULL};
-
-const char *o_rg_tags[] = {"CN","DS","DT","FO","KS","LB","PG","PI","PL","PU","SM",NULL};
-const char *r_rg_tags[] = {"ID",NULL};
-const char *u_rg_tags[] = {"ID",NULL};
-
-const char *o_pg_tags[] = {"VN","CL",NULL};
-const char *r_pg_tags[] = {"ID",NULL};
-
-const char *types[] = {"HD","SQ","RG","PG","CO",NULL};
-const char **optional_tags[] = {o_hd_tags,o_sq_tags,o_rg_tags,o_pg_tags,NULL,NULL};
-const char **required_tags[] = {r_hd_tags,r_sq_tags,r_rg_tags,r_pg_tags,NULL,NULL};
-const char **unique_tags[] = {NULL, u_sq_tags,u_rg_tags,NULL,NULL,NULL};
-
-
-static void debug(const char *format, ...)
-{
- va_list ap;
- va_start(ap, format);
- vfprintf(stderr, format, ap);
- va_end(ap);
-}
-
-#if 0
-// Replaced by list_append_to_end
-static list_t *list_prepend(list_t *root, void *data)
-{
- list_t *l = malloc(sizeof(list_t));
- l->next = root;
- l->data = data;
- return l;
-}
-#endif
-
-// Relies on the root->last being correct. Do not use with the other list_*
-// routines unless they are fixed to modify root->last as well.
-static list_t *list_append_to_end(list_t *root, void *data)
-{
- list_t *l = malloc(sizeof(list_t));
- l->last = l;
- l->next = NULL;
- l->data = data;
-
- if ( !root )
- return l;
-
- root->last->next = l;
- root->last = l;
- return root;
-}
-
-static list_t *list_append(list_t *root, void *data)
-{
- list_t *l = root;
- while (l && l->next)
- l = l->next;
- if ( l )
- {
- l->next = malloc(sizeof(list_t));
- l = l->next;
- }
- else
- {
- l = malloc(sizeof(list_t));
- root = l;
- }
- l->data = data;
- l->next = NULL;
- return root;
-}
-
-static void list_free(list_t *root)
-{
- list_t *l = root;
- while (root)
- {
- l = root;
- root = root->next;
- free(l);
- }
-}
-
-
-
-// Look for a tag "XY" in a predefined const char *[] array.
-static int tag_exists(const char *tag, const char **tags)
-{
- int itag=0;
- if ( !tags ) return -1;
- while ( tags[itag] )
- {
- if ( tags[itag][0]==tag[0] && tags[itag][1]==tag[1] ) return itag;
- itag++;
- }
- return -1;
-}
-
-
-
-// Mimics the behaviour of getline, except it returns pointer to the next chunk of the text
-// or NULL if everything has been read. The lineptr should be freed by the caller. The
-// newline character is stripped.
-static const char *nextline(char **lineptr, size_t *n, const char *text)
-{
- int len;
- const char *to = text;
-
- if ( !*to ) return NULL;
-
- while ( *to && *to!='\n' && *to!='\r' ) to++;
- len = to - text + 1;
-
- if ( *to )
- {
- // Advance the pointer for the next call
- if ( *to=='\n' ) to++;
- else if ( *to=='\r' && *(to+1)=='\n' ) to+=2;
- }
- if ( !len )
- return to;
-
- if ( !*lineptr )
- {
- *lineptr = malloc(len);
- *n = len;
- }
- else if ( *n<len )
- {
- *lineptr = realloc(*lineptr, len);
- *n = len;
- }
- if ( !*lineptr ) {
- debug("[nextline] Insufficient memory!\n");
- return 0;
- }
-
- memcpy(*lineptr,text,len);
- (*lineptr)[len-1] = 0;
-
- return to;
-}
-
-// name points to "XY", value_from points to the first character of the value string and
-// value_to points to the last character of the value string.
-static HeaderTag *new_tag(const char *name, const char *value_from, const char *value_to)
-{
- HeaderTag *tag = malloc(sizeof(HeaderTag));
- int len = value_to-value_from+1;
-
- tag->key[0] = name[0];
- tag->key[1] = name[1];
- tag->value = malloc(len+1);
- memcpy(tag->value,value_from,len+1);
- tag->value[len] = 0;
- return tag;
-}
-
-static HeaderTag *header_line_has_tag(HeaderLine *hline, const char *key)
-{
- list_t *tags = hline->tags;
- while (tags)
- {
- HeaderTag *tag = tags->data;
- if ( tag->key[0]==key[0] && tag->key[1]==key[1] ) return tag;
- tags = tags->next;
- }
- return NULL;
-}
-
-
-// Return codes:
-// 0 .. different types or unique tags differ or conflicting tags, cannot be merged
-// 1 .. all tags identical -> no need to merge, drop one
-// 2 .. the unique tags match and there are some conflicting tags (same tag, different value) -> error, cannot be merged nor duplicated
-// 3 .. there are some missing complementary tags and no unique conflict -> can be merged into a single line
-static int sam_header_compare_lines(HeaderLine *hline1, HeaderLine *hline2)
-{
- HeaderTag *t1, *t2;
-
- if ( hline1->type[0]!=hline2->type[0] || hline1->type[1]!=hline2->type[1] )
- return 0;
-
- int itype = tag_exists(hline1->type,types);
- if ( itype==-1 ) {
- debug("[sam_header_compare_lines] Unknown type [%c%c]\n", hline1->type[0],hline1->type[1]);
- return -1; // FIXME (lh3): error; I do not know how this will be handled in Petr's code
- }
-
- if ( unique_tags[itype] )
- {
- t1 = header_line_has_tag(hline1,unique_tags[itype][0]);
- t2 = header_line_has_tag(hline2,unique_tags[itype][0]);
- if ( !t1 || !t2 ) // this should never happen, the unique tags are required
- return 2;
-
- if ( strcmp(t1->value,t2->value) )
- return 0; // the unique tags differ, cannot be merged
- }
- if ( !required_tags[itype] && !optional_tags[itype] )
- {
- t1 = hline1->tags->data;
- t2 = hline2->tags->data;
- if ( !strcmp(t1->value,t2->value) ) return 1; // identical comments
- return 0;
- }
-
- int missing=0, itag=0;
- while ( required_tags[itype] && required_tags[itype][itag] )
- {
- t1 = header_line_has_tag(hline1,required_tags[itype][itag]);
- t2 = header_line_has_tag(hline2,required_tags[itype][itag]);
- if ( !t1 && !t2 )
- return 2; // this should never happen
- else if ( !t1 || !t2 )
- missing = 1; // there is some tag missing in one of the hlines
- else if ( strcmp(t1->value,t2->value) )
- {
- if ( unique_tags[itype] )
- return 2; // the lines have a matching unique tag but have a conflicting tag
-
- return 0; // the lines contain conflicting tags, cannot be merged
- }
- itag++;
- }
- itag = 0;
- while ( optional_tags[itype] && optional_tags[itype][itag] )
- {
- t1 = header_line_has_tag(hline1,optional_tags[itype][itag]);
- t2 = header_line_has_tag(hline2,optional_tags[itype][itag]);
- if ( !t1 && !t2 )
- {
- itag++;
- continue;
- }
- if ( !t1 || !t2 )
- missing = 1; // there is some tag missing in one of the hlines
- else if ( strcmp(t1->value,t2->value) )
- {
- if ( unique_tags[itype] )
- return 2; // the lines have a matching unique tag but have a conflicting tag
-
- return 0; // the lines contain conflicting tags, cannot be merged
- }
- itag++;
- }
- if ( missing ) return 3; // there are some missing complementary tags with no conflicts, can be merged
- return 1;
-}
-
-
-static HeaderLine *sam_header_line_clone(const HeaderLine *hline)
-{
- list_t *tags;
- HeaderLine *out = malloc(sizeof(HeaderLine));
- out->type[0] = hline->type[0];
- out->type[1] = hline->type[1];
- out->tags = NULL;
-
- tags = hline->tags;
- while (tags)
- {
- HeaderTag *old = tags->data;
-
- HeaderTag *new = malloc(sizeof(HeaderTag));
- new->key[0] = old->key[0];
- new->key[1] = old->key[1];
- new->value = strdup(old->value);
- out->tags = list_append(out->tags, new);
-
- tags = tags->next;
- }
- return out;
-}
-
-static int sam_header_line_merge_with(HeaderLine *out_hline, const HeaderLine *tmpl_hline)
-{
- list_t *tmpl_tags;
-
- if ( out_hline->type[0]!=tmpl_hline->type[0] || out_hline->type[1]!=tmpl_hline->type[1] )
- return 0;
-
- tmpl_tags = tmpl_hline->tags;
- while (tmpl_tags)
- {
- HeaderTag *tmpl_tag = tmpl_tags->data;
- HeaderTag *out_tag = header_line_has_tag(out_hline, tmpl_tag->key);
- if ( !out_tag )
- {
- HeaderTag *tag = malloc(sizeof(HeaderTag));
- tag->key[0] = tmpl_tag->key[0];
- tag->key[1] = tmpl_tag->key[1];
- tag->value = strdup(tmpl_tag->value);
- out_hline->tags = list_append(out_hline->tags,tag);
- }
- tmpl_tags = tmpl_tags->next;
- }
- return 1;
-}
-
-
-static HeaderLine *sam_header_line_parse(const char *headerLine)
-{
- HeaderLine *hline;
- HeaderTag *tag;
- const char *from, *to;
- from = headerLine;
-
- if ( *from != '@' ) {
- debug("[sam_header_line_parse] expected '@', got [%s]\n", headerLine);
- return 0;
- }
- to = ++from;
-
- while (*to && *to!='\t') to++;
- if ( to-from != 2 ) {
- debug("[sam_header_line_parse] expected '@XY', got [%s]\nHint: The header tags must be tab-separated.\n", headerLine);
- return 0;
- }
-
- hline = malloc(sizeof(HeaderLine));
- hline->type[0] = from[0];
- hline->type[1] = from[1];
- hline->tags = NULL;
-
- int itype = tag_exists(hline->type, types);
-
- from = to;
- while (*to && *to=='\t') to++;
- if ( to-from != 1 ) {
- debug("[sam_header_line_parse] multiple tabs on line [%s] (%d)\n", headerLine,(int)(to-from));
- return 0;
- }
- from = to;
- while (*from)
- {
- while (*to && *to!='\t') to++;
-
- if ( !required_tags[itype] && !optional_tags[itype] )
- {
- // CO is a special case, it can contain anything, including tabs
- if ( *to ) { to++; continue; }
- tag = new_tag(" ",from,to-1);
- }
- else
- tag = new_tag(from,from+3,to-1);
-
- if ( header_line_has_tag(hline,tag->key) )
- debug("The tag '%c%c' present (at least) twice on line [%s]\n", tag->key[0],tag->key[1], headerLine);
- hline->tags = list_append(hline->tags, tag);
-
- from = to;
- while (*to && *to=='\t') to++;
- if ( *to && to-from != 1 ) {
- debug("[sam_header_line_parse] multiple tabs on line [%s] (%d)\n", headerLine,(int)(to-from));
- return 0;
- }
-
- from = to;
- }
- return hline;
-}
-
-
-// Must be of an existing type, all tags must be recognised and all required tags must be present
-static int sam_header_line_validate(HeaderLine *hline)
-{
- list_t *tags;
- HeaderTag *tag;
- int itype, itag;
-
- // Is the type correct?
- itype = tag_exists(hline->type, types);
- if ( itype==-1 )
- {
- debug("The type [%c%c] not recognised.\n", hline->type[0],hline->type[1]);
- return 0;
- }
-
- // Has all required tags?
- itag = 0;
- while ( required_tags[itype] && required_tags[itype][itag] )
- {
- if ( !header_line_has_tag(hline,required_tags[itype][itag]) )
- {
- debug("The tag [%c%c] required for [%c%c] not present.\n", required_tags[itype][itag][0],required_tags[itype][itag][1],
- hline->type[0],hline->type[1]);
- return 0;
- }
- itag++;
- }
-
- // Are all tags recognised?
- tags = hline->tags;
- while ( tags )
- {
- tag = tags->data;
- if ( !tag_exists(tag->key,required_tags[itype]) && !tag_exists(tag->key,optional_tags[itype]) )
- {
- // Lower case tags are user-defined values.
- if( !(islower(tag->key[0]) || islower(tag->key[1])) )
- {
- // Neither is lower case, but tag was not recognized.
- debug("Unknown tag [%c%c] for [%c%c].\n", tag->key[0],tag->key[1], hline->type[0],hline->type[1]);
- // return 0; // Even unknown tags are allowed - for forward compatibility with new attributes
- }
- // else - allow user defined tag
- }
- tags = tags->next;
- }
-
- return 1;
-}
-
-
-static void print_header_line(FILE *fp, HeaderLine *hline)
-{
- list_t *tags = hline->tags;
- HeaderTag *tag;
-
- fprintf(fp, "@%c%c", hline->type[0],hline->type[1]);
- while (tags)
- {
- tag = tags->data;
-
- fprintf(fp, "\t");
- if ( tag->key[0]!=' ' || tag->key[1]!=' ' )
- fprintf(fp, "%c%c:", tag->key[0],tag->key[1]);
- fprintf(fp, "%s", tag->value);
-
- tags = tags->next;
- }
- fprintf(fp,"\n");
-}
-
-
-static void sam_header_line_free(HeaderLine *hline)
-{
- list_t *tags = hline->tags;
- while (tags)
- {
- HeaderTag *tag = tags->data;
- free(tag->value);
- free(tag);
- tags = tags->next;
- }
- list_free(hline->tags);
- free(hline);
-}
-
-void sam_header_free(void *_header)
-{
- HeaderDict *header = (HeaderDict*)_header;
- list_t *hlines = header;
- while (hlines)
- {
- sam_header_line_free(hlines->data);
- hlines = hlines->next;
- }
- list_free(header);
-}
-
-HeaderDict *sam_header_clone(const HeaderDict *dict)
-{
- HeaderDict *out = NULL;
- while (dict)
- {
- HeaderLine *hline = dict->data;
- out = list_append(out, sam_header_line_clone(hline));
- dict = dict->next;
- }
- return out;
-}
-
-// Returns a newly allocated string
-char *sam_header_write(const void *_header)
-{
- const HeaderDict *header = (const HeaderDict*)_header;
- char *out = NULL;
- int len=0, nout=0;
- const list_t *hlines;
-
- // Calculate the length of the string to allocate
- hlines = header;
- while (hlines)
- {
- len += 4; // @XY and \n
-
- HeaderLine *hline = hlines->data;
- list_t *tags = hline->tags;
- while (tags)
- {
- HeaderTag *tag = tags->data;
- len += strlen(tag->value) + 1; // \t
- if ( tag->key[0]!=' ' || tag->key[1]!=' ' )
- len += strlen(tag->value) + 3; // XY:
- tags = tags->next;
- }
- hlines = hlines->next;
- }
-
- nout = 0;
- out = malloc(len+1);
- hlines = header;
- while (hlines)
- {
- HeaderLine *hline = hlines->data;
-
- nout += sprintf(out+nout,"@%c%c",hline->type[0],hline->type[1]);
-
- list_t *tags = hline->tags;
- while (tags)
- {
- HeaderTag *tag = tags->data;
- nout += sprintf(out+nout,"\t");
- if ( tag->key[0]!=' ' || tag->key[1]!=' ' )
- nout += sprintf(out+nout,"%c%c:", tag->key[0],tag->key[1]);
- nout += sprintf(out+nout,"%s", tag->value);
- tags = tags->next;
- }
- hlines = hlines->next;
- nout += sprintf(out+nout,"\n");
- }
- out[len] = 0;
- return out;
-}
-
-void *sam_header_parse2(const char *headerText)
-{
- list_t *hlines = NULL;
- HeaderLine *hline;
- const char *text;
- char *buf=NULL;
- size_t nbuf = 0;
- int tovalidate = 0;
-
- if ( !headerText )
- return 0;
-
- text = headerText;
- while ( (text=nextline(&buf, &nbuf, text)) )
- {
- hline = sam_header_line_parse(buf);
- if ( hline && (!tovalidate || sam_header_line_validate(hline)) )
- // With too many (~250,000) reference sequences the header parsing was too slow with list_append.
- hlines = list_append_to_end(hlines, hline);
- else
- {
- if (hline) sam_header_line_free(hline);
- sam_header_free(hlines);
- if ( buf ) free(buf);
- return NULL;
- }
- }
- if ( buf ) free(buf);
-
- return hlines;
-}
-
-void *sam_header2tbl(const void *_dict, char type[2], char key_tag[2], char value_tag[2])
-{
- const HeaderDict *dict = (const HeaderDict*)_dict;
- const list_t *l = dict;
- khash_t(str) *tbl = kh_init(str);
- khiter_t k;
- int ret;
-
- if (_dict == 0) return tbl; // return an empty (not null) hash table
- while (l)
- {
- HeaderLine *hline = l->data;
- if ( hline->type[0]!=type[0] || hline->type[1]!=type[1] )
- {
- l = l->next;
- continue;
- }
-
- HeaderTag *key, *value;
- key = header_line_has_tag(hline,key_tag);
- value = header_line_has_tag(hline,value_tag);
- if ( !key || !value )
- {
- l = l->next;
- continue;
- }
-
- k = kh_get(str, tbl, key->value);
- if ( k != kh_end(tbl) )
- debug("[sam_header_lookup_table] They key %s not unique.\n", key->value);
- k = kh_put(str, tbl, key->value, &ret);
- kh_value(tbl, k) = value->value;
-
- l = l->next;
- }
- return tbl;
-}
-
-char **sam_header2list(const void *_dict, char type[2], char key_tag[2], int *_n)
-{
- const HeaderDict *dict = (const HeaderDict*)_dict;
- const list_t *l = dict;
- int max, n;
- char **ret;
-
- ret = 0; *_n = max = n = 0;
- while (l)
- {
- HeaderLine *hline = l->data;
- if ( hline->type[0]!=type[0] || hline->type[1]!=type[1] )
- {
- l = l->next;
- continue;
- }
-
- HeaderTag *key;
- key = header_line_has_tag(hline,key_tag);
- if ( !key )
- {
- l = l->next;
- continue;
- }
-
- if (n == max) {
- max = max? max<<1 : 4;
- ret = realloc(ret, max * sizeof(void*));
- }
- ret[n++] = key->value;
-
- l = l->next;
- }
- *_n = n;
- return ret;
-}
-
-void *sam_header2key_val(void *iter, const char type[2], const char key_tag[2], const char value_tag[2], const char **_key, const char **_value)
-{
- list_t *l = iter;
- if ( !l ) return NULL;
-
- while (l)
- {
- HeaderLine *hline = l->data;
- if ( hline->type[0]!=type[0] || hline->type[1]!=type[1] )
- {
- l = l->next;
- continue;
- }
-
- HeaderTag *key, *value;
- key = header_line_has_tag(hline,key_tag);
- value = header_line_has_tag(hline,value_tag);
- if ( !key && !value )
- {
- l = l->next;
- continue;
- }
-
- *_key = key->value;
- *_value = value->value;
- return l->next;
- }
- return l;
-}
-
-const char *sam_tbl_get(void *h, const char *key)
-{
- khash_t(str) *tbl = (khash_t(str)*)h;
- khint_t k;
- k = kh_get(str, tbl, key);
- return k == kh_end(tbl)? 0 : kh_val(tbl, k);
-}
-
-int sam_tbl_size(void *h)
-{
- khash_t(str) *tbl = (khash_t(str)*)h;
- return h? kh_size(tbl) : 0;
-}
-
-void sam_tbl_destroy(void *h)
-{
- khash_t(str) *tbl = (khash_t(str)*)h;
- kh_destroy(str, tbl);
-}
-
-void *sam_header_merge(int n, const void **_dicts)
-{
- const HeaderDict **dicts = (const HeaderDict**)_dicts;
- HeaderDict *out_dict;
- int idict, status;
-
- if ( n<2 ) return NULL;
-
- out_dict = sam_header_clone(dicts[0]);
-
- for (idict=1; idict<n; idict++)
- {
- const list_t *tmpl_hlines = dicts[idict];
-
- while ( tmpl_hlines )
- {
- list_t *out_hlines = out_dict;
- int inserted = 0;
- while ( out_hlines )
- {
- status = sam_header_compare_lines(tmpl_hlines->data, out_hlines->data);
- if ( status==0 )
- {
- out_hlines = out_hlines->next;
- continue;
- }
-
- if ( status==2 )
- {
- print_header_line(stderr,tmpl_hlines->data);
- print_header_line(stderr,out_hlines->data);
- debug("Conflicting lines, cannot merge the headers.\n");
- return 0;
- }
- if ( status==3 )
- sam_header_line_merge_with(out_hlines->data, tmpl_hlines->data);
-
- inserted = 1;
- break;
- }
- if ( !inserted )
- out_dict = list_append(out_dict, sam_header_line_clone(tmpl_hlines->data));
-
- tmpl_hlines = tmpl_hlines->next;
- }
- }
-
- return out_dict;
-}
-
-
diff --git a/varcall.cpp b/varcall.cpp
deleted file mode 100644
index 72ec202..0000000
--- a/varcall.cpp
+++ /dev/null
@@ -1,1744 +0,0 @@
-/*
-Copyright (c) 2012 Erik Aronesty
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-*/
-
-#include <math.h>
-#include <ctype.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <getopt.h>
-#include <string.h>
-#include <errno.h>
-#include <stdarg.h>
-
-#include <gsl/gsl_randist.h>
-
-#include <sys/stat.h>
-
-#include <string>
-#include <queue>
-#include <list>
-
-#include <google/sparse_hash_map> // or sparse_hash_set, dense_hash_map, ...
-#include <google/dense_hash_map> // or sparse_hash_set, dense_hash_map, ...
-#include "tidx/tidx.h"
-
-#include "fastq-lib.h"
-
-#define SVNREV atoi(strchr("$Revision: 632 $", ':')+1)
-const char * VERSION = "0.9";
-
-#define MIN_READ_LEN 20
-#define DEFAULT_LOCII 1000000
-
-using namespace std;
-using namespace google;
-
-void usage(FILE *f);
-
-// #define DEBUG 1
-
-#define meminit(l) (memset(&l,0,sizeof(l)))
-#ifdef DEBUG
- #define debug(s,...) fprintf(stderr,s,##__VA_ARGS__)
-#else
- #define debug(s,...)
-#endif
-#undef warn
-#define warn(s,...) ++errs; fprintf(stderr,s,##__VA_ARGS__)
-#define die(s,...) (fprintf(stderr,s,##__VA_ARGS__), exit(1))
-#define stat_out(s,...) fprintf(stat_fout,s,##__VA_ARGS__)
-#define stdev(cnt, sum, ssq) sqrt((((double)cnt)*ssq-pow((double)sum,2)) / ((double)cnt*((double)cnt-1)))
-#define log10(x) (log(x)/log(10))
-
-double quantile(const std::vector<int> &vec, double p);
-double quantile(const std::vector<double> &vec, double p);
-double pnorm(double x);
-double qnorm(double x);
-int rand_round(double x);
-
-// basic utils
-std::vector<char *> split(char* str, const char* delim);
-std::string string_format(const std::string &fmt, ...);
-void to_upper(const std::string str);
-void rename_tmp(std::string f);
-
-int errs=0;
-extern int optind;
-
-class Noise {
-public:
- Noise() {noise=0;depth=0;};
- Noise(int d, double n, double q, double mq) {depth=d; noise=n;qnoise=q;mnqual=mq;};
- double noise;
- double qnoise;
- int depth;
- double mnqual;
-};
-
-double quantile_depth(const vector<Noise> &vec, double p);
-
-bool noisebydepth (const Noise &a, const Noise &b) { return (a.depth>b.depth);}
-
-class PileupEnt {
-public:
- bool is_rev;
- bool is_start;
- bool f;
- const char *b;
- int q;
- int m;
- int p;
-};
-
-class vcall {
-public:
- vcall() {base='\0'; mn_qual=mq0=fwd=rev=qual=is_ref=qual_ssq=mq_sum=mq_ssq=tail_rev=tail_fwd=0;}
- char base;
- bool is_ref;
- int qual, fwd, rev, mq0, mn_qual, qual_ssq, mq_sum, mq_ssq, tail_rev, tail_fwd;
- vector <string> seqs;
- int depth() const {return fwd+rev;}
- int mq_rms() const {return sqrt(mq_ssq/depth());}
- int qual_rms() const {return sqrt(qual_ssq/depth());}
-};
-
-class vfinal {
-public:
- vfinal(vcall &c) {max_idl_cnt=0; padj=1; pcall = &c;};
- vfinal & operator=(vfinal const&x) {max_idl_seq=x.max_idl_seq; max_idl_cnt=x.max_idl_cnt; padj=x.padj; pcall=x.pcall;}
- vcall *pcall;
- string max_idl_seq;
- int max_idl_cnt;
- double padj;
- bool is_indel() {return max_idl_cnt > 0;};
-};
-
-bool hitolocall (const vcall &i,const vcall &j) {return ((i.depth())>(j.depth()));}
-bool sortreffirst (const vfinal &i,const vfinal &j) {return (i.pcall->is_ref&&!j.pcall->is_ref)||((i.pcall->is_ref==j.pcall->is_ref) && ((i.pcall->depth())>(j.pcall->depth())));}
-
-class Read {
-public:
- int MapQ;
- string Seq;
- Read() {MapQ=0;};
-};
-
-class PileupReads {
-public:
- double MeanReadLen() {return ReadBin.size() ? TotReadLen/ReadBin.size() : MIN_READ_LEN;}
- int TotReadLen;
- deque<Read> ReadBin;
- list<Read> ReadList;
- PileupReads() {TotReadLen=0;}
-};
-
-class PileupSummary {
-public:
- string Chr;
- int Pos;
- char Base;
- int Depth;
- int TotQual;
- int NumReads;
- vector<vcall> Calls;
-
- int SkipN;
- int SkipDupReads;
- int SkipMinMapq;
- int SkipMinQual;
- int MaxDepthByPos;
- int RepeatCount;
- char RepeatBase;
-
- PileupSummary(char *line, PileupReads &reads);
- PileupSummary() { Base = '\0'; Pos=-1; };
-};
-
-class PileupVisitor {
- public:
- char InputType;
-
- string AnnotFile; // path to file
- tidx AnnotDex; // start/stop index file
- char AnnotType; // b (bed) or g (gtf - preferred)
-
- PileupReads Reads;
- PileupVisitor() {InputType ='\0';}
- PileupVisitor(const char *a) {InputType ='\0'; LoadIndex(a);}
- void Parse(char *dat) {PileupSummary p(dat, Reads); Visit(p);};
- void LoadIndex(const char *a);
- virtual void Visit(PileupSummary &dat)=0;
- virtual void Finish()=0;
-};
-
-class VarStatVisitor : public PileupVisitor {
- public:
- VarStatVisitor() : PileupVisitor() {tot_locii=0; tot_depth=0; num_reads=0;};
-
- void Visit(PileupSummary &dat);
- void Finish() {};
-
- public:
- double tot_depth;
- int tot_locii;
- int num_reads;
- vector<Noise> stats;
- vector<Noise> ins_stats;
- vector<Noise> del_stats;
-};
-
-class VarCallVisitor : public PileupVisitor {
-
- deque<PileupSummary> Win;
- void VisitX(PileupSummary &dat);
-
- public:
- int WinMax;
- VarCallVisitor() : PileupVisitor() {SkippedDepth=0;WinMax=0;Hets=0;Homs=0;Locii=0;};
-
- void Visit(PileupSummary &dat);
- void Finish();
-
- int SkippedDepth;
- int Locii;
- int Hets;
- int Homs;
-};
-
-bool hasdata(const string &file) {
- struct stat st;
- if (stat(file.c_str(), &st)) {
- return false;
- }
- return st.st_size > 0;
-}
-
-
-int minsampdepth=20;
-double pct_depth=0;
-double pct_qdepth=0;
-double global_error_rate=0;
-double max_phred;
-int total_locii=-1;
-double pct_balance=0;
-char *debug_xchr=NULL;
-int debug_xpos=0;
-int min_depth=1;
-int min_mapq=0;
-int min_qual=3;
-int repeat_filter=7;
-double artifact_filter=1;
-int min_adepth=2;
-int read_tail_pct=.6;
-int read_tail_len=4;
-int min_idepth=3;
-int no_baq=0;
-double zygosity=.5; // set to .1 for 1 10% admixture, or even .05 for het/admix
-
-void parse_bams(PileupVisitor &v, int in_n, char **in, const char *ref);
-
-FILE *noise_f=NULL, *var_f = NULL, *varsum_f = NULL, *tgt_f = NULL, *tgtsum_f = NULL, *vcf_f = NULL, *eav_f=NULL;
-
-double alpha=.05;
-int phred=33;
-double phi(double x);
-
-FILE *openordie(const char *path, const char *mode) {
- FILE *f=fopen(path, mode);
- if (!f) {
- warn("Can't open-%s %s: %s\n", mode, path, strerror(errno));
- exit(1);
- }
- return f;
-}
-
-int main(int argc, char **argv) {
- char c;
- const char *noiseout=NULL;
- const char *ref=NULL;
- optind = 0;
- int umindepth=0;
- int uminadepth=0;
- int uminidepth=0;
- double upctqdepth=0;
- int do_stats=0;
- int do_varcall=0;
-
- char *out_prefix = NULL;
- char *target_annot = NULL;
- char *read_stats = NULL;
-
- while ( (c = getopt_long(argc, argv, "?svVBhe:m:N:x:f:p:a:g:q:Q:i:o:D:R:b:L:S:",NULL,NULL)) != -1) {
- switch (c) {
- case 'h': usage(stdout); return 0;
- case 'm': umindepth=atoi(optarg); break;
- case 'q': min_qual=atoi(optarg); break;
- case 'o': out_prefix=optarg; break;
- case 'Q': min_mapq=atoi(optarg); break;
- case 'V': printf("Version: %s.%d\n", VERSION, SVNREV); exit(0); break;
- case 'R': repeat_filter=atoi(optarg); break;
- case 'A': target_annot=optarg; break;
- case 'a': uminadepth=atoi(optarg);break;
- case 'D': artifact_filter=atof(optarg);break;
- case 'i': uminidepth=atoi(optarg);break;
- case 'x': {
- debug_xchr=optarg;
- char *p=strrchr(debug_xchr, ':');
- if (!p) die("Invalid param for -x");
- *p='\0';
- debug_xpos=atoi(++p);
- if (!p) die("Invalid param for -x, need pos");
- break;
- }
- case 'b': pct_balance=atof(optarg)/100.0; break;
- case 'B': no_baq=1; break;
- case 'p': upctqdepth=atof(optarg); break;
- case 'e': alpha=atof(optarg); break;
- case 'g': global_error_rate=atof(optarg); break;
- case 'L': total_locii=atoi(optarg); break;
- case 'f': ref=optarg; break;
- case 'N': noiseout=optarg; break;
- case 's': do_stats=1; break;
- case 'S': read_stats=optarg; break;
- case 'v': do_varcall=1; break;
- case '?':
- if (!optopt) {
- usage(stdout); return 0;
- } else if (optopt && strchr("ox", optopt))
- fprintf (stderr, "Option -%c requires an argument.\n", optopt);
- else if (isprint(optopt))
- fprintf (stderr, "Unknown option `-%c'.\n", optopt);
- else
- fprintf (stderr, "Unknown option character `\\x%x'.\n", optopt);
- usage(stderr);
- return 1;
- }
- }
-
-
- if (!do_stats && !do_varcall || do_stats && do_varcall) {
- warn("Specify -s for stats only, or -v to do variant calling\n\n");
- usage(stderr);
- return 1;
- }
-
- if (out_prefix) {
- if (!do_varcall) {
- warn("Specify -o with -v only\n\n");
- usage(stderr);
- return 1;
- }
-
- var_f = openordie(string_format("%s.var.tmp", out_prefix).c_str(), "w");
- vcf_f = openordie(string_format("%s.vcf.tmp", out_prefix).c_str(), "w");
- eav_f = openordie(string_format("%s.eav.tmp", out_prefix).c_str(), "w");
- noise_f = openordie(string_format("%s.noise.tmp", out_prefix).c_str(), "w");
- varsum_f = openordie(string_format("%s.varsum.tmp", out_prefix).c_str(), "w");
- if (target_annot) {
- tgt_f = openordie(string_format("%s.tgt.tmp", out_prefix).c_str(), "w");
- tgtsum_f = openordie(string_format("%s.tgtsum.tmp", out_prefix).c_str(), "w");
- }
- } else {
- var_f = stdout;
- varsum_f = stderr;
- }
-
- if (umindepth > minsampdepth) {
- minsampdepth=umindepth;
- }
-
- if (noiseout) {
- noise_f = fopen(noiseout, "w");
- if (!noise_f) {
- warn("Can't write %s: %s\n", noiseout, strerror(errno));
- exit(1);
- }
- }
-
- // set argv to '-' if stdin
- const char *stdv[3] = {argv[0],"-",NULL};
- if (!argv[optind]) {
- argc=2;
- argv = (char **) stdv;
- optind=1;
- }
-
- char **in=&argv[optind];
- int in_n = argc-optind;
-
- // not really random
- srand(1);
-
- max_phred = -log10(global_error_rate)*10;
-
- if (do_stats) {
- FILE *stat_fout=stdout; // stats to stdout
-
- if (do_varcall) // unless varcalling at the same time
- stat_fout=stderr;
-
- VarStatVisitor vstat;
-
- parse_bams(vstat, in_n, in, ref);
-
- stat_out("version\tvarcall-%s.%d\n", VERSION, SVNREV);
- stat_out("min depth\t%d\n", minsampdepth);
- stat_out("alpha\t%f\n", alpha);
-
- if (vstat.stats.size()) {
- // sort by depth descending
- sort(vstat.stats.begin(), vstat.stats.end(), noisebydepth);
-
- // flip 3 and 1 because sorted in descending order for sampling (above)
- double depth_q3=quantile_depth(vstat.stats, .25);
- double depth_q2=quantile_depth(vstat.stats, .50);
- double depth_q1=quantile_depth(vstat.stats, .75);
- double depth_qx=quantile_depth(vstat.stats, .95);
-
- // number of locii to compute error rate
- int ncnt=min(100000,vstat.stats.size());
-
- int i;
- double nsum=0, nssq=0, dsum=0, dmin=vstat.stats[0].depth, qnsum=0, qnssq=0, qualsum=0;
-
- double ins_nsum=0, ins_nssq=0, del_nsum=0, del_nssq=0;
- for (i=0;i<ncnt;++i) {
- if (vstat.stats[i].depth < depth_q1) {
- continue;
- }
- nsum+=vstat.stats[i].noise;
- nssq+=vstat.stats[i].noise*vstat.stats[i].noise;
- dsum+=vstat.stats[i].depth;
- qnsum+=vstat.stats[i].qnoise;
- qnssq+=vstat.stats[i].qnoise*vstat.stats[i].qnoise;
- qualsum+=vstat.stats[i].mnqual;
- if (vstat.stats[i].depth < dmin) dmin = vstat.stats[i].depth;
- ins_nsum+=vstat.ins_stats[i].noise;
- ins_nssq+=vstat.ins_stats[i].noise*vstat.ins_stats[i].noise;
- del_nsum+=vstat.del_stats[i].noise;
- del_nssq+=vstat.del_stats[i].noise*vstat.del_stats[i].noise;
- }
-
- double noise_mean =nsum/ncnt;
- double noise_dev = stdev(ncnt, nsum, nssq);
- double qnoise_mean =qnsum/ncnt;
- double qnoise_dev = stdev(ncnt, qnsum, qnssq);
- double qual_mean = qualsum/ncnt;
- double ins_noise_mean =ins_nsum/ncnt;
- double ins_noise_dev = stdev(ncnt, ins_nsum, ins_nssq);
- double del_noise_mean =del_nsum/ncnt;
- double del_noise_dev = stdev(ncnt, del_nsum, del_nssq);
-
- stat_out("qual mean\t%.4f\n", qual_mean);
- stat_out("noise mean\t%.6f\n", noise_mean);
- stat_out("noise dev\t%.6f\n", noise_dev);
- stat_out("qnoise mean\t%.6f\n", qnoise_mean);
- stat_out("qnoise dev\t%.6f\n", qnoise_dev);
- stat_out("ins freq\t%.6f\n", ins_noise_mean);
- stat_out("ins freq dev\t%.6f\n", ins_noise_dev);
- stat_out("del freq\t%.6f\n", del_noise_mean);
- stat_out("del freq dev\t%.6f\n", del_noise_dev);
-
- if (qnoise_mean >= noise_mean ) {
- stat_out("error\tpoor quality estimates\n");
- }
-
- stat_out("noise depth mean\t%.4f\n", dsum/ncnt);
- stat_out("noise depth min\t%.4f\n", dmin);
- stat_out("noise cnt\t%d\n", ncnt);
-
- stat_out("depth q1\t%.4f\n", depth_q1);
- stat_out("depth median\t%.4f\n", depth_q2);
- stat_out("depth q3\t%.4f\n", depth_q3);
-
- dsum=0;
- for (i=0;i<vstat.stats.size();++i) {
- dsum+=vstat.stats[i].depth;
- }
-
- int locii_gtmin=0;
- for (i=0;i<vstat.stats.size();++i) {
- if (vstat.stats[i].depth >= min_depth) {
- ++locii_gtmin;
- }
- }
- stat_out("locii >= min depth\t%d\n", locii_gtmin);
- stat_out("locii\t%d\n", vstat.tot_locii);
-
- double stdevfrommean=-qnorm((alpha/locii_gtmin)/2);
- stat_out("qnorm adj\t%f\n", stdevfrommean);
-
- pct_qdepth=qnoise_mean+qnoise_dev*stdevfrommean;
- stat_out("min pct qual\t%.4f\n", 100*pct_qdepth);
- }
- }
-
- if (read_stats){
- FILE * f = fopen(read_stats, "r");
- if (!f) {
- warn("File %s does not exist, quitting\n", read_stats);
- exit(1);
- }
- line l; meminit(l);
- char *val;
- while(read_line(f, l)>0) {
- if (val=strchr(l.s, '\t')) {
- *val='\0'; ++val;
- if (!strcasecmp(l.s, "min depth")) {
- if (umindepth && umindepth > atoi(val)) {
- fprintf(varsum_f,"warning\tsampling depth was less than variation depth\n");
- }
- if (!umindepth) umindepth=atoi(val);
- } else if (!strcasecmp(l.s, "min pct qual")) {
- if (upctqdepth<=0) upctqdepth=atof(val);
- } else if (!strcasecmp(l.s, "noise mean")) {
- if (global_error_rate<=0) global_error_rate=atof(val);
- } else if (!strcasecmp(l.s, "locii >= min depth")) {
- if (total_locii<0) total_locii=atoi(val);
- } else if (!strcasecmp(l.s, "alpha")) {
- if (alpha<=0) alpha=atof(val);
- }
- }
- }
- }
-
- if (total_locii<0) total_locii=DEFAULT_LOCII;
- if (total_locii==0) total_locii=1; // no adjustment
-
- if (eav_f) {
- fprintf(eav_f,"chr\tpos\tref\tdepth\tnum_states\ttop_consensus\ttop_freq\tvar_base\tvar_depth\tvar_qual\tvar_strands\tforward_strands\treverse_strands\t%cval\n",total_locii>1?'e':'p');
- }
-
- if (do_varcall) {
- if (umindepth) min_depth=umindepth;
- if (upctqdepth > 0) pct_qdepth=(double)upctqdepth/100;
- if (uminadepth) min_adepth=uminadepth;
- if (uminidepth) min_idepth=uminidepth;
-
- if (!min_depth || (!pct_depth && !pct_qdepth)) {
- fprintf(varsum_f,"warning\toutputting all variations, no minimum depths specified\n");
- }
-
- fprintf(varsum_f,"version\tvarcall-%s.%d\n", VERSION, SVNREV);
- fprintf(varsum_f,"min depth\t%d\n", min_depth);
- fprintf(varsum_f,"min call depth\t%d\n", min_adepth);
- fprintf(varsum_f,"alpha\t%f\n", alpha);
- fprintf(varsum_f,"min pct qual\t%d\n", (int)(100*pct_qdepth));
-
- fprintf(varsum_f,"min balance\t%d\n", (int)(100*pct_balance));
- fprintf(varsum_f,"artifact filter\t%f\n", artifact_filter);
- fprintf(varsum_f,"min qual\t%d\n", min_qual);
- fprintf(varsum_f,"min map qual\t%d\n", min_mapq);
- fprintf(varsum_f,"error rate\t%f\n", global_error_rate);
- fprintf(varsum_f,"locii used for adjustment\t%d\n", total_locii);
-
- VarCallVisitor vcall;
-
- if (repeat_filter > 0) {
- fprintf(varsum_f,"homopolymer filter\t%d\n", repeat_filter);
- vcall.WinMax=repeat_filter+repeat_filter+3;
- } else {
- vcall.WinMax=5;
- }
-
- if (vcf_f) {
- // print VCF header
- fprintf(vcf_f, "%s\n", "##fileformat=VCFv4.1");
- }
-
- parse_bams(vcall, in_n, in, ref);
-
- if (vcall.InputType == 'B') {
- fprintf(varsum_f,"baq correct\t%s\n", (no_baq?"no":"yes"));
- }
- fprintf(varsum_f,"locii\t%d\n", vcall.Locii);
- fprintf(varsum_f,"hom calls\t%d\n", vcall.Homs);
- fprintf(varsum_f,"het calls\t%d\n", vcall.Hets);
- fprintf(varsum_f,"locii below depth\t%d\n", vcall.SkippedDepth);
-
- if (out_prefix) {
- fclose(var_f);
- fclose(vcf_f);
- fclose(eav_f);
- fclose(noise_f);
- fclose(varsum_f);
- if (target_annot) {
- fclose(tgt_f);
- fclose(tgtsum_f);
- }
- rename_tmp(string_format("%s.var.tmp", out_prefix));
- rename_tmp(string_format("%s.vcf.tmp", out_prefix));
- rename_tmp(string_format("%s.eav.tmp", out_prefix));
- rename_tmp(string_format("%s.noise.tmp", out_prefix));
- rename_tmp(string_format("%s.varsum.tmp", out_prefix));
- if (target_annot) {
- rename_tmp(string_format("%s.tgt.tmp", out_prefix));
- rename_tmp(string_format("%s.tgtsum.tmp", out_prefix));
- }
- }
- }
-}
-
-void rename_tmp(std::string f) {
- std::string notmp = f;
- size_t pos = notmp.find(".tmp");
- if (pos >= 0) {
- notmp.replace(notmp.find(".tmp"),4,"");
- rename(f.c_str(),notmp.c_str());
- }
-}
-
-// normal distribution
-double qnorm(double q) {
- if(q == .5)
- return 0;
-
- q = 1.0 - q;
-
- double p = (q > 0.0 && q < 0.5) ? q : (1.0 - q);
- double t = sqrt(log(1.0 / pow(p, 2.0)));
-
- double c0 = 2.515517;
- double c1 = 0.802853;
- double c2 = 0.010328;
-
- double d1 = 1.432788;
- double d2 = 0.189269;
- double d3 = 0.001308;
-
- double x = t - (c0 + c1 * t + c2 * pow(t, 2.0)) /
- (1.0 + d1 * t + d2 * pow(t, 2.0) + d3 * pow(t, 3.0));
-
- if(q > .5)
- x *= -1.0;
-
- return x;
-}
-
-double pnorm(double x)
-{
- // constants
- double a1 = 0.254829592;
- double a2 = -0.284496736;
- double a3 = 1.421413741;
- double a4 = -1.453152027;
- double a5 = 1.061405429;
- double p = 0.3275911;
-
- // Save the sign of x
- int sign = 1;
- if (x < 0)
- sign = -1;
- x = fabs(x)/sqrt(2.0);
-
- // A&S formula 7.1.26
- double t = 1.0/(1.0 + p*x);
- double y = 1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x);
-
- return 0.5*(1.0 + sign*y);
-}
-
-void parse_bams(PileupVisitor &v, int in_n, char **in, const char *ref) {
-
- if (!in_n) {
- warn("No input files, quitting\n");
- exit(1);
- }
-
- int i, bam_n=0;
- for (i=0;i<in_n;++i) {
- if (!strcmp(fext(in[i]), ".bam")) {
- ++bam_n;
- }
- }
-
- if (bam_n != in_n) {
- if (bam_n > 0) {
- warn("Can't mix bams and other input files\n");
- exit(1);
- } else {
- if (in_n > 1) {
- warn("Can't handle multiple pileups... TODO\n");
- exit(1);
- } else {
- warn("input\t%d pileup\n", in_n);
- v.InputType='P';
- }
- }
- } else {
- warn("input\t%d bam\n", bam_n);
- v.InputType='B';
- }
-
- int is_popen = 0;
- FILE *fin;
-
- if (bam_n) {
- if (!ref) {
- warn("Need a reference file (-f) parameter, try -h for help\n");
- exit(1);
- }
-
- if (!hasdata(string(ref)+".fai")) {
- int ret=system(string_format("samtools faidx '%s'", ref).c_str());
- if (ret) {
- warn("Need a %s.fai file, run samtools faidx\n", ref);
- exit(1);
- }
- }
-
-
- const char *nobaq = no_baq ? "-B" : "";
-
- string mpil_cmd = string_format("samtools mpileup -Q 0 -d 100000 %s -f '%s'", nobaq, ref);
-
- int i;
- for (i=0;i<in_n;++i) {
- mpil_cmd += " '";
- mpil_cmd += in[i];
- mpil_cmd += "' ";
- }
-
- warn("command\t%s\n", mpil_cmd.c_str());
-
- fin = popen(mpil_cmd.c_str(), "r");
- if (!fin)
- exit(1);
-
- is_popen = 1;
- } else {
- if (!strcmp(in[0], "-")) {
- fin=stdin;
- } else {
- if (!strcmp(fext(in[0]), ".gz")) {
- string gunz = string_format("gunzip -c '%s'", in[0]);
- fin = popen(gunz.c_str(), "r");
- is_popen = 1;
- } else {
- fin = fopen(in[0], "r");
- }
- if (!fin) {
- warn("%s: %s", in[0], strerror(errno));
- exit(1);
- }
- }
- }
-
- line l; meminit(l);
- int cnt=0;
- if (fin) {
- while(read_line(fin, l)>0) {
- // chr 2 G 6 ^9,^+.^*,^2,^&.^&, &.'&*- 9+*2&& 166,552,643,201,299,321
- v.Parse(l.s);
- ++cnt;
- }
- v.Finish();
-
- if (is_popen) pclose(fin); else fclose(fin);
- }
-
- if (cnt == 0) {
- warn("No data in pileup, quitting\n");
- exit(1);
- }
-}
-
-#define T_A 0
-#define T_C 1
-#define T_G 2
-#define T_T 3
-#define T_SDEL 4
-#define T_NDEL 5
-#define T_INS 6
-#define T_N 7
-#define b2i(c) ((c)=='A'?0:(c)=='a'?0:(c)=='C'?1:(c)=='c'?1:(c)=='G'?2:(c)=='g'?2:(c)=='T'?3:(c)=='t'?3:(c)=='*'?4:(c)=='-'?5:(c)=='+'?6:7)
-#define i2b(i) (i==0?'A':i==1?'C':i==2?'G':i==3?'T':i==4?'*':i==5?'-':i==6?'+':'?')
-
-bool hitoloint (int i,int j) { return (i>j);}
-
-int track_readlen[10000];
-
-
-PileupSummary::PileupSummary(char *line, PileupReads &rds) {
-
- vector<char *> d=split(line, "\t");
-
- if (d.size() < 6) {
- warn("Can't read pileup : %d fields, need 6 columns\n", (int) d.size());
- exit(1);
- }
-
- const char * p_qual=d[5];
-
- Chr=d[0];
- Pos=atoi(d[1]);
- Base=*(d[2]);
- Depth = atoi(d[3]);
- SkipDupReads = 0;
- SkipN = 0;
- SkipMinQual = 0;
- SkipMinMapq = 0;
- MaxDepthByPos = 0;
- RepeatCount = 0;
- RepeatBase = '\0';
- NumReads = 0;
-
- int i;
- vector<int> depthbypos;
-
- const char *cur_p = d[4];
-
- list<Read>::iterator read_i = rds.ReadList.begin();
-
- int eor=0;
- for (i=0;i<Depth;++i,++read_i) {
- bool sor=0;
-
- if (*cur_p == '^') {
- sor=1;
- ++cur_p;
- Read x;
- x.MapQ = *cur_p-phred;
- ++cur_p;
- if (read_i != rds.ReadList.end()) {
- ++read_i;
- }
- read_i=rds.ReadList.insert(read_i,x);
- }
-
- if (read_i == rds.ReadList.end()) {
- warn("warning\tread start without '^', partial pileup: '%s'\n", cur_p);
- Read x;
- x.MapQ = -1;
- read_i=rds.ReadList.insert(read_i,x);
- }
-
- int pia = read_i->Seq.length()+1;
- if (pia >= depthbypos.size()) {
- depthbypos.resize(pia+1);
- }
- depthbypos[pia]++;
-
-
- if (sor)
- ++NumReads;
-
- char q = p_qual[i]-phred; // qual char
- char mq = read_i->MapQ;
- char o = *cur_p; // orig call
- char c = toupper(o); // uppercase/ref
- bool is_ref = 0;
-
- if (o == '.' || o == ',') {
- c = Base; // ref instead
- is_ref = 1;
- }
-
- if (o == '>' || o == '<') {
- c = 'N'; // no call
- is_ref = 1;
- }
-
- bool skip = 0;
-
- // probably should not be adding anything here... but the old code added 1 and floored... new code adds .5 and rounds... which is comparable
- // really.. should just be adding zero, the reason the old code had it was because of a lack of max()
- if (c == 'N') {
- ++SkipN;
- skip=1;
- } else if (artifact_filter > 0 && (depthbypos[pia] > max(1,rand_round(0.5+artifact_filter * (Depth/rds.MeanReadLen()))))) {
- ++SkipDupReads;
- skip=1;
- } else if (mq < min_mapq) {
- ++SkipMinMapq;
- skip=1;
- } else if (q < min_qual) {
- ++SkipMinQual;
- skip=1;
- } else {
- int j = b2i(c);
- if (j >= Calls.size()) {
- int was = Calls.size();
- Calls.resize(j+1);
- int t; for (t=was;t<=j;++t) {
- Calls[t].base=i2b(t);
- }
- }
- if (is_ref)
- Calls[j].is_ref = 1;
-
- if ( o == ',' || o == 'a' || o == 'c' || o == 't' || o == 'g' ) {
- ++Calls[j].rev;
- } else if ( c != 'N' ) {
- ++Calls[j].fwd;
- }
-
- Calls[j].qual+=q;
- Calls[j].mn_qual+=min(mq,q);
- Calls[j].mq_ssq+=mq*mq;
- Calls[j].mq_sum+=mq;
- Calls[j].qual_ssq+=q*q;
-/*
- if (pia <= read_tail_len || (rds.MeanReadLen()-pia) <= read_tail_len) {
- if ( o == ',' || o == 'a' || o == 'c' || o == 't' || o == 'g' ) {
- ++Calls[j].tail_rev;
- } else {
- ++Calls[j].tail_fwd;
- }
- }
-*/
-
- if (vcf_f) {
- if (mq == 0)
- Calls[j].mq0++;
- }
- }
-
- if (c == '-' || c == '+') {
- warn("invalid pileup, at '%s', indel not attached to read?\n", cur_p);
- } else {
- if (c != '*')
- read_i->Seq += c;
- ++cur_p;
- }
-
- if (*cur_p == '+' || *cur_p == '-') {
- c = *cur_p;
- char *end_p;
- int len = strtol(++cur_p, &end_p, 10);
- string ins_seq(end_p, len);
- to_upper(ins_seq);
- read_i->Seq += ins_seq;
- if (!skip) {
- int j = b2i(c);
- if (j >= Calls.size()) {
- int was = Calls.size();
- Calls.resize(j+1);
- int t; for (t=was;t<=j;++t) {
- Calls[t].base=i2b(t);
- }
- }
- if ( o == ',' || o == 'a' || o == 'c' || o == 't' || o == 'g' ) {
- ++Calls[j].rev;
- } else {
- ++Calls[j].fwd;
- }
- Calls[j].qual+=q;
- Calls[j].mn_qual+=min(q, mq);
- Calls[j].qual_ssq+=q*q;
- Calls[j].mq_ssq+=mq*mq;
- Calls[j].mq_sum+=mq;
- Calls[j].seqs.push_back(ins_seq);
- }
- cur_p=end_p+len;
- }
-
- if (*cur_p == '$') {
- if (read_i->MapQ > -1) {
- rds.TotReadLen+=read_i->Seq.size();
- rds.ReadBin.push_back(*read_i);
- if (rds.ReadBin.size() > min(1000,Depth*2)) {
- rds.ReadBin.pop_front();
- rds.TotReadLen-=rds.ReadBin.front().Seq.size();
- }
- }
-// printf("%d\t%s\n", read_i->MapQ, read_i->Seq.c_str());
- read_i=rds.ReadList.erase(read_i);
- --read_i;
- ++cur_p;
- ++eor;
- }
- }
-
- if ((Depth-eor) != rds.ReadList.size()) {
- warn("warning\tdepth is %d, but read list is: %d\n", Depth, (int) rds.ReadList.size());
- }
-
- if (*cur_p == '-' || *cur_p == '+') {
- char *end_p;
- int len = strtol(++cur_p, &end_p, 10);
- // keep this
- string idl(end_p, len);
- cur_p=end_p+len;
- }
-
- if (*cur_p) {
- warn("Failed to parse pileup %s\n", d[4]);
- exit(1);
- }
-
- for (i=0;i<depthbypos.size();++i) {
- if (depthbypos[i] > MaxDepthByPos) {
- MaxDepthByPos = depthbypos[i];
- }
- }
-
- Depth=0;
- for (i=0;i<5 && i < Calls.size();++i) { // total depth (exclude inserts for tot depth, otherwise they are double-counted)
- Depth+=Calls[i].depth();
- }
-
-
- TotQual=0;
- for (i=0;i<5 && i < Calls.size();++i) { // total depth (exclude inserts for tot depth, otherwise they are double-counted)
- TotQual+=Calls[i].qual;
- }
-}
-
-PileupSummary JunkSummary;
-
-void VarCallVisitor::Visit(PileupSummary &p) {
- if (WinMax < 3) {
- // no real window ... just go straight
- VisitX(p);
- return;
- }
-
- if (p.Base != '-' && p.Base != '@') {
- if (Win.size() && (Win.back().Pos != (p.Pos - 1) )) {
- if (Win.back().Pos < p.Pos && ((p.Pos - Win.back().Pos) <= (WinMax/2))) {
- while (Win.back().Pos < (p.Pos - 1)) {
- // visit/pop, add a placeholder
- JunkSummary.Base = '-';
- JunkSummary.Pos = Win.back().Pos + 1;
- Visit(JunkSummary);
- }
- } else {
- while (Win.size() && Win[WinMax/2].Base != '@') {
- // visit/pop, but don't add anything, until it's empty
- JunkSummary.Base = '@';
- JunkSummary.Pos = 0;
- Visit(JunkSummary);
- }
- }
- }
- }
-
- // initialize the window with nothing, if it's not full
- while (Win.size() < WinMax) {
- JunkSummary.Base = '@';
- JunkSummary.Pos = 0;
- Win.push_back(JunkSummary);
- }
-
- Win.push_back(p);
-
- //debug("Visit: %d\n", p.Pos);
-
- if (Win.size() > WinMax) // queue too big? pop
- Win.pop_front();
-
- int i;
- int lrc=0,rrc=0; // left repeat count, right repeat count
- char lrb, rrb; // left repeat base...
- int vx;
-
- if (Win.size() < WinMax) { // small window? look at leading edge only
- return;
- } else {
- vx = WinMax/2; // larger window? look at midpoint
- }
-
- if (Win[vx].Base == '-' || Win[vx].Base == '@')
- return;
-
- if (vx > 1) { // look left
- lrb = Win[vx-1].Base;
- for (i=vx-2; i >= 0; --i) { // increment repeat count
- if (Win[i].Base == lrb)
- ++lrc;
- else
- break;
- }
- }
- if (vx < (Win.size()-2)) {
- rrb = Win[vx+1].Base;
- for (i=vx+2; i < Win.size(); ++i) {
- if (Win[i].Base == rrb)
- ++rrc;
- else
- break;
- }
- }
-
- // repeat counts are now 1-based, not 0-based
- ++lrc;
- ++rrc;
-
- // maximum repeat count and associated base
- if (lrb == rrb ) {
- Win[vx].RepeatCount = lrc+rrc;
- Win[vx].RepeatBase = lrb;
- } else if (lrc > rrc) {
- Win[vx].RepeatCount = lrc;
- Win[vx].RepeatBase = lrb;
- } else {
- Win[vx].RepeatCount = rrc;
- Win[vx].RepeatBase = rrb;
- }
-
- if (debug_xpos) {
- if (Win[vx].Pos == debug_xpos && !strcmp(debug_xchr,Win[vx].Chr.data())) {
- fprintf(stderr,"xpos-window\t");
- for (i=0;i<Win.size();++i) {
- fprintf(stderr,"%c", Win[i].Base);
- }
- fprintf(stderr,"\n");
- }
- }
-
- double drms = 0;
- if (vx < Win.size()-1) {
- int i;
- int dminus = b2i('-');
- int dstar = b2i('*');
-
- if (Win[vx].Calls.size() > dminus && Win[vx].Calls[dminus].depth() > 0) {
- if (Win[vx+1].Calls.size() > dstar && Win[vx+1].Calls[dstar].depth() > 0) {
- // baq adjustment works at the 'star' not at the 'indel', so adjust qual using the next locus
- double adj=Win[vx+1].Calls[dstar].qual_rms()/(double)Win[vx].Calls[dminus].qual_rms();
- if (debug_xpos) {
- if (Win[vx].Pos == debug_xpos && !strcmp(debug_xchr,Win[vx].Chr.data())) {
- fprintf(stderr,"xpos-adj-qual\t%d to %d (%f)\n", Win[vx].Calls[dminus].qual_rms(),Win[vx+1].Calls[dstar].qual_rms(), adj);
- }
- }
- Win[vx].Calls[dminus].qual *= adj;
- Win[vx].Calls[dminus].qual_ssq *= adj;
- } else {
- vcall none;
- if (debug_xpos) {
- if (Win[vx].Pos == debug_xpos && !strcmp(debug_xchr,Win[vx].Chr.data())) {
- fprintf(stderr,"xpos-skip-del-qual\t%d\n", Win[vx].Calls[dminus].depth());
- }
- }
- Win[vx].Calls[dminus] = none;
- }
- }
- }
-
- VisitX(Win[vx]);
-}
-
-void VarCallVisitor::Finish() {
- // finish out the rest of the pileup, with the existing window
- int vx = WinMax/2+1;
- while (vx < Win.size()) {
- ///debug("Finish: %d\n", Win[vx].Pos);
- VisitX(Win[vx++]);
- }
-}
-
-void VarCallVisitor::VisitX(PileupSummary &p) {
- //debug("VisitX: %d\n", p.Pos);
-
- if (debug_xpos) {
- if (p.Pos != debug_xpos)
- return;
- if (strcmp(debug_xchr,p.Chr.data()))
- return;
- }
-
- if (p.Depth < min_depth) {
- if (debug_xpos) {
- fprintf(stderr,"xpos-skip-depth\t%d < %d\n",p.Depth, min_depth);
- fprintf(stderr,"xpos-skip-dup\t%d\n",p.SkipDupReads);
- fprintf(stderr,"xpos-skip-n\t%d\n",p.SkipN);
- fprintf(stderr,"xpos-skip-mapq\t%d\n",p.SkipMinMapq);
- fprintf(stderr,"xpos-skip-qual\t%d\n",p.SkipMinQual);
- }
- ++SkippedDepth;
- return;
- }
-
- int ins_fwd = p.Calls.size() > 6 ? p.Calls[6].fwd : 0;
- int ins_rev = p.Calls.size() > 6 ? p.Calls[6].rev : 0;
-
- int i;
- if (p.Calls.size() > 6)
- p.Calls.resize(7); // toss N's before sort
-
- sort(p.Calls.begin(), p.Calls.end(), hitolocall);
-
- int need_out = -1;
- int skipped_balance=0;
- int skipped_alpha=0;
- int skipped_indel=0;
- int skipped_tail_hom=0;
- int skipped_depth=0;
- int skipped_repeat=0;
-
- vector<vfinal> final_calls;
- for (i=0;i<p.Calls.size();++i) { // all calls
-// printf("CALL TOP: depth:%d base: %c, pd: %d, calls: %d\n", (int) p.Calls[i].depth(), p.Calls[i].base, p.Depth, (int) p.Calls.size());
-
- double pct = (double) p.Calls[i].depth()/p.Depth;
- double qpct = (double) p.Calls[i].qual/p.TotQual;
-
- if (!p.Calls[i].base)
- continue;
-
- if (!p.Calls[i].depth())
- continue;
-
- double bpct = (double) min(p.Calls[i].fwd,p.Calls[i].rev)/p.Calls[i].depth();
-
- if (pct > pct_depth && qpct >= pct_qdepth && (p.Calls[i].depth() >= min_adepth)) {
- if (bpct < pct_balance) {
- int fwd_adj=0, rev_adj=0;
- // f=b*(f+r); r=f/b-f; adj=r-(f/b-f)
- if (p.Calls[i].fwd < p.Calls[i].rev) {
- rev_adj = (int) p.Calls[i].rev - ( p.Calls[i].fwd/pct_balance - p.Calls[i].fwd );
- } else {
- fwd_adj = (int) p.Calls[i].fwd - ( p.Calls[i].rev/pct_balance - p.Calls[i].rev );
- }
- if (fwd_adj + rev_adj > 1 && bpct > 0) {
- // adjust call down
- p.Calls[i].qual -= (rev_adj+fwd_adj)*(p.Calls[i].qual/p.Calls[i].depth());
- p.Calls[i].mq_sum -= (rev_adj+fwd_adj)*(p.Calls[i].mq_sum/p.Calls[i].depth());
- p.Calls[i].qual_ssq -= (rev_adj+fwd_adj)*(p.Calls[i].qual_ssq/p.Calls[i].depth());
- p.Calls[i].mq_ssq -= (rev_adj+fwd_adj)*(p.Calls[i].mq_ssq/p.Calls[i].depth());
- p.Calls[i].rev -= rev_adj;
- p.Calls[i].fwd -= fwd_adj;
- skipped_balance+=rev_adj+fwd_adj;
-
- // fixed bpct
- bpct = (double) min(p.Calls[i].fwd,p.Calls[i].rev)/p.Calls[i].depth();
- } else {
- // it's junk anyway
- }
-
- // fix depths after adjustment!
- pct = (double) p.Calls[i].depth()/p.Depth;
- qpct = (double) p.Calls[i].qual/p.TotQual;
- }
- }
-
- if (pct > pct_depth && qpct >= pct_qdepth && (p.Calls[i].depth() >= min_adepth)) {
- // balance is meaningless at low depths
- if ((bpct >= pct_balance) || (p.Calls[i].depth()<4)) {
- if (p.Calls[i].base == '+' || p.Calls[i].base == '-') {
- // yuk ... time to think about a possible indel call
- if (p.Calls[i].depth() >= min_idepth) {
- // should really pick more than 1
- // but need to allow "similar" indels to pile up
- // should group into distinct bins, using some homology thing
- sort(p.Calls[i].seqs.begin(), p.Calls[i].seqs.end());
- string prev, maxs;
- int pcnt=0, maxc=0, j;
- for (j=0;j<p.Calls[i].seqs.size();++j) {
- if (prev == p.Calls[i].seqs[j]) {
- ++pcnt;
- } else {
- if (pcnt > maxc) {
- maxs=prev;
- maxc=pcnt;
- }
- prev=p.Calls[i].seqs[j];
- pcnt=1;
- }
- }
- if (pcnt > maxc) {
- maxs=prev;
- maxc=pcnt;
- }
- if (maxc >= min_idepth && maxc >= min_adepth) {
- // only calls 1 indel at a given position
- if ((repeat_filter == 0) || (p.RepeatCount < repeat_filter)) {
- // maybe use rms here... see if it helps
- double mean_qual = p.Calls[i].qual/(double)p.Calls[i].depth();
- double err_rate = mean_qual < max_phred ? pow(10,-mean_qual/10.0) : global_error_rate;
- // expected number of non-reference = error_rate*depth
- double pval=(p.Depth*err_rate==0)?0:gsl_ran_poisson_pdf(p.Calls[i].depth(), p.Depth*err_rate);
- double padj=total_locii ? pval*total_locii : pval; // multiple-testing adjustment
-
- if (padj <= alpha) {
- vfinal final(p.Calls[i]);
-
- double mq_padj=max(total_locii*pow(10,-p.Calls[i].mq_sum/10.0),padj); // never report pval as better than the total mapping quality
- if (debug_xpos) fprintf(stderr,"xpos-debug-pval\tbase:%c, err:%g, pval:%g, padj:%g, mq_padj:%g, mq_sum:%d\n", p.Calls[i].base, err_rate, pval, padj, mq_padj, p.Calls[i].mq_sum);
-
- if (mq_padj > 1) mq_padj=1;
-
- if (need_out == -1)
- need_out = i;
-
-// printf("FINAL: depth:%d base: %s\n", (int) maxc, maxs.c_str());
- final.padj=mq_padj;
- final.max_idl_cnt=maxc;
- final.max_idl_seq=maxs;
- final_calls.push_back(final);
- } else {
- skipped_alpha+=p.Calls[i].depth();
- }
- // implicitly skip all the ohter indel calls at the same locus
- skipped_indel+=p.Calls[i].depth()-maxc;
- } else {
- skipped_repeat+=p.Calls[i].depth();
- }
- } else {
- skipped_indel+=p.Calls[i].depth();
- }
- } else {
- skipped_indel+=p.Calls[i].depth();
- }
- } else {
- if (p.Calls[i].base == '*' && (
- ((repeat_filter > 0) && (p.RepeatCount >= repeat_filter)) ||
- (p.Calls[i].depth() < min_idepth)
- )) {
- skipped_indel+=p.Calls[i].depth();
- } else {
- // subtract inserts from reference .. perhaps > 0 is correct here....
- if (p.Calls[i].is_ref && (ins_rev+ins_fwd) > max(min_idepth,min_adepth)) {
- p.Calls[i].fwd-=ins_fwd;
- p.Calls[i].rev-=ins_rev;
- }
-
- double mean_qual = p.Calls[i].qual/(double)p.Calls[i].depth();
-
-/*
- if ( (repeat_filter > 0) && (p.RepeatCount >= repeat_filter) ) {
- p.Calls[i].fwd-=p.Calls[i].tail_fwd;
- p.Calls[i].rev-=p.Calls[i].tail_rev;
- skipped_tail_hom+=p.Calls[i].tail_fwd+p.Calls[i].tail_rev;
- }
-*/
- if (p.Calls[i].depth() >= min_adepth && p.Calls[i].depth() > 0) {
- double err_rate = mean_qual < max_phred ? pow(10,-mean_qual/10.0) : global_error_rate;
- // expected number of non-reference bases at this position is error_rate*depth
- double pval=(p.Depth*err_rate==0)?0:gsl_ran_poisson_pdf(p.Calls[i].depth(), p.Depth*err_rate);
- double padj=total_locii ? pval*total_locii : pval; // multiple-testing adjustment
-
- if (padj <= alpha) {
- double mq_padj=max(total_locii*pow(10,-p.Calls[i].mq_sum/10.0),padj); // never report as better than the mapping quality
-
- if (mq_padj > 1) mq_padj=1;
-
- if (debug_xpos) fprintf(stderr,"xpos-debug-pval\tbase:%c, err:%g, pval:%g, padj:%g, mq_padj:%g, mq_sum:%d\n", p.Calls[i].base, err_rate, pval, padj, mq_padj, p.Calls[i].mq_sum);
-
- if (!p.Calls[i].is_ref || debug_xpos) {
- if (need_out == -1)
- need_out = i;
- }
- vfinal final(p.Calls[i]);
- final.padj=mq_padj;
- final_calls.push_back(final);
- } else {
- skipped_alpha+=p.Calls[i].depth();
- }
- }
- }
- }
- } else {
- skipped_balance+=p.Calls[i].depth();
- }
- } else {
- // depth is too low now.... technically you can just add all the rest of the calls to skipped_depth without checking
- skipped_depth+=p.Calls[i].depth();
- }
- }
-
- ++Locii;
-
- if (need_out>=0||debug_xpos) {
-
- if (final_calls.size() > 1){
-// printf("HERE1 %c/%c\n", final_calls[0].pcall->base, final_calls[1].pcall->base);
- if(final_calls[1].pcall->is_ref) {
- vfinal tmp=final_calls[1];
- final_calls[1]=final_calls[0];
- final_calls[0]=tmp;
-// printf("HERE2 %c/%c\n", final_calls[0].pcall->base, final_calls[1].pcall->base);
- }
- }
-
-// printf("allele_count: %d\n", (int) final_calls.size());
-
-
- int total_call_depth=0;
- int i;
- for (i=0;i<final_calls.size();++i) {
- total_call_depth+=final_calls[i].pcall->depth();
- }
- double pct_allele = 0;
- if (need_out >=0) {
- // more than 1 call at this position = Het
- if (final_calls.size() > 1) {
- if (final_calls[0].pcall->is_ref) {
- pct_allele = 100.0 * final_calls[1].pcall->depth() / (double) total_call_depth;
- } else {
- // no reference seen... but still het?
- pct_allele = 100.0 * final_calls[0].pcall->depth() / (double) total_call_depth;
- }
- ++Hets;
- } else {
- pct_allele = 100.0 * final_calls[0].pcall->depth() / (double) total_call_depth;
- ++Homs;
- }
- }
-
- if (var_f) {
- int i;
- string pil;
- for (i=0;i<final_calls.size();++i) {
- vfinal &f=final_calls[i];
- if (f.is_indel()) {
- pil += string_format("\t%c%s:%d,%d,%.1e",f.pcall->base,f.max_idl_seq.c_str(),f.max_idl_cnt,f.pcall->qual/f.pcall->depth(),f.padj);
- } else {
- pil += string_format("\t%c:%d,%d,%.1e",f.pcall->base,f.pcall->depth(),f.pcall->qual/f.pcall->depth(),f.padj);
- }
- }
- fprintf(var_f,"%s\t%d\t%c\t%d\t%d\t%2.2f%s\n",p.Chr.c_str(), p.Pos, p.Base, p.Depth, skipped_alpha+skipped_depth+skipped_balance+p.SkipN+p.SkipDupReads+p.SkipMinMapq+p.SkipMinQual, pct_allele, pil.c_str());
- }
-
- if (vcf_f) {
-
- for (i=0;i<final_calls.size();++i) {
- vfinal &f=final_calls[i];
- int qual = f.padj>0?min(40,10*(-log10(f.padj))):40;
-
- if (f.is_indel()) {
- string base;
- string alt;
- if (f.pcall->base =='-') {
- base = p.Base + f.max_idl_seq;
- alt = p.Base;
- } else {
- base = p.Base;
- alt = p.Base + f.max_idl_seq;
- }
- double freq_allele = f.max_idl_cnt / (double) p.Depth;
- fprintf(vcf_f,"%s\t%d\t.\t%s\t%s\t%2d\tPASS\tMQ=%d;BQ=%d;DP=%d;AF=%2.2f\n",
- p.Chr.c_str(), p.Pos, base.c_str(), alt.c_str(), qual,
- (int) f.pcall->mq_rms(),
- (int) f.pcall->qual_rms(),
- total_call_depth,
- freq_allele);
- } else {
- char alt = f.pcall->base;
- if (f.pcall->is_ref)
- alt = '.';
- double freq_allele = f.pcall->depth() / (double) p.Depth;
- fprintf(vcf_f,"%s\t%d\t.\t%c\t%c\t%d\tPASS\tMQ=%d;BQ=%d;DP=%d;AF=%2.2f\n",
- p.Chr.c_str(), p.Pos, p.Base, alt, qual,
- (int) f.pcall->mq_rms(),
- (int) f.pcall->qual_rms(),
- total_call_depth,
- freq_allele);
- }
- }
- }
-
- if (eav_f) {
-// printf(eav_f,"chr\tpos\tref\tdepth\tnum_states\ttop_consensus\ttop_freq\tvar_base\tvar_depth\tvar_qual\tvar_strands\tforward_strands\treverse_strands\n");
- string top_cons, var_base, var_depth, var_qual, var_strands, forward, reverse;
-
- float padj=final_calls[0].padj;
- if (final_calls[0].pcall->is_ref && final_calls.size() > 1) {
- padj=final_calls[1].padj;
- }
- for (i=0;i<final_calls.size();++i) {
- vfinal &f=final_calls[i];
- if (i < 2) {
- if (i > 0) top_cons += "/";
- top_cons += f.pcall->base;
- }
- if (i > 0) var_base += "/";
- var_base += f.pcall->base;
- if (f.is_indel()) {
- if (i < 2) {
- top_cons += f.max_idl_seq;
- }
- var_base += f.max_idl_seq;
- }
- if (i > 0) var_depth+= ";";
- var_depth+= string_format("%d",f.pcall->depth());
- if (i > 0) var_qual+= ";";
- var_qual+= string_format("%d",f.pcall->qual_rms());
- if (i > 0) var_strands+= ";";
- var_strands+= string_format("%d",(f.pcall->fwd>0)+(f.pcall->rev>0));
- if (i > 0) forward += ";";
- forward+= string_format("%d",f.pcall->fwd);
- if (i > 0) reverse += ";";
- reverse+= string_format("%d",f.pcall->rev);
- }
- fprintf(eav_f,"%s\t%d\t%c\t%d\t%d\t%s\t%2.2f\t%s\t%s\t%s\t%s\t%s\t%s\t%.1e\n",p.Chr.c_str(), p.Pos, p.Base, p.Depth, (int) final_calls.size(),top_cons.c_str(), pct_allele, var_base.c_str(), var_depth.c_str(), var_qual.c_str(), var_strands.c_str(), forward.c_str(), reverse.c_str(), padj);
- }
-
- if (debug_xpos) {
- fprintf(stderr,"xpos-skip-dup\t%d\n",p.SkipDupReads);
- fprintf(stderr,"xpos-skip-mapq\t%d\n",p.SkipMinMapq);
- fprintf(stderr,"xpos-skip-qual\t%d\n",p.SkipMinQual);
- fprintf(stderr,"xpos-skip-bal\t%d\n",skipped_balance);
- fprintf(stderr,"xpos-skip-depth\t%d\n",skipped_depth);
- fprintf(stderr,"xpos-skip-indel\t%d\n",skipped_indel);
-// fprintf(stderr,"xpos-skip-tail-imbalance\t%d\n",skipped_tail_hom);
- fprintf(stderr,"xpos-skip-repeat\t%d\n",skipped_repeat);
- fprintf(stderr,"xpos-skip-alpha\t%d\n",skipped_alpha);
- if (repeat_filter > 0) {
- fprintf(stderr,"repeat-count\t%d\n",p.RepeatCount);
- fprintf(stderr,"repeat-filter\t%d\n",repeat_filter);
- fprintf(stderr,"repeat-base\t%c\n",p.RepeatBase);
- }
- exit(0);
- }
- }
-}
-
-
-void PileupVisitor::LoadIndex(const char *path) {
- FILE *f = fopen(path,"r");
- if (!f) {
- warn("Can't open %s : %s\n", path, strerror(errno));
- exit(1);
- }
-
- AnnotType = '\0';
- line l; meminit(l);
- int cnt=0;
- while(read_line(f, l)>0) {
- vector<char *> d=split(l.s, "\t");
- if (d.size() < 9) {
- warn("File must be a GTF or a BED: '%s'\n", path);
- exit(1);
- }
- AnnotType = (*d[5]=='+' || *d[5] == '-') ? 'b' : '\0';
- AnnotType = (*d[6]=='+' || *d[5] == '-') ? 'g' : AnnotType;
- break;
- }
-
- if (!AnnotType) {
- warn("File must be a GTF or a BED: '%s'\n", path);
- exit(1);
- }
-
- if (!AnnotDex.read(path)) {
- // void build(const char *path, const char *sep, int nchr, int nbeg, int nend, int skip_i, char skip_c);
- AnnotDex.build(path, "\t", 0, 1, 2, 0, '#', 1);
- }
-
- fclose(f);
-}
-
-void VarStatVisitor::Visit(PileupSummary &p) {
- tot_locii += 1;
-
- if (p.Depth < minsampdepth)
- return;
-
- // insert and deletions have their own, separate noise levels
-
- int ins_depth = p.Calls.size() > 6 ? p.Calls[6].depth() : 0;
- int ins_qual = p.Calls.size() > 6 ? p.Calls[6].qual : 0;
- double ins_noise = 0;
- double ins_qnoise = 0;
- if (p.Calls.size() > 1 && p.Calls[1].depth() > ins_depth && ins_depth > 0) {
- ins_noise = (double) ins_depth/p.Depth;
- ins_qnoise = (double) ins_qual/p.TotQual;
- }
-
- int del_depth = p.Calls.size() > 5 ? p.Calls[5].depth() : 0;
- int del_qual = p.Calls.size() > 5 ? p.Calls[5].qual : 0;
- double del_noise = 0;
- double del_qnoise = 0;
- if (p.Calls.size() > 1 && p.Calls[1].depth() > del_depth && del_depth > 0) {
- del_noise = (double) del_depth/p.Depth;
- del_qnoise = (double) del_qual/p.TotQual;
- }
-
- // snp's are "noise" if there are 3 alleles at a given position
- int i;
- if (p.Calls.size() > 5)
- p.Calls.resize(5); // toss N's and inserts before sort
-
- sort(p.Calls.begin(), p.Calls.end(), hitolocall);
-
- double noise = p.Calls.size() > 2 ? (double) p.Calls[2].depth()/p.Depth : 0;
- double qnoise = p.Calls.size() > 2 ? (double) p.Calls[2].qual/p.TotQual : 0;
-
- double mnqual = (double)p.TotQual/p.Depth;
-
- char pbase = p.Calls.size() > 2 ? p.Calls[2].base : '.';
-
- if (noise_f) {
- fprintf(noise_f,"%d\t%c\t%f\t%f\n", p.Depth, pbase, noise, qnoise, mnqual);
-/*
- if (ins_noise > 0) {
- fprintf(noise_f,"%d\t%c\t%f\t%f\n", p.Depth, '+', ins_noise, ins_qnoise, mnqual);
- }
- if (del_noise > 0) {
- fprintf(noise_f,"%d\t%c\t%f\t%f\n", p.Depth, '-', del_noise, del_qnoise, mnqual);
- }
-*/
- }
-
- tot_depth += p.Depth;
- num_reads += p.NumReads;
- stats.push_back(Noise(p.Depth, noise, qnoise, mnqual));
- ins_stats.push_back(Noise(p.Depth, ins_noise, ins_qnoise, mnqual));
- del_stats.push_back(Noise(p.Depth, del_noise, del_qnoise, mnqual));
-}
-
-
-void usage(FILE *f) {
- fprintf(f,
-"Usage: varcall <-s|-v> <-f REF> [options] bam1 [bam2...]\n"
-"Version: %s.%d (BETA)\n"
-"\n"
-"Either outputs summry stats for the list of files, or performs variant calling\n"
-"\n"
-"Options (later options override earlier):\n"
-"\n"
-"-s Calculate statistics\n"
-"-v Calculate variants bases on supplied parameters (see -S)\n"
-"-f Reference fasta (required if using bams, ignored otherwise)\n"
-"-m Min locii depth (0)\n"
-"-a Min allele depth (0)\n"
-"-p Min allele pct by quality (0)\n"
-"-q Min qual (3)\n"
-"-Q Min mapping quality (0)\n"
-"-b Min pct balance (strand/total) (0)\n"
-"-D FLOAT Max duplicate read fraction (depth/length per position) (1)\n"
-"-B Turn off BAQ correction (false)\n"
-"-R Homopolymer repeat indel filtering (8)\n"
-"-e FLOAT Alpha filter to use, requires -l or -S (.05)\n"
-"-g FLOAT Global minimum error rate (default: assume phred is ok)\n"
-"-l INT Number of locii in total pileup used for bonferroni (1 mil)\n"
-"-x CHR:POS Output this pos only, then quit\n"
-"-N FIL Output noise stats to FIL\n"
-"-S FIL Read in statistics and params from a previous run with -s (do this!)\n"
-"-A ANNOT Calculate in-target stats using the annotation file (requires -o)\n"
-"-o PREFIX Output prefix (note: overlaps with -N)\n"
-"\n"
-"Input files\n"
-"\n"
-"Files must be sorted bam files with bai index files available. Alternatively,\n"
-"a single pileup file can be supplied.\n"
-"\n"
-"Output files\n"
-"\n"
-"Varcalls go to stdout. Stats go to stdout, or stderr if varcalling too\n"
-"\n"
-"If an output prefix is used, files are created as follows:\n"
-" PREFIX.var Variant calls in tab delimited 'varcall' format\n"
-" PREFIX.eav Variant calls in tab delimited 'ea-var' format\n"
-" PREFIX.vcf Variant calls, in vcf format\n"
-" PREFIX.varsum Summary of variant calls\n"
-" PREFIX.tgt On-target stats detail\n"
-" PREFIX.tgtsum Summary of on-target stats\n"
-" PREFIX.noise Noise stats detail\n"
-"\n"
-"Stats Output:\n"
-"\n"
-"Contains mean, median, quartile information for depth, base quality, read len,\n"
-"mapping quality, indel levels. Also estimates parameters suitable for\n"
-"variant calls, and can be passed directly to this program for variant calls\n"
-"\n"
-"Filtering Details:\n"
-"\n"
- ,VERSION, SVNREV);
-}
-
-std::string string_format(const std::string &fmt, ...) {
- int n, size=100;
- std::string str;
- va_list ap;
- while (1) {
- str.resize(size);
- va_start(ap, fmt);
- int n = vsnprintf((char *)str.c_str(), size, fmt.c_str(), ap);
- va_end(ap);
- if (n > -1 && n < size) {
- str.resize(n);
- return str;
- }
- if (n > -1)
- size=n+1;
- else
- size*=2;
- }
-}
-
-void to_upper(const std::string str) {
- std::string::iterator it;
- int i;
- for ( i=0;i<str.size();++i ) {
- ((char *)(void *)str.data())[i]=toupper(((char *)str.data())[i]);
- }
-}
-
-// returns quantile depth
-double quantile_depth(const std::vector<Noise> &vec, double p) {
- int l = vec.size();
- assert(l > 0);
- double t = ((double)l-1)*p;
- int it = (int) t;
- int v=vec[it].depth;
- if (t > (double)it) {
- return (v + (t-it) * (vec[it+1].depth - v));
- } else {
- return v;
- }
-}
-
-double quantile(const std::vector<int> &vec, double p) {
- int l = vec.size();
- double t = ((double)l-1)*p;
- int it = (int) t;
- int v=vec[it];
- if (t > (double)it) {
- return (v + (t-it) * (vec[it+1] - v));
- } else {
- return v;
- }
-}
-
-double quantile(const std::vector<double> &vec, double p) {
- int l = vec.size();
- double t = ((double)l-1)*p;
- int it = (int) t;
- double v=vec[it];
- if (t > (double)it) {
- return (v + p * (vec[it+1] - v));
- } else {
- return v;
- }
-}
-
-std::vector<char *> split(char* str,const char* delim)
-{
- char* token = strtok(str,delim);
- std::vector<char *> result;
- while(token != NULL)
- {
- result.push_back(token);
- token = strtok(NULL,delim);
- }
- return result;
-}
-
-int rand_round(double x) {
- return floor(x)+((rand()>(x-int(x))) ? 1 : 0);
-//warn("rr:%f=%d\n",x);
-}
-
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/ea-utils.git
More information about the debian-med-commit
mailing list